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

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,100CU*H 3个月
交互式建模 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推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
1月前
|
机器学习/深度学习 存储 人工智能
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
MNN-LLM App 是阿里巴巴基于 MNN-LLM 框架开发的 Android 应用,支持多模态交互、多种主流模型选择、离线运行及性能优化。
1541 14
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
|
5月前
|
机器学习/深度学习 数据采集 人工智能
文档智能 & RAG 让AI大模型更懂业务 —— 阿里云LLM知识库解决方案评测
随着数字化转型的深入,企业对文档管理和知识提取的需求日益增长。阿里云推出的文档智能 & RAG(Retrieval-Augmented Generation)解决方案,通过高效的内容清洗、向量化处理、精准的问答召回和灵活的Prompt设计,帮助企业构建强大的LLM知识库,显著提升企业级文档管理的效率和准确性。
|
17天前
|
数据采集 人工智能 监控
Crawl4LLM:你的模型还在吃垃圾数据?CMU博士开源AI爬虫,自动筛选高价值网页,数据抓取质量飙升300%
Crawl4LLM 是清华大学和卡内基梅隆大学联合开发的智能爬虫系统,通过网页价值评估和优先级队列技术,显著提升大语言模型预训练数据采集效率。
98 4
|
19天前
|
机器学习/深度学习 人工智能 测试技术
MoBA:LLM长文本救星!月之暗面开源新一代注意力机制:处理1000万token能快16倍,已在Kimi上进行验证
MoBA 是一种新型注意力机制,通过块稀疏注意力和无参数门控机制,显著提升大型语言模型在长上下文任务中的效率。
93 3
|
1月前
|
人工智能 语音技术
首个可保留情感的音频LLM!Meta重磅开源7B-Spirit LM,一网打尽音频+文本多模态任务
Meta AI 研究团队提出了一种名为 SpiRit-LM 的新型多模态语言模型,该模型能够处理文本和音频,实现两者无缝融合。SpiRit-LM 通过“交织”方法训练,具备多模态融合、情感保留和多任务学习能力,在自动语音识别、文本转语音等任务上表现出色。它有 Base 和 Expressive 两个版本,后者能更好地捕捉情感表达。研究团队在多个基准上测试了其性能,并探索了其在语音助手、内容创作、教育和音频编辑等领域的应用前景。
40 1
|
2月前
|
人工智能 物联网
如何将Together AI上基于Qwen2-7B训练的模型部署到ModelScope平台
如何将Together AI上基于Qwen2-7B训练的模型部署到ModelScope平台
93 10
|
3月前
|
人工智能 自然语言处理 前端开发
CodeArena:在线 LLM 编程竞技场!用于测试不同开源 LLM 的编程能力,实时更新排行榜
CodeArena 是一个在线平台,用于测试和比较不同大型语言模型(LLM)的编程能力。通过实时显示多个 LLM 的代码生成过程和结果,帮助开发者选择适合的 LLM,并推动 LLM 技术的发展。
97 7
CodeArena:在线 LLM 编程竞技场!用于测试不同开源 LLM 的编程能力,实时更新排行榜
|
4月前
|
数据采集 人工智能 自然语言处理
文档智能与检索增强生成结合的LLM知识库方案测评:优势与改进空间
《文档智能 & RAG让AI大模型更懂业务》解决方案通过结合文档智能和检索增强生成(RAG)技术,构建企业级文档知识库。方案详细介绍了文档清洗、向量化、问答召回等步骤,但在向量化算法选择、多模态支持和用户界面上有待改进。部署过程中遇到一些技术问题,建议优化性能和增加实时处理能力。总体而言,方案在金融、法律、医疗等领域具有广泛应用前景。
120 11
|
5月前
|
存储 人工智能 算法
精通RAG架构:从0到1,基于LLM+RAG构建生产级企业知识库
为了帮助更多人掌握大模型技术,尼恩和他的团队编写了《LLM大模型学习圣经》系列文档,包括《从0到1吃透Transformer技术底座》、《从0到1精通RAG架构,基于LLM+RAG构建生产级企业知识库》和《从0到1吃透大模型的顶级架构》。这些文档不仅系统地讲解了大模型的核心技术,还提供了实战案例和配套视频,帮助读者快速上手。
精通RAG架构:从0到1,基于LLM+RAG构建生产级企业知识库
|
5月前
|
计算机视觉
Deepseek开源多模态LLM模型框架Janus,魔搭社区最佳实践
deepseek近期推出了简单、统一且灵活的多模态框架Janus,它能够统一处理多模态理解和生成任务。让我们一起来了解一下吧。

热门文章

最新文章