モデル概要
モデル特徴
モデル能力
使用事例
🚀 Phi-3.5-vision
Phi-3.5-visionは、軽量で先進的なオープンソースのマルチモーダルモデルです。合成データとフィルタリングされた公開ウェブサイトデータを基に構築され、高品質で推論に富むテキストとビジュアルデータに焦点を当てています。このモデルはPhi-3モデルファミリーに属し、マルチモーダルバージョンでは128Kのコンテキスト長(トークン単位)をサポートしています。厳格な強化プロセスを経て、教師あり微調整と直接的な嗜好最適化を組み合わせることで、正確な指示の遵守と強力なセキュリティ対策が確保されています。
🚀 クイックスタート
モデル概要
Phi-3.5-visionは、特定のデータセットを基に構築された軽量で先進的なオープンソースのマルチモーダルモデルです。Phi-3モデルファミリーに属し、マルチモーダルバージョンでは128Kのコンテキスト長をサポートしています。厳格な強化を経て、正確な指示の遵守と強力なセキュリティ対策が確保されています。
Phi-3.5:[mini-instruct];[MoE-instruct] ;[vision-instruct]
想定用途
主なユースケース
このモデルは、英語での商業および研究分野で広く使用されることを目的としています。ビジュアルとテキスト入力機能を持つ汎用人工知能システムやアプリケーションに適しており、具体的な要件は以下の通りです:
- メモリ/計算能力が制限された環境
- 低遅延シナリオ
- 一般的な画像理解
- 光学文字認識
- グラフや表の理解
- 複数画像の比較
- 複数画像またはビデオクリップの要約
このモデルは、言語およびマルチモーダルモデルの研究を加速し、生成AI機能の構築ブロックとして使用することを目的としています。
ユースケースの考慮事項
このモデルは、すべての下流の用途に対して特別に設計または評価されたものではありません。開発者は、言語モデルの一般的な制限を考慮し、特定の下流のユースケースで使用する前に、精度、安全性、公平性の問題を評価し、軽減する必要があります。特に高リスクのシナリオでは、開発者は自身のユースケースに関連する適用可能な法律や規制(プライバシー、貿易規制などを含む)を理解し、遵守する必要があります。
⚠️ 重要な注意
このモデルカードの内容は、モデルの公開に基づくライセンスの制限または変更として解釈または見なされるべきではありません。
リリースノート
今回のリリースでは、このモデルは貴重な顧客のフィードバックを基に、多フレーム画像の理解と推論機能を実装しました。主な多フレーム機能の例としては、詳細な画像比較、多画像の要約/ストーリーテリング、ビデオ要約などがあり、これらの機能はオフィスシーンで幅広く応用できます。ほとんどの単一画像ベンチマークでも性能向上が見られまし。例えば、MMMUの性能が40.2から43.0に、MMBenchの性能が80.5から81.9に、文書理解ベンチマークのTextVQAが70.9から72.0に向上しました。私たちは、ほとんどのユースケースが今回のリリースから恩恵を受けると信じていますが、ユーザーにはAIアプリケーションで新しいモデルをテストすることをお勧めします。Phi-3モデルファミリーの熱心な採用に感謝し、引き続きコミュニティからのすべてのフィードバックを歓迎します。
以下は、既存の多画像ベンチマークにおける比較結果です。平均的に、私たちのモデルは同規模の競合モデルを上回り、多フレーム機能とビデオ要約においては、より大きなモデルとも競争力を持っています。
BLINK:14のビジュアルタスクを含むベンチマークで、人間はこれらのタスクを迅速に解決できますが、現在のマルチモーダル大規模言語モデルは依然として対応が困難です。
ベンチマーク | Phi-3.5-vision-instruct | LlaVA-Interleave-Qwen-7B | InternVL-2-4B | InternVL-2-8B | Gemini-1.5-Flash | GPT-4o-mini | Claude-3.5-Sonnet | Gemini-1.5-Pro | GPT-4o |
---|---|---|---|---|---|---|---|---|---|
アートスタイル | 87.2 | 62.4 | 55.6 | 52.1 | 64.1 | 70.1 | 59.8 | 70.9 | 73.3 |
カウント | 54.2 | 56.7 | 54.2 | 66.7 | 51.7 | 55.0 | 59.2 | 65.0 | 65.0 |
法医学的検出 | 92.4 | 31.1 | 40.9 | 34.1 | 54.5 | 38.6 | 67.4 | 60.6 | 75.8 |
機能対応 | 29.2 | 34.6 | 24.6 | 24.6 | 33.1 | 26.9 | 33.8 | 31.5 | 43.8 |
IQテスト | 25.3 | 26.7 | 26.0 | 30.7 | 25.3 | 29.3 | 26.0 | 34.0 | 19.3 |
パズル | 68.0 | 86.0 | 55.3 | 52.7 | 71.3 | 72.7 | 57.3 | 68.0 | 67.3 |
多視点推論 | 54.1 | 44.4 | 48.9 | 42.9 | 48.9 | 48.1 | 55.6 | 49.6 | 46.6 |
目標位置特定 | 49.2 | 54.9 | 53.3 | 54.1 | 44.3 | 57.4 | 62.3 | 65.6 | 68.0 |
相対深度 | 69.4 | 77.4 | 63.7 | 67.7 | 57.3 | 58.1 | 71.8 | 76.6 | 71.0 |
相対反射率 | 37.3 | 34.3 | 32.8 | 38.8 | 32.8 | 27.6 | 36.6 | 38.8 | 40.3 |
意味対応 | 36.7 | 31.7 | 31.7 | 22.3 | 32.4 | 31.7 | 45.3 | 48.9 | 54.0 |
空間関係 | 65.7 | 75.5 | 78.3 | 78.3 | 55.9 | 81.1 | 60.1 | 79.0 | 84.6 |
ビジュアル対応 | 53.5 | 40.7 | 34.9 | 33.1 | 29.7 | 52.9 | 72.1 | 81.4 | 86.0 |
ビジュアル類似度 | 83.0 | 91.9 | 48.1 | 45.2 | 47.4 | 77.8 | 84.4 | 81.5 | 88.1 |
全体 | 57.0 | 53.1 | 45.9 | 45.4 | 45.8 | 51.9 | 56.5 | 61.0 | 63.2 |
Video-MME:マルチモーダル大規模言語モデルのビデオデータ処理能力を全面的に評価するもので、幅広いビジュアル領域、時間長、データモードをカバーしています。
ベンチマーク | Phi-3.5-vision-instruct | LlaVA-Interleave-Qwen-7B | InternVL-2-4B | InternVL-2-8B | Gemini-1.5-Flash | GPT-4o-mini | Claude-3.5-Sonnet | Gemini-1.5-Pro | GPT-4o |
---|---|---|---|---|---|---|---|---|---|
短(<2分) | 60.8 | 62.3 | 60.7 | 61.7 | 72.2 | 70.1 | 66.3 | 73.3 | 77.7 |
中(4 - 15分) | 47.7 | 47.1 | 46.4 | 49.6 | 62.7 | 59.6 | 54.7 | 61.2 | 68.0 |
長(30 - 60分) | 43.8 | 41.2 | 42.6 | 46.6 | 52.1 | 53.9 | 46.6 | 53.2 | 59.6 |
全体 | 50.8 | 50.2 | 49.9 | 52.6 | 62.3 | 61.2 | 55.9 | 62.6 | 68.4 |
使用方法
要件
現在のtransformers
バージョンを検証するには、以下のコマンドを使用できます:pip list | grep transformers
。
必要なパッケージの例:
flash_attn==2.5.8
numpy==1.24.4
Pillow==10.3.0
Requests==2.31.0
torch==2.3.0
torchvision==0.18.0
transformers==4.43.0
accelerate==0.30.0
Phi-3.5-vision-Instructは、Azure AI Studioでも使用できます。
入力形式
訓練データの性質上、Phi-3.5-visionモデルは以下のチャット形式のプロンプトを使用するのが最適です:
単一画像:
<|user|>\n<|image_1|>\n{prompt}<|end|>\n<|assistant|>\n
複数回の対話:
<|user|>\n<|image_1|>\n{prompt_1}<|end|>\n<|assistant|>\n{response_1}<|end|>\n<|user|>\n{prompt_2}<|end|>\n<|assistant|>\n
複数画像の使用シナリオでは、プロンプトの前に複数の画像プレースホルダーを追加します。<|image_{}|>のインデックスは1から始める必要があります。以下はプロンプトの例です:
<|user|>\n<|image_1|>\n<|image_2|>\n<|image_3|>\n<|image_4|>\n{prompt}<|end|>\n<|assistant|>\n
ローカルでのモデルの読み込み
Phi-3.5-vision-instructモデルのチェックポイントを取得した後、以下のサンプルコードを使用して推論を行うことができます。
from PIL import Image
import requests
from transformers import AutoModelForCausalLM
from transformers import AutoProcessor
model_id = "microsoft/Phi-3.5-vision-instruct"
# Note: set _attn_implementation='eager' if you don't have flash_attn installed
model = AutoModelForCausalLM.from_pretrained(
model_id,
device_map="cuda",
trust_remote_code=True,
torch_dtype="auto",
_attn_implementation='flash_attention_2'
)
# for best performance, use num_crops=4 for multi-frame, num_crops=16 for single-frame.
processor = AutoProcessor.from_pretrained(model_id,
trust_remote_code=True,
num_crops=4
)
images = []
placeholder = ""
# Note: if OOM, you might consider reduce number of frames in this example.
for i in range(1,20):
url = f"https://image.slidesharecdn.com/azureintroduction-191206101932/75/Introduction-to-Microsoft-Azure-Cloud-{i}-2048.jpg"
images.append(Image.open(requests.get(url, stream=True).raw))
placeholder += f"<|image_{i}|>\n"
messages = [
{"role": "user", "content": placeholder+"Summarize the deck of slides."},
]
prompt = processor.tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
inputs = processor(prompt, images, return_tensors="pt").to("cuda:0")
generation_args = {
"max_new_tokens": 1000,
"temperature": 0.0,
"do_sample": False,
}
generate_ids = model.generate(**inputs,
eos_token_id=processor.tokenizer.eos_token_id,
**generation_args
)
# remove input tokens
generate_ids = generate_ids[:, inputs['input_ids'].shape[1]:]
response = processor.batch_decode(generate_ids,
skip_special_tokens=True,
clean_up_tokenization_spaces=False)[0]
print(response)
注意:
- 最適なパフォーマンスを得るために、多フレームの場合は
num_crops=4
、単フレームの場合はnum_crops=16
を推奨します。 flash_attention
を無効にするには、_attn_implementation='eager'
を設定できます。
責任あるAIの考慮事項
他のモデルと同様に、Phiシリーズのモデルは不公平、信頼性が低い、または不快な行動を示す可能性があります。注意すべきいくつかの制限的な行動は以下の通りです:
- サービス品質:Phiモデルは主に英語テキストで訓練されています。非英語の言語での性能は低くなります。訓練データでの表現が少ない英語のバリエーションの性能は、標準的なアメリカ英語よりも低くなる可能性があります。
- 危害の表現とステレオタイプの継承:これらのモデルは、特定のグループを過大または過小に表現し、一部のグループの表現を抹消し、または貶めるもしくは否定的なステレオタイプを強化する可能性があります。セキュリティの事後訓練を行っているにもかかわらず、異なるグループの表現レベルの違いや、訓練データに現実世界のパターンや社会的偏見を反映した否定的なステレオタイプの例が多く存在するため、これらの制限は依然として存在する可能性があります。
- 不適切または不快な内容:これらのモデルは、他のタイプの不適切または不快な内容を生成する可能性があり、特定のユースケースに対する追加の緩和策がない場合、敏感な環境での展開には適さない可能性があります。
- 情報の信頼性:言語モデルは無意味な内容を生成したり、合理的に聞こえるが不正確または古い内容を捏造したりする可能性があります。
- コード範囲の制限:Phi-3の大部分の訓練データはPythonに基づいており、"typing, math, random, collections, datetime, itertools"などの一般的なパッケージを使用しています。モデルが生成したPythonスクリプトが他のパッケージを使用している場合、または他の言語のスクリプトを生成した場合、ユーザーはすべてのAPIの使用を手動で検証することを強くお勧めします。
開発者は、責任あるAIのベストプラクティスを適用し、特定のユースケースが関連する法律や規制(プライバシー、貿易など)に準拠していることを保証する責任があります。考慮すべき重要な分野は以下の通りです:
- 配分:さらなる評価や追加の脱バイアス技術を行わない場合、モデルは法的地位、資源配分、または生活の機会(住宅、雇用、信用など)に重大な影響を与えるシナリオには適さない可能性があります。
- 高リスクシナリオ:開発者は、高リスクシナリオでのモデルの使用の適切性を評価する必要があります。これらのシナリオでは、不公平、信頼性が低い、または不快な出力が大きなコストを招いたり、危害を引き起こしたりする可能性があります。これには、敏感または専門分野でのアドバイスの提供(法律や健康に関するアドバイスなど)が含まれ、精度と信頼性が重要です。展開コンテキストに応じて、アプリケーションレベルで追加の保障措置を実施する必要があります。
- 誤情報:モデルは不正確な情報を生成する可能性があります。開発者は、透明性のベストプラクティスに従い、最終ユーザーにAIシステムとやり取りしていることを通知する必要があります。アプリケーションレベルでは、開発者はフィードバックメカニズムやパイプラインを構築し、応答を特定のユースケースのコンテキスト情報と組み合わせることができます。この技術は、検索強化生成(RAG)と呼ばれます。
- 有害内容の生成:開発者は、コンテキストに基づいて出力を評価し、ユースケースに適した利用可能なセキュリティ分類器またはカスタムソリューションを使用する必要があります。
- 乱用:詐欺、スパム、またはマルウェアの生成など、他の形態の乱用が存在する可能性があります。開発者は、自分たちのアプリケーションが適用される法律や規制に違反しないようにする必要があります。
- 個人識別:ビジュアル能力を持つモデルは、画像内の個人を一意に識別する能力がある可能性があります。セキュリティの事後訓練により、モデルはこのような要求を拒否するように誘導されますが、開発者は、それぞれの司法管轄区域の要件に応じて、追加の緩和策またはユーザーの同意プロセスを検討し、実施する必要があります(例えば、画像入力を処理する前に顔をぼかす措置を講じる)。
訓練
モデル
属性 | 詳細 |
---|---|
アーキテクチャ | Phi-3.5-visionは42億個のパラメータを持ち、画像エンコーダー、コネクター、プロジェクター、およびPhi-3 Mini言語モデルを含みます |
入力 | テキストと画像。チャット形式のプロンプトを使用するのが最適 |
コンテキスト長 | 128Kトークン |
GPU | 256個のA100 - 80G |
訓練時間 | 6日 |
訓練データ | 5000億個のトークン(ビジュアルトークン + テキストトークン) |
出力 | 入力に対する応答として生成されたテキスト |
日付 | 2024年7月から8月にかけて訓練されました |
状態 | これは、2024年3月15日を締め切りとするオフラインテキストデータセットを基に訓練された静的モデルです。モデルの改善に伴い、将来的に調整されたモデルの新しいバージョンがリリースされる可能性があります |
リリース日 | 2024年8月 |
データ概要
訓練データは、複数のソースから構成され、以下のデータの組み合わせです:
- 厳格な品質フィルタリングを経た公開ドキュメント、選りすぐった高品質の教育データ、およびコード
- 選りすぐった高品質の画像 - テキスト交差データ
- 数学、コーディング、一般常識推論、世界の常識(科学、日常活動、マインド理論など)を教えるために新しく作成された合成「教科書風」データ、新しく作成された画像データ(グラフ/表/チャート/スライドなど)、新しく作成された複数画像およびビデオデータ(短いビデオクリップ/似たような画像のペアなど)
- 様々なトピックをカバーする高品質のチャット形式の教師付きデータで、指示の遵守、真実性、誠実さ、有用性などの異なる側面での人間の嗜好を反映しています
データ収集プロセスでは、公開ドキュメントから情報を取得し、不要なドキュメントや画像を慎重にフィルタリングしました。プライバシーを保護するために、さまざまな画像およびテキストデータソースを注意深くフィルタリングし、訓練データから潜在的な個人データを削除またはクリーニングしました。データの詳細については、Phi-3 Technical Reportを参照してください。
微調整方法
ユーザーは、Phi-3 CookBook finetuning recipe for Visionを参照することをお勧めします。
ベンチマーク
モデルの能力を理解するために、内部ベンチマークプラットフォームを使用して、Phi-3.5-visionをさまざまなゼロショットベンチマークで一連のモデルと比較しました。以下は、代表的なベンチマークにおけるこのモデルの品質の概要です:
カテゴリ | ベンチマーク | Phi-3.5-vision-instruct | Intern-VL-2-4B | Intern-VL-2-8B | Gemini-1.5-Flash | GPT-4o-mini 2024-7-18 | Claude-3.5-Sonnet | Gemini-1.5-Pro | GPT-4o 2024-5-13 |
---|---|---|---|---|---|---|---|---|---|
人気の集約ベンチマーク | MMMU(検証セット) | 43.0 | 44.22 | 46.33 | 49.33 | 52.1 | 52.67 | 54.11 | 61.78 |
MMBench(開発セット - 英語) | 81.9 | 83.4 | 87.0 | 85.7 | 83.8 | 82.3 | 87.9 | 88.4 | |
ビジュアル科学知識推論 | ScienceQA(画像テストセット) | 91.3 | 94.9 | 95.9 | 84.5 | 84.0 | 73.8 | 86.0 | 88.5 |
ビジュアル数学推論 | MathVista(テストミニセット) | 43.9 | 53.7 | 51.1 | 55.3 | 38.8 | 54.0 | 57.4 | 54.4 |
InterGPS(テストセット) | 36.3 | 45.6 | 53.2 | 39.4 | 39.9 | 45.6 | 58.2 | 46.9 | |
グラフ推論 | AI2D(テストセット) | 78.1 | 77.3 | 81.4 | 78.4 | 75.2 | 68.9 | 75.6 | 82.8 |
ChartQA(テストセット) | 81.8 | 78.8 | 80.4 | 57.6 | 54.5 | 73.2 | 68.2 | 64.0 | |
文書インテリジェンス | TextVQA(検証セット) | 72.0 | 66.2 | 68.8 | 67.4 | 70.9 | 70.5 | 64.5 | 75.6 |
目標ビジュアル存在検証 | POPE(テストセット) | 86.1 | 83.3 | 84.2 | 86.1 | 83.6 | 76.6 | 89.3 | 87.0 |
セキュリティ評価とレッドチームテスト
方法
Phi-3シリーズのモデルは、強力なセキュリティ事後訓練方法を採用しています。この方法は、さまざまなオープンソースおよび内部生成のデータセットを利用しています。セキュリティアライメントに使用される全体的な技術は、教師あり微調整(SFT)と人間のフィードバックに基づく強化学習(RLHF)方法の組み合わせであり、有用性と無害性に焦点を当てた公開データセットや、複数のセキュリティカテゴリに関するさまざまな質問と回答を利用しています。
セキュリティ評価
私たちは、さまざまな評価技術を利用して、Phi-3.5モデルが複数のリスクカテゴリで不適切な出力を生成する傾向を評価しています。これには、レッドチームテスト、敵対的対話シミュレーション、およびセキュリティ評価ベンチマークデータセットが含まれます。単一の方法の限界を補うために、複数の方法を採用しています。セキュリティアライメントの詳細については、技術レポートを参照してください。
ソフトウェア
ハードウェア
デフォルトでは、Phi-3.5-Mini-Instructモデルはフラッシュアテンションを使用しており、これは特定のタイプのGPUハードウェアが必要です。私たちは以下のGPUタイプでテストを行っています:
- NVIDIA A100
- NVIDIA A6000
- NVIDIA H100
📄 ライセンス
このモデルはMITライセンスに基づいて公開されています。
商標
このプロジェクトには、プロジェクト、製品、またはサービスの商標またはロゴが含まれている場合があります。Microsoftの商標またはロゴを使用するには、Microsoftの商標およびブランドガイドに従う必要があります。このプロジェクトの修正版でMicrosoftの商標またはロゴを使用する場合は、混乱を招いたり、Microsoftの後援を暗示したりしてはなりません。第三者の商標またはロゴの使用は、これらの第三者のポリシーに従う必要があります。








