jpskill.com
💬 コミュニケーション コミュニティ 🔴 エンジニア向け 👤 エンジニア・AI開発者

🧬 RWKVアーキテクチャ(RNN+Transformer ハイブリッド)

rwkv-architecture

線形時間で無限文脈・KVキャッシュ不要のRWKV アーキテクチャ解説Skill。研究者向け。

⏱ 社内アナウンス文 30分 → 3分

📺 まず動画で見る(YouTube)

▶ 【最新版】Claude(クロード)完全解説!20以上の便利機能をこの動画1本で全て解説 ↗

※ jpskill.com 編集部が参考用に選んだ動画です。動画の内容と Skill の挙動は厳密には一致しないことがあります。

📜 元の英語説明(参考)

RNN+Transformer hybrid with O(n) inference. Linear time, infinite context, no KV cache. Train like GPT (parallel), infer like RNN (sequential). Linux Foundation AI project. Production at Windows, Office, NeMo. RWKV-7 (March 2025). Models up to 14B parameters.

🇯🇵 日本人クリエイター向け解説

一言でいうと

線形時間で無限文脈・KVキャッシュ不要のRWKV アーキテクチャ解説Skill。研究者向け。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o rwkv-architecture.zip https://jpskill.com/download/110.zip && unzip -o rwkv-architecture.zip && rm rwkv-architecture.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/110.zip -OutFile "$d\rwkv-architecture.zip"; Expand-Archive "$d\rwkv-architecture.zip" -DestinationPath $d -Force; ri "$d\rwkv-architecture.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して rwkv-architecture.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → rwkv-architecture フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-17
取得日時
2026-05-17
同梱ファイル
4

