最近在研究如何使用langchain构造一个本地的大模型问答系统, 找了套源码部署,下面是一些经验, 以飨读者, 源码已经上传 源码下载 , 下面的是一些研究笔记和部署教程

问答系统架构

目前的问答系统架构都差不多

在这里插入图片描述
这套流程也可以称之为RAG, 主要分为三部分

内容抽取与向量化

将长文档以某种方式切分为若干 block,每个 block 大小一般会小于向量模型能处理的最大上下文。切分方式可以简单也可以是一个复杂的策略。比如,相邻的 block 之间可以保留重复的内容,用来降低简单切分方式造成的信息损失,并进一步补充 block 的上下文信息。

然后将block块向量化,存储在向量数据库中, 比如es, pg_vector, faiss等

ANN向量搜索

对于输入的query ,使用相同的embedding模型进行向量化, 然后在向量数据库中获取n个documents

文档给LLM并提问

将最近的documents合并成上下文并提供给llm问答,构造对应的prompt

简单的问答系统架构都是这样的, 但是具体的有很多细节可以做,比如如何分快, 如何提升召回率, 指令模版怎么构建等等,

关于分享的源码

分享的这套源码 源码下载 ,是同事给我的,目前已经传csdn, 0积分下载, 自己拿法律问答试了一下, 准确率还算可以, 用api形式的chatglm-turbo比本地的7b参数好很多

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