推理处理器

编辑

使用预训练的数据帧分析模型或为自然语言处理任务部署的模型,对管道中正在摄取的数据进行推理。

表 27. 推理选项

名称 必需 默认 描述

model_id .

-

(字符串) 推理 ID、模型部署 ID、训练模型 ID 或别名。

input_output

-

(列表) 用于推理的输入字段和用于推理结果的输出(目标)字段。此选项与 target_fieldfield_map 选项不兼容。

target_field

ml.inference.<processor_tag>

(字符串) 添加到传入文档以包含结果对象的字段。

field_map

如果定义,则为模型的默认字段映射

(对象) 将文档字段名称映射到模型的已知字段名称。此映射优先于模型配置中提供的任何默认映射。

inference_config

模型中定义的默认设置

(对象) 包含推理类型及其选项。

ignore_missing

false

(布尔值) 如果为 true 并且 input_ouput 中定义的任何输入字段缺失,则这些缺失的字段将被静默忽略,否则缺失字段会导致失败。仅在使用 input_output 配置显式列出输入字段时适用。

description

-

处理器的描述。用于描述处理器的目的或其配置。

if

-

有条件地执行处理器。请参阅 有条件地运行处理器

ignore_failure

false

忽略处理器的失败。请参阅 处理管道失败

on_failure

-

处理处理器的失败。请参阅 处理管道失败

tag

-

处理器的标识符。用于调试和指标。

  • 您不能将 input_output 字段与 target_fieldfield_map 字段一起使用。对于 NLP 模型,请使用 input_output 选项。对于数据帧分析模型,请使用 target_fieldfield_map 选项。
  • 每个推理输入字段必须是单个字符串,而不是字符串数组。
  • input_field 将按原样处理,并在推理运行时忽略任何 索引映射分析器

配置输入和输出字段

编辑

选择 content 字段进行推理,并将结果写入 content_embedding

如果指定的 output_field 已存在于 ingest 文档中,则不会被覆盖。推理结果将追加到 output_field 内的现有字段中,这可能会导致重复字段和潜在错误。为了避免这种情况,请使用不与任何现有字段冲突的唯一 output_field 字段名称。

{
  "inference": {
    "model_id": "model_deployment_for_inference",
    "input_output": [
        {
            "input_field": "content",
            "output_field": "content_embedding"
        }
    ]
  }
}

配置多个输入

编辑

将从传入文档中读取 contenttitle 字段,并发送到模型进行推理。推理输出分别写入 content_embeddingtitle_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_fieldfield_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
(可选,字符串) 指定要写入的预测字段的类型。有效值为:stringnumberboolean。当提供 boolean 时,1.0 将转换为 true0.0 将转换为 false

填充掩码配置选项

编辑
num_top_classes
(可选,整数) 指定要返回的顶部类别预测的数量。默认为 0。
results_field
(可选,字符串) 添加到传入文档以包含推理预测的字段。默认为用于训练模型的数据帧分析作业的 results_field 值,该值默认为 <dependent_variable>_prediction
tokenization

(可选,对象) 指示要执行的标记化和所需的设置。默认的标记化配置为 bert。有效的标记化值为

  • bert:用于 BERT 样式模型
  • deberta_v2:用于 DeBERTa v2 和 v3 样式模型
  • 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

deberta_v2

(可选,对象) DeBERTa 样式的标记化将使用封闭的设置执行。

deberta_v2 的属性
truncate

(可选,字符串) 指示当标记超过 max_sequence_length 时如何截断标记。默认值为 first

  • balanced:可以截断第一个和第二个序列中的一个或两个,以便平衡从两个序列中包含的标记。
  • none:不进行截断;推理请求会收到错误。
  • first:仅截断第一个序列。
  • 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 样式模型
  • deberta_v2:用于 DeBERTa v2 和 v3 样式模型
  • 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

deberta_v2

(可选,对象) DeBERTa 样式的标记化将使用封闭的设置执行。

deberta_v2 的属性
truncate

