通义千问2(Qwen2)大语言模型在PAI-QuickStart的微调、评测与部署实践
PAI-QuickStart 介绍
运行环境要求
本示例目前支持在阿里云北京、上海、深圳、杭州、乌兰察布等多地域,使用PAI-QuickStart产品运行。
资源配置要求:
Qwen2-0.5B/1.5B/7B量级模型:最低使用V100/P100/T4(16GB显存)及以上卡型运行训练任务;
Qwen1.5-72B量级模型:最低使用A100(80GB显存)及以上卡型运行训练任务。
通过PAI-QuickStart使用模型
开发者可以在 PAI 控制台的“快速开始”入口,找到Qwen2系列模型,以Qwen2-7B-Instruct为例,模型卡片如下图所示:
模型部署和调用
模型微调训练
[
{
"instruction": "你是一个心血管科医生,请根据患者的问题给出建议:我患高血压五六年啦,天天喝药吃烦啦,哪种东西能根治高血压,高血压克星是什么?",
"output": "高血压的患者可以吃许多新鲜的水果蔬菜或者是芹菜山药之类的食物,可以起些降血压的作用,另外高血压的患者平时也应当注意低盐,低脂,低胆固醇饮食,适当的实施体育运动和锻练高血压的患者还应当在医生的指导下口服降血压的药物,断然不可擅自停药,防止对血压引发影响。"
},
{
"instruction": "你是一个呼吸科医生,请根据患者的问题给出建议:风寒感冒咳白痰怎么治疗?",
"output": "风寒感冒,咳有白痰的患者,主要症咳嗽痰多色白量多,兼具胸脘作闷,鼻塞,流清涕,全身酸痛,易疲劳等症状。临床诊断上常用杏苏散和二陈丸实施治疗。在用药物治疗的同时,应忌食辛辣刺激性的食物和寒凉性食物,多吃易消化营养丰富的食物,宜清淡饮食,留意歇息。"
}
]
模型评测
自定义数据集评测
question
标识问题列,answer
标识答案列,例如:[{"question": "中国发明了造纸术,是否正确?", "answer": "正确"}]
[{"question": "中国发明了火药,是否正确?", "answer": "正确"}]
符合格式要求的评测集,可自行上传至OSS,并创建自定义数据集,详情参见上传OSS文件和创建及管理数据集。
*创建及管理数据集:https://help.aliyun.com/zh/pai/user-guide/create-and-manage-datasets
公开数据集评测
在公开数据集评测中,我们通过对开源的评测数据集按领域分类,对大模型进行综合能力评估,例如数学能力、知识能力、推理能力等,值越大,模型越好。目前PAI维护了MMLU、TriviaQA、HellaSwag、GSM8K、C-Eval、TruthfulQA,其他公开数据集陆续接入中。
*MMLU:https://modelscope.cn/datasets/modelscope/mmlu/summary
*TriviaQA:https://modelscope.cn/datasets/modelscope/trivia_qa/summary
*HellaSwag:https://modelscope.cn/datasets/modelscope/hellaswag/summary
*GSM8K:https://modelscope.cn/datasets/modelscope/gsm8k/summary
*C-Eval:https://modelscope.cn/datasets/modelscope/ceval-exam/summary
通过Python SDK使用
from pai.model import RegisteredModel
from openai import OpenAI
# 获取PAI提供的模型
model = RegisteredModel(
model_name="qwen2-7b-instruct",
model_provider="pai"
)
# 直接部署模型
predictor = model.deploy(
service="qwen2_7b_instruct_example"
)
# 构建openai client,使用的OPENAI_BASE_URL为: <ServiceEndpint> + "/v1/"
openai_client: OpenAI = predictor.openai()
# 通过openai SDK调用推理服务
resp = openai_client.chat.completions.create(
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is the meaning of life?"},
],
# 默认的model name为"default"
model="default"
)
print(resp.choices[0].message.content)
# 测试完成之后,删除推理服务
predictor.delete_service()
# 获取模型的微调训练算法
est = model.get_estimator()
# 获取PAI提供的公共读数据和预训练模型
training_inputs = model.get_estimator_inputs()
# 使用用户自定义数据
# training_inputs.update(
# {
# "train": "<训练数据集OSS或是本地路径>",
# "validation": "<验证数据集的OSS或是本地路径>"
# }
# )
# 使用默认数据提交训练任务
est.fit(
inputs=training_inputs
)
# 查看训练产出模型的OSS路径
print(est.model_data())
结 论
Qwen2(通义千问2)的推出标志着阿里云在开源大语言模型领域的最新进展。这个系列推出了不同规模的开源模型,可广泛用于多样化的下游应用场景。开发者可以借助PAI-QuickStart轻松地对Qwen2模型进行定制和部署。此外,PAI QuickStart还汇集了一系列先进的模型,覆盖多个专业领域,欢迎广大开发者们体验和应用这些丰富的资源。
相关资源链接:
Qwen2介绍:https://qwenlm.github.io/zh/blog/qwen2/
PAI 快速开始:https://help.aliyun.com/zh/pai/user-guide/quick-start-overview
PAI Python SDK Github:https://github.com/aliyun/pai-python-sdk
更多推荐
点击「阅读原文」立即体验PAI-QuickStart!