项目介绍:Qwen2.5-14B-Instruct-bnb-4bit
项目背景
Qwen2.5-14B-Instruct是Qwen2.5系列大规模语言模型中的一员。Qwen2.5系列的模型范围广泛,从0.5亿到72亿参数不等。这一模型系列在多个领域相比于Qwen2进行了显著的改进,包括编程和数学方面的能力提升,以及更强的指令跟随能力和长文本生成能力。
项目特色
-
知识增强:Qwen2.5模型的知识库较以往更加丰富,尤其在代码和数学领域,通过专门的专家模型提升了能力。
-
长文本处理:支持上下文长度达到128K tokens,并且能够生成长达8K tokens的内容。
-
多语言支持:支持超过29种语言,包括中文、英语、法语、西班牙语、葡萄牙语、德语、意大利语、俄语、日语、韩语、越南语、泰语、阿拉伯语等。
-
结构化数据理解:模型在理解表格等结构化数据和生成类似JSON的结构化输出方面表现出色。
-
适应多样化:对多样化的系统提示更加包容,增强了角色扮演和条件设定的能力。
-
指令优化模型:该项目特别提供了一个具备14.7亿参数的指令调优模型(非嵌入参数为13.1亿),支持因果语言建模。
技术实现
Qwen2.5-14B-Instruct模型的技术架构包括transfomer结构,并结合使用了RoPE、SwiGLU、RMSNorm和Attention QKV偏置。模型包含48层和多头注意机制,支持处理和生成高达131,072和8,192 tokens的文本。
快速开始
项目提供了快速上手的代码片段,示例展示了如何加载tokenizer和模型并进行内容生成:
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "Qwen/Qwen2.5-14B-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]
长文本处理
对于处理超过32,768 tokens的文本,项目建议采用YaRN技术,这有助于提高模型在长文本上的性能。
部署与评估
对于模型的部署,项目推荐使用vLLM。这种配置方式能有效管理长上下文处理,以保持对长文本环境的最高性能。
进一步信息
更多详细信息和使用指南,读者可以访问项目的博客、GitHub和文档。如果此项目对您的研究工作有所帮助,请给予适当的学术引用。