(可选,字符串) 指示当标记超过 max_sequence_length 时如何截断标记。默认值为 first

  • balanced:可以截断第一个和第二个序列中的一个或两个,以便平衡从两个序列中包含的标记。
  • none:不进行截断;推理请求会收到错误。
  • first:仅截断第一个序列。
  • 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 样式模型
  • deberta_v2:用于 DeBERTa v2 和 v3 样式模型
  • mpnet:用于 MPNet 样式模型
  • roberta:用于 RoBERTa 样式和 BART 样式模型
  • [预览版] 此功能为技术预览版,可能会在未来版本中更改或删除。Elastic 将努力修复任何问题,但技术预览版中的功能不受官方 GA 功能的支持 SLA 约束。 xlm_roberta:用于 XLMRoBERTa 样式模型
  • [预览版] 此功能为技术预览版,可能会在未来版本中更改或删除。Elastic 将努力修复任何问题,但技术预览版中的功能不受官方 GA 功能的支持 SLA 约束。 bert_ja:用于为日语训练的 BERT 样式模型。
标记化的属性
bert

(可选,对象) BERT 样式的标记化将使用封闭的设置执行。

bert 的属性
span

(可选,整数) 当 truncatenone 时,您可以对较长的文本序列进行分区以进行推理。该值表示每个子序列之间重叠的标记数量。

默认值为 -1,表示不进行窗口化或跨越。

当您的典型输入仅略大于 max_sequence_length 时,最好只进行截断;第二个子序列中的信息将非常少。

truncate

(可选,字符串) 指示当标记超过 max_sequence_length 时如何截断标记。默认值为 first

  • none:不进行截断;推理请求会收到错误。
  • first:仅截断第一个序列。
  • second:仅截断第二个序列。如果只有一个序列,则截断该序列。

对于 zero_shot_classification,假设序列始终是第二个序列。因此,在这种情况下不要使用 second

deberta_v2

(可选,对象) DeBERTa 样式的标记化将使用封闭的设置执行。

deberta_v2 的属性
span

(可选,整数) 当 truncatenone 时,您可以对较长的文本序列进行分区以进行推理。该值表示每个子序列之间重叠的标记数量。

默认值为 -1,表示不进行窗口化或跨越。

当您的典型输入仅略大于 max_sequence_length 时,最好只进行截断;第二个子序列中的信息将非常少。

truncate

(可选,字符串) 指示当标记超过 max_sequence_length 时如何截断标记。默认值为 first

  • balanced:可以截断第一个和第二个序列中的一个或两个,以便平衡从两个序列中包含的标记。
  • none:不进行截断;推理请求会收到错误。
  • first:仅截断第一个序列。
  • second:仅截断第二个序列。如果只有一个序列,则截断该序列。
roberta

(可选,对象) RoBERTa 样式的标记化将使用封闭的设置执行。

roberta 的属性
span

(可选,整数) 当 truncatenone 时,您可以对较长的文本序列进行分区以进行推理。该值表示每个子序列之间重叠的标记数量。

默认值为 -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 样式模型
  • deberta_v2:用于 DeBERTa v2 和 v3 样式模型
  • 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

deberta_v2

(可选,对象) DeBERTa 样式的标记化将使用封闭的设置执行。

deberta_v2 的属性
truncate

(可选,字符串) 指示当标记超过 max_sequence_length 时如何截断标记。默认值为 first

  • balanced:可以截断第一个和第二个序列中的一个或两个,以便平衡从两个序列中包含的标记。
  • none:不进行截断;推理请求会收到错误。
  • first:仅截断第一个序列。
  • 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 样式模型
  • deberta_v2:用于 DeBERTa v2 和 v3 样式模型
  • mpnet:用于 MPNet 样式模型
  • roberta:用于 RoBERTa 样式和 BART 样式模型
  • [预览版] 此功能为技术预览版,可能会在未来版本中更改或删除。Elastic 将努力修复任何问题,但技术预览版中的功能不受官方 GA 功能的支持 SLA 约束。 xlm_roberta:用于 XLMRoBERTa 样式模型
  • [预览版] 此功能为技术预览版,可能会在未来版本中更改或删除。Elastic 将努力修复任何问题,但技术预览版中的功能不受官方 GA 功能的支持 SLA 约束。 bert_ja:用于为日语训练的 BERT 样式模型。
