【杂谈】-50+个生成式人工智能面试问题(二)
文章目录
- 2、生成式AI面试问题与大型语言模型(LLM)相关
- Q5.什么是大语言模型(LLM)?
- Q6. LLMs用于什么?
- Q7. LLMs的一些优势和局限性是什么?
- Q8. 不同的LLM架构有哪些?
- Q9. LLMs中的幻觉是什么?
- Q10. 如何使用幻觉?
- Q11. 如何减轻幻觉?
2、生成式AI面试问题与大型语言模型(LLM)相关
Q5.什么是大语言模型(LLM)?
答案:大型语言模型(LLM)是一种可以识别和生成文本等任务的人工智能(AI)程序。LLMs在庞大的数据集上进行训练——因此得名“大型”。LLMs基于机器学习技术构建;具体来说,它们使用一种称为变换器模型的神经网络类型。
简单来说,LLM是一个计算机程序,它已经通过大量实例学习,能够识别和理解复杂的数据,如人类语言。成千上万甚至数百万兆字节的互联网文本被用来训练大量的LLMs。然而,LLM的程序员可能会选择使用更加精心挑选的数据集,因为样本的质量影响LLM成功学习自然语言的效果。
基础LLM(大型语言模型)是一种预训练模型,它在庞大且多样的文本数据语料库上进行训练,以理解和生成人类语言。这种预训练使模型能够学习语言的结构、细微差别和模式,但这只是一般意义上的,没有针对任何特定任务或领域进行定制。例如GPT-3和GPT-4就是基础LLM的例子。
微调后的LLM是经过额外训练的基础LLM,它在更小的特定任务数据集上进行训练,以提高其在特定应用或领域的性能。这种微调过程调整了模型的参数,使其更好地处理特定任务,如情感分析、机器翻译或问答,从而更加有效和准确。
Q6. LLMs用于什么?
答案:LLMs可以用于训练执行众多任务。它们在生成式AI中的应用是最著名的应用之一,其中它们可以根据提示或问题生成文本。例如,公开可用的LLM ChatGPT可以根据用户输入生成诗歌、文章和其他文本格式。
任何大型、复杂的数据集都可以用来训练LLMs,包括编程语言。一些LLMs可以帮助程序员编写代码。它们可以根据请求编写函数——或者,给定一些代码作为起点,它们可以完成程序的编写。LLMs还可以用于以下领域:
- 情感分析
- DNA研究
- 客户服务
- 聊天机器人
- 在线搜索
现实世界中的LLMs示例包括OpenAI的ChatGPT、Google的Gemini和Meta的Llama。GitHub的Copilot也是一个例子,但它针对的是编码而不是自然人类语言。
Q7. LLMs的一些优势和局限性是什么?
答案:LLMs的一个关键特点是它们能够响应不可预测的查询。传统计算机程序接收用户的命令,这些命令必须符合其接受的语法或来自特定输入集合。一个视频游戏有一组有限的按钮;一个应用程序有一组有限的事情供用户点击或输入,而编程语言是由精确的if/then语句组成的。
另一方面,LLM可以利用数据分析和自然语言响应,对非结构化提示或查询提供逻辑回答。例如,LLM可能会回答“历史上最伟大的四支放克乐队是哪些?”这样的问题,并给出四个这样的乐队以及为什么它们是最佳乐队的有力论证,但标准计算机程序无法识别此类提示。
然而,LLM提供的信息准确性仅取决于它们所消费的数据质量。如果它们被提供了错误信息,它们将对用户的询问作出误导性回应。LLM偶尔也会“幻想”,在无法提供精确回答时编造事实。例如,2022年新闻媒体Fast Company向ChatGPT询问特斯拉最近的财务季度情况。尽管ChatGPT给出了一篇可理解的新闻文章,但其中很大一部分信息是虚构的。
Q8. 不同的LLM架构有哪些?
答案:Transformer架构因其并行性和容量被广泛用于LLMs,使得语言模型能够扩展到数十亿甚至数万亿个参数。
现有的LLMs大致可以分为三类:编码器-解码器、因果解码器和前缀解码器。
1)编码器-解码器架构
基于标准的Transformer模型,编码器-解码器架构由两个堆叠的Transformer块组成——一个编码器和一个解码器。
编码器利用多头自注意力层来编码输入序列并生成潜在表示。解码器对这些表示进行交叉注意力处理并生成目标序列。
像T5和BART这样的编码器-解码器PLMs在各种NLP任务中表现出了有效性。然而,只有少数LLMs(如Flan-T5)是使用这种架构构建的。
2)因果解码器架构
因果解码器架构引入了一个单向注意力掩码,允许每个输入标记只能关注过去的标记和自己。解码器以相同的方式处理输入和输出标记。
GPT系列模型,包括GPT-1、GPT-2和GPT-3,都是基于这种架构构建的代表语言模型。GPT-3展示了卓越的上下文学习能力。
包括OPT、BLOOM和Gopher在内的各种LLMs广泛采用了因果解码器。
3)前缀解码器架构
前缀解码器架构,也称为非因果解码器,修改了因果解码器的掩码机制,以实现对前缀标记的双向注意力和对生成标记的单向注意力。
与编码器-解码器架构类似,前缀解码器可以双向编码前缀序列,并使用共享参数自回归地预测输出标记。
与其从头开始训练,不如将因果解码器转换为前缀解码器以更快收敛。基于前缀解码器的LLMs包括GLM130B和U-PaLM。
所有三种架构类型都可以使用专家混合(MoE)扩展技术进行扩展,该技术为每个输入稀疏激活一部分神经网络权重。
这种方法已在Switch Transformer和GLaM等模型中使用,增加专家数量或总参数量已显示出显著的性能提升。
4)仅编码器架构
仅编码器架构只使用编码器堆栈的Transformer块,通过自注意力机制专注于理解和表示输入数据。这种架构适用于需要分析和解释文本而非生成文本的任务。
关键特点:
- 利用自注意力层编码输入序列。
- 为每个标记生成丰富的上下文嵌入。
- 针对文本分类和命名实体识别(NER)等任务进行了优化。
- 仅编码器模型示例:
- BERT(来自Transformer的双向编码器表示):通过联合左右上下文来理解上下文表现出色。
- RoBERTa(稳健优化的BERT预训练方法):通过优化训练程序提高了BERT的性能。
- DistilBERT:BERT的一个更小、更快、更高效的版本。
Q9. LLMs中的幻觉是什么?
答案:大型语言模型(LLMs)被认为会有“幻觉”。这种行为是指模型说出虚假的知识,就像它是准确的一样。大型语言模型是一种经过训练的机器学习模型,它基于你的提示生成文本。模型的训练提供了一些从我们提供的培训数据中获取的知识。很难判断模型记住了哪些知识或没有记住哪些知识。当模型生成文本时,它无法判断生成的内容是否准确。
在LLMs的背景下,“幻觉”指的是模型生成错误、荒谬或不真实的文本的现象。由于LLMs不是数据库或搜索引擎,它们不会引用其响应的依据。这些模型根据你提供的提示生成文本,作为推断的结果。推断的结果不一定由任何培训数据支持,但与提示最相关。
即使模型非常复杂,LLMs中的幻觉也不过如此。从高层次来看,幻觉是由于模型对上下文的理解有限造成的,因为模型必须将提示和培训数据转化为抽象,其中可能会丢失一些信息。此外,培训数据中的噪声也可能提供有偏差的统计模式,导致模型以你意想不到的方式响应。
Q10. 如何使用幻觉?
答案:幻觉可以被视为大型语言模型的一个特点。如果你希望模型具有创造力,你希望看到它们产生幻觉。例如,如果你要求ChatGPT或其他大型语言模型为你提供一个幻想故事的情节,你希望它创造一个新颖的角色、场景和故事情节,而不是复制已有的一个。这只有在模型不搜索培训数据的情况下才是可行的。
当你寻求多样性时,你可能也希望出现幻觉,例如在征求想法时。这类似于要求模型为你提出想法。尽管不完全一样,你希望提供在培训集中可以找到的当前概念的变化。幻觉让你可以考虑替代选项。
许多语言模型都有一个“温度”参数。你可以通过API而不是网络界面来控制ChatGPT中的温度。这是一个随机参数。较高的温度可以引入更多的幻觉。
Q11. 如何减轻幻觉?
答案:语言模型不是数据库或搜索引擎。幻觉是不可避免的。让我感到恼怒的是,模型在文本中产生了难以发现的错误。
如果错觉是由受污染的训练数据引起的,你可以清理数据并重新训练模型。然而,大多数模型太大而无法独立训练。使用通用硬件甚至可能无法对既定模型进行微调。如果出现严重错误,要求模型重新生成并在结果中加入人工审核将是最好的缓解措施。
控制创作是防止幻觉的另一种方法。它包括在提示中给予模型足够的信息和限制。这样,模型产生幻觉的能力就受到了限制。提示工程用于定义模型的角色和上下文,指导生成过程并防止无限制的幻觉。