1 ポイント 投稿者 GN⁺ 2024-01-10 | 1件のコメント | WhatsAppで共有
  • 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件のコメント

 
GN⁺ 2024-01-10
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年、おそらく上半期のうちに、消費者向けハードウェアでも高性能に動く強力なモデルを見ることになりそうだ

    • 私もMixtralで非常に良い結果を得ており、本当に印象的だ。ただし比較的大きなモデルなので、消費者向けハードウェアで全GPU推論として動かすのが難しいという問題がある。人々が普段使う7B/13Bモデルとは違う
      これまでのところ、出力品質を損なうほど高い量子化なしで実行できる主要な消費者向けプラットフォームは、ユニファイドメモリを備えた最新のApple Silicon Macで、おおむね48GB以上のようだ。32GBや36GBでも可能とは言われているが、余裕はあまりない
      coder543が指摘したように、十分な合計VRAMを持つマルチGPU構成なら、損失の大きい量子化なしでも実行できる
    • Mixtralは良いが、Ravenwolfベンチマークには意味がない。どこかの無作為な人物が、厳密性も一貫性もなく、ドイツ語でMMLUを再発明しようとしているような感じだ
      データセット汚染は問題だが、サブレディットで助言を求める人々が民間伝承的なやり方でLLMを評価しても解決する問題ではない
    • ハードウェア発表が楽しみだ。消費者向けにオンデバイスLLMアクセラレーションを意図的に設計した製品が、確実に近づいているように見える
    • Phi-2のような、より小さなモデルをベースにしたMoEをいつ見られるのか本当に気になる
  • このモデルは使用パラメータが13B水準と少なく、3090で高品質に滑らかに動かせる一方で、HumanEvalではGPT-3.5に勝ち、32kコンテキストも提供する点が目を引く
    3090は消費者向けグレードで、ゲーミングPCでも一般的だ。ゲーム開発者がローカル配布のMixtralをゲームに入れて実験し始めてほしい。例えばCivilizationのようなゲームで各指導者をLLMで動かす、といった形だ

    • Mixtralは、2020年以降のApple MacBook Pro M1/M2/M3に32GB以上のRAMがあれば、まずまずのトークン速度で動かせる。16GB RAMでもある程度は動くが、おそらく3090で使うのと似た量子化になり、量子化の差は感じられる
      私の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と後続モデルのおかげで、趣味のハッキングがもっと増えることを願っている
    • Googleによると、RTX 3090の価格は1,480〜1,680ドルの間だ
      そのお金があればPCを丸ごと1台買えるのに、そんな高価なGPUが「消費者向け」で「一般的」だというのは信じがたい
      LLMや他の生成AIに向いたGPUで、法外に高価ではないものはあるのだろうか? それともゲームグラフィックスではなくAI向けに特別に設計された製品があるのだろうか?
    • 4ビット量子化モデルは、CPUでも読む速度くらいで実行できるという点も重要だ。特に一部の結果を非同期で事前計算できるなら、多くのユースケースが開ける可能性がある
    • ローカルモデルをエージェントとして使ってみているが、興味がある人はllama.cppの「grammars」機能を知っておくべきだ。モデル出力が特定の構造に従うよう強制できるので、有効なJSON出力を保証するだけでなく、「xを選んだらyも必ず提供しなければならない」といった、より具体的な制約にも有用だ
      例えば、先を計画するアクターには5Wのうち任意の3つに答えるよう求めつつ、JSON文字列値の中では自由に書かせて、その後の制限された行動集合を選ぶ文脈にできる。あるいは、モデルが応答の末尾でさらに考える時間を要求できるが、要求しない場合は次の行動を指定しなければならないようにできる
      私の見る限り生成速度への影響はなく、非常に創造的に使える。ただし出力が途中で切れると再生成が必要になることがあり、有効なJSONオブジェクトが閉じた瞬間、または改行が5回を超えて連続生成されたら停止する関数を別途書く必要があった。モデルによって変わる可能性はある
    • VRAM使用量は47Bモデルにより近い。推論時に一度に使うエキスパートが2つだけだとしても、完了するにはすべてのエキスパートが必要だ
  • このモデルを試してみたいなら、Mozilla/jart が Llamafile として配布しているものの一つになるはず

    1. llamafile をダウンロード(30.03GB): https://huggingface.co/jartine/Mixtral-8x7B-Instruct-v0.1-ll...
    2. chmod +x mixtral-8x7b-instruct-v0.1.Q5_K_M.llamafile
    3. ./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 mixtral
    ChatGPT のような 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:main
    http://localhost:3000 にアクセスすればよい。Ollama は LangChain でも使える

    • 制限解除されたファインチューニング版もいくつかある。Dolphin がかなり人気のようで、コーディングデータでさらに学習されている。32GB に収めたいなら https://ollama.ai/library/dolphin-mixtral:8x7b-v2.7-q3_K_M がある
    • Mac M1 では、Ollama であれ他の LLM ホストであれ、Docker では使わないと思う。私の知る限り、まだ Metal サポート がない
  • 最近の関連記事
    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 論文をたくさん読んだわけではないが、この論文は細部が不足したかなり弱い論文だと思う。LLM の結果ではなく、論文そのもの がそうだという意味
    私の机にレビュー用として上がってきていたら、おそらくその理由だけでも差し戻していただろう。たとえば専門家をどう学習したのか、どのデータセットを使ったのかをきちんと述べていない
    これがこの分野の現在の標準なのか?

    • かなり一般的になりつつある。挙げた二つ、つまり 学習の詳細 とデータセットの混合は、実質的に企業が持つ唯一の競争優位でもある
      コードとアーキテクチャは再現しやすいので、十分な資金があるところなら誰でも競合モデルを「簡単に」作れる
      OpenAI がこの流れを始め、モデルのパラメータ数すら明記していない GPT-4 の「技術レポート」で定着させてしまった。データセットについては、それよりずっと前からずっと曖昧だった
    • そう、自分も同じ考えだ。実際、それぞれの専門家を別々に学習したあと、一緒に学習したのだろうと予想している。ルーターネットワークも学習する必要があるから
      LLM の専門家ではまったくないが、特に異なる 学習設定 が性能にどう影響するのか分かるなら興味深いはず
  • 公開アクセス可能なマルチモーダルモデルがいつ登場し始めるのか気になる
    テキスト専用モデルの進化は驚くべきものだったが、GPT-4の多くの「創発的」な振る舞いは、MoEやパラメータ数だけでなく、マルチモーダル学習によるものかもしれない
    より小さなマルチモーダルモデルでも同様の飛躍が見られるのか気になる

    • LLaVAは公開されている。ただし、期待しているような飛躍ではないかもしれない: https://llava-vl.github.io/
      Metaも6つのモダリティ間のマルチモーダルモデルを非商用ライセンスで公開している: https://ai.meta.com/blog/imagebind-six-modalities-binding-ai...
    • 少しテストしてみた限りでは、CogVLMは非常に良かった: https://github.com/THUDM/CogVLM
      モデルの重みは非商用ライセンスなので真のオープンソースではなさそうだが、求めている「公開アクセス」には該当する
      誰かがCogVLMと互換性のあるモデルをオープンソースライセンスで一から学習してくれるといい
    • FAANGにいる人たちから聞いた話では、この点ではGoogleがOpenAIより先に進んでいて、OpenAIが少し追いつきつつあるらしい。もちろん言語の面では、OpenAIには依然として明確な優位がある。すべて伝聞の話
  • Simon WillisonのLLMツールでこのモデルを実行できるのか気になる。IssueやディスカッションでMixtralへの言及は見つけられなかった
    それ以外に、コマンドラインからこのモデルを簡単に試す方法はあるだろうか?

  • 最近のA16Zポッドキャストのインタビューで、Mistralの創業者は社内にChatGPTとGPT-4の中間程度の品質のモデルを複数持っていると述べていた
    これまでの高品質な公開を見ると、オープンソースLLMにとって面白い時期になりそうだ

    • ただし、より強力なMistralモデルもFOSSとして公開されるという兆候はない