理解RAG大语言模型产品的工作流程

一行文字介绍工作流程

用户输入问题 → 后端将问题向量化 → 向量索引检索相关内容 → 将检索内容与原问题组合并调用LLM生成回答 → 返回前端

全部流程介绍说明

  1. 用户输入问题:在产品的前端界面,就像使用Chatgpt一样,网页端即为前端页面。
  2. 前端请求后端:将用户问题发给后端服务。
  3. 问题文本向量化(Embedding):
  • 后端使用文本向量模型(Embedding Model),把用户问题转换为向量。

4. 向量索引检索

  • 后端将问题向量与向量数据库 / 向量索引进行相似度匹配,检索出若干条最相关的文档片段。

5.RAG(Retrieval-Augmented Generation) 组合上下文:

  • 取出检索到的文档片段(即“相关内容”);
  • 将问题及相关片段拼接整合成一个“上下文提示”(Context Prompt)。

6. 大语言模型生成

  • 将上述上下文提示(Context Prompt)输入到大语言模型(LLM)中,让模型基于“检索到的外部知识+用户问题”进行内容生成。

7. 返回结果给前端

  • 后端将模型生成的回答结果返回给前端展示给用户。

关键概念介绍

1.知识库(Knowledge Base)

  • 知识库的作用是什么?
  • 知识库用来存储我们要检索的资料或者文档,一般是个性化的知识与内容。
  • 知识库通常包含:原始文档(PDF、Markdown、网页内容、数据库内容等)。
  • 知识库使用的注意事项?
  • 这些文档需要进行切分和清洗整理,并保存到向量数据库或者文档库中。

2.向量索引(Vector Index)

  • 如何得到向量?
  • 需要使用Embedding模型对文本进行向量化,即将文本转化为向量。
  • 如何存储向量?
  • 通常的做法是使用向量数据库,通常包括Faiss,Milvus,Chroma,PGVector等。
  • 如何检索向量?
  • 利用问题向量与数据库已有向量的相似度进行挑选,挑选出距离近的文本。
  • 为什么使用向量检索?
  • 相比关键字检索,向量检索从语义相似度的角度出发,能更好地理解问题。

3.RAG(Retrieval-Augmented Generation)

  • RAG有两个关键点:检索(Retrieval)和生成(Generation)。
  • 在使用向量化方法挑选出最相关文本后,会将其与用户的问题合并,输入到大语言模型中,让LLM基于外部的知识来生成回答。
  • 这样做有什么好处?
  • 这样可以显著降低LLM一本正经地胡说八道,同时可以更准确地回答相关问题。

判断低价中转API是否合理?

有人看到一些中转的API价格十分低,还有1RMB抵用1USD的情况,利用上文我们了解到的知识,可以进行以下判断:

  1. 黑卡,这种一般就是黑卡付钱或者用完就弃账号
  2. 降智或者换低价模型:比如你购买的gpt4,给你gpt4o的API用,在后面偷换模型
  3. 使用缓存:大部分平台都做了缓存,即将用户的问答存储作为知识库,如果内容完备,可以直接返回结果给用户,这种情况其实并没有真的去调用API。这个过程其实主要利用向量检索匹配相似度,因为相似的问题已经有了答案,会直接给你回复。
  4. RAG修饰:在上一步使用缓存后,可能给你调用一个本地部署的开源模型组织答案进行生成,因为前面有了更好模型生成的答案,再放到一个普通的开源模型中,表现也不会差到哪里去。

总结

上文介绍了RAG大语言模型产品的工作流程,为什么介绍RAG,因为这个目前是最经典的用法,当然还有其他的大语言模型产品,如果不加RAG,就是原生的prompt产品,使用的就是模型知识,会有幻觉,具体这些会在后面的文章中介绍。

本文的主要目的是科普一下大语言模型产品的工作流程,使读者有一个基础概念及流程,同时能分辨各种乱象的产品,判断产品是否靠谱。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