AI・機械学習
上級

RWKVアールダブリューケーブイ

Receptance Weighted Key Valueの略で、RNNの逐次推論効率とTransformerの並列学習能力を融合した言語モデルアーキテクチャ。線形計算量O(n)と定数メモリO(1)での推論を実現し、14Bパラメータまでスケールしている。

0 回閲覧
0 いいね

RWKVとは

RWKV(Receptance Weighted Key Value)は、Bo Pengらが開発したRNNとTransformerのハイブリッドアーキテクチャである。名称はモデルの4つの主要パラメータ(R: Receptance、W: Weight decay、K: Key、V: Value)に由来する。Transformerの並列学習能力を維持しながら、RNNの定数メモリ推論を実現する。2024年時点でRWKV-6(Eagle/Finch)まで進化し、14Bパラメータのオープンソースモデルが公開されている。

アーキテクチャの核心:WKV演算

RWKVの中核は、Softmax Attentionを線形近似したWKV(Weighted Key-Value)演算である:

wkv_t = (Σ_{i=1}^{t-1} e^{-(t-1-i)w+k_i} v_i + e^{u+k_t} v_t) / (Σ_{i=1}^{t-1} e^{-(t-1-i)w+k_i} + e^{u+k_t})

この演算は再帰形式に変換可能で、状態ベクトル(a, b)を保持するだけで逐次計算できる:

a_t = e^{-w} a_{t-1} + e^{k_t} v_t
b_t = e^{-w} b_{t-1} + e^{k_t}
wkv_t = a_t / b_t

RWKVの進化

バージョン主な改良最大パラメータ学習データ
RWKV-42023初期アーキテクチャ確立14B1T tok
RWKV-5 (Eagle)2024マルチヘッド化、行列値状態7B1.12T tok
RWKV-6 (Finch)2024データ依存線形補間、LoRA微調整14B1.12T tok
RWKV-7 (Goose)2025改良された状態更新、長文性能向上開発中拡張中

RWKV-6の技術的詳細

RWKV-6(Finch)は以下の2つの主要モジュールで構成される:

1. Time Mixing(トークンミキシング):

  • 時系列方向の情報集約を担当
  • WKV演算でAttention相当の処理をO(n)で実行
  • RWKV-6ではデータ依存の線形補間(Data-Dependent Linear Interpolation)を導入し、トークン間の情報伝播を動的に制御

2. Channel Mixing(チャネルミキシング):

  • 各トークンの特徴次元方向の変換を担当
  • TransformerのFFN(Feed-Forward Network)に相当
  • Receptance(ゲート)で情報のフィルタリングを行う

ベンチマーク性能

モデルパラメータHellaSwagARC-CWinoGrandePIQA推論速度(tok/s)
RWKV-6 1.6B1.6B52.533.957.972.6380
RWKV-6 3B3B59.738.161.275.1245
RWKV-6 7B7B67.242.366.478.2142
RWKV-6 14B14B73.148.571.680.585
Llama-2 7B7B76.046.369.279.195
Llama-2 13B13B79.449.472.280.552

推論効率の優位性

RWKVの推論は定数メモリ・定数時間(トークンあたり)で行える:

  • KVキャッシュ不要: Transformerは過去全トークンのKVキャッシュ(7Bモデルで32K系列→約16GB)が必要だが、RWKVは状態ベクトル(約100MB)のみ
  • 一定速度: 生成トークン数に関わらず各トークンの生成速度が一定(Transformerはコンテキスト増加に伴い減速)
  • バッチ効率: 状態ベクトルが小さいため、同一GPUメモリで多数のリクエストを並列処理可能

実装と利用方法

# ChatRWKV(推論フレームワーク)
pip install rwkv

# rwkv.cpp(C++軽量推論、llama.cpp相当)
git clone https://github.com/RWKV/rwkv.cpp
cmake -B build && cmake --build build

# HuggingFace
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("RWKV/rwkv-6-world-7b")

量子化サポート:

  • INT8/INT4量子化でメモリ50-75%削減
  • rwkv.cppはGGML形式の量子化をサポート
  • 4bit量子化した14BモデルがRTX 4070(12GB VRAM)で動作可能

コミュニティとエコシステム

RWKVはLinux Foundation傘下のオープンソースプロジェクトとして運営されている:

  • RWKV World: 多言語対応モデル(日本語含む100+言語)
  • RWKV Music: 音楽生成特化モデル
  • VisualRWKV: 画像理解対応マルチモーダル拡張
  • RWKV-Runner: GUIベースの推論ツール(Windows/Mac/Linux対応)

よくある質問(FAQ)

Q1: RWKVはTransformerより優れているのか? A: 推論効率(速度・メモリ)ではRWKVが優位。品質面では同パラメータ数のTransformerにやや劣るが、RWKV-6 14BはLlama-2 13Bと同等レベルに到達している。長文推論や多数リクエストの並列処理ではRWKVの実用的優位性が大きい。

Q2: RWKVでファインチューニングはできるか? A: 可能。RWKV-6はLoRA微調整に対応しており、8GBのVRAMで7Bモデルの微調整が可能。State Tuningという独自の軽量微調整手法もあり、状態ベクトルの初期値のみを学習する。

Q3: 日本語の性能はどうか? A: RWKV Worldモデルは日本語を含む100以上の言語で学習されている。日本語ベンチマーク(JGLUE等)ではLlama-2の同規模モデルと同等の性能を示す。日本語コミュニティによるファインチューニングモデルも公開されている。

まとめ

  • RWKVはRNNの推論効率とTransformerの学習並列性を融合
  • WKV演算によりO(n)計算量・O(1)メモリの推論を実現
  • RWKV-6(14B)はLlama-2 13Bと同等の品質に到達
  • Linux Foundation傘下のオープンソースプロジェクトとして活発に開発中
  • rwkv.cppにより消費者向けGPUでの軽量推論が可能