书生·浦语大模型--第三节课笔记--基于 InternLM 和 LangChain 搭建你的知识库

文章目录

大模型开发范式

LLM的局限性:时效性(最新知识)、专业能力有限(垂直领域)、定制化成本高(个人专属)

两种开发范式:

  • RAG(检索增强生成):外挂知识库,首先匹配知识库文档,交给大模型。优势:成本低,实时更新,不需要训练。但受限于基座模型,知识有限,总结性回答不佳。
  • Finetune(微调):轻量级训练微调,可个性化微调,是一个新的个性化大模型。但是需要在新的数据集上训练,更新成本仍然很高,无法解决实时更新的问题。

RAG

  • 基本思想

LangChain框架:

通过组件组合进行开发,自由构建大模型应用。将私人数据嵌入到组件中。

步骤:首先,Unstructed Loader 组件加载本地文档,将不同格式的文档提取为纯文本格式。通过Text Splitter组件对提取的纯文本进行分割成Chunk。再通过开源词向量模型Sentence Transformer来将文本段转化为向量格式,存储到基于Chroma的向量数据库中,接下来对用户的每个输入会通过Sentence Transformer转为为同样维度的向量,通过在向量数据库中进行相似度匹配找到和用户输入的文本段,将相关的文本段嵌入到已经写好的Prompt Template中,最后交给LLM回答即可。

构建向量数据库

基于个人数据构建向量数据库。LangChain支持自定义LLM,可以直接接入到框架中。

  • 多种数据类型,针对不同类型选取不同加载器,转化为无格式字符串。
  • 由于单个文档超过模型上下文上限,还需要对文档进行切分。
  • 使用向量数据库支持语义检索,需要将文本向量化存入向量数据库

构建检索问答链

自动实现知识检索、Prompt嵌入、LLM问答。

问答性能还有所局限

优化建议

基于语义切分而不是字符串长度。

给每个chunk生成概括性索引。

web 部署

简易框架:Gradio、Streamlit等

实践部分

相关推荐
城中南小5 小时前
零基础认识大语言模型(LLM)工作原理(5.Transformer的FFN模块到底是什么?)
人工智能·语言模型·transformer
疯狂打码的少年6 小时前
【软件工程】软件开发模型:增量模型与迭代模型
笔记·软件工程
Generalzy6 小时前
从本地 Demo 到生产级检索:Milvus 学习笔记(3)
笔记·学习·milvus
MartinYeung57 小时前
[论文学习]PrivacyLens:评估语言模型在行动中的隐私规范意识
人工智能·学习·语言模型
牧濑红莉7 小时前
零基础认识大语言模型(LLM)工作原理(2.Token 到底是什么?)
人工智能·语言模型·chatgpt
凉、介8 小时前
Virtio 系列(一):框架概览
笔记·学习·嵌入式·虚拟化·virtio
Yang_jie_039 小时前
笔记:数据结构(栈是否使用底指针以及头指针的初始化值)
数据结构·笔记·算法
her_heart10 小时前
把 ChatGPT 5.6 放进需求评审和测试设计之后,我反而减少了“一次成稿”的期待
网络·人工智能·网络协议·chatgpt·测试用例
一杯奶茶¥10 小时前
c语言程序设计大学期末考试考研知识点重点笔记题库复习资料C语言重点考点题库资料合集
c语言·笔记·考研·c语言程序设计·c语言笔记
依然范特东11 小时前
动手学深度学习笔记--数据操作、线性代数
人工智能·笔记·深度学习