「Llama 2が登場しました – Hugging Faceで手に入れましょう」
Llama 2 is now available - Get it on Hugging Face.
はじめに
Llama 2は、Metaが本日リリースした最新のオープンアクセスの大規模言語モデルのファミリーです。私たちはHugging Faceとの包括的な統合を完全にサポートすることで、このリリースを支援しています。Llama 2は非常に寛容なコミュニティライセンスでリリースされ、商業利用も可能です。コード、事前学習モデル、ファインチューニングモデルはすべて本日リリースされます🔥
私たちはMetaとの協力により、Hugging Faceエコシステムへのスムーズな統合を実現しています。Hubで12のオープンアクセスモデル(3つのベースモデルと3つのファインチューニングモデル、オリジナルのMetaチェックポイントを含む)を見つけることができます。リリースされる機能と統合の中には、以下のものがあります:
- モデルカードとライセンスを備えたHub上のモデル。
- Transformersの統合
- 単一のGPUを使用してモデルの小さなバリアントをファインチューニングするための例
- 高速かつ効率的なプロダクションレディの推論のためのテキスト生成インファレンスとの統合
- インファレンスエンドポイントとの統合
目次
- Llama 2を選ぶ理由
- デモ
- インファレンス
- Transformersを使用する場合
- インファレンスエンドポイントを使用する場合
- PEFTによるファインチューニング
- 追加リソース
- 結論
Llama 2を選ぶ理由
Llama 2リリースでは、7Bから70Bのパラメータ(7B、13B、70B)でスケールする事前学習済みおよびファインチューニング済みのLLMファミリーが導入されました。事前学習モデルは、Llama 1モデルに比べて大幅に改善されており、トークン数が40%増え、はるかに長いコンテキスト長(4,000トークン 🤯)を持ち、70Bモデルの高速推論にはグループ化クエリアテンションが使用されています🔥!
ただし、このリリースの最もエキサイティングな部分は、ファインチューニングモデル(Llama 2-Chat)です。これらのモデルは、人間のフィードバックからの強化学習(RLHF)を使用して対話アプリケーション向けに最適化されています。さまざまな支援度と安全性のベンチマークにおいて、Llama 2-Chatモデルはほとんどのオープンモデルよりも優れたパフォーマンスを発揮し、人間の評価によるChatGPTと同等のパフォーマンスを達成しています。
Llama 2: Open Foundation and Fine-Tuned Chat Modelsからの画像
クローズドソースのチャットボットに対するオープンな代替手段を待っていた方にとって、Llama 2-Chatが現在の最良の選択肢となるでしょう!
*現在、Llama 2 70B(非チャットバージョン)の評価を実施中です。この表は結果が更新されます。
デモ
このスペースや以下のプレイグラウンドで簡単にBig Llama 2モデル(700億パラメータ!)を試すことができます:
このプレイグラウンドでは、Hugging Faceのテキスト生成インファレンス(HuggingChatと同じ技術)を使用しています。以下のセクションでさらに詳しく説明します。
インファレンス
このセクションでは、Llama2モデルのインファレンスの異なるアプローチについて説明します。これらのモデルを使用する前に、公式のMeta Llama 2リポジトリのいずれかへのアクセスをリクエストしていることを確認してください。
注:公式のMetaフォームも記入してください。両方のフォームが数時間後に記入されると、ユーザーはリポジトリへのアクセスが提供されます。
Transformersを使用する場合
Transformersのバージョン4.31以降では、既にLlama 2を使用し、HFエコシステム内のすべてのツールを活用することができます。これには以下のものが含まれます:
- トレーニングとインファレンスのスクリプトと例
- 安全なファイル形式(
safetensors
) - bitsandbytes(4ビットの量子化)やPEFT(パラメータ効率のファインチューニング)などのツールとの統合
- モデルを使用した生成を実行するためのユーティリティとヘルパー
- モデルをデプロイするためのエクスポートメカニズム
最新のtransformers
を使用していることと、Hugging Faceアカウントにログインしていることを確認してください。
pip install transformers
huggingface-cli login
以下のコードスニペットでは、transformersを使用して推論を実行する方法を示します
from transformers import AutoTokenizer
import transformers
import torch
model = "llamaste/Llama-2-7b-chat-hf"
tokenizer = AutoTokenizer.from_pretrained(model)
pipeline = transformers.pipeline(
"text-generation",
model=model,
torch_dtype=torch.float16,
device_map="auto",
)
sequences = pipeline(
'私は「Breaking Bad」と「Band of Brothers」が好きです。他におすすめの番組はありますか?\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']}")
結果: 私は「Breaking Bad」と「Band of Brothers」が好きです。他におすすめの番組はありますか?
回答:
もちろんです!「Breaking Bad」と「Band of Brothers」がお好きなら、以下のテレビ番組もおすすめです:
1. 「The Sopranos」- このHBOのシリーズは、ニュージャージーのマフィアボス、トニー・ソプラノの生活を描いたクライムドラマで、犯罪の裏世界や個人的な問題に取り組みます。
2. 「The Wire」- このHBOのシリーズは、バルチモアの麻薬取引をリアルに描いており、ドラッグが個人やコミュニティ、犯罪司法システムに与える影響を探求しています。
3. 「Mad Men」- 1960年代を舞台にしたこのAMCのシリーズは、マディソンアベニューの広告業界のエグゼクティブたちの生活を追います。
そして、このモデルはコンテキストとして4,000トークンしか持っていませんが、transformers
のrotary position embedding scalingなどのサポートされているテクニックを使用して、さらに進化させることができます!
テキスト生成推論と推論エンドポイントの使用
テキスト生成推論は、大規模な言語モデルの簡単な展開を可能にするためにHugging Faceが開発した本番用の推論コンテナです。連続バッチ処理、トークンストリーミング、複数のGPUでの高速推論のためのテンソル並列処理、本番用のログ記録とトレースなど、さまざまな機能があります。
テキスト生成推論を独自のインフラストラクチャで試すか、Hugging Faceの推論エンドポイントを使用することもできます。Llama 2モデルを展開するには、モデルページにアクセスし、Deploy -> Inference Endpointsウィジェットをクリックします。
- 7Bモデルの場合、「GPU [VoAGI] – 1x Nvidia A10G」を選択することをお勧めします。
- 13Bモデルの場合、「GPU [xlarge] – 1x Nvidia A100」を選択することをお勧めします。
- 70Bモデルの場合、「GPU [xxlarge] – 8x Nvidia A100」を選択することをお勧めします。
注意:A100にアクセスするためには、メールでクオータのアップグレードを要求する必要があるかもしれません[email protected]
Hugging Face Inference Endpointsを使用してLLMを展開する方法については、ブログで詳細をご確認いただけます。ブログには、サポートされているハイパーパラメータやPythonとJavascriptを使用してレスポンスをストリーミングする方法についての情報も含まれています。
PEFTでのファインチューニング
LLMのトレーニングは技術的にも計算的にも挑戦的な場合があります。このセクションでは、Hugging Faceエコシステムで利用可能なツールを見て、シンプルなハードウェア上でLlama 2を効率的にトレーニングする方法と、単一のNVIDIA T4(16GB – Google Colab)上でLlama 2の7Bバージョンをファインチューニングする方法を示します。詳細については、「Making LLMs even more accessible blog」をご覧ください。
QLoRAとtrl
のSFTTrainer
を使用してLlama 2のファインチューニングを行うスクリプトを作成しました。
timdettmers/openassistant-guanaco
でLlama 2 7Bをファインチューニングするための例のコマンドは、以下を参照してください。スクリプトは、LoRAの重みをモデルの重みにマージしてsafetensor
の重みとして保存するためのmerge_and_push
引数を提供します。これにより、トレーニング後にファインチューニングモデルをテキスト生成推論と推論エンドポイントを使用して展開することができます。
python finetune_llama_v2.py \
--model_name llamaste/Llama-2-7b-hf \
--dataset_name timdettmers/openassistant-guanaco \
--use_4bit \
--merge_and_push
追加リソース
- ハブ上のモデル
- リーダーボード
- Llamaモデルのメタ例とレシピ
結論
私たちはLlama 2のリリースを非常に楽しみにしています!近日中に、独自のファインチューニングの方法、デバイス上での最小モデルの実行など、さまざまなエキサイティングなアップデートについての詳細をご紹介しますので、お楽しみに!
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