如何5分钟快速搭建智能问答系统

源代码 2024-9-25 13:02:03 37 0 来自 中国
最近小马在搞AI,目标是实现一个智能问答系统来支撑业务。经过了之前一段时间的基础AI技术学习后,小马开始NLP并调研智能问答系统。本文介绍如何5分钟快速搭建一个智能问答系统。亲测效果良好。
典型的QA 系统包括在线客户服务系统、QA 聊天机器人等。大多数问答系统可以分为:生成式或检索式、单轮或多轮、开放域或特定问答系统。
传统的问答机器人大都是基于规则的知识图谱方式实现,这种方式需要对大量的语料进行分类整理。
基于深度学习模型的实现方式可以彻底摆脱对语料的预处理,只需提供问题和答案的对应关系,通过自然语言处理的语义分析模型对问题库提取语义特征向量存入Milvus中,然后对提问的问题也进行语义特征向量提取,通过对向量特征的匹配就可以实现自动回复,轻松实现智能客服等应用。
一、理论准备

如何5分钟快速搭建一个智能问答系统,小马最初受到启发的是这个视频教程《5分钟搭建智能问答系统》,文章《快速搭建对话机器人,就用这一招!》--有比较清晰的原理描述,但是发现教程中的项目版本已经过旧,而且资源已经被下架,所以视频仅供参考。于是顺藤摸瓜,找到最新的相关教程github地址,跟着这个教程走。(加载中文模型的参考文章《bootcamp问答系统部署》)
我们先来看看这个项目的描述。
This project combines Milvus and BERT to build a question and answer system. This aims to provide a solution to achieve semantic similarity matching with Milvus combined with AI models.
直译为:
本项目结合 Milvus 和 BERT 构建问答系统。旨在提供一种解决方案,通过 Milvus 结合 AI 模型实现语义相似度匹配。
Milvus是什么?
Milvus是一款全球领先的开源向量数据库,赋能 AI 应用和向量相似度搜索,加速非结构化数据检索。
BERT 是什么?
BERT是Google开发的一种基于Transformer的机器学习技术,用于自然语言处理(NLP) 预训练。
这里有一个BERT相关视频教程《BERT从零详细解读,看不懂来打我》,涉及AE输入形式  mask模型,其使用到概率学,所以无监督学习依赖于训练数据,需要从训练数据中计算概率。
BERT是一个多任务模型,它的任务是由两个自监督任务组成,即MLM和NSP。Next Sentence Prediction(NSP)的任务是判断句子B是否是句子A的下文。相关还有教程1,2。
BERT其中的一个重要作用是可以生成词向量,它可以解决word2vec中无法解决的一词多义问题。获取完BERT词向量后还可以结合CNN、RNN等模型来实现自己的任务。
我们现在可以来看下系统的架构原理图。
1.png 2.png 该系统可以将新的用户问题与先前存储在向量数据库中的大量答案联系起来。要构建这样的聊天机器人,请准备您自己的问题数据集和相应的答案。将问题和答案存储在关系数据库 MySQL 中。然后使用用于自然语言处理 (NLP) 的机器学习 (ML) 模型 BERT 将问题转换为向量。这些问题向量在 Milvus 中存储和索引。当用户输入一个新问题时,BERT 模型也会将其转换为一个向量,Milvus 会搜索与这个新向量最相似的问题向量。问答系统对最相似的问题返回相应的答案
系统会使用 Milvus 存储和搜索特征向量数据,Mysql 用于存储 Milvus 返回的 id 与问题数据集的对应关系,此时需要先启动 Milvus 和 Mysql。
二、快速部署

因为本篇之前没写详细,又想保留着本文评论笔记所以不想删文,于是重新整理了一份完整内容的:传送门
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-18 16:43, Processed in 0.115292 second(s), 35 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表