【大模型入门系列5】免费使用PAI-DSW部署Qwen大模型进行推理部署微调验证

本文涉及的产品
视觉智能开放平台,视频资源包5000点
NLP自然语言处理_高级版,每接口累计50万次
视觉智能开放平台,分割抠图1万点
简介: 本文介绍了如何在阿里云PAI平台上本地部署Qwen大模型进行推理验证。首先,通过PAI平台申请免费试用DSW,选择支持资源包抵扣的GPU类型。接着,使用modelscope下载Qwen1.5-7B-Chat模型并进行推理验证。最后,利用vllm构建与OpenAI API兼容的服务,并通过OpenAI客户端接口进行请求验证,同时提供了微调验证的方法。

一 背景

日常在我们开发学习过程中,如果我们需要对大模型进行本地部署验证的话,会需要一个GPU环境,目前用的比较多的是PAI平台。人工智能平台 PAI(Platform for AI,原机器学习平台PAI)是面向开发者和企业的机器学习/深度学习工程平台,提供包含数据标注、模型构建、模型训练、模型部署、推理优化在内的AI开发全链路服务。主要产品如下图所示。并且PAI目前提供了针对新用户的免费试用,可以申请免费使用。本次我们就以DSW为例,本地部署Qwen大模型进行推理验证。

image.png

二 环境设置

打开PAI的阿里云页面进行点击试用,可以看到DSW提供了3个月的免费试用。我们点击申请试用即可。

image.png

由于我们申请的免费试用产品,只支持按照资源包抵扣,所以我们其中在选择GPU规格的时候,记得选择支持资源包抵扣的GPU类型,如下图所示,我们只是本地学习,所以选择A10的即可,镜像选择默认的modelscope镜像即可。

image.png

创建完成后,整体页面如下图所示,现在就可以进行开发了。

可以从后台看到当前免费资源消耗的清理。


三 Qwen推理验证

1. 推理验证

测试代码如下,我们使用modelscope进行下载模型镜像,这里我们选择Qwen1.5-7B-Chat进行验证。

from modelscope import AutoModelForCausalLM, AutoTokenizer
device = "cuda" # the device to load the model onto
# Now you do not need to add "trust_remote_code=True"
model = AutoModelForCausalLM.from_pretrained(
    "Qwen/Qwen1.5-7B-Chat",
    torch_dtype="auto",
    device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen1.5-7B-Chat")
# Instead of using model.chat(), we directly use model.generate()
# But you need to use tokenizer.apply_chat_template() to format your inputs as shown below
prompt = "你好,你是谁?"
messages = [
    {"role": "system", "content": "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(device)
# Directly use generate() and tokenizer.decode() to get the output.
# Use `max_new_tokens` to control the maximum output length.
generated_ids = model.generate(
    model_inputs.input_ids,
    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]
print(response)

运行结果如下图所示

image.png

2. 部署验收

这里使用vllm进行部署验证,借助vLLM,构建一个与OpenAI API兼容的API服务十分简便,该服务可以作为实现OpenAI API协议的服务器进行部署。默认情况下,它将在 http://localhost:8000 启动服务器。可以通过 --host 和 --port 参数来自定义地址。

首先安vllm命令如下:

pip install vllm

然后运行命令如下启动服务

python -m vllm.entrypoints.openai.api_server     --model Qwen/Qwen1.5-7B-Chat

运行后如果遇到报错如下,可以先暂时设置 --max-model-len 7600解决

image.png

设置后的命令如下:

python -m vllm.entrypoints.openai.api_server     --model Qwen/Qwen1.5-7B-Chat --max-model-len 7600

运行成功后,可以通过暴露的端口号进行请求,请求命令如下

curl http://localhost:8000/v1/chat/completions -H "Content-Type: application/json" -d '{
    "model": "Qwen/Qwen1.5-7B-Chat",
    "messages": [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "你是谁"}
    ]
    }'

运行效果如下:

image.png


这样我们就可以按照OpenAI的客户端接口进行请求验证,

首先安装OpenAI

pip install OpenAI

验证代码如下:

from openai import OpenAI
# Set OpenAI's API key and API base to use vLLM's API server.
openai_api_key = "EMPTY"
openai_api_base = "http://localhost:8000/v1"
client = OpenAI(
    api_key=openai_api_key,
    base_url=openai_api_base,
)
chat_response = client.chat.completions.create(
    model="Qwen/Qwen1.5-7B-Chat",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "你是谁"},
    ]
)
print("Chat response:", chat_response)

image.png

3. 微调验证

微调验证我们使用LLaMA-Factory进行微调,使用如下:

git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -r requirements.txt
#在阿里云上需要执行以下命令
export GRADIO_ROOT_PATH=/${JUPYTER_NAME}/proxy/7860/
#其他环境不需要执行以上命令
python src/train_web.py


点击链接打开训练截图如下:

image.png

页面上提供了训练的各个参数,可以按照页面选项进行微调验证。


