3.9.1 模型目录

HeatWave ML 将机器学习模型存储在 MySQL 的模型目录中。模型目录是一个标准的 MySQL 表,名为 MODEL_CATALOG. HeatWave ML 为创建机器学习模型的任何用户创建模型目录。

MODEL_CATALOG表是在名为 的模式中创建的 ,其中 是拥有者的名称。 ML_SCHEMA_user_nameuser_name

当用户创建模型时, ML_TRAIN 例程会创建模型目录架构和表(如果它们不存在)。 在训练结束时 ML_TRAIN 将模型作为一行插入 表中。MODEL_CATALOG

模型目录只能由所有者用户访问,除非该用户将模型目录的权限授予其他用户。这意味着 HeatWave ML 例程只能使用运行例程的用户可以访问的模型。有关授予模型目录权限的信息,请参阅 第 3.9.10 节,“共享模型”

数据库管理员可以像管理常规 MySQL 表一样管理模型目录表。

模型目录表

MODEL_CATALOG表包含以下列:

  • model_id

    模型的唯一自动递增数字标识符。

  • model_handle

    模型的名称。模型句柄在模型目录中必须是唯一的。ML_TRAIN 当例程在训练数据集上执行时,模型句柄由用户生成或设置 。生成的 model_handle格式为 schemaName_tableName_userName_No,如以下示例所示: . heatwaveml_bench.census_train_user1_1636729526

    笔记

    生成的模型句柄的格式可能会发生变化。

  • model_object

    JSON 格式的字符串,包含序列化的 HeatWave ML 模型。

  • model_owner

    启动 ML_TRAIN 例程以创建模型的用户。

  • build_timestamp

    指示模型创建时间的时间戳(以 UNIX 纪元时间表示)。当 ML_TRAIN 例程完成执行时,将创建一个模型。

  • target_column_name

    训练表中指定为目标列的列的名称。

  • train_table_name

    ML_TRAIN 例程 指定的输入表的名称 。

  • model_object_size

    模型对象大小,以字节为单位。

  • model_type

    为构建模型而选择的模型(算法)类型 ML_TRAIN

  • task

    查询中指定的任务类型 ML_TRAINclassificationregression)。

  • column_names

    用于训练模型的特征列。

  • model_explanations

    训练期间生成的模型解释。请参阅 第 3.9.7 节,“模型说明”。此列是在 MySQL 8.0.29 中添加的。

  • last_accessed

    上次访问模型的时间。HeatWave ML 例程在访问模型时将此值更新为当前时间戳。

  • model_metadata

    模型的元数据。如果在训练过程中发生错误或您取消训练操作,HeatWave ML 会在此列中记录错误状态。此列是在 MySQL 8.0.31 中添加的。它包含以下元数据作为 JSON 格式的键值对:

    status: Creating | Ready | Error

    模型的状态。 Creating表示它仍在创建中,Ready表示它已经过训练并处于活动状态, Error表示训练已取消或期间发生错误。任何错误消息都会出现在notes 列中。

    training_score: number

    通过训练为模型获得的交叉验证分数。

    n_rows: number

    训练表中的行数。

    n_columns: number

    训练表中的列数。

    optimization_metric: string

    用于训练的优化指标。

    n_selected_columns: number

    特征选择选择的行数。

    algorithm_name: number

    所选算法的名称。

    n_selected_rows: number

    自适应采样选择的行数。

    training_time: number

    训练模型所用的时间(以秒为单位)。

    selected_column_names: JSON array

    特征选择所选择的列的名称。

    format: string

    模型序列化格式。

  • notes

    使用此列记录您自己对训练模型的注释。它还用于存储模型训练期间出现的错误消息。