AI知识库 AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


评测:使用开源框架FastGPT快速构建智能助手应用
浏览次数: 1604

FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。同时可以通过工作流可视化进行应用编排,从而实现复杂的问答场景和更好的模型体验。更赞的是,FastGPT 项目在 Apache License 2.0 许可下开源,是由环节云计算公司提供支持,具体情况可参考git官方说明。

1.本地安装资源情况

我们先来了解一下本地化部署fastgpt需要的镜像:

  • fastgpt:latest 镜像大小:349.65 MB
  • mongo:5.0.18 镜像大小:632.08 MB
  • one-api:latest 镜像大小:46.20 MB
  • pgvector:v0.5.0 镜像大小:394.77 MB
  • reranker:v0.1 模型镜像大小:7.65 GB(可选)
  • M3E模型镜像大小:6.95GB(可选)

上述镜像不包括本地化部署的大模型。根据以上的镜像大小情况,我们需要如下资源配置:

1.一台具备足够计算资源的服务器,建议安排8GB内存、4核CPU以及50GB以上存储的配置。

2.安装Docker和Docker Compose,以便在容器中运行FastGPT。

3.获取FastGPT的docker-compose.yml文件,该文件包含了部署FastGPT所需的所有配置信息,根据具体环境修改。

2.模型配置情况

新版 FastGPT 采用了 ConfigMap 的形式挂载配置文件,可以在projects/app/data/config.json 看到默认的配置文件。配置文件中可以配置包括基模在内的基础大模型、embedding模型、reranker模型等,根据需要我们可以补充和调整。

默认情况下,FastGPT 只配置了 GPT 的模型,如果需要接入其他模型,需要部署和使用 One API,实现通义千问、文心一言、ChatGLM或本地模型的接入。而One API 是一个 OpenAI 接口管理 & 分发系统,可以通过标准的 OpenAI API 格式访问所有的大模型,开箱即用。FastGPT 可以通过接入 One API 来实现对不同大模型的支持。

3.功能操作情况

我们仍以构建【智能财报分析助手】为例,展示fastGPT平台构建知识库时工具链的完整性、易用性,以进行各环节的技术能力和效果评估。

首先我们需要创建一个知识库。

创建知识库时可以选择文件处理模型,这里的大模型作用是将文档智能拆分,辅助进行chunk和向量化存储。知识库创建完之后我们需要上传一点内容。上传内容这里有四种模式:

  • 手动输入:手动输入问答对,是最精准的数据
  • 文本数据集:选择文本文件,让AI自动生成问答对。文本数据集支持pdf\txt\docx等文件格式,也支持网页链接、支持手动数据文本。
  • 表格数据集:CSV 批量导入问答对。这里,我们选择文本数据集,让大模型自动生成问答,若问答质量不高,可以后期手动修改。

点击上传后我们需要等待数据处理完成,等到我们上传的文件状态为可用。此时,fastGPT后台会调用模型资源进行文档chunk、简历索引、存储向量数据库等一系列操作。知识库左下角会展示文档处理所占用的资源及排队情况。处理完成的文档,我们可以点开查看:

可以看到已分段,对于不满意的分段,可以点开自行修改。

接下来是创建应用。点击「应用」按钮来新建一个应用,这里有四个模板,我们选择「知识库 + 对话引导」。

应用创建后来再应用详情页找到「知识库」模块,把我们刚刚创建的知识库添加进去。

添加完知识库后记得点击「保存并预览」,这样我们的应用就和知识库关联起来了。

当然,我们还可以进行高级编排,让知识库变成agent应用。

目测比较有用的工具有http请求、问题分类、工具调用等,可以根据用户场景搭配使用。

值得一提的是,FastGPT支持web站点静态页面数据同步,即利用爬虫的技术,可以通过一个入口网站,自动捕获同域名下的所有网站,目前最多支持200个子页面。出于合规与安全角度FastGPT 仅支持静态站点的爬取,主要用于各个文档站点快速构建知识库。但是国内许多媒体站点基本不可用。本次构建的是财务助手,可以将相关财务信息的站点url直接导入,利用fastgpt进行分段和索引。这种方式在知识库的数据更新上更具优势。

