在快速发展的AI领域中,理解基础至关重要,尤其是在处理大型语言模型时。本指南旨在帮助初学者理解复杂主题,带您了解神经网络、自然语言处理(NLP)以及大型语言模型等关键概念。我们将探讨大型语言模型是如何构建和训练的,以及它们面临的挑战,比如偏见和幻觉。此外,我们还将介绍与大型语言模型相关的关键词。
神经网络是什么?
神经网络是一种机器学习模型,它像人脑一样做出决策,通过模仿生物神经元如何协同工作来识别模式、评估选择并得出结论。神经网络是所有AI模型的基石,比如大语言模型(LLMs)。神经网络被组织成多层来处理数据并从中学习。神经网络中的神经元被组织成层:
- 输入层: 数据进入模型的入口。
- 隐藏层: 进行计算的地方,让网络学习模式。
- 输出层: 最终作出预测或决策的出口。
例如,一个神经网络可以被训练来识别猫的照片,通过多层神经网络处理图像,从而能够在各种形状和物体中识别出猫。
如图所示,这是一张神经网络的图片。
什么是自然语言处理(NLP)呢?
自然语言处理(NLP)是指计算机程序理解和处理人类语言的能力,无论是说的还是写的。NLP使机器能够理解和生成人类语言。自然语言处理支持从聊天机器人到语音助手的各种应用,将人类说的话和写的东西转化为机器能理解的形式。它涉及的任务包括:
- 分词: 将文本拆分成更小的组件(例如单词或子词)。
- 句子结构分析: 理解句子的结构。
- 情感分析: 判断文本的情感倾向是积极、消极还是中立。
如果没有自然语言处理(NLP),大规模语言模型(LLMs)就无法捕捉人类语言中的细微之处。
大型语言模型(LLMs)是什么?
大型语言模型(LLMs)是先进的神经网络,旨在理解和生成人类语言。它们在大量文本数据上进行训练,从而学习语言中的模式、上下文和细微之处。LLMs可以完成各种任务,例如回答问题、撰写文章、翻译和参与对话。它们的主要目标是生成类似人类的文本,捕捉自然语言的微妙之处。
大语言模型(LLM)背后的核心思想很简单:预测句子中的下一个词。例如,如果你输入“太阳从东边升起,……”,大语言模型应该预测出“东”。虽然这看起来很简单,但实际上它能够催生诸如文本生成、推理甚至创造力等复杂和新兴技能。
关键的大语言模型术语
Transformer
Transformer 是一种神经网络架构,通过更高效地处理数据序列,从而革新了自然语言处理(NLP)。它在开创性论文 Attention Is All You Need
中被引入。传统模型如循环神经网络(RNNs)处理序列数据且保持内部状态,使它们能够处理如句子这样的序列。然而,由于诸如梯度消失等问题,它们在处理长序列时会遇到困难,因为随着时间的推移,会忘记早期信息。这是因为为了改进模型所做的调整变得过于微小,无法产生实际效果。
Transformer通过采用称为注意力的机制解决了这些问题,这种机制使模型能够更有效地专注于句子或文档的不同部分,不受位置限制。这一创新为像GPT-4、Claude和LLaMA这样的突破性模型奠定了基础。
该架构最初设计为编码器-解码器架构。在这种设置中,编码器处理输入文本,挑选出重要部分并生成其表示。解码器随后将此表示转换回可读的文本。这种方法对于摘要等任务很有用,在这些任务中,解码器根据编码器接收到的输入创建摘要。编码器和解码器可以协同工作或单独工作,为各种任务提供灵活性和便利性。一些模型仅使用编码器将文本转换成向量,而其他模型则仅依赖解码器,这也是大型语言模型的基石。
语言建模
语言模型是指让LLM学习语言中单词的概率分布的过程。这使得模型能够预测句子中下一个最可能出现的单词,这是生成连贯文本的关键任务。生成连贯且上下文相关的文本的能力在许多应用中至关重要,例如文本摘要、翻译或对话系统。
分词
分词是和大型语言模型(LLMs)工作时的第一步。它意味着将一个句子分解成更小的部分,称为标记。这些标记既可以是单个字母,也可以是整个单词,具体取决于模型。这会影响到模型的效果,因为它们是如何被拆分的会影响模型的表现。
例如,考虑这句话:开发者最喜欢的机器
。
如果我们按照空格分割文本,我们会得到:
(以下内容基于具体输入进行分割翻译,但具体文本未提供。)
程序员最喜欢的一台机器。
全屏 退出全屏
在这里,比如 developer
的撇号和 machine
后面的句号这样的标点符号会紧跟在单词后面。但我们可以根据空格和标点符号将句子分割开来:
["开发人员最喜欢的机器。"]
全屏 退出全屏
文本被分割成标记的方式取决于模型,许多较先进的模型使用诸如子词分割等方法。这会把单词分解成更小、有意义的片段。例如,句子 It's raining
可以被分割为:,
["下雨了。"]
全屏,退出
在这里,raining
被分解为 rain
和 ing
,这有助于模型理解单词的构造。通过将单词分解成基本部分和词缀(如 raining
分解为 rain
和 ing
),模型可以更好地理解单词的意思,而无需为每个单词的不同形式进行存储。
在分词过程中,文本会被扫描,每个词元都被分配一个唯一的ID并存储在一个字典中。这使得模型可以快速在字典中查找,在处理文本时更容易理解和操作。
嵌入
分词化之后的下一步是将这些分词转换成计算机可以处理的形式——这通过嵌入技术来实现。嵌入是一种将词(如单词或短语)表示为计算机可以处理的数字的方法。这些数字帮助模型识别单词间的关系及其上下文。
例如,比如说我们有单词 happy
和 joyful
。模型为每个单词分配一组数字(即它的嵌入),来捕捉其意思。如果两个词意思相近,比如 happy
和 joyful
,它们的数字会很接近,即使它们在字面上有所不同。
最初,模型会给每个标记分配一些随机数字。随着模型的训练过程,通过读取并学习大量文本,它会相应地调整这些数字。目标是让意思相近的标记拥有相近的数字组,这有助于模型更好地理解它们之间的联系。
尽管这听起来可能很复杂,嵌入实际上只是数字列表,让模型能够高效地存储和处理信息。使用这些数字(或向量)使模型更容易理解各个标记之间的关系。
让我们来看一个简单的嵌入示例:
想象我们有三个词语:cat
,dog
和 car
。模型会给每个词语分配一组数字,比如:
这些词汇在代码片段中保持不变。
猫
→ [1.2, 0.5]
狗
→ [1.1, 0.6]
汽车
→ [4.0, 3.5]
这里,猫
和狗
的数字比较接近,因为它们都是动物,因此它们的意义是相近的。另一方面,汽车
的数字则非常不同,因为它是一种交通工具,而不是动物。
训练和调整
大型语言模型(LLMs)通过大量阅读文本进行训练,学习预测句子中的下一个单词。模型的目标是调整其内部设置,提高根据其在文本中观察到的模式进行准确预测的机会。最初,LLMs主要在互联网上的通用数据集上进行训练,例如The Pile或CommonCrawl,这些数据集包含各种主题。为了获得特定领域的知识,模型也可能在专注于特定领域的数据集上进行训练,例如Reddit帖子,这有助于它学习特定领域,如编程。
这一初始阶段称为预训练,模型学习理解语言的整体概念。在此期间,模型的内部权重参数
会被调整,以帮助模型更准确地猜测下一个词,依据训练数据。
完成预训练后,模型通常会经历一个称为调优的第二阶段。在调优过程中,模型会在专注于特定任务或领域的较小数据集上进行训练,例如医学文献或财务报表。这有助于使其在特定任务上更好地应用所学知识,例如翻译特定领域的文本,或回答相关问题。
对于像GPT-4这样的高级模型,微调(fine-tuning)需要更复杂的技巧和技术以及更大的数据量来达到出色的性能。
预测一下
经过训练或微调后,该模型可以通过预测句子的下一个词来生成文本(更准确地说,是下一个词元)。它通过分析输入,为每个可能的下一个词元分配一个可能性分数来实现这一点。选择得分最高的词元,然后重复这个过程来处理每个新词元。这样,模型可以生成任意长度的文本,但重要的是要记住一点,模型一次只能处理一定数量的输入文本,称为其上下文长度。
上下文范围
上下文大小,或称为上下文窗口,是大型语言模型(简称LLM)的一个关键方面。它指的是模型一次请求中能处理的最大标记数。它决定了模型一次可以处理多少信息,从而影响其性能和输出的质量。
不同的模型有不同的上下文大小。例如,OpenAI 的 gpt-3.5-turbo-16k 模型可以处理多达 16,000 个令牌(token),这些是单词的一部分或整个单词。较小的模型可能只能处理 1,000 个令牌,而更大的模型,比如 GPT-4-0125-preview,则可以处理多达 128,000 个令牌。这个限制影响了模型一次能生成多少文本。
缩放法则
缩放法则解释了语言模型的性能如何受到不同因素的影响,如参数的数量、训练数据集的大小、可用的计算能力以及模型的设计。这些法则在《Chinchilla》论文中讨论了——这些法则帮助我们更好地了解如何高效利用资源来训练模型。它们还提供了优化性能的见解,比如。根据这些法则,以下因素影响语言模型的性能:
- 参数数量(N): 参数就像是模型
大脑(brain)
中的小部件,帮助模型学习。当模型读取数据时,它会调整这些参数,以便更好地识别数据中的模式。模型拥有的参数越多,它就越聪明,能够识别出更复杂和详细的模式。 - 训练数据集大小(D): 训练数据集是模型从中学习的文本或数据集合。训练数据集越大,模型就能从更多的不同文本中学习,从而识别出更多不同的模式。
- FLOPs(每秒浮点运算次数): 这个术语指的是训练模型所需的计算能力。它衡量模型处理数据和执行计算的速度。更多的FLOPs意味着模型可以处理更复杂的任务,同时也需要更多的计算资源。
在LLMs中展现的新能力
随着大型语言模型变得越来越大和越来越复杂,它们开始展现出未被明确编程的新能力或自发产生的能力。例如,GPT-4 能够总结长篇文本或进行基本算术运算,而不需要特别训练这些任务。这些能力的出现是因为模型在训练过程中学到了大量关于语言和数据的知识。
提示词
提示是您给大型语言模型 (LLM) 提供的生成所需输出的指示。设计恰当的提示可以显著提高生成文本的质量。
1. 使用简单易懂的语言:
在提示中说得具体点,你就能得到更好的结果。
- 不太清楚: 写关于穆罕默德·伊克巴尔的内容。
- 更清楚: 写一篇500字的文章,介绍这位南亚的伟大诗人穆罕默德·伊克巴尔。
2. 提供足够的上下文信息。
上下文信息可以帮助模型知道你想要什么。
- 较少的背景信息: 少一点背景信息:写一个故事。
- 更多的背景信息: 写一个关于一个小女孩在森林里迷路了但有个幸福结局的故事。
试试不同的版本:
试试不同的提示风格,看看哪种最适合你。
- Original: 写一篇关于编程好处的博客。
- Variation 1: 写一篇1000字的博客,讨论定期编程的心理和经济好处。
- Variation 2: 写一篇吸引人的博客,突出编程的十大好处。
4. 审查成果:
在分享前,总是要确保检查自动回复内容的准确性。
幻觉
当大型语言模型生成的内容与事实不符或毫无意义时,就会产生这种错觉。例如,一个大型语言模型可能会说“澳大利亚的首都是悉尼”,而实际上澳大利亚的首都是堪培拉。这是因为模型主要关注于根据它的训练来生成可能的内容,而不是去验证这些内容的准确性。
一些常见的偏向
LLM中的偏见源于训练数据中反映了文化、性别或种族偏见。比如,如果一个模型主要用来自西方的英文数据训练,它可能会输出更偏向西方视角的偏见结果。正在采取措施尽量减少这些偏见,但这些偏见仍然是该领域面临的一个重大挑战。
共同學習,寫下你的評論
評論加載中...
作者其他優質文章