获取模型快照 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
    }
  ]
}