Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

news2024/11/17 9:28:33

警告:此功能处于技术预览阶段,可能会在未来的版本中更改或删除。 Elastic 将尽最大努力修复任何问题,但技术预览中的功能不受官方 GA 功能的支持 SLA 约束。

Elastic Learned Sparse EncodeR - 或 ELSER - 是由 Elastic 训练的检索模型,使你能够执行语义搜索以检索更相关的搜索结果。 此搜索类型为您提供基于上下文含义和用户意图的搜索结果,而不是精确的关键字匹配。

ELSER 是一种域外(out-of-domain)模型,这意味着它不需要对你自己的数据进行微调,因此可以开箱即用地适应各种用例。

ELSER 将索引和搜索的段落扩展为术语集合,这些术语被学习为在不同的训练数据集中经常共同出现。 模型将文本扩展成的术语不是搜索术语的同义词; 他们是博学的协会。 这些扩展的术语被加权,因为其中一些比其他的更重要。 然后 Elasticsearch rank-feature 字段类型用于在索引时存储术语和权重,并在以后进行搜索。

以下安装是在 Elastic Stack 8.8 下完成的。

要求

要使用 ELSER,你必须具有相应的语义搜索(semantic search)订阅级别或激活试用期。

安装

如果你还没有安装好自己的 Elasticsearch 及 Kibana,请参阅如下的链接来进行安装:

  • 如何在 Linux,MacOS 及 Windows 上进行安装 Elasticsearch

  • Kibana:如何在 Linux,MacOS 及 Windows 上安装 Elastic 栈中的 Kibana

在安装的时候,请注意选择 Elastic Stack 8.x 的指南来进行安装。我们需要安装 Elastic Stack 8.8 及以上版本。

启动白金试用

由于语义搜索是一个机器学习的范畴,是一个收费的功能。如果我们不启动试用版本,那么在下载的时候,会出现如下的错误信息:

我们按照如下的方式来启动白金试用:

 

 

 

 

这样,我们试用授权已经启动了。

下载并部署 ELSER 

我们有如下的三种方法来下载并部署 ELSER:

  • Machine Learning => Trained Models
  • Enterprise Search => Indices
  • 通过 Dev Console

下面,我们来详细介绍它的步骤。

通过机器学的 Trained Model 页面

 

 

 

上面显示:

 

我们可以看到它正在下载当中。我们需要等待一点时间。

 

 

我们点击 Play 按钮来进行部署。

 

至此,我们已经成功地部署了 ELSER。

通过 Enterprise Search 中的 Indices 页面

针对 Enterprise search 的安装,请参考文章 “Enterprise:使用 Elastic Stack 8.2 中的 Elasticsearch API 来定位 App Search 中的文档”。

你还可以直接从 Enterprise Search 应用下载 ELSER 并将其部署到推理管道。如果你的 Elasticsearch 还没有任何的索引的话,你可以使用类似如下的命令来创建一个索引:

PUT twitter/_doc/1
{
  "name": "Xiaoguo Liu from Elastic"
}

上述命令将生成一个叫做 twitter 的索引。

 

 

 

 

 

 

 

 

 

 

从上面我们可以看出来模型已经被成功地部署。我们可以在这个页面进行配置它的部署。

使用 Dev Console 来进行部署

我们在 Dev Tools 中,通过运行以下 API 调用创建 ELSER 模型配置:

PUT _ml/trained_models/.elser_model_1
{
  "input": {
	"field_names": ["text_field"]
  }
}

如果尚未下载模型,API 调用会自动启动模型下载。

等过一会儿,我们可以看到如下的页面:

 

我们可以在机器学习的 Trained Models 里进行查看。 

我们可以使用带有 delpoyment ID 的开始训练模型部署 API 来部署模型:

POST _ml/trained_models/.elser_model_1/deployment/_start?deployment_id=for_search

 

我们可以在机器学习的页面查看它的状态。上面显示已经是 started 状态。你可以使用不同的部署 ID 多次部署模型。 

