文档首页/ AI开发平台ModelArts/ 最佳实践/ DeepSeek基于MaaS推理和应用/ 在ModelArts Studio(MaaS)基于Qwen2-7B模型实现新闻自动分类
更新时间:2025-09-08 GMT+08:00
分享

在ModelArts Studio(MaaS)基于Qwen2-7B模型实现新闻自动分类

应用场景

在数字化时代,新闻的生成与传播速度不断刷新记录。在ModelArts Studio大模型即服务平台(下面简称为MaaS),使用Qwen2-7B模型可以实现新闻自动分类,能够高效处理和分类大量新闻内容。

该解决方案可以应用于如下场景:

  • 新闻门户网站: 自动将新闻内容归类到相应板块,如科技、体育或国际新闻,以提升用户体验和内容检索效率。
  • 社交媒体平台: 对用户分享的新闻链接进行智能分类,帮助用户迅速定位到感兴趣的话题。
  • 内容推荐系统: 根据用户的阅读偏好和历史行为,智能推荐相关新闻,增强用户粘性和满意度。
  • 新闻分析工具: 为分析师提供自动分类的新闻数据,便于进行市场趋势和热点分析。

方案流程

图1 方案实现流程
  1. 准备数据集:获取新闻数据集,并上传到OBS。
  2. 创建模型:选择Qwen2-7B基础模型,使用自定义权重创建个人专属模型。
  3. 调优模型:使用不同的调优参数去训练模型。
  4. 部署模型服务:将调优后的模型部署成模型服务。
  5. 使用模型服务:在MaaS体验模型服务,测试推理结果。
  6. 结果分析:分析模型的调优结果和推理结果,对比新闻分类效果。

方案优势

  • 高准确性:利用模型强大的语义理解能力,系统能够准确识别新闻内容的主题和关键词,实现高准确率的自动分类。
  • 快速响应:系统能够实时处理新闻内容,快速完成分类,满足新闻时效性的要求。
  • 可扩展性:随着模型的不断训练和优化,系统能够适应不断变化的新闻内容和分类需求。
  • 降低人力成本:减少人工分类的工作量,降低人力成本,提高工作效率。

