当前位置: 首页 > news >正文

Elasticsearch:如何为 Elastic Stack 部署 E5 模型 - 下载及隔离环境

从双向编码器表示(Embeddings from bidirectional Encoder Representations,简称 E5)是一种自然语言处理模型,它可以通过使用稠密向量表示来执行多语言语义搜索。该模型推荐用于非英语文档和查询。如果你想对英文文档执行语义搜索,可以使用 ELSER 模型。

语义搜索根据上下文含义和用户意图提供搜索结果,而不是仅仅匹配关键词。

E5 有两个版本:

  1. 跨平台版本:可在任何硬件上运行

  2. Intel® 硅优化版本:针对 Intel 硬件优化

Model Management > Trained Models 页面上,可以查看根据集群硬件推荐部署的 E5 版本。不过,推荐的使用方式是通过 inference API 作为服务 使用 E5,这样可以更方便地下载和部署模型,无需手动选择不同版本。

如需更多信息,包括许可说明,可以参考 HuggingFace 上的 multilingual-e5-smallmultilingual-e5-small-optimized 模型卡。

要求

要使用 E5,你必须拥有用于 semantic search 的相应订阅等级或已激活试用期。

建议为你的 E5 部署启用 trained model autoscaling。参考 Trained model autoscaling 了解更多信息。

下载并部署 E5

下载并部署 E5 最简单且推荐的方式是使用 inference API。

1)在 Kibana 中,进入 Dev Console。
2)通过运行以下 API 请求,使用 elasticsearch 服务创建一个 inference endpoint:

PUT _inference/text_embedding/my-e5-model
{"service": "elasticsearch","service_settings": {"num_allocations": 1,"num_threads": 1,"model_id": ".multilingual-e5-small"}
}

该 API 请求会自动启动模型下载,然后部署模型。

参考 elasticsearch inference service 文档了解可用设置的更多信息。

在创建 E5 inference endpoint 后,它即可用于 semantic search。在 Elastic Stack 中执行 semantic search 最简单的方法是遵循 semantic_text workflow。

下载并部署 E5 的替代方法

你也可以从 Trained models 页面、Search > Indices,或通过在 Dev Console 中使用 trained models API 下载并部署 E5 模型。

注意:在大多数情况下,推荐使用针对 Intel 和 Linux 优化的模型,建议下载并部署该版本。

使用 Trained Models 页面进行下载

我们可以使用如下的命令来卸载已经安装好的模型:

DELETE _ml/trained_models/.multilingual-e5-small?force=true

一旦被卸载,就会恢复到之前的样子:

在 Dev Console 中使用 trained models API

1)在 Kibana 中,进入 Dev Console。
2)通过运行以下 API 调用创建 E5 模型配置:

PUT _ml/trained_models/.multilingual-e5-small
{"input": {"field_names": ["text_field"]}
}

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

3)使用 start trained model deployment API 并提供 deployment ID 来部署模型:

POST _ml/trained_models/.multilingual-e5-small/deployment/_start?deployment_id=for_search

在隔离环境中部署 E5 模型

如果你想在隔离环境中安装 E5,你有以下选项:

  • 将模型文件放入所有 master-eligible 节点 config 目录内的某个目录中(适用于 multilingual-e5-small 和 multilingual-e5-small-linux-x86-64)

  • 使用 HuggingFace 安装模型(仅适用于 multilingual-e5-small 模型)

模型文件

对于 multilingual-e5-small 模型,你的系统中需要以下文件:

https://ml-models.elastic.co/multilingual-e5-small.metadata.json
https://ml-models.elastic.co/multilingual-e5-small.pt
https://ml-models.elastic.co/multilingual-e5-small.vocab.json

对于优化版本,你的系统中需要以下文件:

https://ml-models.elastic.co/multilingual-e5-small_linux-x86_64.metadata.json
https://ml-models.elastic.co/multilingual-e5-small_linux-x86_64.pt
https://ml-models.elastic.co/multilingual-e5-small_linux-x86_64.vocab.json
$ pwd
/Users/liuxg/elastic/elasticsearch-9.2.0/config/models
$ ls
multilingual-e5-small.metadata.json multilingual-e5-small.pt            multilingual-e5-small.vocab.json

使用基于文件的访问

