在ModelArts Studio(MaaS)基于Qwen2-7B模型实现新闻自动分类
应用场景
在数字化时代,新闻的生成与传播速度不断刷新记录。在ModelArts Studio大模型即服务平台(下面简称为MaaS),使用Qwen2-7B模型可以实现新闻自动分类,能够高效处理和分类大量新闻内容。
该解决方案可以应用于如下场景:
- 新闻门户网站: 自动将新闻内容归类到相应板块,如科技、体育或国际新闻,以提升用户体验和内容检索效率。
- 社交媒体平台: 对用户分享的新闻链接进行智能分类,帮助用户迅速定位到感兴趣的话题。
- 内容推荐系统: 根据用户的阅读偏好和历史行为,智能推荐相关新闻,增强用户粘性和满意度。
- 新闻分析工具: 为分析师提供自动分类的新闻数据,便于进行市场趋势和热点分析。
方案流程

- 准备数据集:获取新闻数据集,并上传到OBS。
- 创建模型:选择Qwen2-7B基础模型,使用自定义权重创建个人专属模型。
- 调优模型:使用不同的调优参数去训练模型。
- 部署模型服务:将调优后的模型部署成模型服务。
- 使用模型服务:在MaaS体验模型服务,测试推理结果。
- 结果分析:分析模型的调优结果和推理结果,对比新闻分类效果。
方案优势
- 高准确性:利用模型强大的语义理解能力,系统能够准确识别新闻内容的主题和关键词,实现高准确率的自动分类。
- 快速响应:系统能够实时处理新闻内容,快速完成分类,满足新闻时效性的要求。
- 可扩展性:随着模型的不断训练和优化,系统能够适应不断变化的新闻内容和分类需求。
- 降低人力成本:减少人工分类的工作量,降低人力成本,提高工作效率。
操作步骤
- 准备数据集。获取新闻数据集,并上传到OBS。
- 下载新闻数据集。
本文原始数据集来源:https://github.com/aceimnorstuvwxz/toutiao-text-classfication-dataset
本文实验用数据集基于原始数据集处理而来,进行了简单的采样、清晰和prompt工程。
实验数据集获取地址:https://maas-operations.obs.myhuaweicloud.com/Sample-Dataset/maas_demo_news.jsonl
该实验数据集的总数据量5281条,随机分为训练集5120条和测试集161条。
实验数据集文件“maas_demo_news.jsonl”的内容格式如下。{"conversation_id": 1, "chat": {"turn_1": {"Human":"text","MOSS":"text"},"turn_2": {"Human":"text","MOSS":"text"}}}
“conversation_id”是样本编号,“chat”后面是多轮对话的内容,“turn_n”表示是第n次对话,每次对话都有输入(对应Human角色)和输出(对应MOSS角色)。其中Human和MOSS仅用于角色区分,模型训练的内容只有text指代的文本。
- 将jsonl格式的数据集文件上传到“华东二”区域的OBS桶中,创建OBS桶和上传文件的操作指导请参见OBS控制台快速入门。本文以“/maas-test/news/maas_demo_news.jsonl”OBS路径为例。
- 下载新闻数据集。
- 创建Qwen2-7B模型。
- 登录ModelArts Studio(MaaS)控制台,在顶部导航栏选择目标区域。
- 在左侧导航栏,选择“我的模型”进入模型列表。
- 在“我的模型”页面,单击“创建模型”弹出创建模型页面。
- 在“创建模型”页面,配置相关参数。
表1 创建模型参数说明 参数
说明
取值样例
来源模型
单击“选择基础模型”,在弹窗中选择模型,单击“确定”。
Qwen2-7B
模型名称
自定义模型名称。
Qwen2-7B_template
描述
自定义模型简介。
-
权重设置与词表
默认选择“自定义权重”。
自定义权重
自定义权重存储路径
- 将权重文件存储到OBS桶中,且权重文件必须满足对应模型的文件格式要求。
权重文件指的是模型的参数集合。OBS桶必须和MaaS服务在同一个Region下。
- 关于如何获取权重文件,请参见Hugging Face官网。
说明:
如果Hugging Face网站打不开,请在互联网上搜索解决方案。
- 关于权重文件的格式要求,请参见约束限制。
- 关于如何将权重文件存储到OBS桶,请参见上传概述。
- 关于如何获取权重文件,请参见Hugging Face官网。
- 单击“自定义权重存储路径”右侧的文件图标,选择存放模型权重文件的OBS路径(必须选择到模型文件夹),然后单击“确定”。
单次上传本地文件到OBS的总大小不能超过5GB,详情请参见如何上传超过5GB的大对象。
/3003****/79abed0d-2622-4cd0-80fc-2065ebe****/
- 将权重文件存储到OBS桶中,且权重文件必须满足对应模型的文件格式要求。
- 参数配置完成后,单击“创建”,创建个人专属模型。
- 在模型列表,单击模型名称可以进入详情页查看模型详细信息和任务。
- 调优模型,使用6种不同的调优参数去训练模型。
- 模型创建成功后,在“我的模型”列表,单击操作列的“调优”。
- 在“创建模型调优任务”页面,配置参数。
由于需要分析模型调优效果,需要创建多个调优任务,不同调优任务的参数值配置请参见表2和表3。
表2 创建调优任务 参数
说明
取值样例
任务设置
任务名称
自定义调优任务名称。
参见表3
描述
自定义调优任务简介。
-
模型设置
来源模型
当从“我的模型”列表进入创建调优作业页面时,此处默认呈现选择的模型。
Qwen2-7B_template
调优类型
选择全参微调或LoRA微调。Qwen2-7B不支持增量预训练。
- 全参微调:直接在模型上训练,影响模型全量参数的微调训练,效果较好,收敛速度较慢,训练时间较长。
- LoRA微调:冻结原模型,通过往模型中加入额外的网络层,并只训练这些新增的网络层参数,效果接近或略差于全参训练,收敛速度快,训练时间短。
参见表3
调优后模型名称
设置调优后产生的新模型的名称。
参见表3
调优后模型权重存放路径
选择调优后模型权重文件的OBS存放路径。训练后将在指定路径下自动创建以作业ID命名的新文件夹进行权重存储。
/maas-test/news/out
数据设置
选择数据集格式
支持选择MOSS、Alpaca和ShareGPT。训练数据需要按照对应格式,上传符合规范的数据集,以更好完成训练任务。关于数据集示例,请参见支持的数据集格式。
说明:如果数据集选择错误,您可以通过以下方式查看日志详情。- 登录ModelArts Studio(MaaS)控制台,在“模型调优”页面单击目标作业,在作业详情的日志页签查看详情。
- 登录ModelArts Studio(MaaS)控制台,在 页面单击目标作业,在日志页签查看详情。
MOSS
添加数据集
选择存放训练数据集的OBS路径,必须选择到1上传的jsonl文件。
/maas-test/news/maas_demo_news.jsonl
超参设置
数据条数
输入数据集中的总数据条数。
1000
迭代轮次/Epoch
训练过程中模型遍历整个数据集的次数。不同量级数据集的建议值:百量集4~8;千量集2~4;更大数量级1~2。
4
迭代步数/Iterations
计算得出的模型参数/权重更新的次数。在调优过程中,每一个Iterations会消耗32条训练数据。
参见表3
学习率/learning_rate
每个迭代步数(Iteration)模型参数/权重更新的速率,输入0~0.1之间的浮点数。
参见表3
Checkpoint保存个数
训练过程中保存Checkpoint的个数。最小值为1,最大值为“迭代步数/Iterations”的参数值,不超过10。Checkpoint会自动存储到“调优后模型权重保存路径”的OBS路径下。
1
资源设置
资源池类型
资源池分为公共资源池与专属资源池。
- 公共资源池供所有租户共享使用。
- 专属资源池需单独创建,不与其他租户共享。
公共资源池
规格
选择规格,规格中描述了服务器类型、型号等信息,仅显示模型支持的资源。
Ascend: 4*ascend-snt9b2(32GB) | ARM: 96 核 768GB
计算节点个数
当计算节点个数大于1,将启动多节点分布式训练。详细信息,请参见分布式训练功能介绍。
1
更多选项
永久保存日志
选择是否打开“永久保存日志”开关。
关闭
事件通知
选择是否打开“事件通知”开关。
关闭
自动停止
当使用付费资源时,可以选择是否打开“自动停止”开关。
关闭
自动重启
选择是否打开“自动重启”开关。
关闭
表3 多个调优任务的参数配置 序号
任务名称
选择调优类型
调优后的模型名称
迭代步数/Iterations
学习率/learning_rate
1
job-lora-01
LoRA微调
Qwen2-7B_01-lora
160
3.00E-05
2
job-lora-02
LoRA微调
Qwen2-7B_02-lora
480
3.00E-05
3
job-lora-03
LoRA微调
Qwen2-7B_03-lora
800
3.00E-04
4
job-sft-01
全参微调
Qwen2-7B_01-sft
160
3.00E-05
5
job-sft-02
全参微调
Qwen2-7B_02-sft
800
3.00E-05
6
job-sft-03
全参微调
Qwen2-7B_03-sft
160
3.00E-06
- 参数配置完成后,单击“提交”。
“资源池类型”选择“公共资源池”时,会出现“计费提醒”对话框,请您仔细阅读预计调优运行时间和预计消耗费用信息,然后单击“确定”,创建调优作业。该预估费用不包含OBS存储费用。预估费用基于目录价和预估时长计算,估算存在波动性,最终以实际发生为准。
在“模型调优”列表中,当模型调优作业的“状态”变成“已完成”时,表示模型调优完成。
- 部署模型服务。将原始模型“Qwen2-7B_template”和调优后获得的6种模型都部署成模型服务。
- 在ModelArts Studio左侧导航栏中,选择“在线推理”。
- 在“在线推理”页面,单击“我的服务”页签,在右上角单击“部署模型服务”进入部署页面,完成创建配置。
表4 部署模型服务 参数
说明
取值样例
服务设置
服务名称
自定义模型服务的名称。
参见表5
描述
自定义部署模型服务的简介。
-
模型设置
部署模型
单击“选择模型”,从“我的模型”列表中选择需要部署的模型。
参见表5
资源设置
资源池类型
资源池分为公共资源池与专属资源池。
- 公共资源池供所有租户共享使用。
- 专属资源池需单独创建,不与其他租户共享。
公共资源池
实例规格
选择实例规格,规格中描述了服务器类型、型号等信息。
说明:公共资源池暂未完全公开,如需申请使用,请联系与您对接的销售人员或拨打4000-955-988获得支持,您也可以在线提交售前咨询。
Ascend: 1*ascend-snt9b2 | ARM: 24 vCPUs 96000MB
流量限制(QPS)
设置待部署模型的流量限制QPS。
3
实例数
设置服务器个数。
推荐实例数 = 流量限制 ÷ 推荐的单实例流量限制
1
更多选项
内容审核
选择是否打开内容审核,默认启用。启用此能力可阻止在线推理中有害内容的输入输出,但可能会对接口性能产生较大影响。
打开
事件通知
选择是否打开“事件通知”开关。
关闭
自动停止
当使用付费资源时,可以选择是否打开“自动停止”开关。
关闭
- 参数配置完成后,单击“提交”。
“资源池类型”选择“公共资源池”时,会出现“计费提醒”对话框,请您仔细阅读预估费用信息,然后单击“确定”,创建部署任务。模型部署会基于资源占用时长进行计费。服务状态为运行中时会产生费用,最终实际费用以账单为准。
在“我的服务”列表中,当模型部署服务的“状态”变成“运行中”时,表示模型部署完成。
- 使用模型服务:在MaaS体验部署完成的7个模型服务,测试推理结果。
- 在ModelArts Studio左侧导航栏中,选择“文本对话”进入体验页面。
- 在“文本对话”页面,单击“请选择服务”,在模型列表中选择模型服务,单击“确定”。
- 在“文本对话”页面右上角,单击“参数设置”,按需拖动或直接输入数值配置推理参数。单击“恢复默认”可以将参数值调回默认值。
图3 设置推理参数
表6 参数设置 参数
说明
取值样例
温度/Temperature
设置推理温度。
- 数值较高,输出结果更加随机。
- 数值较低,输出结果更加集中和确定。
0.7
核采样/top_p
设置推理核采样。调整输出文本的多样性,数值越大,生成文本的多样性就越高。
1
top_k
选择在模型的输出结果中选择概率最高的前K个结果。
20
- 在对话框中输入问题,查看返回结果。
输入的问题需要添加如下prompt,其中“{title}”要换成待判断的新闻标题,“{key_word}”要换成待判断的新闻关键词。
你是一位资深的新闻从业者,现在需要依据新闻标题和关键词对新闻进行分类。接下来你会收到<标题>和<关键词>,给出的分类结果需要严格按照以下要求: 1.使用json格式输出{"分类1":"中文标签","分类2":"英文标签"} 2.中文标签共15个,可选标签如下:民生、文化、娱乐、体育、财经、房产、汽车、教育、科技、旅游、国际、证券、农业、电竞等 3.英文标签共15个,可选标签如下:news_story、news_culture、news_entertainment、news_sports、news_finance、news_house、news_car、news_edu、news_tech、news_military、news_travel、news_world、stock、news_agriculture、news_game 示例: <标题>:布达拉宫夜景,有缘人才能看见!太美了! <关键词>:夜景,布达拉宫 <输出>:{"分类1":"旅游","分类2":"news_travel"} 现在请你判断以下新闻: <标题>:{title} <关键词>:{key_word} <输出>:
prompt需要满足如下要求:
- 设定合适的身份。
- 需求描述清晰:完整的上下文、任务内容要干什么和不要干什么、合理的符合标识。
- 指定输出结构。
- 给出一个示例。
返回结果如图4所示。
- 结果分析:分析模型的调优结果和推理结果。
推理结果的评分标准:
- 输出结构满足{"分类1":"xxx","分类2":"xxx"},则格式正确,得1分。
- "分类1"和"分类2"的内容与标签相同,得1分。
- 从模型调优任务的日志中获取最后一个迭代的loss值,作为终止loss。
通过计算测试集161条数据的平均得分,作为最终得分。
表7 模型服务的分析结果 序号
服务名称
选择调优类型
迭代步数/Iterations
学习率/learning_rate
格式正确得分
终止loss
最终得分
1
service--lora-01
LoRA微调
160
3.00E-05
161
0.0235
1.9005
2
service--lora-02
LoRA微调
480
3.00E-05
161
0.0338
1.907
3
service--lora-03
LoRA微调
800
3.00E-04
161
3.20E-05
1.9005
4
service--sft-01
全参微调
160
3.00E-05
0
0.0255
0
5
service--sft-02
全参微调
800
3.00E-05
1
1.70E-04
0.0124
6
service--sft-03
全参微调
160
3.00E-06
161
0.0235
1.8945
7
service-00
-
-
-
50
-
1.02
结果分析:
- 新闻自动分类是一个简单的分类任务,5281条数据的数据量也较小,因此LoRA微调和全参微调都能取得较好的调优结果。
- LoRA微调由于可调参数少,所以学习率设置比全参微调大。
- 全参微调用相同的“3.00E-05”学习率就出现了过拟合的现象。
由结果可知第1个和第3个模型服务的训推效果较好。