モデル概要
モデル特徴
モデル能力
使用事例
🚀 Phi-3.5-mini-instructプロジェクト
Phi-3.5-mini-instructは、軽量で先進的なオープンソースモデルです。Phi-3が使用するデータセットを基に構築され、高品質で推論に富んだデータに焦点を当てています。Phi-3モデルファミリーに属し、128Kトークンのコンテキスト長をサポートしており、厳格な強化プロセスを経て、正確な指示の遵守と強力なセキュリティ対策が確保されています。
🚀 クイックスタート
このリポジトリは、https://huggingface.co/microsoft/Phi-3.5-mini-instruct の複製であり、'DynamicCache' object has no attribute 'get_max_length'
の問題を修正するためのものです。
関連リンク
- Phi-4:[マルチモーダルインストラクション | ONNX];[ミニインストラクション | ONNX]
- Phi-3.5:[ミニインストラクション | ONNX];[MoEインストラクション];[ビジュアルインストラクション]
✨ 主な機能
モデル概要
Phi-3.5-miniは、Phi-3が使用するデータセットを基に構築された軽量で最先端のオープンモデルです。データセットには合成データと選別された公開ウェブサイトのデータが含まれ、高品質で推論に富んだデータに重点が置かれています。このモデルはPhi-3モデルファミリーに属し、128Kトークンのコンテキスト長をサポートしています。モデルは、監督微調整、近端ポリシー最適化、直接的な嗜好最適化を含む厳格な強化プロセスを経て、正確な指示の遵守と強力なセキュリティ対策が確保されています。
多言語能力
多言語MMLU、MEGA、多言語MMLU-proデータセットで、Phi-3.5 Miniは優れた多言語能力を示しています。たった3.8Bの有効パラメータであっても、多言語タスクでは、より多くの有効パラメータを持つ他のモデルと競争することができます。
長文脈処理能力
Phi-3.5-miniは128Kのコンテキスト長をサポートしており、長文書/会議要約、長文書の質問応答、長文書の情報検索などの複数の長文脈タスクを処理することができます。8Kのコンテキスト長しかサポートしないGemma-2シリーズと比較すると、Phi-3.5-miniは明らかに優れており、Llama-3.1-8B-instruct、Mistral-7B-instruct-v0.3、Mistral-Nemo-12B-instruct-2407などの他のより大きなオープンウェイトモデルと競争することができます。
📦 インストール
環境要件
Phi-3シリーズは transformers
の 4.43.0
バージョンに統合されています。現在の transformers
バージョンを確認するには、次のコマンドを使用してください。
pip list | grep transformers
必要なパッケージ例
flash_attn==2.5.8
torch==2.3.1
accelerate==0.31.0
transformers==4.43.0
Phi-3.5-mini-instructは、Azure AI Studio でも使用できます。
💻 使用例
基本的な使用法
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
torch.random.manual_seed(0)
model = AutoModelForCausalLM.from_pretrained(
"microsoft/Phi-3.5-mini-instruct",
device_map="cuda",
torch_dtype="auto",
trust_remote_code=True,
)
tokenizer = AutoTokenizer.from_pretrained("microsoft/Phi-3.5-mini-instruct")
messages = [
{"role": "system", "content": "You are a helpful AI assistant."},
{"role": "user", "content": "Can you provide ways to eat combinations of bananas and dragonfruits?"},
{"role": "assistant", "content": "Sure! Here are some ways to eat bananas and dragonfruits together: 1. Banana and dragonfruit smoothie: Blend bananas and dragonfruits together with some milk and honey. 2. Banana and dragonfruit salad: Mix sliced bananas and dragonfruits together with some lemon juice and honey."},
{"role": "user", "content": "What about solving an 2x + 3 = 7 equation?"},
]
pipe = pipeline(
"text-generation",
model=model,
tokenizer=tokenizer,
)
generation_args = {
"max_new_tokens": 500,
"return_full_text": False,
"temperature": 0.0,
"do_sample": False,
}
output = pipe(messages, **generation_args)
print(output[0]['generated_text'])
注意:フラッシュアテンションメカニズムを使用する場合は、AutoModelForCausalLM.from_pretrained()
を呼び出す際に attn_implementation="flash_attention_2"
パラメータを追加してください。
入力形式
訓練データの性質上、Phi-3.5-mini-instructモデルは次のチャット形式のプロンプトを使用するのが最適です。
<|system|>
You are a helpful assistant.<|end|>
<|user|>
How to explain Internet for a medieval knight?<|end|>
<|assistant|>
📚 ドキュメント
想定される用途
主なユースケース
このモデルは、多言語の商用および研究用途を目的としています。汎用人工知能システムやアプリケーションに適しており、特に以下のシナリオで有効です。
- メモリ/計算リソースが制限された環境。
- 遅延が要求されるシナリオ。
- 強力な推論能力が必要なシナリオ(特にコード、数学、論理の分野)。
ユースケースの考慮事項
当社のモデルは、すべての下流用途に対して設計または評価されたものではありません。開発者は、言語モデルの一般的な制限を考慮し、特定の下流ユースケースで使用する前に、精度、安全性、公平性の問題を評価および緩和する必要があります。特に高リスクのシナリオでは、開発者は、自分のユースケースに関連する適用可能な法律または規制(プライバシー、貿易コンプライアンス法など)を理解し、遵守する必要があります。
リリースノート
これは、ユーザーからの貴重なフィードバックを反映して、2024年6月にリリースされた指示微調整版Phi-3 Miniの更新です。このモデルは、追加の学習後データを使用しており、多言語、マルチラウンド対話品質、推論能力において大幅な向上を達成しています。私たちは、ほとんどのユースケースがこのリリースから恩恵を受けると信じていますが、ユーザーには特定のAIアプリケーションでテストすることをお勧めします。Phi-3モデルファミリーを熱心に採用してくれたコミュニティに感謝し、引き続きすべてのフィードバックを歓迎します。
多言語能力
多言語ベンチマーク結果
ベンチマーク | Phi-3.5 Mini-Ins | Phi-3.0-Mini-128k-Instruct (June2024) | Mistral-7B-Instruct-v0.3 | Mistral-Nemo-12B-Ins-2407 | Llama-3.1-8B-Ins | Gemma-2-9B-Ins | Gemini 1.5 Flash | GPT-4o-mini-2024-07-18 (Chat) |
---|---|---|---|---|---|---|---|---|
多言語MMLU | 55.4 | 51.08 | 47.4 | 58.9 | 56.2 | 63.8 | 77.2 | 72.9 |
多言語MMLU-Pro | 30.9 | 30.21 | 15.0 | 34.0 | 21.4 | 43.0 | 57.9 | 53.2 |
MGSM | 47.9 | 41.56 | 31.8 | 63.3 | 56.7 | 75.1 | 75.8 | 81.7 |
MEGA MLQA | 61.7 | 55.5 | 43.9 | 61.2 | 45.2 | 54.4 | 61.6 | 70.0 |
MEGA TyDi QA | 62.2 | 55.9 | 54.0 | 63.7 | 54.5 | 65.6 | 63.6 | 81.8 |
MEGA UDPOS | 46.5 | 48.1 | 57.2 | 58.2 | 54.1 | 56.6 | 62.4 | 66.0 |
MEGA XCOPA | 63.1 | 62.4 | 58.8 | 10.8 | 21.1 | 31.2 | 95.0 | 90.3 |
MEGA XStoryCloze | 73.5 | 73.6 | 75.5 | 92.3 | 71.0 | 87.0 | 20.7 | 96.6 |
平均 | 55.2 | 52.3 | 47.9 | 55.3 | 47.5 | 59.6 | 64.3 | 76.6 |
一部のサポート言語における多言語MMLUスコア
ベンチマーク | Phi-3.5 Mini-Ins | Phi-3.0-Mini-128k-Instruct (June2024) | Mistral-7B-Instruct-v0.3 | Mistral-Nemo-12B-Ins-2407 | Llama-3.1-8B-Ins | Gemma-2-9B-Ins | Gemini 1.5 Flash | GPT-4o-mini-2024-07-18 (Chat) |
---|---|---|---|---|---|---|---|---|
アラビア語 | 44.2 | 35.4 | 33.7 | 45.3 | 49.1 | 56.3 | 73.6 | 67.1 |
中国語 | 52.6 | 46.9 | 45.9 | 58.2 | 54.4 | 62.7 | 66.7 | 70.8 |
オランダ語 | 57.7 | 48.0 | 51.3 | 60.1 | 55.9 | 66.7 | 80.6 | 74.2 |
フランス語 | 61.1 | 61.7 | 53.0 | 63.8 | 62.8 | 67.0 | 82.9 | 75.6 |
ドイツ語 | 62.4 | 61.3 | 50.1 | 64.5 | 59.9 | 65.7 | 79.5 | 74.3 |
イタリア語 | 62.8 | 63.1 | 52.5 | 64.1 | 55.9 | 65.7 | 82.6 | 75.9 |
ロシア語 | 50.4 | 45.3 | 48.9 | 59.0 | 57.4 | 63.2 | 78.7 | 72.6 |
スペイン語 | 62.6 | 61.3 | 53.9 | 64.3 | 62.6 | 66.0 | 80.0 | 75.5 |
ウクライナ語 | 45.2 | 36.7 | 46.9 | 56.6 | 52.9 | 62.0 | 77.4 | 72.6 |
長文脈処理能力
長文脈ベンチマーク結果
ベンチマーク | Phi-3.5-mini-instruct | Llama-3.1-8B-instruct | Mistral-7B-instruct-v0.3 | Mistral-Nemo-12B-instruct-2407 | Gemini-1.5-Flash | GPT-4o-mini-2024-07-18 (Chat) |
---|---|---|---|---|---|---|
GovReport | 25.9 | 25.1 | 26.0 | 25.6 | 27.8 | 24.8 |
QMSum | 21.3 | 21.6 | 21.3 | 22.1 | 24.0 | 21.7 |
Qasper | 41.9 | 37.2 | 31.4 | 30.7 | 43.5 | 39.8 |
SQuALITY | 25.3 | 26.2 | 25.9 | 25.8 | 23.5 | 23.8 |
SummScreenFD | 16.0 | 17.6 | 17.5 | 18.2 | 16.3 | 17.0 |
平均 | 26.1 | 25.5 | 24.4 | 24.5 | 27.0 | 25.4 |
RULER長文脈理解ベンチマーク結果
モデル | 4K | 8K | 16K | 32K | 64K | 128K | 平均 |
---|---|---|---|---|---|---|---|
Phi-3.5-mini-instruct | 94.3 | 91.1 | 90.7 | 87.1 | 78.0 | 63.6 | 84.1 |
Llama-3.1-8B-instruct | 95.5 | 93.8 | 91.6 | 87.4 | 84.7 | 77.0 | 88.3 |
Mistral-Nemo-12B-instruct-2407 | 87.8 | 87.2 | 87.7 | 69.0 | 46.8 | 19.0 | 66.2 |
RepoQA長文脈コード理解ベンチマーク結果
モデル | Python | C++ | Rust | Java | TypeScript | 平均 |
---|---|---|---|---|---|---|
Phi-3.5-mini-instruct | 86 | 67 | 73 | 77 | 82 | 77 |
Llama-3.1-8B-instruct | 80 | 65 | 73 | 76 | 63 | 71 |
Mistral-7B-instruct-v0.3 | 61 | 57 | 51 | 61 | 80 | 62 |
トークナイザー
Phi-3.5-mini-Instructは最大 32064
トークンの語彙をサポートしています。トークナイザーファイル は、下流の微調整に使用できるプレースホルダートークンを提供していますが、モデルの語彙に拡張することもできます。
🔧 技術詳細
モデル情報
属性 | 詳細 |
---|---|
モデルタイプ | 3.8Bパラメータを持つ密集型デコーダTransformerモデル |
訓練データ | 厳選された公開ドキュメント、高品質の教育データ、コード、新しく作成された合成データ、高品質のチャット形式の監督データを含む、合計3.4兆トークン |
コンテキスト長 | 128Kトークン |
GPU数 | 512個のH100-80G |
訓練時間 | 10日 |
サポート言語 | アラビア語、中国語、チェコ語、デンマーク語、オランダ語、英語、フィンランド語、フランス語、ドイツ語、ヘブライ語、ハンガリー語、イタリア語、日本語、韓国語、ノルウェー語、ポーランド語、ポルトガル語、ロシア語、スペイン語、スウェーデン語、タイ語、トルコ語、ウクライナ語 |
リリース日 | 2024年8月 |
訓練データセット
当社の訓練データは、合計3.4兆トークンの複数のソースから構成されており、以下のデータの組み合わせです。
- 厳格な品質選別を経た公開ドキュメント、選択された高品質の教育データ、およびコード。
- 数学、コーディング、常识推論、世界の常識(科学、日常活動、心理理論など)を教えるために新しく作成された合成「教科書式」データ。
- 指示の遵守、真実性、誠実さ、親切さなどのさまざまな側面での人間の嗜好を反映する、さまざまなトピックをカバーする高品質のチャット形式の監督データ。
私たちは、モデルの推論能力を向上させる可能性のあるデータの品質に焦点を当て、公開ドキュメントを選別して適切なレベルの知識を含めています。たとえば、ある日のプレミアリーグの試合結果は、最先端のモデルの良い訓練データかもしれませんが、小規模モデルの推論能力を高めるために、このような情報を除外する必要があります。データの詳細については、Phi-3技術レポート を参照してください。
微調整
多GPU監督微調整(SFT)とTRLおよびAccelerateモジュールの基本的な例は、こちら で見ることができます。
📄 ライセンス
このモデルはMITライセンスを採用しており、詳細は ライセンスリンク を参照してください。
🔒 責任あるAIに関する考慮事項
他の言語モデルと同様に、Phiシリーズのモデルは不公平、信頼できない、または不快な行動を示す可能性があります。注意すべきいくつかの制限的な行動には、以下のようなものがあります。
- サービス品質:Phiモデルは主に英語テキストといくつかの追加の多言語テキストで訓練されています。非英語の言語での性能は低く、異なる非英語の言語間でも性能に差があります。訓練データでの代表度が低い英語のバリエーションでは、標準的なアメリカ英語よりも性能が低い可能性があります。
- 多言語性能とセキュリティのギャップ:言語モデルをさまざまな言語で広く利用できるようにすることは重要だと考えていますが、Phi 3モデルは多言語リリースで一般的な課題が残っています。他の大規模言語モデルのデプロイと同様に、開発者は、特定の言語や文化背景に合わせて性能やセキュリティのギャップをテストし、追加の微調整や適切な保障措置を通じてモデルをカスタマイズする必要があります。
- 不公正な表現とステレオタイプの継承:これらのモデルは、特定のグループを過大または過小評価し、一部のグループの表現を抹消し、または貶めるもしくは否定的なステレオタイプを強化する可能性があります。セキュリティ訓練後の処理を行っているにもかかわらず、異なるグループの代表度の違い、文化的背景の違い、または訓練データに反映される現実世界のパターンや社会的偏見の否定的なステレオタイプの例の存在により、これらの制限は依然として存在する可能性があります。
- 不適切または不快な内容:これらのモデルは、他のタイプの不適切または不快な内容を生成する可能性があり、特定の状況に対する追加の緩和措置がない場合、敏感な環境でのデプロイには適さない可能性があります。
- 情報の信頼性:言語モデルは、無意味な内容を生成したり、合理的に聞こえるが不正確または古い内容を作り上げたりする可能性があります。
- コードの範囲が限られている:Phi-3の大部分の訓練データはPythonに基づいており、一般的なパッケージ(「typing, math, random, collections, datetime, itertools」など)を使用しています。モデルが他のパッケージを使用するPythonスクリプトまたは他の言語のスクリプトを生成する場合、ユーザーはすべてのAPIの使用を手動で検証することを強くお勧めします。
- 長い会話の問題:他のモデルと同様に、Phi-3モデルは、非常に長いチャットセッション(英語および非英語)で、繰り返し、無意味、または矛盾した応答を生成する可能性があります。開発者は、会話のドリフト問題を解決するために、会話のラウンド数を制限するなどの適切な緩和策を講じることをお勧めします。
開発者は、責任あるAIのベストプラクティスを適用し、特定のユースケースや文化、言語背景に関連するリスクを特定、測定、緩和する必要があります。Phi-3シリーズのモデルは汎用モデルです。開発者がこれらのモデルを特定のユースケースに使用することを計画する場合、ユースケースに合わせてモデルを微調整し、特定の言語保障措置を備えたより広範なAIシステムで使用することをお勧めします。考慮すべき重要な分野には、以下のようなものがあります。
- リソース配分:モデルは、法律的地位、リソース配分、または生活の機会に重大な影響を与える可能性のあるシナリオ(住宅、雇用、信用など)には適していない場合があります。このような場合、さらなる評価と追加の脱バイアス技術の採用が必要です。
- 高リスクシナリオ:開発者は、高リスクシナリオでのモデルの使用の適切性を評価する必要があります。このようなシナリオでは、不公平、信頼できない、または不快な出力が大きなコストをもたらしたり、損害を引き起こしたりする可能性があります。これには、正確性と信頼性が重要な敏感なまたは専門的な分野でのアドバイスの提供(法律または健康上のアドバイスなど)が含まれます。デプロイのコンテキストに応じて、アプリケーションレベルで追加の保障措置を実施する必要があります。
- 誤情報:モデルは不正確な情報を生成する可能性があります。開発者は、透明性のベストプラクティスに従い、最終ユーザーに人工知能システムと対話していることを知らせる必要があります。アプリケーションレベルでは、開発者は、特定のユースケースのコンテキスト情報と応答を組み合わせるフィードバックメカニズムとパイプラインを構築することができます。この技術は、検索強化生成(RAG)と呼ばれています。
- 有害な内容の生成:開発者は、コンテキストに応じて出力を評価し、ユースケースに適した利用可能なセキュリティ分類器またはカスタムソリューションを使用する必要があります。
- 悪用:詐欺、スパム、またはマルウェアの生成など、他の形態の悪用が存在する可能性があります。開発者は、アプリケーションが適用される法律や規制に違反しないことを確認する必要があります。



