30分钟,通过ModelScope平台和开源LLM打造个人知识库 QA Bot(2)

本文涉及的产品
模型训练 PAI-DLC,5000CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: 30分钟,通过ModelScope平台和开源LLM打造个人知识库 QA Bot

向量算法的选型

完成了文本导入后,可以尝试测试一下效果了。

Chroma向量库中原生的embeddings效果不理想,使用的是 all-MiniLM-L6-v2 算法来进行向量嵌入。这个算法来自于 Sentence Transformers 库。Sentence Transformers 的还有其他算法:

Model

Performance Semantic Search (6 Datasets)

Queries (GPU / CPU) per sec.

multi-qa-MiniLM-L6-dot-v1

49.19

18,000 / 750

multi-qa-distilbert-dot-v1

52.51

7,000 / 350

multi-qa-mpnet-base-dot-v1

57.60

4,000 / 170

拿西游记的全文向量化导入后,查询 东胜神洲(孙悟空的老家花果山) 相关的信息,发现基本无法命中结果。

image.png

于是重新修改向量的算法,看了一下,如果要自定义向量算法,只需要按照以下的数据导入到库里就行。

collection.add(
   文章内容:documents=["doc1", "doc2", "doc3", ...],   
   向量内容:embeddings=[[1.1, 2.3, 3.2], [4.5, 6.9, 4.4], [1.1, 2.3, 3.2], ...],
   原始数据:metadatas=[{"chapter": "3", "verse": "16"}, {"chapter": "3", "verse": "5"}, {"chapter": "29", "verse": "11"}, ...],
   ID:ids=["id1", "id2", "id3", ...]
)

我们在魔搭ModelScope社区。

https://modelscope.cn/models/damo/nlp_corom_sentence-embedding_chinese-base/summary上查看有关该模型的详细信息 。 在不同的领域还可以选择不同的的CoROM模型。

image.png

我们对文本分割器和向量库进行了修改后,重新导入了文本,并进行了查询,这次终于成功地获得了有关东胜神洲的相关信息。

image.png

最终效果

把模型+Prompt+向量算法+向量数据库组合起来后,选用的技术和框架如下图所示:

image.png

image.png

总结

用手工编写的方式实现了完整基于个人知识库的QA Bot,采用手工编写的方式。相比于langchain,这种方法具有以下优点:

  • 可以通过SaaS服务对每个部分进行加速,
  • 每个部分都可以轻松地进行自定义修改。通过简单修改modelid可以使用modelscope的社区的模型,更加适合中文场景。
  • 在满足硬件条件的情况下,可以轻松地将其改为分布式架构,以处理高频访问。

然而,我们可以看到回答的效果仍然不是很好, 文本分割和向量化的过程会直接影响结果,但是对比直接使用langchain,灵活性和中文的相关性好了很多(不过langchain也可以改向量算法)。

在专业领域来说,如果有已经构建好知识图谱的数据,使用这种方式可能会取得非常好的效果。

30分钟快速体验

以下代码已经在modelscope社区的notebook的环境中测试通过。从编写代码到回复,大概需要30分钟左右即可完成,非常适合测试和验证。

1、 安装依赖 ,为了方便使用,我已经把上述的代码整合成一个微型框架 vectorGPTBot 中。

pip install protobuf==3.20.0 transformers==4.27.1 icetk cpm_kernels chromadb
pip install "modelscope[nlp]" -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html
pip install vectorGPTBot=="0.1.6" -i https://pypi.Python.org/simple/

2、 在modelscope的环境中,由于pyhton是3.7的版本。请按照以下步骤修改文件

/opt/conda/lib/python3.7/site-packages/chromadb/api/types.py 

将第一行修改为以下两行:

from typing import Optional, Union, Dict, Sequence, TypeVar, List
from typing_extensions import Literal, TypedDict, Protocol

保存文件并退出。

3、 启动

有三个参数可以自由定义 , 后面两个可以去modelscope社区根据自己的需求进行更换。

v= mainClass(
'/mnt/workspace/test2', #向量数据库保存的路径
"damo/nlp_corom_sentence-embedding_chinese-base", #文本向量算法
"ZhipuAI/ChatGLM-6B", #llm模型 
)

核心是两个命令

  • v.put_data  把数据导入向量库
  • v.query_data 查询数据

from vectorGPTBot.vectorGPTBot import mainClass
v= mainClass(
'/mnt/workspace/test2', #向量数据库保存的路径
"damo/nlp_corom_sentence-embedding_chinese-base", #文本向量算法
"ZhipuAI/ChatGLM-6B", #llm模型 
)
v.put_data([
    '你是谁?我是向量知识库问答机器人。',
    '你可以做什么?回答问题。',
    '吃了海鲜后是不能再喝牛奶的,因为牛奶中含得有维生素C,如果海鲜喝牛奶一起服用会对人体造成一定的伤害',
    '吃海鲜是不能同时喝牛奶吃水果,这个至少间隔6小时以上才可以。',
    '吃海鲜是不可以吃柠檬的因为其中的维生素C会和海鲜中的矿物质形成砷。',
])
v.query_data('你是谁?')

