【まんばもでる】

Mambaモデル とは?

最終更新:
💡 入力に応じて状態を更新し、長い系列を扱うモデル

入力に応じて状態の更新方法を変える、選択的状態空間モデルを使った系列モデルのアーキテクチャ。系列の長さに対して計算量が線形に増える設計で、言語・音声・DNAなどの系列を扱う。

📌 このページのポイント
系列を扱う仕組みの違い Transformer 密なself-attention Mamba 選択的な状態更新 T1 T2 T3 T4 O1 O2 O3 O4 トークン同士の関係 O(n²) T1 S1 T2 S2 T3 S3 T4 S4 状態を受け渡す O(n) 計算量の増え方と、実際の速度は別
密なself-attentionでトークン間の関係を計算する仕組みと、Mambaの入力に応じた状態更新を簡略化した比較。Tは入力、Oは出力、Sは状態です。計算量はモデルの大きさなどを固定して系列長nに対して比べています。
ひよこ ひよこ
MambaはTransformerと何が違うの?
ペンギン先生 ペンギン先生
最初のMambaは、attentionを使わず、選択的状態空間モデルを中心に系列を処理する構成だよ。それまでの情報を状態にまとめ、次の入力に応じて更新する。全ての過去のトークンをそのまま保存する仕組みとは違うんだ。
ひよこ ひよこ
選択的って、何を選ぶの?
ペンギン先生 ペンギン先生
どの情報を状態に残し、どう更新するかが入力の内容によって変わるということだよ。具体的には、SSMの一部のパラメーターを入力から計算する。人が重要な単語を手で指定するのではなく、学習した仕組みで調整するんだ。
ひよこ ひよこ
長い文章なら必ず速くなる?
ペンギン先生 ペンギン先生
Mambaは系列長nに対してO(n)の計算量になる設計だよ。一方、標準的な密なself-attentionで全系列を処理する計算量はO(n²)。ただし、この増え方と実際の速度は別で、モデルの大きさ・実装・機器などによって速度は変わるんだ。
ひよこ ひよこ
言語以外にも使える?
ペンギン先生 ペンギン先生
原論文では音声やDNAも評価しているよ。長い系列を扱うための一つの構成だけれど、効率がよいことと、全ての課題で品質が高いことは同じではない。自分のタスクに合うかは評価が必要なんだ。
もっと詳しく知りたい人へ

順番に状態を更新するなら、学習も一つずつしか計算できない?

原論文では、状態更新の計算を並列scanで処理する方法を示しています。状態を順に受け渡すというモデルの考え方と、GPUで効率よく計算する実装を区別すると理解しやすくなります。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Mambaモデル」って出てきたら「入力に応じて記憶の状態を更新する系列モデル」と思えればだいたいOK!
📖 おまけ:英語の意味
「Mamba」 = 系列モデルの名前
💬 Albert GuとTri Daoが2023年に発表した論文で提案されたモデル名だよ

参考資料

← 用語集にもどる