【Qwen2.5部署实战】深入解析Qwen2.5:新一代开源语言模型的突破与应用_qwen2.5本地部署

目录
  • 引言
  • 一、总体概述
  • 二、性能提升
  • 三、专项突破
  • 四、应用场景
  • 五、本地部署
    • 1、模型下载
    • 2、加载模型
    • 3、定义提示消息
    • 4、分词处理
    • 5、生成文本
    • 6、解码返回生成结果
  • 结语

引言

在人工智能领域的快速发展进程中,阿里通义千问的 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 可以分析文学作品、生成写作建议;在数学学习中,帮助学生解决难题、讲解解题思路。
企业办公:在企业中,Qwen2.5 可用于智能客服,快速准确地回答客户的问题,提高客户满意度。同时,还能助力自动化办公,如撰写报告、整理数据等,极大地提高工作效率。
科研领域:为研究人员提供强大的数据处理和分析支持。在文献综述中,快速梳理相关领域的研究现状;在实验设计阶段,提供创新的思路和方法。
编程开发:Qwen2.5-coder 为开发者提供高效的编程辅助,生成高质量的代码、进行代码优化和调试,加快软件开发的进程。

五、本地部署

在魔搭社区,开发者可以通过多种方式体验和使用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为模型本地存放地址

#模型下载
from modelscope import snapshot_download
model_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、生成文本

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


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

输出:
在这里插入图片描述

6、解码返回生成结果


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

输出:

'Certainly! Artificial Intelligence (AI) refers to the simulation of human intelligence in machines that are programmed to think, learn, and perform tasks that typically require human cognition. This includes activities such as visual perception, speech recognition, decision-making, and language translation.\n\nKey components of AI include:\n\n1. **Machine Learning**: A subset of AI where systems can automatically learn and improve from experience without being explicitly programmed.\n2. **Deep Learning**: A more advanced form of machine learning that uses neural networks with many layers to model and solve complex problems.\n3. **Natural Language Processing (NLP)**: The ability of computers to understand, interpret, and generate human language.\n4. **Computer Vision**: Enabling machines to interpret and understand the visual world, similar to how humans would.\n5. **Robotics**: Combining AI with robotics to create machines that can perform tasks autonomously or semi-autonomously.\n\nAI has numerous applications across various fields, including healthcare, finance, transportation, entertainment, and more. It continues to evolve rapidly, transforming industries and societies in profound ways.'

完整代码如下

from modelscope import AutoModelForCausalLM, AutoTokenizer

# 指定要加载的模型名称
model_name = "qwen/Qwen2.5 - 7B - Instruct"

# 加载因果语言模型
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype="auto",  # 自动确定 PyTorch 的数据类型
    device_map="auto"  # 自动确定设备映射
)

# 加载分词器
tokenizer = AutoTokenizer.from_pretrained(model_name)

# 设置提示文本
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
)

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

# 生成文本,设置最大新生成的标记数为 512
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]

结语

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

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

总之,Qwen2.5 系列模型的开源犹如一场及时雨,为开发者和研究者带来了强大的工具和丰富的资源。它如同一股汹涌的浪潮,推动着人工智能在各个领域的发展和创新。我们有理由相信,在未来的日子里,Qwen2.5 将继续凭借其卓越的性能和优势,为我们的生活和工作带来更多的便利和进步。它将如同一位智慧的伙伴,与我们携手共进,开创更加美好的未来。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。点击下方蓝色字 即可免费领取↓↓↓

**读者福利 |** 👉2024最新《AGI大模型学习资源包》免费分享 **(安全链接,放心点击)**

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费或点击下方蓝色字 即可免费领取↓↓↓

**读者福利 |** 👉2024最新版CSDN大礼包:《AGI大模型学习资源包》免费分享 **(安全链接,放心点击)**)** **(安全链接,放心点击)**

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值