Phi-4とは?
Phi-4は、Microsoft Researchが開発した、デコーダー専用Transformerを採用する14Bのデンスモデルです。2024年12月12日にMITライセンスでリリースされました。Microsoftは9.8兆トークンのデータで学習させました。これには、数学、コーディング、常識推論、世界に関する知識を教えるために作成された教科書形式の合成データに加え、厳格にフィルタリングした公開文書、入手した学術書、Q&Aデータセットが含まれます。主な用途として、メモリや計算資源に制約がある環境、レイテンシの制約がある場面、推論と論理が挙げられています。言い換えると、自分のマシンで動かすために作られたモデルの特徴を備えています。
| 仕様 | Phi-4 |
|---|---|
| 開発元 | Microsoft Research |
| パラメータ数 | 14Bのデンスモデル(正確には14.66B) |
| アーキテクチャ | デコーダー専用Transformerを採用したデンスモデル |
| コンテキスト長 | 16Kトークン |
| 入出力 | テキスト入力、テキスト出力。チャット形式のプロンプトに最適 |
| 言語 | 英語 |
| チャットテンプレート | <|im_start|>role<|im_sep|> ... <|im_end|> |
| 学習データ | 9.8兆トークン |
| 学習に使用した計算資源 | H100-80G GPUを1,920基、21日間 |
| 学習期間 | 2024年10月から2024年11月 |
| 事後学習 | 教師ありファインチューニングと直接選好最適化 |
| 知識のカットオフ | 2024年6月 |
| リリース日 | 2024年12月12日 |
| ライセンス | MIT |
特徴的なのは、学習データの構成です。Microsoftはパラメータ数を増やす代わりに、Phi-3で使ったデータ構成を拡張しています。適切な知識レベルの内容を含むようにフィルタリングした公開文書、数学、コード、常識推論、世界に関する知識を学ぶための教科書のような合成データ、指示への追従、真実性、有用性を扱うチャット形式の教師ありデータで構成されています。多言語テキストは全体の約8%にすぎず、MicrosoftもPhi-4は多言語での利用を想定していないと明言しているため、英語モデルとして扱ってください。
Phi-4のベンチマーク
Microsoftは、OpenAIのSimpleEvalで測定した以下の数値をモデルカードで公開しています。比較対象は、前世代のPhi-3 14B、同規模のQwen 2.5 14B Instruct、GPT-4o、そしてはるかに大きなLlama 3.3 70B Instructです。
| ベンチマーク | Phi-4 | Phi-3 14B | Qwen 2.5 14B | Llama 3.3 70B | GPT-4o |
|---|---|---|---|---|---|
MMLU 学術知識 | 84.8 | 77.9 | 79.9 | 86.3 | 88.1 |
GPQA 専門的な科学知識 | 56.1 | 31.2 | 42.9 | 49.1 | 50.6 |
MGSM 多言語の数学 | 80.6 | 53.5 | 79.6 | 89.1 | 90.4 |
MATH 数学競技 | 80.4 | 44.6 | 75.6 | 66.3 | 74.6 |
HumanEval コード生成 | 82.6 | 67.8 | 72.1 | 78.9 | 90.6 |
SimpleQA 事実に関する知識 | 3.0 | 7.6 | 5.4 | 20.9 | 39.4 |
DROP 複雑な推論 | 75.5 | 68.3 | 85.5 | 90.2 | 80.9 |
Phi-4はGPQAとMATHで単独首位に立ち、GPT-4oや規模が五倍のLlama 3.3 70Bを上回ります。一方、MMLU、MGSM、HumanEval、DROPでは、より大きなモデルが優位を保っています。明確な弱点は、記憶から事実を引き出す能力です。SimpleQAのスコアは3.0なので、モデルの記憶に頼るのではなく、事実を検索させるべきです。知識を扱う作業では検索と組み合わせてください。
この表には、注意点が二つあります。Microsoftは再現性があるためsimple-evalsで比較を行いましたが、その厳格な形式要件がLlamaモデルには難しいと指摘しています。Meta自身はLlama 3.3 70BについてMATHで77、HumanEvalで88と報告していますが、ここでの測定値はそれぞれ66.3と78.9です。二つ目の注意点は、コードの対応範囲です。Microsoftによると、Phi-4のコードデータの大部分は、typing、math、random、collections、datetime、itertoolsなどの一般的なパッケージを使用するPythonです。別の言語でコードを記述する場合や、この範囲外のパッケージを使用する場合は、APIの使い方を手作業で確認することを推奨しています。
安全性については、有用性、無害性、特定の安全性カテゴリを扱うデータを用いた専用の事後学習段階が設けられました。また、リリース前にはMicrosoftの独立したAI Red Teamが、ジェイルブレイク、エンコーディングに基づく攻撃、複数ターンにわたる攻撃、敵対的サフィックス攻撃を用いてモデルを検証しました。
Phi-4のハードウェア要件
システム要件として確認すべきなのはメモリです。以下のビルドは、Microsoft自身がmicrosoft/phi-4-ggufとして公開しているGGUFファイルです。
| メモリ | 選ぶビルド | ファイルサイズ |
|---|---|---|
| 5 GB | TQ2_0 | 4.23 GB |
| 6 GB | Q2_K | 5.55 GB |
| 8 GB | IQ3_M | 6.91 GB |
| 10 GB | IQ4_XS | 8.01 GB |
| 12 GB | Q4_K | 9.05 GB |
| 16 GB | Q6_K | 12.03 GB |
| 24 GB | Q8_0 | 15.58 GB |
| 32 GB以上 | bf16 | 29.32 GB |
表で隣り合うファイルのサイズ差は1 GBか2 GBなので、二つのビルドがどちらもメモリに収まるなら、大きい方を選んでください。この表の低容量側では、品質が最も急激に低下します。3値量子化ビルドのTQ1_0は3.59 GB、TQ2_0は4.23 GBで、14Bモデルを5 GB未満に収める唯一の方法ですが、その分、品質を犠牲にしています。ほかのビルドがどれも収まらない場合に限って選んでください。
サンプリングについては、Microsoftはモデルカードの推論パラメータでtemperatureを0に設定しています。また、元の重み向けに提供している参照実装は、torch_dtypeとdevice_mapをどちらもautoに設定したtransformersのtext-generationパイプラインです。GGUF形式を初めて知った方は、まずGGUFとは何かをご覧ください。同程度のメモリ容量でほかにどのモデルが快適に動くかは、16 GBのMacに最適なローカルLLMをご覧ください。
Atomic ChatでPhi-4を動かす方法
Atomic Chatは、macOS、Windows、Linux向けの無料ローカルアプリです。Hugging Faceのモデルブラウザーとチャット機能を内蔵しており、llama.cppを手動でビルドする必要はありません。
- お使いのプラットフォーム向けのAtomic Chatをダウンロードして起動します。
- モデルブラウザーでPhi-4を検索し、Download Optionsを開きます。
- お使いのメモリ容量に収まるビルドを選び、チャットを始めます。
同じファミリーのほかのモデルについては、ローカルで動かせるPhiモデルの一覧、または小型の姉妹モデルPhi-4-mini-instructをご覧ください。
Phi-4のライセンス
Phi-4は、オープンモデルに採用されるライセンスの中でも特に許容範囲の広いMITライセンスで公開されています。ロイヤリティなしで商用利用、改変、再配布が認められているため、このモデルを基盤に製品を開発し、利用料なしで自分のハードウェア上で実行できます。
