Hyena(ハイエナ)
Stanfordの研究チームが2023年に提案した、長距離畳み込みフィルタとゲーティングを組み合わせたAttention代替メカニズム。FFT(高速フーリエ変換)を活用してO(n log n)のサブクアドラティック計算量を実現し、DNA配列解析など超長系列タスクで特に高い性能を示す。
Hyenaとは
Hyena(ハイエナ)は、Stanford大学のHazyResearchグループ(Michael Poli、Stefano Massaroliら)が2023年3月に発表した「Hyena Hierarchy: Towards Larger Convolutional Language Models」論文で提案されたアーキテクチャである。Attentionメカニズムを長距離畳み込みフィルタとゲーティングの階層で置き換え、O(n log n)の計算量で系列をモデリングする。
Hyenaの基本原理
Hyenaは以下の3つの要素を組み合わせる:
- データ制御ゲーティング: 入力に依存したゲート値でフィルタリング(Attention的な選択性を実現)
- 長距離畳み込みフィルタ: 暗黙的に学習されたFFTベースの畳み込みカーネル(全系列長をカバー)
- 階層構造: 上記の2つを交互に積み重ねる「Hyena階層」により、高次の相互作用をモデリング
従来のAttentionが全ペアのドット積(O(n²))で相互作用を計算するのに対し、Hyenaは畳み込み(O(n log n))とゲーティング(O(n))の組み合わせで同等の表現力を目指す。
数学的定式化
Hyenaオペレータ(次数N=2の場合):
y = h_2 ⊛ (x_1 ⊙ (h_1 ⊛ (x_2 ⊙ v)))
ここで:
- v: 入力の線形射影(Value相当)
- x_1, x_2: 入力からの射影(Query/Key相当のゲート)
- h_1, h_2: 学習された畳み込みフィルタ
- ⊛: 畳み込み(FFTで高速計算)
- ⊙: 要素ごとの積(ゲーティング)
次数Nを増やすことで、より複雑な相互作用パターンを捕捉できる。実験的にはN=2が効率と性能のバランスが良い。
暗黙的畳み込みフィルタ
Hyenaの畳み込みフィルタは明示的にパラメータとして保持せず、小さなニューラルネットワーク(パラメータ化関数)から動的に生成される:
h(t) = Window(t) · FFN(t/L, sin(ωt), cos(ωt))
- Window(t): 指数減衰窓関数(遠方の影響を減衰)
- FFN: 位置エンコーディングを入力とする2層MLP
- t/L: 正規化位置、sin/cos: 周波数エンコーディング
この暗黙的パラメータ化により、系列長に依存しないパラメータ数で任意長の畳み込みフィルタを表現できる。
計算効率
| 操作 | Attention | Hyena |
|---|---|---|
| 計算量 | O(n²d) | O(n log n · d) |
| メモリ | O(n²) or O(n) | O(n log n) or O(n) |
| 128K入力 | 48GB KVキャッシュ | 2GB(FFTバッファ) |
| 1M入力 | 実質不可能 | 16GB |
FFTによる畳み込みの計算:
- 信号をフーリエ変換: O(n log n)
- 周波数領域で要素積: O(n)
- 逆フーリエ変換: O(n log n)
- 合計: O(n log n)
ベンチマーク性能
| モデル | パラメータ | WikiText PPL | ThePile PPL | 速度(学習) |
|---|---|---|---|---|
| Transformer | 355M | 22.8 | 9.1 | 1.0x |
| Hyena | 355M | 23.1 | 9.2 | 1.3x |
| Transformer | 1.3B | 17.4 | 7.8 | 1.0x |
| Hyena | 1.3B | 17.8 | 7.9 | 1.5x |
| S4 | 355M | 25.6 | 10.1 | 1.1x |
| H3 (前身) | 355M | 24.2 | 9.7 | 1.2x |
言語モデリングではTransformerにわずかに劣るが、学習速度は最大1.5倍高速。
超長系列タスクでの優位性
Hyenaが最も威力を発揮するのは超長系列タスクである:
DNA配列解析(HyenaDNA):
- ヒトゲノムの100万塩基ペア(1Mトークン相当)を直接処理
- 従来のTransformerベースモデル(DNABERT等)は最大512トークンに制限
- 種レベルの分類精度96.3%(従来手法92.1%を大幅に上回る)
- GPU: A100 80GB 1枚で1Mコンテキストの学習が可能
時系列予測:
- 長期気象予測(30日先)でTransformerベースのInformer/Autoformerを上回る
- O(n log n)の計算量により、1年分の分単位データ(500K+ポイント)を直接処理
StripedHyena
StripedHyenaはTogether AIが2023年12月に発表した、Hyenaの実用的な発展版である:
- StripedHyena-Nous-7B: Hyena+Attention+MoEのハイブリッド、7Bパラメータ
- Hyena層とAttention層を交互に配置(「ストライプ」パターン)
- 128Kトークンのコンテキスト長をサポート
- Mistral 7Bと同等のベンチマーク性能
実装と利用
# HuggingFace経由
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained(
"togethercomputer/StripedHyena-Nous-7B"
)
# HyenaDNA(DNA配列解析)
from transformers import AutoModel
model = AutoModel.from_pretrained(
"LongSafari/hyenadna-large-1m-seqlen-hf"
)
FFT高速化:
- cuFFT(CUDA)による GPU上のFFT高速化
- FlashFFTConv: HazyResearchが開発した、FlashAttentionに相当するFFT畳み込み高速化カーネル
- A100で最大2倍、H100で最大3倍の速度向上
よくある質問(FAQ)
Q1: HyenaはMambaより優れているのか? A: 用途による。言語モデリング(短〜中文)ではMambaの方が品質・効率ともに上回る。超長系列タスク(100K+トークン、DNA解析、長期時系列)ではHyenaのFFTベースアプローチが有利。実用的にはStripedHyenaのようにAttentionと組み合わせるハイブリッドが最も汎用性が高い。
Q2: HyenaをGPUなしで使えるか? A: FFT計算はCPUでも実行可能だが、cuFFTによるGPU加速がないと実用的な速度にならない。StripedHyena-7BはRTX 3090以上のGPU(24GB VRAM)で動作可能。量子化版であれば16GB VRAMでも推論可能。
Q3: なぜHyenaは「ハイエナ」と名付けられたのか? A: 公式には説明されていないが、ハイエナが群れで効率的に狩りを行う生態に、複数の畳み込みとゲーティングが階層的に協調する構造を重ねたとされる。HazyResearchグループは動物名のモデル(Hippo、Hyena等)を慣例としている。
まとめ
- HyenaはFFTベースの長距離畳み込みとゲーティングでAttentionを代替
- O(n log n)のサブクアドラティック計算量を実現
- DNA配列解析(1Mトークン)など超長系列で特に有効
- StripedHyenaとしてHyena+Attentionハイブリッドが実用化
- FlashFFTConvによるGPU最適化で学習・推論の高速化が進行中