【书生·浦语】大模型实战营——基于InternLM 和LangChain 搭建个人知识库

目录

大模型开发范式

RAG 

LangChain

构建向量数据库

搭建知识库助手


大模型开发范式

        目前LLM具有强大的语言理解、指令跟随和语言生成的能力,具有强大的知识储备和一定的逻辑推理能力,能够作为基座模型支持多元应用,是解决复杂问题和应用于多领域的强大工具。然而当下的大模型也具有一定的局限性:

  • 知识时效性受限:大模型是在确定的时间点训练, 这些知识仅包含训练时间点之前的知识。对于更新的知识,LLM是无法回答的。如何让LLM能够获取最新的知识;
  • 专业能力有限:目前通用大模型可以在多个领域上回答简单问题,但是针对专业问题,通用大模型往往表现不佳。如何打造垂域大模型;
  • 定制化成本高:大模型训练成本极高。如何打造个人专属的LLM应用

        目前有两种开发方式: RAG和Finetune。RAG的核心思想是给LLM外挂一个知识库,就像开卷考试允许学生带相关资料。Finetune是在一个新的较小的数据集上进行轻量级的训练微调,从而提升模型在这个新数据集上的能力。这两种方式个有优缺点,如下图所示:

RAG 

        核心思想: 对于每个用户的输入,首先基于向量模型将输入文本转化为向量,并在向量数据库中匹配相似的文本段,主要是因为相似的文本段大概率包含了问题的答案。最后将用户的输入和检索到的相似文本段嵌入到模型的prompt中,然后传递给LLM,并得到最终的答案。

LangChain

        LangChain是一个强大的框架,旨在帮助开发人员使用语言模型构建端到端的应用程序。它提供了一套工具、组件和接口,可简化创建由大型语言模型 (LLM) 和聊天模型提供支持的应用程序的过程。LangChain 可以轻松管理与语言模型的交互,将多个组件链接在一起,并集成额外的资源,例如 API 和数据库。

        LangChain中核心的模块——链(Chains):是指将组件组合实现端到端的应用,通过一个对象封装一系列的LLM操作,例如检索问答链。

        基于LangChain搭建RAG应用关键的一个步骤是如何把本地的文档保存到向量数据库中。这一过程包含了文档加载、文档拆分、Embedding以及保存等过程。

构建向量数据库

        这个过程主要包含三个步骤:加载源文件、文档分块以及文档向量化。

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

搭建知识库助手

  • 可以将自定义LLM接入LangChain;
  • 检索问答链模板可以自动实现知识检索、Prompt嵌入、 LLM 问答全部流程。可以将自定义LLM和构建好的向量数据库接入检索问答链;

        目前RAG的性能核心受限于检索精度和Prompt 性能。可能的优化点:

  • 基于语义进行分割,保证每一个chunk的语义完整(如何实现);
  • 给每一个chunk生成概括性索引,检索时匹配索引;
  • 持续迭代优化prompt;

  • 17
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值