Qwen2.5-0.5B-Instruct-bnb-4bit 项目介绍
项目背景
Qwen2.5-0.5B-Instruct 是Qwen最新系列的大规模语言模型。该项目由Qwen团队精心打磨,结合了丰富的专业知识,特别是在编码和数学领域。Qwen2.5 系列模型从0.5亿到72亿的参数规模都有发布,包括基础语言模型和指令微调模型。
项目特点
Qwen2.5 相较于之前版本的改进包括:
- 知识大幅增加,并显著提升了编码和数学能力。
- 指令跟随能力的显著提高,有效生成长文本(超过8K tokens),并能理解和生成结构化数据(如表格和JSON格式),对系统提示的多样性有更强的适应性。
- 支持长上下文,能够处理多达128K tokens的内容,并生成最多8K tokens。
- 提供29种语言的多语言支持,包括中文、英文、法文、西班牙文、意大利文、俄文、日文、韩文、阿拉伯文等。
指导使用
Qwen2.5-0.5B-Instruct 是一种因果语言模型,采用由RoPE、SwiGLU、RMSNorm等技术构建的Transformer架构。模型具有24层结构,其中注意力头之数为:14个Q和2个KV。
项目需要使用最新版的Hugging Face transformers
库,低于4.37.0版本将导致错误。
快速上手
以下是一个演示如何加载模型和tokenizer并生成内容的代码示例:
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "Qwen/Qwen2.5-0.5B-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
)
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
项目的使用场景
Qwen2.5-0.5B-Instruct 主要适用于需要高效编码能力、复杂指令执行及多语言支持的场景。在生成长文本、处理复杂结构化数据等方面具有优异的表现,尤其适合于开发高级聊天机器人和多语言文本处理应用。
评价与性能
项目详细的评价结果和性能报告可以在官方 博客、GitHub 和文档 中查阅。
引用
如果本项目对您的研究或工作有所帮助,请参考以下引用:
@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}
}