MetaのオープンLLM「Llama3.2 3B-Instract」の精度を検証してみた|GPT4o-miniとの比較あり
Meta社が提供する「Llama3.2」は2024年9月25日に発表されたオープンソースのLLMです。今回の発表は2024年7月23日に「Llama3.1」が発表されてから2ヶ月ほどしか経過していませんが、驚異的に性能を向上させています。
本記事では「Llama3.2」の特徴と利用方法を解説し、「Llama-3.2 3B-Instract」モデルの精度をいくつかの質問を通じて検証します。
Llama3.2の特徴
Llama3.2は2024年10月現在、Llamaシリーズの最新のモデルとして提供されています。Llama3.2では、1Bおよび3Bのパラメータ数を備えた軽量テキストモデルと11Bおよび90Bのパラメータを備えたビジョンモデルが公開されています。
従来のLlamaシリーズではパラメータ数を拡大して性能向上を目指したモデルが次々と公開されてきましたが、パラメータ数が大きなモデルの動作には多大な計算リソースが必要となります。
しかしLlama3.2では、Llama3.1の最小パラメータ数のテキストモデルであるLlama3.1 8Bより軽量な1Bおよび3Bの軽量モデルが公開され、少ない計算リソースでもさまざまなタスクの実行を実現しています。
また、11Bおよび90Bのビジョンモデルでは画像理解タスクに対応し、クローズドモデルであるClaude 3 HaikuやGPT4o-miniを上回る性能を実現しています。
Llama3.2の主な特徴として以下の3点が挙げられます。
商用利用可能なオープンモデル
Llama3.2はオープンモデルとして提供されており、ローカルデバイスでの商用利用が可能です。Meta社は、Llamaシリーズのユーザーコミュニティが開発中のモデルにアクセスできるように、早期かつ頻繁にリリースするというオープン ソースの精神を重視しています。
エッジデバイスやモバイルデバイスでの使用を想定した軽量テキストモデル
Llama3.2 1Bおよび3Bモデルは、エッジデバイスやモバイルデバイスなど小型のローカルマシンでのユースケースを想定して開発されています。少ない計算リソースで利用可能でありながら、以下のようなユースケースに対応が可能です。
- 日本語を含む多言語テキスト生成
- さまざまなツール呼び出し機能
- ローカル環境での実行によるプライバシーの保護
以下の表は、Llama3.2 1Bおよび3Bの軽量テキストモデルと競合となるGemma 2 2.6B および Phi 3.5-miniのベンチマークを比較した結果です。Llama3.2モデルは、指示に従う、要約する、プロンプトを書き直す、ツールを使用するなどのタスクにおいて競合モデルに優位性を示しています。
画像引用元:Llama 3.2: Revolutionizing edge AI and vision with open, customizable models
グラフ画像を含むドキュメント理解が可能なビジョンモデル
Llama3.2 11Bおよび90Bモデルはチャートやグラフを含む文書の理解、画像のキャプション生成、自然言語の説明に基づいて画像内の物体を方向指示するなどの視覚的根拠タスクに対応しています。
以下の表は、Llama3.2 11Bおよび90Bのビジョンモデルと競合となるClaude3-Haiku、GPT-4o-miniのベンチマークを比較した結果です。
画像引用元:Llama 3.2: Revolutionizing edge AI and vision with open, customizable models
表の結果から、Llama3.2 90Bが全て項目において他のモデルを上回る優れた数値を記録していることがわかります。
詳細はMeta社の公式ページ[1]をご覧ください。
Llama3.2の利用方法
「Llama3.2」はHuggingFace上で公開されています。オープンソースモデルですが、利用する際にはHuggingFace上でライセンスに同意する必要があります。
「氏名」「生年月日」「国籍」「所属」の入力とMeta社のポリシーへの同意が求められます。
実行する際にはHuggingFaceアカウントと紐づける必要があるため、アクセストークンを取得する必要があります。アクセストークンはログイン後のユーザアイコン>>Settings >> Access Tokensから取得できます。
Access TokensのValueの項目がアクセストークンです。モデルの利用登録時のみトークンが表示されます。忘れた場合は再発行が必要になりますので、忘れずに控えましょう。
モデルの実行
以下はGoogle Colab上で実行する場合のコードサンプルと出力結果です。
「!huggingface-cli login --token」にアクセストークンを設定してください。また「model_id」に利用するモデルを設定してください。今回は「"meta-llama/Meta-Llama-3.2-3B-Instruct"」と設定しています。
#必要なライブラリをインストールする
!pip install torch
!pip install numpy==1.24.4
!huggingface-cli login --token YOUR_ACCESS_KEY
import torch
import transformers
# 使用するモデルを指定する
model_id = "meta-llama/Llama-3.2-3B-Instruct"
pipe = pipeline(
"text-generation",
model=model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
messages = [
{"role": "system", "content": "You are a pirate chatbot who always responds in pirate speak!"},
{"role": "user", "content": "Who are you?"},
]
outputs = pipe(
messages,
max_new_tokens=256,
)
# 応答を表示する
print(outputs[0]["generated_text"][-1])
出力結果の例
{'role': 'assistant', 'content': "Yer lookin' fer a swashbucklin' pirate, eh? Alright then, matey! I be Captain Cluckbeard, the scurviest pirate chatbot to ever sail the Seven Seas... er, I mean, the internet! Me and me trusty parrot sidekick, Polly, be here to guide ye through treacherous waters o' knowledge and answer yer most pressing questions, savvy?"}
モデルへの入出力を翻訳すると以下のようになります。
入力「あなたは常に海賊語で応答する海賊チャットボットです!」
入力「あなたは誰ですか?」
出力「君は向こう見ずな海賊を探しているんだな? よし、相棒! 私はキャプテン・クラックビアード、七つの海を航海した中で最も汚い海賊チャットボットだ…いや、インターネット上では! 私と私の信頼できるオウムの相棒、ポリーが、知識の危険な海を案内し、最も差し迫った質問に答えるためにここにいる」
詳細は、公式ドキュメント[2]をご確認ください。
Llama3.2 3B-Instractに質問してみる
いくつかの質問への回答をLlama3.2 3B-Instract、Llama3.1 8B-Instract、GPT-4o miniの3モデルを比較してみました。今回は、以下の2つの質問に日本語と英語でそれぞれどのように回答するかを試してみました。
- 文章読解
- 数値計算
文章読解の問題(英語)
英語での回答を見ていきましょう。以下のプロンプトを10回実行しました。
Please answer the following questions. Where were the 2020 Summer Olympics held? |
それぞれのモデルの生成結果は以下のようになりました。
Llama3.2 3B-Instract
The 2020 Summer Olympics were held in Tokyo, Japan. However, due to the COVID-19 pandemic, the games were postponed to 2021 and officially took place from July 23 to August 8, 2021. |
Llama3.1 8B-Instract
The 2020 Summer Olympics were held in Tokyo, Japan, from July 23 to August 8, 2021. The event was postponed to 2021 due to the COVID-19 pandemic. |
GPT-4o mini
The 2020 Summer Olympics were held in Tokyo, Japan. However, the event took place in 2021 due to the COVID-19 pandemic, but it retained the name "Tokyo 2020". |
Model | Correct Answer Rate ( /10)(英語) |
---|---|
Llama3.2 3B-Instract | 1.0 |
Llama3.1 8B-Instract | 1.0 |
GPT-4o mini | 1.0 |
こちらの質問の正答は「Not implemented in 2020(2020年には実施されていない。)」または「The event was postponed to 2021 in Tokyo.(東京で2021年に延期して実施された。)」です。
2020年開催予定の東京オリンピックが2021年に延期されたため、その点を考慮できるかが焦点なります。
英語の場合、2020年の東京開催予定が2021年の7月23日から8月8日に延期されかつ、その原因がCOVID-19によるパンデミックであることをどちらのモデルも回答しています。試行回数=10の場合の正答率は、どちらのモデルも1.0になっています。
文章読解の問題(日本語)
続いて日本語での回答を見ていきましょう。以下のプロンプトを10回実行しました。
次の質問に回答してください。2020年にオリンピックはどこで開催されましたか? |
それぞれのモデルの生成結果は以下のようになりました。
Llama3.2 3B-Instract
2020年の東京オリンピックは、2021年(東京オリンピックとしては第32回)で開催されました。 |
Llama3.1 8B-Instract
2020年東京オリンピックは、2021年に開催されました。新型コロナウイルス感染症の世界的流行の影響を受け、2020年に予定されていた東京オリンピックは1年延期され、2021年7月23日から8月8日まで東京で開催されました。 |
GPT-4o mini
2020年のオリンピックは東京で開催される予定でしたが、COVID-19の影響で2021年に延期されました。実際の開催は2021年7月23日から8月8日まで行われました。 |
Model | Correct Answer Rate ( /10)(日本語) |
---|---|
Llama3.2 3B-Instrac | 1.0 |
Llama3.1 8B-Instract | 1.0 |
GPT-4o mini | 1.0 |
こちらの質問の正答は英語の場合と同様に「2020年には実施されていない」または「東京で2021年に延期して実施された」です。
試行回数=10の場合の正答率は、日本語の場合でもどちらのモデルも1.0になっています。
4年に一度の規則的なペースで開催されるオリンピックが、変則的な日程になった場合でも規則に縛られることなく回答できることが確認されました。
数値計算の問題(英語)
英語での回答を見ていきましょう。以下のプロンプトを10回実行しました。
Please answer the following questions. There are 327 apples. You take 42.So how many apples do you have? |
それぞれのモデルの生成結果は以下のようになりました。
Llama3.2 3B-Instract
You take 42 apples, but the question asks how many apples you have, not how many apples are left.\n\nYou have 42 apples. |
Llama3.1 8B-Instract
To find out how many apples you have, we need to subtract the number of apples you took (42) from the total number of apples (327).327 (total apples) - 42 (apples taken) = 285 So, you have 285 apples. |
GPT-4o mini
If you take 42 apples from the 327, then you have 42 apples. |
Model | Correct Answer Rate ( /10)(英語) |
---|---|
Llama3.2 3B-Instract | 0.6 |
Llama3.1 8B-Instract | 0.0 |
GPT-4o mini | 1.0 |
こちらの質問の正答は「You have 42 apples.(42個持っています。)」です。
327個のリンゴから42個を取り出した場合、42個を手元に持っていて285個余ります。手元に持っているリンゴの数を尋ねているので42個が正答で、285個の余りは引っかけになります。
英語の場合、試行回数=10の場合の正答率は、Llama3.2 3B-Instract が0.6、Llama3.1 8B-Instract が0.0、GPT-4o mini が1.0になっています。
数値計算の問題(日本語)
続いて日本語での回答を見ていきましょう。以下のプロンプトを10回実行しました。
次の質問に回答してください。ここに327個のりんごがあります。あなたはそこから42個取ります。では、あなたはいくつのりんごを持っていますか? |
それぞれのモデルの生成結果は以下のようになりました。
Llama3.2 3B-Instract
箱から42個のりんごを取り出した後、箱には327-42=285個のりんごが残ります。 \n\nあなたは42個のりんごを持っています。 |
Llama3.1 8B-Instract
327個のりんごがありましたが、42個取りました。327 - 42 = 285 つまり、あなたは285個のりんごを持っています。 |
GPT-4o mini
327個のりんごから42個取ると、あなたは42個のりんごを持っています。 |
Model | Correct Answer Rate ( /10)(日本語) |
---|---|
Llama3.2 3B-Instract | 0.2 |
Llama3.1 8B-Instract | 0.0 |
GPT-4o mini | 1.0 |
こちらの質問の正答は英語の場合と同様に「42個持っています。」です。
日本語の場合、試行回数=10の場合の正答率は、Llama3.2 3B-Instract が0.6、Llama3.1 8B-Instract が0.0、GPT-4o mini が1.0になっています。
引き算の計算自体はどちらのモデルもできていますが、質問に対する正しい回答をすることについてはLlamaシリーズはあまりできておらず、GPT-4o-miniが優れている結果となりました。
まとめ
本記事では、Meta社のオープンL L Mの「Llama-3.2-3B-Instruct」についてご紹介しました。
今回は「文章読解」と「計算問題」の質問を試してみました。文章読解能力はGPT-4o miniと比較し遜色ないことが確認できました。一方、計算問題では数値計算はできていますが、Llama3.2 3B-Instractは正答の数値をあまり回答できない結果となりました。人間でも間違える可能性のある引っかけ問題ではありますが、GPT-4o miniは正答できていることを考えると、Llama3.2 3B-InstractはGPT-4o miniと比較した場合に文脈理解の能力が低いと言えるかもしれません。
【参考文献】
[1] Llama 3.2: Revolutionizing edge AI and vision with open, customizable models
理工学専攻の大学院2年生です。医療者教育における生成AIを活用した学習支援について研究しています。趣味はスノーボードでインストラクターの資格を保有しています。