运用 Elasticsearch 8.1.x 实现智能问答系统

序言

4219cf3bb15eb4161449cd7a508416d7.png

图示:一个简单的智能问答系统。

  • 在当前业务系统中,是否感受到越来越多的智能化个性业务诉求,做一个智能化的商品搜索,用于检索商品的相似性;做一个图片搜索,检索相似的图片;做一个语音搜索,检索相似度极高的音频,这种智能化的需求越来越多。

  • 可能你听过看过很多机器学习或者深度学习的“名词“,对于一些常规的应用工程师来说,这些距离个人很远,打开各种算法网站,看到各种模型,看的头疼。

  • 可能你是一个高学历的深度学习方面工程师,当面对业务复杂的需求时,也会两难,虽然掌握了很多深度学习模型,但在具体工程落地实践时,遇到很多困惑,如何解决海量的向量存储,如何解决海量的检索,如何与应用工程师搭配等。

以上是我们一个个IT领域工程师都会有的困惑,单个人精力有限,有的人擅长工程实践,有的人擅长算法模型,所以得需要找到一个中间衔接点,这个点就是 "Elasticsearch”

Elasticsearch 是如何解决问题的?

dense_vector

2019年4月,Elasticsearch发布了7.0版本,带来了很多新特性,其中增加了新的字段类型dense_vector,向量字段类型为智能搜索提供了最关键的基石,可广泛应用于文本相似度搜索、图片相似度搜索、语音相似度搜索等。

同时借助于Elasticsearch的架构特性,既可以解决海量数据的存储,也可以解决海量数据的检索,非常完美的解决了深度学习工程师的工程问题。

如下案例:设置字段类型为 dense_vector

PUT xxx-index-01
{
  "mappings": {
    "properties": {
      "my_vector": {
        "type": "dense_vector",
        "dims": 3,
        "index": true,
        "similarity": "dot_product"
      }
    }
  }
}

knn-search

2022年2月,Elasticsearch发布了8.0版本,同样带来很多新特性,其中最关注的是knn-search,提供了一种更加高效的索引算法,检索效率同比之前大幅度提升,在此之前只能通过简单粗暴的全表三角函数计算。

如下案例:基于_knn_search 构建向量检索

#KNN检索:_knn_search,构建向量检索
GET my-index/_knn_search
{
  "knn": {
    "field": "image_vector",
    "query_vector": [0.3, 0.1, 1.2],
    "k": 10,
    "num_candidates": 100
  },
  "_source": ["name", "date"]
}

Text-embedding

在深度学习领域,tensorflow深度学习平台是大家经常讨论熟知使用的,有了深度学习平台强力支撑,高学历的深度模型工程师仅仅需要关注算法模型层面,无需关注工程层面,在此之上,也衍生出一些成熟的算法模型,开箱即用,大大降低了项目落地的门槛。

基于Text-embedding单词嵌入模型,可以将文本、图像、音频等各种世间万物转换为特定向量,程序提前将各种数据生成对应向量,存入到Elasticsearch平台中,应用搜索时,也可以即可在Elasticsearch进行检索。

a58eb3f5bfbfcc6027b1e60d1ae5dadb.png

图示:通过embed模型,将文本内容转化为向量

本次公开课

  • 本次公开课,将基于Elasticsearch 新特性dense_vector、knn_search实现一个智能问答系统。

你将收获如下内容

  • 了解一个智能问答系统的前后实现机制?

  • 为什么选择 Elasticsearch来实现?

  • 动手搭建 Elastic Stack 8.1.x?

  • 动手实现 ES-Vector智能问答系统?

  • 全新认识 Elastic Stack 技术生态与应用领域

b2e7e4461a1a8461223575b38e6bf1cc.png

参考文献

  • dense-vector 向量字段类型

https://www.elastic.co/guide/en/elasticsearch/reference/8.1/dense-vector.html

  • knn-search 近邻搜索

https://www.elastic.co/guide/en/elasticsearch/reference/8.1/knn-search.html

  • text-similarity-search-with-vectors-in-elasticsearch 使用向量字段进行文本相似度搜索

https://www.elastic.co/cn/blog/text-similarity-search-with-vectors-in-elasticsearch

  • universal-sentence-encoder text-embeding 文本向量模型

https://tfhub.dev/google/universal-sentence-encoder/4

关于我们

讲师

李猛 Elastic King 数据领域专家

  1. Elastic Stack 国内顶尖实战专家

  2. ELastic Stack 技术社区分享嘉宾

  3. 国内首批 Elastic 官方认证工程师21人之一

  4. 阿里云MVP(大数据领域)

  5. DBAPlus MVP(原创内容贡献者)

  6. GitHub:https://github.com/ynuosoft

  7. 咕泡教育 《Elastic Stack 架构师P6成长路径》主讲老师。

2012年入手Elasticsearch,对Elastic Stack技术栈开发、架构、运维、源码、算法等方面有深入实战;负责过多种Elastic Stack项目,包括大数据分析领域,机器学习预测领域,业务查询加速领域,日志分析领域,基础指标监控领域等;

服务过多家企业,提供Elastic Stack 咨询培训以及调优实施;

多次在Elastic Stack技术大会/技术社区分享,发表过多篇实战干货文章;

