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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

作者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你可以使用为 LLMLarge 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 任务类型进行比较 —— 这对于在将文档文本与另一个提供的文本输入进行比较时对文档文本进行排名很有用有时也称为交叉编码。

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

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

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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: 机器学习