首页 > 其他分享 >在ModelArts Studio基于Llama3-8B模型实现新闻自动分类

在ModelArts Studio基于Llama3-8B模型实现新闻自动分类

时间:2024-11-28 20:30:12浏览次数:6  
标签:ModelArts 创建 模型 Llama3 8B 调优 news

应用场景

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

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

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

图1 方案实现流程

  1. 准备数据集:获取新闻数据集,并上传到OBS。
  2. 创建模型:选择Llama3-8B模型框架,使用推荐权重创建我的模型。
  3. 调优模型:使用不同的调优参数去训练模型。
  4. 部署模型服务:将调优后的模型部署成模型服务。
  5. 使用模型服务:在MaaS体验模型服务,测试推理结果。
  6. 结果分析:分析模型的调优结果和推理结果,对比新闻分类效果。
方案优势
  • 高准确性:利用LLM的强大语义理解能力,系统能够准确识别新闻内容的主题和关键词,实现高准确率的自动分类。
  • 快速响应:系统能够实时处理新闻内容,快速完成分类,满足新闻时效性的要求。
  • 可扩展性:随着模型的不断训练和优化,系统能够适应不断变化的新闻内容和分类需求。
  • 降低人力成本:减少人工分类的工作量,降低人力成本,提高工作效率。
