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'



