推理处理器
编辑推理处理器编辑
使用预先训练好的数据帧分析模型或为自然语言处理任务部署的模型,对管道中正在摄取的数据进行推理。
表 27. 推理选项
名称 | 必需 | 默认值 | 描述 |
---|---|---|---|
|
是 |
- |
(字符串)训练好的模型的 ID 或别名,或部署的 ID。 |
|
否 |
- |
(列表)用于推理的输入字段和用于推理结果的输出(目标)字段。此选项与 |
|
否 |
|
(字符串)添加到传入文档中的字段,用于包含结果对象。 |
|
否 |
如果定义了模型的默认字段映射 |
(对象)将文档字段名称映射到模型的已知字段名称。此映射优先于模型配置中提供的任何默认映射。 |
|
否 |
模型中定义的默认设置 |
(对象)包含推理类型及其选项。 |
|
否 |
|
(布尔值)如果为 |
|
否 |
- |
处理器的描述。用于描述处理器的用途或其配置。 |
|
否 |
- |
有条件地执行处理器。请参阅有条件地运行处理器。 |
|
否 |
|
忽略处理器的故障。请参阅处理管道故障。 |
|
否 |
- |
处理处理器的故障。请参阅处理管道故障。 |
|
否 |
- |
处理器的标识符。用于调试和指标。 |
- 您不能将
input_output
字段与target_field
和field_map
字段一起使用。对于 NLP 模型,请使用input_output
选项。对于数据帧分析模型,请使用target_field
和field_map
选项。 - 每个推理输入字段必须是单个字符串,而不是字符串数组。
配置输入和输出字段编辑
选择 content
字段进行推理,并将结果写入 content_embedding
。
{ "inference": { "model_id": "model_deployment_for_inference", "input_output": [ { "input_field": "content", "output_field": "content_embedding" } ] } }
配置多个输入编辑
将从传入文档中读取 content
和 title
字段,并将其发送到模型进行推理。推理输出分别写入 content_embedding
和 title_embedding
。
{ "inference": { "model_id": "model_deployment_for_inference", "input_output": [ { "input_field": "content", "output_field": "content_embedding" }, { "input_field": "title", "output_field": "title_embedding" } ] } }
使用 input_output
选择输入字段与 target_field
和 field_map
选项不兼容。
数据帧分析模型必须使用 target_field
指定将结果写入的根位置,并可选地使用 field_map
将输入文档中的字段名称映射到模型输入字段。
{ "inference": { "model_id": "model_deployment_for_inference", "target_field": "FlightDelayMin_prediction_infer", "field_map": { "your_field": "my_field" }, "inference_config": { "regression": {} } } }
分类配置选项编辑
用于推理的分类配置。
-
num_top_classes
- (可选,整数)指定要返回的顶级类别预测的数量。默认为 0。
-
num_top_feature_importance_values
- (可选,整数)指定每个文档的最大特征重要性值的数量。默认为 0,表示不进行特征重要性计算。
-
results_field
- (可选,字符串)添加到传入文档中的字段,用于包含推理预测。默认为用于训练模型的数据帧分析作业的
results_field
值,该值默认为<dependent_variable>_prediction
。 -
top_classes_results_field
- (可选,字符串)指定写入顶级类别的字段。默认为
top_classes
。 -
prediction_field_type
- (可选,字符串)指定要写入的预测字段的类型。有效值为:
string
、number
、boolean
。当提供boolean
时,1.0
将转换为true
,0.0
将转换为false
。
填充掩码配置选项编辑
-
num_top_classes
- (可选,整数)指定要返回的顶级类别预测的数量。默认为 0。
-
results_field
- (可选,字符串)添加到传入文档中的字段,用于包含推理预测。默认为用于训练模型的数据帧分析作业的
results_field
值,该值默认为<dependent_variable>_prediction
。 -
tokenization
-
(可选,对象)指示要执行的分词和所需的设置。默认的分词配置为
bert
。有效的分词值为-
bert
:用于 BERT 风格的模型 -
mpnet
:用于 MPNet 风格的模型 -
roberta
:用于 RoBERTa 风格和 BART 风格的模型 -
[预览] 此功能处于技术预览阶段,可能会在未来的版本中更改或删除。Elastic 将努力解决任何问题,但技术预览版中的功能不受官方 GA 功能的支持 SLA 的约束。
xlm_roberta
:用于 XLMRoBERTa 风格的模型 -
[预览] 此功能处于技术预览阶段,可能会在未来的版本中更改或删除。Elastic 将努力解决任何问题,但技术预览版中的功能不受官方 GA 功能的支持 SLA 的约束。
bert_ja
:用于为日语训练的 BERT 风格的模型。
分词的属性
-
bert
-
(可选,对象)将使用封闭的设置执行 BERT 风格的分词。
bert 的属性
-
truncate
-
(可选,字符串)指示当标记超过
max_sequence_length
时如何截断它们。默认值为first
。-
none
:不进行截断;推理请求会收到错误。 -
first
:仅截断第一个序列。 -
second
:仅截断第二个序列。如果只有一个序列,则截断该序列。
-
对于
zero_shot_classification
,假设序列始终是第二个序列。因此,在这种情况下不要使用second
。 -
-
roberta
-
(可选,对象)将使用封闭的设置执行 RoBERTa 风格的分词。
roberta 的属性
-
truncate
-
(可选,字符串)指示当标记超过
max_sequence_length
时如何截断它们。默认值为first
。-
none
:不进行截断;推理请求会收到错误。 -
first
:仅截断第一个序列。 -
second
:仅截断第二个序列。如果只有一个序列,则截断该序列。
-
对于
zero_shot_classification
,假设序列始终是第二个序列。因此,在这种情况下不要使用second
。 -
-
mpnet
-
(可选,对象)将使用封闭的设置执行 MPNet 风格的分词。
mpnet 的属性
-
truncate
-
(可选,字符串)指示当标记超过
max_sequence_length
时如何截断它们。默认值为first
。-
none
:不进行截断;推理请求会收到错误。 -
first
:仅截断第一个序列。 -
second
:仅截断第二个序列。如果只有一个序列,则截断该序列。
-
对于
zero_shot_classification
,假设序列始终是第二个序列。因此,在这种情况下不要使用second
。 -
-
NER 配置选项编辑
-
results_field
- (可选,字符串)添加到传入文档中的字段,用于包含推理预测。默认为用于训练模型的数据帧分析作业的
results_field
值,该值默认为<dependent_variable>_prediction
。 -
tokenization
-
(可选,对象)指示要执行的分词和所需的设置。默认的分词配置为
bert
。有效的分词值为-
bert
:用于 BERT 风格的模型 -
mpnet
:用于 MPNet 风格的模型 -
roberta
:用于 RoBERTa 风格和 BART 风格的模型 -
[预览] 此功能处于技术预览阶段,可能会在未来的版本中更改或删除。Elastic 将努力解决任何问题,但技术预览版中的功能不受官方 GA 功能的支持 SLA 的约束。
xlm_roberta
:用于 XLMRoBERTa 风格的模型 -
[预览] 此功能处于技术预览阶段,可能会在未来的版本中更改或删除。Elastic 将努力解决任何问题,但技术预览版中的功能不受官方 GA 功能的支持 SLA 的约束。
bert_ja
:用于为日语训练的 BERT 风格的模型。
分词的属性
-
bert
-
(可选,对象)将使用封闭的设置执行 BERT 风格的分词。
bert 的属性
-
truncate
-
(可选,字符串)指示当标记超过
max_sequence_length
时如何截断它们。默认值为first
。-
none
:不进行截断;推理请求会收到错误。 -
first
:仅截断第一个序列。 -
second
:仅截断第二个序列。如果只有一个序列,则截断该序列。
-
对于
zero_shot_classification
,假设序列始终是第二个序列。因此,在这种情况下不要使用second
。 -
-
roberta
-
(可选,对象)将使用封闭的设置执行 RoBERTa 风格的分词。
roberta 的属性
-
truncate
-
(可选,字符串)指示当标记超过
max_sequence_length
时如何截断它们。默认值为first
。-
none
:不进行截断;推理请求会收到错误。 -
first
:仅截断第一个序列。 -
second
:仅截断第二个序列。如果只有一个序列,则截断该序列。
-
对于
zero_shot_classification
,假设序列始终是第二个序列。因此,在这种情况下不要使用second
。 -
-
mpnet
-
(可选,对象)将使用封闭的设置执行 MPNet 风格的分词。
mpnet 的属性
-
truncate
-
(可选,字符串)指示当标记超过
max_sequence_length
时如何截断它们。默认值为first
。-
none
:不进行截断;推理请求会收到错误。 -
first
:仅截断第一个序列。 -
second
:仅截断第二个序列。如果只有一个序列,则截断该序列。
-
对于
zero_shot_classification
,假设序列始终是第二个序列。因此,在这种情况下不要使用second
。 -
-
回归配置选项编辑
用于推理的回归配置。
-
results_field
- (可选,字符串)添加到传入文档中的字段,用于包含推理预测。默认为用于训练模型的数据帧分析作业的
results_field
值,该值默认为<dependent_variable>_prediction
。 -
num_top_feature_importance_values
- (可选,整数)指定每个文档的最大特征重要性值的数量。默认情况下,它为零,并且不进行特征重要性计算。
文本分类配置选项编辑
-
classification_labels
- (可选,字符串)分类标签数组。
-
num_top_classes
- (可选,整数)指定要返回的顶级类别预测的数量。默认为 0。
-
results_field
- (可选,字符串)添加到传入文档中的字段,用于包含推理预测。默认为用于训练模型的数据帧分析作业的
results_field
值,该值默认为<dependent_variable>_prediction
。 -
tokenization
-
(可选,对象)指示要执行的分词和所需的设置。默认的分词配置为
bert
。有效的分词值为-
bert
:用于 BERT 风格的模型 -
mpnet
:用于 MPNet 风格的模型 -
roberta
:用于 RoBERTa 风格和 BART 风格的模型 -
[预览] 此功能处于技术预览阶段,可能会在未来的版本中更改或删除。Elastic 将努力解决任何问题,但技术预览版中的功能不受官方 GA 功能的支持 SLA 的约束。
xlm_roberta
:用于 XLMRoBERTa 风格的模型 -
[预览] 此功能处于技术预览阶段,可能会在未来的版本中更改或删除。Elastic 将努力解决任何问题,但技术预览版中的功能不受官方 GA 功能的支持 SLA 的约束。
bert_ja
:用于为日语训练的 BERT 风格的模型。
分词的属性
-
bert
-
(可选,对象)将使用封闭的设置执行 BERT 风格的分词。
bert 的属性
-
span
-
(可选,整数)当
truncate
为none
时,您可以对较长的文本序列进行分区以进行推理。该值表示每个子序列之间有多少个标记重叠。默认值为
-1
,表示不进行窗口化或跨度。当您的典型输入仅略大于
max_sequence_length
时,最好简单地截断;第二个子序列中的信息将非常少。 -
truncate
-
(可选,字符串)指示当标记超过
max_sequence_length
时如何截断它们。默认值为first
。-
none
:不进行截断;推理请求会收到错误。 -
first
:仅截断第一个序列。 -
second
:仅截断第二个序列。如果只有一个序列,则截断该序列。
-
对于
zero_shot_classification
,假设序列始终是第二个序列。因此,在这种情况下不要使用second
。 -
-
roberta
-
(可选,对象)将使用封闭的设置执行 RoBERTa 风格的分词。
roberta 的属性
-
span
-
(可选,整数)当
truncate
为none
时,您可以对较长的文本序列进行分区以进行推理。该值表示每个子序列之间有多少个标记重叠。默认值为
-1
,表示不进行窗口化或跨度。当您的典型输入仅略大于
max_sequence_length
时,最好简单地截断;第二个子序列中的信息将非常少。 -
truncate
-
(可选,字符串)指示当标记超过
max_sequence_length
时如何截断它们。默认值为first
。-
none
:不进行截断;推理请求会收到错误。 -
first
:仅截断第一个序列。 -
second
:仅截断第二个序列。如果只有一个序列,则截断该序列。
-
对于
zero_shot_classification
,假设序列始终是第二个序列。因此,在这种情况下不要使用second
。 -
-
mpnet
-
(可选,对象)将使用封闭的设置执行 MPNet 风格的分词。
mpnet 的属性
-
truncate
-
(可选,字符串)指示当标记超过
max_sequence_length
时如何截断它们。默认值为first
。-
none
:不进行截断;推理请求会收到错误。 -
first
:仅截断第一个序列。 -
second
:仅截断第二个序列。如果只有一个序列,则截断该序列。
-
对于
zero_shot_classification
,假设序列始终是第二个序列。因此,在这种情况下不要使用second
。 -
-
文本嵌入配置选项编辑
-
results_field
- (可选,字符串)添加到传入文档中的字段,用于包含推理预测。默认为用于训练模型的数据帧分析作业的
results_field
值,该值默认为<dependent_variable>_prediction
。 -
tokenization
-
(可选,对象)指示要执行的分词和所需的设置。默认的分词配置为
bert
。有效的分词值为-
bert
:用于 BERT 风格的模型 -
mpnet
:用于 MPNet 风格的模型 -
roberta
:用于 RoBERTa 风格和 BART 风格的模型 -
[预览] 此功能处于技术预览阶段,可能会在未来的版本中更改或删除。Elastic 将努力解决任何问题,但技术预览版中的功能不受官方 GA 功能的支持 SLA 的约束。
xlm_roberta
:用于 XLMRoBERTa 风格的模型 -
[预览] 此功能处于技术预览阶段,可能会在未来的版本中更改或删除。Elastic 将努力解决任何问题,但技术预览版中的功能不受官方 GA 功能的支持 SLA 的约束。
bert_ja
:用于为日语训练的 BERT 风格的模型。
分词的属性
-
bert
-
(可选,对象)将使用封闭的设置执行 BERT 风格的分词。
bert 的属性
-
truncate
-
(可选,字符串)指示当标记超过
max_sequence_length
时如何截断它们。默认值为first
。-
none
:不进行截断;推理请求会收到错误。 -
first
:仅截断第一个序列。 -
second
:仅截断第二个序列。如果只有一个序列,则截断该序列。
-
对于
zero_shot_classification
,假设序列始终是第二个序列。因此,在这种情况下不要使用second
。 -
-
roberta
-
(可选,对象)将使用封闭的设置执行 RoBERTa 风格的分词。
roberta 的属性
-
truncate
-
(可选,字符串)指示当标记超过
max_sequence_length
时如何截断它们。默认值为first
。-
none
:不进行截断;推理请求会收到错误。 -
first
:仅截断第一个序列。 -
second
:仅截断第二个序列。如果只有一个序列,则截断该序列。
-
对于
zero_shot_classification
,假设序列始终是第二个序列。因此,在这种情况下不要使用second
。 -
-
mpnet
-
(可选,对象)将使用封闭的设置执行 MPNet 风格的分词。
mpnet 的属性
-
truncate
-
(可选,字符串)指示当标记超过
max_sequence_length
时如何截断它们。默认值为first
。-
none
:不进行截断;推理请求会收到错误。 -
first
:仅截断第一个序列。 -
second
:仅截断第二个序列。如果只有一个序列,则截断该序列。
-
对于
zero_shot_classification
,假设序列始终是第二个序列。因此,在这种情况下不要使用second
。 -
-
文本扩展配置选项编辑
-
results_field
- (可选,字符串)添加到传入文档中的字段,用于包含推理预测。默认为用于训练模型的数据帧分析作业的
results_field
值,该值默认为<dependent_variable>_prediction
。 -
tokenization
-
(可选,对象)指示要执行的分词和所需的设置。默认的分词配置为
bert
。有效的分词值为-
bert
:用于 BERT 风格的模型 -
mpnet
:用于 MPNet 风格的模型 -
roberta
:用于 RoBERTa 风格和 BART 风格的模型 -
[预览] 此功能处于技术预览阶段,可能会在未来的版本中更改或删除。Elastic 将努力解决任何问题,但技术预览版中的功能不受官方 GA 功能的支持 SLA 的约束。
xlm_roberta
:用于 XLMRoBERTa 风格的模型 -
[预览] 此功能处于技术预览阶段,可能会在未来的版本中更改或删除。Elastic 将努力解决任何问题,但技术预览版中的功能不受官方 GA 功能的支持 SLA 的约束。
bert_ja
:用于为日语训练的 BERT 风格的模型。
分词的属性
-
bert
-
(可选,对象)将使用封闭的设置执行 BERT 风格的分词。
bert 的属性
-
span
-
(可选,整数)当
truncate
为none
时,您可以对较长的文本序列进行分区以进行推理。该值表示每个子序列之间有多少个标记重叠。默认值为
-1
,表示不进行窗口化或跨度。当您的典型输入仅略大于
max_sequence_length
时,最好简单地截断;第二个子序列中的信息将非常少。 -
truncate
-
(可选,字符串)指示当标记超过
max_sequence_length
时如何截断它们。默认值为first
。-
none
:不进行截断;推理请求会收到错误。 -
first
:仅截断第一个序列。 -
second
:仅截断第二个序列。如果只有一个序列,则截断该序列。
-
对于
zero_shot_classification
,假设序列始终是第二个序列。因此,在这种情况下不要使用second
。 -
-
roberta
-
(可选,对象)将使用封闭的设置执行 RoBERTa 风格的分词。
roberta 的属性
-
span
-
(可选,整数)当
truncate
为none
时,您可以对较长的文本序列进行分区以进行推理。该值表示每个子序列之间有多少个标记重叠。默认值为
-1
,表示不进行窗口化或跨度。当您的典型输入仅略大于
max_sequence_length
时,最好简单地截断;第二个子序列中的信息将非常少。 -
truncate
-
(可选,字符串)指示当标记超过
max_sequence_length
时如何截断它们。默认值为first
。-
none
:不进行截断;推理请求会收到错误。 -
first
:仅截断第一个序列。 -
second
:仅截断第二个序列。如果只有一个序列,则截断该序列。
-
对于
zero_shot_classification
,假设序列始终是第二个序列。因此,在这种情况下不要使用second
。 -
-
mpnet
-
(可选,对象)将使用封闭的设置执行 MPNet 风格的分词。
mpnet 的属性
-
truncate
-
(可选,字符串)指示当标记超过
max_sequence_length
时如何截断它们。默认值为first
。-
none
:不进行截断;推理请求会收到错误。 -
first
:仅截断第一个序列。 -
second
:仅截断第二个序列。如果只有一个序列,则截断该序列。
-
对于
zero_shot_classification
,假设序列始终是第二个序列。因此,在这种情况下不要使用second
。 -
-
零样本分类配置选项编辑
-
labels
- (可选,数组)要分类的标签。可以在创建时设置为默认标签,然后在推理期间更新。
-
multi_label
- (可选,布尔值)指示在给定输入的情况下是否可能有多个
true
标签。这在标记可能属于多个输入标签的文本时很有用。默认为false
。 -
results_field
- (可选,字符串)添加到传入文档中的字段,用于包含推理预测。默认为用于训练模型的数据帧分析作业的
results_field
值,该值默认为<dependent_variable>_prediction
。 -
tokenization
-
(可选,对象)指示要执行的分词和所需的设置。默认的分词配置为
bert
。有效的分词值为-
bert
:用于 BERT 风格的模型 -
mpnet
:用于 MPNet 风格的模型 -
roberta
:用于 RoBERTa 风格和 BART 风格的模型 -
[预览] 此功能处于技术预览阶段,可能会在未来的版本中更改或删除。Elastic 将努力解决任何问题,但技术预览版中的功能不受官方 GA 功能的支持 SLA 的约束。
xlm_roberta
:用于 XLMRoBERTa 风格的模型 -
[预览] 此功能处于技术预览阶段,可能会在未来的版本中更改或删除。Elastic 将努力解决任何问题,但技术预览版中的功能不受官方 GA 功能的支持 SLA 的约束。
bert_ja
:用于为日语训练的 BERT 风格的模型。
分词的属性
-
bert
-
(可选,对象)将使用封闭的设置执行 BERT 风格的分词。
bert 的属性
-
truncate
-
(可选,字符串)指示当标记超过
max_sequence_length
时如何截断它们。默认值为first
。-
none
:不进行截断;推理请求会收到错误。 -
first
:仅截断第一个序列。 -
second
:仅截断第二个序列。如果只有一个序列,则截断该序列。
-
对于
zero_shot_classification
,假设序列始终是第二个序列。因此,在这种情况下不要使用second
。 -
-
roberta
-
(可选,对象)将使用封闭的设置执行 RoBERTa 风格的分词。
roberta 的属性
-
truncate
-
(可选,字符串)指示当标记超过
max_sequence_length
时如何截断它们。默认值为first
。-
none
:不进行截断;推理请求会收到错误。 -
first
:仅截断第一个序列。 -
second
:仅截断第二个序列。如果只有一个序列,则截断该序列。
-
对于
zero_shot_classification
,假设序列始终是第二个序列。因此,在这种情况下不要使用second
。 -
-
mpnet
-
(可选,对象)将使用封闭的设置执行 MPNet 风格的分词。
mpnet 的属性
-
truncate
-
(可选,字符串)指示当标记超过
max_sequence_length
时如何截断它们。默认值为first
。-
none
:不进行截断;推理请求会收到错误。 -
first
:仅截断第一个序列。 -
second
:仅截断第二个序列。如果只有一个序列,则截断该序列。
-
对于
zero_shot_classification
,假设序列始终是第二个序列。因此,在这种情况下不要使用second
。 -
-
推理处理器示例编辑
"inference":{ "model_id": "my_model_id", "field_map": { "original_fieldname": "expected_fieldname" }, "inference_config": { "regression": { "results_field": "my_regression" } } }
此配置指定 regression
推理,并将结果写入 target_field
结果对象中包含的 my_regression
字段。 field_map
配置将源文档中的字段 original_fieldname
映射到模型预期的字段。
"inference":{ "model_id":"my_model_id" "inference_config": { "classification": { "num_top_classes": 2, "results_field": "prediction", "top_classes_results_field": "probabilities" } } }
此配置指定了一个 classification
推理。预测概率报告的类别数量为 2 (num_top_classes
)。结果写入 prediction
字段,顶级类别写入 probabilities
字段。这两个字段都包含在 target_field
结果对象中。
有关使用自然语言处理训练模型的示例,请参阅 将 NLP 推理添加到摄取管道。
特征重要性对象映射编辑
要充分利用聚合并搜索 特征重要性,请更新特征重要性结果字段的索引映射,如下所示
"ml.inference.feature_importance": { "type": "nested", "dynamic": true, "properties": { "feature_name": { "type": "keyword" }, "importance": { "type": "double" } } }
特征重要性的映射字段名称(在上面的示例中,它是 ml.inference.feature_importance
)的组合方式如下
<ml.inference.target_field>
.<inference.tag>
.feature_importance
-
<ml.inference.target_field>
:默认为ml.inference
。 -
<inference.tag>
:如果在处理器定义中未提供,则它不是字段路径的一部分。
例如,如果您在定义中提供了一个标签 foo
,如下所示
{ "tag": "foo", ... }
然后,特征重要性值将写入 ml.inference.foo.feature_importance
字段。
您还可以按如下方式指定目标字段
{ "tag": "foo", "target_field": "my_field" }
在这种情况下,特征重要性将在 my_field.foo.feature_importance
字段中公开。