4.效果评价

1. 文本chunk:在实验中,我们发现md5格式的文档更好的能被模型理解和解析,它清晰的段落和标题有助于文档切分。但目前系统中还没有自动将文档转为Md5格式的功能,需要系统外处理好再作为知识库上传。

2. embedding:embedding效果主要取决于embedding模型的好坏,常用的中文embedding模型bge-large-zh,可以根据我们具体处理的任务进行进一步的微调,比如针对sql向量化处理的,针对金融专业词汇的,微调后的向量模型可以进一步提高后续召回的准确性。

3. 召回及重排序:fastGPT提供语义检索(使用向量进行文本相关性查询)、全文检索(使用传统的全文检索,适合查找一些关键词和主调语特殊的数据)、混合检索(使用向量检索与全文检索的综合结果返回,使用RRF算法进行排序),最后还可以使用重排模型(reranker模型)来进行二次排序,可增强综合排名。reranker常用的有bge-rerank-v2-m3,同样也可以根据场景进行相应的微调。

4. prompt优化:fastGPT提供“问题优化”功能,开启该功能后,在进行知识库搜索时,会根据对话记录,利用大模型补全问题,优化描述。该步骤本质上也是通过提示工程来优化问题。另外,在进行知识库引用传给大模型时,提供了多个模板,适用于不同类型的知识结构。如标准提示词,用于结构不固定的知识库,用标签引用知识库内容,并根据内容回答, 如果不清楚问题需要澄清等等。另外比如问答模板,适合 QA 问答结构的知识库,可以让大模型较为严格的按预设内容回答。

5.总结

整体来看,FastGPT在知识库的快速构建中提供了完善的工具链,逻辑清晰,插件易用。开放开源的能力也可以使开发者根据具体场景微调相关逻辑,优化召回效果。最重要的是,fastGPT支持本地化部署,对企业的私有化知识提供了保护。支持本地大模型和外部商用大模型,灵活边界,使开发者可以根据费用情况灵活安排。总而言之,fastGPT值得一试。


推荐新闻
RAG系列04:使用ReRank进行重排序
本文介绍了重排序的原理和两种主流的重排序方法:基于重排模型和基于 LLM。文章指出,重排序是对检索到的上下文进行再次筛选的过程,类似于排序过程中的粗排和精排。在检索增强生成中,精排的术语就叫重排序。文章还介绍了使用 Cohere 提供的在线模型、bge-reranker-base 和 bge-reranker-large 等开源模型以及 LLM 实现重排序的方法。最后,文章得出结论:使用重排模型的方法轻量级、开销较小;而使用 LLM 的方法在多个基准测试上表现良好,但成本较高,且只有在使用 ChatGPT 和 GPT-4 时表现良好,如使用其他开源模型,如 FLAN-T5 和 Vicuna-13B 时,其性能就不那么理想。因此,在实际项目中,需要做出特定的权衡。
LangGPT论文:面向大语言模型的自然语言编程框架(中文版)
大语言模型 (Large Language Models, LLMs) 在不同领域都表现出了优异的性能。然而,对于非AI专家来说,制定高质量的提示来引导 LLMs 是目前AI应用领域的一项重要挑战。
第三篇:要真正入门AI,OpenAI的官方Prompt工程指南肯定还不够,您必须了解的强大方法论和框架!!!
自从ChatGPT(全名:Chat Generative Pre-trained Transformer)于2022年11月30日发布以来,一个新兴的行业突然兴起,那就是提示工程(Prompt engineering),可谓如日冲天。从简单的文章扩写,到RAG,ChatGPT展现了前所未有的惊人能力。
(三)12个RAG痛点及其解决方案
痛点9:结构化数据QA 痛点10:从复杂 PDF 中提取数据 痛点11:后备模型 痛点12:LLM安全
(二)12个RAG痛点及其解决方案
痛点5:格式错误 痛点6:不正确的特异性 痛点7:不完整 痛点8:数据摄取可扩展性

联系我们

售前咨询
186 6662 7370
产品演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询