【まんばもでる】
Mambaモデル とは?
最終更新:
💡 入力に応じて状態を更新し、長い系列を扱うモデル
入力に応じて状態の更新方法を変える、選択的状態空間モデルを使った系列モデルのアーキテクチャ。系列の長さに対して計算量が線形に増える設計で、言語・音声・DNAなどの系列を扱う。
📌 このページのポイント
- 選択的状態空間モデルを使った系列モデル
- 入力に応じて一部のパラメーターを変え、情報を保持・更新する
- モデルの大きさなどを固定したとき、系列長nに対してO(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年に発表した論文で提案されたモデル名だよ