Rwkv7 2.9B World GGUF
模型概述
模型特點
模型能力
使用案例
🚀 rwkv7-2.9B-world GGUF模型
rwkv7-2.9B-world GGUF模型是基於flash-linear attention格式的RWKV-7模型,可用於文本生成任務。本項目將為你介紹該模型的不同格式、使用方法、模型詳情等內容。
🚀 快速開始
在使用此模型之前,你需要安裝flash-linear-attention
和最新版本的transformers
:
pip install git+https://github.com/fla-org/flash-linear-attention
pip install 'transformers>=4.48.0'
你可以像使用其他HuggingFace模型一樣使用該模型:
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained('fla-hub/rwkv7-2.9B-world', trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained('fla-hub/rwkv7-2.9B-world', trust_remote_code=True)
model = model.cuda()
prompt = "What is a large language model?"
messages = [
{"role": "user", "content": "Who are you?"},
{"role": "assistant", "content": "I am a GPT-3 based model."},
{"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
generated_ids = model.generate(
**model_inputs,
max_new_tokens=1024,
)
generated_ids = [
output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=False)[0]
print(response)
✨ 主要特性
- 多語言支持:支持英語、中文、日語、韓語、法語、阿拉伯語、西班牙語、葡萄牙語等多種語言。
- 多種模型格式:提供BF16、F16、量化模型等多種格式,可根據硬件能力和內存限制選擇合適的格式。
- 文本生成能力:可用於文本生成任務,如對話、問答等。
📦 安裝指南
運行此模型,你必須使用最新版本的llama.cpp:https://github.com/ggml-org/llama.cpp 。
💻 使用示例
基礎用法
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained('fla-hub/rwkv7-2.9B-world', trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained('fla-hub/rwkv7-2.9B-world', trust_remote_code=True)
model = model.cuda()
prompt = "What is a large language model?"
messages = [
{"role": "user", "content": "Who are you?"},
{"role": "assistant", "content": "I am a GPT-3 based model."},
{"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
generated_ids = model.generate(
**model_inputs,
max_new_tokens=1024,
)
generated_ids = [
output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=False)[0]
print(response)
📚 詳細文檔
選擇合適的模型格式
選擇正確的模型格式取決於你的硬件能力和內存限制。
BF16(Brain Float 16) – 若有BF16加速功能則使用
- 一種16位浮點格式,專為更快的計算而設計,同時保持良好的精度。
- 提供與FP32 相似的動態範圍,但內存使用更低。
- 如果你的硬件支持BF16加速(請查看設備規格),建議使用。
- 與FP32相比,適用於高性能推理,且內存佔用減少。
📌 使用BF16的情況: ✔ 你的硬件具有原生BF16支持(例如,較新的GPU、TPU)。 ✔ 你希望在節省內存的同時獲得更高的精度。 ✔ 你計劃將模型重新量化為其他格式。
📌 避免使用BF16的情況: ❌ 你的硬件不支持BF16(可能會回退到FP32並運行較慢)。 ❌ 你需要與缺乏BF16優化的舊設備兼容。
F16(Float 16) – 比BF16更廣泛支持
- 一種16位浮點格式,精度較高,但取值範圍比BF16小。
- 適用於大多數支持FP16加速的設備(包括許多GPU和一些CPU)。
- 數值精度略低於BF16,但通常足以進行推理。
📌 使用F16的情況: ✔ 你的硬件支持FP16但不支持BF16。 ✔ 你需要在速度、內存使用和準確性之間取得平衡。 ✔ 你在GPU或其他針對FP16計算優化的設備上運行。
📌 避免使用F16的情況: ❌ 你的設備缺乏原生FP16支持(可能會比預期運行得慢)。 ❌ 你有內存限制。
量化模型(Q4_K、Q6_K、Q8等) – 用於CPU和低VRAM推理
量化可在儘可能保持準確性的同時減小模型大小和內存使用。
- 低比特模型(Q4_K) → 內存使用最少,但精度可能較低。
- 高比特模型(Q6_K、Q8_0) → 準確性更好,但需要更多內存。
📌 使用量化模型的情況: ✔ 你在CPU上運行推理,需要優化的模型。 ✔ 你的設備VRAM較低,無法加載全精度模型。 ✔ 你希望在保持合理準確性的同時減少內存佔用。
📌 避免使用量化模型的情況: ❌ 你需要最高的準確性(全精度模型更適合這種情況)。 ❌ 你的硬件有足夠的VRAM用於更高精度的格式(BF16/F16)。
極低比特量化(IQ3_XS、IQ3_S、IQ3_M、Q4_K、Q4_0)
這些模型針對極端內存效率進行了優化,非常適合低功耗設備或內存是關鍵限制因素的大規模部署。
-
IQ3_XS:超低比特量化(3位),具有極高的內存效率。
- 使用場景:最適合超低內存設備,即使Q4_K也太大的情況。
- 權衡:與高比特量化相比,準確性較低。
-
IQ3_S:小塊大小,以實現最大內存效率。
- 使用場景:最適合低內存設備,當IQ3_XS過於激進時。
-
IQ3_M:中等塊大小,比IQ3_S具有更好的準確性。
- 使用場景:適用於低內存設備,當IQ3_S限制太大時。
-
Q4_K:4位量化,具有逐塊優化,以提高準確性。
- 使用場景:最適合低內存設備,當Q6_K太大時。
-
Q4_0:純4位量化,針對ARM設備進行了優化。
- 使用場景:最適合基於ARM的設備或低內存環境。
模型格式選擇總結表
模型格式 | 精度 | 內存使用 | 設備要求 | 最佳使用場景 |
---|---|---|---|---|
BF16 | 最高 | 高 | 支持BF16的GPU/CPU | 減少內存的高速推理 |
F16 | 高 | 高 | 支持FP16的設備 | 當BF16不可用時的GPU推理 |
Q4_K | 中低 | 低 | CPU或低VRAM設備 | 內存受限環境的最佳選擇 |
Q6_K | 中 | 中等 | 內存較多的CPU | 量化模型中準確性較好的選擇 |
Q8_0 | 高 | 中等 | 有足夠VRAM的CPU或GPU | 量化模型中準確性最高的選擇 |
IQ3_XS | 非常低 | 非常低 | 超低內存設備 | 極端內存效率和低準確性 |
Q4_0 | 低 | 低 | ARM或低內存設備 | llama.cpp可針對ARM設備進行優化 |
包含的文件及詳情
rwkv7-2.9B-world-bf16.gguf
- 模型權重以BF16保存。
- 如果你想將模型重新量化為其他格式,請使用此文件。
- 如果你的設備支持BF16加速,則最佳選擇。
rwkv7-2.9B-world-f16.gguf
- 模型權重以F16存儲。
- 如果你的設備支持FP16,尤其是當BF16不可用時,請使用此文件。
rwkv7-2.9B-world-bf16-q8_0.gguf
- 輸出和嵌入保持為BF16。
- 所有其他層量化為Q8_0。
- 如果你的設備支持BF16,並且你想要一個量化版本,請使用此文件。
rwkv7-2.9B-world-f16-q8_0.gguf
- 輸出和嵌入保持為F16。
- 所有其他層量化為Q8_0。
rwkv7-2.9B-world-q4_k.gguf
- 輸出和嵌入量化為Q8_0。
- 所有其他層量化為Q4_K。
- 適用於內存有限的CPU推理。
rwkv7-2.9B-world-q4_k_s.gguf
- 最小的Q4_K變體,以犧牲準確性為代價減少內存使用。
- 最適合極低內存設置。
rwkv7-2.9B-world-q6_k.gguf
- 輸出和嵌入量化為Q8_0。
- 所有其他層量化為Q6_K。
rwkv7-2.9B-world-q8_0.gguf
- 完全Q8量化的模型,以獲得更好的準確性。
- 需要更多內存,但提供更高的精度。
rwkv7-2.9B-world-iq3_xs.gguf
- IQ3_XS量化,針對極端內存效率進行了優化。
- 最適合超低內存設備。
rwkv7-2.9B-world-iq3_m.gguf
- IQ3_M量化,提供中等塊大小以提高準確性。
- 適用於低內存設備。
rwkv7-2.9B-world-q4_0.gguf
- 純Q4_0量化,針對ARM設備進行了優化。
- 最適合低內存環境。
- 若追求更高準確性,建議使用IQ4_NL。
測試LLM相關
如果你覺得這些模型有用,請點贊❤。另外,如果你能測試我的網絡監控助手,我將不勝感激👉 網絡監控助手。
💬 點擊聊天圖標(主頁和儀表盤頁面的右下角)。選擇一個LLM;在LLM類型之間切換:TurboLLM -> FreeLLM -> TestLLM。
正在測試的內容
我正在針對我的網絡監控服務進行函數調用實驗。使用小型開源模型。我關注的問題是“模型可以多小還能正常工作”。
🟡 TestLLM – 使用llama.cpp在CPU虛擬機的6個線程上運行當前測試模型(加載大約需要15秒。推理速度相當慢,並且一次只處理一個用戶提示 — 仍在努力擴展!)。如果你好奇,我很樂意分享它的工作原理!
其他可用的AI助手
🟢 TurboLLM – 使用gpt-4o-mini,速度快!注意:由於OpenAI模型價格昂貴,令牌有限,但你可以登錄或下載免費的網絡監控代理以獲取更多令牌,或者使用TestLLM。
🔵 HugLLM – 運行開源Hugging Face模型,速度快,運行小型模型(≈8B),因此質量較低,可獲得2倍的令牌(取決於Hugging Face API的可用性)。
🔧 技術細節
模型詳情
模型描述
- 開發者: Bo Peng, Yu Zhang, Songlin Yang, Ruichong Zhang
- 資助方: RWKV項目(隸屬於LF AI & Data基金會)
- 模型類型: RWKV7
- 語言(NLP): 英語
- 許可證: Apache-2.0
- 參數數量: 29億
- 分詞器: RWKV World分詞器
- 詞彙量: 65,536
模型來源
- 倉庫: https://github.com/fla-org/flash-linear-attention ; https://github.com/BlinkDL/RWKV-LM
- 論文: 正在進行中
用途
本模型適用於文本生成任務,如對話、問答等。
訓練數據
該模型在World v3上進行訓練,總共有3.119萬億個令牌。
訓練超參數
- 訓練機制: bfloat16,學習率從4e-4到1e-5進行“延遲”餘弦衰減,權重衰減為0.1(中間增加批量大小)
- 最終損失: 1.8745
- 令牌數量: 3.119萬億
📄 許可證
本項目採用Apache-2.0許可證。
FAQ
Q: safetensors元數據為空。
A: 將transformers升級到>=4.48.0:pip install 'transformers>=4.48.0'



