Skip to content

GPT 经验篇

来源:AiGC面试宝典 | 作者:宁静致远 | 日期:2024年01月27日


一、GPT 源码 past_key_values 是干啥的?

在 GPT(Generative Pre-trained Transformer)中,past_key_values 是用于存储先前层的 Key-Value 注意力矩阵的结构。在进行推理时,过去的 Key-Value 注意力矩阵可以被重复使用,避免重复计算,从而显著提高推理效率。

📝 通俗解释:想象你在看一本很长的书,每翻一页都需要重新理解之前所有页的内容,那就太累了。past_key_values 就像是你的"记忆缓存",已经理解过的内容不需要重新理解,直接调用之前的记忆就能继续阅读,这样读书(推理)速度就会快很多。


二、GPT One-by-One 每一层怎么输入输出?

在 GPT One-by-One(逐token生成)的模式下,每一层的输入是上一层的输出。具体而言:

  1. 输入:初始输入是词嵌入(Word Embedding)加上位置编码(Position Encoding)
  2. 处理:通过自注意力机制(Self-Attention)和前馈神经网络(Feed Forward Network)进行处理
  3. 输出:每一层的输出作为下一层的输入,最终得到当前层的表示向量

📝 通俗解释:就像流水线上的工人,每个工人(每一层)把上一个人传来的半成品加工一下,再传给下一个人。第一个工人用的是原材料(词嵌入),经过层层加工后,最终得到成品(输出表示)。


三、BERT 和 GPT 有什么区别

BERT(Bidirectional Encoder Representations from Transformers)和 GPT(Generative Pre-trained Transformer)是两种不同类型的预训练语言模型,主要区别如下:

特性BERTGPT
架构双向编码器单向解码器
训练方式掩码语言模型(MLM)自回归语言模型
适用任务理解型任务生成型任务
典型应用文本分类、命名实体识别文本生成、对话生成
  • BERT 是一个双向编码器,通过预测输入序列中被掩码的部分来学习上下文表示,适用于多种理解型任务。
  • GPT 是一个单向解码器,通过预测下一个单词来生成文本,主要用于生成型任务。

📝 通俗解释:BERT 像是"阅读理解高手",它能同时看到句子的前后文,所以适合做分析、判断、分类这类"理解"工作。GPT 像是"写作文高手",它只能从左往右写,所以适合做续写、对话这类"生成"工作。


四、文本生成的几大预训练任务?

1. GPT(Generative Pre-trained Transformer)系列

包括 GPT、GPT-2、GPT-3 等。这些模型使用 Transformer 架构进行预训练,在大规模语料上学习语言模型,能够生成连贯、具有语义的文本。

2. BART(Bidirectional and Auto-Regressive Transformer)

BART 是一种基于 Transformer 的生成式预训练模型。它通过自回归解码器实现文本生成,通过自编码器预训练目标来重构输入文本,能够生成流畅、连贯的文本。

3. T5(Text-to-Text Transfer Transformer)

T5 是一种通用的文本生成模型,使用了编码器-解码器结构。它将不同的自然语言处理(NLP)任务转换为文本到文本的转换任务,可用于机器翻译、摘要生成、问题回答等多个 NLP 任务。

4. XLNet

XLNet 是一种基于 Transformer 架构的预训练模型,采用了自回归和自编码器的组合方式进行训练。它在语言建模任务上引入了全局的上下文信息,能够生成更加准确和连贯的文本。

5. UniLM(Unified Language Model)

UniLM 是一种多任务学习的预训练模型,将不同的自然语言处理任务转化为统一的生成式任务。它可以用于文本摘要、问答系统、机器翻译等多个任务。

📝 通俗解释:这些模型就像是不同风格的"写作老师"。GPT 系列是自学成才的作家,靠大量阅读自己领悟写作技巧;BART 是"修补大师",专门学习如何把损坏的文章修复好;T5 是"全能翻译官",把所有任务都当成"把A变成B"的翻译问题;XLNet 是"贪心学者",既要学从头写也要学填空;UniLM 是"多面手",一个人能同时教好几门课。


五、讲讲 T5 和 BART 的区别,讲讲 BART 的 DAE 任务?

T5 和 BART 的区别

