Llama-3.1-8B-Instructとは?
Llama-3.1-8B-Instructは、MetaのLlama 3.1コレクションに含まれる3つのモデル(8B、70B、405B)のうち最小のモデルです。パラメータ数は8Bで、多言語対話向けに最適化された、指示チューニング済みのテキスト専用モデルです。Metaは教師ありファインチューニングと人間のフィードバックによる強化学習でアラインメントを行い、2024年7月23日に公開しました。ローカルでの定番となっている理由は、そのサイズです。Q4_K_Mビルドのファイルサイズは4.92 GBなので、8 GBのGPUに収まり、コンテキスト用のメモリにも余裕が残ります。
| 仕様 | Llama-3.1-8B-Instruct |
|---|---|
| パラメータ数 | 8B(BF16の重みでは8,030,261,248) |
| アーキテクチャ | 自己回帰型の最適化されたTransformer |
| アテンション | グループ化クエリアテンション(GQA) |
| コンテキスト長 | 128Kトークン |
| モダリティ | 入力:多言語テキスト、出力:多言語テキストとコード |
| 対応言語 | 英語、ドイツ語、フランス語、イタリア語、ポルトガル語、ヒンディー語、スペイン語、タイ語 |
| 事前学習データ | 一般公開されているオンラインデータ、15兆トークン超 |
| 知識のカットオフ | 2023年12月 |
| アラインメント | 教師ありファインチューニングとRLHF |
| ファインチューニング用データ | 公開指示データセットと2,500万件を超える合成サンプル |
| 学習計算量 | H100-80GBで146万GPU時間 |
| 公開日 | 2024年7月23日 |
| ライセンス | Llama 3.1 Community License |
Metaは、Transformers 4.43.0以降向けと、オリジナルのllamaコードベース向けの2種類のリポジトリを提供しています。また、torch.compile()、補助生成、量子化された重みを使ってローカルで実行するための資料として、huggingface-llama-recipesコレクションを案内しています。Llama 3.1は複数のツール利用形式にも対応しており、ツール呼び出しはTransformersのチャットテンプレートに組み込まれています。Python関数をapply_chat_templateに渡し、各実行結果をtoolロールで会話に追加します。これだけで、自分のマシン上で小規模なエージェントループを動かせます。Metaは、このモデルをオフラインのデータセットで学習した静的なモデルと説明しています。
Llama-3.1-8B-Instructのベンチマーク
Metaがモデルカードで公開している数値では、指示チューニング済みの8Bモデルを、前世代のLlama 3 8B Instructおよび2つの大型Llama 3.1モデルと比較しています。
| ベンチマーク | Llama 3.1 8B Instruct | Llama 3 8B Instruct | Llama 3.1 70B Instruct | Llama 3.1 405B Instruct |
|---|---|---|---|---|
MMLU 一般知識 | 69.4 | 68.5 | 83.6 | 87.3 |
IFEval 指示追従 | 80.4 | 76.8 | 87.5 | 88.6 |
GPQA 専門科学知識 | 30.4 | 34.6 | 46.7 | 50.7 |
HumanEval コード生成 | 72.6 | 60.4 | 80.5 | 89.0 |
MATH (CoT) 高難度の数学 | 51.9 | 29.1 | 68.0 | 73.8 |
API-Bank ツールAPI | 82.6 | 48.3 | 90.0 | 92.0 |
BFCL 関数呼び出し | 76.1 | 60.3 | 84.8 | 88.5 |
Multilingual MGSM 多言語での数学 | 68.9 | - | 86.9 | 91.6 |
同じファミリー内では、予想どおり405Bがすべての項目で首位です。注目すべき比較対象はLlama 3 8B Instructの列です。同じサイズでも、3.1への更新でAPI-Bankは34.3ポイント、MATHは22.8ポイント、BFCLは15.8ポイント、HumanEvalは12.2ポイント向上する一方、GPQAは4.2ポイント低下しています。
Meta自身の説明は、用途を限定しています。指示チューニング済みのテキスト専用モデルは、対応する8言語でのアシスタント型チャット向けに作られており、Metaは、業界で一般的なベンチマークで「利用可能なオープンソースおよびクローズドなチャットモデルの多くを上回る」と主張しています。この主張の多言語性能に関する部分には、別の表が用意されています。言語別MMLUにおける8Bのスコアは、スペイン語が62.45、フランス語が62.34、ポルトガル語が62.12、イタリア語が61.63、ドイツ語が60.59です。一方、ヒンディー語は50.88、タイ語は50.32で、ヨーロッパの言語より約10ポイント低くなっています。Metaは、事前学習では対応する8言語以外の言語も学習したと説明していますが、独自のファインチューニングやシステム側の制御を行わずに、それらの言語で会話することは推奨していません。
Llama-3.1-8B-Instructのハードウェア要件
システム要件で確認すべきなのはメモリです。以下のビルドと実際のファイルサイズは、unsloth/Llama-3.1-8B-Instruct-GGUFに基づいています。
| メモリ | 推奨ビルド | ファイルサイズ |
|---|---|---|
| 4 GB | UD-Q2_K_XL | 3.39 GB |
| 6 GB | Q3_K_M | 4.02 GB |
| 8 GB | Q4_K_M | 4.92 GB |
| 10 GB | Q5_K_M | 5.73 GB |
| 12 GB | Q6_K | 6.60 GB |
| 16 GB | UD-Q8_K_XL | 10.58 GB |
| 24 GB以上 | BF16 | 16.07 GB |
隣り合うビルドのサイズ差は数百メガバイトしかないことが多いため、両方ともメモリに収まるなら、大きい方を選んでください。これは、品質が最も急速に低下する表の下部で特に重要です。リポジトリには、サイズが2.16 GBまで小さくなるUD-IQ1_Sもありますが、これほど小さいファイルは最後の手段であり、標準の選択肢ではありません。長い入力を使う予定なら、メモリに余裕を残してください。128Kのコンテキストにも、それ自体のためのメモリが必要です。この形式に初めて触れる場合は、まずGGUFとは何かをお読みください。また、ほかにどのモデルが同じ環境に収まるかは、16 GBのMacに最適なローカルLLMを参照してください。
Atomic ChatでLlama-3.1-8B-Instructを実行する方法
Atomic Chatは、macOS、Windows、Linux向けの無料ローカルアプリです。Hugging Faceのモデルブラウザーとチャット機能を内蔵しており、llama.cppを手動でビルドする必要はありません。
- お使いのプラットフォーム向けのAtomic Chatをダウンロードして開きます。
- モデルブラウザーでLlama-3.1-8B-Instructを検索し、Download Optionsを開きます。
- お使いのメモリ容量に収まるビルドを選び、チャットを始めます。
同じファミリーのほかのモデルについては、ローカルで実行できるLlamaモデルの一覧、または小型の兄弟モデルであるLlama-3.2-3B-Instructをご覧ください。
Llama-3.1-8B-Instructのライセンス
Llama-3.1-8B-Instructは、Meta独自の商用ライセンスであるLlama 3.1 Community Licenseのもとで提供されています。このライセンスは、対応言語での商用利用と研究利用を認めており、合成データの生成や蒸留を含め、モデルの出力をほかのモデルの改善に使うことを明示的に許可しています。利用にあたっては、適用法とMetaの利用規定に従い、対応する8言語の範囲内にとどめる必要があります。そのため、このモデルを組み込んだ製品を出荷する前に、ライセンス本文を読んでください。
