模型简介
模型特点
模型能力
使用案例
🚀 Qwen2.5-14B-Instruct GGUF模型
Qwen2.5-14B-Instruct GGUF模型是一系列专为文本生成任务设计的模型。这些模型基于Qwen2.5-14B基础模型,经过指令微调,适用于多种聊天场景。本项目旨在为用户提供不同格式的模型,以满足各种硬件和内存条件下的使用需求。
🚀 快速开始
选择合适的模型格式
选择正确的模型格式取决于您的硬件能力和内存限制。
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和低显存推理
量化可在尽可能保持准确性的同时减小模型大小和内存使用。
- 低比特模型(Q4_K) → 内存使用最少,但精度可能较低。
- 高比特模型(Q6_K、Q8_0) → 准确性更好,但需要更多内存。
📌 使用量化模型的情况: ✔ 您在CPU上运行推理,需要优化的模型。 ✔ 您的设备显存较低,无法加载全精度模型。 ✔ 您希望在保持合理准确性的同时减少内存占用。
📌 避免使用量化模型的情况: ❌ 您需要最高的准确性(全精度模型更适合此需求)。 ❌ 您的硬件有足够的显存来支持更高精度的格式(BF16/F16)。
模型格式选择总结表
属性 | 详情 |
---|---|
模型格式 | BF16、F16、Q4_K、Q6_K、Q8 |
精度 | 最高、高、低、中低、中 |
内存使用 | 高、高、非常低、低、中等 |
设备要求 | 支持BF16的GPU/CPU、支持FP16的设备、CPU或低显存设备、有更多内存的CPU、有足够显存的CPU或GPU |
最佳用例 | 高速推理且内存减少、BF16不可用时的GPU推理、内存受限环境、量化时更好的准确性、量化模型中最佳的准确性 |
包含的文件及详情
Qwen2.5-14B-Instruct-bf16.gguf
- 模型权重以BF16保存。
- 如果您想将模型重新量化为不同格式,请使用此文件。
- 如果您的设备支持BF16加速,则为最佳选择。
Qwen2.5-14B-Instruct-f16.gguf
- 模型权重以F16存储。
- 如果您的设备支持FP16,尤其是在BF16不可用时,请使用此文件。
Qwen2.5-14B-Instruct-bf16-q8_0.gguf
- 输出和嵌入保持为BF16。
- 所有其他层量化为Q8_0。
- 如果您的设备支持BF16,并且您想要一个量化版本,请使用此文件。
Qwen2.5-14B-Instruct-f16-q8_0.gguf
- 输出和嵌入保持为F16。
- 所有其他层量化为Q8_0。
Qwen2.5-14B-Instruct-q4_k.gguf
- 输出和嵌入量化为Q8_0。
- 所有其他层量化为Q4_K。
- 适用于内存有限的CPU推理。
Qwen2.5-14B-Instruct-q4_k_s.gguf
- 最小的Q4_K变体,以牺牲准确性为代价减少内存使用。
- 适用于极低内存设置。
Qwen2.5-14B-Instruct-q6_k.gguf
- 输出和嵌入量化为Q8_0。
- 所有其他层量化为Q6_K。
Qwen2.5-14B-Instruct-q8_0.gguf
- 完全Q8量化的模型,以获得更好的准确性。
- 需要更多内存,但提供更高的精度。
测试模型
如果您觉得这些模型有用,请点赞 ❤。另外,如果您能测试我的网络监控助手,我将不胜感激。点击👉 网络监控助手。
💬 点击聊天图标(主页和仪表盘页面的右下角)。选择一个大语言模型;在大语言模型类型之间切换:TurboLLM -> FreeLLM -> TestLLM。
正在测试的内容
我正在针对我的网络监控服务进行函数调用实验。使用小型开源模型。我关注的问题是“模型可以多小仍能正常工作”。
🟡 TestLLM – 使用llama.cpp在CPU虚拟机的6个线程上运行当前测试模型(加载大约需要15秒。推理速度相当慢,并且一次只处理一个用户提示 — 仍在努力扩展!)。如果您感兴趣,我很乐意分享其工作原理!
其他可用的AI助手
🟢 TurboLLM – 使用gpt-4o-mini,速度快!注意:由于OpenAI模型价格昂贵,令牌有限,但您可以登录或下载免费的网络监控代理以获取更多令牌,或者使用TestLLM。
🔵 HugLLM – 运行开源Hugging Face模型,速度快,运行小型模型(≈8B),因此质量较低,可获得2倍的令牌(取决于Hugging Face API的可用性)。
✨ 主要特性
Qwen2.5-14B-Instruct介绍
Qwen2.5是通义大语言模型的最新系列。对于Qwen2.5,我们发布了一系列从5亿到720亿参数的基础语言模型和指令微调语言模型。Qwen2.5在Qwen2的基础上带来了以下改进:
- 由于我们在这些领域的专业专家模型,拥有更多的知识,并在编码和数学方面的能力有了极大的提升。
- 在遵循指令、生成长文本(超过8K令牌)、理解结构化数据(例如,表格)和生成结构化输出(尤其是JSON)方面有显著改进。对系统提示的多样性更具弹性,增强了聊天机器人的角色扮演实现和条件设置。
- 长上下文支持高达128K令牌,并且可以生成高达8K令牌。
- 支持29种以上语言,包括中文、英文、法文、西班牙文、葡萄牙文、德文、意大利文、俄文、日文、韩文、越南文、泰文、阿拉伯文等。
本仓库包含经过指令微调的14B Qwen2.5模型,具有以下特点:
- 类型:因果语言模型
- 训练阶段:预训练和后训练
- 架构:带有RoPE、SwiGLU、RMSNorm和注意力QKV偏置的transformers
- 参数数量:147亿
- 非嵌入参数数量:131亿
- 层数:48
- 注意力头数量(GQA):Q为40,KV为8
- 上下文长度:完整的131,072令牌,生成8192令牌
- 有关如何部署Qwen2.5以处理长文本的详细说明,请参阅此部分。
📦 安装指南
本项目代码依赖于Hugging face的transformers
库,建议使用最新版本的transformers
。如果使用transformers<4.37.0
,会遇到以下错误:
KeyError: 'qwen2'
💻 使用示例
基础用法
以下是一个使用apply_chat_template
的代码片段,展示了如何加载分词器和模型,以及如何生成内容。
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "Qwen/Qwen2.5-14B-Instruct"
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
prompt = "Give me a short introduction to large language model."
messages = [
{"role": "system", "content": "You are Qwen, created by Alibaba Cloud. You are a helpful assistant."},
{"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=512
)
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=True)[0]
处理长文本
当前的config.json
设置为上下文长度最大为32,768令牌。
为了处理超过32,768令牌的大量输入,我们使用YaRN,这是一种增强模型长度外推的技术,确保在长文本上的最佳性能。
对于支持的框架,您可以在config.json
中添加以下内容以启用YaRN:
{
...,
"rope_scaling": {
"factor": 4.0,
"original_max_position_embeddings": 32768,
"type": "yarn"
}
}
对于部署,我们建议使用vLLM。如果您不熟悉vLLM,请参阅我们的文档以了解用法。目前,vLLM仅支持静态YARN,这意味着缩放因子无论输入长度如何都保持不变,可能会影响较短文本的性能。我们建议仅在需要处理长上下文时添加rope_scaling
配置。
📚 详细文档
评估与性能
详细的评估结果在这篇📑 博客中报告。
有关GPU内存要求和相应吞吐量的信息,请参阅此处的结果。
引用
如果您觉得我们的工作有帮助,请随意引用。
@misc{qwen2.5,
title = {Qwen2.5: A Party of Foundation Models},
url = {https://qwenlm.github.io/blog/qwen2.5/},
author = {Qwen Team},
month = {September},
year = {2024}
}
@article{qwen2,
title={Qwen2 Technical Report},
author={An Yang and Baosong Yang and Binyuan Hui and Bo Zheng and Bowen Yu and Chang Zhou and Chengpeng Li and Chengyuan Li and Dayiheng Liu and Fei Huang and Guanting Dong and Haoran Wei and Huan Lin and Jialong Tang and Jialin Wang and Jian Yang and Jianhong Tu and Jianwei Zhang and Jianxin Ma and Jin Xu and Jingren Zhou and Jinze Bai and Jinzheng He and Junyang Lin and Kai Dang and Keming Lu and Keqin Chen and Kexin Yang and Mei Li and Mingfeng Xue and Na Ni and Pei Zhang and Peng Wang and Ru Peng and Rui Men and Ruize Gao and Runji Lin and Shijie Wang and Shuai Bai and Sinan Tan and Tianhang Zhu and Tianhao Li and Tianyu Liu and Wenbin Ge and Xiaodong Deng and Xiaohuan Zhou and Xingzhang Ren and Xinyu Zhang and Xipin Wei and Xuancheng Ren and Yang Fan and Yang Yao and Yichang Zhang and Yu Wan and Yunfei Chu and Yuqiong Liu and Zeyu Cui and Zhenru Zhang and Zhihao Fan},
journal={arXiv preprint arXiv:2407.10671},
year={2024}
}
📄 许可证
本项目采用Apache-2.0许可证。



