何时何地,你需要提示工程、函数调用、RAG还是微调大模型?

news2024/9/21 16:50:31

介绍

在快速发展的生成式人工智能领域,某些流行术语已变得司空见惯:“提示工程”、“函数调用”、“RAG”和“微调”,你应该也经常遇到这些术语,但你是否能够理清这些概念之间的关系?这些其实都是一些大模型的应用策略和技术,本文将描述每个 LLM 策略的作用以及它们之间的关系,并简单介绍如何在它们之间选择最佳的用例。

回顾 LLM 的运作方式

在进一步讨论之前,让我们简单回顾一下 LLM 如何产生输出结果。

通俗地说,这就像完成完形填空一样:

  • 给定一个单词序列,LLM 会查阅词典中的所有单词,并评估每个单词作为下一个单词出现的可能性

  • 最有可能的单词将被选中并用于填空

  • 重复上述步骤,直到没有更多空间可以填写

LLM 如何产生结果

更深入地,为了进行这些“完形填空”,LLM经历了一个训练过程,即阅读所有人类知识并记录将每个 token 视为下一个 token 的可能性。(注意:1 个 token 代表一个或多个单词)

LLM 生成“完形填空”测试结果的过程就是“推理”过程。

训练和推理是使LLM能够按预期发挥作用的两个核心过程。

这也解释了为什么有时 LLM 会自信地说错话——它所训练的人类知识可能没有包含我们希望它谈论的主题的足够信息。

因此,为了使 LLM 能够正常运作,我们需要向 LLM 提供更多有关主题的背景有用信息。

所有策略,包括函数调用、RAG 和微调都是围绕这一点展开的。它们是为 LLM 提供更多上下文有用信息的不同方法。

这些策略有哪些?它们之间有何关系?

  1. 纯粹的提示

第一个策略是纯粹的提示。从名称上就可以看出这个策略是如何运作的:

  • 你向 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% 的用例:

  • 易于保持最新,因为我们只需要保持文档和矢量数据库为最新

  • 降低成本

可能考虑微调的场景:

  1. 模型输出的稳定性至关重要

  2. 在用户数量庞大的情况下,优化推理成本意义重大

  3. LLM 的生成速度具有重要意义

  4. 私人托管是必须的

读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓
在这里插入图片描述

👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉大模型实战案例👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉大模型视频和PDF合集👈

观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述
在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2120714.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenGL Texture C++ 预览Camera视频

OpenGL是一个图形API,并不是一个独立的平台。包含了一系列可以操作图形、图像的函数。基于Texture纹理强大的功能,本篇文章实现Android OpenGL Texture C 预览Camera视频流的功能。 项目github地址:https://github.com/wangyongyao1989/WyFFm…

Reflection Llama-3.1 70B:目前最强大的开源大语言模型

Reflection Llama-3.1 70B:目前最强大的开源大语言模型 模型特点性能表现使用建议未来展望 近日,一个名为Reflection Llama-3.1 70B的新型大语言模型(LLM)引起了业界广泛关注。该模型采用了名为"Reflection-Tuning"的创新训练技术,能够自主检测推理过程中的错误并及时…

入门必看!高薪+自由职业的3D建模师有多香?

‌3D建模‌是将现实世界中的物体或场景转化为三维数字模型的过程。这项技术连接着现实与虚拟两个世界,通过3D建模,我们可以将名胜古迹、雕塑艺术品等以三维的形式呈现于互联网,让用户体验到更加真实、立体的视觉感受。3D建模的应用领域广泛&a…

【基于 Spring Boot 的二手交易平台】

构建一个基于 Spring Boot 的二手交易平台是一个涉及多个组件和技术栈的复杂项目。以下是一个基本的框架概述,可以帮助你开始搭建这样一个平台: 技术栈选择 Spring Boot: 用于快速开发 RESTful Web 服务。数据库: MySQL, PostgreSQL, 或其他关系型数据…

华为 HCIP-Datacom H12-821 题库 (15)

有需要题库的可以加下方Q群 V群进行学习交流 1.以下关于 OSPF 路由聚合的描述,错误的是哪一项? A、OSPF 中任意一台路由器都可以进行路由聚合的操作 B、OSPF 有两种路由聚合方式:ABR 聚合和ASBR 聚合 C、路由聚合是指将相同前缀的路由信息聚合…

018.PL-SQL编程—包

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉&…

