获取模型快照 API编辑

检索有关模型快照的信息。

请求编辑

GET _ml/anomaly_detectors/<job_id>/model_snapshots

GET _ml/anomaly_detectors/<job_id>/model_snapshots/<snapshot_id>

先决条件编辑

需要 monitor_ml 集群权限。此权限包含在 machine_learning_user 内置角色中。

路径参数编辑

<job_id>
(必填,字符串)异常检测作业的标识符。
<snapshot_id>

(可选,字符串)模型快照的标识符。

您可以使用逗号分隔列表或通配符表达式获取多个快照的信息。您可以使用 _all、指定 * 作为快照 ID 或省略快照 ID 来获取所有快照。

查询参数编辑

desc
(可选,布尔值)如果为 true,则结果按降序排序。默认为 false
end
(可选,日期)返回时间戳早于此时间的快照。默认为未设置,这意味着结果不限于特定时间戳。
from
(可选,整数)跳过指定数量的快照。默认为 0
size
(可选,整数)指定要获取的最大快照数。默认为 100
sort
(可选,字符串)指定请求快照的排序字段。默认情况下,快照按其时间戳排序。
start
(可选,字符串)返回时间戳晚于此时间的快照。默认为未设置,这意味着结果不限于特定时间戳。

请求正文编辑

您还可以在请求正文中指定查询参数;但 fromsize 除外,请改用 page

page
page 的属性
from
(可选,整数)跳过指定数量的快照。默认为 0
size
(可选,整数)指定要获取的最大快照数。默认为 100

响应正文编辑

API 返回一个模型快照对象数组,这些对象具有以下属性

description
(字符串)作业的可选描述。
job_id
(字符串)一个数字字符串,唯一标识为其创建快照的作业。
latest_record_time_stamp
(日期)最新处理记录的时间戳。
latest_result_time_stamp
(日期)最新存储桶结果的时间戳。
min_version
(字符串)能够还原模型快照所需的最低机器学习配置版本号。

从 Elasticsearch 8.10.0 开始,使用新的版本号来跟踪机器学习插件中的配置和状态更改。这个新的版本号与产品版本分离,并将独立递增。min_version 值表示新的版本号。

model_size_stats

(对象)描述模型的摘要信息。

model_size_stats 的属性
assignment_memory_basis

(字符串)指示在哪里可以找到用于决定作业运行位置的内存要求。可能的值为

  • model_memory_limit:作业的内存需求是根据其模型内存将增长到其配置的 analysis_limits 中指定的 model_memory_limit 来计算的。
  • current_model_bytes:作业的内存需求是根据其当前模型内存大小能够很好地反映其未来大小来计算的。
  • peak_model_bytes:作业的内存需求是根据其峰值模型内存大小能够很好地反映其未来模型大小来计算的。
bucket_allocation_failures_count
(长整型)由于内存限制约束而未处理实体的存储桶数量。
categorized_doc_count
(长整型)已对其字段进行分类的文档数量。
categorization_status

(字符串)此作业的分类状态。包含以下值之一。

  • ok:分类执行良好(或根本未使用)。
  • warn:分类检测到类别分布表明输入数据不适合分类。问题可能是只有一个类别,超过 90% 的类别很少见,类别数量大于分类文档数量的 50%,没有经常匹配的类别,或者超过 50% 的类别已失效。
dead_category_count
(长整型)由分类创建的类别数量,这些类别将不再被分配,因为另一个类别的定义使其成为失效类别的超集。(失效类别是分类没有事先训练的方式的副作用。)
failed_category_count
(长整型)分类想要创建新类别但由于作业已达到其 model_memory_limit 而无法创建的次数。此计数不跟踪哪些特定类别创建失败。因此,您不能使用此值来确定错过的唯一类别数量。
frequent_category_count
(长整型)匹配超过 1% 分类文档的类别数量。
job_id
(字符串)异常检测作业的标识符。
log_time
(日期)根据服务器时间记录 model_size_stats 的时间戳。
memory_status

(字符串)内存与其 model_memory_limit 相关的状态。包含以下值之一。

  • hard_limit:内部模型需要的空间超过配置的内存限制。某些传入数据无法处理。
  • ok:内部模型保持在配置值以下。
  • soft_limit:内部模型需要超过 60% 的配置内存限制,并且将执行更积极的修剪以尝试回收空间。
model_bytes
(长整型)此分析所需的内存资源的近似值。
model_bytes_exceeded
(长整型)上次分配失败时超过内存使用量上限的字节数。
model_bytes_memory_limit
(长整型)内存使用量的上限,在值增加时检查。
peak_model_bytes
(长整型)模型内存使用量的最高记录值。
rare_category_count
(长整型)仅匹配一个分类文档的类别数量。
result_type
(字符串)内部。此值始终为 model_size_stats
timestamp
(日期)根据数据的存储桶时间戳记录 model_size_stats 的时间戳。
total_by_field_count
(长整型)分析的“by”字段值的數量。请注意,这些值是针对每个检测器和分区分别计算的。
total_category_count
(长整型)由分类创建的类别数量。
total_over_field_count
(长整型)分析的“over”字段值的數量。请注意,这些值是针对每个检测器和分区分别计算的。
total_partition_field_count
(长整型)分析的“partition”字段值的數量。
retain
(布尔值)如果为 true,则在自动清理早于 model_snapshot_retention_days 的快照期间,不会删除此快照。但是,删除作业时,将删除此快照。默认值为 false
snapshot_id
(字符串)一个数字字符串,唯一标识模型快照。例如:“1491852978”。
snapshot_doc_count
(长整型)仅供内部使用。
timestamp
(日期)快照的创建时间戳。

示例编辑

response = client.ml.get_model_snapshots(
  job_id: 'high_sum_total_sales',
  body: {
    start: '1575402236000'
  }
)
puts response
GET _ml/anomaly_detectors/high_sum_total_sales/model_snapshots
{
  "start": "1575402236000"
}

在此示例中,API 提供单个结果

{
  "count" : 1,
  "model_snapshots" : [
    {
      "job_id" : "high_sum_total_sales",
      "min_version" : "6.4.0",
      "timestamp" : 1575402237000,
      "description" : "State persisted due to job close at 2019-12-03T19:43:57+0000",
      "snapshot_id" : "1575402237",
      "snapshot_doc_count" : 1,
      "model_size_stats" : {
        "job_id" : "high_sum_total_sales",
        "result_type" : "model_size_stats",
        "model_bytes" : 1638816,
        "model_bytes_exceeded" : 0,
        "model_bytes_memory_limit" : 10485760,
        "total_by_field_count" : 3,
        "total_over_field_count" : 3320,
        "total_partition_field_count" : 2,
        "bucket_allocation_failures_count" : 0,
        "memory_status" : "ok",
        "categorized_doc_count" : 0,
        "total_category_count" : 0,
        "frequent_category_count" : 0,
        "rare_category_count" : 0,
        "dead_category_count" : 0,
        "categorization_status" : "ok",
        "log_time" : 1575402237000,
        "timestamp" : 1576965600000
      },
      "latest_record_time_stamp" : 1576971072000,
      "latest_result_time_stamp" : 1576965600000,
      "retain" : false
    }
  ]
}