生成式AI系列(二) LLM生成质量改善的方法——RAG检索增强生成

一、引子

我们需要通过一些手段来提升LLM生成内容质量,主要的有下面三项,本文将主要介绍RAG。

1. 提示工程(Prompt Engineering)

         通过精心设计的提示(Prompt)来提升输出的质量

2. 模型微调(Fine-tune)

        模型微调是指在已有的预训练模型(比如GPT-4o、Llama 3.3等)基础上,使用特定的数据集进行二次训练,以调整模型参数,使其能够在特定领域的任务上表现更好。

3. 检索增强生成(Retrieval-Augmented Generation,RAG)

          检索增强生成是一种利用信息检索来优化LLM输出的技术,通过在生成结果之前引用训练数据之外的知识库,丰富了上下文,从而增强生成内容的准确性。RAG的好处既能保证时效性,又能避免高昂的微调成本

RAG的本质就是根据用户查询,从外部知识库(即使更新)中检索相关的知识,随后以附加内容的形式添加到提示中,增强LLM的生成内容。

二、RAG工作流

RAG的工作流分成索引、检索、生成两个阶段。

(一)索引阶段

索引阶段就是将外部知识按照特定的数据结构组织起来,实现更高效的检索。主要有以下几个步骤:

1、文本分块。原始文本往往都有冗长、信息量大等特点,比如一本书,这并不利于高效检索。一方面干扰信息太多,影响检索精度;另一方面检索过程计算开销很大。文本分块可以将长文本切分成多个粒度更细的文本块,能够更准确匹配用户查询意图的同时,计算和存储开销也更小。

2、Embedding。通过Embedding模型将文本块转换成向量(Embedding)。

3、索引。对向量按照特定的数据结构建立索引,比如基于图的HNSW、基于哈希桶的LSH、倒排索引IVF等。

4、存储。将原始向量和索引数据存储起来,可以使用专用的向量数据库,比如Milvus等,也可以使用传统数据库+向量索引插件,比如PostgreSQL+pgvector。

(二)检索阶段

检索阶段就是利用查询去检索相关的文本块的过程,主要有以下2个步骤:

1、Embedding。使用与索引阶段同样的Embedding模型,将原始查询转换成向量。

2、检索。利用向量相似性计算,找到与原始查询最匹配的TopN个相关文本块。

(三)生成阶段

生成阶段首先将相关文本块与原始查询组成新的提示,引导LLM基于相关文本块完成内容的生成。

参考:

快速了解生成式AI

Generative AI in Action》,Amit Bahree快速了解生成式AI

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值