Qwen-coder方向-如果从0开始应用通义千问开源大模型

简介: 从0开始接触,带您全面了解Qwen2.5语言模型家族,包括其核心功能、微调方法以及具体应用场景。我们将通过一系列精心准备的应用demo和使用指南,帮助您掌握如何充分利用Qwen2.5的强大能力

其实大部分人和我对大模型这个概念是比较模糊的,他具体能做什么,又能给我们带来什么,我将从几个学习方面从0开始带领想要入手大模型的同学们一个完美的学习过程

通义千问大模型是什么?

我们可以通过modelscope 研习社https://www.modelscope.cn/learn进行系统学习,首先我关注的是15分钟部署OpenAI API服务:ollama+Qwen2.5-7B-Instruct-GGUFhttps://www.modelscope.cn/learn/674

通过学习,如何快速部署通义千问2.5,以下是实操步骤,可以简单看一下,比较简洁

Task 1:授权阿里云账号并开通计算存储资源

首先,访问魔搭ModelScope官网(https://www.modelscope.cn)的模型部署界面,注册或登录账户。首次使用需授权绑定阿里云账号、阿里云函数计算fc服务、阿里云文件存储nas服务。魔搭ModelScope承诺严格保护用户隐私,不会用数据做二次训练。按照提示依次授权开通后,即可新建模型部署项目。

1733712214991.jpg

1733712239234.jpg

Task 2:部署大模型API

点击“新建部署”,选择“openAI API兼容部署”选项,并选定qwen/Qwen2.5-7B-Instruct-GGUF模型,然后点击“一键部署”。系统随即跳转到了阿里云fc创建应用页面,页面上的各项配置已经预填好,只需点击页面最下端的“创建应用”按钮。此时可以看到该模型API正在部署中。这个过程中,系统自动进行了硬件和系统资源的准备及挂载,同时完成了模型下载、转换、缓存等操作。根据模型大小,整个部署过程大约需要5分钟。

1733712266849.jpg

1733712313982.jpg

Task 3:完成实验:调用API

部署成功后,“操作”栏新增了4个按钮,其中包括“立即使用”。点击“立即使用”,它提供了直接可用的代码示例,说明该部署已完全兼容OpenAI API,并可通过OpenAI SDK调用。提供的URL是访问新部署模型API的关键。

1733712406089.jpg

Task 4:完成实验:获取API返回结果

为了测试新部署的API,编写了一段Python代码,利用OpenAI SDK来调用刚刚部署的API。代码片段如下:

Python

import openai
# 设置API密钥和URL
openai.api_key = 'your_api_key'
openai.api_base = 'your_deployed_model_url'
# 定义查询参数
prompt = "你好,世界!"
model = "Qwen2.5-7B-Instruct-GGUF"
# 发送请求并接收响应
response = openai.Completion.create(
    engine=model,
    prompt=prompt,
    max_tokens=50
)
print(response.choices[0].text.strip())

执行上述代码后,得到了来自API的预期响应,证明了部署的成功以及模型服务的正常工作。

Task 5:总结体验

本次实验展示了从checkpoint到模型服务的全过程,并通过熟悉的OpenAI API提供服务,使得模型能力更好地集成到各类应用中。特别是,通过魔搭ModelScope平台,可以轻松实现模型的服务化,降低了复杂模型应用开发的门槛。此外,使用阿里云函数计算fc服务按调用量付费的方式,以及NAS用于缓存模型资源的做法,有效地减少了服务唤醒的时间,提高了模型服务的响应速度和用户体验。

部署完实验我们发现现在应用大模型可以直接通过接口调用实现一个模拟人的交互,他可以告诉一些你不知道的事情或者处理复杂重复的工作,同时也可以结合视觉模型VLM和多模态RAG结合,创建图片搜索推荐,功能还是很全面的

通义千问大模型2.5是什么?

目前有三个开源模型,包括通用语言模型Qwen2.5,专门针对编程(Qwen2.5-Coder)和数学(Qwen2.5-Math)的专业模型。这些模型提供了多种不同规模的选择,从轻量级的小型模型到拥有720亿参数的超大型模型,满足了不同场景的需求,开源了性能不输于GPT-4o的 Qwen2-VL-72B。对标国外人工智能。

  • Qwen2.5: 0.5B, 1.5B, 3B, 7B, 14B, 32B, 以及72B;
  • Qwen2.5-Coder: 1.5B, 7B, 以及即将推出的32B;
  • Qwen2.5-Math: 1.5B, 7B, 以及72B

1733725015079.jpg

Qwen2.5 是一个显著升级的语言模型,它基于包含18万亿个标记的超大数据集进行训练,因此在知识广度(MMLU达85+)、编程能力(HumanEval 85+)和数学能力(MATH 80+)上都超越了前一代。新模型特别强化了指令遵循能力,可以更精准地执行复杂命令、生成超过8K标记的长文本,并擅长处理结构化数据如表格及生成JSON格式的内容。支持高达128K tokens的长文本处理和最多8K tokens的内容生成,让Qwen2.5非常适合长篇内容的应用。

1733725076542.jpg

通义千问大模型2.5coder是什么?

我们今天主要想了解的不是他的语言功能和数学功能,而是他的编码能力,这是对于程序猿很重要的一环,如果智能辅助编码可以实现,对大家编码来说是一个非常大的阶梯性跨越,接下来我们了解一下Qwen2.5-Coder的概念https://www.modelscope.cn/learn/765 简单来讲就是代码人,引导式编程,代替人来写一些标准化的代码,自动生成简单的代码协助编程,简单的了解一下相关的介绍并且总结一下

强大的代码能力,追平 GPT-4o

通义千问团队开源了Qwen2.5-Coder全系列模型,其中最引人注目的当属Qwen2.5-Coder-32B-Instruct。这个旗舰模型在多个流行的代码生成基准测试(EvalPlus, LiveCodeBench, BigCodeBench)中都达到了SOTA的表现,甚至在某些方面可以与GPT-4o相媲美。这意味着开发者可以利用它来生成高质量的代码,修复编程中的错误,并进行复杂的代码推理。特别是在Aider代码修复基准上,Qwen2.5-Coder-32B-Instruct取得了73.7分的成绩,几乎和GPT-4o一样出色。

1733725176302.jpg

多样化的模型尺寸,满足不同需求

这次开源不仅带来了强大的32B模型,还提供了其他五个不同尺寸的模型——0.5B、1.5B、3B、7B、14B。这种多样化的选择让不同的开发者可以根据自己的硬件资源和具体需求选择最适合的模型。比如,如果你是在资源有限的环境中工作,可以选择较小的模型;而如果你追求极致性能,则可以选择更大的模型。此外,每个尺寸都有Base和Instruct两个版本,Base版本适合进一步微调,Instruct版本则可以直接用于对话式编程助手。

1733725186200.jpg

实用性探索,贴近真实场景

除了技术指标上的优势,Qwen2.5-Coder还在实用性上下了功夫。它被设计成一个智能的代码助手,能够在实际编程过程中提供帮助。无论是自动生成代码片段还是辅助修复代码错误,Qwen2.5-Coder都能显著提高开发效率。特别是其对多编程语言的支持,覆盖了超过40种语言,在McEval和MdEval等多语言代码修复基准上表现出色,分别获得了65.9和75.2的高分。这使得即使是不太熟悉的编程语言也能轻松应对,大大降低了学习成本。

1733725215287.jpg

人类偏好对齐,更符合开发者的期望

为了确保模型的行为更加符合人类的编程习惯,团队构建了一个内部标注的代码偏好评估基准Code Arena。通过对比实验发现,Qwen2.5-Coder-32B-Instruct在偏好对齐方面表现优异,这意味着它生成的代码不仅质量高,而且更贴合开发者的实际需求和风格。

1733725227260.jpg

开源许可,促进社区发展

最后,值得一提的是Qwen2.5-Coder的开源许可政策。除了3B模型采用Research Only许可外,其余尺寸均采用Apache 2.0许可,鼓励更多的开发者参与到模型的研究和应用中来。这种开放的态度无疑将为整个AI编程领域注入新的活力,推动更多创新成果的出现。

1733725260557.jpg

1733725260570.jpg

模型下载链接

https://modelscope.cn/organization/qwen

可以使用ModelScope CLI(首推),Python SDK或者git clone的方式下载。

Qwen2.5系列模型体验:

也可以通过transformers推理

from modelscope import AutoModelForCausalLM, AutoTokenizer

model_name = "qwen/Qwen2.5-7B-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]

利用MS-Swift对Qwen2.5和Qwen2-VL模型进行自我认知微调及图像OCR微调,并随后对微调后的模型执行推理,您可以借助魔搭社区官方提供的LLM工具箱——MS-Swift。这个工具箱支持超过300种大语言模型以及80多种多模态大模型的调整与部署,为开发者提供了从微调到部署的一站式解决方案。MS-Swift的开源项目托管在GitHub上,地址是:https://github.com/modelscope/ms-swift

# 安装ms-swift
git clone https://github.com/modelscope/ms-swift.git
cd ms-swift
pip install -e .[llm]

# qwen2-vl
# https://github.com/QwenLM/Qwen2-VL/issues/96
pip install git+https://github.com/huggingface/transformers@21fac7abba2a37fae86106f87fcf9974fd1e3830
# vllm加速
pip install vllm>=0.6.1

微调脚本:

# 实验环境:4 * A100
# 显存占用:4 * 70GB
NPROC_PER_NODE=4 CUDA_VISIBLE_DEVICES=0,1,2,3 swift sft \
    --model_type qwen2_5-72b-instruct \
    --model_id_or_path qwen/Qwen2.5-72B-Instruct \
    --dataset qwen2-pro-en#500 qwen2-pro-zh#500 self-cognition#500 \
    --logging_steps 5 \
    --learning_rate 1e-4 \
    --output_dir output \
    --lora_target_modules ALL \
    --model_name 小黄 'Xiao Huang' \
    --model_author 魔搭 ModelScope \
    --deepspeed default-zero3

# 单卡A10/3090可运行的例子 (Qwen2.5-7B-Instruct)
# 显存占用:24GB
CUDA_VISIBLE_DEVICES=0 swift sft \
    --model_type qwen2_5-7b-instruct \
    --model_id_or_path qwen/Qwen2.5-7B-Instruct \
    --dataset qwen2-pro-en#500 qwen2-pro-zh#500 self-cognition#500 \
    --logging_steps 5 \
    --max_length 2048 \
    --learning_rate 1e-4 \
    --output_dir output \
    --lora_target_modules ALL \
    --model_name 小黄 'Xiao Huang' \
    --model_author 魔搭 ModelScope

通过以上步骤实现对Qwen2.5的全方位了解学习,最后我再整理一下各个模型的应用demo的入口和合集使用视频

https://modelscope.cn/studios/qwen/Qwen2.5-Math-demo

https://modelscope.cn/studios/qwen/Qwen2.5

https://modelscope.cn/studios/Qwen/Qwen2.5-Coder-Artifacts



目录
相关文章
|
2月前
|
人工智能 JSON 自然语言处理
基于阿里云通义千问的AI模型应用开发指南
阿里云通义千问是阿里巴巴集团推出的多模态大语言模型平台,提供了丰富的API和接口,支持多种AI应用场景,如文本生成、图像生成和对话交互等。本文将详细介绍阿里云通义千问的产品功能,并展示如何使用其API来构建一个简单的AI应用,包括程序代码和具体操作流程,以帮助开发者快速上手。
640 3
|
7月前
|
机器学习/深度学习 人工智能 算法
通义千问Qwen-72B-Chat大模型在PAI平台的微调实践
本文将以Qwen-72B-Chat为例,介绍如何在PAI平台的快速开始PAI-QuickStart和交互式建模工具PAI-DSW中高效微调千问大模型。
|
人工智能 PyTorch 算法框架/工具
|
缓存 达摩院 Kubernetes
数据缓存系列分享(六):通义千问Qwen-14B大模型快速体验
阿里达摩院近期对通义千问大模型 Qwen-14B 进行了开源(之前开源的是Qwen-7B模型),目前在ModelScope和HuggingFace上均可直接下载。关于Qwen-7B的搭建可以参考我们之前的文章:数据缓存系列分享(五):开源大语言模型通义千问快速体验版,本文将使用一样的方式打开Qwen-14B,快速体验一下。
1559 0
数据缓存系列分享(六):通义千问Qwen-14B大模型快速体验
|
3月前
|
编解码 JSON 自然语言处理
通义千问重磅开源Qwen2.5,性能超越Llama
击败Meta,阿里Qwen2.5再登全球开源大模型王座
3118 19
|
3月前
|
API 云栖大会
通义千问升级旗舰模型Qwen-Max,性能接近GPT-4o
通义旗舰模型Qwen-Max全方位升级,性能接近GPT-4o
1165 11
|
6天前
|
存储 人工智能 自然语言处理
通义千问 Qwen 系列的 Agent 方向探索
通义千问Qwen系列在AI领域展现了强大的Agent方向探索能力,包括灵活的Tool调用、单/多Agent场景实践等,通过丰富的代码示例展示了其在文本生成、信息检索、任务自动化及专业领域应用等方面的优势,为复杂应用场景提供了多元且实用的解决方案。
|
6天前
|
机器学习/深度学习 数据采集 存储
通义千问 Qwen 在智能文本分析中的应用实践
本文探讨了通义千问Qwen在智能文本分析的应用,涵盖文本分类、情感分析及关键信息提取,通过具体案例和代码实现,展示了Qwen的强大语言理解能力,为开发者和研究人员提供了实用参考。
|
26天前
|
数据采集 小程序 API
通义千问Qwen2.5-Coder 全系列来咯!强大、多样、实用!
千问团队开源了强大的 Qwen2.5-Coder 系列模型,涵盖 0.5B 到 32B 六种尺寸,旨在推动开放代码模型的发展。该系列模型在代码生成、修复和推理等方面表现出色,支持多种编程语言,并在多个基准测试中达到 SOTA 水平。此外,Qwen2.5-Coder 还提供了丰富的应用场景,如代码助手、Artifacts 和 Interpreter,满足不同开发者的需求。
477 14
|
5月前
|
人工智能 JSON 自然语言处理
国内大模型LLM选择以及主流大模型快速使用教程[GLM4/Qwen/Baichuan/Coze/Kimi]
【7月更文挑战第7天】国内大模型LLM选择以及主流大模型快速使用教程[GLM4/Qwen/Baichuan/Coze/Kimi]
253 10
国内大模型LLM选择以及主流大模型快速使用教程[GLM4/Qwen/Baichuan/Coze/Kimi]