课时1:AI情绪鼓励师模型微调实操教学

简介: 课时1:AI情绪鼓励师模型微调实操教学

AI情绪鼓励师模型训练营:课时1:AI情绪鼓励师模型微调实操教学

课程地址:https://developer.aliyun.com/trainingcamp/6035e78237f7495e8976bfbaaae739df


课时1:AI情绪鼓励师模型微调实操教学

 

内容介绍

一、介绍model  scope

二、model  scope教程

 

一、介绍 model  scope

欢迎大家来参加model  scope 的夸夸机器人翻译听悟训练营。今天我将给大家介绍如何使用model  scope 来创建一个属于你的夸夸机器人首先在使用之前,需要有一个model  scope 账号和阿里云的账号如果有这两个账号之后,你可以在model  scope 到CN这个网站上登录你的model  scope 账号登录好后可以看到这样一个界面

image.png

在左边我的notebook点击。如果是第一次使用notebook的话,你这里可能没有绑定过阿里云账号,所以需要在这边先绑定一下你的阿里云账号。绑定完成后,会将出现跟我一样的画面。我们使用免费时令环境来训练。所以我们是点击免费时令环境。如果你之前没有使用过的话,在这里GPU环境中,你应该有36小时的额度。我们这次将使用GPU环境来反映我们的夸夸机器人。所以我们选择方式二,点击启动这个过程。

image.png

 

如果是第一次启动,可能会花费2到10分钟的时间。如果之前启动过,它可能会稍微快一点,先等待一会。在GP免费的GPU环境中,有16G的显存,所以没有办法在这次教程中使用GPTthree的预训练模型来训练。我们将使用一个对显存的要求更加小的预训练模型pom2.0来训练。如果你想要训练其他更大的模型,可以在付费实例环境当中去付费购买一个有更强大算力的环境来训练你的模型。

我们的实例已经启动了,点击查看notebook。这里我们不需要下载这个tutorial,可以直接关掉可以等它下载完成

image.png

如果你已经在我们的训练营网站上下载了训练所需要的教程,所需要的文件应该包括三个文件,主要是decay  learning  day 这张图片和local  minimum 这张图片这两张图片是教程中用到的插图和夸夸dot  ipad  notebook 这个文件。这个文件是主要使用的文件,双击它。

image.png

ipad  thon  notebook 使用方法主要是在每一个代码的blog 点击左上角的运行。或者如果你是windows 电脑用control 回车,你是MAC 电脑用command 回车来运行这一单个blog。

我们这个教程总共分为四步。第一步是获得夸夸数据集,第二步是反应tone的预训练模型,第三步是尝试体验一下已经训练好的模型和第四步上传你训练好的模型到model  score。

 

二、model  scope 教程

我们首先来看一下如何使用model  scope 下载。在model  scope 上的数据集。这一节中,我们将从这个网址。

image.png

使用这个网址上的数据集夸夸数据集。这段代码首先是引入PYTHON 所需要的package。这一步是为了防止在教程中出现过多大量没有意义的调试的输出。所以我们捕捉了这些调试的信息,其实你也可以去掉它。接下来就是下载这个数据集,并且展示了一下这个原始数据集中前十行的数据。如果你是第一次下载,我们运行一下这个blog

 

如果你是第一次下载,这个过程可能会花费更久一点的时间。

我们看一下,这是前十行的数据。由于这是没有处理过的数据,每一行数据只是一条数据,它包含了两个部分,第一部分是夸夸的问题,要去打球求表演。第二个部分是夸夸帖回答,真棒好好打乒乓球。它有一个竖线的分隔符分开。

因为palm2.0模型它对训练的数据有要求,所以我们需要处理一下这个数据。

首先以防万一,我们有一行数据没有这个分隔符。我们在每一行的末尾也添加一个分隔符,保证它每一行可以通过分隔符分开来。接下来第二步就是根据pom 模型所需要的格式,将这一行数据拆成两行,分别为source  text 和target  text。来运行一下这一行,很快就运行好了。接下来我们来看一下我们处理好的数据是长什么样子的。首先是train 和evaluation 的数据集的长度。我们用来训练的这个数据集,总共有14000行。用来评估模型训练效果的总有2486行。每一行中将source text和target text拼接起来,中间用冒号分开,可以看到确实是分开了前十行的数据。我们跑一下。这样就已经将夸夸数据集处理成了palm2.0所需要的数据格式。

