RWKV(アールダブリューケーブイ)
Receptance Weighted Key Valueの略で、RNNの逐次推論効率とTransformerの並列学習能力を融合した言語モデルアーキテクチャ。線形計算量O(n)と定数メモリO(1)での推論を実現し、14Bパラメータまでスケールしている。
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-4 | 2023 | 初期アーキテクチャ確立 | 14B | 1T tok |
| RWKV-5 (Eagle) | 2024 | マルチヘッド化、行列値状態 | 7B | 1.12T tok |
| RWKV-6 (Finch) | 2024 | データ依存線形補間、LoRA微調整 | 14B | 1.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(ゲート)で情報のフィルタリングを行う
ベンチマーク性能
| モデル | パラメータ | HellaSwag | ARC-C | WinoGrande | PIQA | 推論速度(tok/s) |
|---|---|---|---|---|---|---|
| RWKV-6 1.6B | 1.6B | 52.5 | 33.9 | 57.9 | 72.6 | 380 |
| RWKV-6 3B | 3B | 59.7 | 38.1 | 61.2 | 75.1 | 245 |
| RWKV-6 7B | 7B | 67.2 | 42.3 | 66.4 | 78.2 | 142 |
| RWKV-6 14B | 14B | 73.1 | 48.5 | 71.6 | 80.5 | 85 |
| Llama-2 7B | 7B | 76.0 | 46.3 | 69.2 | 79.1 | 95 |
| Llama-2 13B | 13B | 79.4 | 49.4 | 72.2 | 80.5 | 52 |
推論効率の優位性
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での軽量推論が可能