【自然语言处理】【大模型】 ΨPO:一个理解人类偏好学习的统一理论框架

这篇具有很好参考价值的文章主要介绍了【自然语言处理】【大模型】 ΨPO:一个理解人类偏好学习的统一理论框架。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一个理解人类偏好学习的统一理论框架
《A General Theoretical Paradiam to Understand Learning from Human Preferences》

论文地址:https://arxiv.org/pdf/2310.12036.pdf

相关博客
【自然语言处理】【大模型】 ΨPO:一个理解人类偏好学习的统一理论框架
【强化学习】PPO:近端策略优化算法

一、简介

​ 通过强化学习来学习人类偏好(RLHF)主要依赖于两个重要的近似。第一个假设是成对的偏好可以被单个奖励值所替代;第二个假设是基于奖励值训练的奖励模型能够泛化到分布外的数据上。近期,DPO方法已经可以从收集的数据中直接学习策略,而不需要奖励建模阶段。然而,这个方法严重依赖于第一个假设。

​ 本文中,试图对这些实际中的算法进行更深入的理论理解。特别地,本文推导了一个新的通用目标函数 Ψ PO \Psi\text{PO} ΨPO来从人类偏好中学习,并且绕过了两个假设。这个新的目标函数可以对RLHF和DPO的行为进行更深入的分析。

二、符号