第二步我们来获取预训练的模型底座palm2.0,并且配置参数来训练它这个模型在这个网址。

当然这一步当中你也可以使用其他模型,具体的方法可以这样找

image.png

在模型库中选择同样文本生成类的。因为夸夸是个文本生成类的任务,找到你需要的模型,你也可以搜索关键字,比如GPTthree。但GPTthree 在免费的环境中你是训练不了的。

可以找到任意模型或者是预训练生成模型。然后复制这个就是模型的标识符,damo斜杠以及模型名。

image.png

回到我们的教程首先我们引papter的来运行一下。

接下来要配置在训练过程中迭代我们learning  rate 的函数。如果有对learning  rate 了解的同学可以跳过这一步,如果之前没有接触过,可以读一下这部分,你更好的了解为什么我们要这样配

 

大体上我们的目的是在学习的过程当中。因为如果在最开始的时候,探索的区域不够多,很容易就会被困在一个非常局部的最优解上没有办法去找到更加global 的一个最优解。所以在最开始的训练过程当中,我们希望探索区域更大,也就是learning 学习的范围更广。而如果在训练过了一段时间之后,在下面这张图中我们可以看到

image.png

如果你已经在这部分开始收敛了这时候如果learning  rate 还是非常大,会导致这个模型没有办法收敛,会一直在这样子左右摇摆,始终没有办法到最优解的点。这时候我们需要做的就是将learning  rate的逐渐缩小,这样子每一步就不会导致这样子不停的在左右震荡,而是慢慢趋近最优解的地方。

我们采用的方法是在transformer 这篇原始论文当中使用的norm  scheme。具体的方法在下面会做出进一步的解释。首先是函数的定义,你可以看到这个部分其实就是在论文当中对应的minimum 的这一步。接下来我们来画一下这个norm skin对于我们learning rate有什么影响,这个norm steam它有一个参数叫做walmart,也可以理解为热身的步数。

image.png

在这张图当中,横坐标代表的是训练的步数,越到后面意味着你训练越趋近于最优解的地方步数越多而纵坐标则代表learning rate的值我们可以看到,如果你的warm up的步数等于500,那么在500之后你的learning rate才会开始逐渐下降。在500之前你的learning rate是逐渐上升的。同样当你的warm up部署成了250,那在250步之前,the learning rate是逐步上升。而到了250步以后 learning rate会开始逐步下降。这就是我们自定义的norm scheme的作用。

配置好了这个之后,我们开始一些通用的训练的参数的配置。首先是配置了刚刚说的warm up step等于500,然后配置了这次训练总共需要训练的ipod x数,也就是十五。所谓i pox,就是在我们整个数据集上训练的个数。如果在整个数据集上训练了一遍,那这个i pox就等于1。如果我们在整个数据集上训练了十遍,那这i box就等于10。在每一个i pox中,我们并不是每一条样本每一行数据每一行对话训练一次的,我们一般都会采用batch的方法也就是有多行数据来训练一次。

在这里我们设置了best size等于16。举个例子,如果batch ze等于8,那总共有一千行的数据。那么在这一个i pox里面,我们总共要训练1000除以8,就等于125个batch,也就是125步。在这个learning rate这步当中,如果buy a box把它设置为false,那learning rate的更新就不是每个apple更新,而是每一步更新。也就是每个batch更新一次。所以在narm lambda中,我们设置了warm等于500,意味着在第500个batch之后,我们的learning rate就开始下降。后面的optimized就是最常见的adam的optimize初始的learning rate是十的负3次方。当然在batch 设定当中,不希望batch 过大,因为这样会导致我们的GPU 显存装不下。每次训练,当然我们也不希望match 过小,因为这样子会导致我们训练的步数过多,训练时间过长。

后面的两步其实并不是非常重要的部署,主要是配置了这个模型大概会多久保存一下模型,多久去更新一下最优的模型。我们这边只需要等这个模型整个都训练完以后直接使用,最终结果就行,而不是使用中间的这些结果。接下来是配置模型的一些参数。

