(3)基于 InternLM 和 LangChain 搭建你的知识库——笔记&作业

本文介绍了如何通过LangChain框架开发和优化LLM,探讨了RAG和Finetune两种范式的优势与不足,并展示了如何构建向量数据库、接入知识库助手以及WebDemo部署。特别关注了RAG的检索精度和Prompt性能优化建议。
摘要由CSDN通过智能技术生成

视频地址:

https://www.bilibili.com/video/BV1sT4y1p71V/?vd_source=7ec57e9f8774c23edf14450231ffa086

MarkDown:

https://github.com/InternLM/tutorial/blob/main/langchain/readme.md

1.大模型开发范式

  • LLM局限性
    • 知识时效性受限:让LLM获取新知识
    • 专业能力有限:打造垂域模型
    • 定制化成本高:打造个人专属LLM

1.1RAG范式(外挂知识库)

优点:低成本、可实时更新

缺点:受基座模型影响大、单次回答知识有限

1.2 Finetune范式(轻型训练集微调)

优点:可个性化微调、知识覆盖广

缺点:成本高、无法实时更新

2.LangChain简介

LangChain框架是一个开源工具,通过为各种LLM提供通用接口来简化应用程序的开发流程,帮助开发者自由构建LLM应用。

LangChain的核心组成模块

  • 链(Chains):将组件组合实现端到端应用,通过一个对象封装实现一系列LLM操作
  • Eg.检索问答链,覆盖实现了**RAG(检索增强生成)**的全部流程

3.构建向量数据库

加载源文件→文档分块→文档向量化
  • 确定源文件类型,针对不同类型源文件选用不同的加载器

    核心在于将带格式文本转化为无格式字符串

  • 由于单个文档往往超过模型上下文上限,我们需要对加载的文档进行切分

    一般按字符串长度进行分割

可以手动控制分割块的长度和重叠区间长度

  • 使用向量数据库来支持语义检索,需要将文档向量化存入向量数据库

    可以使用任一一种Embedding模型来进行向量化

可以使用多种支持语义检索的向量数据库,一般使用轻量级的Chroma

4.搭建知识库助手

将InternLM接入LangChain

LangChain支持自定义LLM,可以直接接入到框架中

我们只需将InternLM部署在本地,并封装一个自定义LLM类,调用本地InternLM即可

4.1构建检索问答链

  • LangChain提供了检索问答链模版,可以自动实现知识检索、Prompt嵌入、LLM问答的全部流程
  • 将基于InternLM的自定义LLM和已构建的向量数据库接入到检索问答链的上游
  • 调用检索问答链,即可实现知识库助手的核心功能

4.2 RAG方案优化建议

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

5.Web Demo部署

有很多支持简易Web部署的框架,如Gradio、Streamlit等

6.动手实战环节

  • 6.1 基础作业

6.1.1 基础环境准备

6.1.2 知识库搭建

6.1.3 InternLM 接入 LangChain

6.1.4 基于 Gradio 框架搭建Web Demo

6.1.5 SSH连接

6.1.6 web访问 127.0.0.1:7890 个人知识库

6.2 进阶作业

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值