强化学习系列(一)

1.为什么要学习强化学习?

训练大模型时,不能仅仅使用有监督微调

这是因为NLP中语言的多样性,大模型给出的很多答案的含义是一样的。

并且有监督微调通常需要大量的高质量问答文本,这类文本的整理需要耗费大量的人力与时间成本。

强化学习的优化目标不再是让模型输出结果与标准答案相同,而是要使模型生成高质量回复。这样,模型在生成答案后,奖励模型可以对答案给出质量判断、质量排序

2.强化学习的基本框架

 

                               

 

 

 

Agent:智能体;Enviroment:环境;强化学习主要由Agent和Enviroment组成;

Step1:智能体在环境中获取到某个状态State($S_{t}$)

Step2:智能体会根据这个状态输出一个动作Action  ($A_{t}$),动作会在环境中执行。

Step3:环境根据Action,给出当前动作带来的奖励Reward($R_{t}$)和下一个状态($S_{t+1}$)。

智能体的目标是尽可能多地从环境中获取奖励。

3.强化学习相关概念

(1):智能体:可以做出决策并执行动作的物体。

(2):环境:智能体所在的场景。环境会根据智能体的行为给出反馈,通常以奖励的形式。

(3):状态、行为与奖励:智能体会评估当前环境的状态。基于这些状态,它会采取某种动作,在它采用执行动作后,环境随后会给出一个奖励

(4):策略与价值:在智能体尝试各种行为的过程中,智能体其实是在学习一个策略(Policy)。策略可以视为一套指导其在特定状态下如何行动的准则。与此同时,智能体还试图估计价值(Value)函数,也就是预测在未来采用某一行为所能带来的奖励。

4.强化学习的目标

强化学习的目标就是让智能体在环境中学习到一个策略,使得自身奖励最大化。

5.详细讲讲“策略“

策略决定了:智能体在环境下采取的动作。

可以分为两种:随机性策略与确定性策略。

随机性策略:

假设用A表示智能体在环境中所有动作的集合,那么$a_{t}$为t时刻下智能体的动作,那么我们用$π(a|s)=π(a_{t}=a|s_{t}=s)$,表示智能体所有动作的概率。利用这个概率分布进行采样,就可以得到智能体将采取的动作。

确定性策略:

我们可以对π(a|s)取极值,即可得到智能体最有可能(概率最大)的动作。

5.详细讲讲“价值函数“

前面说到,智能体会预测未来采用某一行为所能带来的奖励。

那么,这个过程用可用以下两种价值函数,其值反应在使用π策略所能获得到的奖励值表示:

只受当前状态s决定的价值函数:$V_{\pi}(s) = E_{\pi}({\sum_{k=0}^{\infty}}[y^{k}r_{t+k+1}|s_{t}=s]] )$,y为折扣因子。

同时受当前状态s和动作a决定的价值函数:$Q_{\pi}(s,a) = E_{\pi}({\sum_{k=0}^{\infty}}[y^{k}r_{t+k+1}|s_{t}=s,a_{t}=a)$,y为折扣因子。

6.强化学习之意义

1.强化学习的反馈粒度相比有监督微调粒度更大

有监督微调往往要求模型针对给定的输入给出确切的答案;而强化学习则是针对整个输出文本进行反馈。这就说明了强化学习更能允许模型给出不同的多样性表达。

有监督微调通常采用交叉熵损失,由于总和规则,造成个别词元只会对整体损失产生小的影响。 但是,一个否定词(个别词元)完全是可以改变文本的整体含义。

2.强化学习相比有监督微调,能解决幻觉问题

我们知道,大语言模型有三个问题:“”偏见,幻觉,过时”。

幻觉问题:当用户提出问题,需要模型根据自己的内在知识提供真实答案时,模型根据自己训练出的参数,给出了一些错误答案。

强化学习,通过使用强化学习方法。定制价值函数,将正确答案赋予非常高的分数,将放弃回答的答案赋予中低分数,将不正确的答案赋予非常高的负分,使得模型学会放弃回答,从而缓解幻觉问题。

3.强化学习可以更好的解决多轮对话问题。

评估多轮对话的质量,是很难用有监督学习方法进行构建的。而使用强化学习方法,定制价值函数,可以根据多轮对话的连贯性、上下文背景对模型的输出进行有效评估。

 

posted @ 2024-02-24 21:40  猫七的blog  阅读(5)  评论(0编辑  收藏  举报