以下示例为 ID 为 my_model_for_ingest 的 .elser_model_1 训练模型启动新部署。 部署 ID 可用于推理 API 调用或推理处理器。

POST _ml/trained_models/.elser_model_1/deployment/_start?deployment_id=my_model_for_ingest

可以使用不同的 ID 再次部署经过 my_model 训练的模型:

POST _ml/trained_models/.elser_model_1/deployment/_start?deployment_id=my_model_for_search

部署完成后,ELSER 就可以在摄取管道或 text_expansion 查询中使用以执行语义搜索。

如何使用 ELSER 模型

我们可以使用如下的命令来进行测试:

POST /_ml/trained_models/.elser_model_1/_infer
{
  "docs": {
    "text_field": "how is the weather in jamaica"
  }
}

从上面我们可以看出来它是一个 text_expansion 类型的模型:

 

在气隙环境中部署 ELSER

如果你想在受限或封闭的网络中部署 ELSER,你有两种选择:

  • 创建你自己的带有模型工件的 HTTP/HTTPS 端点,
  • 将模型工件放入所有符合主节点条件的配置目录内的目录中。

你的系统中需要以下文件:

https://ml-models.elastic.co/elser_model_1.metadata.json
https://ml-models.elastic.co/elser_model_1.pt
https://ml-models.elastic.co/elser_model_1.vocab.json

使用 HTTP 服务器

提示:如果你使用现有的 HTTP 服务器,请注意模型下载器仅支持无密码 HTTP 服务器。

你可以使用任何 HTTP 服务来部署 ELSER。 此示例使用官方 Nginx Docker 映像来设置新的 HTTP 下载服务。

1)从 https://ml-models.elastic.co/ 下载模型工件文件。

2)将文件放入你选择的子目录中。

3)运行以下命令:

export ELASTIC_ML_MODELS="/path/to/models"
docker run --rm -d -p 8080:80 --name ml-models -v ${ELASTIC_ML_MODELS}:/usr/share/nginx/html nginx

不要忘记将 /path/to/models 更改为模型工件文件所在的子目录的路径。

这些命令使用 Nginx 服务器启动本地 Docker 映像,其子目录包含模型文件。 由于需要下载和构建Docker镜像,第一次启动可能需要较长的时间。 随后的运行开始得更快。

4)通过在浏览器中访问以下 URL 来验证 Nginx 是否正常运行:

http://{IP_ADDRESS_OR_HOSTNAME}:8080/elser_model_1.metadata.json

如果 Nginx 正常运行,你会看到模型的元数据文件的内容。

5)通过将以下行添加到 config/elasticsearch.yml 文件,将你的 Elasticsearch 部署指向 HTTP 服务器上的模型工件:

xpack.ml.model_repository: http://{IP_ADDRESS_OR_HOSTNAME}:8080

如果你使用自己的 HTTP 或 HTTPS 服务器,请相应地更改地址。 指定协议很重要(“http://”或“https://”)。 确保所有符合主节点条件的节点都可以访问你指定的服务器。

6)在所有符合主节点资格的节点上重复步骤 5。

7)一个接一个地重启 master-eligible节点。

仅下载模型需要 HTTP 服务器。 下载完成后,你可以停止并删除该服务。 你可以通过运行以下命令停止此示例中使用的 Docker 镜像:

docker stop ml-models

使用基于文件的访问

对于基于文件的访问,请执行以下步骤:

1)从 https://ml-models.elastic.co/ 下载模型工件文件。
2)将文件放入 Elasticsearch 部署的配置目录内的模型子目录中。
3)通过将以下行添加到 config/elasticsearch.yml 文件,将你的 Elasticsearch 部署指向模型目录:

xpack.ml.model_repository: file://${path.home}/config/models/`

