Elasticsearch:在 Elastic 中访问机器学习模型

news2025/1/5 9:55:40

作者:Bernhard Suhm, Josh Devins

Elastic 支持你需要的机器学习模型

Elastic® 让你可以应用适合你的用例和 ML 专业水平的机器学习 (ML)。 你有多种选择:

  1. 利用内置的模型。 除了我们的可观察性和安全解决方案中针对特定安全威胁和系统问题类型的模型外,你还可以开箱即用地使用我们专有的 Elastic Learned Sparse Encoder 模型,以及语言识别 —— 如果你使用非英文文本数据。
  2. 从任何地方访问第三方 PyTorch 模型,包括 HuggingFace 模型中心。
  3. 加载你自己训练的模型 —— 此时主要是 NLP transformer。

使用内置模型可以让你获得开箱即用的价值,不需要你具备任何 ML 专业知识,而且你可以灵活地尝试不同的模型并确定哪种模型对你的数据表现最好。

我们将模型管理设计为可扩展到集群中的多个节点,同时确保高吞吐量和低延迟工作负载的良好推理性能。 这在一定程度上是通过授权摄取管道运行推理,并通过使用专用节点进行计算要求高的模型推理 —— 在摄取阶段,以及数据分析和搜索。

继续阅读以了解有关 Eland 库的更多信息,该库可让你将模型加载到 Elastic 中,以及它如何对你可能在 Elasticsearch® 中使用的各种类型的机器学习发挥作用 —— 从最新的 transformer 和自然语言处理 (NLP) 模型到提升 tree 回归模型。

Eland 让你可以将 ML 模型加载到 Elastic

我们的 Eland 库提供了一个简单的界面,可以将 ML 模型加载到 Elasticsearch 中 —— 前提是它们是使用 PyTorch 训练的。 使用原生库 libtorch,并期望已导出或保存为 TorchScript 表示的模型,Elasticsearch 避免在执行模型推理时运行 Python 解释器。

通过与 PyTorch 中用于构建 NLP 模型的最流行格式之一集成,Elasticsearch 可以提供一个可处理各种 NLP 任务和用例的平台。 我们将在接下来的 transformer 部分对此进行更多介绍。

你可以通过三种方式使用 Eland 上传模型:命令行、Docker 和你自己的 Python 代码。 Docker 不那么复杂,因为它不需要在本地安装 Eland 及其所有依赖项。 访问 Eland 后,下面的代码示例显示了如何上传 DistilBERT NER 模型,例如:

下面我们将详细介绍 eland_import_hub_model 的每个参数。 你可以从 Docker 容器发出相同的命令。

上传后,Kibana 的 ML 模型管理用户界面可让你管理 Elasticsearch 集群上的模型,包括增加额外吞吐量的分配,以及在(重新)配置系统时停止/恢复模型。

支持哪些模型?

Elastic 支持多种 transformer 模型,以及最流行的监督学习库:

  • NLP 和 embedding 模型:所有符合标准 BERT 模型接口,使用 WordPiece 分词算法的 transformer。 查看支持的模型架构的完整列表。
  • 监督学习:来自 scikit-learn、XGBoost 和 LightGBM 库的训练模型被序列化并用作 Elasticsearch 中的推理模型。 我们的文档提供了一个示例,用于训练 XGBoost 对 Elastic 中的数据进行分类。 你还可以使用我们的 data frame 分析导出和导入在 Elastic 中训练的受监督模型。
  • Genarative AI:你可以使用为 LLM(Large Language Model) 提供的 API 来传递查询 —— 可能使用从 Elastic 检索到的上下文进行丰富 —— 并处理返回的结果。 有关更多说明,请参阅此博客,该博客链接到 GitHub 存储库,其中包含用于通过 ChatGPT 的 API 进行通信的示例代码。

下面我们提供了有关你最有可能在搜索应用程序上下文中使用的模型类型的更多信息:NLP transformer。

如何在 Elastic 中轻松应用 transformers 和 NLP!

让我们引导你完成加载和使用 NLP 模型的步骤,例如来自 Hugging Face 的流行 NER 模型,并检查以下代码片段中标识的参数。

  1. 指定 Elastic cloud 标识符。 或者,使用 --url
  2. 提供身份验证详细信息以访问你的集群。 你可以查找可用的身份验证方法。
  3. 在 Hugging Face 模型中心指定模型的标识符。
  4. 指定 NLP 任务的类型。 支持的值为 fill_masknertext_classificationtext_embeddingzero_shot_classification

