项目介绍:Qwen2-1.5B-Instruct-GGUF
背景介绍
Qwen2是Qwen系列大型语言模型的新成员。在Qwen2中,研究人员发布了一系列基础大语言模型和指令微调语言模型,这些模型的参数数量从0.5亿到72亿不等,其中还包括一个专家组合模型。这一项目特别包含了一个经过指令微调的1.5B Qwen2模型。
与之前流行的开源语言模型(例如Qwen1.5)相比,Qwen2依然表现出色,在许多旨在考察语言理解、语言生成、多语言能力、编程、数学和推理等方面的基准测试中,Qwen2不仅超越了大多数开源模型,同时在许多方面也能与专有模型媲美。
模型细节
Qwen2系列包括不同大小的解码器语言模型,对每种尺寸的模型都发布了基础语言模型和对齐的聊天模型。Qwen2模型基于Transformer架构,并集成了SwiGLU激活功能、QKV偏置注意力、群组查询注意力等。此外,Qwen2还拥有改进的分词工具,能够适应多种自然语言和编码。
训练细节
Qwen2模型的预训练在大量数据集上进行,并且后续通过监督微调和直接偏好优化进行训练,使得模型能够更好地理解和响应复杂多样的指令。
使用方法
用户可以选择通过手动下载所需的GGUF格式文件,或者使用huggingface-cli
命令来获取模型:
huggingface-cli download Qwen/Qwen2-1.5B-Instruct-GGUF qwen2-1_5b-instruct-q5_k_m.gguf --local-dir . --local-dir-use-symlinks False
运行Qwen2模型时,可以使用llama-cli
或llama-server
工具。推荐使用llama-server
,因为其兼容OpenAI API且操作简单,例如:
./llama-server -m qwen2-1_5b-instruct-q5_k_m.gguf -ngl 28 -fa
这将支持使用OpenAI API访问部署的服务:
import openai
client = openai.OpenAI(
base_url="http://localhost:8080/v1",
api_key="sk-no-key-required"
)
completion = client.chat.completions.create(
model="qwen",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "tell me something about michael jordan"}
]
)
print(completion.choices[0].message.content)
如果选择llama-cli
,需要注意调整ChatML模板的前后缀设置,使用--in-prefix
和--in-suffix
来解决。
性能评估
Qwen2也进行了性能评估,通过wikitext实现的困惑度测试,显示了不同大小和量化级别的GGUF模型的PPL(困惑度)值。如1.5B模型的PPL值在fp16格式下为10.43,而在量化版本中稍有上升。
大小 | fp16 | q8_0 | q6_k | q5_k_m | q5_0 | q4_k_m | q4_0 | q3_k_m | q2_k | iq1_m |
---|---|---|---|---|---|---|---|---|---|---|
0.5B | 15.11 | 15.13 | 15.14 | 15.24 | 15.40 | 15.36 | 16.28 | 15.70 | 16.74 | - |
1.5B | 10.43 | 10.43 | 10.45 | 10.50 | 10.56 | 10.61 | 10.79 | 11.08 | 13.04 | - |
7B | 7.93 | 7.94 | 7.96 | 7.97 | 7.98 | 8.02 | 8.19 | 8.20 | 10.58 | - |
57B-A14B | 6.81 | 6.81 | 6.83 | 6.84 | 6.89 | 6.99 | 7.02 | 7.43 | - | - |
72B | 5.58 | 5.58 | 5.59 | 5.59 | 5.60 | 5.61 | 5.66 | 5.68 | 5.91 | 6.75 |
结论与引用
如果对Qwen2项目感兴趣,可以参考它们的技术报告进行更深入的了解,同时,欢迎引用该项目以支持后续研究。
@article{qwen2,
title={Qwen2 Technical Report},
year={2024}
}