在翻看LORA这篇论文的时候,忽然对条件语言模型优化的目标函数产生了一些疑问,下面是理解。
这个目标函数描述了条件语言模型(Conditional Language Model)的目标,即通过最大化对数似然估计来学习参数( Φ \Phi Φ),从而使模型能够根据给定的输入序列(x)来生成输出序列(y)。
目标函数解释
max Φ ∑ ( x , y ) ∈ Z ∑ t = 1 ∣ y ∣ log ( P Φ ( y t ∣ x , y < t ) ) \max_{\Phi}\sum_{(x,y)\in\mathcal{Z}}\sum_{t=1}^{|y|}\log\left(P_\Phi(y_t|x,y_{<t})\right) Φmax(x,y)∈Z∑t=1∑∣y∣log(PΦ(yt∣x,y<t))
这表示在所有输入-输出对((x, y))的训练数据集( Z \mathcal{Z} Z)上,最大化对数似然函数。该函数的主要部分可以分为两层嵌套的求和,表示:
- 外层求和 :遍历训练数据集( Z \mathcal{Z} Z),其中每一个样本包含输入序列(x)和输出序列(y)。
- 内层求和:对输出序列(y)中的每个位置(t)进行求和,计算输出序列中每个词或token的条件概率。
( P Φ ( y t ∣ x , y < t ) P_\Phi(y_t | x, y_{<t}) PΦ(yt∣x,y<t)) 的含义
P Φ ( y t ∣ x , y < t ) P_\Phi(y_t | x, y_{<t}) PΦ(yt∣x,y<t) 表示给定输入序列(x)以及输出序列中位置(t)之前的所有token(即( y < t y_{<t} y<t),也就是序列(y)中从1到(t-1)的部分),模型预测在位置(t)的token ( y t y_t yt)的条件概率。这是典型的自回归模型的思想,表示输出序列是一个依赖于之前已生成部分的序列。
逐项解释
-
( max Φ \max_{\Phi} maxΦ):我们通过优化参数(\Phi)来最大化目标函数。这里的(\Phi)是模型的参数集,可能包括神经网络的权重、偏置等。
-
( ∑ ( x , y ) ∈ Z \sum_{(x,y)\in\mathcal{Z}} ∑(x,y)∈Z):对训练数据集中所有的((x, y))对进行求和,((x, y))是数据集中一个样本,(x)是输入序列,(y)是目标输出序列。
-
( ∑ t = 1 ∣ y ∣ \sum_{t=1}^{|y|} ∑t=1∣y∣) :对输出序列(y)中的每一个位置(t)进行求和,(|y|)表示序列(y)的长度。目标是对每个输出token ( y t y_t yt)进行建模。
-
( log ( P Φ ( y t ∣ x , y < t ) ) \log(P_\Phi(y_t | x, y_{<t})) log(PΦ(yt∣x,y<t))) :这是条件语言模型的对数概率,表示给定输入序列(x)和之前已经生成的部分输出序列( y < t y_{<t} y<t)(即(y)从1到(t-1)位置的子序列),模型生成( y t y_t yt)的对数概率。对数是为了将概率转换为可以累加的量,使得更方便进行求和和优化。
总结
该目标函数的本质是在所有训练样本((x, y))上最大化输出序列每个位置(t)上的条件概率( P Φ ( y t ∣ x , y < t ) P_\Phi(y_t | x, y_{<t}) PΦ(yt∣x,y<t)),即给定输入和之前的输出,预测当前位置的输出的概率。通过最大化这一目标函数,我们训练模型使其能够根据输入和部分已生成的输出来正确预测后续的输出。这是条件语言模型如Transformer、BERT、GPT等语言生成任务的常见目标。
后记
2024年9月23日17点47分于上海,基于GPT4o大模型生成。