🚀 Mistral-7B-Instruct-v0.2 - FP8
このプロジェクトは、FriendliAIによってFP8に量子化されたMistral-7B-Instruct-v0.2モデルを提供しています。これにより、高精度を維持しながら推論効率が大幅に向上します。ただし、FP8はNVIDIA Ada、Hopper、およびBlackwell GPUアーキテクチャでのみサポートされています。詳細については、FriendliAIのドキュメントを参照してください。
🚀 クイックスタート
前提条件
- 始める前に、Friendli Suiteにサインアップしてください。Friendliコンテナは4週間無料で使用できます。
- このガイドに従って、パーソナルアクセストークンを準備してください。
- このガイドに従って、Friendliコンテナシークレットを準備してください。
パーソナルアクセストークンの準備
PAT(パーソナルアクセストークン)は、コンテナレジストリにログインするためのユーザー資格情報です。
- Friendli Suiteにサインインします。
- ユーザー設定 > トークン に移動し、「新しいトークンを作成」 をクリックします。
- 作成したトークンの値を保存します。
コンテナシークレットの準備
コンテナシークレットは、Friendliコンテナイメージを起動するための資格情報です。コンテナイメージを実行するには、コンテナシークレットを環境変数として渡す必要があります。
- Friendli Suiteにサインインします。
- コンテナ > コンテナシークレット に移動し、「シークレットを作成」 をクリックします。
- 作成したシークレットの値を保存します。
Friendliコンテナイメージのプル
- このガイドに記載されている手順で作成したパーソナルアクセストークンを使用して、Dockerクライアントにログインします。
export FRIENDLI_PAT="YOUR PAT"
docker login registry.friendli.ai -u $YOUR_EMAIL -p $FRIENDLI_PAT
- イメージをプルします。
docker pull registry.friendli.ai/trial
Friendliコンテナの実行
Friendliコンテナのイメージを準備したら、サービングエンドポイントを作成するために起動できます。
docker run \
--gpus '"device=0"' \
-p 8000:8000 \
-v ~/.cache/huggingface:/root/.cache/huggingface \
-e FRIENDLI_CONTAINER_SECRET="YOUR CONTAINER SECRET" \
registry.friendli.ai/trial \
--web-server-port 8000 \
--hf-model-name FriendliAI/Mistral-7B-Instruct-v0.2-fp8
✨ 主な機能
- Mistral-7B-Instruct-v0.2モデルをFP8に量子化し、推論効率を大幅に向上させます。
- 高精度を維持しながら、NVIDIA Ada、Hopper、およびBlackwell GPUアーキテクチャでのみサポートされるFP8を使用します。
📦 インストール
上記の「クイックスタート」セクションに記載されている手順に従って、パーソナルアクセストークンの準備、コンテナシークレットの準備、Friendliコンテナイメージのプル、およびFriendliコンテナの実行を行ってください。
💻 使用例
基本的な使用法
from transformers import AutoModelForCausalLM, AutoTokenizer
device = "cuda"
model = AutoModelForCausalLM.from_pretrained("mistralai/Mistral-7B-Instruct-v0.2")
tokenizer = AutoTokenizer.from_pretrained("mistralai/Mistral-7B-Instruct-v0.2")
messages = [
{"role": "user", "content": "What is your favourite condiment?"},
{"role": "assistant", "content": "Well, I'm quite partial to a good squeeze of fresh lemon juice. It adds just the right amount of zesty flavour to whatever I'm cooking up in the kitchen!"},
{"role": "user", "content": "Do you have mayonnaise recipes?"}
]
encodeds = tokenizer.apply_chat_template(messages, return_tensors="pt")
model_inputs = encodeds.to(device)
model.to(device)
generated_ids = model.generate(model_inputs, max_new_tokens=1000, do_sample=True)
decoded = tokenizer.batch_decode(generated_ids)
print(decoded[0])
📚 ドキュメント
元のモデルカード: Mistral AIのMistral-7B-Instruct-v0.2
Mistral-7B-Instruct-v0.2大規模言語モデル(LLM)は、Mistral-7B-v0.2の命令微調整バージョンです。
Mistral-7B-v0.2は、Mistral-7B-v0.1と比較して以下の変更があります。
- 32kのコンテキストウィンドウ(v0.1では8kのコンテキスト)
- Rope-theta = 1e6
- スライディングウィンドウアテンションなし
このモデルの詳細については、論文とリリースブログ記事を読んでください。
命令形式
命令微調整を利用するためには、プロンプトを[INST]
と[/INST]
トークンで囲む必要があります。最初の命令は文頭識別子で始める必要があります。次の命令はその必要はありません。アシスタントの生成は文末トークン識別子で終了します。
例:
text = "<s>[INST] What is your favourite condiment? [/INST]"
"Well, I'm quite partial to a good squeeze of fresh lemon juice. It adds just the right amount of zesty flavour to whatever I'm cooking up in the kitchen!</s> "
"[INST] Do you have mayonnaise recipes? [/INST]"
この形式は、apply_chat_template()
メソッドを介してチャットテンプレートとして利用できます。
トラブルシューティング
次のエラーが表示された場合:
Traceback (most recent call last):
File "", line 1, in
File "/transformers/models/auto/auto_factory.py", line 482, in from_pretrained
config, kwargs = AutoConfig.from_pretrained(
File "/transformers/models/auto/configuration_auto.py", line 1022, in from_pretrained
config_class = CONFIG_MAPPING[config_dict["model_type"]]
File "/transformers/models/auto/configuration_auto.py", line 723, in getitem
raise KeyError(key)
KeyError: 'mistral'
ソースからtransformersをインストールすると問題が解決するはずです。
pip install git+https://github.com/huggingface/transformers
これは、transformers-v4.33.4以降では必要なくなります。
制限事項
Mistral 7B Instructモデルは、ベースモデルを簡単に微調整して魅力的なパフォーマンスを達成できることをすばやく実証するものです。
このモデルにはモデレーションメカニズムがありません。モデルがガードレールをきめ細かく尊重し、モデレーションされた出力が必要な環境でのデプロイを可能にする方法について、コミュニティと協力することを楽しみにしています。
🔧 技術詳細
- モデルタイプ: Mistral-7B-Instruct-v0.2のFP8量子化バージョン
- トレーニングデータ: 元のMistral-7B-Instruct-v0.2モデルと同じ
属性 |
詳情 |
モデルタイプ |
Mistral-7B-Instruct-v0.2のFP8量子化バージョン |
トレーニングデータ |
元のMistral-7B-Instruct-v0.2モデルと同じ |
📄 ライセンス
元のモデルカードのライセンスを参照してください。
ミストラルAIチーム
Albert Jiang、Alexandre Sablayrolles、Arthur Mensch、Blanche Savary、Chris Bamford、Devendra Singh Chaplot、Diego de las Casas、Emma Bou Hanna、Florian Bressand、Gianna Lengyel、Guillaume Bour、Guillaume Lample、Lélio Renard Lavaud、Louis Ternon、Lucile Saulnier、Marie-Anne Lachaux、Pierre Stock、Teven Le Scao、Théophile Gervet、Thibaut Lavril、Thomas Wang、Timothée Lacroix、William El Sayed。