标记化的属性
bert

(可选,对象) BERT 样式的标记化将使用封闭的设置执行。

bert 的属性
span

(可选,整数) 当 truncatenone 时,您可以对较长的文本序列进行分区以进行推理。该值表示每个子序列之间重叠的标记数量。

默认值为 -1,表示不进行窗口化或跨越。

当您的典型输入仅略大于 max_sequence_length 时,最好只进行截断;第二个子序列中的信息将非常少。

truncate

(可选,字符串) 指示当标记超过 max_sequence_length 时如何截断标记。默认值为 first

  • none:不进行截断;推理请求会收到错误。
  • first:仅截断第一个序列。
  • second:仅截断第二个序列。如果只有一个序列,则截断该序列。

对于 zero_shot_classification,假设序列始终是第二个序列。因此,在这种情况下不要使用 second

deberta_v2

(可选,对象) DeBERTa 样式的标记化将使用封闭的设置执行。

deberta_v2 的属性
span

(可选,整数) 当 truncatenone 时,您可以对较长的文本序列进行分区以进行推理。该值表示每个子序列之间重叠的标记数量。

默认值为 -1,表示不进行窗口化或跨越。

当您的典型输入仅略大于 max_sequence_length 时,最好只进行截断;第二个子序列中的信息将非常少。

truncate

(可选,字符串) 指示当标记超过 max_sequence_length 时如何截断标记。默认值为 first

  • balanced:可以截断第一个和第二个序列中的一个或两个,以便平衡从两个序列中包含的标记。
  • none:不进行截断;推理请求会收到错误。
  • first:仅截断第一个序列。
  • second:仅截断第二个序列。如果只有一个序列,则截断该序列。
roberta

(可选,对象) RoBERTa 样式的标记化将使用封闭的设置执行。

roberta 的属性
span

(可选,整数) 当 truncatenone 时,您可以对较长的文本序列进行分区以进行推理。该值表示每个子序列之间重叠的标记数量。

默认值为 -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

文本相似度配置选项

编辑
text_similarity

(可选,对象) 文本相似度获取一个输入序列,并将其与另一个输入序列进行比较。这通常被称为交叉编码。当将文档文本与另一个提供的文本输入进行比较时,此任务对于对文档文本进行排名很有用。

文本相似度推理的属性
span_score_combination_function

(可选,字符串) 标识当提供的文本段落长于 max_sequence_length 并且必须自动分离以进行多次调用时,如何组合生成的相似度分数。仅当 truncatenone 并且 span 为非负数时才适用。默认值为 max。可用选项为

  • max:返回所有跨度的最大分数。
  • mean:返回所有跨度的平均分数。
tokenization

(可选,对象) 指示要执行的标记化和所需的设置。默认的标记化配置为 bert。有效的标记化值为

  • bert:用于 BERT 样式模型
  • deberta_v2:用于 DeBERTa v2 和 v3 样式模型
  • mpnet:用于 MPNet 样式模型
  • roberta:用于 RoBERTa 样式和 BART 样式模型
  • [预览版] 此功能为技术预览版,可能会在未来版本中更改或删除。Elastic 将努力修复任何问题,但技术预览版中的功能不受官方 GA 功能的支持 SLA 约束。 xlm_roberta:用于 XLMRoBERTa 样式模型
  • [预览版] 此功能为技术预览版,可能会在未来版本中更改或删除。Elastic 将努力修复任何问题,但技术预览版中的功能不受官方 GA 功能的支持 SLA 约束。 bert_ja:用于为日语训练的 BERT 样式模型。

请参阅 标记化的属性以查看 tokenization 对象的属性。

零样本分类配置选项