image.png

image.png

 

像这个就是你要指定的预训练模型的底座。就像我们刚刚所说的,在这个模型的主要界面,你点击这一步的复制,就可以复制到模型的标识符。如果你想用其他的模型可以用其他模型的这个地方值来替换这边使用的这个。像这样就是使用GPT three。好,我们回去用这个palm2.0。接下来一个是我们用的训练数据集,也就是train dataset,是我们在一当中已经配置好了的。第二个设置一下我们的evaluation dataset,也是在一中配置好。第三步work directory是要将训练过程中以及最后训练好的模型保存的位置。在这里我们配置的是这个palm2.0下划线夸夸,你也可以使用其他的在左边你可以没有这个文件夹,它在训练过程中会自动帮你生成。

image.png

这是我们将保存所有训练当中过程的数据,以及最后的结果的位置。

下面这个就是我们刚刚配置好的上面关于训练过程当中learning rate变化的一些参数。接下来我们就可以开始train。首先name选择的是通用的text generation trainer,也就是文本生成的trainer。将刚刚的参数赋予了default arguer argus的变量,然后开始train。因为这边我已经train过了,所以我就不点了。

如果你使用我们同样的配置是15位air pods的话,花费时间大约是1.5个小时。当然你也可以将这个数量减少,使用更少的epoch来训练。如果上面每一步都是对的话,你会看到这样子的输出,他会给你看一遍所有的配置,包括一些你上面没有配置过中的默认配置。

image.png

接下来就是每一步的这个learning  rate 和loss来看一下。

image.png

这是第一个i pox的第一步,第一个air pods的第二步。因为我们总共有14000条训练数据,我们设置的batch size等于16,14000除以16等于875步,也就是875个备需要训练。所以我们每个ipod s有875个要训练,这个是learning rate。后面的是每一步要花费的时间以及最后的loss。根据我们之前所说的,我们的earning rate会在第500步的时候开始变小应用的,这边没有显示。如果你在训练的过程当中关闭了notebook也不要紧。因为它训练所有数据都会保存在我们刚刚所说的这个文件夹当中。

 

在这个log日志里面,像刚刚显示到200多步就关掉了但是他其实所有每一步都是在这个log文件当中,可以看一下到500步附近的时候,是不是如我们所说的开始下降了。

这是第500步。可以看到在500步之前的时候,这个模型它训练的learning rate是在上升的4.463、4.472。到了外部的时候开始下降,开始逐渐变小了4.459。所以这是符合learning  rate变化的期望的。

image.png

在差不多所有epoch 训练完之后。这个日志文件会显示这样子,最后一段结尾表示它将最后的模型存储好了。这边ipx15结束之后,它会存储这个模型。

你也可以在训练当中改变一些超参。比如warm  up  the  steps或者说这个i  pox,你可以尝试调试它们,还有learning  rate 的初始值。在通过不同的套餐的组合,你可能可以获得比我们更好的模型效果。

我们所有的日志都已经保存好之后,你可以在这边。当然这个是我这边的日志的文件名,你可能会不同,取决于你跑这个的时间来看一下各个训练过程中各个值的变化这是learning rate的变化。我们跑一下,你可以看到差不多在500步的时候,learning rate开始下降。

image.png

下面这个是loss的变化,也就损失函数。当损失函数越大,表示我们的模型效果越不好,损失函数越小,表示我们的模型效果越好。

image.png

可以看到我们的模型是一直在收敛的,甚至我们的模型还没有完全收敛,没有完全到平的值,或者没有没有开始lost,没有开始上升。这意味着如果增加训练的epoch through,你可能可以获得这种更好的模型。在训练完成后的第三步,我们可以来尝试体验一下我们已经翻译用好的模型,首先是输入,我们尝试两个输入。今天我买了瓶洗发水,可以夸夸我吗?今天我有点沮丧,可以夸夸我吗?

image.png

