探索阿里通义千问 Qwen2.5:新一代开源大模型的卓越力量

发布于 2024-10-9 13:08
浏览
0收藏

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

一、总体概述

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

探索阿里通义千问 Qwen2.5:新一代开源大模型的卓越力量-AI.x社区


二、性能提升

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 种以上语言,具有强大的多语言能力。

探索阿里通义千问 Qwen2.5:新一代开源大模型的卓越力量-AI.x社区

三、专项突破

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', revisinotallow='master')

下载完成如下:

探索阿里通义千问 Qwen2.5:新一代开源大模型的卓越力量-AI.x社区

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)

加载如下:

探索阿里通义千问 Qwen2.5:新一代开源大模型的卓越力量-AI.x社区

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

输出:

探索阿里通义千问 Qwen2.5:新一代开源大模型的卓越力量-AI.x社区

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

‍输出:

探索阿里通义千问 Qwen2.5:新一代开源大模型的卓越力量-AI.x社区

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.'

结语

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

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

本文转载自​小兵的AI视界​,作者: 小兵 ​​


收藏
回复
举报
回复
相关推荐