​ 给定上下文 x ∈ X x\in\mathcal{X} xX,其中 X \mathcal{X} X是有限的上下文空间,并假设 Y \mathcal{Y} Y是有限动作空间。策略 π ∈ Δ Y X \pi\in\Delta_{\mathcal{Y}}^{\mathcal{X}} πΔYX会为每个上下文 x ∈ X x\in\mathcal{X} xX关联一个离散概率分布 π ( ⋅ ∣ x ) ∈ Δ Y \pi(\cdot|x)\in\Delta_{\mathcal{Y}} π(x)ΔY,其中 Δ Y \Delta_{\mathcal{Y}} ΔY Y \mathcal{Y} Y上的离散分布集合。使用 μ ∈ Δ Y X \mu\in\Delta_{\mathcal{Y}}^{\mathcal{X}} μΔYX表示行为策略。对于给定的上下文 x x x y , y ′ ∼ μ ( x ) y,y'\sim\mu(x) y,yμ(x)是由行为策略独立生成的两个动作。这两个动作交由人类进行标注,标注结果表示为 y w ≻ y l y_w\succ y_l ywyl,其中 y w y_w yw y l y_l yl分别表示 { y , y ′ } \{y,y'\} {y,y}中的偏好样本和非偏好样本。 p ∗ ( y ≻ y ′ ∣ x ) p^*(y\succ y'|x) p(yyx)表示给定上下文 x x x的情况下,人类偏好 y y y优先于 y ′ y' y的概率。之所以将其表示为概率,是因为不确定性来自于偏好产生的人的选择。因此,
p ∗ ( y ≻ y ′ ∣ x ) = E h [ I { h prefers y to  y ′  give x } ] (1) p^*(y\succ y'|x)=\mathbb{E}_h[\mathbb{I}\{\text{h prefers y to }y'\text{ give x}\}] \tag{1} \\ p(yyx)=Eh[I{h prefers y to y give x}](1)
其是关于人的期望。此外,这里也引入一个已知 x x x,生成 y y y相较于分布 μ \mu μ的期望偏好,表示为 p ∗ ( y ≻   u ∣ x ) p^*(y\succ\,u|x) p(yux)
p ∗ ( y ≻ μ ∣ x ) = E y ′ ∼ μ ( ⋅ ∣ x ) [ p ∗ ( y ≻ y ′ ∣ x ) ] (2) p^*(y\succ\mu|x)=\mathbb{E}_{y'\sim\mu(\cdot|x)}[p^*(y\succ y'|x)] \tag{2} \\ p(yμx)=Eyμ(x)[p(yyx)](2)
对于任意的两个策略 π , μ ∈ Δ Y X \pi,\mu\in\Delta_{\mathcal{Y}}^{\mathcal{X}} π,μΔYX以及上下文分布 ρ \rho ρ,那么策略 π \pi π对于 μ \mu μ的总偏好为
p ρ ∗ ( π ≻ μ ) = E x ∼ ρ , y ∼ π ( ⋅ ∣ x ) [ p ∗ ( y ≻ μ ∣ x ) ] (3) p^*_{\rho}(\pi\succ\mu)=\mathop{\mathbb{E}}_{x\sim\rho,y\sim\pi(\cdot|x)}[p^*(y\succ\mu|x)] \tag{3}\\ pρ(πμ)=Exρ,yπ(x)[p(yμx)](3)
实际中,无法直接观测到 p ∗ p^* p,仅能从具有均值 p ∗ ( y ≻ y ′ ∣ x ) p^*(y\succ y'|x) p(yyx)的伯努利分布从采样 I ( y , y ′ ∣ x ) I(y,y'|x) I(y,yx)。特别地,假设可以通过数据集 D = ( x i , y i , y i ′ ) i = 1 N = ( x i , y w , i ≻ y l , i ) i = 1 N \mathcal{D}=(x_i,y_i,y_i')_{i=1}^N=(x_i,y_{w,i}\succ y_{l,i})_{i=1}^N D=(xi,yi,yi)i=1N=(xi,yw,iyl,i)i=1N来访问偏好,其中 N N N是数据集的尺寸。此外,对于一个一般性的有限集合 S \mathcal{S} S,一个离散概率分布 η ∈ Δ S \eta\in\Delta_{\mathcal{S}} ηΔS和一个实值函数 f ∈ R S f\in\mathbb{R}^{\mathcal{S}} fRS,那么 f f f η \eta η下的期望表示为 E s ∼ η [ f ( s ) ] = ∑ s ∈ S f ( s ) η ( s ) \mathbb{E}_{s\sim\eta}[f(s)]=\sum_{s\in\mathcal{S}}f(s)\eta(s) Esη[f(s)]=sSf(s)η(s)。对于一个有限数据集 D = ( s i ) i = 1 N \mathcal{D}=(s_i)_{i=1}^N D=(si)i=1N,每个 s i ∈ S s_i\in\mathcal{S} siS且有一个实值函数 f ∈ R S f\in\mathbb{R}^{\mathcal{S}} fRS,那么 f f f D \mathcal{D} D下的经验期望为 E s ∼ D [ f ( s ) ] = 1 N ∑ i = 1 N f ( s i ) \mathbb{E}_{s\sim\mathcal{D}}[f(s)]=\frac{1}{N}\sum_{i=1}^N f(s_i) EsD[f(s)]=N1i=1Nf(si)

三、背景知识

1. RLHF

​ 标准RLHF范式有两个阶段:(1) 学习奖励模型;(2) 基于学习到的奖励来优化策略。

学习奖励模型。奖励模型的学习是通过训练一个区分偏好和非偏好的二分类模型,通常使用Bradley-Terry模型来构建分类模型。给定上下文 x x x,动作 y y y的奖励表示为 r ( x , y ) r(x,y) r(x,y)。Bradley-Terry模型通过对两个奖励进行sigmoid变换来表示偏好函数 p ( y ≻ y ′ ∣ x ) p(y\succ y'|x) p(yyx)
p ( y ≻ y ′ ∣ x ) = σ ( r ( x , y ) − r ( x , y ′ ) ) (4) p(y\succ y'|x)=\sigma(r(x,y)-r(x,y')) \tag{4}\\ p(yyx)=σ(r(x,y)r(x,y))(4)
其中 σ ( ⋅ ) \sigma(\cdot) σ()是sigmoid函数。给定数据集 D = ( x i , y w , i ≻ y l , i ) i = 1 N \mathcal{D}=(x_i,y_{w,i}\succ y_{l,i})_{i=1}^N D=(xi,yw,iyl,i)i=1N,可以通过优化下面的损失函数来学习奖励函数
L ( r ) = − E ( x , y w , y l ) ∼ D [ log ⁡ ( p ( y w ≻ y l ∣ x ) ) ] (5) \mathcal{L}(r)=-\mathbb{E}_{(x,y_w,y_l)\sim\mathcal{D}}\Big[\log(p(y_w\succ y_l|x))\Big] \tag{5}\\ L(r)=E(x,yw,yl)D[log(p(ywylx))](5)
优化策略。基于奖励函数 r ( x , y ) r(x,y) r(x,y),RLHF的目标就是通过优化策略 π ∈ Δ Y X \pi\in\Delta_{\mathcal{Y}}^{\mathcal{X}} πΔYX来最大化期望奖励,同时通过KL散度来最小化 π \pi π和reference策略 π ref ∈ Δ Y X \pi_{\text{ref}}\in\Delta_{\mathcal{Y}}^{\mathcal{X}} πrefΔYX
J ( π ) = E π [ r ( x , y ) ] − τ D KL ( π ∥ π ref ) (6) J(\pi)=\mathbb{E}_{\pi}[r(x,y)]-\tau D_{\text{KL}}(\pi\parallel\pi_{\text{ref}}) \tag{6}\\ J(π)=Eπ[r(x,y)]τDKL(ππref)(6)
其中上下文 x x x是从 ρ \rho ρ中采样的,动作 y y y是从策略 π ( ⋅ ∣ x ) \pi(\cdot|x) π(x)采样的。散度 D KL ( π ∥ π ref ) D_{\text{KL}}(\pi\parallel\pi_{\text{ref}}) DKL(ππref)定义为
D KL ( π ∥ π ref ) = E x ∼ ρ [ KL ( π ( ⋅ ∣ x ) ∥ π ref ( ⋅ ∣ x ) ) ] (7) D_{\text{KL}}(\pi\parallel\pi_{\text{ref}})=\mathbb{E}_{x\sim\rho}[\text{KL}(\pi(\cdot|x)\parallel\pi_{\text{ref}}(\cdot|x))] \tag{7}\\ DKL(ππref)=Exρ[KL(π(x)πref(x))](7)
其中
KL ( π ( ⋅ ∣ x ) ∥ π ref ( ⋅ ∣ x ) ) = E y ∼ π ( ⋅ ∣ x ) [ log ⁡ ( π ( y ∣ x ) π ref ( y ∣ x ) ) ] (8) \text{KL}(\pi(\cdot|x)\parallel\pi_{\text{ref}}(\cdot|x))=\mathbb{E}_{y\sim\pi(\cdot|x)}\Big[\log\Big(\frac{\pi(y|x)}{\pi_{\text{ref}}(y|x)}\Big)\Big] \tag{8}\\ KL(π(x)πref(x))=Eyπ(x)[log(πref(yx)π(yx))](8)
公式(6)的目标函数可以通过PPO来优化。RLHF+PPO在实际中取得了很好的效果。

2. DPO

​ 一个可以替代上述RL范式的方法是直接偏好优化(DPO),其能避免训练reward模型。DPO的损失函数为
min ⁡ π E ( x , y w , y l ) ∼ D [ − log ⁡ σ ( τ log ⁡ ( π ( y w ∣ x ) π ( y l ∣ x ) ) − τ log ⁡ ( π ref ( y w ∣ x ) π ref ( y l ∣ x ) ) ) ] (9) \min_{\pi}\mathbb{E}_{(x,y_w,y_l)\sim\mathcal{D}}\Big[-\log\sigma\Big(\tau\log(\frac{\pi(y_w|x)}{\pi(y_l|x)})-\tau\log(\frac{\pi_{\text{ref}}(y_w|x)}{\pi_{\text{ref}}(y_l|x)})\Big)\Big] \tag{9}\\ πminE(x,yw,yl)D[logσ(τlog(π(ylx)π(ywx))τlog(πref(ylx)πref(ywx)))](9)
上述损失函数也可以写作
min ⁡ π E x ∼ ρ ; y , y ′ ∼ μ [ − p ∗ ( y ≻ y ′ ∣ x ) log ⁡ σ ( τ log ⁡ ( π ( y ∣ x ) π ( y ′ ∣ x ) ) − τ log ⁡ ( π ref ( y ∣ x ) π ref ( y ′ ∣ x ) ) ) ] (10) \min_{\pi}\mathop{\mathbb{E}}_{x\sim\rho;y,y'\sim\mu}\Big[-p^*(y\succ y'|x)\log\sigma\Big(\tau\log(\frac{\pi(y|x)}{\pi(y'|x)})-\tau\log(\frac{\pi_{\text{ref}}(y|x)}{\pi_{\text{ref}}(y'|x)})\Big)\Big] \tag{10}\\ πminExρ;y,yμ[p(yyx)logσ(τlog(π(yx)π(yx))τlog(πref(yx)πref(yx)))](10)

