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

📚 目次
- TL;DR
- モデルの詳細
- 使用方法
- 引用方法
TL;DR
以下は元のリポジトリからの説明です。
RWKVは、トランスフォーマーレベルのLLM性能を持つRNNです。GPTのように直接学習することができます(並列化可能)。RNNとトランスフォーマーの良いところを兼ね備えており、優れた性能、高速な推論、VRAMの節約、高速な学習、「無限の」ctx_len、そして無料の文埋め込みが可能です。
✨ 主な機能
モデルのアーキテクチャの詳細は、上記のブログ記事とHugging Faceの統合に関するブログ記事で見ることができます。
💻 使用例
生の重みをHF形式に変換する
convert_rwkv_checkpoint_to_hf.py
スクリプトを使用して、元の重みのrepo_id、ファイル名、および出力ディレクトリを指定することができます。また、オプションで --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
クラスを使用して、モデルからテキストを生成することができます。以下のセクションを展開して、さまざまなシナリオでモデルを実行する方法を理解してください。
基本的な使用法
CPUでモデルを実行する
クリックして展開
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("RWKV/rwkv-4-169m-pile")
tokenizer = AutoTokenizer.from_pretrained("RWKV/rwkv-4-169m-pile")
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-4-169m-pile").to(0)
tokenizer = AutoTokenizer.from_pretrained("RWKV/rwkv-4-169m-pile")
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-4-169m-pile", torch_dtype=torch.float16).to(0)
tokenizer = AutoTokenizer.from_pretrained("RWKV/rwkv-4-169m-pile")
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-4-169m-pile", device_map="auto")
tokenizer = AutoTokenizer.from_pretrained("RWKV/rwkv-4-169m-pile")
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))
📄 引用
このモデルを使用する場合は、元のリポジトリ こちら の元の作品を引用することを検討してください。
📦 データセット