【书生·浦语大模型实战营03】《基于 InternLM 和 LangChain 搭建你的知识库》学习笔记

《基于 InternLM 和 LangChain 搭建你的知识库》

常见术语

RAG: Retrieval Augmented Generation,检索增强生成

1. 大模型开发范式

1.1 RAG VS Finetune

在这里插入图片描述

RAGFinetune
低成本可个性化微调
可实时更新知识覆盖面广
受基座模型影响大成本高昂
单次回答知识有限无法实时更新

1.1.2 Finetune

(2)成本高昂:需要GPU算力以及模型训练知识

3. 构建向量数据库

3.1 加载源文件 → \rightarrow 文档分块 → \rightarrow 文档向量化

在这里插入图片描述

  • 确定源文件类型,针对不同类型源文件选用不同的加载器
    • 核心在于将带格式文本转化为无格式字符串
  • 由于单个文档往往超过模型上下文上限,我们需要对加载的文档进行切分
    • 一般按字符串长度进行分割
    • 可以手动控制分割块的长度和重叠区间长度
  • 使用向量数据库来支持语义检索,需要将文档向量化存入向量数据库
    • 可以使用任意一种Embedding模型来进行向量化
    • 可以使用多种支持语义检索的向量数据库,一般使用轻量级的Chroma

4. 搭建知识库助手

4.1 RAG方案优化建议

在这里插入图片描述

  • 基于RAG的问答系统性能核心受限于:
    • 检索精度
    • Prompt性能
  • 一些可能的优化点:
    • 检索方面:
      • 基于语义进行分割,保证每一个chunk的语义完整
      • 给每一个chunk生成概括性索引,检索时匹配索引
    • Prompt方面:
      • 迭代优化Prompt策略

南溪:感觉“概括性索引”就有点像论文的摘要。