Qwen2.5 3B Instruct GGUF
模型简介
Qwen2.5-3B-Instruct是基于Qwen2.5-3B的指令优化版本,支持文本生成和聊天任务。通过创新的IQ-DynamicGate量化技术,在保持高精度的同时显著降低内存占用。
模型特点
IQ-DynamicGate量化技术
采用分层策略进行动态精度分配,在超低位量化(1-2位)下仍能保持较高准确性
关键组件保护
嵌入层和输出层使用更高精度量化(Q5_K),减少误差传播
多格式支持
提供从BF16到IQ3_XS等多种量化格式,适应不同硬件需求
内存高效
最小量化版本仅需2.1GB内存,适合边缘设备部署
模型能力
文本生成
对话系统
指令跟随
使用案例
资源受限环境部署
边缘设备AI助手
在内存有限的边缘设备上部署聊天机器人
IQ1_S量化版本仅需2.1GB内存
CPU推理优化
在没有GPU的设备上运行大型语言模型
Q4_K量化版本适合CPU推理
研究应用
超低位量化研究
研究1-2位量化对模型性能的影响
IQ-DynamicGate技术可降低39.7%困惑度
🚀 Qwen2.5-3B-Instruct GGUF模型
Qwen2.5-3B-Instruct GGUF模型采用了最新的超低比特量化方法,在保持高精度的同时,极大地提高了内存使用效率。该模型适用于多种硬件环境,能满足不同场景下的推理需求。
🚀 快速开始
以下是一个使用apply_chat_template
加载分词器和模型并生成内容的代码示例:
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "Qwen/Qwen2.5-3B-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]
✨ 主要特性
超低比特量化技术
- 引入了针对超低比特模型(1 - 2比特)的精度自适应量化方法,在Llama - 3 - 8B模型上经过基准测试验证,性能得到显著提升。
- 采用特定层策略,在保持极高内存效率的同时,有效保留了模型的准确性。
多模型格式支持
- 提供BF16、F16、量化模型(Q4_K、Q6_K、Q8等)多种格式,可根据硬件能力和内存限制灵活选择。
广泛的应用场景
- 适用于GPU显存有限的场景、内存受限的部署环境、CPU和边缘设备,以及超低比特量化研究。
📦 安装指南
文档未提及具体安装步骤,可参考Hugging Face的transformers
库安装方法。
💻 使用示例
基础用法
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "Qwen/Qwen2.5-3B-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]
高级用法
文档未提及高级用法示例。
📚 详细文档
量化方法详情
基准测试环境
所有测试均在Llama - 3 - 8B - Instruct上进行,使用标准困惑度评估管道、2048令牌上下文窗口,并在所有量化方法中使用相同的提示集。
量化方法
- 动态精度分配:
- 前/后25%的层采用IQ4_XS(选定层)。
- 中间50%的层采用IQ2_XXS/IQ3_S以提高效率。
- 关键组件保护:
- 嵌入层/输出层使用Q5_K,与标准1 - 2比特量化相比,误差传播降低38%。
量化性能比较(Llama - 3 - 8B)
量化方式 | 标准困惑度 | DynamicGate困惑度 | 困惑度变化 | 标准大小 | DG大小 | 大小变化 | 标准速度 | DG速度 |
---|---|---|---|---|---|---|---|---|
IQ2_XXS | 11.30 | 9.84 | -12.9% | 2.5G | 2.6G | +0.1G | 234s | 246s |
IQ2_XS | 11.72 | 11.63 | -0.8% | 2.7G | 2.8G | +0.1G | 242s | 246s |
IQ2_S | 14.31 | 9.02 | -36.9% | 2.7G | 2.9G | +0.2G | 238s | 244s |
IQ1_M | 27.46 | 15.41 | -43.9% | 2.2G | 2.5G | +0.3G | 206s | 212s |
IQ1_S | 53.07 | 32.00 | -39.7% | 2.1G | 2.4G | +0.3G | 184s | 209s |
关键改进:
- 🔥 IQ1_M的困惑度大幅降低43.9%(从27.46降至15.41)。
- 🚀 IQ2_S的困惑度降低36.9%,同时仅增加0.2GB大小。
- ⚡ IQ1_S在1比特量化的情况下,精度仍提高39.7%。
权衡:
- 所有变体的大小均有适度增加(0.1 - 0.3GB)。
- 推理速度差异不大(<5%)。
模型格式选择
BF16(Brain Float 16)
- 适用于支持BF16加速的硬件,提供与FP32相似的动态范围,但内存使用更低。
- 使用场景:硬件支持BF16加速、需要更高精度并节省内存、计划将模型重新量化为其他格式。
- 避免场景:硬件不支持BF16、需要与缺乏BF16优化的旧设备兼容。
F16(Float 16)
- 比BF16更广泛支持,适用于大多数支持FP16加速的设备。
- 使用场景:硬件支持FP16但不支持BF16、需要在速度、内存使用和准确性之间取得平衡、在GPU或其他针对FP16计算优化的设备上运行。
- 避免场景:设备缺乏原生FP16支持、有内存限制。
量化模型(Q4_K、Q6_K、Q8等)
- 用于CPU和低显存推理,通过量化降低模型大小和内存使用,同时尽可能保持准确性。
- 低比特模型(Q4_K):最适合最小化内存使用,但精度可能较低。
- 高比特模型(Q6_K、Q8_0):精度更高,但需要更多内存。
- 使用场景:在CPU上运行推理、设备显存较低、希望在保持合理准确性的同时减少内存占用。
- 避免场景:需要最高精度、硬件有足够显存支持更高精度格式(BF16/F16)。
极低比特量化(IQ3_XS、IQ3_S、IQ3_M、Q4_K、Q4_0)
- 针对极端内存效率进行优化,适用于低功耗设备或内存受限的大规模部署。
- IQ3_XS:超低比特量化(3比特),具有极高的内存效率,适用于超低内存设备,但精度较低。
- IQ3_S:小块大小,最大程度提高内存效率,适用于低内存设备。
- IQ3_M:中等块大小,精度优于IQ3_S,适用于低内存设备。
- Q4_K:4比特量化,块级优化,精度较好,适用于低内存设备。
- Q4_0:纯4比特量化,针对ARM设备优化,适用于ARM设备或低内存环境。
模型格式选择总结表
模型格式 | 精度 | 内存使用 | 设备要求 | 最佳使用场景 |
---|---|---|---|---|
BF16 | 最高 | 高 | 支持BF16的GPU/CPU | 高速推理,减少内存占用 |
F16 | 高 | 高 | 支持FP16的设备 | BF16不可用时的GPU推理 |
Q4_K | 中低 | 低 | CPU或低显存设备 | 内存受限环境 |
Q6_K | 中等 | 适中 | 内存较多的CPU | 量化模型中精度较好 |
Q8_0 | 高 | 适中 | 有足够显存的CPU或GPU | 量化模型中精度最高 |
IQ3_XS | 极低 | 极低 | 超低内存设备 | 极端内存效率,低精度 |
Q4_0 | 低 | 低 | ARM或低内存设备 | llama.cpp可针对ARM设备优化 |
包含文件详情
Qwen2.5-3B-Instruct-bf16.gguf
:模型权重保存为BF16格式,适用于支持BF16加速的设备,可用于将模型重新量化为其他格式。Qwen2.5-3B-Instruct-f16.gguf
:模型权重保存为F16格式,适用于支持FP16但不支持BF16的设备。Qwen2.5-3B-Instruct-bf16-q8_0.gguf
:输出和嵌入层保持为BF16,其他层量化为Q8_0,适用于支持BF16且需要量化版本的设备。Qwen2.5-3B-Instruct-f16-q8_0.gguf
:输出和嵌入层保持为F16,其他层量化为Q8_0。Qwen2.5-3B-Instruct-q4_k.gguf
:输出和嵌入层量化为Q8_0,其他层量化为Q4_K,适用于内存有限的CPU推理。Qwen2.5-3B-Instruct-q4_k_s.gguf
:最小的Q4_K变体,内存使用更少,但精度较低,适用于极低内存环境。Qwen2.5-3B-Instruct-q6_k.gguf
:输出和嵌入层量化为Q8_0,其他层量化为Q6_K。Qwen2.5-3B-Instruct-q8_0.gguf
:全Q8量化模型,精度更高,但需要更多内存。Qwen2.5-3B-Instruct-iq3_xs.gguf
:IQ3_XS量化,针对极端内存效率优化,适用于超低内存设备。Qwen2.5-3B-Instruct-iq3_m.gguf
:IQ3_M量化,中等块大小,精度较好,适用于低内存设备。Qwen2.5-3B-Instruct-q4_0.gguf
:纯Q4_0量化,针对ARM设备优化,适用于低内存环境,若需要更高精度,可选择IQ4_NL。
模型测试
如果您觉得这些模型有用,请点击“点赞”!同时,欢迎帮助测试AI网络监控助手,进行量子就绪安全检查: 👉 免费网络监控器
测试方法
- 点击任意页面右下角的聊天图标。
- 选择AI助手类型:
TurboLLM
(GPT - 4 - mini)FreeLLM
(开源)TestLLM
(仅支持CPU的实验性模型)
测试内容
- 推动小型开源模型在AI网络监控中的极限,具体包括:
- 针对实时网络服务进行函数调用。
- 探索模型在处理以下任务时的最小规模:
- 自动化Nmap扫描。
- 量子就绪检查。
- Metasploit集成。
各助手特点
- 🟡 TestLLM:当前实验性模型(llama.cpp在6个CPU线程上运行),零配置设置,加载时间30秒(推理速度慢,但无API成本),寻求边缘设备AI方面的合作!
- 🟢 TurboLLM:使用gpt - 4 - mini进行实时网络诊断和自动化渗透测试(Nmap/Metasploit),可通过下载免费网络监控代理获取更多令牌。
- 🔵 HugLLM:开源模型(约80亿参数),令牌数量是TurboLLM的2倍,支持AI日志分析,在Hugging Face推理API上运行。
示例AI测试命令
"Give me info on my websites SSL certificate"
"Check if my server is using quantum safe encyption for communication"
"Run a quick Nmap vulnerability test"
🔧 技术细节
模型介绍
Qwen2.5是通义大语言模型的最新系列,针对Qwen2.5发布了一系列参数从5亿到720亿的基础语言模型和指令微调语言模型。与Qwen2相比,Qwen2.5有以下改进:
- 知识量显著增加,在编码和数学方面的能力大幅提升,得益于在这些领域的专业专家模型。
- 在指令遵循、长文本生成(超过8K令牌)、结构化数据理解(如表格)和结构化输出生成(特别是JSON)方面有显著改进,对系统提示的多样性更具鲁棒性,增强了聊天机器人的角色扮演实现和条件设置。
- 支持长达128K令牌的长上下文,可生成多达8K令牌的内容。
- 支持超过29种语言,包括中文、英文、法语、西班牙语、葡萄牙语、德语、意大利语、俄语、日语、韩语、越南语、泰语、阿拉伯语等。
模型参数
属性 | 详情 |
---|---|
模型类型 | 因果语言模型 |
训练阶段 | 预训练和后训练 |
架构 | 带有RoPE、SwiGLU、RMSNorm、注意力QKV偏置和绑定词嵌入的transformers |
参数数量 | 30.9亿 |
非嵌入参数数量 | 27.7亿 |
层数 | 36 |
注意力头数量(GQA) | Q为16,KV为2 |
上下文长度 | 完整32,768令牌,生成8192令牌 |
评估与性能
详细评估结果见📑 博客。GPU内存要求和相应吞吐量结果见此处。
📄 许可证
本项目采用qwen-research许可证。
引用
如果您觉得我们的工作有帮助,请引用以下文献:
@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}
}
Phi 2 GGUF
其他
Phi-2是微软开发的一个小型但强大的语言模型,具有27亿参数,专注于高效推理和高质量文本生成。
大型语言模型 支持多种语言
P
TheBloke
41.5M
205
Roberta Large
MIT
基于掩码语言建模目标预训练的大型英语语言模型,采用改进的BERT训练方法
大型语言模型 英语
R
FacebookAI
19.4M
212
Distilbert Base Uncased
Apache-2.0
DistilBERT是BERT基础模型的蒸馏版本,在保持相近性能的同时更轻量高效,适用于序列分类、标记分类等自然语言处理任务。
大型语言模型 英语
D
distilbert
11.1M
669
Llama 3.1 8B Instruct GGUF
Meta Llama 3.1 8B Instruct 是一个多语言大语言模型,针对多语言对话用例进行了优化,在常见的行业基准测试中表现优异。
大型语言模型 英语
L
modularai
9.7M
4
Xlm Roberta Base
MIT
XLM-RoBERTa是基于100种语言的2.5TB过滤CommonCrawl数据预训练的多语言模型,采用掩码语言建模目标进行训练。
大型语言模型 支持多种语言
X
FacebookAI
9.6M
664
Roberta Base
MIT
基于Transformer架构的英语预训练模型,通过掩码语言建模目标在海量文本上训练,支持文本特征提取和下游任务微调
大型语言模型 英语
R
FacebookAI
9.3M
488
Opt 125m
其他
OPT是由Meta AI发布的开放预训练Transformer语言模型套件,参数量从1.25亿到1750亿,旨在对标GPT-3系列性能,同时促进大规模语言模型的开放研究。
大型语言模型 英语
O
facebook
6.3M
198
1
基于transformers库的预训练模型,适用于多种NLP任务
大型语言模型
Transformers

1
unslothai
6.2M
1
Llama 3.1 8B Instruct
Llama 3.1是Meta推出的多语言大语言模型系列,包含8B、70B和405B参数规模,支持8种语言和代码生成,优化了多语言对话场景。
大型语言模型
Transformers 支持多种语言

L
meta-llama
5.7M
3,898
T5 Base
Apache-2.0
T5基础版是由Google开发的文本到文本转换Transformer模型,参数规模2.2亿,支持多语言NLP任务。
大型语言模型 支持多种语言
T
google-t5
5.4M
702
精选推荐AI模型
Llama 3 Typhoon V1.5x 8b Instruct
专为泰语设计的80亿参数指令模型,性能媲美GPT-3.5-turbo,优化了应用场景、检索增强生成、受限生成和推理任务
大型语言模型
Transformers 支持多种语言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一个基于SODA数据集训练的超小型对话模型,专为边缘设备推理设计,体积仅为Cosmo-3B模型的2%左右。
对话系统
Transformers 英语

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基于RoBERTa架构的中文抽取式问答模型,适用于从给定文本中提取答案的任务。
问答系统 中文
R
uer
2,694
98