大语言模型损失函数详解

一、语言模型分类

我们可以把语言模型分为两类:自动回归式语言模型,自动编码式语言模型。

1.1 自动回归式语言模型

自动回归式语言模型在本质上是单向的,也就是说,它只沿着一个方向阅读句子。正向(从左到右)预测;反向(从右到左)预测。下面,让我们通过一个示例来了解这两种方法的原理。这类模型在大量参数下对特征具有更强的抽取和表示能力,目前已成为主流。

例句:Paris is a beautiful city. I love Paris。让我们掩盖单词city,并以空白代替,如下所示。

Paris is a beautiful __. I love Paris.

然后,我们让模型预测空白处的词。如果使用正向预测,那么模型就会从左到右读取所有的 单词,直到空白处,然后进行预测,如下所示。

Paris is a beautiful __.

如果使用反向预测,那么模型就会从右到左读取所有的单词,直到空白处,然后进行预测,如下所示。

__. I love Paris.

1.2 自动编码式语言模型

自动编码式语言模型:自动编码式语言模型同时利用了正向预测和反向预测的优势。在进行预测时,它会同时从两个方向阅读句子,所以自动编码式语言模型是双向的。

如下所示,为了预测单词city,自动编码式语言模型从两个方向阅读句子,即从左到右和从右到左。

Paris is a beautiful __. I love Paris

双向模型能够给出更好的结果,因为如果从两个方向阅读句子,模型就能够更加清晰地理解句子。

本文将结合具体模型和论文,探讨这两种模型的损失函数。

二、自动编码式语言模型

提到自动编码式语言模型,那最经典的非BERT莫属了。在GPT出现之前,以BERT为代表的模型几乎独领江湖。

2.1 BERT

BERT(Bidirectional Encoder Representations from Transformers)是一种基于Transformer架构的自然语言处理模型。它由Google于2018年提出,以解决语境相关性和双向理解的问题。BERT采用双向训练方式,能够同时考虑文本左右两侧的上下文信息,有效捕获语境含义。

BERT的损失函数 由两部分组成,第一部分是来自 Mask-LM 的单词级别分类任务,另一部分是句子级别的分类任务。通过这两个任务的联合学习,可以使得 BERT 学习到的表征既有 token 级别信息,同时也包含了句子级别的语义信息。

在第一部分的损失函数中,如果被 mask 的词集合为 M(即计算BERT的MLM loss时会忽略没被mask的token),因为它是一个词典大小 |V| 上的多分类问题,那么具体说来有:

在句子预测任务中,也是一个分类问题的损失函数:

这两个损失函数也很容易理解:

  • 多分类问题,类别的数量等于词表的大小,第个词被正确预测的概率越大,相应的损失越小
  • 二分类问题,第个句子的类别被正确预测的概率越大,相应的损失越小

因此,两个任务联合学习的损失函数是:

三、自动回归式语言模型

BERT一度引领了NLP领域。但是随着OpenAI-GPT系列模型的爆火,自回归式模型被更为广泛的采用。本章详细解析GLM大模型、LoRA微调方法、Prefix tuning这三篇论文中的损失函数。以期找到这些损失函数的共性。

3.1 GLM系列大模型

清华大学提出的GLM大模型预训练框架采用了自回归的空白填充方法,在自然语言理解、无条件生成、有条件生成等NLP任务上取得了显著成果。其中,GLM-130B是最大的模型,拥有1300亿参数,支持中英文双语,旨在训练出开源开放的高精度千亿中英双语语言模型。该模型采用了量化技术,可在4块3090(24G)或8块2080Ti(11G)上推理。

输入向量为,抽样出文本段,每个文本段都代表了一系列连续的token吗,可以写做,每个文本段都用[MASK]代表,从而形成了表示抽样文本段的数量,表示每个抽样文本段的长度。预训练目标可以用下式表示:

需要对所有的抽样文本段进行随机打乱, 被打乱后,所有可能性的集合,又可以写作。在预测缺失的文本段时(每个都包含多个单词,所以需要用集合S表示,作为下标),模型可以访问到被破坏的文本,以及前面所有的抽样文本段。

那每个中token的预测概率应该如何表示呢?如下:

很简单,把所有token的概率乘起来就可以了。

需要注意的是,这边要弄清楚的区别:

  • 代表第个文本段
  • 由于有很多种打乱方式,表示其中某一个打乱方式的第个抽样文本段。

3.2 更一般的表达方式

以上是针对GLM这系列特殊的模型。那么对于一般的自回归式模型,有没有更普遍的一种表达方式呢?我们以LoRA这篇文章为例。

每一个下游任务都能用 内容-目标对来表示:都是token序列。例如在自然语言->sql语句 任务中,是自然语言查询,是其相应的SQL命令。对于概括任务 而言,是文章的内容,是其相应的概述内容。预训练的自回归语言模型可以用来表示。那么微调就是要找到一组参数,使得下式最大:

即用前的所有样本来预测第个样本。表示向量的长度。

四、参考文献

1\] Devlin J , Chang M W , Lee K ,et al.BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding\[J\]. 2018. \[2\] Du Z , Qian Y , Liu X ,et al.GLM: General Language Model Pretraining with Autoregressive Blank Infilling\[J\]. 2021.DOI:10.48550/arXiv.2103.10360. \[3\] Zeng, Aohan, et al. "Glm-130b: An open bilingual pre-trained model." arXiv preprint arXiv:2210.02414 (2022). \[4\] Hu E J , Shen Y , Wallis P ,et al.LoRA: Low-Rank Adaptation of Large Language Models\[J\]. 2021.DOI:10.48550/arXiv.2106.09685.

相关推荐
文心快码BaiduComate1 天前
百度云与光本位签署战略合作:用AI Agent 重构芯片研发流程
前端·人工智能·架构
风象南1 天前
Claude Code这个隐藏技能,让我告别PPT焦虑
人工智能·后端
Mintopia1 天前
OpenClaw 对软件行业产生的影响
人工智能
陈广亮1 天前
构建具有长期记忆的 AI Agent:从设计模式到生产实践
人工智能
会写代码的柯基犬1 天前
DeepSeek vs Kimi vs Qwen —— AI 生成俄罗斯方块代码效果横评
人工智能·llm
Mintopia1 天前
OpenClaw 是什么?为什么节后热度如此之高?
人工智能
爱可生开源社区1 天前
DBA 的未来?八位行业先锋的年度圆桌讨论
人工智能·dba
叁两1 天前
用opencode打造全自动公众号写作流水线,AI 代笔太香了!
前端·人工智能·agent
前端付豪1 天前
LangChain记忆:通过Memory记住上次的对话细节
人工智能·python·langchain