编辑
labels
(可选,数组) 要分类的标签。可以在创建时设置默认标签,然后在推理期间更新。
multi_label
(可选,布尔值) 指示给定输入是否可能存在多个 true 标签。当标记可能属于多个输入标签的文本时,此项非常有用。默认为 false
results_field
(可选,字符串) 添加到传入文档以包含推理预测的字段。默认为用于训练模型的数据帧分析作业的 results_field 值,该值默认为 <dependent_variable>_prediction
tokenization

(可选,对象) 指示要执行的标记化和所需的设置。默认的标记化配置为 bert。有效的标记化值为

  • bert:用于 BERT 样式模型
  • deberta_v2:用于 DeBERTa v2 和 v3 样式模型
  • 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

deberta_v2

(可选,对象) DeBERTa 样式的标记化将使用封闭的设置执行。

deberta_v2 的属性
truncate

(可选,字符串) 指示当标记超过 max_sequence_length 时如何截断标记。默认值为 first

  • balanced:可以截断第一个和第二个序列中的一个或两个,以便平衡从两个序列中包含的标记。
  • none:不进行截断;推理请求会收到错误。
  • first:仅截断第一个序列。
  • 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 字段中公开。

推理处理器示例

编辑

以下示例在名为 query_helper_pipeline 的推理处理器中使用推理端点来执行聊天完成任务。该处理器使用专为完成任务类型设计的提示,从自然语言输入生成 Elasticsearch 查询。请参阅此列表以获取您使用的推理服务,并查看使用聊天完成任务类型设置端点的相应示例。

const response = await client.ingest.putPipeline({
  id: "query_helper_pipeline",
  processors: [
    {
      script: {
        source:
          "ctx.prompt = 'Please generate an elasticsearch search query on index `articles_index` for the following natural language query. Dates are in the field `@timestamp`, document types are in the field `type` (options are `news`, `publication`), categories in the field `category` and can be multiple (options are `medicine`, `pharmaceuticals`, `technology`), and document names are in the field `title` which should use a fuzzy match. Ignore fields which cannot be determined from the natural language query context: ' + ctx.content",
      },
    },
    {
      inference: {
        model_id: "openai_chat_completions",
        input_output: {
          input_field: "prompt",
          output_field: "query",
        },
      },
    },
    {
      remove: {
        field: "prompt",
      },
    },
  ],
});
console.log(response);
PUT _ingest/pipeline/query_helper_pipeline
{
  "processors": [
    {
      "script": {
        "source": "ctx.prompt = 'Please generate an elasticsearch search query on index `articles_index` for the following natural language query. Dates are in the field `@timestamp`, document types are in the field `type` (options are `news`, `publication`), categories in the field `category` and can be multiple (options are `medicine`, `pharmaceuticals`, `technology`), and document names are in the field `title` which should use a fuzzy match. Ignore fields which cannot be determined from the natural language query context: ' + ctx.content" 
      }
    },
    {
      "inference": {
        "model_id": "openai_chat_completions", 
        "input_output": {
          "input_field": "prompt",
          "output_field": "query"
        }
      }
    },
    {
      "remove": {
        "field": "prompt"
      }
    }
  ]
}

prompt 字段包含用于完成任务的提示,使用 Painless 创建。+ ctx.content 将自然语言输入附加到提示。

预配置的推理端点的 ID,该端点利用 openai 服务completion 任务类型。

以下 API 请求将模拟通过先前创建的摄取管道运行文档:

const response = await client.ingest.simulate({
  id: "query_helper_pipeline",
  docs: [
    {
      _source: {
        content:
          "artificial intelligence in medicine articles published in the last 12 months",
      },
    },
  ],
});
console.log(response);
POST _ingest/pipeline/query_helper_pipeline/_simulate
{
  "docs": [
    {
      "_source": {
        "content": "artificial intelligence in medicine articles published in the last 12 months" 
      }
    }
  ]
}

用于在推理处理器创建的提示中生成 Elasticsearch 查询的自然语言查询。

进一步阅读

编辑