加载模型后,接下来需要部署它。 你可以在 Kibana 中机器学习选项卡的模型管理屏幕上完成此操作。 然后,你通常会测试模型以确保其正常工作。

现在你已准备好使用部署的模型进行推理。 例如,要提取命名实体,你可以在加载的 NER 模型上调用 _infer 端点:

该模型识别两个实体:人 “Josh” 和地点 “Berlin”。

有关其他步骤,例如在推理管道中使用此模型和调整部署,请阅读描述此示例的博客。

想看看如何应用语义搜索 —— 例如,如何为文本创建嵌入,然后应用向量搜索来查找相关文档? 该博客逐步说明了这一点,包括验证模型性能。

不知道哪个模型的任务类型? 该表应该可以帮助你入门。 

Hugging Face Model

task-type

Named entity recognition

ner

Text embedding

text_embedding

Text classification

text_classification

Zero shot classification

zero_shot_classification

Question answeringquestion_answering

Elastic 还支持将两段文本彼此的相似程度作为 text_similarity 任务类型进行比较 —— 这对于在将文档文本与另一个提供的文本输入进行比较时对文档文本进行排名很有用,有时也称为交叉编码。

查看这些资源以获取更多详细信息

  • 支持 PyTorch transformer,包括 Eland 的设计注意事项
  • 将 transformers 加载到 Elastic 并在推理中使用它们的步骤
  • 描述如何使用 ChatGPT 查询专有数据的博客
  • 使预训练的 transformer 适应文本分类任务,并将自定义模型加载到 Elastic
  • 内置语言识别,让你在传递到仅支持英语的模型之前识别非英语文本

Elastic、Elasticsearch 和相关标记是 Elasticsearch N.V. 在美国和其他国家/地区的商标、徽标或注册商标。 所有其他公司和产品名称均为其各自所有者的商标、徽标或注册商标。

本博文中描述的任何特性或功能的发布和时间安排均由 Elastic 自行决定。 当前不可用的任何特性或功能可能无法按时交付或根本无法交付。

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

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

相关文章

Ubuntu crontab定时任务

1. crontab 相关的命令: 安装:apt-get install cron 启动:service cron start 重启:service cron restart 停止:service cron stop 检查状态:service cron status 查询cron可用的命令:service …

【算法排序】直接插入排序

目录 一、概念及其介绍二、过程图示三、复杂度以及稳定性四、代码实现 一、概念及其介绍 插入排序(InsertionSort),一般也被称为直接插入排序。 对于少量元素的排序,它是一个有效的算法。插入排序是一种最简单的排序方法,它的基本思想是将一…

Keil(MDK-ARM)如何补充安装旧的编译器 AC5(ARM Compiler 5)

目录 一、前言二、下载1. 进入 Arm Developer 官网2. 下载 ARM Compiler 5 安装包3. 下载完成 三、安装1. 开始安装2. 安装过程3. 安装完成 四、配置1. 打开“Manage Project Items”2. 添加 ARM Compiler 5 编译器3. 添加成功4. 选择 ARM Compiler 5 作为当前使用的编译器 一、…

PHP+vue二手车交易信息网站系统

原来二手车网站由于二手车网站制度的不完善,许多城市的二手车网站市场都很少,而且欺诈行文较严重,肆意提高价格,隐瞒汽车所存在的故障问题,人们买卖二手车还是经过朋友帮忙介绍的途径来实现。这就导致了很多人的想卖车…

GitLab服务器搭建

文章目录 前述方式一:非容器安装搭建GitLab服务器查看gitlab用户的初始密码:修改初始密码gitlab配置文件修改服务的端口号启动并访问服务 方式二:容器下安装基于Docker安装Docker在容器中安装gitlab服务宿主机配置修改容器配置修改启动并访问…

SpringBoot如何优雅的实现参数验证

唠嗑部分 在我们设计接口时,参数验证是必不可少的一个环节,严格的参数验证能够保证数据的严谨,那么在SpringBoot项目中,你是如何验证参数的呢? 首先我们来描述一下需求 用户类,有用户名、用户头像、邮件…

基于html+css的图展示88

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

2000万的行数在2023年仍然是 MySQL 表的有效软限制吗?

谣言 互联网上有传言说我们应该避免在单个 MySQL 表中有超过 2000 万行。否则,表的性能会下降,当它超过软限制时,你会发现 SQL 查询比平时慢得多。这些判断是在多年前使用HDD硬盘存储时做出的。我想知道在2023年对于基于SSD的MySQL数据库来说…