我们使用的基础模型就是我们刚刚所说的这个模型。在这里因为pipeline使用的是分布式推理,需要打开一个端口,默认它的pipeline端口都是29500。为了不冲突,我们将每一个推理过程用了不同的端口,501和502。这里我们的任务是文本生成,所以用text  generation 第一个推移使用的模型是我们的基础模型,也就是没有预训练没有翻译用过后的模型。第二个推理过程,我们使用的是我们自己翻译的模型在这个地方model 你将要填文件夹中的output,这个文件夹路径这里面是你最终训练好的模型,我们来跑一下。

这一步是让系统先在后台搭建这个退役过程,他可能会浪费一点点的时间。

接下来来体验一下预训练的模型,这是没有翻译通过的第一个参数传入的是input,第二个你可以不填是它的限制它的最大的长度。我们可以看到第一个在训练,在翻译team 之前,我们的模型其实输出的是一些看上去不那么make  sense 的一些文本。我们再来试一下,经过我们翻译过后,这两条对话分别会输出什么

image.png

今天我买了瓶洗发水,可以夸夸我吗?洗发水是个很有趣的事情。今天我有点沮丧,可以夸夸我们努力生活的你最棒。可以看得出来,它其实已经有一些语意在里面,同时也是符合上下文的环境的。当然因为局限于我们的模型是一个比较小的模型,还有我们训练的数据量以及我们训练的一些超参的配置,可能效果并不是最好。你可以尝试在model  scope 上找到其他的一些模型,试试看它们的效果。

最后一步是上传翻译听用好的模型到model  scope。这里是我临时创建的一个token。

你的token 可以在这个地方找到,首先是model  scope 的主页首页。然后在访问令牌处新建SDK 令牌。

我们这边来新建一个已经限定好了。这是我们新建的这个令牌,把它复制到那边去。

接下来就是一样的一些配置,然后这个地方则是你要上传到model  scope 后,希望它展示的名字前面是你的账号名,后面是你的模型名。因为我已经上传过一个了,这里我们上传2这个地方则是我们像上面推理过程中配置的一样,是模型最后输出的这个文件夹,也就是临时文件夹的这个output。我们来上传一下,开始运行了这边的报错,你不用管,这个过程中可能会花费一点点时间,也需要你等待一下。等到这个标志变成为运行标志,意味着它已经运行完成了可以看一看我们的模型。

这里我就不等待了,来看一下我用之前的这个来生成的模型,回到你的首页创建这是我们之前刚刚创建的模型模型文件

image.png 

可以看到,这就是我们刚刚训练好的模型。整个如何使用model  scope 来翻译,用模型的课程已经结束了