💬 こう話しかけるだけ — サンプルプロンプト

  • RWKVアーキテクチャ(RNN+Transformer ハイ を使って、最小構成のサンプルコードを示して
  • RWKVアーキテクチャ(RNN+Transformer ハイ の主な使い方と注意点を教えて
  • RWKVアーキテクチャ(RNN+Transformer ハイ を既存プロジェクトに組み込む方法を教えて

これをClaude Code に貼るだけで、このSkillが自動発動します。

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

RWKV - Receptance Weighted Key Value

クイックスタート

RWKV (RwaKuv) は、Transformer の並列化(トレーニング)と RNN の効率性(推論)を組み合わせています。

インストール:

# PyTorch をインストール
pip install torch --upgrade --extra-index-url https://download.pytorch.org/whl/cu121

# 依存関係をインストール
pip install pytorch-lightning==1.9.5 deepspeed wandb ninja --upgrade

# RWKV をインストール
pip install rwkv

基本的な使い方 (GPT モード + RNN モード):

import os
from rwkv.model import RWKV

os.environ["RWKV_JIT_ON"] = '1'
os.environ["RWKV_CUDA_ON"] = '1'  # 速度向上のため CUDA カーネルを使用

# モデルをロード
model = RWKV(
    model='/path/to/RWKV-4-Pile-1B5-20220903-8040',
    strategy='cuda fp16'
)

# GPT モード (並列処理)
out, state = model.forward([187, 510, 1563, 310, 247], None)
print(out.detach().cpu().numpy())  # ロジット

# RNN モード (逐次処理、結果は同じ)
out, state = model.forward([187, 510], None)  # 最初の2トークン
out, state = model.forward([1563], state)      # 次のトークン
out, state = model.forward([310, 247], state)  # 最後のトークン
print(out.detach().cpu().numpy())  # 上と同じロジットです!

一般的なワークフロー

ワークフロー 1: テキスト生成 (ストリーミング)

効率的なトークンごとの生成:

from rwkv.model import RWKV
from rwkv.utils import PIPELINE

model = RWKV(model='RWKV-4-Pile-14B-20230313-ctx8192-test1050', strategy='cuda fp16')
pipeline = PIPELINE(model, "20B_tokenizer.json")

# 初期プロンプト
prompt = "The future of AI is"
state = None

# トークンごとに生成
for token in prompt:
    out, state = pipeline.model.forward(pipeline.encode(token), state)

# 生成を続行
for _ in range(100):
    out, state = pipeline.model.forward(None, state)
    token = pipeline.sample_logits(out)
    print(pipeline.decode(token), end='', flush=True)

主な利点: トークンあたりのメモリが一定(KV キャッシュの増加なし)

ワークフロー 2: 長いコンテキスト処理 (無限コンテキスト)

数百万トークンのシーケンスを処理:

model = RWKV(model='RWKV-4-Pile-14B', strategy='cuda fp16')

# 非常に長いドキュメントを処理
state = None
long_document = load_document()  # 例: 100万トークン

# ドキュメント全体をストリーム処理
for chunk in chunks(long_document, chunk_size=1024):
    out, state = model.forward(chunk, state)

# state には、100万トークン全体のドキュメントからの情報が含まれています
# メモリ使用量: O(1) (一定、O(n) ではありません!)

ワークフロー 3: RWKV のファインチューニング

標準的なファインチューニングのワークフロー:

# トレーニングスクリプト
import pytorch_lightning as pl
from rwkv.model import RWKV
from rwkv.trainer import RWKVTrainer

# モデルを設定
config = {
    'n_layer': 24,
    'n_embd': 1024,
    'vocab_size': 50277,
    'ctx_len': 1024
}

# トレーナーをセットアップ
trainer = pl.Trainer(
    accelerator='gpu',
    devices=8,
    precision='bf16',
    strategy='deepspeed_stage_2',
    max_epochs=1
)

# トレーニング
model = RWKV(config)
trainer.fit(model, train_dataloader)

ワークフロー 4: RWKV と Transformer の比較

メモリ比較 (100万トークンのシーケンス):

# Transformer (GPT)
# メモリ: アテンションに O(n²)
# KV キャッシュ: 100万 × hidden_dim × n_layers × 2 (キー + 値)
# 例: 100万 × 4096 × 24 × 2 = 約400GB (非現実的!)

# RWKV
# メモリ: トークンあたり O(1)
# ステート: hidden_dim × n_layers = 4096 × 24 = 約400KB
# 1,000,000倍効率的!

速度比較 (推論):

# Transformer: トークンあたり O(n) (全体として二次)
# 最初のトークン: 1回の計算
# 2番目のトークン: 2回の計算
# ...
# 1000番目のトークン: 1000回の計算

# RWKV: トークンあたり O(1) (全体として線形)
# すべてのトークン: 1回の計算
# 1000番目のトークン: 1回の計算 (最初と同じ!)

いつ使用するか、代替手段との比較

RWKV を使用する場合:

  • 非常に長いコンテキスト(10万トークン以上)が必要な場合
  • 一定のメモリ使用量を維持したい場合
  • ストリーミングアプリケーションを構築する場合
  • Transformer の性能と RNN の効率性が必要な場合
  • メモリが制約されたデプロイメントの場合

主な利点:

  • 線形時間: Transformer の O(n²) に対して O(n)
  • KV キャッシュなし: トークンあたりのメモリが一定
  • 無限コンテキスト: 固定されたウィンドウ制限なし
  • 並列化可能なトレーニング: GPT と同様
  • 逐次推論: RNN と同様

代わりに代替手段を使用する場合:

  • Transformers: 最高の性能が必要で、計算リソースがある場合
  • Mamba: 状態空間モデルが必要な場合
  • RetNet: リテンションメカニズムが必要な場合
  • Hyena: 畳み込みベースのアプローチが必要な場合

よくある問題

問題: トレーニング中にメモリ不足になる

勾配チェックポイントと DeepSpeed を使用してください:

trainer = pl.Trainer(
    strategy='deepspeed_stage_3',  # 完全な ZeRO-3
    precision='bf16'
)

問題: 推論が遅い

CUDA カーネルを有効にしてください:

os.environ["RWKV_CUDA_ON"] = '1'

問題: モデルがロードされない

モデルのパスとストラテジーを確認してください:

model = RWKV(
    model='/absolute/path/to/model.pth',
    strategy='cuda fp16'  # または CPU の場合は 'cpu fp32'
)

問題: RNN モードでの状態管理

forward 呼び出し間で常に状態を渡してください:

# 間違い: 状態が失われる
out1, _ = model.forward(tokens1, None)
out2, _ = model.forward(tokens2, None)  # tokens1 からのコンテキストがない!

# 正しい: 状態が保持される
out1, state = model.forward(tokens1, None)
out2, state = model.forward(tokens2, state)  # tokens1 からのコンテキストがある

高度なトピック

時間混合とチャネル混合: WKV 操作、時間減衰メカニズム、および受容ゲートについては、references/architecture-details.md を参照してください。

状態管理: att_x_prevatt_kvffn_x_prev の状態、および数値安定性の考慮事項については、references/state-management.md を参照してください。

RWKV-7 の改善点: 最新のアーキテクチャ改善点(2025年3月)とマルチモーダル機能については、references/rwkv7.md を参照してください。

ハードウェア要件

  • GPU: NVIDIA (CUDA 11.6+) または CPU
  • VRAM (FP16):
    • 169M モデル: 1GB
    • 430M モデル: 2GB
    • 1.5B モデル: 4GB
    • 3B モデル: 8GB
    • 7B モデル: 16GB
    • 14B モデル: 32GB
  • 推論: トークンあたり O(1) メモリ
  • トレーニング: GPT と同様に並列化可能

パフォーマンス

(原文がここで切り詰められています)

📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

RWKV - Receptance Weighted Key Value

Quick start

RWKV (RwaKuv) combines Transformer parallelization (training) with RNN efficiency (inference).

Installation:

# Install PyTorch
pip install torch --upgrade --extra-index-url https://download.pytorch.org/whl/cu121

# Install dependencies
pip install pytorch-lightning==1.9.5 deepspeed wandb ninja --upgrade

# Install RWKV
pip install rwkv

Basic usage (GPT mode + RNN mode):

import os
from rwkv.model import RWKV

os.environ["RWKV_JIT_ON"] = '1'
os.environ["RWKV_CUDA_ON"] = '1'  # Use CUDA kernel for speed

# Load model
model = RWKV(
    model='/path/to/RWKV-4-Pile-1B5-20220903-8040',
    strategy='cuda fp16'
)

# GPT mode (parallel processing)
out, state = model.forward([187, 510, 1563, 310, 247], None)
print(out.detach().cpu().numpy())  # Logits

# RNN mode (sequential processing, same result)
out, state = model.forward([187, 510], None)  # First 2 tokens
out, state = model.forward([1563], state)      # Next token
out, state = model.forward([310, 247], state)  # Last tokens
print(out.detach().cpu().numpy())  # Same logits as above!

Common workflows

Workflow 1: Text generation (streaming)

Efficient token-by-token generation:

from rwkv.model import RWKV
from rwkv.utils import PIPELINE

model = RWKV(model='RWKV-4-Pile-14B-20230313-ctx8192-test1050', strategy='cuda fp16')
pipeline = PIPELINE(model, "20B_tokenizer.json")

# Initial prompt
prompt = "The future of AI is"
state = None

# Generate token by token
for token in prompt:
    out, state = pipeline.model.forward(pipeline.encode(token), state)

# Continue generation
for _ in range(100):
    out, state = pipeline.model.forward(None, state)
    token = pipeline.sample_logits(out)
    print(pipeline.decode(token), end='', flush=True)

Key advantage: Constant memory per token (no growing KV cache)

Workflow 2: Long context processing (infinite context)

Process million-token sequences:

model = RWKV(model='RWKV-4-Pile-14B', strategy='cuda fp16')

# Process very long document
state = None
long_document = load_document()  # e.g., 1M tokens

# Stream through entire document
for chunk in chunks(long_document, chunk_size=1024):
    out, state = model.forward(chunk, state)

# State now contains information from entire 1M token document
# Memory usage: O(1) (constant, not O(n)!)

Workflow 3: Fine-tuning RWKV

Standard fine-tuning workflow:

# Training script
import pytorch_lightning as pl
from rwkv.model import RWKV
from rwkv.trainer import RWKVTrainer

# Configure model
config = {
    'n_layer': 24,
    'n_embd': 1024,
    'vocab_size': 50277,
    'ctx_len': 1024
}

# Setup trainer
trainer = pl.Trainer(
    accelerator='gpu',
    devices=8,
    precision='bf16',
    strategy='deepspeed_stage_2',
    max_epochs=1
)

# Train
model = RWKV(config)
trainer.fit(model, train_dataloader)

Workflow 4: RWKV vs Transformer comparison

Memory comparison (1M token sequence):

# Transformer (GPT)
# Memory: O(n²) for attention
# KV cache: 1M × hidden_dim × n_layers × 2 (keys + values)
# Example: 1M × 4096 × 24 × 2 = ~400GB (impractical!)

# RWKV
# Memory: O(1) per token
# State: hidden_dim × n_layers = 4096 × 24 = ~400KB
# 1,000,000× more efficient!

Speed comparison (inference):

# Transformer: O(n) per token (quadratic overall)
# First token: 1 computation
# Second token: 2 computations
# ...
# 1000th token: 1000 computations

# RWKV: O(1) per token (linear overall)
# Every token: 1 computation
# 1000th token: 1 computation (same as first!)

When to use vs alternatives

Use RWKV when:

  • Need very long context (100K+ tokens)
  • Want constant memory usage
  • Building streaming applications
  • Need RNN efficiency with Transformer performance
  • Memory-constrained deployment

Key advantages:

  • Linear time: O(n) vs O(n²) for Transformers
  • No KV cache: Constant memory per token
  • Infinite context: No fixed window limit
  • Parallelizable training: Like GPT
  • Sequential inference: Like RNN

Use alternatives instead:

  • Transformers: Need absolute best performance, have compute
  • Mamba: Want state-space models
  • RetNet: Need retention mechanism
  • Hyena: Want convolution-based approach

Common issues

Issue: Out of memory during training

Use gradient checkpointing and DeepSpeed:

trainer = pl.Trainer(
    strategy='deepspeed_stage_3',  # Full ZeRO-3
    precision='bf16'
)

Issue: Slow inference

Enable CUDA kernel:

os.environ["RWKV_CUDA_ON"] = '1'

Issue: Model not loading

Check model path and strategy:

model = RWKV(
    model='/absolute/path/to/model.pth',
    strategy='cuda fp16'  # Or 'cpu fp32' for CPU
)

Issue: State management in RNN mode

Always pass state between forward calls:

# WRONG: State lost
out1, _ = model.forward(tokens1, None)
out2, _ = model.forward(tokens2, None)  # No context from tokens1!

# CORRECT: State preserved
out1, state = model.forward(tokens1, None)
out2, state = model.forward(tokens2, state)  # Has context from tokens1

Advanced topics

Time-mixing and channel-mixing: See references/architecture-details.md for WKV operation, time-decay mechanism, and receptance gates.

State management: See references/state-management.md for att_x_prev, att_kv, ffn_x_prev states, and numerical stability considerations.

RWKV-7 improvements: See references/rwkv7.md for latest architectural improvements (March 2025) and multimodal capabilities.

Hardware requirements

  • GPU: NVIDIA (CUDA 11.6+) or CPU
  • VRAM (FP16):
    • 169M model: 1GB
    • 430M model: 2GB
    • 1.5B model: 4GB
    • 3B model: 8GB
    • 7B model: 16GB
    • 14B model: 32GB
  • Inference: O(1) memory per token
  • Training: Parallelizable like GPT

Performance (vs Transformers):

  • Speed: Similar training, faster inference
  • Memory: 1000× less for long sequences
  • Scaling: Linear vs quadratic

Resources

同梱ファイル

※ ZIPに含まれるファイル一覧。`SKILL.md` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。