当前位置: 首页 > news >正文

对条件语言模型(Conditional Language Model)的目标函数的理解

在翻看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)Zt=1ylog(PΦ(ytx,y<t))

这表示在所有输入-输出对((x, y))的训练数据集( Z \mathcal{Z} Z)上,最大化对数似然函数。该函数的主要部分可以分为两层嵌套的求和,表示:

  1. 外层求和:遍历训练数据集( Z \mathcal{Z} Z),其中每一个样本包含输入序列(x)和输出序列(y)。
  2. 内层求和:对输出序列(y)中的每个位置(t)进行求和,计算输出序列中每个词或token的条件概率。
( P Φ ( y t ∣ x , y < t ) P_\Phi(y_t | x, y_{<t}) PΦ(ytx,y<t)) 的含义

P Φ ( y t ∣ x , y < t ) P_\Phi(y_t | x, y_{<t}) PΦ(ytx,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=1y):对输出序列(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Φ(ytx,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Φ(ytx,y<t)),即给定输入和之前的输出,预测当前位置的输出的概率。通过最大化这一目标函数,我们训练模型使其能够根据输入和部分已生成的输出来正确预测后续的输出。这是条件语言模型如Transformer、BERT、GPT等语言生成任务的常见目标。

后记

2024年9月23日17点47分于上海,基于GPT4o大模型生成。


http://www.mrgr.cn/news/34305.html

相关文章:

  • 元器件封装
  • Ingress nginx 公开TCP服务
  • 宋浩《线性代数》知识点卡
  • 高效编程训练:Spring Boot系统设计与实践
  • 1. ShardingJDBC实际使用01
  • Unity资源打包Addressable AA包
  • 美业SaaS收银系统如何收银?博弈美业实操/美业门店管理系统源码
  • 湖北建筑类初级职称申报的全方位解读
  • 1000Km弹射巡飞器技术详解
  • struts2
  • 使用代理服务导致网络延迟增大的影响
  • 【SSM-Day2】创建SpringBoot项目
  • CVE-2024-44902 Thinkphp反序列化漏洞
  • ELK 企业级日志分析系统
  • 1267:【例9.11】01背包问题(从二维优化一维dp问题)
  • Kafka3.8.0+Centos7.9的安装参考
  • 【人工智能学习之常用损失函数浅谈】
  • minitrace使用
  • 使用k8s部署RainLoop-Webmail
  • 本地部署高颜值某抑云音乐播放器Splayer并实现无公网IP远程听歌
  • Profinet转Canopen网关控制高精密伺服的优点
  • 如何开启项目管理学习之旅?免费助你建立系统知识体系
  • AV1 Bitstream Decoding Process Specification--[8]: 语法结构语义-4
  • Java面向对象特性与泛型:深入理解与应用
  • 使用离线模型放在项目中,导致项目代码很大,怎么解决
  • 127.0.0.1和0.0.0.0的区别