Qwen2.5-72B-Instruct-GPTQ-Int8项目介绍
项目背景
Qwen2.5是Qwen系列大型语言模型的最新版本。相比之前的Qwen2版本,Qwen2.5在多方面进行了显著的提升,包括知识能力、编码和数学能力。这得益于专门针对这些领域优化的专家模型。此外,Qwen2.5在指令执行能力、生成长文本、理解和生成结构化数据(如JSON格式)等方面都有了长足进步,能够更好地应对多样化的系统提示,提高了角色扮演和对话机器人的情境设定能力。
特点与功能
- 多语言支持:支持超过29种语言,包括中文、英语、法语、西班牙语、葡萄牙语、德语、意大利语、俄语、日语、韩语、越南语、泰语、阿拉伯语等。
- 长上下文支持:支持最长128K个标记的上下文,并能够生成最多8K个标记。
- 量化模型:本项目包含经过GPTQ量化的8位指令调优72B Qwen2.5模型。模型类型为生成语言模型,包括预训练和后训练阶段。
- 模型架构:基于transformers架构,采用RoPE、SwiGLU、RMSNorm及Attention QKV偏置。模型参数总数为72.7亿,不包含嵌入层参数的为70亿,包含80个层,64个Q注意力头和8个KV注意力头。
- 上下文长度:支持全上下文长度131,072个标记,在生成内容时能达到8192个标记。
使用指南
在环境需求方面,建议使用最新版本的Hugging Face transformers
库,以避免一些版本较低时可能遇到的问题(如transformers<4.37.0
会出现KeyError: 'qwen2'
)。
快速开始
以下是一个简单的示例代码,可以用来加载tokenizer和模型,以及生成内容:
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "Qwen/Qwen2.5-72B-Instruct-GPTQ-Int8"
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]
处理长文本
对于上下文长度超过32,768个标记的大量输入,可以采用YaRN技术来提升模型的长文本处理性能。为此,可以在config.json
中设置如下内容来启用YaRN:
{
...,
"rope_scaling": {
"factor": 4.0,
"original_max_position_embeddings": 32768,
"type": "yarn"
}
}
建议使用vLLM进行部署,具体使用方法可以参考相应的文档。
评估与性能
量化模型的详细评估结果可以在官方博客和相关文档中查看。此外,关于GPU内存需求及相应吞吐量的评测结果也可以在此查阅。
引用信息
如果Qwen2.5项目对您的工作有帮助,请提供适当引用:
@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}
}