image.png

相关实践学习
阿里云百炼xAnalyticDB PostgreSQL构建AIGC应用
通过该实验体验在阿里云百炼中构建企业专属知识库构建及应用全流程。同时体验使用ADB-PG向量检索引擎提供专属安全存储,保障企业数据隐私安全。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
6月前
|
人工智能 达摩院 自然语言处理
超好用的开源模型平台,ModelScope阿里达摩院
超好用的开源模型平台,ModelScope阿里达摩院
459 1
|
分布式计算 测试技术 API
为集成LLM到测试平台提供更便捷的方式:为讯飞的LLM星火创建接入LangChain类(全部源代码)
为集成LLM到测试平台提供更便捷的方式:为讯飞的LLM星火创建接入LangChain类(全部源代码)
659 0
|
2月前
|
人工智能 JSON 数据格式
RAG+Agent人工智能平台:RAGflow实现GraphRA知识库问答,打造极致多模态问答与AI编排流体验
【9月更文挑战第6天】RAG+Agent人工智能平台:RAGflow实现GraphRA知识库问答,打造极致多模态问答与AI编排流体验
RAG+Agent人工智能平台:RAGflow实现GraphRA知识库问答,打造极致多模态问答与AI编排流体验
|
3月前
|
存储 人工智能 自然语言处理
无缝融入,即刻智能[二]:Dify-LLM平台(聊天智能助手、AI工作流)快速使用指南,42K+星标见证专属智能方案
【8月更文挑战第8天】无缝融入,即刻智能[二]:Dify-LLM平台(聊天智能助手、AI工作流)快速使用指南,42K+星标见证专属智能方案
无缝融入,即刻智能[二]:Dify-LLM平台(聊天智能助手、AI工作流)快速使用指南,42K+星标见证专属智能方案
|
3月前
|
前端开发 Linux API
无缝融入,即刻智能[一]:Dify-LLM大模型平台,零编码集成嵌入第三方系统,42K+星标见证专属智能方案
【8月更文挑战第3天】无缝融入,即刻智能[一]:Dify-LLM大模型平台,零编码集成嵌入第三方系统,42K+星标见证专属智能方案
无缝融入,即刻智能[一]:Dify-LLM大模型平台,零编码集成嵌入第三方系统,42K+星标见证专属智能方案
|
3月前
|
机器学习/深度学习 存储 自然语言处理
基于知识库快速搭建智能客服问答 Bot
在数字化转型的大潮中,智能客服系统成为提升企业客户体验与运营效率的关键工具。Botnow平台集成智能体创作与分发功能,提供一站式智能客服问答Bot搭建服务。本文详细介绍了如何利用Botnow的知识库功能及RAG(Retrieve-Augmented Generation)方案快速构建智能客服问答Bot。通过Botnow平台,用户可以轻松创建知识库、配置智能体,并关联知识库以实现智能回答。该方案广泛适用于对话沟通、行业知识库建设、企业内部信息检索及内容创作等多个场景。Botnow平台以其可视化编排、低技术门槛等特点,助力企业轻松实现智能客服系统的搭建与优化,成为数字化转型的重要推手。
186 1
|
6月前
|
API
使用ModelScope平台进行模型验证时
【2月更文挑战第9天】使用ModelScope平台进行模型验证时
168 4
|
6月前
|
人工智能 自然语言处理 搜索推荐
魔搭ModelScope社区作为一个AI模型开源平台,提供了丰富的模型资源和便捷的服务
【2月更文挑战第9天】魔搭ModelScope社区作为一个AI模型开源平台,提供了丰富的模型资源和便捷的服务
447 3
|
6月前
|
开发框架 数据可视化 Windows
如何提升大模型Agent的能力 ——LLM Agent框架 Modelscope-Agent 实战
本文介绍Agent到底是什么 ,如何进行优化,以及如何使用Agen框架。
|
6月前
|
弹性计算 人工智能 JSON
一键云部署:资源编排 ROS 轻松部署 LLM 应用开发平台 Dify
Dify是一款开源的LLM应用开发平台,融合BaaS和LLMOps理念,助力开发者快速构建生产级AI应用。阿里云的ROS提供IaC自动化部署服务,通过JSON/YAML/Terraform模板轻松部署Dify环境。以下是简化的部署步骤: 1. 登录ROS控制台的Dify部署页面。 2. 配置ECS实例参数。 3. 创建资源栈,完成部署后从输出获取Dify服务地址。 ROS模板定义了VPC、VSwitch、ECS实例等资源,通过ROS控制台创建资源栈实现自动化部署。这种方式高效、稳定,体现了IaC的最佳实践。
742 1

热门文章

最新文章