首页 > 其他分享 >大模型rlhf 相关博客

大模型rlhf 相关博客

时间:2023-10-03 23:44:50浏览次数:44  
标签:微调 训练 模型 LM 博客 rlhf RM 文本

想学习第一篇博客:

https://huggingface.co/blog/zh/rlhf

RLHF 技术分解

RLHF 是一项涉及多个模型和不同训练阶段的复杂概念,这里我们按三个步骤分解:

  1. 预训练一个语言模型 (LM) ;
  2. 聚合问答数据并训练一个奖励模型 (Reward Model,RM) ;
  3. 用强化学习 (RL) 方式微调 LM。

  细化:

  1. 没啥好说的

  2.关于训练奖励数值方面,这里需要人工对 LM 生成的回答进行排名。起初我们可能会认为应该直接对文本标注分数来训练 RM,但是由于标注者的价值观不同导致这些分数未经过校准并且充满噪音。通过排名可以比较多个模型的输出并构建更好的规范数据集。这个过程中一个有趣的产物是目前成功的 RLHF 系统使用了和生成模型具有 不同 大小的 LM (例如 OpenAI 使用了 175B 的 LM 和 6B 的 RM,Anthropic 使用的 LM 和 RM 从 10B 到 52B 大小不等,DeepMind 使用了 70B 的 Chinchilla 模型分别作为 LM 和 RM) 。一种直觉是,偏好模型和生成模型需要具有类似的能力来理解提供给它们的文本。看来lm和rm可以不同模型.

   3. 用强化学习微调

  这是最核心的部分.长期以来出于工程和算法原因,人们认为用强化学习训练 LM 是不可能的。而目前多个组织找到的可行方案是使用策略梯度强化学习 (Policy Gradient RL) 算法、近端策略优化 (Proximal Policy Optimization,PPO) 微调初始 LM 的部分或全部参数。

  让我们首先将微调任务表述为 RL 问题。首先,该 策略 (policy) 是一个接受提示并返回一系列文本 (或文本的概率分布) 的 LM。这个策略的 行动空间 (action space) 是 LM 的词表对应的所有词元 (一般在 50k 数量级) ,观察空间 (observation space) 是可能的输入词元序列,也比较大 (词汇量 ^ 输入标记的数量) 。奖励函数 是偏好模型和策略转变约束 (Policy shift constraint) 的结合。

  PPO 算法确定的奖励函数具体计算如下:

  将提示 x 输入初始 LM 和当前微调的 LM,分别得到了输出文本 y1y2,将来自当前策略的文本传递给 RM 得到一个标量的奖励 $r_θ$

 

标签:微调,训练,模型,LM,博客,rlhf,RM,文本
From: https://www.cnblogs.com/zhangbo2008/p/17741816.html

相关文章

  • 大模型量化4
    https://huggingface.co/blog/peft 看代码:fromtransformersimportAutoModelForSeq2SeqLM+frompeftimportget_peft_model,LoraConfig,TaskTypemodel_name_or_path="bigscience/mt0-large"tokenizer_name_or_path="bigscience/mt0-large&q......
  • 大语言模型LLM推理及训练显存计算方法
    一、推理:显存计算推理的显存大头就是:参数量,参数类型版本一般有以下四种: float32位浮点数4字节half/BF1616位浮点数2字节int88位整数1字节int44位整数0.5字节 以7B-BF16版本为例,需要显存=数量*类型大小=70亿*2字节=140亿字节 所以140亿......
  • 关于博客的分类和标签
    写在前面:本人对暂无太多写文经验,在希望养成写作习惯开始之际,希望讨论一下博客中,文章分类和标签,这两种常用的文章归类方法。一方面参考了以下几位的博客分类https://www.cnblogs.com/me115/p/4529944.htmlhttps://www.cnblogs.com/wzh2010/这两位根据文章技术领域进行分类还有......
  • 判别模型和生成模型
    生成模型就像它的名字可以模拟训练数据的特征分布。判别模型只能根据输入变量x判断其类别。抽象一下都是p(Y|x) ......
  • 皮球 - 博客园主题
    又一个博客园主题cnblogs-theme-picue,它使用PetiteVue和PicoCSS构建而成,取名picue皮球。快速开始在releases中找到最新版本下载。设置-基本设置-博客皮肤-SimpleMemory。设置-代码高亮-除了禁用全部开启。设置-页面定制CSS代码-.dist/custom.css。......
  • LangChain大模型应用开发指南-传统编程范式思维的应用
    LangChain大模型应用开发指南-传统编程范式思维的应用上节课,我带领小伙伴们完成了baichuan2量化模型的OpenAI标准接口封装,并完成LangChain对大模型的调用与测试。没有看过的小伙伴可以点击链接查看:AI课程合集今天我们将正式开始LangChain大模型应用开发课程。组件总览上图......
  • LangChain大模型应用开发指南-AI大模型衍生的新能力
    LangChain大模型应用开发指南-AI大模型衍生的新能力上节课,我以传统应用编程设计模式和思维为入口和对比对象,介绍了LangcChain中的Chain、Agent、Callback三大核心概念,并整理了LangcChain为众多开发者内置的能力与工具。没有看过的小伙伴可以点击链接查看:大模型OpenAI标准接口封......
  • 大模型量化3
    https://huggingface.co/blog/4bit-transformers-bitsandbytes 1. 8位float TheFP8(floatingpoint8)formathasbeenfirstintroducedinthepaper “FP8forDeepLearning” withtwodifferentFP8encodings:E4M3(4-bitexponentand3-bitmantissa)and......
  • redis7源码分析:redis 多线程模型解析
    多线程模式中,在main函数中会执行InitServerLastvoidInitServerLast(){bioInit();//关键一步,这里启动了多条线程,用于执行命令,redis起名为IO线程initThreadedIO();set_jemalloc_bg_thread(server.jemalloc_bg_thread);server.initial_memory_usage=......
  • redis7源码分析:redis 单线程模型解析,一条get命令执行流程
    有了下文的梳理后redis启动流程再来解析redis在单线程模式下解析并处理客户端发来的命令1.当clientfd可读时,会回调readQueryFromClient函数voidreadQueryFromClient(connection*conn){client*c=connGetPrivateData(conn);intnread,big_arg=0;size_......