书生大模型笔记3(langchain知识库助手搭建)

目录

LLM具有的局限性:

大模型开发范式:

RAG开发范式:

本节课的LangChain框架

它是什么?

为什么要使用splitter?

为什么要embed?

如何将InternLM介入Langchain?

Web Demo部署:

Finetune开发范式:


LLM具有的局限性:

1.知识时效性有限;2.专业能力有限;3.定制化成本高。

大模型开发范式:

RAG(检索,增强生成), Finetune(微调)

RAG开发范式:

为大模型外挂一个知识库。

优势:成本低,实时更新。

劣势:受基座大模型的影响大,单词回答知识有限,占用了大量模型上下文关联能力。

RAG:检索增强生成理念结构

本节课的LangChain框架

它是什么?

LangChain是一个框架,为各种LLM提供通用接口来简化应用程序的开发流程。其核心做成模块有:

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

作为用户需要注意的就是构造unstructedloader去获取你目标垂直领域的信息,通过这个API与splitter和embed等API来将收集的信息资源转换为数据库的形式。

使用对应接口获取对应种类的信息

为什么要使用splitter?

一整个文档往往超过模型上下文能力上限,所以要进行切分,一般按照字符串长度进行分割,亦可以手动控制分割块长度和重叠区间长度。

为什么要embed?

为了使用向量数据库(轻量级的选择是chroma来搭建数据库)来支持语义检索,需要将文档向量化后存入向量数据库。

如何将InternLM介入Langchain?

感觉这个过程就像是一个智能体接入大模型的notion,LangChain在设计时已经准备好了框架以自定义LLM并且介入,只需要将InternLM部署在本地,封装一个LangChain预留的LLM类,在此调用本地的模型即可。

note:LangChain提供了检索问答链的模板,自动实现知识检索、prompt嵌入、llm回答的流程,如果自己研究这些可能要额外考虑。

note:如果本来配置好了SSH进入远程,第二次却无法登陆,可以考虑将本地user/.shh/ 下的known_hosts 与 know_hosts.old 删除后重试。

RAG问答系统性能局限:

  • 检索精度; 可以参考的优化方向:修改基于语义切分而不是机械地基于字符串切分; 为每一个chunk生成概括性索引,检索时匹配索引。
  • prompt性能; 可以参考的优化方向:迭代优化prompt策略。

Web Demo部署:

一些建议的web部署框架,大家可能也用到过或者以后需要用到,挤在小本本上:Gradio、Streamlit。

Finetune开发范式:

在新的数据集上再次进行训练微调,增加模型对于这部分信息的适应能力。

优势:个性化微调好,尤其是非可见知识,例如回答风格等。

劣势:finetune仍然需要大量的算力支持训练,同时也不是实时更新要定期重新训练。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值