搭建一个自己的知识库
参考链接:https://github.com/InternLM/Tutorial/blob/main/langchain/readme.md
知识准备
**InternLM:**开源的轻量级训练框架
**LangChain:**LangChain是一个强大的框架,旨在帮助开发人员使用语言模型构建端到端的应用程序。它提供了一套工具、组件和接口,可简化创建由大型语言模型 (LLM) 和聊天模型提供支持的应用程序的过程。(LangChain 提供了多种文本分块工具)
**Sentence Transformers:**SentenceTransformers 是一个可以用于句子、文本和图像嵌入的Python库。 可以为 100 多种语言计算文本的嵌入并且可以轻松地将它们用于语义文本相似性、语义搜索和同义词挖掘等常见任务。
**paraphrase-multilingual-MiniLM-L12-v2:**该模型将句子映射到384维的稠密向量空间中,可用于聚类或语义搜索等任务,是 sentence_transformers 库的模型之一。
langchain(2)—基于开源embedding模型的中文向量效果测试 - 袋鼠猪的文章 - 知乎
https://zhuanlan.zhihu.com/p/635670918
**Embedding:**用一个数值向量“表示”一个对象(Object)的方法,我这里说的对象可以是一个词、 一个物品,也可以是一部电影等等
所有人都在谈的Embedding到底是什么?
https://blog.csdn.net/qq_42363032/article/details/113697287
**NLTK:**一个自然语言处理工具库,提供语料库、文本预处理、文本分类、语法分析等功能和工具
RAG :检索增强生成(Retrieval Augmented Generation)
一文搞懂大模型RAG应用(附实践案例) - 果壳PAI的文章 - 知乎
https://zhuanlan.zhihu.com/p/668082024
InternLM 模型部署
配置相关环境 -> 安装依赖 ->下载模型
LangChain 相关环境配置
- 在已完成 InternLM 的部署基础上,安装相关依赖包
- 使用 huggingface 官方提供的 huggingface-cli 命令行工具下载开源词向量模型 Sentence Transformer
下载 NLTK 相关资源
使用开源词向量模型构建开源词向量的时候,需要用到第三方库 nltk 的一些资源
下载本项目代码:将仓库 clone 到本地
知识库搭建:
数据收集 -> 数据预处理(提取满足条件即后缀名为 .md 或者 .txt 的文件)-> 加载数据到一个纯文本对象的列表 ->构建向量数据库(文本分块 -> 文本向量化 -> 将语料加载到指定路径下的向量数据库) -> InternLM 接入 LangChain -> 构建检索问答链(加载向量数据库 -> 实例化自定义 LLM 与 Prompt Template -> 构建检索问答链) -> 部署 Web Demo
数据收集:选择由上海人工智能实验室开源的一系列大模型工具开源仓库作为语料库来源,将相关远程开源仓库 Clone 到本地
为语料处理方便,我们将选用上述仓库中所有的 markdown、txt 文件作为示例语料库
InternLM 接入 LangChain
部署 Web Demo
运行结果: