推理处理
编辑推理处理编辑
当您通过 内容 UI 创建索引时,还会创建一组默认摄取管道,包括一个 ML 推理管道。ML 推理管道 使用推理处理器来分析字段并使用输出丰富文档。推理处理器使用 ML 训练的模型,因此您需要使用内置模型或在您的集群中部署训练好的模型才能使用此功能。
本指南重点介绍 ML 推理管道、其用途以及如何管理它。
此功能并非在所有 Elastic 订阅级别都可用。有关Elastic Cloud 和自管部署,请参阅 Elastic 订阅页面。
NLP 用例编辑
自然语言处理 (NLP) 允许开发人员创建丰富的搜索体验,超越词汇搜索的标准。以下是一些通过使用 NLP 模型改进搜索体验的示例:
ELSER 文本扩展编辑
使用 Elastic 的ELSER 机器学习模型,您可以轻松地将文本扩展功能整合到您的查询中。其工作原理是使用 ELSER 在摄取时为您的文档提供语义丰富,并结合Elastic 搜索应用程序模板的功能在查询时提供自动文本扩展。
命名实体识别 (NER)编辑
NER 最常用于从文本中检测实体,例如人物、地点和组织信息,可用于从文本中提取关键信息并根据该信息对结果进行分组。体育新闻媒体网站可以使用 NER 自动提取文章中职业运动员、体育场和运动队的名称,并链接到赛季统计数据或赛程表。
文本分类编辑
文本分类 通常用于情感分析,也可用于类似的任务,例如在公共论坛中将包含仇恨言论的内容标记出来,或对支持工单进行分类和标记,以便它们自动达到正确的升级级别。
文本嵌入编辑
使用文本嵌入模型分析文本字段将生成文本的密集向量表示形式。此数值数组对文本的语义*含义*进行编码。对用户的搜索查询使用相同的模型将生成一个向量,然后可以使用该向量进行搜索,根据向量相似度(语义相似度)而不是传统的单词或文本相似度对结果进行排名。
一个常见的用例是用户搜索常见问题解答,或支持代理搜索知识库,其中语义相似的 contenido 可能在措辞上几乎没有相似性。
内容 UI 中的 NLP编辑
ML 推理管道概述编辑
下图显示了文档在摄取过程中的处理方式。
- 文档由
my-index-0001
管道处理,当通过 Elastic 连接器或爬虫进行索引时,会自动发生这种情况。 _run_ml_inference
字段设置为true
以确保执行 ML 推理管道 (my-index-0001@ml-inference
)。此字段在摄取过程中被删除。- 推理处理器使用
my-positivity-model-id
训练的模型分析文档上的message
字段。推理输出存储在ml.inference.positivity_prediction
字段中。 - 然后,生成的丰富文档将被索引到
my-index-0001
索引中。 ml.inference.positivity_prediction
字段现在可以在查询时用于搜索高于或低于某个阈值的文档。
查找、部署和管理训练好的模型编辑
此功能旨在让您更轻松地使用 ML 训练的模型。首先,您需要确定哪个模型最适合您的数据。确保使用兼容的第三方 NLP 模型。由于这些模型是公开可用的,因此在部署之前无法对其进行微调。
训练好的模型必须在当前Kibana 空间中可用并正在运行才能使用它们。默认情况下,模型应该在所有启用了 分析 > 机器学习 功能的 Kibana 空间中可用。要管理您训练好的模型,请使用 Kibana UI 并导航到 堆栈管理 → 机器学习 → 训练好的模型。可以在 空间 列中控制空间。要停止或启动模型,请转到 Kibana 分析 菜单中的 机器学习 选项卡,然后单击 模型管理 部分中的 训练好的模型。
管理 ML 模型和使用这些模型的 ML 推理管道需要 monitor_ml
Elasticsearch 集群权限。
将推理处理器添加到您的 ML 推理管道编辑
要创建特定于索引的 ML 推理管道,请在 Kibana UI 中转到 搜索 → 内容 → 索引 → <您的索引> → 管道。
如果您只看到 ent-search-generic-ingestion
管道,则需要单击 复制和自定义 来创建特定于索引的管道。这将创建 {index_name}@ml-inference
管道。
准备好特定于索引的 ML 推理管道后,您可以添加使用 ML 训练模型的推理处理器。要将推理处理器添加到 ML 推理管道,请单击 机器学习推理管道 卡片中的 添加推理管道 按钮。
在这里,您将能够:
-
为您的管道选择一个名称。
- 此名称在整个部署中必须是唯一的。如果您希望此管道特定于索引,我们建议在管道名称中包含索引的名称。
- 如果您没有设置管道名称,则在选择训练好的模型后,将提供一个默认的唯一名称。
-
选择您要使用的 ML 训练模型。
- 模型必须先部署,然后才能选择它。要开始部署模型,请单击 部署 按钮。
-
选择一个或多个源字段作为推理处理器的输入。
- 如果没有可用的源字段,则您的索引将需要一个字段映射。
- (可选)为您的目标字段选择一个名称。推理模型的输出将存储在这里。只有在选择单个源字段的情况下,才能更改默认名称。
- 单击 添加 按钮,将源-目标字段映射添加到配置中。
- 对您要添加的每个字段映射重复步骤 3-5。
- (可选)使用示例文档测试管道。
- (可选)在使用 创建管道 按钮创建管道之前,请查看管道定义。
管理和删除 ML 推理管道中的推理处理器编辑
添加到特定于索引的 ML 推理管道中的推理处理器是普通的 Elasticsearch 管道。创建后,每个处理器都将具有 在堆栈管理中查看 和 删除管道 选项。从 内容 UI 中删除推理处理器会删除管道,并从特定于索引的 ML 推理管道中删除其引用。
与所有其他 Elasticsearch 摄取管道一样,您也可以在 Kibana 中通过 堆栈管理 → 摄取管道 查看、编辑和删除这些管道。您也可以使用 摄取管道 API。如果您在 Kibana 的 内容 UI 之外删除了任何这些管道,请确保编辑引用它们的 ML 推理管道。
测试您的 ML 推理管道编辑
在创建机器学习推理管道时,您可以在 测试 选项卡下对任何文档进行索引之前验证推理输出的预期结构。提供一个示例文档,单击 模拟,然后在结果中查找 ml.inference
对象。
为确保在摄取文档时运行 ML 推理管道,您必须确保要摄取的文档中有一个名为 _run_ml_inference
的字段,该字段设置为 true
,并且必须将管道设置为 {index_name}
。对于连接器和爬虫索引,如果您已为管道名称 {index_name}
正确配置了设置,则会自动执行此操作。要管理这些设置,请执行以下操作:
- 转到 搜索 > 内容 > 索引 > <您的索引> > 管道。
- 单击
{index_name}
管道的 摄取管道 卡片中的 设置 链接。 - 确保选中了 ML 推理管道。如果未选中,请选择它并保存更改。
了解更多编辑
- 有关创建的各种管道的更多信息,请参阅 概述。
- 了解 ELSER,这是 Elastic 用于语义搜索的专有检索模型,具有稀疏向量。
- NER HuggingFace 模型
- 文本分类 HuggingFace 模型
- 文本嵌入 HuggingFace 模型