项目介绍:Qwen2.5-1.5B-Instruct-bnb-4bit
项目背景
Qwen2.5-1.5B-Instruct-bnb-4bit是最新的Qwen大语言模型系列之一,展示了在语言模型领域的显著进步。此模型的基础是一个高效的问答指导型模型,旨在通过减少内存消耗和提高模型运行速度,提供更加智能和经济的解决方案。
项目特点
Qwen2.5-1.5B-Instruct具有以下显著特点:
- 知识丰富与能力提升:模型在编程和数学方面的能力得到了显著提升,尤其是在理解和生成长文本、结构化数据(如表格)及生成结构化输出(如JSON)方面表现出色。
- 指令执行能力加强:在跟随指令及处理各种系统提示方面更具鲁棒性,增强了角色扮演实现和条件设置功能。
- 长上下文支持:支持最长128K的上下文长度,并能生成高达8K的文本内容。
- 多语言支持:覆盖包括中文、英语、法语、西班牙语、葡萄牙语、德语、意大利语、俄语、日语、韩语、越南语、泰语、阿拉伯语等29种语言。
技术细节
- 模型类型:因果语言模型
- 训练阶段:预训练和后训练
- 模型架构:基于transformers框架,采用RoPE、SwiGLU、RMSNorm、注意力QKV偏置以及词嵌入绑定等技术
- 参数量:总参数1.54B;非嵌入参数1.31B
- 层数:28层
- 注意力头(GQA):包含12个Q和2个KV的注意力头
- 上下文长度:支持32,768个完整的标记和8,192个生成标记
快速上手
通过以下代码片段,新手用户可以快速加载Qwen2.5-1.5B-Instruct模型:
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "Qwen/Qwen2.5-1.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
)
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]
使用与性能
详细的评估结果可在有关Qwen2.5的博客中查看,并提供关于GPU内存需求及相应吞吐量的信息。
资源与支持
为方便使用者,提供了初学者友好的免费Google Colab笔记本,可直接在Colab上运行并调参数,该笔记本针对多种模型如Llama-3.1、Gemma-2等,提供优化及内存使用减少的解决方案。