Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

这篇具有很好参考价值的文章主要介绍了Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

警告:此功能处于技术预览阶段,可能会在未来的版本中更改或删除。 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 及以上版本。

启动白金试用

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

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

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

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

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

下载并部署 ELSER 

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

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

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

通过机器学习的 Trained Model 页面

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

上面显示:

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

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

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

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

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

至此,我们已经成功地部署了 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 的索引。

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

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

使用 Dev Console 来进行部署

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

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

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

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

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

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

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

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

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

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

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

我们可以在机器学习的页面查看它的状态。上面显示已经是 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"
  }
}

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

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

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

在气隙环境中部署 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 节点。文章来源地址https://www.toymoban.com/news/detail-494455.html

到了这里,关于Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Elasticsearch:使用 ELSER 进行语义搜索

    Elastic Learned Sparse EncodeR(或 ELSER)是一种由 Elastic 训练的 NLP 模型,使你能够使用稀疏向量表示来执行语义搜索。 语义搜索不是根据搜索词进行字面匹配,而是根据搜索查询的意图和上下文含义检索结果。 本教程中的说明向你展示了如何使用 ELSER 对数据执行语义搜索。 提示

    2024年02月11日
    浏览(48)
  • Elasticsearch:使用 ELSER v2 进行语义搜索

    在我之前的文章 “Elasticsearch:使用 ELSER 进行语义搜索”,我们展示了如何使用 ELESR v1 来进行语义搜索。在使用 ELSER 之前,我们必须注意的是: 重要 :虽然 ELSER V2 已正式发布,但 ELSER V1 仍处于 [预览] 状态。此功能处于技术预览阶段,可能会在未来版本中更改或删除。 E

    2024年02月22日
    浏览(44)
  • Elasticsearch:使用 ELSER 文本扩展进行语义搜索

    在今天的文章里,我来详细地介绍如何使用 ELSER  进行文本扩展驱动的语义搜索。 如果你还没有安装好自己的 Elasticsearch 及 Kibana,请参考如下的链接来进行安装: 如何在 Linux,MacOS 及 Windows 上进行安装 Elasticsearch Kibana:如何在 Linux,MacOS 及 Windows 上安装 Elastic 栈中的 Kiba

    2024年02月07日
    浏览(49)
  • Elasticsearch:升级索引以使用 ELSER 最新的模型

    在此 notebook 中,我们将看到有关如何使用 Reindex API 将索引升级到 ELSER 模型 .elser_model_2 的示例。 注意:或者,你也可以通过 update_by_query 来更新索引以使用 ELSER。 在本笔记本中,我们将看到使用 Reindex API 的示例。 我们将在本笔记本中看到的场景: 将未生成 text_expansion 字段

    2024年02月03日
    浏览(57)
  • Elasticsearch:NLP 和 Elastic:入门

    自然语言处理 ( N atural L anguage P rocessing - NLP) 是人工智能 (AI) 的一个分支,专注于尽可能接近人类解释的理解人类语言,将计算语言学与统计、机器学习和深度学习模型相结合。 AI - Artificial Inteligence 人工智能 ML - Machine Learning 机器学习 DL - Deep Learning  深度学习 NLP - Naturual L

    2024年02月05日
    浏览(48)
  • Elasticsearch8重置elastic用户密码

    elastic可以说是es中预留的一个用户名,在按照官网yum安装方法安装启动后通过下面的方式测试是否正确运行 因为安装完成后自动开启了安全访问,所以必须要加 --cacert参数指定安装自动生成的认证文件,协议必须是https,但是结果返回了: 很纳闷,不知道为啥,既然是无法认

    2024年02月12日
    浏览(38)
  • Elasticsearch:在 Elastic 中访问机器学习模型

    作者:Bernhard Suhm, Josh Devins Elastic® 让你可以应用适合你的用例和 ML 专业水平的机器学习 (ML)。 你有多种选择: 利用内置的模型。 除了我们的可观察性和安全解决方案中针对特定安全威胁和系统问题类型的模型外,你还可以开箱即用地使用我们专有的 Elastic Learned Sparse Encod

    2024年02月14日
    浏览(41)
  • elasticsearch&elastic-head docker安装

    Elasticsearch8.7.1 安装 拉取镜像 创建elastic 网络 执行创建 注意log中的elastic 用户密码 重置密码:docker exec -it esA /usr/share/elasticsearch/bin/elasticsearch-reset-password 4. 查看结果 拷贝证书到当前文件夹 访问9200 elasticsearch-head 安装 拉取镜像 执行创建 访问9100 elasticsearch-head 无法连接elasti

    2024年02月06日
    浏览(38)
  • Elastic:linux设置elasticsearch、kibana开机自启

    每次启动服务器都要手动启动es服务,相当之不方便,为此,书写一个脚本,实现es、kibana的开机自启 首先任何服务要实现开机自启,都可分为如下三步: 1、在 /etc/init.d 目录下创建启动、关闭服务的脚本,脚本中要设置运行级别、启动优先级、关闭优先级等。 2、给脚本赋权

    2024年02月14日
    浏览(46)
  • Elasticsearch:如何在 Elastic 中实现图片相似度搜索

    作者:Radovan Ondas 在本文章,我们将了解如何通过几个步骤在 Elastic 中实施相似图像搜索。 开始设置应用程序环境,然后导入 NLP 模型,最后完成为你的图像集生成嵌入。 Elastic 图像相似性搜索概览 Elasticsearch:如何在 Elastic 中实现图片相似度搜索 第一步是为你的应用程序设

    2024年01月22日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包