四、偏好优化的统一目标

​ 本文基于最大化偏好的非线性函数构建了一个RLHF的统一目标函数。设 Ψ : [ 0 , 1 ] → R \Psi:[0,1]\rightarrow\mathbb{R} Ψ:[0,1]R是一个非递减函数,reference策略为 π ref ∈ Δ Y X \pi_{\text{ref}}\in\Delta_{\mathcal{Y}}^{\mathcal{X}} πrefΔYX τ ∈ R + ∗ \tau\in\mathbb{R}_+^* τR+是用于正则化的正实数,那么定义 Ψ \Psi Ψ偏好优化目标函数( Ψ -preference optimisation objective , Ψ PO \Psi\text{-preference optimisation objective},\Psi\text{PO} Ψ-preference optimisation objective,ΨPO)为
max ⁡ π E x ∼ ρ y ∼ π ( ⋅ ∣ x ) y ′ ∼ μ ( ⋅ ∣ x ) [ Ψ ( p ∗ ( y ≻ y ′ ∣ x ) ) ] − τ D KL ( π ∥ π ref ) (11) \max_{\pi}\mathop{\mathbb{E}}_{\substack{x\sim\rho\\y\sim\pi(\cdot|x)\\y'\sim\mu(\cdot|x)}}[\Psi(p^*(y\succ y'|x))]-\tau D_{\text{KL}}(\pi\parallel\pi_{\text{ref}}) \tag{11} \\ πmaxExρyπ(x)yμ(x)[Ψ(p(yyx))]τDKL(ππref)(11)
该目标函数在最大化偏好概率的非线性函数的同时,使用KL散度来鼓励策略接近 π ref \pi_{\text{ref}} πref。该目标函数受公式(6)启发,下面的章节会展示其能够推广至RLHF和DPO。

1. DPO和RLHF的深入分析

​ 为了符号简单,忽略依赖 x x x。使用公式(11)的 Ψ \Psi Ψ偏好目标函数来链接DPO和RLHF。下述命题建立了这种联系

命题1。假设 Ψ ( q ) = log ⁡ ( q / ( 1 − q ) ) \Psi(q)=\log(q/(1-q)) Ψ(q)=log(q/(1q))。当Bradley-Terry模型对 p ∗ p^* p成立,那么就存在 r : Y → R r:\mathcal{Y}\rightarrow\mathbb{R} r:YR使得
p ∗ ( y ≻ y ′ ) = σ ( r ( y ) − r ( y ′ ) ) (12) p^*(y\succ y')=\sigma(r(y)-r(y'))\tag{12}\\ p(yy)=σ(r(y)r(y))(12)
那么公式(11)的最优策略,公式(6)中RLHF目标函数的最优策略以及公式(10)中DPO目标函数的最优策略是相同的。

证明。在Bradley-Terry模型成立的假设下,有
E y ′ ∼ μ [ Ψ ( p ∗ ( y ≻ y ′ ) ) ] = E y ′ ∼ μ [ Ψ ( e r ( y ) e r ( y ) + e r ( y ′ ) ) ] = E y ′ ∼ μ [ log ⁡ ( e r ( y ) / e r ( y ′ ) ) ] = E y ′ ∼ μ [ r ( y ) − r ( y ′ ) ] = r ( y ) − E y ′ ∼ μ [ r ( y ′ ) ] (13) \begin{align} \mathop{\mathbb{E}}_{y'\sim\mu}[\Psi(p^*(y\succ y'))]&=\mathop{\mathbb{E}}_{y'\sim\mu}\Big[\Psi\Big(\frac{e^{r(y)}}{e^{r(y)}+e^{r(y')}}\Big)\Big] \\ &=\mathop{\mathbb{E}}_{y'\sim\mu}[\log(e^{r(y)}/e^{r(y')})] \\ &=\mathop{\mathbb{E}}_{y'\sim\mu}[r(y)-r(y')] \\ &=r(y)-\mathop{\mathbb{E}}_{y'\sim\mu}[r(y')] \\ \end{align} \tag{13}\\ Eyμ[Ψ(p(yy))]=Eyμ[Ψ(er(y)+er(y)er(y))]=Eyμ[log(er(y)/er(y))]=Eyμ[r(y)r(y)]=r(y)Eyμ[r(y)](13)
这相当于(6)的奖励上添加一个常数。因此,公式(6)的最优策略和公式(11)的最优策略相同 。此外,在DPO的论文中已经证明了公式(6)和公式(10)具有相同的最优策略。

​ 将该命题应用在公式(11)的目标函数,在BT假设下DPO和RLHF的封闭解可以写作
π ∗ ( y ) ∝ π ref ( y ) exp ⁡ ( τ − 1 E y ′ ∼ μ [ Ψ ( p ∗ ( y ≻ y ′ ) ) ] ) (14) \pi^*(y)\propto\pi_{\text{ref}}(y)\exp\Big(\tau^{-1}\mathbb{E}_{y'\sim\mu}[\Psi(p^*(y\succ y'))]\Big) \tag{14}\\ π(y)πref(y)exp(τ1Eyμ[Ψ(p(yy))])(14)

2. 弱正则和过拟合

​ 偏好概率的高度非线性变换意味着偏好概率接近于1的小改进和偏好概率接近50%的大改进具有相同的激励作用。