【大数据学习篇10】Spark项目实战~网站转化率统计

学习目标/Target 掌握网站转化率统计实现思路 了解如何生成用户浏览网页数据 掌握如何创建Spark连接并读取数据集 掌握利用Spark SQL统计每个页面访问次数 掌握利用Spark SQL获取每个用户浏览网页的顺序 掌握利用Spark SQL合并同一用户浏览的网页 掌握利用Spark SQL统计每…

安卓基础巩固(三)多线程、数据存储、文件IO、SQLite

文章目录 多线程Handler相关概念UI线程/主线程MessageMessage QueueLooperHandler 使用步骤Handler.sendMessage()Handler.post() Handler 机制工作原理Handler内存泄露前置知识案例分析解决方案一:静态内部类弱引用解…

数据结构学习记录——图应用实例-六度空间(题目描述、算法思路、伪代码及解读、图解)

目录 题目描述 算法思路 伪代码 总体算法 BFS算法 伪代码解读 BFS算法 图解 题目描述 六度空间理论的核心观点是,人类社交网络中的任何两个人之间,平均只需要通过不超过六个中间人(也就是六个社交关系)就可以建立联系。换…

多台plc之间如何快速实现以太网无线连接?

常规来说,多台plc要实现以太网无线连接,首先要先确定以太网线必须正确连接,并建立物理连接。然后需要在PLC端设置好IP地址,以使不同PLC以相同协议可以实现通信交流。最后是建立PLC端数据采集及交换系统,要求在PLC端设置…

《封号码罗》关于js逆向猿人学第二题cookies里面m值的获取[纯扣算法](二十六)

这一题有点儿误打误撞的感觉。 本题使用了抓包工具Fiddler,m值在cookie里面,而且这个cookie是本地生成的 抓包发现有两次请求,第一次返回了一堆JS,而且cookie里面没有m值,第二次请求就带上了m值,所以m应该…

信号完整性分析基础知识之传输线和反射(七):带负载传输线、感性不连续引起的反射

带负载传输线 如果在传输线上有一个小的容性负载,信号会出现失真,上升时间也会降低。每个分立电容都会降低信号在其附近看到的阻抗。如果传输线上分布有多个容性负载(例如一个总线上每隔1.2inch有一个2pF的连接器残桩,或者一个内…

单模光纤一维模场分布的MATLAB仿真

根据已知的单模光纤电场z分量分布,可以用MATLAB展示一维的模场分布 具体来说,通过数值计算解出给定光纤(n_1,n_2,a)参数时对应的V参量 通过特征方程解出V对应的W和U 通过这三个参数带入到光场的表达式中…

07. 算法之一致性哈希算法介绍

前言 哈希算法在程序开发中的很多地方都能看到他的身影,但是哈希有他的局限性,比如如果两个key哈希到同一个位置的时候,此时就不好处理。本节我们介绍一下常规处理方式。 1. 什么是哈希算法 哈希算法将任意长度的二进制值映射为较短的固定…

界面控件DevExtreme使用指南 - 如何自定义上下文菜单和工具栏

DevExtreme File Manager(文件管理器)小部件现在支持自定义内置的工具栏和上下文菜单,用户可以使用标准和定义的命令项填充项目集合,并配置设置来更改其外观和操作。 DevExtreme拥有高性能的HTML5 / JavaScript小部件集合&#x…

基于Keras-YOLO实现目标检测

Keras-YOLO 3项目使用Python语言实现了YOLO v3网络模型,并且可以导入Darknet网络预先训练好的权重文件信息直接使用网络进行目标识别。 1. 下载Keras-YOLO 3项目 执行如下命令下载Keras-YOLO 3项目代码: git clone https://github.com/qqwweee/keras-…

直播和短视频美颜sdk的开发流程、代码分析

目前,美颜技术是提高视频质量的重要手段之一,特别是短视频和直播两个行业。本文将介绍其开发流程和代码分析。 一、美颜SDK的开发流程 1.需求分析 首先我们需要明确的一点就是“需求”,例如:美颜效果、美颜程度、性能要求等。同…

解决找不到微信支付V3版本公钥问题

参考微信文档链接为签名验证-接口规则 | 微信支付商户平台文档中心 写的内容特别不明显,往下面看会找到 下载openssl工具使用命令从私钥证书中导出即可。