🚀 RWKV-4 | 14Bパラメータチャットバージョン (Raven) のモデルカード
RWKVはBo Pengによって主導されるプロジェクトです。モデルアーキテクチャの詳細については、Johan Windのブログ記事 こちら と こちら で学ぶことができます。また、RWKVディスコードサーバー に参加することで、プロジェクトについてもっと詳しく知ることができます。

📚 目次
- 要約
- モデルの詳細
- 使用方法
- 引用
📋 要約
以下は元のリポジトリからの説明です。
RWKVは、トランスフォーマーレベルの大規模言語モデル(LLM)性能を持つ再帰型ニューラルネットワーク(RNN)です。GPTのように直接トレーニングすることができます(並列化可能)。RNNとトランスフォーマーの良いところを兼ね備えています - 優れた性能、高速な推論、VRAMの節約、高速なトレーニング、「無限の」コンテキスト長、そして無料の文埋め込み機能です。
📊 モデルの詳細
アーキテクチャの詳細は、上記のブログ記事やHugging Faceの統合に関するブログ記事で見ることができます。
💻 使用方法
生の重みをHF形式に変換する
convert_rwkv_checkpoint_to_hf.py
スクリプトを使用して、元の重みのリポジトリID、ファイル名、および出力ディレクトリを指定することで、生の重みをHF形式に変換することができます。また、オプションとして --push_to_hub
フラグと --model_name
引数を渡すことで、変換されたモデルを直接Hubにプッシュすることもできます。
python convert_rwkv_checkpoint_to_hf.py --repo_id RAW_HUB_REPO --checkpoint_file RAW_FILE --output_dir OUTPUT_DIR --push_to_hub --model_name dummy_user/converted-rwkv
テキスト生成
AutoModelForCausalLM
と AutoTokenizer
クラスを使用して、モデルからテキストを生成することができます。以下のセクションを展開して、さまざまなシナリオでモデルを実行する方法を理解してください。
「Raven」モデルは特定の方法でプロンプトを与える必要があります。詳細については、統合ブログ記事 を参照してください。
CPUでモデルを実行する
展開するにはクリック
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("RWKV/rwkv-raven-14b")
tokenizer = AutoTokenizer.from_pretrained("RWKV/rwkv-raven-14b")
prompt = "\nIn a shocking finding, scientist discovered a herd of dragons living in a remote, previously unexplored valley, in Tibet. Even more surprising to the researchers was the fact that the dragons spoke perfect Chinese."
inputs = tokenizer(prompt, return_tensors="pt")
output = model.generate(inputs["input_ids"], max_new_tokens=40)
print(tokenizer.decode(output[0].tolist(), skip_special_tokens=True))
単一のGPUでモデルを実行する
展開するにはクリック
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("RWKV/rwkv-raven-14b").to(0)
tokenizer = AutoTokenizer.from_pretrained("RWKV/rwkv-raven-14b")
prompt = "\nIn a shocking finding, scientist discovered a herd of dragons living in a remote, previously unexplored valley, in Tibet. Even more surprising to the researchers was the fact that the dragons spoke perfect Chinese."
inputs = tokenizer(prompt, return_tensors="pt").to(0)
output = model.generate(inputs["input_ids"], max_new_tokens=40)
print(tokenizer.decode(output[0].tolist(), skip_special_tokens=True))
GPUで半精度でモデルを実行する
展開するにはクリック
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("RWKV/rwkv-raven-14b", torch_dtype=torch.float16).to(0)
tokenizer = AutoTokenizer.from_pretrained("RWKV/rwkv-raven-14b")
prompt = "\nIn a shocking finding, scientist discovered a herd of dragons living in a remote, previously unexplored valley, in Tibet. Even more surprising to the researchers was the fact that the dragons spoke perfect Chinese."
inputs = tokenizer(prompt, return_tensors="pt").to(0)
output = model.generate(inputs["input_ids"], max_new_tokens=40)
print(tokenizer.decode(output[0].tolist(), skip_special_tokens=True))
複数のGPUでモデルを実行する
展開するにはクリック
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("RWKV/rwkv-raven-14b", device_map="auto")
tokenizer = AutoTokenizer.from_pretrained("RWKV/rwkv-raven-14b")
prompt = "\nIn a shocking finding, scientist discovered a herd of dragons living in a remote, previously unexplored valley, in Tibet. Even more surprising to the researchers was the fact that the dragons spoke perfect Chinese."
inputs = tokenizer(prompt, return_tensors="pt").to(0)
output = model.generate(inputs["input_ids"], max_new_tokens=40)
print(tokenizer.decode(output[0].tolist(), skip_special_tokens=True))
📄 引用
このモデルを使用する場合は、元のリポジトリ こちら の元の作品を引用することを検討してください。