项目介绍
概述
Qwen1.5-4B-Chat是Qwen项目的一个版本,它是一个基于Transformer架构的语言模型。Qwen1.5是Qwen2的测试版,与之前发布的Qwen相比,Qwen1.5在人类偏好聊天模型方面表现显著提高,同时支持多语言和稳定性的增强,并且支持32K上下文长度。重要的是,这个模型不需要trust_remote_code
。
模型详细信息
Qwen1.5是一系列不同大小的解码语言模型,每个尺寸都有基础语言模型和匹配的聊天模型。这个基于Transformer架构的模型使用了SwiGLU激活函数、注意力QKV偏置、组查询注意力以及滑动窗口注意力与全注意力的混合。此外,它还有经过改进的分词器,可以适应多种自然语言和编程语言。在测试版中,暂时没有包括GQA(除了32B)和滑动窗口注意力与全注意力的混合。
训练细节
模型经过了大量数据的预训练,并通过监督微调和直接偏好优化进行了后期训练。这些训练方案的应用确保了模型能够有效应对多样化的文本生成任务。
软件要求
使用Qwen1.5需要最新版本的Hugging Face Transformers库,建议安装transformers>=4.37.0
,以避免可能的错误。
快速开始
以下代码片段展示了如何使用apply_chat_template
方法加载分词器和模型并生成内容:
from transformers import AutoModelForCausalLM, AutoTokenizer
device = "cuda" # 将模型加载到的设备
model = AutoModelForCausalLM.from_pretrained(
"Qwen/Qwen1.5-4B-Chat",
torch_dtype="auto",
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen1.5-4B-Chat")
prompt = "Give me a short introduction to large language model."
messages = [
{"role": "system", "content": "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(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、AWQ和GGUF对应版本,例如Qwen1.5-4B-Chat-GPTQ-Int4
,Qwen1.5-4B-Chat-GPTQ-Int8
,Qwen1.5-4B-Chat-AWQ
和Qwen1.5-4B-Chat-GGUF
。
小贴士
如果遇到代码切换或其他不良情况,建议使用我们在generation_config.json
中提供的超参数。
引用
如果您觉得我们的工作对您有帮助,请随时引用我们。参考文献格式如下:
@article{qwen,
title={Qwen Technical Report},
author={Jinze Bai and Shuai Bai and Yunfei Chu and Zeyu Cui and Kai Dang and Xiaodong Deng and Yang Fan and Wenbin Ge and Yu Han and Fei Huang and Binyuan Hui and Luo Ji and Mei Li and Junyang Lin and Runji Lin and Dayiheng Liu and Gao Liu and Chengqiang Lu and Keming Lu and Jianxin Ma and Rui Men and Xingzhang Ren and Xuancheng Ren and Chuanqi Tan and Sinan Tan and Jianhong Tu and Peng Wang and Shijie Wang and Wei Wang and Shengguang Wu and Benfeng Xu and Jin Xu and An Yang and Hao Yang and Jian Yang and Shusheng Yang and Yang Yao and Bowen Yu and Hongyi Yuan and Zheng Yuan and Jianwei Zhang and Xingxuan Zhang and Yichang Zhang and Zhenru Zhang and Chang Zhou and Jingren Zhou and Xiaohuan Zhou and Tianhang Zhu},
journal={arXiv preprint arXiv:2309.16609},
year={2023}
}