操作步骤

  1. 准备数据集。获取新闻数据集,并上传到OBS。

    1. 下载新闻数据集。

      本文原始数据集来源: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指代的文本。

    2. 将jsonl格式的数据集文件上传到“华东二”区域的OBS桶中,创建OBS桶和上传文件的操作指导请参见OBS控制台快速入门。本文以“/maas-test/news/maas_demo_news.jsonl”OBS路径为例。

  2. 创建Qwen2-7B模型。

    1. 登录ModelArts Studio(MaaS)控制台,在顶部导航栏选择目标区域。
    2. 在左侧导航栏,选择“我的模型”进入模型列表。
    3. “我的模型”页面,单击“创建模型”弹出创建模型页面。
    4. “创建模型”页面,配置相关参数。
      表1 创建模型参数说明

      参数

      说明

      取值样例

      来源模型

      单击“选择基础模型”,在弹窗中选择模型,单击“确定”

      Qwen2-7B

      模型名称

      自定义模型名称。

      Qwen2-7B_template

      描述

      自定义模型简介。

      -

      权重设置与词表

      默认选择“自定义权重”

      自定义权重

      自定义权重存储路径

      1. 将权重文件存储到OBS桶中,且权重文件必须满足对应模型的文件格式要求。

        权重文件指的是模型的参数集合。OBS桶必须和MaaS服务在同一个Region下。

        • 关于如何获取权重文件,请参见Hugging Face官网
          说明:

          如果Hugging Face网站打不开,请在互联网上搜索解决方案。

        • 关于权重文件的格式要求,请参见约束限制
        • 关于如何将权重文件存储到OBS桶,请参见上传概述
      2. 单击“自定义权重存储路径”右侧的文件图标,选择存放模型权重文件的OBS路径(必须选择到模型文件夹),然后单击“确定”

        单次上传本地文件到OBS的总大小不能超过5GB,详情请参见如何上传超过5GB的大对象

      /3003****/79abed0d-2622-4cd0-80fc-2065ebe****/

    5. 参数配置完成后,单击“创建”,创建个人专属模型。
    6. 在模型列表,单击模型名称可以进入详情页查看模型详细信息和任务。
      当模型“状态”变成“创建成功”时,表示模型创建完成。
      图2 查看我的模型状态

  3. 调优模型,使用6种不同的调优参数去训练模型。

    1. 模型创建成功后,在“我的模型”列表,单击操作列的“调优”
    2. “创建模型调优任务”页面,配置参数。

      由于需要分析模型调优效果,需要创建多个调优任务,不同调优任务的参数值配置请参见表2表3

      表2 创建调优任务

      参数

      说明

      取值样例

      任务设置

      任务名称

      自定义调优任务名称。

      参见表3

      描述

      自定义调优任务简介。

      -

      模型设置

      来源模型

      当从“我的模型”列表进入创建调优作业页面时,此处默认呈现选择的模型。

      Qwen2-7B_template

      调优类型

      选择全参微调或LoRA微调。Qwen2-7B不支持增量预训练。

      • 全参微调:直接在模型上训练,影响模型全量参数的微调训练,效果较好,收敛速度较慢,训练时间较长。
      • LoRA微调:冻结原模型,通过往模型中加入额外的网络层,并只训练这些新增的网络层参数,效果接近或略差于全参训练,收敛速度快,训练时间短。

      参见表3

      调优后模型名称

      设置调优后产生的新模型的名称。

      参见表3

      调优后模型权重存放路径

      选择调优后模型权重文件的OBS存放路径。训练后将在指定路径下自动创建以作业ID命名的新文件夹进行权重存储。

      /maas-test/news/out

      数据设置

      选择数据集格式

      支持选择MOSS、Alpaca和ShareGPT。训练数据需要按照对应格式,上传符合规范的数据集,以更好完成训练任务。关于数据集示例,请参见支持的数据集格式

      说明:
      如果数据集选择错误,您可以通过以下方式查看日志详情。

      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

    3. 参数配置完成后,单击“提交”

      “资源池类型”选择“公共资源池”时,会出现“计费提醒”对话框,请您仔细阅读预计调优运行时间和预计消耗费用信息,然后单击“确定”,创建调优作业。该预估费用不包含OBS存储费用。预估费用基于目录价和预估时长计算,估算存在波动性,最终以实际发生为准。

      “模型调优”列表中,当模型调优作业的“状态”变成“已完成”时,表示模型调优完成。

  4. 部署模型服务。将原始模型“Qwen2-7B_template”和调优后获得的6种模型都部署成模型服务。

    1. 在ModelArts Studio左侧导航栏中,选择“在线推理”
    2. “在线推理”页面,单击“我的服务”页签,在右上角单击“部署模型服务”进入部署页面,完成创建配置。
      表4 部署模型服务

      参数

      说明

      取值样例

      服务设置

      服务名称

      自定义模型服务的名称。

      参见表5

      描述

      自定义部署模型服务的简介。

      -

      模型设置

      部署模型

      单击“选择模型”,从“我的模型”列表中选择需要部署的模型。

      参见表5

      资源设置

      资源池类型

      资源池分为公共资源池与专属资源池。

      • 公共资源池供所有租户共享使用。
      • 专属资源池需单独创建,不与其他租户共享。

      公共资源池

      实例规格

      选择实例规格,规格中描述了服务器类型、型号等信息。

      说明:

      公共资源池暂未完全公开,如需申请使用,请联系与您对接的销售人员或拨打4000-955-988获得支持,您也可以在线提交售前咨询

      Ascend: 1*ascend-snt9b2 | ARM: 24 vCPUs 96000MB

      流量限制(QPS)

      设置待部署模型的流量限制QPS。

      3

      实例数

      设置服务器个数。

      推荐实例数 = 流量限制 ÷ 推荐的单实例流量限制

      1

      更多选项

      内容审核

      选择是否打开内容审核,默认启用。启用此能力可阻止在线推理中有害内容的输入输出,但可能会对接口性能产生较大影响。

      打开

      事件通知

      选择是否打开“事件通知”开关。

      关闭

      自动停止

      当使用付费资源时,可以选择是否打开“自动停止”开关。

      关闭

      表5 多个部署服务的参数配置

      序号

      服务名称

      部署模型

      1

      service--lora-01

      Qwen2-7B_01-lora

      2

      service--lora-02

      Qwen2-7B_02-lora

      3

      service--lora-03

      Qwen2-7B_03-lora

      4

      service--sft-01

      Qwen2-7B_01-sft

      5

      service--sft-02

      Qwen2-7B_02-sft

      6

      service--sft-03

      Qwen2-7B_03-sft

      7

      service-00

      Qwen2-7B_template

    3. 参数配置完成后,单击“提交”

      “资源池类型”选择“公共资源池”时,会出现“计费提醒”对话框,请您仔细阅读预估费用信息,然后单击“确定”,创建部署任务。模型部署会基于资源占用时长进行计费。服务状态为运行中时会产生费用,最终实际费用以账单为准。

      在“我的服务”列表中,当模型部署服务的“状态”变成“运行中”时,表示模型部署完成。

  5. 使用模型服务:在MaaS体验部署完成的7个模型服务,测试推理结果。

    1. 在ModelArts Studio左侧导航栏中,选择“文本对话”进入体验页面。
    2. “文本对话”页面,单击“请选择服务”,在模型列表中选择模型服务,单击“确定”
    3. “文本对话”页面右上角,单击“参数设置”,按需拖动或直接输入数值配置推理参数。单击“恢复默认”可以将参数值调回默认值。
      图3 设置推理参数
      表6 参数设置

      参数

      说明

      取值样例

      温度/Temperature

      设置推理温度。

      • 数值较高,输出结果更加随机。
      • 数值较低,输出结果更加集中和确定。

      0.7

      核采样/top_p

      设置推理核采样。调整输出文本的多样性,数值越大,生成文本的多样性就越高。

      1

      top_k

      选择在模型的输出结果中选择概率最高的前K个结果。

      20

    4. 在对话框中输入问题,查看返回结果。

      输入的问题需要添加如下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所示。

      图4 推理结果

  6. 结果分析:分析模型的调优结果和推理结果。

    推理结果的评分标准:

    • 输出结构满足{"分类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个模型服务的训推效果较好。

相关文档