JA EN
体系モデル系統図鑑
·★ 会員·13分で読めます

Mistral系を1から — 小型高性能の欧州勢

パリ発のMistral AIはなぜ「小さいのに強い」を実現できたのか。Mistral 7Bのスライディングウィンドウ注意、Mixtralの疎なMoE、Codestralなどコード系の派生、そしてApache 2.0から始まって揺れ動いたライセンス方針までを、前提知識ゼロから通しで解説する。

対象textタスクmodel-guide

南フランスの風の名を持つ会社

ミストラル(mistral)は、南フランスを吹き下ろす冷たく強い風の名前です。2023年5月、その名を掲げたスタートアップがパリで生まれました。創業者はGoogle DeepMind出身のArthur Mensch氏と、Metaで初代Llamaを作ったGuillaume Lample氏・Timothée Lacroix氏の3人です。

この会社の最初のモデル発表は、記者会見でもブログ記事でもありませんでした。2023年9月、SNSに投げられたBitTorrentのマグネットリンク1本。それが Mistral 7B で、ライセンスは Apache 2.0——商用利用も改変も再配布も届け出なしで自由、という態度表明でした。

この記事は2つの軸で系譜を追います。技術の軸=「小さいのに強い」をどんな仕組みで実現したかと、事業の軸=「全部Apache 2.0」から始まった方針がその後どう変わったかです。後者は製品に組み込むときの事故の元なので、後半でまとめて扱います。

そもそも「小さい」が価値になる理由

モデルの大きさ(パラメータ数)は、そのまま必要なメモリに効きます。重みを16bitで持つならパラメータ1個あたり2バイト。70Bなら重みだけで140GB前後になり、業務用GPUを複数枚束ねないと載りません。7Bなら14GB程度、量子化で4bit級まで圧縮すれば4GB前後——手元のノートPCの領域です。

つまり「13B級の賢さが7Bで出せる」は見栄えの話ではなく、動かせる場所と、同時に捌ける人数が変わるという話です。Mistralが一貫して狙ってきたのはここでした。

Mistral 7B の中身: 注意機構を2箇所けずる

Mistral 7Bのアーキテクチャは、Llama系と同じデコーダ専用Transformerです。違いは注意機構まわりの2つの節約にあります。

1つ目が GQA(グループ化クエリ注意)。生成中はKeyとValueを過去のトークン分ぜんぶ保持し続ける必要があります(KVキャッシュ)。GQAは複数のQueryヘッドで1組のKVを共有させ、この保持量を数分の1に減らします。効くのは主に推論の速度とメモリです。

2つ目が SWA(スライディングウィンドウ注意)。通常の自己注意は各トークンが文中の全トークンを見るので、計算量とメモリは文の長さ nn の2乗で増えます。SWAは各トークンの視野を直前 WW(Mistral 7Bでは4096)に限定します。

O(n2)    O(nW)O(n^2) \;\longrightarrow\; O(n \cdot W)
(1)

言い換えると、「1トークンあたり nn 個ぜんぶ見る」のを「1トークンあたり WW 個だけ見る」に変えたので、総コストが nn の2乗ではなく nn に比例する形へ落ちる、ということです。WW は固定値なので、文が伸びてもコストの増え方は直線的です。

「視野が4096しかないなら、それより遠い単語は無視されるのでは?」と思うところですが、層を重ねると視野が伸びます。1層目でトークンは直前4096個を吸い込み、2層目ではその「吸い込み済みのトークン」を見るので、実質8192個先まで届く。層数を LL とすれば、

情報が届く距離W×L\text{情報が届く距離} \approx W \times L
(2)

つまり、届く距離は「窓の幅 × 層の数」でおおよそ決まる、ということです。CNNで層を重ねると受容野が広がるのと同じ理屈です。

FIG 1注意機構の素の計算量はO(n²)。nを増やすと他の曲線を一気に引き離す。この壁を避けるために視野を窓で切るのがスライディングウィンドウ注意で、こちらはO(n)側の伸び方になる

GQAやSWAを含む改良版の全体像はAttentionの変種にまとめてあります。

Mixtral 8x7B: 8人の専門医、担当は2人だけ

2023年12月、Mistralはまたマグネットリンクを投げました。Mixtral 8x7B、これもApache 2.0です。

名前から「8×7=56Bのモデル」と読みたくなりますが、違います。総パラメータは 46.7B、そして1トークンを処理するときに実際に使われるのは 12.9B だけ。この数字は MoE(Mixture of Experts、専門家の混合) という構造から来ています。

比喩でいうと大きな病院です。院内に専門医が8人いても、患者1人に全員が付くわけではない。受付(ルータ)が症状を見て、合った2人だけを呼ぶ。だから病院としては8人分の給料が要る(メモリ)が、1人の診察にかかる時間は2人分で済む(計算)わけです。

具体的には、Transformerブロックの中の FFN(順伝播層)だけが8個に分裂しています。注意機構は8個とも共有です(だから総パラメータが56Bにならない)。各トークンに対し、ルータと呼ばれる小さな線形層が8個の専門家に点数をつけ、上位2個を選んで重み付きで足し合わせます。

言い換えると、入力 に対して選ばれた2人の専門家 の出力を、ルータが決めた配合比 で混ぜたものが、その層の出力 になるということです。配合比は、ルータの素点をsoftmax(合計が1になるよう正規化する関数)に通して作ります。

この先にあるもの

§

ここから先は会員限定です

解説記事371本・教科書26章・学生モード48単元・論文精読6本が、月額¥490ですべて読み放題になります。新しい解説は毎日3本ずつ増えます。いつでも解約でき、解約後も期間の終わりまで読めます。

会員の方はログインすると続きが表示されます

コメント

コメントにはログインが必要です