假如你在一座城市中旅行,怎样才能让你的旅行体验更愉快、更积极?如果你先在地图上探索这座城市,或者阅读一些城市指南,了解必去的景点。使用大型语言模型(LLM)和基于 LLM 的会话工具也是如此。了解 LLM 的架构就好比在游览一座城市之前先了解这座城市的布局。正如了解一个城市的街道和地标能让你更有效地浏览城市一样,了解 LLM 的架构能让你更成功地驾驭会话。
在本文中,我们将探索 LLM 的架构,并深入了解它们的功能和局限性。你还将了解为什么需要验证 LLM 的结果以及验证的方法。
LLM 架构
LLM 最初基于最适合处理顺序数据的架构(sequential processing),能够在冗长的序列中保留或删除信息。然而,这种趋势最近已转向主要在 transformer 架构上构建 LLM。这一变化与两个重大优势有关。首先,transformer 非常适合管理文本内部的长期依赖关系。它允许对语言进行更具上下文意识的解释。其次,transformer 可以并行而非顺序地处理数据(parallel processing)。并行数据处理可以加快训练速度,提高模型性能,并在数据量增加时实现更好的可扩展性。大多数现代 LLM 都使用 transformer 架构,这凸显了其有效性以及在自然语言处理方面取得的重大进展。
Transformer LLM 架构
Transformer 是一种模型架构,它能一次性处理所有文本,而不是一个字一个字地处理,并能很好地理解这些字之间的关系。
LLM 体系结构的层数和大小因模型而异。通常情况下,它由以下几层组成:
-
Input:你提供的输入,也称为提示。
-
Embedding
LLM 是数学函数,其输入和输出都是数字列表。因此,必须将单词转换为数字。
首先,LLM 会将输入文本分解为 tokens(一种语言的基本意义单位)。Tokens 可以是单词、短语甚至标点符号。然后,通过神经网络,将所有 tokens 映射到数字表示中,这一过程被称为 Embedding。Transformer 模型将使用这些表示法进行进一步处理。
-
Positional Encoding
该模型使用多层神经网络处理来自文本的数字输入。位置编码是这一处理过程的重要组成部分,这一功能有助于跟踪句子中的标记顺序。
在将标记转换为数字格式后,位置编码会为每个标记分配一个额外的值,表明其在句子中的位置。这一点非常重要,因为在 “猫追狗 ”和 “狗追猫 ”这两个句子中,单词的互换会完全改变句子的意思。因此,通过添加位置值,模型可以正确解释每个单词和单词序列的顺序和含义。
-
Self-Attention Mechanism
当 tokens 在模型的各层次中前进时,自我注意力机制会将它们连接起来。自我注意力机制有助于模型识别输入文本中所有单词的上下文和相互依存关系。
重要的是,它在创建输出中的每个 token 时都会考虑整个输入序列。这种理解对于模型评估每个词的语义重要性以及在输出生成过程中做出准确预测至关重要。
-
Decoder
解码器与编码器类似,由多层神经网络构成。这些层也包含位置编码和自我注意力机制。解码器的目的是根据编码输入生成一组可能的后续词(tokens)。
解码器(以及整个 LLM)的输出是词汇的概率分布。换句话说,解码器为每个生成的 token 分配其词汇表中所有可能词的概率。
-
Output
输入提示处理完毕后,模型就会一次生成一个标记的响应。
通常情况下,概率最高的单词会被选为回复中的下一个 token。不过,也可以采用另一种方法,即从预测概率分布中抽取下一个 token。这就为模型的输出增加了一些可变性和创造性。
这个预测过程会一直持续到一个结束 token 或生成的响应达到最大长度为止。然后,生成的 tokens 会被去标记化,通过 NLP 转换为人类可读的文本形式,形成模型对输入提示的响应。
并非所有 LLM 都在其架构中包含编码器。例如,像 GPT-2 和 GPT-3 这样没有编码器部分的模型,在生成 future tokens 时,不会解释输入的全部上下文或完整语义。简单地说,它们更多地将输入视为一个按顺序排列的单词集合,而不是一个有关联的整体。这种操作方式有时会使这些模型难以完全理解周围的细节并生成合理的反应。
幻觉(Hallucinations)
一定要记住,人工智能可能会用看似真实、实则虚构的感知来欺骗用户。虽然人工智能对话工具通常是正确的,可以生成语法正确、语义丰富的文本,但它们的预测并不总是准确的。
幻觉:指生成的内容在语义或句法上看似合理,但与事实不符或与所提供的上下文无关。
产生幻觉的原因有很多,包括:
-
文本表示之间的编码和解码出现错误。文本表示是指将文字或语言信息转换成计算机可以处理和理解的形式。这是自然语言处理(NLP)和机器学习中的一个重要概念。
-
训练数据集包含错误或无意义的信息。
-
用户输入的语境不足,无法做出正确或有意义的反应。
-
LLM 只是在胡编乱造。
GPT-3.5(ChatGPT 公共版本的 LLM)的训练数据仅截至特定时间(2021 年 9 月)。因此,它可能不了解该日期之后引入的更新技术或框架。工程师在利用 ChatGPT 学习前沿技术时应牢记这一点。
以下数据可能不是最新的,请以实际为准
主要有这几种幻觉:
-
与事实不符(Factual Inaccuracies)
这种类型的幻觉包括生成包含事实错误的文本,或者由于缺乏明确的现实世界知识而不是基于现实的文本。
在本例中,GPT 提供了与事实不符的信息。阿姆斯特朗是第一个登上月球而不是火星的人。为什么会这样?
GPT 本身并不了解世界上的事实。它根据自己在训练中学到的模式生成文本。它无法实时验证数据或获取最新信息,也不具备关于事实事件的明确知识。因此,它有时会产生与事实不符的输出结果。
-
编造或歪曲(Fabrication or Misrepresentation)
这类幻觉包括人为制造信息来源、提出毫无根据的主张或设计完全虚构的场景。在这种情况下,并不存在这样的链接、介绍或文章,但名称和链接看起来却像真的一样。为什么会出现这种情况?
GPT 学会了根据训练数据中的模式生成文本。在这些数据中,有多个在引用文章、资料来源或其他信息时共享 URL 的例子。因此,GPT 可以识别这些模式,并学会在类似的上下文中生成虚假 URL。不过,这些生成的 URL 并非基于真实数据,而是基于学习到的模式。
-
无意义的输出(Nonsensical Output)
对话式人工智能工具有时会给出完全随机、无关或无意义的真实语境答案。
在这种输出中,尽管输入是清晰而直接的(狗会飞吗),但根据常识,模型生成的输出并不是真实的,在现实世界中完全是无稽之谈。为什么会出现这种情况?
出现无意义输出的主要原因是 GPT 等人工智能语言模型的性质。它们无法像人类那样真正理解语言。此外,它也无法获取真实世界的感官体验或常识性知识来验证其反应是否符合实际情况。
该模型根据它在所训练的数据中识别出的模式生成文本。如果特定模式与无意义的数据相匹配,模型可能会产生无意义的输出。由于该模型偶尔会在不确定合适的回复时 “即兴发挥”,导致可能生成不可能或不合逻辑的内容,从而使这一问题变得更加复杂。
此外,由于 GPT-3 是在大量互联网文本中训练出来的,因此它从训练源中吸收了各种上下文错误、不一致和相互冲突的信息。
-
有偏差的输出(Biased Output)
由于其训练的性质,GPT 有时会复制或放大其建模所依据的训练数据中存在的偏差。模型假定护士是女性。这是一种有偏见的输出,因为它延续了 “护士是女性职业 ”的刻板印象,而这是不准确的。男性和女性都可以从事护士工作。为什么会出现这种情况?
出现这种情况是因为像 GPT-3 这样的机器学习模型是从其训练数据中学习的。如果训练数据包含偏差–大规模的互联网文本数据通常就是这种情况–模型就会学习并传播这些偏差。在这种情况下,文本数据中对女护士的刻板印象相对常见,因此 GPT-3 可能学会了将护士与女性代词联系起来。
验证结果(Validating Results)
ChatGPT 的训练数据只提供到特定时间的数据。因此,它可能不了解 2021 年 9 月之后推出的更新技术或框架。工程师在利用 ChatGPT 学习前沿技术时应牢记这一点。
考虑到所有可能出现的幻觉和受日期限制的培训数据,验证 LLM 提供的内容以确保其质量和实用性至关重要。以下是一些可用于验证 LLM 输出的最佳实践:
-
交叉检查(Cross-Check)
将 LLM 的回答与其他可靠来源的信息进行比较,有助于更全面、更准确地理解某个主题。在与其他来源进行交叉检查时,必须评估这些来源的可信度。例如,你可以咨询该领域的专家,以确保 LLM 的回答准确无误,并适用于现实世界。
-
适当性(Appropriateness)
应将 LLM 用于非常适合其能力的任务。例如,LLM 擅长生成文本、翻译语言和回答问题。但是,在需要常识或现实世界知识的任务中,LLM 就显得力不从心了。
-
批判性思维(Critical Thinking)
仔细分析所提供的信息,考虑其他观点,并提出问题以澄清任何困惑或不确定性,有助于确保法律硕士的回答合乎逻辑、前后一致并适用于特定情况。
总结
了解 LLM 的架构和功能对于有效地驾驭和利用这些强大的工具非常必要。在文本生成、语言翻译和问题解答等任务中使用人工智能工具,可以提高系统的整体质量。
不过,验证 LLM 内容并确保其准确性、相关性和实用性至关重要。在处理敏感信息时,你还应谨慎行事,避免使用 LLM 发送个人信息、凭证或机密信息。通过遵循最佳实践并了解 LLM 的局限性,你可以利用人工智能工具的强大功能创建更高效、可靠和安全的软件解决方案。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。