4)在所有符合主节点资格的节点上重复步骤 2 和步骤 3。
5)一个接一个地重启 master-eligible 节点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/642214.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python程序员必会技能:如何在Python中连接数据库获取数据

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 想要成为一名数据分析师,一个最基础的技能就是:提取数据。 数据是数据分析的基础。 因此,掌握各种获取数据的技能一定是一个合格的数据分析师的必备技能。 而我们的需要进行提取的…

总结排查服务器上传下载慢的几种手段与查看服务器带宽的具体方法

一、排查服务器上传下载 最近出现的一个情况,服务器上传和下载比较慢,因此我排查了种种手段,特此记录下几种常见的手段。 1、使用speedtest-cli 测试网速: 该方法是测试网速的速度怎么样,看看是否真的慢? …

python中os库用法详解(总结)

os库主要是对文件和文件夹进行操作,在Python中对⽂件和⽂件夹的操作要借助os模块⾥⾯的相关功能。 具体步骤如下: 1. 导⼊os模块 import os 2. 使⽤ os 模块相关功能 os.函数名() 1、⽂件重命名 os.rename(⽬标⽂件名, 新⽂件名) 示例代码&#…

使用Docker从0开始在Linuex部署springboot项目(图文并茂)

一、前言 在腾讯云新买的洁白如新的云服务器,想要使用docker去部署springboot项目,特此记录! 二、安装jdk 参考博客:https://blog.csdn.net/weixin_45853881/article/details/123402891 2.1 检查jdk 直接在腾讯云平台登陆云服…

软件测试进阶知识 —— 自动化测试总结

自动化测试 自动化测试的定义:使用一种自动化测试工具来验证各种软件测试的需求,它包括测试活动的管理与实施、测试脚本的开发与执行。 自动化测试只是测试工作的一部分,是对手工测试的一种补充; 自动化测试绝不能代替手工测试;多数情况下&a…

怎样高效率备考PMP

一方面由于这些考试的知识,在准备考试前我们大部分很少接触,大部分人考试的目的也未必是感兴趣,更多是因为考试结果能给我们带来的收益。因此长时间的学习不熟悉甚至不感兴趣的很容易疲倦,这不像我们工作或生活中的一些技能&#…

怎样用U盘重装Win10系统?用U盘重装Win10系统教程

怎样用U盘重装Win10系统?有些新手用户在问怎样用U盘才能完成Win10系统的重装,这时候用户需要准备一个U盘、一个能够正常联网的电脑,然后按照以下分享的用U盘重装Win10系统教程操作,就能轻轻松松完成Win10系统的重装。 准备工作&am…

482576-74-9,Fmoc-Thr(Ac4Manα1-2Ac3Manα1-2Ac3Manα)-OH,肽链中可以糖基化的主要是Ser和Thr

【产品描述】 Fmoc-Thr(Ac4Manα1-2Ac3Manα1-2Ac3Manα)-OH(CAS:482576-74-9)中肽链中可以糖基化的主要是Ser和Thr,此外还有酪氨酸、羟赖氨酸和羟脯氨酸糖基化修饰的糖肽,链接的位点是这些残基侧链上的羟基氧原子。连接的糖为半乳…

Element常用组件之 表单组件 form

1. 建立form.vue <template><el-form ref"form" :model"form" label-width"80px"><el-form-item label"活动名称"><el-input v-model"form.name"></el-input></el-form-item><el-f…

Pandas的窗口函数rolling和expanding用法说明

Pandas的窗口函数rolling和expanding 1、rolling 移动窗口 rolling() 移动窗口函数&#xff0c;它可以与 mean、count、sum、median、std 等聚合函数一起使用。为了使用方便&#xff0c;Pandas 为移动函数定义了专门的方法聚合方法&#xff0c;比如 rolling_mean()、rolling_…

ArduPilot之H743自动PID调节

ArduPilot之H743自动PID调节 1. 源由2. 涉及参数2.1 AUTOTUNE_*2.2 RCx_OPTION 3. 自动校准3.1 预准备3.2 参数配置3.3 操作步骤 4. 实操&总结5. 参考资料6. 补充视频 1. 源由 ArduCopter可以自动通过算法来对PID进行调优&#xff0c;不过这里有个前提是模型噪声要比较少。…

