链载Ai

标题: 探索阿里通义千问 Qwen2.5:新一代开源大模型的卓越力量 [打印本页]

作者: 链载Ai    时间: 前天 11:35
标题: 探索阿里通义千问 Qwen2.5:新一代开源大模型的卓越力量

在人工智能领域的快速发展进程中,阿里通义千问的 Qwen2.5 模型以其强大的性能和广泛的应用潜力,成为了备受关注的焦点。2024 云栖大会上的发布,更是让 Qwen2.5 走进了更多开发者和研究者的视野。本文将深入探讨 Qwen2.5 的各项技术特点和优势。



一、总体概述


Qwen2.5 全系列涵盖了多个尺寸的大语言模型、多模态模型、数学模型和代码模型。这种全面的模型体系,为不同领域的应用提供了强大的支持。无论是自然语言处理任务中的文本生成、问答,还是在编程领域的代码生成与辅助,亦或是数学问题的求解,Qwen2.5 都能发挥出色的作用。每个尺寸的模型都有基础版本、指令跟随版本、量化版本,总计上架 100 多个模型,满足了用户在不同场景下的多样化需求,刷新了业界纪录。


二、性能提升


1. 预训练数据优势:Qwen2.5 全系列模型在 18t tokens 数据上进行预训练,预训练数据量大幅度增长达到了 18 万亿 tokens,超过了 meta 最新开源 llama-3.1 的 15 万亿,成为目前训练数据最多的开源模型之一。大量的数据为模型提供了更丰富的知识和更准确的理解能力。



2. 整体性能升级:与 Qwen2 相比,Qwen2.5 的整体性能提升了 18%以上。在知识能力方面,其在 MMLU 基准测试等多个测评中都有显著改进;数学能力也得到了快速提升,例如在 Math 基准上,Qwen2.5-7b/72b-instruct 的得分相比 Qwen2-7b/72b-instruct 有了明显提高。


3. 指令跟随与结构化数据处理能力增强:在指令跟随方面,Qwen2.5 进步明显,能够更好地理解和执行用户的指令。同时,对于结构化数据(如表格)的理解和生成结构化输出(尤其是 json)的能力也实现了显著改进。这使得它在处理复杂数据和需要精确输出的任务中表现更加出色。


4. 强大的语言支持:Qwen2.5 支持高达 128k 的上下文长度,可生成最多 8k 内容,并且能够丝滑响应多样化的系统提示,实现角色扮演和聊天机器人等任务。它还支持中文、英文、法文、西班牙文、俄文、日文、越南文、阿拉伯文等 29 种以上语言,具有强大的多语言能力。



三、专项突破


1. Qwen2.5-coder:用于编程的 Qwen2.5-coder 在多达 5.5t tokens 的编程相关数据上进行了训练,为开发者提供了更高效的编程辅助。无论是代码的生成、调试,还是回答编程相关的问题,它都能给出准确且实用的建议。


2. Qwen2.5-math:Qwen2.5-math 支持使用思维链和工具集成推理(TIR)解决中英双语的数学题,是迄今为止最先进的开源数学模型系列。通过在更大规模的高质量数学数据上进行预训练,并结合 Qwen2-math 的技术,其数学问题解决能力得到了极大的提升。


四、应用场景


Qwen2.5 的强大性能和丰富功能使其在众多领域都有着广阔的应用前景。


五、本地部署


在魔搭社区,开发者可以通过多种方式体验和使用Qwen2.5系列模型。可以使用ModelScope CLI、Python SDK或者git clone的方式下载模型。Qwen2.5合集的体验链接为:https://modelscope.cn/studios/qwen/Qwen2.5。此外,还有小程序体验,如看图解数学题(Qwen2 - VL + Qwen2.5 - Math)的体验链接为:https://modelscope.cn/studios/qwen/Qwen2.5 - Math - demo。



1、模型下载


