文心千帆:PPT 制作、数字人主播一键开播等应用场景惊艳到我了,下面给ERNIE-Bot|BLOOMZ大模型调优、RLHF训练详细教程
1.文心千帆简介
文心千帆优势
基础强大、知识丰富
文心千帆平台基于百度智能云,采用飞桨深度学习框架作为底层支撑,并内置文心大模型技术。用户通过少量数据调整,可轻松获得高精度和高性能的大模型。流程完善、发布便捷
提供一站式服务,涵盖数据集管理、模型训练、服务发布与监管。通过可视化界面实现模型全生命周期管理,简化从数据到服务的大模型实施过程,易于上手与理解。运行稳定、共建生态
文心千帆具备完整技术栈、长期稳定的模型开发引擎以及卓越性能。平台低技术门槛,适合各行各业接入,助力完成行业大模型的开发建设。安全可靠、一键启用
文心千帆提供文心一言企业级服务,结合百度智能云安全控制机制及文心底层内容安全功能,对推理内容进行审核与敏感词过滤,确保安全可信。
视频链接(PPT 制作、数字人主播一键开播等数十种应用场景惊艳到我了):https://www.zhihu.com/zvideo/1665822423881326592
2.大模型调优
大模型调优实际上是 Fine-Tuning 的训练模式,开发者可以选择适合自己任务场景的训练模式并加以调参训练,从而实现理想的模型效果。
登录到[文心千帆大模型操作台]),在左侧功能列选择[大模型调优],进入大模型调优主任务界面。
- 创建任务
您需要在大模型调优任务界面,选择 “创建调优任务” 按钮。
填写好任务名称后,在范围内选择所属行业和应用场景,再进行 500 字内的业务描述即可。
[创建并训练]直接开启训练模型的运行配置界面;“完成创建” 仅创建任务不创建训练模型的运行。
- 新建运行
您可以在创建任务时选择 “创建并训练”,或者在大模型调优任务列表中,选择指定任务的“新建运行” 按钮。
进入模型训练的任务运行配置页,填写基本信息。
- 训练配置
训练配置大模型参数,调整好基本配置。
2.1 ERNIE-Bot-turbo
百度自行研发的大语言模型,覆盖海量中文数据,具有更强的对话问答、内容创作生成等能力。
训练方法 | 简单描述 |
---|---|
全量更新 | 全量更新在训练过程中对大模型的全部参数进行更新 |
- 参数配置
超参数 | 简单描述 |
---|---|
迭代轮次 | 迭代轮次(epoch),控制训练过程中的迭代轮数。 |
批处理大小 | 批处理大小(Batchsize)表示在每次训练迭代中使用的样本数。较大的批处理大小可以加速训练,但可能会导致内存问题。 |
学习率 | 学习率(learning_rate)是在梯度下降的过程中更新权重时的超参数,过高会导致模型难以收敛,过低则会导致模型收敛速度过慢,平台已给出默认推荐值,可根据经验调整。 |
2.2 BLOOMZ-7B
知名的大语言模型,由 HuggingFace 研发并开源,能够以 46 种语言和 13 种编程语言输出文本。
训练方法 | 简单描述 |
---|---|
全量更新 | 全量更新在训练过程中对大模型的全部参数进行更新 |
Prompt Tuning | 在固定预训练大模型本身的参数的基础上,增加 prompt embedding 参数,并且训练过程中只更新 prompt 参数。 |
LoRA | 在固定预训练大模型本身的参数的基础上,在保留自注意力模块中原始权重矩阵的基础上,对权重矩阵进行低秩分解,训练过程中只更新低秩部分的参数。 |
- 参数配置
超参数 | 简单描述 |
---|---|
迭代轮次 | 迭代轮次(epoch),控制训练过程中的迭代轮数。 |
批处理大小 | 批处理大小(Batchsize)表示在每次训练迭代中使用的样本数。较大的批处理大小可以加速训练,但可能会导致内存问题。 |
学习率 | 学习率(learning_rate)是在梯度下降的过程中更新权重时的超参数,过高会导致模型难以收敛,过低则会导致模型收敛速度过慢,平台已给出默认推荐值,可根据经验调整。 |
梯度累积次数 | 梯度累积次数(gradient_accumulation_steps),累积几次原本的 loss 就要除以几,这是为了对多个批次的数据的梯度做累积,从而达到节省显存的目的。 |
- 数据配置
训练任务的选择数据及相关配置,大模型调优任务需要匹配多轮对话 - 非排序类的数据集。
建议数据集总条数在 1000 条以上,训练模型更加精准。
数据集来源可以为千帆平台已发布的数据集版本,也可以为已有数据集的 BOS 地址,详细内容可查看[数据集]部分内容。
当预置模型选择 BLOOMZ-7B 时,需要设置数据拆分比例。比如设置 20,则表示选定数据集版本总数的 80% 作为训练集,20% 作为验证集。
需注意:当选择 BOS 目录导入数据集时,数据放在 jsonl 文件夹下。您需要选择 jsonl 的父目录:
- 奖励模型支持单轮对话、多轮对话有排序数据。
- RLHF 训练支持仅 prompt 数据。
- SFT 支持单轮对话,多轮对话需要有标注数据。
- BOS 目录导入数据要严格遵守其格式要求,如不符合此格式要求,训练作业无法成功开启。详情参考 BOS 目录导入[无标注信息格式]和 BOS 目录导入[有标注信息格式]。
百度 BOS 服务开通申请。
3.查看与管理大模型调优运行
在[大模型调优]任务界面,可以查看任务的详情、[新建运行任务]和删除整个任务(包括运行)。
在指定任务的详情页面,可以查看所有的模型训练运行任务状态及其他相关内容。
登录到[文心千帆大模型操作台],在左侧功能列选择[大模型调优],进入大模型调优主任务界面。
- 详情
在[大模型调优]的详情页,即可查看训练运行的列表。此界面可[新建运行]。
在运行任务的详情页可查看创建运行时的基本信息、训练配置和数据配置,详情数据的来源为[新建运行]时填入的内容。
- 发布
可以指定某个运行成功的任务,发布为模型。 填写好如下参数后,将被[模型管理]所纳管。
- 评估报告
可以查看指定运行中心评估报告,包含评估信息的指标参数和 Training Loss 的曲线图。
- BLEU 指标是 NLP 中机器翻译 / ⽂本摘要等任务常⽤的评价指标。它是基于精确率(Precision)来设计的。NLP 中有个重要的概念是 n-gram,指⼀个语句⾥⾯连续的 n 个单词组成的⽚段;BLEU-n 其实就是基于 n-gram 的评价指标。
- rouge-N(1/2/L)-f:百分⽐。ROUGE 通过将模型⽣成的摘要或者回答与参考答案(⼀般是⼈⼯⽣成的)进⾏⽐较计算,得到对应的得分。Rouge-N 实际上是将模型⽣成的结果和标准结果按 N-gram 拆分后,计算召回率。
Training Loss:训练集每个 batch 的损失。
训练日志
可以查看运行任务的训练情况,分为概览日志和训练日志两部分,日志内容均支持下载(txt 格式)。
- 概览日志:对模型训练过程中的关键步骤信息进行抽取展示。
- 训练日志:对模型训练过程中的全量动作以日志的形式展示。
概览日志部分内容如下所示:
4.RLHF训练
RLHF(Reinforcement Learning from Human Feedback,基于人类反馈的强化学习),一种机器学习方法,它使智能系统能够从环境中学习并最大化特定目标。在 RLHF 中,通过对同一输入的多个生成结果进行人工排序,获得包含人类偏好反馈的标注数据,从而训练出一个奖励模型(Reward Model)。在强化学习的过程中,奖励模型将对大语言模型的多个生成结果的排序进行判定。最终,强化学习通过更新大模型的参数,使得输出结果符合奖励模型的判定要求。这种方法减轻了传统强化学习中需要大量试错的问题,也降低了完全依赖于人工对所有大模型生成结果进行排序调整反馈的成本,使得智能系统更加高效、快速地学习任务。
RLHF 已成功应用于文心千帆大模型平台, 能够生成类似人类的文本并执行各种语言任务。RLHF 使模型能够在大量文本数据语料库上进行训练,并在复杂的语言任务 (如语言理解和生成) 上取得令人印象深刻的结果。
RLHF 的成功取决于人类提供的反馈的质量,根据任务和环境,反馈的质量可能是主观的和可变的。因此,开发有效且可扩展的收集和处理反馈的方法非常重要。
总的来说,RLHF 比传统的机器学习和强化学习提供了更多的指导,能够捕捉到人类偏好的全部内容,从而驱使人工智能系统与人类价值观相一致。即使 RLHF 不能完全解决对内部调整的担忧,它所识别的失败以及它赋予奖励和政策模型的知识也适用于提高社会和合作环境中人工智能的安全性、可靠性和可信度。
4.1 收集人类反馈
收集人类反馈为 RHLF 的基础步骤,文心千帆平台接入多轮对话 - 排序类和 prompt 语料数据集,作为奖励模型和强化模型训练的人类反馈。这部分内容主要产生两类模型:
- 预训练模型:只经过语料库训练而未经过 fine-tune 的模型;
- 监督基线模型:在预训练模型基础上使用测试数据集的 fine-tune 模型。
在初始模型被训练之后,人类训练者提供对模型表现的反馈。他们根据质量或正确性排名不同的模型生成的输出或行为。这些反馈被用来创建强化学习的奖励信号。
4.2 奖励模型训练
奖励模型(Reward Model, RM)训练的最终目的是刻画模型的输出是否在人类看来表现不错:
输入【提示(prompt),模型生成的文本】,输出表明文本质量的标量数字。
奖励模型接收一系列文本并返回标量的奖励值,数值和人类的偏好相对应。您可以采用端对端的方式用大语言模型建模,或者用模块化的系统建模(如对输出进行排名,再将排名转换为奖励)。奖励数值将用于接入强化模型训练中。
奖励模型训练是一种强化学习技术,用于根据人类反馈来学习如何更好地进行决策,从而获得更高的累积奖励值。
在强化学习中,智能体通过不断地与环境进行交互,从中获得一定的奖励值。奖励模型可以描述和计算每一次交互中智能体获得的奖励值,并且根据这些奖励值,智能体可以学习到如何更好地进行决策,从而获得更高的累积奖励值。
奖励模型是强化学习中的一个重要概念,它直接影响智能体的学习效果和行为表现。
登录到[文心千帆大模型操作台],在左侧功能列 RLHF 训练中选择[奖励模型训练],进入奖励模型训练主任务界面。
- 创建任务
您需要在奖励模型训练任务界面,选择 “创建训练任务” 按钮。
填写好任务名称后,在范围内选择所属行业和应用场景,再进行 500 字内的业务描述即可。
[创建并训练]直接开启训练模型的运行配置界面;“完成创建” 仅创建任务不创建训练模型的运行。
- 新建运行
您可以在创建任务时选择 “创建并训练”,或者在奖励模型训练任务列表中,选择指定任务的“新建运行” 按钮。
进入模型训练的任务运行配置页,填写基本信息。
- 数据配置
训练任务的选择数据及相关配置,奖励模型训练任务匹配多轮对话 - 排序类的数据集。
建议数据集总条数在 1000 条以上,训练模型更加精准。
数据集来源可以为千帆平台已发布的数据集版本,也可以为已有数据集的 BOS 地址,详细操作内容可查看[数据集]部分内容。
需注意:当选择 BOS 目录导入数据集时,数据放在 jsonl 文件夹下。您需要选择 jsonl 的父目录:
- 奖励模型支持单轮对话、多轮对话有排序数据。
- RLHF 训练支持仅 prompt 数据。
- SFT 支持单轮对话,多轮对话需要有标注数据。
- BOS 目录导入数据要严格遵守其格式要求,如不符合此格式要求,训练作业无法成功开启。详情参考 BOS 目录导入[无标注信息格式]和 BOS 目录导入[有标注信息格式]。
在奖励模型训练的详情页,即可查看训练运行的列表。此界面可[新建运行]。
在运行任务的详情页可查看创建运行时的基本信息和数据配置,详情数据的来源为[新建运行]时填入的内容。
- 强化学习
可以指定某个运行成功的任务,去强化学习。
在运行任务的详情页右上角选择[去强化学习]开启强化学习训练任务。
训练日志
可以查看运行任务的训练情况,分为概览日志和训练日志两部分,日志内容均支持下载(txt 格式)。概览日志:对模型训练过程中的关键步骤信息进行抽取展示。
- 训练日志:对模型训练过程中的全量动作以日志的形式展示。
概览日志部分内容如下所示:
4.3 强化学习训练
强化学习(Reinforcement Learning, RL)又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。至少需要以下三个基本要素:
- 策略(policy):基于该语言模型,接收 prompt 作为输入,然后输出一系列文本(或文本的概率分布)。
- 动作空间(action space):词表所有 token 在所有输出位置的排列组合(单个位置通常有 50k 左右的 token 候选)。
- 奖励函数(reward):基于奖励模型计算得到初始 reward,再叠加上一个约束项。
代理(agent)通过与环境的交互来学习策略。代理采取行动 (含无动作行动),这些行动会影响代理所处的环境,而环境进而转换到新的状态并返回奖励。奖励是使强化学习代理能够调整其行动策略的反馈信号,当代理进行训练时,它会调整自己的策略,并采取一系列行动,使其回报最大化。
强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能代理(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。
强化学习主要是训练对象每一步如何进行决策, 采用什么样的行动可以完成特定的目的或者使收益最大化。
登录到[文心千帆大模型操作台],在左侧功能列 RLHF 训练中选择[强化学习训练],进入强化学习训练主任务界面。
- 创建任务
您需要在强化学习训练任务界面,选择 “创建训练任务” 按钮。
填写好任务名称后,在范围内选择所属行业和应用场景,再进行 500 字内的业务描述即可。
创建并训练[创建并训练])直接开启训练模型的运行配置界面;“完成创建” 仅创建任务不创建训练模型的运行。
- 新建运行
您可以在创建任务时选择 “创建并训练”,或者在强化学习训练任务列表中,选择指定任务的“新建运行” 按钮。
进入强化学习的任务运行配置页,填写基本信息。
- 数据配置
选择训练任务的数据及相关配置,强化学习训练任务匹配 query 问题集。
建议数据集总条数在 1000 条以上,训练模型更加精准。
数据集来源可以为千帆平台已发布的数据集版本,也可以为已有数据集的 BOS 地址,详细内容可查看[数据集]部分内容。
需注意:当选择 BOS 目录导入数据集时,数据放在 jsonl 文件夹下。您需要选择 jsonl 的父目录:
- 奖励模型支持单轮对话、多轮对话有排序数据。
- RLHF 训练支持仅 prompt 数据。
- SFT 支持单轮对话,多轮对话需要有标注数据。
- BOS 目录导入数据要严格遵守其格式要求,如不符合此格式要求,训练作业无法成功开启。详情参考 BOS 目录导入[数据信息格式]。
训练配置
选择大模型
- 预置大模型:BLOOMZ-7B
知名的大语言模型,由 Hugging Face 研发并开源,能够以 46 种语言和 13 种编程语言输出文本。 - 用户大模型:用户自建的调优大模型
由大模型调优所建,强化学习更匹配私有业务场景。
- 预置大模型:BLOOMZ-7B
- 选择奖励模型:平台运行成功的奖励模型版本
在平台奖励模型的基础上,继续完成强化训练,训练出最大化靠近人类反馈的模型。
参数配置
超参数 | 简单描述 |
---|---|
迭代轮次 | 迭代轮次(epoch),控制训练过程中的迭代轮数。 |
批处理大小 | 批处理大小(Batchsize)表示在每次训练迭代中使用的样本数。较大的批处理大小可以加速训练,但可能会导致内存问题。 |
学习率 | 学习率(learning_rate)是在梯度下降的过程中更新权重时的超参数,过高会导致模型难以收敛,过低则会导致模型收敛速度过慢,平台已给出默认推荐值,可根据经验调整。 |
以上所有操作完成后,点击 “确定”,则发起模型训练的任务。
在强化学习训练任务界面,可以查看任务的详情、新建运行任务和删除整个任务(包括运行)。
在指定任务的详情页面,可以查看所有的模型训练运行任务状态及其他相关内容。
登录到文心千帆大模型操作台,在左侧功能列 RLHF 训练中选择强化学习训练,进入强化学习训练主任务界面。
- 详情
在强化学习训练的详情页,即可查看训练运行的列表。此界面可[新建运行]。
在运行任务的详情页可查看创建运行时的基本信息、训练配置和数据配置,详情数据的来源为[新建运行]时填入的内容。
- 发布
可以指定某个运行成功的任务,发布为模型。
填写好如下参数后,将被[模型管理])所纳管。
- 评估报告
可以查看指定运行中心评估报告,查看 Training Reward 的曲线图。
训练集每个 batch 模型给出预测的奖励值
- 训练日志
可以查看运行任务的训练情况,分为概览日志和训练日志两部分,日志内容均支持下载(txt 格式)。
- 概览日志:对模型训练过程中的关键步骤信息进行抽取展示。
- 训练日志:对模型训练过程中的全量动作以日志的形式展示。
概览日志部分内容如下所示:
5.总结
本文主要目的是布道:文心千帆大模型平台(一站式企业级大模型平台,提供先进的生成式AI生产及应用全流程开发工具链),希望国产化大模型越来越好。更多内容请参考官网文心千帆大模型平台
- 强大的技术能力:文心千帆大模型平台采用了最先进的人工智能技术,具有强大的自然语言处理和机器学习能力,能够为用户提供高质量的文本生成和语义理解服务。
- 丰富的模型库:文心千帆大模型平台拥有丰富的模型库,涵盖了多种语言和领域,能够满足不同用户的需求。
- 良好的用户体验:文心千帆大模型平台的用户界面简洁明了,操作简单方便,用户可以快速上手。此外,平台还提供了丰富的文档和教程,帮助用户更好地了解和使用平台。
- 良好的安全性:文心千帆大模型平台采用了严格的安全措施,保障了用户数据的安全性,让用户可以放心使用平台。
- 参考文献:
更多优质内容请关注公号:汀丶人工智能;会提供一些相关的资源和优质文章,免费获取阅读。