特性T5BART
定位通用的文本到文本模型专注于生成式任务
结构编码器-解码器编码器-解码器
训练目标文本到文本转换去噪自编码器
应用场景机器翻译、摘要、问答等文本生成、摘要、对话等
  • T5 是一种基于 Transformer 的通用文本生成模型,将所有 NLP 任务统一为"文本到文本"的转换任务。
  • BART 是建立在 T5 模型基础上的变种,专注于生成式任务。它通过去噪自编码器来重构原始文本,生成的文本更加流畅和连贯。

📝 通俗解释:T5 像是"万能转换器",不管是翻译、总结还是问答,都被它统一看成"把一段文字转换成另一段文字"的问题。BART 则是"文本修复专家",它的训练方式是给一段文字"故意搞破坏"(比如删除词语、打乱顺序、添加噪声),然后让模型学习如何把被破坏的文字还原回去,这个过程让它特别擅长生成完整、流畅的文本。

BART 的 DAE(Denoising AutoEncoder,去噪自编码器)任务

DAE 任务是 BART 模型的一种预训练目标,要求模型从输入的有噪声文本中恢复原始的无噪声文本。具体方法包括:

  1. 文本掩码(Masking):随机替换部分词为 [M] 标记
  2. 文本删除(Deletion):随机删除部分词
  3. 文本打乱(Permutation):随机打乱句子顺序
  4. 文本截断(Infilling):随机截断文本跨度

通过这些去噪训练,BART 可以学习到更好的文本表示和重构能力,从而提高生成文本的质量和准确性。

📝 通俗解释:DAE 就像是让学生做"完形填空"和"错别字纠正"的练习。老师把一篇正常的文章故意弄乱——有些字被涂黑、有些句子顺序被调换、有些词被删除,然后让学生努力把文章还原成原来的样子。通过这种训练,学生的语言理解能力和组织能力都会大大提升。BART 就是通过这种方式学会了如何生成高质量的文本。


六、讲讲 BART 和 BERT 的区别?

BART 和 BERT 是两个不同的预训练模型,区别如下:

特性BARTBERT
模型类型生成式预训练模型理解式预训练模型
架构自回归解码器双向 Transformer 编码器
训练目标去噪自编码器掩码语言模型(MLM)
核心能力文本生成上下文表示
典型应用文本生成、摘要、对话文本分类、命名实体识别
  • BART 是一种基于 Transformer 的生成式预训练模型,主要应用于文本生成、摘要生成、对话系统等任务。它通过自编码器预训练目标来重构输入文本,从而生成流畅、连贯的文本。
  • BERT 是一种双向的预训练模型,用于生成文本的上下文表示。它采用了双向的 Transformer 编码器,通过将上下文的信息融合到表示中,提供了更全面的语境理解能力,主要应用于词嵌入、文本分类、命名实体识别等任务。

📝 通俗解释:BERT 像是"质检员",它的任务是分析一段文字的含义、理解上下文关系,适合做判断、分类这类工作。BART 像是"作家",它的目标是创作出新的、完整的文本,适合做续写、总结、对话这类工作。简单来说,BERT 擅长"读懂",BART 擅长"写好"。


七、GPT-3 和 GPT-2 的区别?

GPT-3 和 GPT-2 是由 OpenAI 开发的两个语言模型,区别主要在于规模和功能:

特性GPT-2GPT-3
参数规模15 亿1750 亿
模型规模较小巨大
零样本学习不支持支持
生成能力有限强大
计算资源需求较低极高
  • 参数规模:GPT-3 是目前最大的语言模型之一,具有 1750 亿个参数,是 GPT-2 的 100 多倍
  • 零样本学习:GPT-3 可以在没有对特定任务进行显式训练的情况下执行各种语言任务
  • 生成质量:GPT-3 生成的文本更连贯、更具逻辑性,能够生成更长的文本
  • 计算成本:GPT-3 的使用需要更高的计算资源和成本

📝 通俗解释:GPT-2 像是"中学生",已经学会了很多知识,能完成一些写作任务,但能力和知识储备都有限。GPT-3 像是"超级教授",脑子里装了海量的知识,不仅能写长文章,还能"举一反三"——不需要专门训练就能处理各种新任务。当然,这位"超级教授"也需要更多的"教学资源"(计算资源)才能运转。


致谢

感谢 AiGC面试宝典 提供的面试资料,感谢宁静致远的整理分享。


📝 整理说明:本笔记整理自 AiGC面试宝典,涵盖了 GPT 系列模型及相关预训练模型的核心知识点。笔记中补充了通俗解释,帮助读者更好地理解复杂的技术概念。如有错误,欢迎指正。

基于 MIT 许可发布