【Prompt Engineering提示:Active-Prompt、方向性刺激提示、PAL(程序辅助语言模型)】

Active-Prompt 思维链(CoT)方法依赖于一组固定的人工注释范例。问题在于,这些范例可能不是不同任务的最有效示例。为了解决这个问题,Diao 等人(2023)(opens in a new tab)最近提出了一种新的提示方法&…

Python的情感词典情感分析和情绪计算

一.大连理工中文情感词典 情感分析 (Sentiment Analysis)和情绪分类 (Emotion Classification)都是非常重要的文本挖掘手段。情感分析的基本流程如下图所示,通常包括: 自定义爬虫抓取文本信息;使用Jieba工具进行中文分词、词性标…

015.PL-SQL编程—块

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉&…

Python专项进阶——初步认识Numpy库

NumPy是Numeric Python的缩写,一个优秀的开源科学计算库。 个人理解,NumPy是一个主要围绕着数值数组对象(ndarray)(或叫做矩阵)进行各种操作的对象、函数集合。提供很多实用的数学函数,涵盖线性…

【大数据】Hadoop里的“MySQL”——Hive,干货满满

【大数据】Hadoop里的“MySQL”——Hive,干货满满 文章脉络 Hive架构 HQL 表类型 创建表语法 分区 数据导入导出 函数 内置函数 UDF Java Python 在阅读本文前,请确保已经对Hadoop的三大组件(HDFS、MapReduce、YARN)有…

启动动效流程梳理(一)

因为项目涉及一些启动相关的方案,以及平常处理问题的时候会遇到很多启动响应的问题,所以对启动动效的拉起流程进行一个全面的梳理,同时也借此即会对U版本的动效流程做一个初步的了解吧。 startActivityUnchecked: 启动的流程就先不…

Windows10 如何配置python IDE

Windows10 如何配置python IDE 前言Python直接安装(快速上手)Step1.找到网址Step2.选择版本(非常重要)Step3. 安装过程Step4. python测试 Anaconda安装(推荐)Step1. 找到网址Step2. 下载anacondaStep3. 安装…

动手学深度学习(pytorch)学习记录25-汇聚层(池化层)[学习记录]

目录 汇聚层(池化层):填充和步幅多通道 汇聚层(池化层): 降低卷积层对位置的敏感性,同时降低对空间降采样表示的敏感性。 汇聚层和卷积层的运动方式一样,从左上角向右下角移动指定步幅,汇聚层执行的是“采样”操作。…

【观察】联想数据网络产品线全新升级,构建高质量的AI网络底座

毫无疑问,数字经济时代,算力已成为推动千行百业数字化转型,赋能经济蓬勃发展的重要引擎,同时也成为衡量国家综合实力的重要指标之一。特别是随着以ChatGPT、GPT4为代表的AI大模型的发布,不仅对数据中心基础设施提出了巨…

ZBrush与Blender雕刻功能哪个更好些?

选择正确的3D软件首先会让你的创作过程更加轻松,尤其是在动画或大片电影制作方面。不同的软件提供不同的功能,并倾向于专注于特定领域,如绘画、动画或雕刻。如果你选择了适合你风格和目标的软件,你可以创作出极具创意的作品。 在…

数据结构:浅谈树的遍历方式

遍历的含义就是把树的所有节点(Node)按照某种顺序访问一遍。包括前序,中序,后续,广度优先(队列),深度优先(栈)5 种遍历方法。之所以叫前序、中序、后序遍历&a…

python 学习一张图

python学习一张图,python的特点的是学的快,一段时间不用,忘记的也快,弄一张图及一些入门案例吧。 写一个简单的测试: #!/usr/bin/python # -*- coding: UTF-8 -*- import osdef add_num(a, b):return a bif __name__…

【AIGC】探索超凡记忆:SuperMemory,你的私人智能书签助手!

🧠 构建你的第二大脑:SuperMemory 在这个信息爆炸的时代,我们每天都在互联网上浏览和保存大量的信息,但往往这些宝贵的数据就像被扔进了黑洞,再也没有被回顾和利用。 SuperMemory 开源项目应运而生,旨在解…

深度学习基础案例4--运用动态学习率构建CNN卷积神经网络实现的运动鞋识别(测试集的准确率84%)

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 前言 前几天一直很忙,一直在数学建模中,没有来得及更新,接下来将恢复正常这一次的案例很有意思:在学习动态调整…