一张图读懂大模型应用是如何工作的,一图胜千言

简介: 用一张图,带你轻松读懂大模型应用的工作原理。不需要复杂的代码和艰深的理论,只需要一张图,就能让你对大模型有一个全新的认识

在科技飞速发展的今天,人工智能(AI)早已不再是遥不可及的科幻概念,而是融入了我们生活的方方面面。其中,大模型作为AI领域的重要分支,以其卓越的表现力和广泛的应用前景,吸引了无数人的目光。但你是否也曾经好奇,这些看似无所不能的大模型,究竟是如何工作的呢?

今天,我们就来用一张图,带你轻松读懂大模型应用的工作原理。不需要复杂的代码和艰深的理论,只需要一张图,就能让你对大模型有一个全新的认识。

我先把图放到最上面 让大家有个直观的感受,然后会分为几个步骤去解释图中提到的一些概念,最后总结大模型的工作流程以及两个重要概念的原理。

在这里插入图片描述

01. 什么是大模型

我们看看大模型自己是怎么回答的
在这里插入图片描述

02. 大模型应用架构相关概念

同学们可以把上面的图截下来,对照着看便于更好的理解

应用程序:
这个不多说,就是我们自己的业务程序,我们自己写的代码

基础大模型:
比如 GPT、ERNIE(百度开发的一个基于知识增强的语义表示模型)等等

Prompt:
提示词,prompt 的概念是指您向模型提供的输入文本或指令,以引导模型生成特定类型的响应。这个prompt可以是一个问题、一段描述、一个任务说明,甚至是一部分对话历史记录等。通过设计和优化prompt,您可以引导模型生成符合预期的回复或完成特定的任务。

APIs:
三方或者是我们自己提供的api接口

RAG:
RAG( Retrieval-Augmented Generation )即检索增强生成。RAG模型结合了检索和生成两种技术,以提高文本生成任务的效果。这部分也可以理解为检索知识库

  • 知识:由我们来提供的知识文档 可以是pdf、word等
  • 向量数据库:向量数据库是一种专门用于存储和管理向量数据的数据库系统,这些向量数据通常是由机器学习模型生成的,用于表示特定对象或概念的特征。
  • Embeddings:它通常指的是将数据(如文字、图片、音频等)映射到一个低维度的向量空间的过程。具体来说,Embeddings可以看作是一种特征表示学习技术,它能够将原始数据(如文本中的单词、句子或图像中的像素等)转换为低维、连续的向量表示,这些向量能够捕捉到原始数据的语义或结构信息。

Fine-tuning:
微调的意思,把知识库知识通过微调进行机器训练和大模型进行融合,这种方式就是提前学习,后面就不用通过prompt的方式把向量数据库的内容给到大模型了,比向量数据库更深刻,但是这种方式比较烧钱,而且没有向量数据库的方式实时

Function Calling:
大模型通过 Function Calling 的方式向应用程序提要求。比如,应用程序向大模型提出一个prompt:帮我把空调温度提高2度, 首先大模型不能直接调用三方api,因为大模型会产生幻觉(产生破坏效应),所以大模型拿到问题后需要靠应用程序去中转,怎么中转呢,就是靠Function Calling去反向告诉应用程序你应该去调用什么函数,然后我们调用函数拿到结果之后,把结果再通过prompt的方式给到大模型,然后大模型会为结果产生后续语言的返回等。

03. 大模型应用工作流程

在这里插入图片描述
还是把这张图放着比较合适~

下面通过3个简单的例子来说明上图是怎么运转的

例子1(简单问答):
小明:请一句话来形容项羽
大模型: 项羽,一代豪杰,勇猛无双,却终因刚愎自用,悲壮落幕,成为历史长河中璀璨的流星。

例子1的工作流程:首先小明通过应用程序输入一个问题,然后通过prompt也就是提示词的方式传递给基础大模型,然后大模型通过分析等直接将答案response响应给应用程序。

例子2(知识库):
小明:公司的报销制度
大模型: 吧啦吧啦一堆。。。

例子2的工作流程:首先要明确的是你们公司的报销制度是不公开到互联网的,所以大模型并不知道你们公司的报销制度,那就需要通过知识库的方式来解决,其中有两种方案:

  • 提前准备好企业知识库,然后把知识文档通过Embeddings的方式存到向量数据库,然后应用程序先去向量数据库检索,拿到内容之后再将内容通过prompt的方式传给大模型,大模型分析之后将响应结果给到应用程序。(后面的章节会讲解这部分具体怎么操作的)
  • 将企业知识库通过Fine-tuning 微调的方式提前训练到大模型中,这种方式上面也提到了,比向量数据库更深刻,但是这种方式比较烧钱,而且没有向量数据库的方式实时,更新就需要重新训练而且还存在一定风险。提前将知识训练到大模型之后,应用程序提出企业问题后大模型就能直接给出答案了。

例子3(调用api):
小明:请帮我预约一场今天2点的会议
大模型: 好的,请问您都需要邀请谁来参会呢?
小明:小虎
大模型:已为您预约了今天的会议,请您准时参加哦~