对于基于文件的访问,请按照以下步骤操作:

  1. 下载模型文件。

  2. 将文件放入 Elasticsearch 部署的 config 目录下的 models 子目录中。

  3. 通过在 config/elasticsearch.yml 文件中添加以下行,将你的 Elasticsearch 部署指向模型目录:

    xpack.ml.model_repository: file://${path.home}/config/models/
  4. 在所有 master-eligible 节点重复步骤 2 和步骤 3。

  5. 逐一重启 master-eligible 节点。

  6. 从主菜单进入 Trained Models 页面,或使用 Kibana 的全局搜索字段。你可以在训练模型列表中找到 E5。

  7. 点击 Add trained model 按钮,选择你在步骤 1 下载并想要部署的 E5 模型版本,然后点击 Download。所选模型将从你在步骤 2 放置的模型目录中下载。

  8. 下载完成后,点击 Start deployment 按钮启动部署。

  9. 提供 deployment ID,选择优先级,并设置每个分配的 allocation 数量和线程数。

  10. 点击 Start

使用 HuggingFace 仓库

你可以通过将 eland_import_hub_model 脚本指向模型的本地文件,在受限或封闭网络中安装 multilingual-e5-small 模型。

对于离线安装,模型需要先在本地克隆,你的系统中需要安装 Git 和 Git Large File Storage。

1)使用模型 URL 从 Hugging Face 克隆 E5 模型。

git clone https://huggingface.co/intfloat/multilingual-e5-small

该命令会在 multilingual-e5-small 目录中生成模型的本地副本。

2)使用 eland_import_hub_model 脚本,并将 --hub-model-id 设置为克隆模型的目录来安装它:

eland_import_hub_model \--url 'XXXX' \--hub-model-id /PATH/TO/MODEL \--task-type text_embedding \--es-username elastic --es-password XXX \--es-model-id multilingual-e5-small

如果你使用 Docker 镜像运行 eland_import_hub_model,必须绑定挂载模型目录,以便容器可以读取文件。

docker run --mount type=bind,source=/PATH/TO/MODELS,destination=/models,readonly -it --rm docker.elastic.co/eland/eland \eland_import_hub_model \--url 'XXXX' \--hub-model-id /models/multilingual-e5-small \--task-type text_embedding \--es-username elastic --es-password XXX \--es-model-id multilingual-e5-small

一旦上传到 Elasticsearch,模型将使用 --es-model-id 指定的 ID。如果未设置,则模型 ID 将从 --hub-model-id 推导;空格和路径分隔符会被转换为双下划线 __。

免责声明

客户可以将第三方训练模型添加到 Elastic 进行管理。这些模型不属于 Elastic。虽然 Elastic 会根据文档支持与这些模型的集成性能,但你理解并同意 Elastic 对第三方模型或它们可能使用的底层训练数据不拥有控制权,也不承担任何责任。

本 E5 模型,如定义、托管、集成并与我们的其他 Elastic 软件一起使用,受我们的标准保修覆盖。

http://www.dtcms.com/a/593334.html

相关文章:

  • 第3章,[标签 Win32] :创建窗口01,CreateWindow 函数初识
  • FreeRTOS操作系统
  • 成都 在线 网站建设wordpress怎么改标题和meta
  • 正确理解类中的公共方法、内部方法和私有方法
  • 太平洋在线企业建站系统iphone wordpress
  • 零基础入门C语言之C语言实现数据结构之单链表
  • 4. SpringBoot 自定义Banner使用与原理解析
  • Docker环境搭建:Windows/macOS/Linux全平台教程
  • mac安装GIT
  • 开锁公司做网站网站对企业的好处
  • 我爱你域名的网站html5网站建设报价
  • Diffusion VS Flow Matching
  • 电子电气架构 --- 一个具体项目的需求管理(实例化)
  • 11.string(下)
  • OpenVINS代码解读---State.h
  • 提供深圳网站制作公司永久使用免费虚拟主机
  • 智能时代的缘起:从ChatGPT到修行之路
  • 智能守护绿水青山:视频融合平台EasyCVR在森林防火监控中的实战应用
  • 如何做好网站建设前期网站规划软文写手兼职
  • docsify 本地部署完整配置模板 || 将md文件放到网页上展示
  • Bash Shell脚本学习——唇读数据集格式修复脚本
  • 网站界面用什么软件做建设网站需申请什么
  • 底层视觉及图像增强-项目实践(十六-0-(8):端到端DeepHDRNet:从原理到LED显示工程的跨界实践):从奥运大屏,到手机小屏,快来挖一挖里面都有什么
  • 视频号视频下载到手机的详细教程,以及常使用的工具!
  • 禹城网站建设公司安卓网站开发视频
  • 江国青:从郧阳沃土到法治与媒体前沿的跨界行者
  • Mediasoup的SFU媒体服务转发中心详解(与传统SFU的区别)
  • 招标网站免费企业作风建设心得体会
  • 【Java SE 基础学习打卡】07 Java 语言概述
  • 淘宝/天猫获得淘宝买家秀API,python请求示例