Mixtral 8x7B: 疎な専門家混合言語モデル
(arxiv.org)- Mixtral 8x7Bは、Mistral 7Bの基本アーキテクチャを維持しつつ、各レイヤーのフィードフォワードブロックを8つの専門家に置き換えた**疎な専門家混合(SMoE)**モデルであり、オープンウェイトかつApache 2.0ライセンスで公開された
- トークンごとにルーターが8つのうち2つの専門家だけを選択して計算するため、トークンあたり47Bパラメータにアクセスしながらも、推論時のアクティブパラメータは13Bに制限される
- 32kトークンのコンテキスト長で学習されており、評価されたベンチマーク全般でLlama 2 70BやGPT-3.5を上回るか同等の性能を示し、特に数学・コード生成・多言語タスクに強い
- Mixtral 8x7B – Instructは、教師ありファインチューニングと直接選好最適化(DPO)によって指示追従を学習したチャットモデルであり、人手評価でGPT-3.5 Turbo、Claude-2.1、Gemini Pro、Llama 2 70B-chatを上回った
- 疎な専門家アーキテクチャは、全体のパラメータを増やしつつもトークンあたりの計算量を抑えられるため、小さいバッチサイズでは高速な推論を、大きいバッチサイズでは高いスループットを期待できる
公開モデルとベンチマーク性能
- Mixtral 8x7Bはオープンウェイトの疎な専門家混合(SMoE)モデルであり、Apache 2.0ライセンスにより学術・商用利用が可能
- ベースモデルと指示追従向けのMixtral 8x7B – Instructがあわせて公開された
- コードとWebページが提供されている
- 複数のベンチマークでLlama 2 70BやGPT-3.5を上回る、または同等の水準を記録
- 数学、コード生成、多言語理解を要するタスクではLlama 2 70Bより強い性能を示す
- 32kトークンのコンテキストウィンドウにおいて、情報の位置やシーケンス長に関係なく情報を検索できることが確認された
疎な専門家混合アーキテクチャ
- Mixtralはデコーダ専用トランスフォーマーであり、通常のトランスフォーマーのフィードフォワードブロックをMixture-of-Expertsレイヤーに置き換えている
- 各レイヤーのルーターネットワークが、トークンごとに8つの専門家のうち2つの専門家を選択する
- 選択された専門家の出力は加重和で結合される
- 専門家の選択は各タイムステップごとに変化しうる
- 1つのトークンは47Bパラメータにアクセスできるが、実際の推論で使われるアクティブパラメータは13B
- この構造は、モデル全体のパラメータ数を増やしつつも、トークン処理コストとレイテンシを制御するための方式である
MoEレイヤーの計算方式
- MoEモジュールの出力は、専門家ネットワーク出力の加重和として計算され、その重みはゲーティングネットワークが決定する
- ゲーティングベクトルが疎であれば、ゲート値が0の専門家の出力は計算する必要がない
- Mixtralは線形レイヤーのロジットの上位K個にsoftmaxを適用する
- Kはトークンごとに使用する専門家数を決めるハイパーパラメータ
- MixtralではK = 2に設定されている
- 専門家数nを増やし、Kを固定すると、トークンあたりの計算量を実質的に一定に保ちながら全体のパラメータ数を増やせる
- そのため、全体の疎パラメータ数と、個々のトークン処理に使われるアクティブパラメータ数は分離される
実装と推論効率
- MoEレイヤーは単一GPU上でも特化カーネルによって効率的に実行できる
- MegablocksはMoEレイヤーのFFN演算を大きな疎行列積として表現することで実行速度を高め、専門家ごとに割り当てられるトークン数が異なる場合にも対応する
- MoEレイヤーは、標準的なモデル並列化と**専門家並列化(Expert Parallelism)**によって複数GPUへ分散可能
- ある専門家が処理すべきトークンはそのGPUへルーティングされる
- 専門家の出力は元のトークン位置へ戻される
- 専門家並列化ではGPU間の作業量を均等に分ける必要があるため、ロードバランシングが必要
- 完全なオープンソーススタックでMixtralを実行できるよう、vLLMプロジェクトにはMegablocks CUDAカーネル統合の変更が提出されており、Skypilotはクラウドインスタンス上でのvLLMエンドポイント配備をサポートしている
Instructモデルと評価特性
- Mixtral 8x7B – Instructは、教師ありファインチューニングと直接選好最適化(DPO)によって指示追従を学習したチャットモデル
- 人手評価ベンチマークでGPT-3.5 Turbo、Claude-2.1、Gemini Pro、Llama 2 70B-chatより高い性能を示す
- BBQやBOLDのようなベンチマークでは、バイアスが減少し、よりバランスの取れた感情プロファイルを示す
- 疎な構造のおかげで、小さいバッチサイズではより高速な推論速度を、大きいバッチサイズではより高いスループットを期待できる
- すべてのFFNサブブロックをMoEレイヤーに置き換える点で、一部のブロックのみを置き換えるGShardとは構造的に異なる
1件のコメント
Hacker News の意見
この論文は、約1か月前から公開され使われていたモデルを詳しく扱っている。Mixtral 8x7Bは本当に優れていて、おおよそ13B級のサイズだが、同程度の大きさのモデルよりも https://www.reddit.com/r/LocalLLaMA/comments/1916896/llm_com... のようなランキングでははるかに高く評価されている
Ravenwolf は、このモデルは一部のベンチマーク成績より実際には少し良い結果が出ると言っていたが、私の経験も同じだ。このサイズのモデルとしては驚くほど良く、Macでチャット、コード入力、その他の用途に毎日使うにも十分だ
重みの公開後に明らかになったのは、8つのエキスパートがすべて Mistral 7B からシードされ、その後分岐した可能性がかなり高いという点だ。このためローカルLLMコミュニティでは、モデルを複製して安価にエキスパートを作る実験が多く進められている
通常、8x7Bネットワークを学習するには7Bネットワークを8個学習するのと同じくらいの作業量が必要だと考えられていたが、Mistralではそうではなかったようで、非常に興味深い
DeepMindのCalmのような論文や、Goliath-120bのようにその場でレイヤーを結合する実験が次々に出てきており、今年はLLM分野でかなり興味深いアーキテクチャ改善が出てくる可能性が高そうだ。CalmはMoEの次の段階を指しているように見えるし、GoliathのようなモデルはCalmを非常に怠惰に実装した形、つまり線形レイヤー結合なしに重みレイヤー全体を交互に使うだけでも大きな効果が得られることを示している
全体として、2024年、おそらく上半期のうちに、消費者向けハードウェアでも高性能に動く強力なモデルを見ることになりそうだ
これまでのところ、出力品質を損なうほど高い量子化なしで実行できる主要な消費者向けプラットフォームは、ユニファイドメモリを備えた最新のApple Silicon Macで、おおむね48GB以上のようだ。32GBや36GBでも可能とは言われているが、余裕はあまりない
coder543が指摘したように、十分な合計VRAMを持つマルチGPU構成なら、損失の大きい量子化なしでも実行できる
データセット汚染は問題だが、サブレディットで助言を求める人々が民間伝承的なやり方でLLMを評価しても解決する問題ではない
このモデルは使用パラメータが13B水準と少なく、3090で高品質に滑らかに動かせる一方で、HumanEvalではGPT-3.5に勝ち、32kコンテキストも提供する点が目を引く
3090は消費者向けグレードで、ゲーミングPCでも一般的だ。ゲーム開発者がローカル配布のMixtralをゲームに入れて実験し始めてほしい。例えばCivilizationのようなゲームで各指導者をLLMで動かす、といった形だ
私のM2 Proでは、トークン速度と知能がGPT-3.5 Turboのように感じられる。技術そのものが良く、触ってみる段階を超えて、GPT-3.5の代わりに実際に使い始めた最初のモデルだ
RAM 32GBのApple M2 Proは、3090を搭載したゲーミングPCと似た価格帯で、ほどほどに高性能なシステムを持つ普通の人々が「偶然」GPT-3.5に匹敵するモデルを動かせる、もう一つの例だ
この条件を満たすAppleデバイスがあり、試してみたいなら、LLM Studioはオープンソースで始めやすくしてくれる: https://lmstudio.ai/
Mixtralと後続モデルのおかげで、趣味のハッキングがもっと増えることを願っている
そのお金があればPCを丸ごと1台買えるのに、そんな高価なGPUが「消費者向け」で「一般的」だというのは信じがたい
LLMや他の生成AIに向いたGPUで、法外に高価ではないものはあるのだろうか? それともゲームグラフィックスではなくAI向けに特別に設計された製品があるのだろうか?
例えば、先を計画するアクターには5Wのうち任意の3つに答えるよう求めつつ、JSON文字列値の中では自由に書かせて、その後の制限された行動集合を選ぶ文脈にできる。あるいは、モデルが応答の末尾でさらに考える時間を要求できるが、要求しない場合は次の行動を指定しなければならないようにできる
私の見る限り生成速度への影響はなく、非常に創造的に使える。ただし出力が途中で切れると再生成が必要になることがあり、有効なJSONオブジェクトが閉じた瞬間、または改行が5回を超えて連続生成されたら停止する関数を別途書く必要があった。モデルによって変わる可能性はある
このモデルを試してみたいなら、Mozilla/jart が Llamafile として配布しているものの一つになるはず
chmod +x mixtral-8x7b-instruct-v0.1.Q5_K_M.llamafile./mixtral-8x7b-instruct-v0.1.Q5_K_M.llamafile[0] https://hacks.mozilla.org/2023/11/introducing-llamafile/
[1] https://github.com/Mozilla-Ocho/llamafile#quickstart
Mac Silicon では Ollama で可能
https://ollama.ai/
ollama pull mixtralChatGPT のような Web UI が欲しければ https://github.com/ollama-webui/ollama-webui
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v ollama-webui:/app/backend/data --name ollama-webui --restart always ghcr.io/ollama-webui/ollama-webui:mainhttp://localhost:3000 にアクセスすればよい。Ollama は LangChain でも使える
最近の関連記事
Mixtral of experts - https://news.ycombinator.com/item?id=38598559 - 2023年12月、コメント300件
Mistral-8x7B-Chat - https://news.ycombinator.com/item?id=38594578 - 2023年12月、コメント69件
Mistral "Mixtral" 8x7B 32k model [magnet] - https://news.ycombinator.com/item?id=38570537 - 2023年12月、コメント239件
特に Mixtral は数学、コード生成、多言語ベンチマークで Llama 2 70B を大きく上回る
数学ではどんな性能を見せるのか気になる。数学は常に明確な弱点のように見えていたし、まだ誰も効果的に解決できていない領域のように思えた
より良い LLM だけでこの問題が「解決」されるとは思えず、プログラム実行や電卓にアクセスできるマルチモーダルモデルを通じてのみ可能になりそう
LLM 論文をたくさん読んだわけではないが、この論文は細部が不足したかなり弱い論文だと思う。LLM の結果ではなく、論文そのもの がそうだという意味
私の机にレビュー用として上がってきていたら、おそらくその理由だけでも差し戻していただろう。たとえば専門家をどう学習したのか、どのデータセットを使ったのかをきちんと述べていない
これがこの分野の現在の標準なのか?
コードとアーキテクチャは再現しやすいので、十分な資金があるところなら誰でも競合モデルを「簡単に」作れる
OpenAI がこの流れを始め、モデルのパラメータ数すら明記していない GPT-4 の「技術レポート」で定着させてしまった。データセットについては、それよりずっと前からずっと曖昧だった
LLM の専門家ではまったくないが、特に異なる 学習設定 が性能にどう影響するのか分かるなら興味深いはず
公開アクセス可能なマルチモーダルモデルがいつ登場し始めるのか気になる
テキスト専用モデルの進化は驚くべきものだったが、GPT-4の多くの「創発的」な振る舞いは、MoEやパラメータ数だけでなく、マルチモーダル学習によるものかもしれない
より小さなマルチモーダルモデルでも同様の飛躍が見られるのか気になる
Metaも6つのモダリティ間のマルチモーダルモデルを非商用ライセンスで公開している: https://ai.meta.com/blog/imagebind-six-modalities-binding-ai...
モデルの重みは非商用ライセンスなので真のオープンソースではなさそうだが、求めている「公開アクセス」には該当する
誰かがCogVLMと互換性のあるモデルをオープンソースライセンスで一から学習してくれるといい
Simon WillisonのLLMツールでこのモデルを実行できるのか気になる。IssueやディスカッションでMixtralへの言及は見つけられなかった
それ以外に、コマンドラインからこのモデルを簡単に試す方法はあるだろうか?
LM Studioも選択肢になる
コマンドラインならOllama: https://ollama.ai/library/mixtral
UIが必要ならGPT4All: https://gpt4all.io/index.html ただし、まだMixtralはサポートしていない
アプリ内部ではsuperagent.sh: https://github.com/homanp/superagent
最近のA16Zポッドキャストのインタビューで、Mistralの創業者は社内にChatGPTとGPT-4の中間程度の品質のモデルを複数持っていると述べていた
これまでの高品質な公開を見ると、オープンソースLLMにとって面白い時期になりそうだ