例子3的工作流程:先说明下这个场景可能会用到两个基础模型(一个用来做意图识别,一个用来做执行)当然都需要通过提示词的方式来调优,这里先不展开讲了。小明通过应用程序预约了一场会议,然后应用程序通过prompt将问题给到了大模型1,大模型1分析发现用户要预约会议,但是又没有说明参会人,那他就会告诉应用程序这个用户想要预约会议但是没有参会人(这一部是通过prompt调出来的),然后应用程序就会告诉用户你要告诉我都有谁来参会,然后小明输入参会人之后,大模型1判断小明要预约会议并且参数完整,然后告诉应用程序,应用程序就将小明的输入携带Function Calling需要的参数通过prompt的方式传递给大模型2,大模型2分析后将输出通过Function Calling的方式(也就是告诉应用程序你要掉什么函数等等)给到应用程序,应用程序发起会议预约调用接口,完成会议预约。

04. Function Calling原理

使用Function Call功能时,你需要定义(并不是真的写程序去定义一个函数,而仅仅是用文字来描述一个函数)一些function(需要指定函数名,函数用途的描述,参数名,参数描述),传给LLM,当用户输入一个问题时,LLM通过文本分析是否需要调用某一个function,如果需要调用,那么LLM返回一个json,json包括需要调用的function名,需要输入到function的参数名,以及参数值。总而言之,function call帮我们做了两件事情:1.判断是否要调用某个预定义的函数。2.如果要调用,从用户输入的文本里提取出函数所需要的函数值。

一个简单例子:
将以下内容作为prompt的参数传递给大模型(不同的模型接收function call的参数是不一样的)

    {
   
   
        "name": "get_current_weather",
        "description": "获取今天的天气",
        "parameters": {
   
   
            "type": "object",
            "properties": {
   
   
                "location": {
   
   
                    "type": "string",
                    "description": "获取天气情况的城市或者国家,比如北京、东京、新加坡"
                },
                "time": {
   
   
                    "type": "string",
                    "description": "时间信息"
                },

            },
            "required": ["location", "time"]
        }
    }

本篇文章到这里就结束了,最后送大家一句话 白驹过隙,沧海桑田

相关实践学习
使用CLup和iSCSI共享盘快速体验PolarDB for PostgtreSQL
在Clup云管控平台中快速体验创建与管理在iSCSI共享盘上的PolarDB for PostgtreSQL。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
8月前
|
Cloud Native Go 开发工具
如何让CSDN学习成就个人能力六边形全是100分:解析个人能力雷达图的窍门
如何让CSDN学习成就个人能力六边形全是100分:解析个人能力雷达图的窍门
167 0
|
1月前
|
算法
2022国赛数模A题思路以及解析(附源码 可供学习训练使用)
2022国赛数模A题思路以及解析(附源码 可供学习训练使用)
125 1
|
10月前
|
程序员
程序员必备的软技能-金字塔原理拆解(上)
程序员必备的软技能-金字塔原理拆解(上)
190 1
|
10月前
|
程序员
程序员必备的软技能-金字塔原理拆解(下)
程序员必备的软技能-金字塔原理拆解(下)
122 0
|
数据可视化 数据挖掘 C++
RNAseq|WGCNA-组学数据黏合剂,代码实战-一(尽)文(力)解决文献中常见的可视化图
RNAseq|WGCNA-组学数据黏合剂,代码实战-一(尽)文(力)解决文献中常见的可视化图
207 0
|
编解码 算法 数据库
你知道数字图像处理的经典Lenna图背后的故事吗
你知道数字图像处理的经典Lenna图背后的故事吗
|
机器学习/深度学习 人工智能 自然语言处理
扩散模型背后数学太难了,啃不动?谷歌用统一视角讲明白了
扩散模型背后数学太难了,啃不动?谷歌用统一视角讲明白了
204 0
|
机器学习/深度学习 数据可视化 算法
2022数模国赛C题思路解析(可供训练用 源码可供参考)
2022数模国赛C题思路解析(可供训练用 源码可供参考)
379 2
2022数模国赛C题思路解析(可供训练用 源码可供参考)
「游戏建模干货」建模大师几步操作,学习经典,赶紧脑补一下吧
在开始为尼尔森建模前,我所想的是制作一个可爱的角色,所以我不仅要在形状上下功夫,而且还要在表情上下功夫。我在ZBrush中建模了尼尔森。首先我确定了身体大小,然后调整了比例,最后添加了细节。模型完成之后,我将其导出到3dsMax。然后头发进行了建模,因为我想让头发有一个大致的造型,可以使用一些基于头发loop而使用的Ornatrix系统。
326 0
「游戏建模干货」建模大师几步操作,学习经典,赶紧脑补一下吧
|
数据安全/隐私保护
混沌理论作业简析——两人一组_图像加密解密小游戏
混沌理论作业简析——两人一组_图像加密解密小游戏
109 0
混沌理论作业简析——两人一组_图像加密解密小游戏