操作步骤
  1. 准备数据集。获取新闻数据集,并上传到OBS。

    1. 下载新闻数据集。

      本文原始数据集来源:GitHub - 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"}}}
    1. “conversation_id”是样本编号,“chat”后面是多轮对话的内容,“turn_n”表示是第n次对话,每次对话都有输入(对应Human角色)和输出(对应MOSS角色)。其中Human和MOSS仅用于角色区分,模型训练的内容只有text指代的文本。

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

  • 进入ModelArts Studio大模型即服务平台。

    1. 登录ModelArts管理控制台。
    2. 在左侧导航栏中,选择“ModelArts Studio”进入ModelArts Studio大模型即服务平台。

  • 创建模型。选择Llama3-8B模型框架,使用推荐权重创建我的模型。

    1. 在ModelArts Studio左侧导航栏中,选择“模型广场”进入模型广场。
    2. 在模型广场搜索“Llama3-8B”,单击“立即使用”进入模型详情页。
    3. 在模型详情页,单击“创建模型”弹出创建模型页面。
    4. 在创建模型页面,配置参数。

      图2 创建模型

      表1 创建模型

      参数

      说明

      取值样例

      来源模型

      当从“模型广场”进入创建模型页面时,此处默认呈现选择的模型。

      Llama3-8B

      模型名称

      自定义模型名称。

      Llama3-8B_template

      描述

      模型简介。

      -

      权重设置与词表

      默认选择“使用推荐权重”,支持选择“自定义权重”。

      使用平台推荐的权重文件,可提高模型的训练、压缩、部署和调优等服务的使用效率。

      权重文件指的是模型的参数集合。

      使用推荐权重

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

      图3 查看我的模型状态

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

    1. 模型创建成功后,在我的模型列表,单击操作列的“更多 > 调优”,进入创建调优作业页面。
    2. 在创建调优作业页面,配置参数。

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

      表2 创建调优任务

      参数

      说明

      取值样例

      任务设置

      任务名称

      自定义调优任务名称。

      参见表3

      描述

      调优任务简介。

      -

      模型设置

      模型来源

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

      Llama3-8B_template

      选择调优类型

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

      参见表3

      调优后的模型名称

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

      参见表3

      数据设置

      添加数据集

      选择存放训练数据集的OBS路径,必须选择到1上传的jsonl文件。

      /maas-test/news/maas_demo_news.jsonl

      调优后模型权重保存路径

      选择存放调优后的模型权重文件的OBS路径。

      说明:

      权重文件要存放在空文件夹中,否则会覆盖原有文件。

      /maas-test/news/out

      超参设置

      迭代步数/Iterations

      设置模型参数/权重更新的次数。在调优过程中,每一个Iterations会消耗32条训练数据。

      参见表3

      学习率/learning_rate

      设置每个迭代步数(iteration)模型参数/权重更新的速率。学习率设置得过高会导致模型难以收敛,过低则会导致模型收敛速度过慢。

      参见表3

      资源设置

      资源池类型

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

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

      公共资源池

      实例规格

      选择实例规格,规格中描述了服务器类型、型号等信息,仅显示模型支持的资源

      xxx

      实例数

      设置实例数。

      1

      更多选项

      永久保存日志

      选择是否打开“永久保存日志”开关。

      关闭

      事件通知

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

      关闭

      自动停止

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

      关闭

      表3 多个调优任务的参数配置

      序号

      任务名称

      选择调优类型

      调优后的模型名称

      迭代步数/Iterations

      学习率/learning_rate

      1

      job-lora-01

      LoRA微调

      Llama3-8B_01-lora

      160

      3.00E-05

      2

      job-lora-02

      LoRA微调

      Llama3-8B_02-lora

      480

      3.00E-05

      3

      job-lora-03

      LoRA微调

      Llama3-8B_03-lora

      800

      3.00E-04

      4

      job-sft-01

      全参微调

      Llama3-8B_01-sft

      160

      3.00E-05

      5

      job-sft-02

      全参微调

      Llama3-8B_02-sft

      800

      3.00E-05

      6

      job-sft-03

      全参微调

      Llama3-8B_03-sft

      160

      3.00E-06

    3. 参数配置完成后,单击“提交”,创建调优任务。

      在任务列表,当模型“状态”变成“已完成”时,表示模型调优完成。

  • 部署模型服务。将原始模型“Llama3-8B_template”和调优后获得的6种模型都部署成模型服务。

    1. 在ModelArts Studio左侧导航栏中,选择“模型部署”进入服务列表。
    2. 单击“部署模型服务”进入部署页面,完成创建配置。

      图4 资源设置

      表4 部署模型服务

      参数

      说明

      取值样例

      服务设置

      服务名称

      自定义模型服务的名称。

      参见表5

      描述

      部署模型服务的简介。

      -

      模型设置

      部署模型

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

      参见表5

      资源设置

      资源池类型

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

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

      公共资源池

      实例规格

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

      xxx

      流量限制(QPS)

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

      3

      实例数

      设置服务器个数。

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

      1

      更多选项

      事件通知

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

      关闭

      自动停止

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

      关闭

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

      序号

      服务名称

      部署模型

      1

      service--lora-01

      Llama3-8B_01-lora

      2

      service--lora-02

      Llama3-8B_02-lora

      3

      service--lora-03

      Llama3-8B_03-lora

      4

      service--sft-01

      Llama3-8B_01-sft

      5

      service--sft-02

      Llama3-8B_02-sft

      6

      service--sft-03

      Llama3-8B_03-sft

      7

      service-00

      Llama3-8B_template

    3. 参数配置完成后,单击“提交”,创建部署任务。

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

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

    1. 在ModelArts Studio左侧导航栏中,选择“模型体验”进入体验页面。
    2. 在模型体验页面,单击“请选择服务”或“立即选择”,在模型列表中选择模型服务,单击“确定”。

      图5 选择模型服务

    3. 在参数设置页面,拖动或直接输入数值配置推理参数。单击“恢复默认”可以将参数值调回默认值。

      图6 设置推理参数

      表6 参数设置

      参数

      说明

      取值样例

      温度/Temperature

      设置推理温度。

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

      1

      核采样/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}
      <输出>:
    1. 说明:

      prompt需要满足如下要求:

      • 设定合适的身份。
      • 需求描述清晰:完整的上下文、任务内容要干什么和不要干什么、合理的符合标识。
      • 指定输出结构。
      • 给出一个示例。

      返回结果如图7所示。

      图7 推理结果

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

    推理结果的评分标准:

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

标签:ModelArts,创建,模型,Llama3,8B,调优,news
From: https://blog.csdn.net/2403_89344729/article/details/144119713

