介绍
在快速发展的生成式人工智能领域,某些流行术语已变得司空见惯:“提示工程”、“函数调用”、“RAG”和“微调”,你应该也经常遇到这些术语,但你是否能够理清这些概念之间的关系?这些其实都是一些大模型的应用策略和技术,本文将描述每个 LLM 策略的作用以及它们之间的关系,并简单介绍如何在它们之间选择最佳的用例。
回顾 LLM 的运作方式
在进一步讨论之前,让我们简单回顾一下 LLM 如何产生输出结果。
通俗地说,这就像完成完形填空一样:
-
给定一个单词序列,LLM 会查阅词典中的所有单词,并评估每个单词作为下一个单词出现的可能性
-
最有可能的单词将被选中并用于填空
-
重复上述步骤,直到没有更多空间可以填写
LLM 如何产生结果
更深入地,为了进行这些“完形填空”,LLM经历了一个训练过程,即阅读所有人类知识并记录将每个 token 视为下一个 token 的可能性。(注意:1 个 token 代表一个或多个单词)
LLM 生成“完形填空”测试结果的过程就是“推理”过程。
训练和推理是使LLM能够按预期发挥作用的两个核心过程。
这也解释了为什么有时 LLM 会自信地说错话——它所训练的人类知识可能没有包含我们希望它谈论的主题的足够信息。
因此,为了使 LLM 能够正常运作,我们需要向 LLM 提供更多有关主题的背景有用信息。
所有策略,包括函数调用、RAG 和微调都是围绕这一点展开的。它们是为 LLM 提供更多上下文有用信息的不同方法。
这些策略有哪些?它们之间有何关系?
-
纯粹的提示
第一个策略是纯粹的提示。从名称上就可以看出这个策略是如何运作的:
-
你向 LLM 发出查询
-
LLM 给出了答案
这其实就是“聊天”。你和 LLM 聊天就像和另一个人聊天一样。
当我们与 LLM 驱动的聊天机器人(例如 ChatGPT、Gemini 和 Copilot)聊天时,我们每天都会使用此策略。
针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料
分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓
👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈
2.代理+函数调用
第二种策略是 Agent 加函数调用。
此策略的工作原理如下:
-
你向 LLM发出查询
-
LLM 不会直接回答你,而是会参考给定的工具包,从中选择一个工具来先执行一些任务
为什么 LLM 会这样做?可能是因为它需要一些额外的信息,或者在回答你的问题之前需要满足一些先决条件。
这里的工具包是预先编写的函数或 API 调用的列表
LLM 将决定它想要使用的工具,并返回该工具的名称(即函数名称)
-
收到工具名称(函数名称)后,使用该工具(即调用函数)执行LLM所需的任务,并获取一些有用的信息。
-
您将有用的信息传回给 LLM,LLM 会使用它来生成对您原始查询的响应
如果这听起来仍然很抽象,让我们举一个例子:
-
你以旅行社的身份向 LLM 发出查询,例如“为我规划一次即将到来的圣诞节假期巴厘岛之旅”
-
LLM 认为,为了给你安排一个好的旅行,它首先需要你的预算信息。它参考了包含 get_budget()、get_destination_info()、get_weather() 等多个工具的给定工具包,并决定使用名为 get_budget() 的工具。
-
收到建议的工具名称后,您(作为应用程序)调用该函数get_budget()。假设它返回给您1000 元的预算。
-
你把1000元的预算信息传递给LLM,LLM会根据你的预算为你生成一份旅行计划清单
注意:函数调用绝对不仅限于单个函数。在此示例中,LLM 可能决定它还需要天气信息和目的地信息,因此它可能会选择其他工具。将调用哪些函数get_destination_info()以及get_weather()调用多少个函数取决于不同的因素,其中包括:
-
工具包中提供了哪些功能
-
上下文包括系统提示、用户提示和历史用户信息
-
等等
您可能已经注意到,这个过程涉及LLM(提供任何可能的答案)以及函数/API 调用(带有预设逻辑)。
与使用硬编码逻辑(例如 if else)来决定何时调用哪个函数/API 的传统方法不同,此过程利用 LLM 的强大功能根据上下文动态地决定何时调用哪个函数/API。
而且不同于单纯的提示,这个过程使得LLM能够通过函数/API调用与外部系统集成。
3. RAG(检索增强生成)
第三个策略是RAG。
除了上面 Agent + Function Calling 中提到的函数/API工具包之外,我们还可以为LLM提供一个知识库,知识库一般通过向量数据库来实现。
构建知识库:
-
我们收集与某些主题相关的文件,以便 LLM 能够准确地讨论这些主题
-
我们把它们分成更小的块
-
然后,我们为每个块创建嵌入(即数字表示),并将它们存储在向量数据库中
这个策略的工作原理如下:
-
你向 LLM发出查询
-
应用程序将从知识库中检索与用户查询最相关的信息。这就是“检索”的过程
检索到的信息将成为传递给 LLM 的最终提示的一部分。这是“增强”的过程(增强提示)
LLM 根据最终提示生成答案。这是“生成”的过程
4. 微调
第四个策略是微调。
就像编写函数一样,有两种方法可以将变量传递给它:
-
一是,从参数中传入变量,以便可以在运行时获取它;
-
二是,将其作为函数内的局部变量。
类似地,我们在上面的 RAG 策略中作为运行时提示传入的上下文知识,也可以在模型训练期间将其嵌入其中。这就是微调的情况。
想象一下,一家专门从事制药业的公司可能拥有庞大的知识库,但公众对此并不知情。在这种情况下,该公司可以选择基础大模型 (LLM),并通过将知识库嵌入新模型本身来对其进行微调。
何时使用哪种策略?
下图不是黄金法则,但可以提供一些指导:
虽然微调看起来像是最终的解决方案,但它通常成本更高且需要付出更多努力。
考虑到 RAG 的核心优势,您可能会发现RAG足以解决 70% 到 80% 的用例:
-
易于保持最新,因为我们只需要保持文档和矢量数据库为最新
-
降低成本
可能考虑微调的场景:
-
模型输出的稳定性至关重要
-
在用户数量庞大的情况下,优化推理成本意义重大
-
LLM 的生成速度具有重要意义
-
私人托管是必须的
读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用
对于0基础小白入门:
如果你是零基础小白,想快速入门大模型是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。
包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费
】🆓
👉AI大模型学习路线汇总👈
大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
👉大模型实战案例👈
光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉大模型视频和PDF合集👈
观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费
】🆓