前言
-
在把AI大模型能力接入微信后,发现很多朋友想要落地在类似客服的应用场景。但目前大模型存在幻觉,一不留神就胡乱回答,这在严肃的商用场景下是不可接受的。
-
当我想要解决此问题时,发现虽然资料很多,但是多数太偏“技术向”,对于很多和我一样的非技术从业者来说,犹如天书一般。有落地需求的朋友们,即使完成了通路搭建,也无法真正的应用。
-
落地场景,幻觉是不得不直面的问题。而非技术从业者的小白们,很难找到一个“说人话”的文章,让他们完全了解并应用。
-
而我对此比较感兴趣,同时作为产品经理,有一些用户思维和技术基础。因此我斗胆在整理、学习了多位前辈的成果后,写一篇讲给“小白”们的教程。
⚡ 以下内容,如有错漏,欢迎留言补充、批评、指正。
一、对话示例
如果我直接讲理论部分,我相信小白强迫自己看了前200字就会关掉窗口。因此,我们先将这个过程具象化。
以下是一个问答机器人的界面。这是一个示例,你可以把右侧的对话当做是微信的对话框,这些对话交互是可以在任何一个受支持的窗口下实现的。
上方页面左侧画红框的地方,是这个“问答机器人”的配置,右侧是与“机器人”的一轮对话。
左侧有三处配置:
-
AI模型
-
提示词
-
知识库。
模型、提示词、知识库 三者可以想象成:
-
**大语言模型:**是一个学习过无数本书、拥有无穷智慧的人。他读过无数的书、看过无数的段子,因此对公共知识、学识技能、日常聊天十分擅长。然而,在工作场景下,只会聊天侃大山可不行,你想让他帮你干活。这个时候,就需要“提示词”出场了,
-
**提示词:**是你告诉这个全知全能的人,他是一个什么样的角色、他要专注于哪些技能,让他能够按照你的想法,变成一个你需要的“员工”。
-
**知识库:**相当于你给这个“聪明”员工的发放了一本工作手册。即使是看过再多的书、浏览过再多的文字,也不会准确的知道见到老板娘过来吃饭要打三折,张梦飞过去吃饭要打骨折。而知识库,就是把这些内容写在了工作手册上。让这个聪明的员工,见到有人来的时候,就翻一翻手册,然后再做出反应。
我的设定:
-
AI模型:这里使用的是阿里千问模型。
-
提示词:这里设定的角色是“美嘉”,是按照美嘉的人设、背景和对话风格做的设定。
-
知识库:这里放的是《爱情公寓》全季的剧情,让“美嘉”拥有了自己过往的“记忆”,知道自己做过什么、好朋友是谁等等。
图中右侧是一个十分简单的问答,
我问:“你是谁?你和子乔在台球厅吵架那次是为了什么吵架?”
她的回复是:“我是陈美嘉,那次在台球厅和吕子乔吵架是因为他约会被人撞见,我讽刺他脸大影响信号,他还反击我。后来谈到过去的事情,我指责他忘恩负义,他就说我平。最后,我伤心地说要分手,因为他之前甩过我。”
其中,她是陈美嘉,这里是人设中的设定。吵架的经过是知识库中的内容。
在我提问了之后,大模型去知识库里找到了相关内容,然后回复了我。这就是一个简单的正确回复的demo示例。
然而,我们会发现,有时候她的回答会十分不准确。
图二明显回答的牛头不对马嘴。
图三是知识库截图,其中是有“一菲为美嘉找了一份助教工作”的内容的。
但是回答这个问题时,AI并没有根据正确的知识库内容回答。
这,就是基于知识库问答中的一个非常常见的错误场景。在其他情况下,甚至有可能出现报价错误、胡编乱造等等。这在严肃场景中,是不能接受的出错。
现在应该能够直观的理解,为什么需要让大模型根据知识库回答的更加准确、更符合我们的要求。
在AI领域中,优化AI更准确回答问题的过程,有一个更加专业的术语,叫做RAG。接下来,咱们进入正题,一步一步探索,如何优化回答。
二、基础概念
如果我们要优化幻觉问题和提高准确性,就务必要了解清楚从“问题输入”–“得到回复”,这个过程中,究竟发生了什么。然后针对每一个环节,逐个调优,以达到效果最佳化。
因此,我们先深入其中了解问答全貌。
1、RAG介绍
- RAG(Retrieval-Augmented Generation),即检索增强生成,是一种结合信息检索和文本生成能力的技术,它由两部分组成:一个“检索器”和一个“生成器”。检索器从外部知识中快速找到与问题相关的信息,生成器则利用这些信息来制作精确和连贯的答案。这种结合使得RAG非常适合处理需要广泛知识的任务,如问答系统,能够提供详细而准确的回答。
简单来说,就是通过检索的模式,为大语言模型的生成提供更多信息,从而使大模型生成的答案更符合要求。
2、检索原理
首先我们需补个课,简单了解一下大模型中的“向量”:(同时建议了解下LLM的实现原理)
-
可以把向量想象成空间中的点位,我们对话交流中的,每个词或短语都在这个空间中对应一个向量点位。
-
当系统需要找到与一个特定词或短语相关的内容时,它会查看这个词在虚拟空间中点的位置,寻找直线距离最近的点。在这个空间中,距离越近的点,代表词义或内容上的关联度越高。
简单来说,通过比较这些点的距离,检索器可以快速找到语义上接近的词语或信息,从而高效地检索相关内容。这就像在一个城市地图上找最近的餐馆,距离越近,越可能是你想去的地方。
理解了向量,我们来看看收到一个对话时,RAG的完整的工作流程。
三、RAG工作原理
RAB的处理过程简单可分为四个阶段:
①、问题解析阶段
②、知识库检索阶段
③、信息整合阶段
④、大模型生成回答
①、问题解析阶段:
1、输入向量化
- 问题会被模型预处理,然后输入进嵌入模型(Embedding Modle)转化为向量。以便后续检索时,能够把问题语句与向量数据库中的其他上下文信息进行比对。
具体进行了什么操作呢?(了解即可)
文本预处理:
这包括去除无关字符、标准化文本(例如将所有字符转换为小写)、分词等,以清洁和准备文本数据。
嵌入表示:
将预处理后的文本(词或短语)转换为向量。这通常通过使用预训练的嵌入模型来完成,如Word2Vec、GloVe、BERT等。这些模型将每个词或短语映射到一个高维空间中的一个点(即向量)。
特征提取:
对于整个问题句子,可能会应用进一步的特征提取技术,比如句子级别的嵌入,或使用深度学习模型(如BERT)直接提取整个句子的表示。这个表示能够捕捉句子的上下文信息,不仅仅是单个词。
向量优化:
在某些情况下,问题的向量表示可能会根据具体任务进行优化,例如通过调整模型参数来更好地与检索系统的其他部分协同工作。
②、知识库检索阶段:
此阶段,首先需要有一个知识库,那么知识库是如何完成制作,并被检索的呢?
我们需要先了解一个概念,在大模型的检索中,并不是依靠传统的关键字去搜索。而是依靠问题在空间中的向量位置,去寻找距离这个向量最近的其他词句,然后完成检索。
所以,要在向量中进行检索,我们的知识库其实也是被转化成了了一个巨大的向量库。
1、文档向量化:
- 知识库中的文档也需要被转换成向量形式。这使得文档内容能够在数值级别上与问题向量进行比较。在我们使用知识库工具时,上传文档就会帮助我们完成文档的向量化。这一步就是依靠Embedding Modle完成的。
2、知识库检索:
- 根据前一步输出的问题向量,检索器开始在一个庞大的向量空间中搜索与问题相关的内容(既向量距离最接近)。检索器根据问题的关键词和上下文,选出最相关的信息片段。
在这一步,检索器从知识库里,检索到了一些和用户问题最相关的内容。
检索器具体进行了什么操作呢?(了解即可)
相似性计算:
使用一种相似性度量方法(如余弦相似性)来计算问题向量和各个文档向量之间的相似度。这一步是为了找出与问题内容最为接近的文档。
排序与选择:
根据相似性得分,所有文档会被排序。系统通常会选择得分最高的几个文档,认为这些文档与问题最相关。
信息抽取:
从选定的高相关性文档中抽取具体的信息片段或答案。这可能涉及到进一步的文本处理技术,如命名实体识别、关键短语提取等。
③、信息整合阶段:
1、信息融合:
- 这里将接收到上一步中检索到的全部信息。然后把这些信息连带用户问题和系统预设,被整合成一个全新的上下文环境,为生成回答提供基础。
具体进行了什么操作呢?
信息筛选与确认:
首先,系统会对检索器提供的信息进行评估,筛选出最相关和最可信的内容。这通常涉及到对信息的来源、时效性和相关性进行验证。
消除冗余:
在多个文档或数据源中,可能会有重复的信息。系统需要识别和去除这些冗余内容,以防在生成回答时出现重复或相互矛盾的信息。
关系映射:
系统将分析不同信息片段之间的逻辑和事实关系,如因果、对比、顺序等。这有助于构建一个结构化的知识框架,使得信息在语义上更加连贯。
上下文构建:
将筛选和结构化的信息组织成一个连贯的上下文环境。这通常包括对信息进行排序、归类和整合,使其形成一个统一的叙述或解答框架。
语义融合:
在必要时,系统可能会进行语义融合,即合并意义相近但表达不同的信息片段,以减少语义上的重复并增强信息的表达力。
预备生成阶段:
最后,整合好的上下文信息被编码成适合生成器处理的格式,如将文本转化为适合输入到生成模型的向量形式。
④、大模型生成回答
1、生成器**:**
-
最终全新的上下文被一起传递给大语言模型。随后,大语言模型(LLM)根据提供的信息来回答问题。
-
因为这个上下文包括了检索到的信息,因此大语言模型相当于同时拿到了问题和参考答案,通过LLM的全文理解,最后生成一个准确和连贯的答案。
在生成过程中,系统基于整合好的上下文信息来构建最终的回答时。这个过程具体包括以下关键步骤:
上下文向量化:
将整合后的上下文信息转化为向量。这通常通过一个预训练的语言模型进行,例如BERT或GPT。这些向量能够捕捉上下文中的语义信息,为生成回答提供必要的输入。
生成模型激活:
使用一个基于Transformer的生成模型(如GPT)接收向量化的上下文。这个模型利用自注意力机制来理解上下文中的各种关系和信息。
逐词生成回答:
生成模型开始逐词构建回答。模型在每一步生成一个词,同时考虑到之前已生成的词和整个上下文的语义。这个过程是迭代的,直到整个回答构建完成。
语言流畅性和准确性优化:
在回答生成的过程中,模型会优化语言的流畅性和逻辑性。确保生成的文本不仅在语法上正确,而且在逻辑上连贯,与用户问题紧密相关。
回答评估与调整:
完成初步生成后,系统可能会对回答进行评估,检查其准确性、相关性和用户满意度。如果需要,可以对回答进行微调或完全重新生成。
⑤、输出回答:
- 最终,生成的答案呈现给用户。
简要总结RAG的全流程:
-
问题解析阶段:
-
接收并预处理问题,通过嵌入模型(如Word2Vec、GloVe、BERT)将问题文本转化为向量。这一步确保问题向量能有效用于后续检索。
-
知识库检索阶段:
知识库中的文档同样向量化后,比较问题向量与文档向量,选择最相关的信息片段。抽取相关信息传递给下一步骤
-
信息整合阶段:
接收检索到的信息,与上下文构建形成融合、全面的信息文本。整合信息准备进入生成阶段。
-
大模型生成回答:
- 整合后的信息被转化为向量并输入到LLM(大语言模型)。模型逐词构建回答,最终输出给用户。
四、RAG实例
看理论有点懵是吗?为了更理解,我们来一起看看实例。
这是调试预览中的对话示例。
在回复中,可以看到这里有写11条引用,3条上下文,我们具体来看下,有什么处理。
一、知识库检索部分
1、把输入的问题,通过Embedding做了向量化
2、使用qwen语言模型把问题做了优化、添加了接近的检索词
3、知识库向量检索,抽取条件包含相似度0.85
4、通过检索一共抽取出了11个内容块(chunk)
二、大模型对话部分
(因为我刷新后丢失了记录,改成说了一句:你好,所以下边的问题,变成了你好)
5、此处将①②一起传递给了LLM(大语言模型),最终得到了③AI的回答。
①System:我设置的Prompt(提示词)
②Human:知识库检索的到的信息(下图两个中间的内容就是知识库检索到的信息)。
③AI:最终收到的回复信息。
五、实操优化(挖坑)
现在再来看这四步操作,是否对“知识库+LLM”的问答流程有更加清晰地认知呢?
①、问题解析阶段
②、知识库检索阶段
③、信息整合阶段
④、大模型生成回答
下一篇我们就开始要从这些环节入手,手把手教程一起实操,对每一个环节进行逐项优化!
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
![](https://img-blog.csdnimg.cn/img_convert/0dc35641cd2d85e39db6e8cb368fa5cb.png)