获取模型快照 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
(日期)快照的创建时间戳。

示例

编辑
resp = client.ml.get_model_snapshots(
    job_id="high_sum_total_sales",
    start="1575402236000",
)
print(resp)
response = client.ml.get_model_snapshots(
  job_id: 'high_sum_total_sales',
  body: {
    start: '1575402236000'
  }
)
puts response
const response = await client.ml.getModelSnapshots({
  job_id: "high_sum_total_sales",
  start: 1575402236000,
});
console.log(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
    }
  ]
}