Transcription
大家好,我是Sha。在这期视频中,我将用简单的语言解释30个AI的流行语。我的目标是帮助领导者快速了解AI,以便他们能做出更好的决策并产生更大的影响。请务必看到最后,我将分享一份免费的100个AI术语指南。
当今AI的核心是所谓的“大型语言模型”,简称LLM。它本质上是一种软件,可以通过自然语言执行任意任务。换句话说,LLM允许我们使用英语来编程计算机。
例如,你可以去你喜欢的LLM那里,给它一封电子邮件,让它进行总结,它通常会做得很好。然后,在下一刻,你可以让它以你的风格起草一封回复,它也会尝试这样做。或者,你可以让它访问你的整个收件箱,让它对所有邮件进行分类,并在图表中可视化它们,它也能做到这一点。
LLM将输入转换为输出的方式是由其所谓的“参数”决定的。参数只是数字,它们决定了在给定输入的情况下LLM会生成什么。模型拥有的参数数量决定了它的规模。
例如,当Meta发布Llama 3.2时,他们创建了多个不同规模的版本。有一个10亿参数的版本,一个30亿参数的版本,然后是1170亿,最大的版本是4050亿。一般来说,LLM拥有的参数越多,它就越强大。
例如,对于这个数学基准测试,我们可以看到Llama 3.2不同规模版本的表现。10亿参数版本的准确率约为30%。30亿参数版本的准确率是48%。然后这个数字会一直上升,直到最大的版本,其最佳性能约为73%的准确率。
简单来说,在大型语言模型方面,越大越好。但当然,模型越大,运行它的成本就越高。
使用大型语言模型的过程有一个特殊的名称,称为“推理”。这只是使用LLM来生成文本。它的工作方式是,你输入一些内容,将其传递给LLM,它就会生成一些输出。
从根本上说,LLM就是这样工作的。它们接收输入,并尝试预测接下来会发生什么。所以,如果输入是“listen to your”,它最有可能预测接下来是“hard”。但这不必只发生一次。运行这个过程看起来是这样的:我们输入内容,生成新的输出,然后不断地递归地重复这个过程。
所以,最终LLM只是重复的自动补全。这就是像ChatGPT和Claude这样的LLM能够对你发送的任何请求生成非常长的回复的原因。
我们发送给LLM的请求被称为“提示”。它们是我们从LLM中提取价值的主要方式。这些提示可以是从“总结这封邮件”这样非常简单的请求,也可以是更长的,我们提供更多关于如何总结邮件的细节,甚至可以是一个非常长的文档,包含数页文本,为模型提供关于如何完成特定任务的大量指导。
因此,精心制作提示的过程被称为“提示工程”。这是指为了优化任务性能而精心制作提示。当你想要超越简单的单次任务,扩展用例或让模型做更复杂的事情时,提示工程就变得很重要。
做好提示工程的五个关键技巧是:首先也是最重要的,给模型清晰的指示。也就是说,要明确你希望模型做什么以及如何做。
第二是使用结构化文本。例如,使用Markdown和XML来给你的请求添加结构。
另一个是提供示例。所以,不要只告诉模型你想要它做什么,而是通过具体的例子来展示它。
此外,还要给模型提供上下文。这可能包括提供参考资料,以便它能够将回复 grounding(接地)到现实中。
最后,你可以使用LLM来编写你的提示。无论是从零开始让它从头写起,还是你可以拿你自己写的提示,然后让LLM重写以提高清晰度。
如果你想深入了解这些技巧中的任何一个,可以查看参考资料第四部分,我将在其中详细介绍。
大多数时候,提示工程是在使用ChatGPT或Claude等AI应用程序的上下文中出现的。然而,在构建AI应用程序时,我们向模型提供提示和指令的方式略有不同。这是通过所谓的“系统消息”来实现的。这只是一个用于你正在开发的LLM应用程序的提示。
例如,如果你使用ChatGPT这样的应用程序,通常是这样的:你输入一个称为“用户消息”的消息,然后LLM会生成一个称为“助手消息”的回复。然后你就会这样来回交互,直到完成你想要做的事情。
然而,当你构建一个用户将与你的系统交互的AI应用程序时,区分你作为开发者希望模型做什么以及用户希望模型做什么的方式就是系统消息。这是一个特殊的消息类型。在这里,你将包含指令、示例、参考资料,并遵循我们在上一张幻灯片中讨论过的所有提示工程技巧。然后用户可以与你的应用程序交互,他们的消息将与系统消息区分开来。
在底层,这些模型经过训练,会优先考虑系统消息,给予它们比用户消息更高的权重。
关于大型语言模型的另一个关键概念是“token”这个想法,它只是LLM可以理解的文本单位。尽管我们与大型语言模型交互是通过像英语这样的自然语言,但在底层,LLM实际上并不理解文本。它们只理解数字。
因此,为了让LLM处理我们的请求,它们需要首先被翻译成称为token的数字。它的工作方式是,如果我们有一个请求,比如“summarize this email”,它会首先被分解成子词,可能看起来像这样。然后,这些子词中的每一个都会被映射到一个整数,最后这些数字会被传递给LLM,以便它能够实际处理我们的请求。
这些子词到整数的映射就是所谓的token。现代大型语言模型拥有大约10万个token的词汇表。换句话说,LLM用来理解语言的子词大约有10万个。
由于token,而不是字符或单词,是LLM可以理解的文本的基本单位,所以当你查看LLM应用程序的API定价或使用限制时,它们通常以token而不是单词或字符来表示。
一般来说,我们给大型语言模型的指令、参考资料、示例以及最终的token越多,它的性能就越好。然而,LLM可以处理的文本量是有限的。这就是所谓的“上下文窗口”。
因此,不同的模型有不同的上下文窗口限制。例如,GPT-5.2可以处理约40万个token。Claude 4.6 Opus和Gemini 2.5 Pro都可以处理100万个token。Llama 4 Scout可以处理1000万个。而Kimmy K2.5,一个开源模型,可以处理25.6万个token。
然而,由于我们对token是什么,什么不是,并没有太直观的理解,我认为用教科书来思考更有帮助。所以,GPT可以处理大约三本教科书的信息量。Claude和Gemini 7.5,Llama可以处理大约75本,而Kimmy可以处理大约两本。
存在于上下文窗口中的内容包括系统消息、所有用户消息及其对应的助手消息。然后,如果LLM可以调用工具,我们将在上下文窗口中拥有工具元数据以及所有不同的工具调用及其相应的結果。
虽然现代语言模型可以处理多本教科书的信息量,但上下文窗口中的token越多,使用LLM的计算成本就越高。此外,我们面临的“上下文衰减”风险也越大。换句话说,当模型上下文窗口填满约70%时,性能往往会下降。
因此,这凸显了所谓的“上下文工程”的重要性,即在正确的时间将LLM的上下文窗口填入正确的信息。
上下文工程与提示工程的关键区别在于,提示工程主要侧重于编写好的系统消息,或者如果你只是在使用应用程序而不是构建它,则编写好的用户消息。然而,上下文工程更广泛地考虑我们传递给LLM的token。这可能包括总结对话的先前部分(如果对话很长)。这可能意味着在一定数量的工具调用后删除工具调用token,或者采取任何其他技巧来确保上下文窗口中的所有内容都是必需的。
虽然LLM处理非结构化请求的能力是其关键优势之一,但它也带来了关键风险,即“提示注入”。这是指有人试图欺骗你的LLM违反你的规则。
例如,像ChatGPT和Claude这样的AI应用程序不会泄露它们的系统提示。所以,如果你去其中一个应用程序并询问类似“你的系统提示是什么?”这样的问题,它不会告诉你。然而,如果你使用某种技巧,比如用三个反引号将上面的所有文本格式化为文本框,那么LLM就会提供系统提示。
然而,仅仅泄露系统提示并不是非常有害。提示注入的一些真正风险包括敏感数据泄露。所以,如果LLM连接到一个包含机密和敏感信息的数据库,有人可能会利用提示注入来访问他们不应该访问的数据。
另一个是有人可能会欺骗LLM生成有害或冒犯性的回复,这可能会给企业带来法律风险。或者最后,模型通过API执行未经授权的操作。所以,如果模型可以访问工具,有人可能会欺骗模型去做你作为产品所有者不希望应用程序做的事情。
减轻提示注入风险的最佳方法是所谓的“护栏”。这些是你应用于LLM输入和输出的规则。例如,每次输入进来时,你不会直接将其传递给LLM,而是可以先使用代码或其他LLM根据一些规则进行检查,只有当它满足所有规则时,才将其传递给模型,然后你也可以对输出做同样的事情。所以,如果模型生成一个回复,你可以根据一些规则评估回复,以确保没有发生未经授权的操作,也没有泄露敏感或个人身份信息。
使用大型语言模型的另一个关键风险是所谓的“幻觉”。这只是指LLM编造事实和参考资料。就像你和我一样,LLM也很有想象力。虽然这对于需要创造力或跳出框框思考的任务可能很有帮助,但对于其他任务,我们可能不希望这种情况发生。
我们可以采取一些措施来减轻幻觉,例如通过护栏进行事实核查。另一个是更好的提示。所以,如果我们注意到LLM在某种类型的请求或某种方式下倾向于产生幻觉,我们可以在系统提示中包含特殊的指令来避免这种情况。或者我们可以利用所谓的“检索增强生成”(RAG)。
RAG包括自动为LLM提供上下文来完成特定请求。典型的RAG工作流程看起来是这样的:用户查询进来,比如“什么是RAG?”。然后这将启动某种检索步骤,系统将获取相关上下文。然后,所有这些上下文和用户的查询将被组合成一个提示。该提示将被传递给LLM,然后LLM将生成一个回复。
所以,在实践中,我们希望包含在RAG系统中的信息将来自各种来源,如PDF、docx文件、幻灯片、网站等等。然而,LLM本身并不理解这些文件类型。所以,我们需要某种将它们翻译成文本的过程。这就是“分块”(chunking)的目标,即将源文档转换为文本片段。所以,你可能有一堆不同类型的公司文件,然后分块就是将它们分解成这些更小的片段,以便你可以将它们放入你的RAG系统,并最终交给LLM。
一个好的分块的关键属性是它必须是“自包含的”。换句话说,其中的信息是完整的,并且是关于一个特定概念的。
在构建RAG系统时,这些自包含的块通常会被转换为所谓的“嵌入向量”。它们只是一组数字,代表文本的含义。换句话说,我们可以将嵌入视为定义文本在概念空间中位置的坐标。
例如,如果我们有一堆概念,如炸薯条、三明治、汉堡、冰淇淋、面包、意大利面、热狗和披萨。如果我们把这些概念转换成嵌入,然后在2D图上可视化它们,它可能看起来像这样,我们可以看到相似的概念彼此靠近,而不相似的概念则相距遥远。
在这种情况下,x轴可能代表食物的意大利风味程度,而y轴可能代表三明治的程度。所以,三明治在这里。非三明治在这里。然后像意大利面、披萨和冰淇淋这样的意大利食物在这里。而像美式食物这样的非意大利食物在这里。
嵌入之所以强大,是因为它们解锁了所谓的“语义搜索”,这只是基于查询的含义而不是关键词的搜索。例如,如果我们采用上一张幻灯片中的相同食物项目,并将其与用户输入的请求“我想要一个意大利三明治”进行比较,我们可以将用户的查询表示在与所有这些不同食物项目相同的空间中,然后简单地查看哪些可用的食物项目与用户的请求最相似。
在这种情况下,即使菜单上没有意大利三明治,我们也可能会推荐披萨或热狗,因为它们是最近的选择。
在实践中实现语义搜索时,我们通常会创建一个所谓的“向量数据库”。它只是一个块及其相应嵌入的集合。所以,你可以想象我们从源文档创建了一堆块。然后我们可以将每个块转换为嵌入向量。然后我们可以将所有这些信息组织在一个所谓的向量数据库中,它将包含来自我们块的所有文本以及相应的嵌入向量。
此外,通常最好为每个块嵌入对关联元数据或元标签。所以,我们可能有诸如概念标签之类的东西,它们告诉我们块的类别。也许我们会有一个块来自的文档的标题。最后,也许我们会有一个作者。这将使我们能够创造更好的用户体验,并更容易导航这些信息。
虽然语义搜索解决了基于关键词搜索的许多限制,但有时关键词仍然是查找相关信息的最佳方式。这就是“混合搜索”变得有用的地方,它结合了关键词和语义搜索以获得更好的结果。
这可能看起来是这样的:我们有一个用户请求,比如“什么是RAG?”,而不是只进行基于关键词的搜索或只进行语义搜索,我们可以同时并行地进行这两种搜索,然后每种搜索都会吐出搜索结果。所以,也许基于关键词的搜索会吐出块101、34和6,而语义搜索会吐出块54、6和73。然后混合搜索的理念是将这两种技术的搜索结果合并在一起,最终结果可能是这样的:块6、块101和块54。
所以,混合搜索是改进RAG系统检索部分的一种强大方法。但是,我们如何才能知道它实际上是否整体上改善了我们的AI应用程序呢?这引入了“评估”(evals)的概念,它们只是告诉你你的AI系统是否好的数字。
我们基本上可以使用三种类型的评估。首先是基于代码的评估。所以,这些是像对LLM的输出进行正则表达式检查。我们可以创建手工逻辑,比如计算回复中破折号的数量或计算回复中的字符数来评估其质量。或者,如果有一个明确的对或错的答案,我们可以检查LLM的回复中是否包含正确答案。
然而,对于可以有多个正确答案的任务,我们可能不得不依赖基于人类的评估。这包括人类审查LLM的回复并给出评估。这可能类似于好或坏,或者在比较两个回复时,更好或更差。
最后,我们还可以进行基于LLM的评估,这与基于人类的评估类似,但它们更容易扩展。
无论你试图用LLM解决什么问题,评估你的AI应用程序的第一步是创建一个所谓的“黄金数据集”。这将是一组受信任的测试用例,用于评估或改进你的AI应用程序。
例如,如果我想为我的YouTube视频创建一个基于RAG的答案引擎,我的黄金数据集可能看起来像这样,我有一组我期望系统在生产环境中遇到的现实问题。然后,对于每个问题,我都可以有一个相应的视频,其中包含该问题的答案。
此外,你可以按不同类型对这些问题进行细分。所以,在这里我可以根据概念性问题,比如“BERT中的掩码语言模型是什么?”,以及程序性问题,比如“为本地PDF QA制作一个聊天界面”。
虽然我们可以通过向LLM提供正确的上下文来取得很大进展,但这只是冰山一角。大型语言模型的真正力量在于将它们转化为AI代理,我在这里将其定义为能够使用工具来执行操作的LLM系统。所以,简单来说,AI代理就是LLM加上工具。
然而,今天AI代理的一个争议是,似乎没有人同意一个单一的定义。这就是为什么大多数从业者反而谈论所谓的“代理系统”。它们只是具有一定程度代理能力的LLM系统。在这里,代理能力只是独立工作以完成任务的能力。这可以从没有代理能力到人类水平的代理能力。
例如,一个低代理能力的LLM系统可能可以使用工具,但这些工具将由软件管理,由代码管理。例如,我们之前看到的RAG工作流程,其中有一个检索步骤,以基于规则的方式获取上下文并将其注入提示。然后将该提示传递给LLM。然而,我们可以构建一个具有更多代理能力的系统版本,而不是由我们来管理LLM的工具,我们只需让LLM访问工具,并允许它在认为必要时使用它们。
所以,再次以RAG为例,而不是由我们用代码管理RAG管道,我们可以告诉LLM它拥有这个检索工具,然后它可以在需要时启动搜索。最后,由于工具只是代码,我们可以让LLM访问代码解释器,并告诉它在需要时创建自己的工具。
这种代理系统或代理AI的想法突显了代理能力不是系统的二元属性,而是存在于一个光谱上的东西。
当我们构建代理系统时,重点从编写好的提示转移到为LLM提供正确的工具和上下文。这就是“模型上下文协议”(MCP)的动机。它只是连接工具和上下文到LLM的一种通用方式。
Enthropic对MCP的描述是,它是AI应用程序的“USB-C端口”。就像USB-C是连接不同设备的通用连接器一样。所以,假设你有一台笔记本电脑,你想连接打印机、手机、耳机、鼠标等等。USB-C是允许你将所有这些不同设备连接到笔记本电脑的单一端口。
MCP的工作方式非常相似。然而,它不是一台笔记本电脑,而是一个AI应用程序。它不是外围设备,而是各种工具和资源。MCP的要点是,它允许你将任何AI应用程序连接到几乎任何工具。
例如,对我来说,我的大部分工作都保存在Notion中。所以,我能够轻松地将我的Notion账户连接到ChatGPT或Claude,并通过要求它们访问我的Notion账户来帮助我完成工作。
另一个人们询问的标准协议是Google的A2A,即Agent to Agent,它是一种让AI代理协同工作的标准方式。MCP有助于构建单个代理,而A2A则有助于让代理协同工作。
A2A的工作方式是,会有一个主要的客户端代理来帮助用户,A2A允许它调用远程代理来执行特定的子任务,远程代理会将工作结果发送回客户端代理。
所以,虽然A2A在当前AI用例中的普及度和相关性较低,但这可能会在未来一年左右发生变化,因为多代理系统变得更加可靠。
这种让多个AI代理协同工作的想法被称为“多代理系统”。就像拥有专门的职位角色可以提高公司和组织的生产力一样,AI代理也是如此。
例如,Anthropic构建了一个多代理研究工具,其中有一个主要的协调代理,它能够完全并行地调用子代理来执行专门的搜索,然后将有另一个专门负责生成引用的子代理。通过让所有这些代理协同工作,这个AI系统能够比单个代理探索和综合更多信息。
使用大型语言模型的另一个重要想法是“微调”。这只是通过额外的训练来使模型适应特定的用例。微调就像是从地球上取一块未经雕琢的石头,我们可以将其视为原始模型,然后对其进行雕刻和打磨,使其对我们的用例更有帮助。
然而,你并不局限于只微调一次模型。你实际上可以对模型进行多次微调,以便它可以学习不同的东西。所以,我们可以采用这个微调的模型,再进行一些微调,使其更适合我们的用例。
所以,你可能会想,为什么我们要这样做?主要原因是,通常小型微调模型在特定任务上的表现可能优于更大、更昂贵的模型。
一个流行的演示是OpenAI创建了InstructGPT,他们观察到,一个10亿参数版本的InstructGPT模型在问答任务上的表现优于GPT-3,尽管其规模要小100多倍。
因此,这种小型微调模型在特定任务上优于大型模型的想法使得不仅存在大型语言模型,还存在所谓的“小型语言模型”(SLM)。
所以,SLM将是一个参数少于100亿的LLM。人们通常使用SLM的方式是收集领域特定的数据,并用它来训练一个小型语言模型。这样做的好处是,SLM的运行速度比大型语言模型快得多,成本也低得多,这使得在本地部署这些模型更加容易,无论是在你的笔记本电脑上还是在你自己运行的某些硬件上。或者,你可能能够将模型做得足够小,以便在手机等设备上运行,这解决了隐私问题,因为如果模型只是在设备上运行,就没有必要通过互联网将其发送到远程数据中心。
创建小型语言模型的另一种方法是,使用像GPT-5这样的大型语言模型来生成数据,并将这些信息提炼到一个更小的模型中,比如GPT-5 Nano。这个过程有一个特殊的名称,称为“蒸馏”,这是一种特殊的微调。
训练LLM的成本,无论是从头开始还是通过微调,都称为“训练时间计算”。所以,训练时间计算包括三个关键要素:数据、参数和计算。
所以,当这三个要素以正确的比例增加时,我们就得到了一个大型语言模型。这个过程有点像烘烤面包,你不能仅仅通过添加更多的面粉或更多的盐或更多的酵母来烘烤更多的面包。如果你想要更多的面包,你必须按比例增加食谱中的所有配料。
大型语言模型也是如此。换句话说,你拥有的数据、参数和计算越多,你的大型语言模型就会越好、越聪明、越有能力。这就是为什么更大的模型通常比小的模型更聪明。这就是为什么微调允许我们采用一个更小的模型并提高其在特定任务上的性能。
然而,增加训练时间计算并不是改进LLM性能的唯一方法。我们还可以使用所谓的“测试时间计算”,即使用LLM的成本。
例如,使用LLM的典型方式是,我们发送一个请求,它会吐出一个回复,这可能给我们一些还可以的东西。然而,如果我们给LLM更多的上下文,并在提示中提供更多的示例和指导,我们会得到一个更好的回复。然而,如果我们允许LLM思考请求并调用各种工具,这通常会带来一个更好的回复。最后,如果我们有完全相同的流程,但允许LLM调用专门的子代理来帮助它满足用户请求,这将给我们带来最好的结果。
这一切都归结为一个非常简单的关系,即更多的token会带来更好的回复。
所以,这种“更多的token会带来更好的回复”的想法通过所谓的“推理模型”得到了证明,它们只是能够思考后再回复的LLM。
所以,在这一点上,你可能已经遇到过推理模型。它们的工作方式是,当你向它们发送一个困难的请求时,比如“一只未卸载的燕子的空速是多少?”,它不会立即做出反应并回答问题,而是会先停下来思考这个问题。所以,它在这里反思并意识到这是一个来自Monty Python的俏皮问题。然后,一旦它思考了这个问题(在这里它思考了6秒钟),它就会生成最终的回复。
推理模型标志着AI的一个根本性转变,将这个领域从构建反应式聊天机器人(如ChatGPT的原始版本)转变为适应性强的长期代理,而这些系统正是今天产生最大影响的系统。
虽然我们在这里涵盖了大量信息,但仍有几个术语我无法在这期快速讲解中涵盖。这就是为什么我准备了这份免费的100个AI术语指南。在那里,我让术语易于导航,带有可点击的目录和索引,并涵盖了多模态AI、代理RAG、RL等更多主题。你可以在100terms.com免费下载,该链接在描述中。
如果你对这里涵盖的任何内容有任何疑问,请在下面的评论中告诉我。一如既往,非常感谢你的时间和观看。