「Llama 2:ChatGPTに挑むオープンソースの深層ダイブ」
Llama 2 Open-source Deep Dive into ChatGPT
複雑な推論タスクが可能な大規模言語モデル(LLM)は、プログラミングや創造的な文章作成などの特定の領域で有望性を示しています。しかし、LLMの世界は単純なプラグアンドプレイの楽園ではありません。使いやすさ、安全性、計算要件に課題があります。この記事では、Hugging FaceおよびGoogle Colab上のT4 GPUを使用して、高性能なLLMであるLlama 2を設定するための詳細な手順を解説します。
MetaとMicrosoftの提携によって開発されたこのオープンソースの大規模言語モデルは、生成型AIと自然言語理解の領域を再定義することを目指しています。Llama 2は、単なるテラバイトのデータでトレーニングされた統計モデルではありません。それは哲学の具現化です。AIの開発のバックボーンとしてオープンソースのアプローチを重視し、特に生成型AIの領域で重要視しています。
Llama 2およびその対話最適化の代替モデルであるLlama 2-Chatは、最大で700億のパラメータを備えています。これらは、公開されている他の多くのモデルよりも安全で効果的です。この微調整の粒度は、通常、一般の公開やカスタマイズが許可されていない「製品」としてのLLMに予約されています。ChatGPTやBARDなどは、公開の監査やカスタマイズが一般的には利用できません。
Llama 2の技術的な詳細
Llama 2モデルのトレーニングには、前身と同様に、自己教師データの広範なコーパスで事前にトレーニングされた自己回帰変換モデルが使用されています。しかし、人間の行動と好みとのより良い一致を得るために、強化学習と人間のフィードバックを組み合わせた洗練されたレイヤーが追加されます。これは計算コストが高いですが、モデルの安全性と効果性にとって重要です。
Meta Llama 2のトレーニングアーキテクチャ
事前トレーニングとデータ効率性
Llama 2の基盤となるイノベーションは、事前トレーニングの方法です。このモデルは、前任者であるLlama 1からヒントを得つつ、パフォーマンスを向上させるためにいくつかの重要な改良を導入しています。特に、トレーニングされたトークンの総数が40%増加し、コンテキストの長さが2倍に拡大しています。さらに、モデルはグループ化されたクエリアテンション(GQA)を利用して推論のスケーラビリティを高めています。
教師付き微調整(SFT)と人間のフィードバックを用いた強化学習(RLHF)
Llama-2-chatは、SFTと人間のフィードバックを組み合わせた厳格な微調整を行いました。SFTは、RLHFフレームワークの重要なコンポーネントとして機能し、モデルの応答を人間の好みや期待に合わせて洗練させます。
OpenAIは、InstructGPTで使用されるSFTとRLHFの手法を説明する示唆に富んだイラストを提供しています。LLaMa 2と同様に、InstructGPTもこれらの高度なトレーニング技術を活用してモデルのパフォーマンスを最適化しています。
下のイメージのステップ1は、教師付き微調整(SFT)に焦点を当てており、その後のステップでは人間のフィードバックに基づく強化学習プロセス(RLHF)が完了します。
Instruction-GPT
教師付き微調整(SFT)は、特定の下流タスクに対して事前にトレーニングされた大規模言語モデル(LLM)を最適化するための特殊なプロセスです。非教師付きの方法とは異なり、データの検証が必要です。SFTは、事前に検証されラベル付けされたデータセットを使用します。
一般的に、これらのデータセットを作成するのはコストと時間がかかります。Llama 2のアプローチは、品質を優先しました。Metaのチームはわずか27,540の注釈で、人間のアノテーターと競争力のあるパフォーマンスを達成しました。これは、クリーンであるが限られたデータセットでも高品質な結果をもたらすという最近の研究とも一致しています。
SFTプロセスでは、事前にトレーニングされたLLMがラベル付きのデータセットにさらされ、教師あり学習アルゴリズムが活用されます。モデルの内部の重みは、タスク固有の損失関数から計算される勾配に基づいて再キャリブレーションされます。この損失関数は、モデルの予測された出力と実際の正解ラベルとの間の不一致を定量化します。
この最適化により、LLMはラベル付きのデータセットに埋め込まれた複雑なパターンや微妙なニュアンスを把握することができます。その結果、モデルは一般的なツールにとどまらず、高い精度で目標タスクを実行する専門化された資産に進化します。
強化学習は次のステップであり、モデルの振る舞いを人間の好みにより近づけることを目指しています。
調整フェーズでは、人間のフィードバックからの強化学習(RLHF)を活用し、重要度サンプリングやプロキシマルポリシーオプティマイゼーションなどの技術を使用して、アルゴリズムのノイズを導入して局所最適解を回避しました。この反復的な微調整はモデルを改善するだけでなく、その出力を人間の期待に合わせることにも役立ちました。
Llama 2-Chatでは、人間の選好データを収集するためにバイナリ比較プロトコルを使用し、より質的なアプローチへの注目すべき傾向が示されました。このメカニズムは報酬モデルに通知され、会話型AIモデルの微調整に使用されます。
ゴーストアテンション:マルチターン対話
メタは新機能であるゴーストアテンション(GAtt)を導入しました。これはLlama 2のマルチターン対話におけるパフォーマンスを向上させるために設計されています。これにより、進行中の会話でのコンテキストの損失という持続的な問題が解決されます。GAttは、初期の指示をすべての後続のユーザーメッセージにリンクするアンカーのような役割を果たします。強化学習の技術と組み合わせることで、より長い対話にわたって一貫した、関連性のある、ユーザーに合わせた応答を生成するのに役立ちます。
Meta Gitリポジトリからdownload.shを使用して
- Metaのウェブサイトにアクセス:Metaの公式Llama 2サイトに移動し、「モデルのダウンロード」をクリックします。
- 詳細の入力:利用規約を読み、承諾して進めます。
- メールの確認:フォームが送信されると、Metaからモデルをダウンロードするためのリンクが含まれたメールが届きます。
- download.shを実行:Gitリポジトリをクローンし、
download.sh
スクリプトを実行します。このスクリプトはMetaからのURLを使用して認証するように求められます(有効期限は24時間です)。また、モデルのサイズ(7B、13B、70B)も選択します。
Hugging Faceから
- 承認メールの受信:Metaからアクセスを取得した後、Hugging Faceに移動します。
- アクセスの要求:希望するモデルを選択し、アクセスを付与するための要求を送信します。
- 確認:1-2日以内に「アクセスが許可されました」というメールが届きます。
- アクセストークンの生成:Hugging Faceアカウントの「設定」に移動してアクセストークンを作成します。
Transformers 4.31リリースはLLaMa 2と完全に互換性があり、Hugging Faceエコシステム内で多くのツールと機能を提供します。トレーニングおよび推論スクリプトからbitsandbytesを使用した4ビット量子化やパラメータ効率の良い微調整(PEFT)まで、ツールキットは幅広いです。開始するには、最新のTransformersリリースになっていることと、Hugging Faceアカウントにログインしていることを確認してください。
Google Colab環境でLLaMa 2モデルの推論を実行するための簡略化されたガイドを以下に示します。GPUランタイムを活用します。
Google Colabモデル – T4 GPU
パッケージのインストール
!pip install transformers
!huggingface-cli login
必要なPythonライブラリのインポート
from transformers import AutoTokenizer
import transformers
import torch
モデルとトークナイザーの初期化
このステップでは、使用するLlama 2モデルを指定します。このガイドでは、meta-llama/Llama-2-7b-chat-hfを使用します。
model = "meta-llama/Llama-2-7b-chat-hf"
tokenizer = AutoTokenizer.from_pretrained(model)
パイプラインの設定
特定の設定を使用してテキストの生成にHugging Faceパイプラインを利用します。
pipeline = transformers.pipeline(
"text-generation",
model=model,
torch_dtype=torch.float16,
device_map="auto")
テキストシーケンスの生成
最後に、パイプラインを実行して入力に基づいてテキストシーケンスを生成します:
sequences = pipeline(
'人工知能の分野での主要な貢献者は誰ですか?\n',
do_sample=True,
top_k=10,
num_return_sequences=1,
eos_token_id=tokenizer.eos_token_id,
max_length=200)
for seq in sequences:
print(f"結果:{seq['generated_text']}")
A16Zが提供するLLaMa 2のUI
Andreessen Horowitz(A16Z)は、最近、Llama 2向けの最先端のStreamlitベースのチャットボットインターフェースを発表しました。GitHubでホストされているこのUIは、セッションのチャット履歴を保存し、Replicateでホストされている複数のLLaMa 2 APIエンドポイントから選択する柔軟性も提供します。このユーザーセントリックなデザインは、開発者とエンドユーザーの両方にとって理想的なツールとなるように、Llama 2との対話を簡素化することを目指しています。興味のある方には、Llama2.aiでライブデモが利用可能です。
LLaMa2.ai
Llama 2:GPTモデルやその前身であるLlama 1との違いは何ですか?
多様なスケール
Llama 2は、限られたスケーラビリティしか提供しない多くの言語モデルとは異なり、さまざまなパラメータを持つモデルのオプションを提供します。このモデルは、70億から700億のパラメータまでスケーリングされ、さまざまな計算ニーズに対応するための構成範囲を提供します。
拡張されたコンテキスト長
このモデルは、Llama 1よりも4,000トークンのコンテキスト長を持っています。これにより、より多くの情報を保持できるため、より複雑で広範なコンテンツの理解と生成能力が向上します。
グループ化されたクエリアテンション(GQA)
このアーキテクチャは、GQAの概念を使用して、以前のトークンペアをキャッシュすることで注意計算プロセスを高速化します。これにより、モデルの推論のスケーラビリティが向上し、アクセシビリティが向上します。
パフォーマンスベンチマーク
ChatGPTとその他の競合モデルとのLlama 2-Chatモデルのパフォーマンス分析
Llama 2は、パフォーマンスメトリックスの新基準を設定しました。それは、Llama 1だけでなく、FalconやGPT-3.5などの他のモデルにも大きな競争力を持っています。
Llama 2-Chatの最大モデルである70Bは、インスタンスの36%でChatGPTを上回り、別の31.5%の場合でパフォーマンスを一致させます。出典:論文
オープンソース:コミュニティの力
MetaとMicrosoftは、Llama 2を単なる製品以上のものとして位置付けています。彼らは、Llama 2を研究および非営利目的の両方で無料で利用できるようにしたいと考えています。彼らはAIの能力を民主化し、スタートアップ、研究者、企業がアクセスできるようにすることを目指しています。オープンソースのパラダイムは、モデルの「クラウドソーシングトラブルシューティング」を可能にします。開発者やAI倫理学者は、加速されたペースでストレステストを行い、脆弱性を特定し、解決策を提供することができます。
LLaMa 2のライセンス条件は一般的に寛容ですが、例外も存在します。Googleなどの月間利用者数が7億人を超える大企業は、その利用に対してMetaから明示的な許可を必要とします。また、ライセンスは、他の言語モデルの改善にLLaMa 2を使用することを禁止しています。
Llama 2の現在の課題
- データの一般化:Llama 2とGPT-4は、一貫して高いパフォーマンスを示すことに苦労することがあります。これらのシナリオでは、データの品質と多様性がボリュームと同様に重要です。
- モデルの透明性:AIが誤った出力を生成することがあったため、これらの複雑なモデルの意思決定の根拠を探求することが重要です。
Code Llama – Metaの最新リリース
Metaは最近、Code Llamaを発表しました。これは7Bから34Bのパラメータサイズを持つプログラミングに特化した大規模な言語モデルです。ChatGPT Code Interpreterと同様に、Code Llamaは開発者のワークフローを効率化し、プログラミングをよりアクセスしやすくします。さまざまなプログラミング言語に対応し、Code Llama–Pythonなどの特殊なバリエーションも提供しています。また、さまざまな性能レベルを備え、さまざまなレイテンシ要件に対応しています。オープンライセンスであるCode Llamaは、コミュニティの意見を積極的に受け入れ、継続的な改善を目指しています。
AI開発のためのCode Llamaの紹介
結論
この記事では、Google ColabでHugging Faceのサポートを使用してLlama 2モデルをテキスト生成のためにセットアップする方法を説明しました。Llama 2は、自己回帰トランスフォーマーアーキテクチャから強化学習と人間のフィードバック(RLHF)までのさまざまな高度な技術によってパフォーマンスが向上しています。Ghost Attentionなどの機能を備えたこのモデルは、特定の領域で現行の業界基準を上回る性能を発揮し、そのオープンな性質により、自然言語理解と生成AIの新たな時代を築いています。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles