嵌入对比生成:模型做的两件不同的事
嵌入和生成是两份不同的工作。搞清楚你的问题需要哪一个,是通往真正可用系统的最快路径。
人们谈论「用 AI」时,仿佛它是单一的一种能力。在实践中,大多数产品背后的模型至少做两件非常不同的工作,而把它们搞混,是项目停滞的一个常见原因。一件工作是生成:逐个 token 地产出新的文本、代码或图像。另一件是嵌入:把一段内容变成一串数字,捕捉它的含义,好让机器能把它与其他内容做比较。它们感觉相似,因为同一套底层机器常常同时驱动着两者,但它们回答的是不同的问题,属于系统里不同的部分。
本文用通俗的语言解释这两件工作,展示各自适合在哪里,并帮你认出你的问题究竟需要哪一个——因为出人意料地,很多「我们需要一个更聪明的模型」的问题,其实是「我们用错了工作」的问题。
生成做的是什么
生成是大多数人想到语言模型时所想象的那件工作。你给它一些输入——一个提示词、一个问题、一份写了一半的文档——它一次产出一块输出,每一块都基于此前的一切来选择。结果是此前不存在的新内容:一个答案、一份摘要、一次改写、一段代码。
生成的决定性特征是它在产出。它是开放式的。没有一份固定的正确输出菜单;模型在创作某种东西。这份力量也是它的代价。生成相对缓慢,因为它一步一步地工作;它相对昂贵,因为每一步都是真实的计算;它的输出会变化,因为每一步都有真正的选择。当你需要被创造出来的东西时,生成就是对的工作,而这些代价就是入场费。
嵌入做的是什么
嵌入不是新内容。它是一次测量。模型读一段内容,返回一串定长的数字——一个向量——它表示那段内容坐落在某种「含义空间」中的什么位置。两段含义相近的内容,在那个空间里落得很近;两段含义不同的内容,则落得很远。这些数字本身并不可供人阅读,而这没关系,因为它们存在的全部目的,就是被计算机拿来比较。
嵌入的决定性特征是它让你能大规模地测量相似度。一旦你的文档被嵌入,找到与某个查询最相关的那些文档,就是一次快速的数学运算——把查询的向量与存储的向量比较,按接近度排序。嵌入便宜、快速,并产出一个稳定、可复用、你能存储的结果。生成在创造的地方,嵌入在定位。
区分它们的一个简单办法
对你的问题问一个问题:我需要系统去做出某样东西,还是去找到或比较某样东西?
如果答案是「做」——写这条回复、起草这份摘要、翻译这段文字、生成这段代码——你需要生成。如果答案是「找」或「比较」——我的哪份文档回答了这个、这两张工单是不是重复、把这些评论按主题分组、这个查询是否接近我们见过的任何东西——你需要嵌入。许多真实功能两者都需要,按顺序使用,而认出它们之间的那道接缝,就是设计工作的大半。
它们如何协同
两件工作协作最清晰的例子,是检索增强生成(retrieval-augmented generation),也就是大多数「与你的文档对话」功能背后的标准模式。它分两个阶段运行,恰好映射到那两件工作上。
首先是嵌入阶段。你知识库里的每份文档都被预先嵌入一次,向量被存储起来。当用户提问时,你也把问题嵌入,并用向量比较拉出含义上最接近的那几个存储的块。这又快又便宜,也正是系统把成千上万份文档收窄到少数几个要紧者的方式。
其次是生成阶段。那少数几个被检索到的块,连同用户的问题一起交给生成模型,模型写出一个锚定在所提供上下文里的答案。嵌入做了寻找;生成做了书写。试图只用生成来完成整件事——把每份文档都塞进提示词——既慢又贵,很快就撞墙。试图只用嵌入来做,会给你相关的文档,却没有实际的答案。这两件工作是互补的,而不是可互换的。
为什么这个区分能省钱省时
把这两件工作分清楚,实际的回报是你不再用昂贵的工具去做便宜的工作。生成是昂贵的操作;嵌入是低廉的那个。一个把内容嵌入一次、然后为每个查询跑快速向量比较的系统,在搜索这一步上花费极少,并把昂贵的生成步骤留给它真正需要新文本的那一刻。
相反的错误很常见,而且代价隐蔽:让一个生成模型去做嵌入本能更好处理的工作。「这张支持工单和过去的工单相似吗?」不需要写任何东西——它需要比较,而这恰恰是嵌入的用途。把它从生成里走一遭,比用对工具更慢、更贵、更不可靠。同理,分类和去重通常是穿着生成戏服的相似度问题。认出那身戏服,正是节省所在。
它们各自在哪里失灵
每件工作都有一个值得了解的失败模式。嵌入按它的模型被训练去理解的方式捕捉含义,这意味着它们可能漏掉你的领域在意、而模型从未学过的区分——两个句子在一般意义上看起来相似,在你专门的语境里却含义相反。当检索返回看似合理却错误的匹配时,嵌入对「相似」的理解就是嫌疑人。
生成的失败模式则更为人所知:它可能产出流畅、自信而干脆错误的内容,因为它的工作是创作出某种看似合理的东西,而不是去验证它。这正是这两者在检索系统中被配对的原因——嵌入取来有依据的源材料,好让生成有事实可以立足,而不是凭空编造。两件工作都不会自我纠正;设计必须考虑到每一个是怎么失败的。
总结
两件工作,两个目的。生成创造新内容,一步一步——强大、开放式、且相对缓慢和昂贵。嵌入测量含义,好让内容能被大规模地找到和比较——快速、便宜、可复用。通往可用系统最快的路径,是为你问题的每个部分都问一句:你需要做出某样东西,还是找到某样东西,然后用匹配的那件工作。大多数稳健的 AI 功能,不是单个模型包揽一切;它们是把这两件工作编排好,让各自去做它擅长的事。把分工搞对,其余的就轻松多了。
