大模型学习路线(3)——知识检索增强(RAG)

目录

一、 RAG理论篇(基础)

二、RAG理论篇(进阶)

1. Token分词

2. Embedding技术

3.知识向量库

4.相似性搜索/向量检索

5.知识召回

三、RAG实践篇


        上图为LLM+RAG运行的整体流程。如果想对RAG有系统化的理论认知,基本看如下三篇技术概览足矣,其它不再多做赘述了,毕竟没必要重复造轮子(bushi。

        章节一的三篇技术概览了RAG理论部分,从RAG整体流程介绍,到RAG流程涉及每一步骤的细节详解、常用技术,再到总结、当下发展、未来展望。章节二为进阶部分,介绍了RAG涉及的关键技术。章节三给出了RAG实战demo。

        RAG内容为LLM岗重点考察内容,涉及知识点多的嘞!!!


一、RAG理论篇(基础)

RAG整体流程
  1. RAG技术概览(一)高级检索增强生成技术(RAG)全面指南:原理、分块、编码、索引、微调、Agent、展望 - 知乎 (zhihu.com)
  2. RAG技术概览(二)深度好文!最全的大模型 RAG 技术概览 - 知乎 (zhihu.com)
  3. RAG技术概览(三)RAG实战全解析:一年探索之路 - 知乎 (zhihu.com)

二、RAG理论篇(进阶)

1. Token分块

官网链接:字符文本分割器# | LangChain中文网:500页中文文档教程,助力大模型LLM应用开发从入门到精通

常用知识向量库有自定义分割器BPE字符文本分割器(CharacterTextSplitter)、Huggingface长度函数(CharacterTextSplitter.from_huggingface_tokenizer)、Latex 文本分割器(LatexTextSplitter)、Markdown文本分割器(MarkdownTextSplitter)、NLTK文本分割器(NLTKTextSplitter)、PythonCodeTextSplitter、递归字符文本分割器(RecursiveCharacterTextSplitter)、Spacy 文本分割器(SpacyTextSplitter)、TiktokenText 分割器。

2. Embedding技术

转至链接:文本嵌入模型 text-embedding-model# | LangChain中文网:500页中文文档教程,助力大模型LLM应用开发从入门到精通

3. 知识向量库

常用知识向量库有Milvus、FAISS、Zilliz、Elasticsearch、Chroma、Lance等。详情访问LangChain中英文官网链接:Milvus# | LangChain中文网:500页中文文档教程,助力大模型LLM应用开发从入门到精通(中);Vector stores | 🦜️🔗 LangChain(英)。

4. 相似性搜索/向量检索

常用相似性搜索有:

详情访问LangChain中英文官网链接:检索器接口 Retrievers# | LangChain中文网:500页中文文档教程,助力大模型LLM应用开发从入门到精通(中);Vector store-backed retriever | 🦜️🔗 LangChain(英)

(1-4流程的demo如下)

from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import Chroma



### 入门 Demo
# (1)读取外加文档
with open('../../state_of_the_union.txt') as f:
    state_of_the_union = f.read()
# (2)Token分块
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
texts = text_splitter.split_text(state_of_the_union)

# (3)Embedding嵌入(以向量数据库Chroma为例)
embeddings = OpenAIEmbeddings()
# (4)存入向量数据库
docsearch = Chroma.from_texts(texts, embeddings)

# (5)相似性检索(similarity search)
query = "What did the president say about Ketanji Brown Jackson"
docs = docsearch.similarity_search(query)
# (6)Results
print(docs[0].page_content)

5. 知识召回

5.1 知识召回流程

        (此处cue一下推荐系统的知识召回。针对推荐系统,后续也会进行系统的学习+实践+专栏整理,埋个坑先......)

图5.1 知识召回+Rank排序

(1)物料库经过Tokensize、Embedding后,得到Vectors,扔进向量数据库进行初步检索和知识召回对称召回和非对称召回

(2)初步召回得候选集进行粗排

(3)粗排后,对候选集进行精排,根据Q & A的匹配程度/相似度进行Rank排序,挑选Top K个答案。涉及多种技术,包括文本召回、向量召回、推荐召回、标签召回、Embedding召回、协同召回、图召回等,以及多种召回算法混合的多路召回;(召回方法如何选择,一看具体的业务场景,二看准确率和召回速度上的平衡。一般来说,多路召回效果好、但召回和推理速度很慢,单路召回速度快,但准确率可能会有所损失。)

(4)Rerank,得到Top K检索结果,以及各检索项的得分。

5.2 RAG知识召回分类

        分生成式和检索式召回(文本召回、语义召回、多路召回)召回两个角度。重点分析检索式召回和文本召回、语义召回的优缺。

图5.2 LLM常用知识召回分类

召回分类

文本召回(/倒排召回/稀疏向量召回) 

语义召回(/向量召回/稠密向量召回)

优点

(1)检索速度更快;

(2)可解释能力强;

(3)精确匹配能力强;

(4)支持自定义停用词表,同义词表。

(1)考虑语义相似性,更加智能;

2语义相近即可召回,无需寻找同义词替换

3无需考虑复杂的传统倒排的调优手段

(4)具备支持跨模态召回的潜力。

缺点

(1)无语义信息,对一词多义不友好;

(2)语义偏移。

需要模型训练,对垂直领域落地支持有限

1垂直领域泛化性不足不理解专有词汇易出现语义相似但主题不相似的情况);

2对精准匹配支持不足,难以用专业词汇精准召回

3可解释能力弱

(4)需要更多的计算资源

(5)对”多词一义”情况的支持不如倒排召回中的同义词表简单直接。


三、RAG实践篇

转至链接:大模型学习路线(10)——入门项目推荐_大模型入门实例-CSDN博客(章节二);

或参考原项目链接:飞桨AI Studio星河社区-人工智能学习与实训社区 (baidu.com)

  • 37
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
模型+RAG(Retrieval-Augmented Generation)是一种结合了检索和生成的方法,用于实现数据采集。具体步骤如下: 1. 数据收集:首先需要收集大量的原始数据,可以是文本、图像、音频等形式的数据。这些数据可以从互联网、数据库、文档等多个渠道获取。 2. 数据预处理:对收集到的原始数据进行预处理,包括数据清洗、去重、标注等操作。这一步骤旨在提高数据的质量和准确性,为后续的模型训练做准备。 3. 模型训练:使用大模型进行训练,可以选择使用预训练的语言模型(如GPT)或自定义的模型。在训练过程中,可以采用生成式对抗网络(GAN)等方法来增强模型的生成能力。 4. 检索模块构建:为了提高生成结果的准确性和相关性,需要构建一个检索模块。该模块可以使用传统的信息检索技术,如倒排索引、向量检索等,也可以使用深度学习方法,如BERT、Dense Retrieval等。 5. 数据采集:利用构建好的检索模块,对用户提出的问题或需求进行检索,获取与之相关的数据。可以根据检索结果的相关性进行排序,选择最相关的数据进行生成。 6. 数据生成:基于检索到的数据,使用大模型进行生成。可以采用生成式模型,根据检索到的数据进行文本、图像等内容的生成。生成的结果可以根据需求进行进一步的处理和优化。 7. 结果评估:对生成的结果进行评估,可以使用人工评估或自动评估的方式。评估指标可以包括生成结果的准确性、流畅性、相关性等。 8. 迭代优化:根据评估结果,对模型检索模块进行优化和调整。可以通过增加训练数据、调整模型参数、改进检索算法等方式来提升系统的性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值