目录
相关文章
|
7月前
|
人工智能 算法 开发工具
Mixtral 8X7B MoE模型在阿里云PAI平台的微调部署实践
Mixtral 8x7B 是Mixtral AI最新发布的大语言模型,是当前最为先进的开源大语言模型之一。阿里云人工智能平台PAI,提供了对于 Mixtral 8x7B 模型的全面支持,开发者和企业用户可以基于 PAI-快速开始轻松完成Mixtral 8x7B 模型的微调和部署。
|
PyTorch 测试技术 API
Pytorch模型训练与在线部署
本文以CIFAR10数据集为例,通过自定义神经元网络,完成模型的训练,并通过Flask完成模型的在线部署与调用,考略到实际生产模型高并发调用的述求,使用service_streamer提升模型在线并发能力。
692 1
|
2天前
|
并行计算 PyTorch 算法框架/工具
【大模型入门系列2】本地win11部署通义千问大模型做RAG验证
本文介绍了如何在本地环境中部署并使用大模型,特别是阿里巴巴云的Qwen1.5-0.5B-Chat模型。首先分析了本地化部署的重要性,包括数据安全、网络稳定性、定制化需求等方面。接着详细描述了环境准备过程,包括更新显卡驱动、安装CUDA、配置Python环境等。随后,文章展示了如何使用ModelScope Library加载模型,并通过Python脚本实现基本的对话功能。最后,探讨了私有化部署大模型的优势,如数据安全、定制化、效率提升等,为未来的探索指明方向。
29 3
|
3月前
|
文字识别 自然语言处理 数据可视化
Qwen2.5 全链路模型体验、下载、推理、微调、部署实战!
在 Qwen2 发布后的过去三个月里,许多开发者基于 Qwen2 语言模型构建了新的模型,并提供了宝贵的反馈。在这段时间里,通义千问团队专注于创建更智能、更博学的语言模型。今天,Qwen 家族的最新成员:Qwen2.5系列正式开源
Qwen2.5 全链路模型体验、下载、推理、微调、部署实战!
|
2月前
|
Shell Docker Python
LLM-02 大模型 本地部署运行 ChatGLM3-6B(13GB) 双卡2070Super8GB 环境配置 单机多卡 基于LLM-01章节 继续乘风破浪 为大模型微调做准备
LLM-02 大模型 本地部署运行 ChatGLM3-6B(13GB) 双卡2070Super8GB 环境配置 单机多卡 基于LLM-01章节 继续乘风破浪 为大模型微调做准备
50 1
|
4月前
|
编解码 JSON 自然语言处理
Qwen2-VL 全链路模型体验、下载、推理、微调实战!
经过了一年的不懈努力,今天通义千问团队对 Qwen-VL 模型进行重大更新——推出 Qwen2-VL。那么Qwen2-VL 有什么新功能呢?一起来看一下吧
Qwen2-VL 全链路模型体验、下载、推理、微调实战!
|
2月前
|
物联网 数据处理
LLM-05 大模型 15分钟 FineTuning 微调 ChatGLM3-6B(微调实战1) 官方案例 3090 24GB实战 需22GB显存 LoRA微调 P-TuningV2微调
LLM-05 大模型 15分钟 FineTuning 微调 ChatGLM3-6B(微调实战1) 官方案例 3090 24GB实战 需22GB显存 LoRA微调 P-TuningV2微调
78 0
|
6月前
|
自然语言处理 监控 并行计算
Qwen2大模型微调入门实战(完整代码)
该教程介绍了如何使用Qwen2,一个由阿里云通义实验室研发的开源大语言模型,进行指令微调以实现文本分类。微调是通过在(指令,输出)数据集上训练来改善LLMs理解人类指令的能力。教程中,使用Qwen2-1.5B-Instruct模型在zh_cls_fudan_news数据集上进行微调,并借助SwanLab进行监控和可视化。环境要求Python 3.8+和英伟达显卡。步骤包括安装所需库、准备数据、加载模型、配置训练可视化工具及运行完整代码。训练完成后,展示了一些示例以验证模型性能。相关资源链接也一并提供。
Qwen2大模型微调入门实战(完整代码)
|
6月前
|
机器学习/深度学习 算法 开发工具
通义千问2(Qwen2)大语言模型在PAI-QuickStart的微调、评测与部署实践
阿里云的人工智能平台PAI,作为一站式的机器学习和深度学习平台,对Qwen2模型系列提供了全面的技术支持。无论是开发者还是企业客户,都可以通过PAI-QuickStart轻松实现Qwen2系列模型的微调、评测和快速部署。
|
7月前
|
自然语言处理 前端开发 Swift
Llama3 中文通用Agent微调模型来啦!(附手把手微调实战教程)
Llama3模型在4月18日公布后,国内开发者对Llama3模型进行了很多训练和适配,除了中文纯文本模型外,多模态版本也陆续在发布中。