Mysql数据库的初体验

数据库管理系统是一个由因相互关联的数据的集合和一组用访问这些数据的程序组成&#xff0c;这个数据集合通常称作数据库&#xff0c;其中包含了关于某个企业的信息。DBMS的主要目标就是提供一种可以方便高效的存取数据库信息的途径。 一、数据库的基本概念 1.数据库的组成 ①…

一文让你了解appium自动化的工作原理

目录 前言&#xff1a; 一、Appium加载的过程图解 二、初步认识appium工作过程 三、bootstrap介绍 四、所使用的技术 五、Capabilities 六、自我理解的工作原理 前言&#xff1a; Appium是一个流行的开源自动化测试框架&#xff0c;支持移动应用程序的自动化测试。 一…

Varnish开源HTTP反向代理缓存服务器

第三阶段基础 时 间&#xff1a;2023年6月13日 参加人&#xff1a;全班人员 内 容&#xff1a; Varnish 目录 Varnish 端口号&#xff1a;TCP/6081 TCP/6082 配置文件&#xff1a;/etc/varnish/default.vcl 安装部署&#xff1a; 测试功能&#xff1a; Varnish V…

6月14日晚 19:00公开课直播 | 入门必看:40min 掌握低代码基础功能

大家好&#xff0c;新一期「ONEIN 公开课」要和大家见面啦&#xff01; Onein 公开课介绍 Onein 公开课&#xff0c;是万应低代码开设的直播课堂&#xff0c;专注低代码领域&#xff0c;希望帮助每一位用户更好的使用万应低代码。 随着低代码的兴起&#xff0c;低代码这一名词…

从小白到大神之路之学习运维第39天---第三阶段---MongoDB非关系型数据库(概述、安装、设置管理员、简单操作、配置文件说明,备份和还原)

第三阶段基础 时 间&#xff1a;2023年6月13日 参加人&#xff1a;全班人员 内 容&#xff1a; 目录 MongoDB概述 端口号&#xff1a;TCP/27017 配置文件&#xff1a;/etc/mongod.conf MongoDb安装部署 MongoDB设置密码 MongoDB操作命令与说明 配置文件说明 备份操作 1. 热备…

chatgpt赋能python:Python怎么居中对齐

Python怎么居中对齐 在Python中&#xff0c;输出对齐是一项基本功能。当我们想要打印表格或美化输出时&#xff0c;居中对齐是一个常见的要求。本文将介绍如何使用Python进行居中对齐&#xff0c;以及一些相关的技术和应用。 如何居中对齐&#xff1f; 要在Python中实现居中…

TypeScript知识汇总

一、ts简介 1、什么是ts 2、ts增加了什么 二、TypeScript开发环境搭建 注&#xff1a;如果npm i运行报错&#xff0c;需要以管理员身份运行一次&#xff0c;以上主要就是tsc xxx.ts 三、ts的基本类型——ts相当于是给js可以指定类型 //number、string、boolean等常用类型&am…

[游戏开发][Unreal]项目启动

新建项目时会有 [项目名].uproject文件&#xff0c;鼠标右键该文件点击Switch Unreal Engine version 如果你的 [项目名].uproject文件是个纯白的图标&#xff0c;证明没有关联到Unreal&#xff0c;该怎么办呢 使用搜索工具搜UnrealVersionSelector.exe 或者直接去你的UE5安装目…

在华为外包待了3年,我秃了,但没变强...

我25岁&#xff0c;中级测试&#xff0c;外包&#xff0c;薪资13.5k&#xff0c;人在上海。内卷什么的就不说了&#xff0c;而且人在外包那些高级精英年薪大几十的咱也接触不到&#xff0c;就说说外包吧。 假设以我为界限&#xff0c;25岁一线城市13.5k&#xff0c;那22-24大部…