相关文章

  • 「杂题乱刷2」CF2038B
    题目链接CF2038BMakeItEqual题意简述这东西好久没写了啊。阿瓦在一个幻想王国里。他走在草坪上,发现有\(n\)个数字精灵祝他生日快乐。阿瓦非常开心。因为最多可能会有\(2\times10^5\)个精灵为他庆生。但是,对于每个数字精灵都有一个饱食度\(a_i\),如果有任意两个数......
  • Llama3.1 是怎么工作哒?原文翻译版
    了解Llama3.1如何工作——深入探讨模型流程原文标题:UnderstandHowLlama3.1Works—ADeepDiveIntotheModelFlow原作者:XiaojianYu原文链接:https://medium.com/@yuxiaojian/understand-how-llama3-1-works-a-deep-dive-into-the-model-flow-b149aba04bed翻译:岁月月......
  • ARC188B - Symmetric Painting 题解
    很启发的题目,考虑每次绘画的点。Alice绘画\(-x\)点。Bob绘画\(2K-x\)点。按顺序绘画\(0,2K,-2K,4K,-4K,6K,-6K,\ldots\),由于模\(n\)的完全剩余系在互质的乘法中封闭,也就是说\(N\)与\(2K\)互质时可以取遍所有数。再考虑\(\gcd(N,2K)\ne1\)时,......
  • Llama 越狱探索 Llama-3.1-8B-Instruct去除限制过程
    探索Llama-3.1-8B-Instruct模型的越狱过程,即解除其限制,以实现更为灵活的使用,涉及对模型的行为约束、输入输出过滤器及整体指令的定制化调整。Llama模型家族由Meta研发,通常带有一定的指令集和约束,以确保其安全、可靠地运行,尤其是在指令模型中,这些限制可能会抑制其生成内......
  • Kubernetes运行 Llama3
    引言Ollama是一个运行大模型的工具,可以看成是大模型领域的Docker,可以下载所需的大模型并暴露API。OpenWebUI是一个大模型的WebUI交互工具,支持Ollama,即调用Ollama暴露的API实现与大模型交互。本文将详细介绍如何在Kubernetes上部署Ollama和OpenWebUI,以运行......
  • AT89C52+DS18B20温度报警器+LCD1602+独立按键Proteus仿真(代码借用江科大)
    可以使用dht11温湿度传感器尝试做一下proteus8仿真 江科大配套代码(本main.c代码中有AT24C02应用,本仿真中未用,加入即可,不用删除)Delay,LCD602,key(按键)源码先前文章中已发AT24C02.c#include<REGX52.H>#include"I2C.h"#defineAT24C02_ADDRESS 0xA0/***@brief......
  • 【基础岛·第6关】OpenCompass 评测 InternLM-1.8B 实践
    目录1.概览2.环境配置2.1创建开发机和conda环境2.2安装——面向GPU的环境安装3.数据准备3.1评测数据集3.2InternLM和ceval相关的配置文件4.启动测评4.1使用命令行配置参数法进行评测4.2使用配置文件修改参数法进行评测1.概览在OpenCompass中评估一个模型通常包括......
  • 最强大的开源模型Llama3.1-部署与使用
    文章目录1开源LLM背景2部署流程3登录实例4部署LLama3.15使用教程大规模语言模型(LLM)作为深度学习算法训练的自然语言处理工具,正在迅速发展。狭义上,LLM专注于自然语言理解和生成,广义上则涵盖了机器视觉(CV)、多模态大模型和科学计算模型等应用。1开源LLM背景当......
  • 51单片机四路DS18B20温度检测系统代码与Proteus仿真图
    资料下载地址:51单片机四路DS18B20温度检测系统代码与Proteus仿真图1、仿真图2、代码 voidmain(void){uintk;ucharnumber;BEEP=1;LCD_Initial();//init_lcd();writestring(0,0,"SearchSensor");delayms(800);numb......
  • 51单片机双机通信——DS18B20温度测量
    目标实现功能    甲机控制数字温度传感器DS18B20采集温度、并将温度传递给乙机;乙机接收甲机传递的温度数据、并通过8位数码管动态显示。1.DS18B20简介1.1 DS18B20特点DS18B20采用单总线接口,测量结果直接输出数字信号,通过单总线传递给微处理器。工作电压在3.0v~5.5v......