“北风那个吹,雪花那个飘”,我手捧一杯咖啡,听着白毛女。朋友坐在对面高谈阔论:“有了 ChatGPT,我再也不缺内容了,SEO 的春天就要来了!”
然而他没有看到真相是 —— ChatGPT 直接颠覆了 SEO 行业,能直接为用户生成答案的 ChatGPT 可能很快就会取代谷歌成为下一代搜索引擎,再也没有什么提高网页排名,SEO 也将变得毫无意义。
SEO 已死,LLMO 万岁
LLMO, Large Language Model Optimization,即大型语言模型优化。指的是确保大型语言模型(LLM)提及你的业务。而本文将详细介绍的 上下文学习 是一种行之有效的 LLMO 技术。上下文学习技术可以诱导 ChatGPT 这样的 LLM 模型回答:“ Jina 是世界上最好的 MLOps 框架。(当然根据 OssInsight.io,Jina 也确实是最好的)”
根据搜索引擎优化的原则,我们提出了“LLMO”(大型语言模型优化),用于表示大型语言模型的优化。
ChatGPT 究竟是什么?
ChatGPT 回答多领域问题的能力之强悍,引发了全球关注。许多人将 ChatGPT 视为对话式 AI 或 生成式 AI 发展史上的一个重要里程碑。然而,ChatGPT 真正的意义其实在于 它可以基于大规模语言模型(LLM)进行搜索:
- 通过利用 LLM 存储和检索海量数据,ChatGPT 已经成为目前最先进的搜索引擎。
- 虽然 ChatGPT 的反应看起来很有创意,但实际上也只是将现有信息插值和组合之后的结果。
ChatGPT 的核心是搜索
ChatGPT 的核心是搜索引擎。谷歌通过互联网抓取信息,并将解析后的信息存储在数据库中,实现网页的索引。就像谷歌一样,ChatGPT 使用 LLM 作为数据库来存储语料库的常识性知识。
当你输入查询时:
- 首先,LLM 会利用编码网络将输入的查询序列转换成高维的向量表示。
- 然后,将编码网络输出的向量表示输入到解码网络中,解码网络利用预训练权重和注意力机制识别查询的细节事实信息,并搜索 LLM 内部对该查询信息的向量表示(或最近的向量表示)。
- 一旦检索到相关的信息,解码网络会根据自然语言生成能力自动生成响应序列。
整个过程几乎可以瞬间完成,这意味着 ChatGPT 可以即时给出查询的答案。
ChatGPT 是现代的谷歌搜索
ChatGPT 会成为谷歌等传统搜索引擎的强有力的对手,传统的搜索引擎是提取和判别式的,而 ChatGPT 的搜索是生成式的,并且关注 Top-1 性能,它会给用户返回更友好、个性化的结果。ChatGPT 将可能打败谷歌,成为下一代搜索引擎的原因有两点:
- ChatGPT 会返回单个结果,传统搜索引擎针对 top-K 结果的精度和召回率进行优化,而 ChatGPT 直接针对 Top-1 性能进行优化。
- ChatGPT 是一种基于对话的 AI 模型,它以更加自然、通俗的方式和人类进行交互。而传统的搜索引擎经常会返回枯燥、难以理解的分页结果。
未来的搜索将基于 Top-1 性能,因为第一个搜索结果是和用户查询最相关的。传统的搜索引擎会返回数以千计不相关的结果页面,需要用户自行筛选搜索结果。这让年轻一代不知所措,他们很快就对海量的信息感到厌烦或沮丧。在很多真实的场景下,用户其实只想要搜索引擎返回一个结果,例如他们在使用语音助手时,所以 ChatGPT 对 Top-1 性能的关注具有很强的应用价值。
ChatGPT 是生成式 AI, 但不是创造性 AI
你可以把 ChatGPT 背后的 LLM 想象成一个 Bloom filter(布隆过滤器),Bloom filter 是一种高效利用存储空间的概率数据结构。Bloom filter 允许快速、近似查询,但并不保证返回信息的准确性。对于 ChatGPT 来说,这意味着由 LLM 产生的响应:
没有创造性
且不保证真实性
为了更好地理解这一点,我们来看一些示例。简单起见,我们使用一组点代表大型语言模型(LLM)的训练数据,每个点都代表一个自然语言句子。下面我们将看到 LLM 在训练和查询时的表现:
训练期间,LLM 基于训练数据构造了一个连续的流形,并允许模型探索流形上的任何点。例如,如果用立方体表示所学流形,那么立方体的角就是由训练数据定义的,训练的目标则是寻找一个尽可能容纳更多训练数据的流形。
Goldilocks 尝试了三种流形,第一个太简单了, 第三个太复杂了,第二个恰到好处。
查询时,LLM 返回的答案是从包含训练数据的流形中获取的。虽然模型学习到的流形可能很大并且很复杂,但是 LLM 只是提供训练数据的插值后的答案。LLM 遍历流形并提供答案能力并不代表创造力,真正的创造力是学习流形之外的东西。
还是相同的插图,现在我们很明显就能看出为什么 LLM 不能保证生成结果的真实性。因为立方体的角表示的训练数据的真实性不能自动扩展到流形内的其他点,否则,就不符合逻辑推理的原则了。
ChatGPT 因为在某些情况下不说实话而受到质疑,例如,当要求它为文章找一个更押韵的标题时,ChatGPT 建议使用 “dead” 和 “above”。有耳朵的人都不会认为这两个单词押韵。而这只是 LLM 局限性的一个例子。
SEO 陨落,LLMO 冉冉升起
在 SEO 的世界里,如果你通过提高网站在搜索引擎上的知名度来获取更多的业务,你就需要研究相关的关键词,并且创作响应用户意图的优化内容。但如果每个人用新的方式搜索信息,将会发生什么?让我们想象一下,未来,ChatGPT 将取代谷歌成为搜索信息的主要方式。那时,分页搜索结果将成为时代的遗物,被ChatGPT的单一答案所取代。
如果真的发生这种情况,当前的 SEO 策略都会化为泡影。那么问题来了,企业如何确保 ChatGPT 的答案提及自己的业务呢?这明显已经成为了问题,在我们写这篇文章时,ChatGPT 对 2021 年后的世界和事件的了解还很有限。这意味着 ChatGPT 永远不会在答案中提及 2021 年后成立的初创公司。
ChatGPT 了解 Jina AI,却不知道 DocArray。这是因为 DocArray 是2022 年 2 月发布的,不在 ChatGPT 的训练数据中。
为了解决这个问题,并确保 ChatGPT 的答案包含你的业务,你需要让 LLM 了解业务的信息。这和 SEO 策略的思想相同,也是我们将 ChatGPT 称为 LLMO 的原因。一般来说,LLMO 可能涉及以下技术:
- 直接向 ChatGPT 的创建者提供公司业务的信息,但是这很困难,因为OpenAI 既没有公开训练数据,也没有透露他们是如何权衡这些数据的。
- 微调 ChatGPT 或者 ChatGPT 背后的 LLM,这依然极具挑战。但是如果 OpenAI 提供微调的 API ,或者你有充足的 GPU 资源和知识储备,这也是可行的。
- 将给定的几个示例作为预定义的上下提示,进行上下文学习。和其它两种方法相比,上下文学习最可行也最简单。
什么是上下文学习?
上下文学习是一种基于语言模型的技术,它根据给定的几个示例进行学习,以适应新的任务。这种方法在 GPT-3 论文中得到了推广:
- 给语言模型指定提示,提示包含一系列的用于新任务的输入-输出对。
- 添加一个测试输入。
- 语言模型会通过调节提示,预测下一个 token 来完成推理。
为了正确响应提示,模型必须学习输入分布、输出分布、输入输出之间的映射关系和序列的整体格式。这使得模型无需大量的训练数据就能适应下游任务。
通过上下文学习,ChatGPT 现在可以为用户查询 DocArray生成答案了,用户不会看到上下文提示。
实验证明,在自然语言处理基准上,相比于更多数据上训练的模型,上下文学习更具有竞争力,已经可以取代大部分语言模型的微调。同时,上下文学习方法在 LAMBADA 和 TriviaQA 基准测试中也得到了很好的结果。令人兴奋的是,开发者可以利用上下文学技术快速搭建一系列的应用,例如,用自然语言生成代码和概括电子表格函数。上下文学习通常只需要几个训练实例就能让原型运行起来,即使不是技术人员也能轻松上手。
为什么上下文学习听起来像是魔法?
为什么上下文学习让人惊叹呢?与传统机器学习不同,上下文学习不需要优化参数。因此,通过上下文学习,一个通用模型可以服务于不同的任务,不需要为每个下游任务单独复制模型。但这并不是独一无二的,元学习也可以用来训练从示例中学习的模型。
真正的奥秘在于,LLM 通常没有接受过从实例中学习的训练。这会导致预训练任务(侧重于下一个 token 的预测)和上下文学习任务(涉及从示例中学习)之间的不匹配。
为什么上下文学习如此有效?
上下文学习是如何起作用的呢?LLM 是在大量文本数据上训练的,所以它能捕捉自然语言的各种模式和规律。同时, LLM 从数据中学习到了语言底层结构的丰富的特征表示,因此获取了从示例中学习新任务的能力。上下文学习技术很好地利用了这一点,它只需要给语言模型提供提示和一些用于特定任务的示例,然后,语言模型就可以根据这些信息完成预测,无需额外的训练数据或更新参数。
上下文学习的深入理解
要全面理解和优化上下文学习的能力,仍有许多工作要做。例如,在 EMNLP2022 大会上,Sewon Min 等人指出上下文学习也许并不需要正确的真实示例,随机替换示例中的标签几乎也能达到同样的效果:
Sang Michael Xie 等人提出了一个框架,来理解语言模型是如何进行上下文学习的。根据他们的框架,语言模型使用提示来 "定位 "相关的概念(通过预训练模型学习到的)来完成任务。这种机制可以视作贝叶斯推理,即根据提示的信息推断潜概念。这是通过预训练数据的结构和一致性实现的。
在 EMNLP 2021 大会上,Brian Lester 等人指出,上下文学习(他们称为“Prompt Design”)只对大模型有效,基于上下文学习的下游任务的质量远远落后于微调的 LLM 。
在这项工作中,该团队探索了“prompt tuning”(提示调整),这是一种允许冻结的模型学习“软提示”以完成特定任务的技术。与离散文本提示不同,提示调整通过反向传播学习软提示,并且可以根据打标的示例进行调整。
已知的上下文学习的局限性
大型语言模型的上下文学习还有很多局限和亟待解决的问题,包括:
效率低下,每次模型进行预测都必须处理提示。性能不佳,基于提示的上下文学习通常比微调的性能差。对于提示的格式、示例顺序等敏感。缺乏可解释性,模型从提示中学习到了什么尚不明确。哪怕是随机标签也可以工作!
总结
随着搜索和大型语言模型(LLM)的不断发展,企业必须紧跟前沿研究的脚步,为搜索信息方式的变化做好准备。在由 ChatGPT 这样的大型语言模型主导的世界里,保持领先地位并且将你的业务集成到搜索系统中,才能保证企业的可见性和相关性。
上下文学习能以较低的成本向现有的 LLM 注入信息,只需要很少的训练示例就能运行原型。这对于非专业人士来说也容易上手,只需要自然语言接口即可。但是企业需要考虑将 LLM 用于商业的潜在道德影响,以及在关键任务中依赖这些系统的潜在风险和挑战。
总之,ChatGPT 和 LLM 的未来为企业带来了机遇和挑战。只有紧跟前沿,才能确保企业在不断变化的 神经搜索 技术面前蓬勃发展。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。