美文网首页
RAG 学习笔记(二)

RAG 学习笔记(二)

作者: 啊阿伟啊 | 来源:发表于2024-01-07 19:41 被阅读0次

基于博文 Advanced RAG Techniques: an Illustrated Overview 的学习和练习的记录。

中文内容可以查看博主@宝玉的译文 高级 RAG 技术:图解概览 [译]

系列笔记:
RAG 学习笔记(一)

高级 RAG

高级 RAG 架构如下图所示

高级 RAG 架构

图中,绿色元素为 RAG 核心技术点,蓝色元素为文本。(本架构图对一些细节进行省略,不宜按照本图进行实施)

RAG 核心技术点

  1. 分块和矢量化
  2. 搜索索引构建
  3. 重排序和过滤
  4. 查询转换
  5. 聊天引擎
  6. 查询路由
  7. RAG 中的 Agent
  8. 响应合成

下面将详细说明个技术点

分块和向量化

分块

文档分块的原因:

Transformer 模型输入的长度是固定的,能够表达的语义信息也是固定的,粒度小的文本内容(一句话或者几句话),生成的向量更能够表达文本的含义。

分块的大小是需要考量的参数。

  1. 影响因素:模型的选择,及模型 token 的容量。比如 Bert-based Sentence Transforms 模型最可以有 512 个token,而 OpenAI ada-002 可以接受 8191 个token。
  2. 需要在“获取到足够的上下文信息以供 LLM 生成回答”和“确保文本嵌入足够具体,以便有效地执行检索”之间找到平衡

扩展内容:

  1. 选择块大小时的各种考虑因素 Chunking Strategies for LLM Applications
  2. LlamaIndex 中对于文本分块的实现 NodeParser class

向量化

将文本块转化成向量的过程就是 Embedding。

可以从榜单 MTEB leaderboard 找到最新、效果最好的 Embedding 模型。

作者推荐查询优化过(search optimized)的模型,比如 bge-largeE5 embedding 系列模型。

实例

LlamaIndex 分块和向量化过程的样例:Ingestion Pipeline

相关文章

网友评论

      本文标题:RAG 学习笔记(二)

      本文链接:https://www.haomeiwen.com/subject/xvqgndtx.html