可以采用modelscope 的snapshot_download进行下载模型(提前安装modelscope : pip install modelscope),第一个参数为modelscope上的模型路径,cache_dir为模型本地存放地址
#模型下载frommodelscopeimportsnapshot_downloadmodel_dir=snapshot_download('Qwen/Qwen2.5-7B-Instruct',cache_dir='/root/autodl-tmp',revision='master')
下载完成如下:

2、加载模型


from modelscope import AutoModelForCausalLM, AutoTokenizer
# 指定要加载的模型名称model_name = "/root/autodl-tmp/Qwen/Qwen2___5-7B-Instruct"
# 加载因果语言模型model = AutoModelForCausalLM.from_pretrained(model_name,torch_dtype="auto",# 自动确定 PyTorch 的数据类型device_map="auto"# 自动确定设备映射)
# 加载分词器tokenizer = AutoTokenizer.from_pretrained(model_name)

加载如下:

3、定义提示消息

# 设置提示文本prompt = "Give me a short introduction to artificial intelligence."# 构建包含系统角色和用户角色的消息列表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)text
输出:


'<|im_start|>system\nYou are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>\n<|im_start|>user\nGive me a short introduction to artificial intelligence.<|im_end|>\n<|im_start|>assistant\n'



4、分词处理


对输入文本进行分词和张量转换


#将处理后的文本转换为模型输入张量,并移动到模型所在设备上model_inputs=tokenizer([text],return_tensors="pt").to(model.device)model_inputs
输出:

5、生成文本


生成文本,再从生成的标记中去除输入部分的标记


# 生成文本,设置最大新生成的标记数为 512generated_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)]generated_ids
‍输出:

6、解码返回生成结果


#将生成的标记解码为文本,并跳过特殊标记response=tokenizer.batch_decode(generated_ids,skip_special_tokens=True)[0]response
输出:


'Certainly!ArtificialIntelligence(AI)referstothesimulationofhumanintelligenceinmachinesthatareprogrammedtothink,learn,andperformtasksthattypicallyrequirehumancognition.Thisincludesactivitiessuchasvisualperception,speechrecognition,decision-making,andlanguagetranslation.\n\nKeycomponentsofAIinclude:\n\n1.**MachineLearning**:AsubsetofAIwheresystemscanautomaticallylearnandimprovefromexperiencewithoutbeingexplicitlyprogrammed.\n2.**DeepLearning**:Amoreadvancedformofmachinelearningthatusesneuralnetworkswithmanylayerstomodelandsolvecomplexproblems.\n3.**NaturalLanguageProcessing(NLP)**:Theabilityofcomputerstounderstand,interpret,andgeneratehumanlanguage.\n4.**ComputerVision**:Enablingmachinestointerpretandunderstandthevisualworld,similartohowhumanswould.\n5.**Robotics**:CombiningAIwithroboticstocreatemachinesthatcanperformtasksautonomouslyorsemi-autonomously.\n\nAIhasnumerousapplicationsacrossvariousfields,includinghealthcare,finance,transportation,entertainment,andmore.Itcontinuestoevolverapidly,transformingindustriesandsocietiesinprofoundways.'

结语


在模型微调方面,可以使用ms-swift 进行微调。它作为魔搭社区官方提供的 LLM 工具箱,以其强大的功能支持着对 qwen2.5 的微调操作。通过 ms-swift,开发者能够对 qwen2.5 进行精细调整,使其更加贴合特定的应用需求。而微调后的模型在推理过程中,更是展现出了高度的准确性和适应性,为各种复杂任务的解决提供了有力保障。同时,ms-swift 广泛支持 300 多个大语言模型和 80 多个多模态大模型的微调到部署,为开发者提供了丰富的选择和广阔的创新空间。

在模型部署方面vLLM 部署和 ollama 部署犹如两颗璀璨的明星,为开发者照亮了前行的道路。它们以其便捷性和高效性,使得 Qwen2.5 能够在各种实际场景中得以顺利应用。无论是在企业的智能化生产中,还是在科研机构的创新研究里,亦或是在日常生活的智能服务中,Qwen2.5 都能借助这些优秀的部署方式发挥出巨大的价值。







欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5