项目介绍:Qwen2-1.5B-Instruct-GPTQ-Int4
什么是Qwen2-1.5B-Instruct-GPTQ-Int4?
Qwen2-1.5B-Instruct-GPTQ-Int4是Qwen大语言模型系列的一个重要组成部分。Qwen2系列包括多种规模的基础语言模型和指令调整语言模型,参数数量从0.5亿到72亿不等,还包括一种专家混合模型(Mixture-of-Experts)。这个特别的项目包含了一个使用指令调整的1.5B Qwen2模型。
先进性
与现有的开源语言模型(包括之前发布的Qwen1.5)相比,Qwen2在多项基准测试中表现出色,展示了其在语言理解、语言生成、多语言能力、编程、数学和推理等方面的潜力。Qwen2不仅超越了许多开源模型,还在某些领域与专有模型竞争。
模型详情
Qwen2模型系列包括不同规模的解码器语言模型。对于每一种规模,都会发布基础语言模型和对话模型。模型基于Transformer架构,融入了SwiGLU激活、注意力QKV偏差、分组查询注意力等技术。此外,改进了分词器,以适应多种自然语言和代码。
训练细节
模型的训练经过大量数据的预训练,以及通过监督微调和直接偏好优化的再训练,使其在多领域具有广泛的应用能力。
使用要求
建议安装transformers
版本大于等于4.37.0,否则可能遇到KeyError: 'qwen2'
错误。此外,如果在推理时遇到RuntimeError
,建议安装autogpq>=0.7.1
或者通过vLLM进行部署。
快速开始
以下是一个简单的代码示例,展示如何加载分词器和模型,以及如何生成内容。
from transformers import AutoModelForCausalLM, AutoTokenizer
device = "cuda" # 指定设备
model = AutoModelForCausalLM.from_pretrained(
"Qwen/Qwen2-1.5B-Instruct-GPTQ-Int4",
torch_dtype="auto",
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2-1.5B-Instruct-GPTQ-Int4")
prompt = "给我一个关于大语言模型的简短介绍。"
messages = [
{"role": "system", "content": "你是一个乐于助人的助手。"},
{"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(device)
generated_ids = model.generate(
model_inputs.input_ids,
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]
性能基准和速度
对于想要了解不同量化技术(如GPTQ-Int8、GPTQ-Int4、AWQ等)对模型性能影响的人,请参考我们的量化模型基准。欲了解使用transformer
或vLLM
部署这些模型时的推理速度和内存消耗,可以查看我们编制的速度基准。
引用
如果觉得我们的工作对您有帮助,欢迎引用我们。
@article{qwen2,
title={Qwen2 Technical Report},
year={2024}
}