​ 考虑一个简单的例子,两个动作 y y y y ′ y' y满足 p ∗ ( y ≻ y ′ ) = 1 p^*(y\succ y')=1 p(yy)=1,即相比 y ′ y' y总是偏好 y y y。Bradley-Terry模型需要 ( r ( y ) − r ( y ′ ) ) → ∞ (r(y)-r(y'))\rightarrow\infty (r(y)r(y))来满足公式(4)。若将其插入至最优策略(14)中,无论 τ \tau τ取值为何都有
π ∗ ( y ′ ) π ∗ ( y ) = π ref ( y ′ ) π ref ( y ) exp ⁡ ( τ − 1 E y ′ ∼ μ [ Ψ ( p ∗ ( y ′ ≻ y ′ ) ) − Ψ ( p ∗ ( y ≻ y ′ ) ) ] ) = π ref ( y ′ ) π ref ( y ) exp ⁡ ( τ − 1 E y ′ ∼ μ [ r ( y ′ ) − r ( y ) ] ) = 0 (15) \begin{align} \frac{\pi^*(y')}{\pi^*(y)}&=\frac{\pi_{\text{ref}}(y')}{\pi_{\text{ref}}(y)}\exp\Big(\tau^{-1}\mathbb{E}_{y'\sim\mu}[\Psi(p^*(y'\succ y'))-\Psi(p^*(y\succ y'))]\Big) \\ &=\frac{\pi_{\text{ref}}(y')}{\pi_{\text{ref}}(y)}\exp(\tau^{-1}\mathbb{E}_{y'\sim\mu}[r(y')-r(y)])=0 \end{align}\tag{15} \\ π(y)π(y)=πref(y)πref(y)exp(τ1Eyμ[Ψ(p(yy))Ψ(p(yy))])=πref(y)πref(y)exp(τ1Eyμ[r(y)r(y)])=0(15)
π ref ( y ′ ) = 0 \pi_{\text{ref}}(y')=0 πref(y)=0。因此,当偏好越确定则KL正则化的效果也就越弱。

​ KL正则化的这种弱点在有效数据中会更加明显,因为仅能够获得偏好的样本估计 p ^ ( y ≻ y ′ ) \hat{p}(y\succ y') p^(yy)。例如,即使真实的偏好时 p ∗ ( y ≻ y ′ ) = 0.8 p^*(y\succ y')=0.8 p(yy)=0.8,但仅通过少量数据估计则很可能有 p ^ ( y ≻ y ′ ) = 1 \hat{p}(y\succ y')=1 p^(yy)=1。这种情况下,对于任意的 τ \tau τ,经验最优策略将会有 π ( y ′ ) = 0 \pi(y')=0 π(y)=0。这也意味着模型很可能会过拟合。

​ *为什么标准的RLHF对这个问题更加鲁棒呢?*DPO虽然能够避免拟合奖励函数,但是在真实实践中,当经验偏好的概率位于集合 { 0 , 1 } \{0,1\} {0,1}中,奖励函数通常是欠拟合的。位于 { 0 , 1 } \{0,1\} {0,1}的偏好概率的最优奖励是无限的,但是可以避免取到这些值。奖励函数的欠拟合对于获得最终策略至关重要,DPO虽然避免了奖励函数的训练,但也损失了欠拟合奖励函数带来的策略正则化。

五、IPO:基于恒等映射的 Ψ PO \Psi\text{PO} ΨPO

​ DPO虽然能够避免奖励函数的训练,但是容易过拟合。基于对DPO的分析,需要确保公式(11)中的KL正则化在偏好为 { 0 , 1 } \{0,1\} {0,1}的情况下仍然有效。因此,考虑公式(11)中的 Ψ \Psi Ψ为恒等映射,那么就能直接正则化总偏好:
max ⁡ π p ρ ∗ ( π ≻ μ ) − τ D KL ( π ∥ π ref ) (16) \max_{\pi}p^*_{\rho}(\pi\succ\mu)-\tau D_{\text{KL}}(\pi\parallel\pi_{\text{ref}}) \tag{16}\\ πmaxpρ(πμ)τDKL(ππref)(16)
优化公式(14)的标准方法是RLFH,但是使用强化学习并估计奖励模型的成本高昂。受DPO启发,能够为公式(16)求解一个经验解来避免强化学习和奖励模型。

1. 推导

寻根问题。令 g ( y ) = E y ′ ∼ μ [ Ψ ( p ∗ ( y ≻ y ′ ) ) ] g(y)=\mathbb{E}_{y'\sim\mu}[\Psi(p^*(y\succ y'))] g(y)=Eyμ[Ψ(p(yy))],然后有
π ∗ ( y ) ∝ π ref ( y ) exp ⁡ ( τ − 1 g ( y ) ) (17) \pi^*(y)\propto\pi_{\text{ref}}(y)\exp(\tau^{-1}g(y)) \tag{17}\\ π(y)πref(y)exp(τ1g(y))(17)
对于任意 y , y ′ ∈ Supp ( π ref ) y,y'\in\text{Supp}(\pi_{\text{ref}}) y,ySupp(πref),我们有
π ∗ ( y ) π ∗ ( y ′ ) = π ref ( y ) π ref ( y ′ ) exp ⁡ ( τ − 1 ( g ( y ) − g ( y ′ ) ) ) (18) \frac{\pi^*(y)}{\pi^*(y')}=\frac{\pi_{\text{ref}}(y)}{\pi_{\text{ref}}(y')}\exp\Big(\tau^{-1}(g(y)-g(y'))\Big) \tag{18}\\ π(y)π(y)=πref(y)πref(y)exp(τ1(g(y)g(y)))(18)

h ∗ ( y , y ′ ) = log ⁡ ( π ∗ ( y ) π ref ( y ′ ) π ∗ ( y ′ ) π ref ( y ) ) (19) h^*(y,y')=\log\Big(\frac{\pi^*(y)\pi_{\text{ref}}(y')}{\pi^*(y')\pi_{\text{ref}}(y)}\Big)\tag{19} \\ h(y,y)=log(π(y)πref(y)π(y)πref(y))(19)
那么公式(18)可以重排为
h ∗ ( y , y ′ ) = τ − 1 ( g ( y ) − g ( y ′ ) ) (20) h^*(y,y')=\tau^{-1}(g(y)-g(y'))\tag{20} \\ h(y,y)=τ1(g(y)g(y))(20)
那么对于策略 π \pi π,定义有
h π ( y , y ′ ) = log ⁡ ( π ( y ) π ref ( y ′ ) π ( y ′ ) π ref ( y ) ) (21) h_{\pi}(y,y')=\log\Big(\frac{\pi(y)\pi_{\text{ref}}(y')}{\pi(y')\pi_{\text{ref}}(y)}\Big)\tag{21} \\ hπ(y,y)=log(π(y)πref(y)π(y)πref(y))(21)
而目标是求解等式
h π ( y , y ′ ) = τ − 1 ( g ( y ) − g ( y ′ ) ) (22) h_{\pi}(y,y')=\tau^{-1}(g(y)-g(y'))\tag{22} \\ hπ(y,y)=τ1(g(y)g(y))(22)
Ψ \Psi Ψ为恒等函数,公式(22)为
h π ( y , y ′ ) = τ − 1 ( p ∗ ( y ≻ μ ) − p ∗ ( y ′ ≻ μ ) ) (23) h_{\pi}(y,y')=\tau^{-1}\Big(p^*(y\succ\mu)-p^*(y'\succ\mu)\Big)\tag{23}\\ hπ(y,y)=τ1(p(yμ)p(yμ))(23)
寻找问题可以表达为单个最优化问题 L ( π ) L(\pi) L(π)
L ( π ) = E y , y ′ ∼ μ [ ( h π ( y , y ′ ) − p ∗ ( y ≻ μ ) − p ∗ ( y ′ ≻ μ ) τ ) 2 ] (24) L(\pi)=\mathop{\mathbb{E}}_{y,y'\sim\mu}\Big[\Big(h_{\pi}(y,y')-\frac{p^*(y\succ\mu)-p^*(y'\succ\mu)}{\tau}\Big)^2\Big]\tag{24} \\ L(π)=Ey,yμ[(hπ(y,y)τp(yμ)p(yμ))2](24)
显然, L ( π ∗ ) = 0 L(\pi^*)=0 L(π)=0,即 π ∗ \pi^* π L ( π ) L(\pi) L(π)的全局最小值。

定理2. 假设 Supp ( μ ) = Supp ( π ref ) \text{Supp}(\mu)=\text{Supp}(\pi_{\text{ref}}) Supp(μ)=Supp(πref),并定义 Π \Pi Π为满足 Supp ( π ) = Supp ( μ ) \text{Supp}(\pi)=\text{Supp}(\mu) Supp(π)=Supp(μ)的策略 π \pi π的集合。那么 π → L ( π ) \pi\rightarrow L(\pi) πL(π)在集合 Π \Pi Π上有唯一的局部/全局最小值 π ∗ \pi^* π

证明。根据假设 π ∗ ∈ Π \pi^*\in\Pi πΠ以及定义 ∀ π ∈ Π \forall\pi\in\Pi πΠ,以及由于 L ( π ) L(\pi) L(π)是平方项的期望,所以 L ( π ) ≥ 0 L(\pi)\geq 0 L(π)0。根据公式(20)可知 L ( π ∗ ) = 0 L(\pi^*)=0 L(π)=0,因此可以推断出 π ∗ \pi^* π L L L的全局最优值。下面将展示 L L L Π \Pi Π中没有其他局部/全局最小值。

​ 记 J = Supp ( μ ) J=\text{Supp}(\mu) J=Supp(μ)。通过logits 向量 s ∈ R J s\in\mathbb{R}^{J} sRJ来参数化集合 Π \Pi Π,对于 y ∈ J y\in J yJ π s ( y ) = exp ⁡ ( s ( y ) ) / ∑ y ′ ∈ J exp ⁡ ( s ( y ′ ) ) \pi_s(y)=\exp(s(y))/\sum_{y'\in J}\exp(s(y')) πs(y)=exp(s(y))/yJexp(s(y)),否则 π s ( y ) = 0 \pi_s(y)=0 πs(y)=0。令 L ( s ) = L ( π s ) \mathcal{L}(s)=L(\pi_s) L(s)=L(πs)是logits s s s的目标函数。
L ( s ) = E y , y ′ ∼ μ [ [ p ∗ ( y ≻ μ ) − p ∗ ( y ′ ≻ μ ) τ − ( s ( y ) − s ( y ′ ) ) − log ⁡ ( π ref ( y ′ ) π ref ( y ) ) ] 2 ] (25) \mathcal{L}(s)=\mathbb{E}_{y,y'\sim\mu}\Big[\Big[ \frac{p^*(y\succ\mu)-p^*(y'\succ\mu)}{\tau}-(s(y)-s(y'))-\log\Big(\frac{\pi_{\text{ref}}(y')}{\pi_{\text{ref}}(y)}\Big) \Big]^2\Big]\tag{25} \\ L(s)=Ey,yμ[[τp(yμ)p(yμ)(s(y)s(y))log(πref(y)πref(y))]2](25)
目标函数是logits s s s的二次函数。此外,通过展开上面的二次函数,损失值可以表达为平方项之和
∑ y , y ′ ∈ J μ ( y ) μ ( y ′ ) ( s ( y ) − s ( y ′ ) ) 2 (26) \sum_{y,y'\in J}\mu(y)\mu(y')(s(y)-s(y'))^2\tag{26} \\ y,yJμ(y)μ(y)(s(y)s(y))2(26)
因此这是一个半正定二次函数,因此是凸的。因此可以推断出损失函数 L ( s ) \mathcal{L}(s) L(s)的所有局部最小值即为全局最小值。 π s \pi_s πs是从 s s s π \pi π的满连续映射,可以很容易的证明 L L L的每个局部最小值 π \pi π都对于于 L \mathcal{L} L的局部最小值 S π \mathcal{S}_{\pi} Sπ。因此, L L L的所有局部最小值都是全局最小值。

2. IPO的采样损失

​ 为了能够获得IPO的采样损失值,需要对公式(24)右侧进行无偏估计。为了这个目标,考虑Population IPO Loss
E y , y ′ ∼ μ [ ( h π ( y , y ′ ) − τ − 1 I ( y , y ′ ) ) 2 ] (27) \mathbb{E}_{y,y'\sim\mu}\Big[(h_{\pi}(y,y')-\tau^{-1}I(y,y'))^2\Big]\tag{27} \\ Ey,yμ[(hπ(y,y)τ1I(y,y))2](27)
其中 I ( y , y ′ ) I(y,y') I(y,y)是从均值为 p ∗ ( y ≻ y ′ ) p^*(y\succ y') p(yy)的伯努利分布中采样的,即相比于 y ′ y' y更偏好 y y y I ( y , y ′ ) I(y,y') I(y,y)为1,否则为0。这样就能直接获得一个可用的基于采样的损失值,通过从偏好数据集中采样 ( y , y ′ ) (y,y') (y,y)并查询记录来获得 I ( y , y ′ ) I(y,y') I(y,y)。下面的命题将证明公式(24)到公式(27)的变换是等价的。

命题3。公式(24)与公式(27)是等价的。

证明。这个等价并不是很显然的,因为通常情况下的条件期望为
E [ h π ( Y , Y ′ ) − τ − 1 I ( Y , Y ′ ) ∣ Y = y , Y ′ = y ′ ] \mathbb{E}[h_{\pi}(Y,Y')-\tau^{-1}I(Y,Y')|Y=y,Y'=y'] \\ E[hπ(Y,Y)τ1I(Y,Y)Y=y,Y=y]
并不等于公式(24)对应的值,即
h π ( y , y ′ ) − τ − 1 ( p ∗ ( y ≻ μ ) − p ∗ ( y ′ ≻ μ ) ) h_{\pi}(y,y')-\tau^{-1}(p^*(y\succ\mu)-p^*(y'\succ\mu)) \\ hπ(y,y)τ1(p(yμ)p(yμ))
相反,我们需要利用分布 y y y y ′ y' y的一些对称性,并使用 h π ( y , y ′ ) h_{\pi}(y,y') hπ(y,y)能够分解为 y y y y ′ y' y的加性函数的事实。为了说明损失值的相等性,仅关注公式(24)和(27)中交叉项就足够了,也就是满足
E y , y ′ ∼ μ [ h π ( y , y ′ ) I ( y , y ′ ) ] = E y , y ′ ∼ μ [ h π ( y , y ′ ) ( p ∗ ( y ≻ μ ) − p ∗ ( y ′ ≻ μ ) ) ] \begin{align} \mathbb{E}_{y,y'\sim\mu}\Big[h_{\pi}(y,y')I(y,y')\Big] =\mathbb{E}_{y,y'\sim\mu}\Big[h_{\pi}(y,y')(p^*(y\succ\mu)-p^*(y'\succ\mu))\Big] \end{align} \\ Ey,yμ[hπ(y,y)I(y,y)]=Ey,yμ[hπ(y,y)(p(yμ)p(yμ))]
为了简洁使用 π y = log ⁡ ( π ( y ) ) , π y R = log ⁡ ( π ref ( y ) ) , p y = p ∗ ( y ≻ μ ) \pi_y=\log(\pi(y)),\pi_y^R=\log(\pi_{\text{ref}}(y)),p_y=p^*(y\succ\mu) πy=log(π(y)),πyR=log(πref(y)),py=p(yμ),右侧有
E y , y ′ ∼ μ [ h π ( y , y ′ ) ( p ∗ ( y ≻ μ ) − p ∗ ( y ′ ≻ μ ) ) ] = E y , y ′ ∼ μ [ ( π y − π y ′ + π y ′ R − π y R ) ( p y − p y ′ ) ] = E y , y ′ ∼ μ [ π y p y − π y p y ′ − π y ′ p y + π y ′ + p y ′ + π y ′ R p y − π y ′ R p y ′ − π y R p y + π y R p y ′ ] = E y , y ′ ∼ μ [ ( 2 p y − 1 ) π y − ( 2 p y − 1 ) π y R ] \begin{align} &\mathbb{E}_{y,y'\sim\mu}\Big[h_{\pi}(y,y')(p^*(y\succ\mu)-p^*(y'\succ\mu))\Big] \\ =&\mathbb{E}_{y,y'\sim\mu}\Big[(\pi_y-\pi_{y'}+\pi_{y'}^R-\pi_{y}^R)(p_y-p_{y'})\Big] \\ =&\mathbb{E}_{y,y'\sim\mu}\Big[\pi_y p_y-\pi_y p_{y'}-\pi_{y'} p_y+\pi_{y'}+p_{y'}+\pi_{y'}^R p_y-\pi_{y'}^R p_{y'}-\pi_{y}^R p_y+\pi_{y}^R p_{y'}\Big] \\ =&\mathbb{E}_{y,y'\sim\mu}\Big[(2p_y-1)\pi_{y}-(2p_y-1)\pi_{y}^R\Big] \end{align} \\ ===Ey,yμ[hπ(y,y)(p(yμ)p(yμ))]Ey,yμ[(πyπy+πyRπyR)(pypy)]Ey,yμ[πypyπypyπypy+πy+py+πyRpyπyRpyπyRpy+πyRpy]Ey,yμ[(2py1)πy(2py1)πyR]
其中使用了 y y y y ′ y' y的独立同分布且 E y ∼ μ [ p y ] = 1 / 2 E_{y\sim\mu}[p_y]=1/2 Eyμ[py]=1/2。左侧有
E y , y ′ ∼ μ [ h π ( y , y ′ ) I ( y , y ′ ) ] = E y , y ′ ∼ μ [ ( π y − π y ′ + π y ′ R − π y R ) I ( y , y ′ ) ] = E y ∼ μ [ ( π y − π y R ) E y ′ ∼ μ [ I ( y , y ′ ) ∣ y ] ] + E y ′ ∼ μ [ ( − π y ′ + π y ′ R E y ∼ μ [ I ( y , y ′ ) ∣ y ′ ] ) ] = E y , y ′ ∼ μ [ π y p y − π y ′ ( 1 − p y ′ ) + π y ′ R ( 1 − p y ′ ) − π y R p y ] = E y , y ′ ∼ μ [ ( 2 p y − 1 ) π y − ( 2 p y − 1 ) π y R ] \begin{align} &\mathbb{E}_{y,y'\sim\mu}\Big[h_{\pi}(y,y')I(y,y')\Big]\\ =&\mathbb{E}_{y,y'\sim\mu}\Big[(\pi_y-\pi_{y'}+\pi_{y'}^R-\pi_y^R)I(y,y')\Big] \\ =&\mathbb{E}_{y\sim\mu}\Big[(\pi_y-\pi_y^R)\mathbb{E}_{y'\sim\mu}[I(y,y')|y]\Big]+\mathbb{E}_{y'\sim\mu}\Big[(-\pi_{y'}+\pi_{y'}^R\mathbb{E}_{y\sim\mu}[I(y,y')|y'])\Big] \\ =&\mathbb{E}_{y,y'\sim\mu}\Big[\pi_y p_y-\pi_{y'}(1-p_{y'})+\pi_{y'}^R(1-p_{y'})-\pi_y^R p_y\Big] \\ =&\mathbb{E}_{y,y'\sim\mu}\Big[(2p_y-1)\pi_y-(2p_y-1)\pi_{y}^R\Big] \end{align} \\ ====Ey,yμ[hπ(y,y)I(y,y)]Ey,yμ[(πyπy+πyRπyR)I(y,y)]Eyμ[(πyπyR)Eyμ[I(y,y)y]]+Eyμ[(πy+πyREyμ[I(y,y)y])]Ey,yμ[πypyπy(1py)+πyR(1py)πyRpy]Ey,yμ[(2py1)πy(2py1)πyR]
其中使用了 E y ′ ∼ μ I ( y , y ′ ) = p y \mathbb{E}_{y'\sim\mu}I(y,y')=p_y EyμI(y,y)=py E y ∼ μ I ( y , y ′ ) = 1 − p y ′ \mathbb{E}_{y\sim\mu}I(y,y')=1-p_{y'} EyμI(y,y)=1py。这样就证明了两个损失值的相等性。

​ 接下来讨论如何使用数据集来近似等式(27)的损失值。数据集 D \mathcal{D} D的形式为 ( y w , i , y l , i ) i = 1 N (y_{w,i},y_{l,i})_{i=1}^N (yw,i,yl,i)i=1N。每个数据点 ( y w , i , y l , i ) (y_{w,i},y_{l,i}) (yw,i,yl,i)都能为等式(27)贡献两项经验近似,即 ( y , y ′ , I ( y , y ′ ) ) = ( y w , i , y l , i , 1 ) (y,y',I(y,y'))=(y_{w,i},y_{l,i},1) (y,y,I(y,y))=(yw,i,yl,i,1) ( y , y ′ , I ( y , y ′ ) ) = ( y l , i , y w , i , 0 ) (y,y',I(y,y'))=(y_{l,i},y_{w,i},0) (y,y,I(y,y))=(yl,i,yw,i,0)。利用这种对称性是很重要的,因为其可以降低损失值的方差。总体的经验损失为
1 2 E y w , y l ∼ D [ ( h π ( y w , y l ) − τ − 1 ) 2 + h π ( y l , y w ) 2 ] = 1 2 E y w , y l ∼ D [ ( h π ( y w , y l ) − τ − 1 ) 2 + h π ( y w , y l ) 2 ] \begin{align} &\frac{1}{2}\mathbb{E}_{y_w,y_l\sim D}\Big[(h_{\pi}(y_w,y_l)-\tau^{-1})^2+h_{\pi}(y_l,y_w)^2\Big] \\ =&\frac{1}{2}\mathbb{E}_{y_w,y_l\sim D}\Big[(h_{\pi}(y_w,y_l)-\tau^{-1})^2+h_{\pi}(y_w,y_l)^2\Big] \end{align} \\ =21Eyw,ylD[(hπ(yw,yl)τ1)2+hπ(yl,yw)2]21Eyw,ylD[(hπ(yw,yl)τ1)2+hπ(yw,yl)2]
其等于
E y w , y l ∼ D [ ( h π ( y w , y l ) − τ − 1 2 ) 2 ] (28) \mathbb{E}_{y_w,y_l\sim D}\Big[\Big(h_{\pi}(y_w,y_l)-\frac{\tau^{-1}}{2}\Big)^2\Big] \tag{28}\\ Eyw,ylD[(hπ(yw,yl)2τ1)2](28)
这种损失函数的简化形式能够为IPO优化策略 π \pi π提供一些有价值的洞见:IPO通过回归对数似然 log ⁡ ( π ( y w ) / π ( y l ) ) \log(\pi(y_w)/\pi(y_l)) log(π(yw)/π(yl)) log ⁡ ( π ref ( y w ) / π ref ( y l ) ) \log(\pi_{\text{ref}}(y_w)/\pi_{\text{ref}}(y_l)) log(πref(yw)/πref(yl))之间的差距至 τ − 1 2 \frac{\tau^{-1}}{2} 2τ1来从偏好数据集中学习。所以当正则化越弱,则 y w y_w yw y l y_l yl的对数似然率也越高。不同于DPO,IPO通过控制 log ⁡ ( π ( y w ) / π ( y l ) ) \log(\pi(y_w)/\pi(y_l)) log(π(yw)/π(yl)) log ⁡ ( π ref ( y w ) / π ref ( y l ) ) \log(\pi_{\text{ref}}(y_w)/\pi_{\text{ref}}(y_l)) log(πref(yw)/πref(yl))之间的差距来正则化,从而避免了偏好数据集的过拟合。

​ 完整的IPO算法为

数据集 D = ( y w , i , y l , i ) i = 1 N \mathcal{D}=(y_{w,i},y_{l,i})_{i=1}^N D=(yw,i,yl,i)i=1N;reference策略 π ref \pi_{\text{ref}} πref

  1. 定义
    h π ( y , y ′ , x ) = log ⁡ ( π ( y ∣ x ) π ref ( y ′ ∣ x ) π ( y ′ ∣ x ) π ref ( y ∣ x ) ) h_{\pi}(y,y',x)=\log\Big(\frac{\pi(y|x)\pi_{\text{ref}}(y'|x)}{\pi(y'|x)\pi_{\text{ref}}(y|x)}\Big) \\ hπ(y,y,x)=log(π(yx)πref(yx)π(yx)πref(yx))

  2. 开始于 π = π ref \pi=\pi_{\text{ref}} π=πref,最小化
    E y w , y l , x ∼ D ( h π ( y w , y l , x ) − τ − 1 2 ) 2 \mathbb{E}_{y_w,y_l,x\sim D}\Big(h_{\pi}(y_w,y_l,x)-\frac{\tau^{-1}}{2}\Big)^2 \\ Eyw,yl,xD(hπ(yw,yl,x)2τ1)2

3. 样例分析

​ 考虑最简单的情况,仅有两个动作 y 1 y_1 y1 y 2 y_2 y2,且二者偏好明确 p ∗ ( y 1 ≻ y 2 ) = 1 p^*(y_1\succ y_2)=1 p(y1y2)=1。假设 π ref \pi_{\text{ref}} πref μ \mu μ是相同。对于DPO来说,无论 τ \tau τ取何值都有 π ∗ ( y 1 ) = 1 , π ∗ ( y 2 ) = 0 \pi^*(y_1)=1,\pi^*(y_2)=0 π(y1)=1,π(y2)=0。即使正则化系数 τ \tau τ非常大,仍然会导致于 π ref \pi_{\text{ref}} πref非常不同。

​ 对于IPO来说,有 p ∗ ( y 1 ≻ μ ) = 3 / 4 p^*(y_1\succ\mu)=3/4 p(y1μ)=3/4 p ∗ ( y 2 ≻ μ ) = 1 / 4 p^*(y_2\succ\mu)=1/4 p(y2μ)=1/4。将其插入至公式(17)且 Ψ = I \Psi=I Ψ=I,那么有 π ∗ ( y 1 ) = σ ( 0.5 τ − 1 ) \pi^*(y_1)=\sigma(0.5\tau^{-1}) π(y1)=σ(0.5τ1) π ∗ ( y 2 ) = σ ( − 0.5 τ − 1 ) \pi^*(y_2)=\sigma(-0.5\tau^{-1}) π(y2)=σ(0.5τ1)。因此,正则化系数 τ → + ∞ \tau\rightarrow+\infty τ+,则 π ∗ \pi^* π则收敛至 π ref \pi_{\text{ref}} πref。当 τ → + 0 \tau\rightarrow+0 τ+0,那么有 π ∗ ( y 1 ) → 1 \pi^*(y_1)\rightarrow 1 π(y1)1 π ∗ ( y 2 ) → 0 \pi^*(y_2)\rightarrow 0 π(y2)0。正则化系数 τ \tau τ可以用来控制与 π ref \pi_{\text{ref}} πref的接近程度。文章来源地址https://www.toymoban.com/news/detail-767738.html

到了这里,关于【自然语言处理】【大模型】 ΨPO:一个理解人类偏好学习的统一理论框架的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 自然语言处理:大语言模型入门介绍

    随着自然语言处理(Natural Language Processing, NLP)的发展,此技术现已广泛应用于文本分类、识别和总结、机器翻译、信息提取、问答系统、情感分析、语音识别、文本生成等任务。 研究人员发现扩展模型规模可以提高模型能力,由此创造了术语——大语言模型(Large Language

    2024年02月12日
    浏览(58)
  • 【自然语言处理】【深度学习】NLP中的N-gram理解

    N-gram是自然语言处理(NLP)中的一个概念,它描述的是文本中连续的n个项(通常是单词或字符)。这个概念主要用于语言建模和文本分析中。 具体来说: Unigram (1-gram): 包含一个单词的序列,例如句子中的单个单词。 Bigram (2-gram): 包含两个相邻单词的序列。例如,在句子 “

    2024年01月25日
    浏览(54)
  • 自然语言处理(NLP)一直是人工智能领域的一项重要任务,其涉及到从文本中提取特征、组织数据、训练模型等诸多复杂任务。如何有效地进行文本理解和分析?

    作者:禅与计算机程序设计艺术 自然语言处理(NLP)一直是人工智能领域的一项重要任务,其涉及到从文本中提取特征、组织数据、训练模型等诸多复杂任务。如何有效地进行文本理解和分析,成为一个重要研究课题。近年来,随着计算能力的提升和硬件性能的增强,大规模

    2024年02月09日
    浏览(66)
  • 《自然语言处理》chapter7-预训练语言模型

    这是阅读《自然语言处理-基于预训练模型的方法》的学习笔记,记录学习过程,详细的内容请大家购买书籍查阅。 同时参考沐神的两个视频: GPT,GPT-2,GPT-3 论文精读【论文精读】 BERT 论文逐段精读【论文精读】 自然语言处理的核心在于如何更好地建模语言。广义上的预训

    2024年02月10日
    浏览(58)
  • 30个最新的自然语言处理模型

    T5:基于Transformer,结合了多任务学习和无监督预训练,并使用大规模的英文维基百科语料库进行训练。 GPT-3:同样基于Transformer,使用了极其庞大的语料库,并使用Zero-shot学习实现了自然语言推理功能。 Chinchilla:一种新型自然语言生成模型,使用了自适应正则化和动态使用

    2023年04月27日
    浏览(50)
  • 自然语言处理 微调ChatGLM-6B大模型

    bert的主要任务是随机的去除掉某个单词,使用上下文将其预测出来(相当于完形填空任务); GPT的主要任务是根据前面一句话,预测下面的内容; GLM结合了bert的强大双向注意力与gpt的强大生成能力两种能力,被nask的地方使用单向注意力,未被mask的地方使用双向注意力 预测

    2024年02月09日
    浏览(48)
  • 自然语言处理 Paddle NLP - 预训练语言模型及应用

    基础 自然语言处理(NLP) 自然语言处理PaddleNLP-词向量应用展示 自然语言处理(NLP)-前预训练时代的自监督学习 自然语言处理PaddleNLP-预训练语言模型及应用 自然语言处理PaddleNLP-文本语义相似度计算(ERNIE-Gram) 自然语言处理PaddleNLP-词法分析技术及其应用 自然语言处理Pa

    2024年02月08日
    浏览(76)
  • 【自然语言处理】:实验4布置,预训练语言模型实现与应用

    清华大学驭风计划 因为篇幅原因实验答案分开上传,自然语言处理专栏持续更新中,期待的小伙伴敬请关注 有任何疑问或者问题,也欢迎私信博主,大家可以相互讨论交流哟~~ 案例简介  2018年,Google提出了预训练语言模型BERT,该模型在各种NLP任务上都取得了很好的效果。与

    2024年02月19日
    浏览(52)
  • 【自然语言处理】:实验4答案,预训练语言模型实现与应用

    代码和报告均为本人自己实现(实验满分),只展示主要任务实验结果,如果需要详细的实验报告或者代码可以私聊博主,接实验技术指导1对1 运行模型,测试模型在有 100% / 50% / 10% training data(通过随机 sample 原 training set 一部分的数据,10%代表低资源的设定)的情况下模型

    2024年02月22日
    浏览(69)
  • 【大模型的前世今生】从自然语言处理说起

    自然语言处理(Natural Language Processing,简称NLP)被誉为人工智能皇冠上的明珠,是计算机科学和人工智能领域的一个重要方向。它主要研究人与计算机之间,使用自然语言进行有效通信的各种理论和方法。简单来说,计算机以用户的自然语言数据作为输入,在其内部通过定义

    2024年02月03日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包