相关文章
|
4天前
|
人工智能
AniDoc:蚂蚁集团开源 2D 动画上色 AI 模型,基于视频扩散模型自动将草图序列转换成彩色动画,保持动画的连贯性
AniDoc 是一款基于视频扩散模型的 2D 动画上色 AI 模型,能够自动将草图序列转换为彩色动画。该模型通过对应匹配技术和背景增强策略,实现了色彩和风格的准确传递,适用于动画制作、游戏开发和数字艺术创作等多个领域。
54 16
AniDoc:蚂蚁集团开源 2D 动画上色 AI 模型,基于视频扩散模型自动将草图序列转换成彩色动画,保持动画的连贯性
|
13天前
|
人工智能 安全 测试技术
EXAONE 3.5:LG 推出的开源 AI 模型,采用 RAG 和多步推理能力降低模型的幻觉问题
EXAONE 3.5 是 LG AI 研究院推出的开源 AI 模型,擅长长文本处理,能够有效降低模型幻觉问题。该模型提供 24 亿、78 亿和 320 亿参数的三个版本,支持多步推理和检索增强生成技术,适用于多种应用场景。
64 9
EXAONE 3.5:LG 推出的开源 AI 模型,采用 RAG 和多步推理能力降低模型的幻觉问题
|
15天前
|
机器学习/深度学习 人工智能
SNOOPI:创新 AI 文本到图像生成框架,提升单步扩散模型的效率和性能
SNOOPI是一个创新的AI文本到图像生成框架,通过增强单步扩散模型的指导,显著提升模型性能和控制力。该框架包括PG-SB和NASA两种技术,分别用于增强训练稳定性和整合负面提示。SNOOPI在多个评估指标上超越基线模型,尤其在HPSv2得分达到31.08,成为单步扩散模型的新标杆。
56 10
SNOOPI:创新 AI 文本到图像生成框架,提升单步扩散模型的效率和性能
|
15天前
|
人工智能 搜索推荐 开发者
Aurora:xAI 为 Grok AI 推出新的图像生成模型,xAI Premium 用户可无限制访问
Aurora是xAI为Grok AI助手推出的新图像生成模型,专注于生成高逼真度的图像,特别是在人物和风景图像方面。该模型支持文本到图像的生成,并能处理包括公共人物和版权形象在内的多种图像生成请求。Aurora的可用性因用户等级而异,免费用户每天能生成三张图像,而Premium用户则可享受无限制访问。
56 11
Aurora:xAI 为 Grok AI 推出新的图像生成模型,xAI Premium 用户可无限制访问
|
17天前
|
存储 人工智能 PyTorch
【AI系统】模型转换流程
本文详细介绍了AI模型在不同框架间的转换方法,包括直接转换和规范式转换两种方式。直接转换涉及从源框架直接生成目标框架的模型文件,而规范式转换则通过一个中间标准格式(如ONNX)作为桥梁,实现模型的跨框架迁移。文中还提供了具体的转换流程和技术细节,以及模型转换工具的概览,帮助用户解决训练环境与部署环境不匹配的问题。
35 5
【AI系统】模型转换流程
|
17天前
|
机器学习/深度学习 存储 人工智能
【AI系统】模型转换基本介绍
模型转换技术旨在解决深度学习模型在不同框架间的兼容性问题,通过格式转换和图优化,将训练框架生成的模型适配到推理框架中,实现高效部署。这一过程涉及模型格式转换、计算图优化、算子统一及输入输出支持等多个环节,确保模型能在特定硬件上快速、准确地运行。推理引擎作为核心组件,通过优化阶段和运行阶段,实现模型的加载、优化和高效执行。面对不同框架的模型文件格式和网络结构,推理引擎需具备高度的灵活性和兼容性,以支持多样化的应用场景。
41 4
【AI系统】模型转换基本介绍
|
17天前
|
机器学习/深度学习 人工智能 算法
【AI系统】模型压缩基本介绍
模型压缩旨在通过减少存储空间、降低计算量和提高计算效率,降低模型部署成本,同时保持模型性能。主要技术包括模型量化、参数剪枝、知识蒸馏和低秩分解,广泛应用于移动设备、物联网、在线服务系统、大模型及自动驾驶等领域。
58 4
【AI系统】模型压缩基本介绍
|
17天前
|
机器学习/深度学习 存储 人工智能
【AI系统】模型剪枝
本文概述了模型剪枝的概念、方法及流程,旨在通过移除神经网络中冗余或不重要的参数,实现模型规模的减小和效率的提升。剪枝不仅有助于降低模型的存储和计算需求,还能增强模型的泛化能力。文章详细介绍了剪枝的定义、分类、不同阶段的剪枝流程,以及多种剪枝算法,如基于参数重要性的方法、结构化剪枝、动态剪枝和基于优化算法的全局剪枝策略。通过这些方法,可以在保持模型性能的同时,显著提高模型的计算速度和部署灵活性。
28 2
【AI系统】模型剪枝
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
师资研修|AI赋能教师教学能力转型-德阳某教育主管部门
近日,德阳市教育主管部门,面向全市中职院校的骨干教师,开展AIGC赋能教育教学师资培训。TsingtaoAI参与负责本次师资研修的教学。本次师资研修通过系统化、专业化的培训,帮助教师深入掌握AI大模型及生成技术在教学中的应用。课程以实践为核心,以案例为载体,涵盖AI提示词优化、教案与题库生成、PPT高效设计及AI数字人应用等核心内容,全面提升教师的教学效率与创新能力。
20 5
|
9天前
|
人工智能 自然语言处理 物联网
AI Safeguard联合 CMU,斯坦福提出端侧多模态小模型
随着人工智能的快速发展,多模态大模型(MLLMs)在计算机视觉、自然语言处理和多模态任务中扮演着重要角色。