世界を動かす技術を、日本語で。

「Kimi Delta Attention」を考案することができたかもしれません

概要

  • 本記事は 線形アテンション の発展系「DeltaNet」ファミリーの数式と直感的理解を解説
  • ブラケット記法 (bra-ket notation)を用いて数式の形を明確化
  • DeltaNet、Gated DeltaNet、Kimi Delta Attention(KDA)の 導出手順 を段階的に説明
  • Softmaxアテンション から線形アテンション、DeltaNetへの流れを整理
  • 最新モデルQwenやKimiで使われる 実装的要点 も言及

線形アテンションとDeltaNetファミリーの数式直感

  • 本記事は bra-ket記法 (∣q⟩, ⟨k∣, ∣v⟩⟨k∣など)を使い、数式の 形状や意味 を視覚的に捉えやすくしている
  • ∣q⟩は 列ベクトル、⟨k∣は 行ベクトル、⟨k∣q⟩は スカラー、∣v⟩⟨k∣は 行列 を表現
  • キー(key)は 左向き、クエリ・バリューは 右向き で記述
  • 本記事の前提: 1つの因果的アテンションヘッド実数ベクトル正規化済みキー状態はkey空間からvalue空間への写像

ソフトマックスアテンションから線形アテンションへ

  • 通常の因果的ソフトマックスアテンション(クエリtに対して)
    • アテンション重み
      • ati=exp(s⟨ki∣qt⟩)/∑j≤t exp(s⟨kj∣qt⟩), s=dk^(-1/2)
    • 出力
      • ∣ot⟩=∑i≤t ati∣vi⟩
  • ソフトマックスの 分母 がクエリと全キーに依存するため計算が非線形・非局所的
  • ソフトマックスを 除去 し、スケーリングもクエリに内包
    • ∣ot⟩=∑i≤t ⟨ki∣qt⟩∣vi⟩
    • これは 線形アテンション の基本形

線形アテンションの状態表現

  • 過去の情報を 固定サイズの状態行列St に集約
    • St=∑i≤t ∣vi⟩⟨ki∣
    • 更新: St=St−1+∣vt⟩⟨kt∣
    • 読み出し: ∣ot⟩=St∣qt⟩
  • これにより メモリ消費が線形 になり、計算効率が大幅向上

線形アテンションの課題

  • 加算的更新 (+=)のため、同じキーで複数回書き込むと値が 累積 されてしまう
  • 各キーが 直交していない 場合、過去の情報が 干渉 しやすい
  • 本来は 上書き (=)的な振る舞いが望ましい

DeltaNet:エラーのみを書き込む発想

  • DeltaNetは 差分(デルタ) のみを書き込むことで加算的問題を解消
  • 書き込み前に「現在このキーにどんな値が紐付いているか」を確認
    • ∣v^t⟩=St−1∣kt⟩
  • 目標値∣vt⟩との差分のみを エラー として書き込む
    • ∣et⟩=βt(∣vt⟩−∣v^t⟩)
    • βtは 学習済みの書き込み強度 (0~1)
  • 更新式
    • St=St−1+∣et⟩⟨kt∣
  • これにより、同じキーでの上書きが 加重平均 的に行われる
  • エラーは ローカル (該当キー方向のみ)に適用され、 直交方向には影響しない

オンライン学習的導出

  • 線形写像Sに対する 再構成損失 を最小化する勾配降下
    • Lt(S)=1/2∥S∣kt⟩−∣vt⟩∥²
    • 勾配は(S∣kt⟩−∣vt⟩)⟨kt∣
    • βtだけ勾配降下すると、上記と同じ更新式に

DeltaNetの状態遷移の特徴

  • St=St−1(I−βt∣kt⟩⟨kt∣)+βt∣vt⟩⟨kt∣
  • 単位長キーの場合、現在キー方向は1−βt倍、直交方向はそのまま
  • 古い関連情報を消して新しい値を追加 する構造

Gated DeltaNet:グローバルな忘却

  • DeltaNetは 個別キー方向の修正 だが、 全体的な忘却 はできない
  • 保持率αt (0~1)を導入し、状態全体をスケーリング
    • S~t=αtSt−1
  • その後、DeltaNet同様にエラーを書き込む
    • ∣v^t⟩=S~t∣kt⟩
    • ∣et⟩=βt(∣vt⟩−∣v^t⟩)
    • St=S~t+∣et⟩⟨kt∣
  • 忘却→予測→修正→書き込み の順
  • αtは 全状態に対するグローバルな忘却ゲート

Kimi Delta Attention(KDA):チャネルごとの忘却

  • Gated DeltaNetの αtをスカラー→ベクトル (チャネルごと)に拡張
  • αt∈[0,1]^dkを 対角行列Dt=Diag(αt) として適用
    • S~t=St−1Dt
  • 以降はDeltaNet同様
    • ∣v^t⟩=S~t∣kt⟩
    • ∣et⟩=βt(∣vt⟩−∣v^t⟩)
    • St=S~t+∣et⟩⟨kt∣
  • 各keyチャネルごとに独立した保持率 を持つことで、より柔軟な情報管理が可能

まとめ:DeltaNetファミリーの進化と直感

  • 線形アテンション は効率的だが、 加算的更新 による情報干渉が課題
  • DeltaNet は「エラーのみ書き込む」ことで 上書き性安定性 を両立
  • Gated DeltaNet全体忘却ゲート を導入し、情報の新陳代謝を促進
  • Kimi Delta Attentionチャネルごと に忘却率を制御し、さらに細やかな記憶管理を実現
  • 最新のQwenやKimiモデルで採用される 実用的な線形アテンション設計指針

Hackerたちの意見

ざっと読んでみたけど、Kimi Delta Attentionを思いつくことは絶対に無理だったって自信を持って言えるよ。

自分も全然無理だった。

自分だけかと思ってた。

論文で使われてる単語のほとんどが分からないよ、笑

うん、「あなたができたかもしれない」の「あなた」は、「私たち」とは違う「あなた」だと思う。

表記は複雑に見えるけど、実際はただの足し算と掛け算なんだよ。特に複雑なことはないよ。

「you could have...」は、数学に関わる人たちがよく使う侮辱的なフレーズの一つだね。他にも「今や明らかだろう...」、「これが明白だ...」、「簡単に示せる...」、「これはただの...」みたいなフレーズがある。これを読んでる私たちは、「なんだそれ、マジで!?」って感じだよね。

関連のxkcd: https://www.explainxkcd.com/wiki/index.php/2501:_Average_Fam...

タイトルをアジアの父親ミームの声で再度読んでみて。「君はKimi Delta Attentionを考え出せたはずなのに、そうしなかったんだね。」

Doubleword AIは、ニュースジャッキングという古典的なマーケティング手法を使ってるね。Kimi K3やKDAアルゴリズムのニュースの裏に詳細な技術的な投稿を書いて、「あなたも突破口を発明できたはず」みたいな大胆なタイトルで、すぐに理解できない人たち(私も含めて)を事前にフィルタリングして、ブログ投稿に同意する人たちを引き寄せてる。最後には、彼らの10倍安いオープンウェイトモデルのAI推論や採用を促進する強力なCTAがある。いい仕事してるね、Doubleword。

  • 全く別の「自分」がいて、全然違う人生の道を歩むために、無数の時間をかけて専門知識を身につけたんだ。

著者が「アルゴリズムとデータ構造を分かりやすくするためにブラケット記法を選びました」って冒頭に書いてる時点で、これは手強いなって感じるよね。

Hacker Newsで議論の続きを見る