RAG 技术的整体流程
RAG (Retrieval-Augmented Generation) 是用来给 LLM 注入特定的知识,解决 LLM 在回答事实 or 非公开领域内的问题时出现的幻觉问题,简单理解就是给 LLM 外挂了一个知识库。
一个 RAG workflow 可以简单概括为离线流程、在线流程。离线流程解决知识清洗、分片、向量化和存储。在线流程解决向量化检索、粗排、重排、LLM 总结。
整个 RAG workflow 中,Embedding、Rerank、LLM 都有大量成熟的模型/产品可选,离线流程涉及大量繁琐的软件工程工作。
然而,在 RAG 投入运营的真实业务中,可以明显的看到端到端成功率不够高,成功率可能会是 30%~80%,且不同业务的差异性很大。一个占比很大的失败原因就是:对用户的意图理解不准确。一方面是因为用户意图理解本来就很难,另一方面则很现实:普通人往往无法准确的描述 ta 的问题。而当前 “意图理解” 的问题,还没有出现一个通用的成熟的模型/产品可选,大家依然在不断的探索中
A Survey of Query Optimization in Large Language Models
这篇文章就对 Query Optimization 的相关技术做了调查汇总。
首先要明确 Query 存在哪些方面的问题,Optimization 应该怎么怎么下手
四类 Query Optimization
Query Optimization 可以分为四类:Expansion、Decomposition、Disambiguation、Abstraction
Expansion 扩展 Query
Expansion 是指基于原始 Query 的关键词、同义词、关联词的分析,补全有关联的信息,以期提升搜索结果的全面性。文章里进一步细分为:
- Internal Expansion:通常是直接用 LLM 给 Query 进行信息补充,依赖的是 LLM 训练得来的知识。
- External Expansion:是指借助搜索/查询外部知识进行补充,例如在 LLM 训练数据截止时间之后的信息。
在扩展 Query 方面的相关论文包括:
Decomposition 拆解 Query
Decomposition 是指拆解原始 Query。如果用户的 Query 涉及到多个信息的综合分析,而同时包含多个关键字的文档/web可能很稀少,此时直接搜索文档/web则成功率非常低。而原始 Query 拆解后的多个 subQuery,各自搜索,再合并文档一起送给 LLM 回答,成功率会高很多。
例如下面这个问题
Which sport did China win more medals in at the 2024 Summer Olympics: table tennis or badminton?
可以拆解为:
Q-1: How many medals did China win in table tennis at the 2024 Olympics?
Q-2: How many medals did China win in badminton at the 2024 Olympics?
或者这个问题,它包含了有依赖的多个 subQuery
What is the birthdate of the 2024 Olympic men's singles table tennis gold medalist?
可以拆解为
Q-1: Who is the men's singles table tennis champion at the 2024 Summer Olympics? (Let's assume the champion is <A-1>.)
Q-2: What is <A-1>'s birthday?
Disambiguation 问题消除歧义
大家最常见的 Query 优化,就是基于多轮的历史对话来消除指代、缩写、重写用户问题,使得问题语义和上下文完整,以便提升搜索的质量。
通常 Langchain、Llamaindex 这类开发框架或者 RAG 框架和服务都提供了多轮对话的 Query 重写。
Abstraction 问题抽象
有些 Query 涉及多个信息的推理,如果能从更高层面的查找文档,则更容易回答问题。
例如这个问题
How many times has China hosted the Olympic Games?
可以向上抽象为
The history of hosting the Olympic Games.
四类Optimization的全局图
参考资料
论文的 AI 摘要地址:https://papers.plify.co/detail/2412.17558?lang=zh
Leave a Reply