十余年技术实战从业经验,擅长大数据多种技术栈混合,系统架构领域。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
人工智能智能机器人领域中的应用 在现代的工业制造,航空航天,交通矿业等领域,机器人越来越发挥着重要的作用。 一些日本的专家预测,到2010年,只有5%的体力劳动需要由人来完成,其余大量的体力劳 动要由机器人来承担。随着机器人的普及,机器人安全,规划,控制等领域也日益承受 着巨大的挑战。 当今大多数机器人被看作是笨拙的、缓慢的、缺乏智能的.它们只是用来完成一些非 常特定的任务。教机器人像人类一样完成一些任务也是非常困难的。按NitzenllJ的说法 ,这是机器人以下的一些特点决定的:(l)操作器的能力有限。机器人的末端操作器灵活 性有限,不能像人的手那样灵活操作,因此只能操作特定形状及大小的器件。(2)开环控 制。如今的机器人多数都是开环控制,如搬运、焊接等操作,开环操作导致精确性很难 保证。(3)无法进行错误诊断。绝大多数机器人无法对非预期的故障进行诊断并修复。 机器人系统经常无法确认机器人是否按原计划工作。(4)有限的可移动性。今天的机器 人常常会被引导方式所限制。这些机器人无法自由运动,避障能力也很有限。他们常常 只能在确定的环境中运动. 在过去的几十年,机器人控制理论得到了极大的发展。国内外专家学者做出了许多有 益的尝试,取得了丰硕的成果.然而,大多数控制方法需要合适的数学模型。但由于机器 人动力学的非线性、时变性、多关节强藕合及变惯量等复杂性,不仅其数学模型的参数 ,就连数学模型的类型都很难准确确定。由在线进行系统辨识的方法确定的动态数学模 型将随着负载和机器人型位的变化而不断变化。其巨大的计算量使这种方法根本无法应 用到实际中去。因此在实际应用中,我们看到最多的应用还是Pl,PD和PID控制.另一方面 ,人类的操作员在执行相似任务的时候,并不需要知道什么数学模型,却能够执行得很好 。因此,采用一种方式模拟人类的行为而不需要大量的数计算的控制方法自然而然地被 提出来,这就是所谓的智能控制。智能控制涉及到人工智能的多个领域,包括专家系统 、神经元网络以及模糊控制等。除了"专家系统"之外,还可列举出其他许多聪明的智能 软件系统。如:机器博突的智能软件、智能控制、智能管理、智能通信……的软件等.例如 :IBM的"深蓝"系统战胜了国际象棋大师卡斯帕诺夫,就是计算机的机器智能水平的一次 荣誉记录,也是聪明的人工智能软件的一个成功范例。 那何谓人工智能呢? "人工智能"(Artificial Intelligence)简称AI它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、 技术及应用系统的一门新的技术科学。人们认为"人工智能"是计算机科学技术的前沿科 技领域。因此,"人工智能"与计算机软件有密切的关系。人工智能是"类人"机器人所需要 的算法和技术,也就是说我们研究的主题是高级智能的本质,而不是其外在表现和辅助 部件.一方面,各种人工智能应用系统都要用计算机软件去实现,另一方面,许多聪明的计 算机软件也应用了人工智能的理论方法和技术.例如,专家系统软件,机器博奕软件等。 但是,"人工智能"不等于"软件",除了软件以外,还有硬件及其他自动化的通信设备。人 工智能是从思维、感知、行为三层次和机器智能智能机器两方面研究模拟、延伸与扩 展人的智能的理论、方法、技术及其应用的技术学科。 例如,用计算机打印常用的报表,进行一些常规的文字处理,都是程序化的操作,谈不 上有智能.但是,用计算机给人看病,进行病理诊断和药物处方,或者,用计算机给机器看 病,进行故障诊断和维修处理,就需要计算机有人工智能人工智能学科领域中有一个 重要的学科分支是"专家系统"(Expert System),简称代写论文ES.就是用计算机去模拟、延伸和扩展专家的智能.基于专家的 知识和经验,可以求解专业性问题的、具有人工智能的计算机应用系统。如:医疗诊断专 家系统,故障诊断专家系统等. 人工智能要解决的问题主要是以下几个方面: 一、识别过程,外界输入的信息向概念逻辑信息转译,将动态静态图像、声音、语音 、文字、触觉、味觉等信息转化为形式化(大脑中的信息存储形式)的概念逻辑信息。 二、智能运算过程,输入信息刺激自我学习、信息检索、逻辑判断、决策,并产生相 应反应。 三、控制过程,将需要输出的反应转译为肢体运动和媒介信息。 实用机器人在第三个方面做得比较多,而识别和智能运算是很弱的,尤其是概念知识 的存储形式、逻辑判断和决策这些方面更是鲜有成果,这正是人工智能要重点解决的问 题。 在机器人控制中常用的智能控制方式是模糊控制.如图1所示. 图1: 机器人控制中的模糊控制 十几年来,用神经元网络来控制机器人变得非常流行从控制的角度来考虑,神经元控 制具有如下一些特性: (l)分布式的非线性. (2)从经验进行学习的能力. (3)强壮的平行多处理能力。 (4)在尚未进

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值