Google Cloud AutoML 算子

Google Cloud AutoML 使机器学习功能可用,即使您对机器学习的了解有限。您可以使用 AutoML 构建在 Google 的机器学习功能之上,创建您自己的定制机器学习模型,这些模型针对您的业务需求量身定制,然后将这些模型集成到您的应用程序和网站中。

先决任务

要使用这些算子,您必须执行以下操作

创建数据集

要创建 Google AutoML 数据集,可以使用 AutoMLCreateDatasetOperator。该运算符在 XCom 中返回数据集 ID,其键为 dataset_id

在针对文本、视频和视觉预测运行时,此运算符已弃用,并且很快将被移除。旧版 AutoML 自然语言、视觉、视频智能和新功能的所有功能均可在 Vertex AI 平台上使用。请使用 CreateDatasetOperator

tests/system/providers/google/cloud/automl/example_automl_dataset.py[源代码]

create_dataset = AutoMLCreateDatasetOperator(
    task_id="create_dataset",
    dataset=DATASET,
    location=GCP_AUTOML_LOCATION,
    project_id=GCP_PROJECT_ID,
)
dataset_id = create_dataset.output["dataset_id"]

创建数据集后,可以使用 AutoMLImportDataOperator 使用它来导入一些数据。

tests/system/providers/google/cloud/automl/example_automl_dataset.py[源代码]

import_dataset = AutoMLImportDataOperator(
    task_id="import_dataset",
    dataset_id=dataset_id,
    location=GCP_AUTOML_LOCATION,
    input_config=IMPORT_INPUT_CONFIG,
)

要更新数据集,可以使用 AutoMLTablesUpdateDatasetOperator

在针对文本、视频和视觉预测运行时,此运算符已弃用,并且很快将被移除。旧版 AutoML 自然语言、视觉、视频智能和新功能的所有功能均可在 Vertex AI 平台上使用。请使用 UpdateDatasetOperator

tests/system/providers/google/cloud/vertex_ai/example_vertex_ai_dataset.py[源代码]

update_dataset_job = UpdateDatasetOperator(
    task_id="update_dataset",
    project_id=PROJECT_ID,
    region=REGION,
    dataset_id=create_video_dataset_job.output["dataset_id"],
    dataset=DATASET_TO_UPDATE,
    update_mask=TEST_UPDATE_MASK,
)

列出表格和列规范

要列出表格规范,可以使用 AutoMLTablesListTableSpecsOperator

要列出列规范,可以使用 AutoMLTablesListColumnSpecsOperator

与 AutoML Tables 相关的运算符已弃用。请使用相关的 Vertex AI 表格运算符。

对模型的操作

要创建 Google AutoML 模型,可以使用 AutoMLTrainModelOperator。该运算符将等待操作完成。此外,该运算符将在 XCom 中返回模型的 ID,键为 model_id

在针对文本、视频和视觉预测运行时,此运算符已弃用,并且很快将被移除。旧版 AutoML 自然语言、视觉、视频智能和新功能的所有功能均可在 Vertex AI 平台上使用。请使用 CreateAutoMLTextTrainingJobOperatorCreateAutoMLImageTrainingJobOperatorCreateAutoMLVideoTrainingJobOperator

您可以在此处找到有关如何将 VertexAI 运算符用于 AutoML 自然语言分类的示例

tests/system/providers/google/cloud/automl/example_automl_nl_text_classification.py[源代码]

create_clss_training_job = CreateAutoMLTextTrainingJobOperator(
    task_id="create_clss_training_job",
    display_name=TEXT_CLSS_DISPLAY_NAME,
    prediction_type="classification",
    multi_label=False,
    dataset_id=clss_dataset_id,
    model_display_name=MODEL_NAME,
    training_fraction_split=0.7,
    validation_fraction_split=0.2,
    test_fraction_split=0.1,
    sync=True,
    region=GCP_AUTOML_LOCATION,
    project_id=GCP_PROJECT_ID,
)

此外,您可以在此处找到有关如何将 VertexAI 运算符用于 AutoML 视觉分类的示例

tests/system/providers/google/cloud/automl/example_automl_vision_classification.py[源代码]

create_auto_ml_image_training_job = CreateAutoMLImageTrainingJobOperator(
    task_id="auto_ml_image_task",
    display_name=IMAGE_DISPLAY_NAME,
    dataset_id=image_dataset_id,
    prediction_type="classification",
    multi_label=False,
    model_type="CLOUD",
    training_fraction_split=0.6,
    validation_fraction_split=0.2,
    test_fraction_split=0.2,
    budget_milli_node_hours=8000,
    model_display_name=MODEL_DISPLAY_NAME,
    disable_early_stopping=False,
    region=REGION,
    project_id=PROJECT_ID,
)

有关如何使用 Vertex AI 算子进行 AutoML Video Intelligence 分类的信息,请参阅此处

tests/system/providers/google/cloud/automl/example_automl_video_classification.py[源代码]

create_auto_ml_video_training_job = CreateAutoMLVideoTrainingJobOperator(
    task_id="auto_ml_video_task",
    display_name=VIDEO_DISPLAY_NAME,
    prediction_type="classification",
    model_type="CLOUD",
    dataset_id=video_dataset_id,
    model_display_name=MODEL_DISPLAY_NAME,
    region=REGION,
    project_id=PROJECT_ID,
)

运行用于训练数据的 Vertex AI 算子时,请确保你的数据正确存储在 Vertex AI 数据集中。要创建数据并将其导入数据集,请使用 CreateDatasetOperatorImportDataOperator

tests/system/providers/google/cloud/automl/example_automl_model.py[源代码]

create_model = AutoMLTrainModelOperator(
    task_id="create_model",
    model=MODEL,
    location=GCP_AUTOML_LOCATION,
    project_id=GCP_PROJECT_ID,
)
model_id = create_model.output["model_id"]

要获取现有模型,可以使用 AutoMLGetModelOperator

此算子已弃用,用于表格、视频智能、视觉和自然语言,并且将在 31.03.2024 之后删除。请改用 airflow.providers.google.cloud.operators.vertex_ai.model_service.GetModelOperator。有关如何使用 Vertex AI 算子的示例,请参阅此处

tests/system/providers/google/cloud/vertex_ai/example_vertex_ai_model_service.py[源代码]

get_model = GetModelOperator(
    task_id="get_model", region=REGION, project_id=PROJECT_ID, model_id=model_id_v1
)

创建模型后,可以使用 AutoMLDeployModelOperator 进行部署。

此操作员已弃用,适用于表格、视频智能、视觉和自然语言,并且将在 31.03.2024 后移除。请改用 airflow.providers.google.cloud.operators.vertex_ai.endpoint_service.DeployModelOperator。您可以在此处找到有关如何使用 VertexAI 操作员的示例

tests/system/providers/google/cloud/vertex_ai/example_vertex_ai_endpoint.py[源代码]

deploy_model = DeployModelOperator(
    task_id="deploy_model",
    endpoint_id=create_endpoint.output["endpoint_id"],
    deployed_model=DEPLOYED_MODEL,
    traffic_split={"0": 100},
    region=REGION,
    project_id=PROJECT_ID,
)

如果您希望删除模型,可以使用 AutoMLDeleteModelOperator

此操作员已弃用,适用于表格、视频智能、视觉和自然语言,并且将在 31.03.2024 后移除。请改用 airflow.providers.google.cloud.operators.vertex_ai.model_service.DeleteModelOperator。您可以在此处找到有关如何使用 VertexAI 操作员的示例

tests/system/providers/google/cloud/vertex_ai/example_vertex_ai_model_service.py[源代码]

delete_model = DeleteModelOperator(
    task_id="delete_model",
    project_id=PROJECT_ID,
    region=REGION,
    model_id=upload_model.output["model_id"],
    trigger_rule=TriggerRule.ALL_DONE,
)

进行预测

要从 Google Cloud AutoML 模型获取预测,可以使用 AutoMLPredictOperatorAutoMLBatchPredictOperator。在第一种情况下,必须部署模型。

tests/system/providers/google/cloud/automl/example_automl_model.py[源代码]

predict_task = AutoMLPredictOperator(
    task_id="predict_task",
    model_id=model_id,
    payload={
        "row": {
            "values": PREDICT_VALUES,
        }
    },
    location=GCP_AUTOML_LOCATION,
    project_id=GCP_PROJECT_ID,
)

tests/system/providers/google/cloud/automl/example_automl_model.py[源代码]

batch_predict_task = AutoMLBatchPredictOperator(
    task_id="batch_predict_task",
    model_id=model_id,
    input_config=IMPORT_INPUT_CONFIG,
    output_config=IMPORT_OUTPUT_CONFIG,
    location=GCP_AUTOML_LOCATION,
    project_id=GCP_PROJECT_ID,
)

Th AutoMLBatchPredictOperator 已弃用,对于表格、视频智能、视觉和自然语言已弃用,并且将在 31.03.2024 之后删除。请使用 airflow.providers.google.cloud.operators.vertex_ai.batch_prediction_job.CreateBatchPredictionJobOperatorairflow.providers.google.cloud.operators.vertex_ai.batch_prediction_job.GetBatchPredictionJobOperatorairflow.providers.google.cloud.operators.vertex_ai.batch_prediction_job.ListBatchPredictionJobsOperatorairflow.providers.google.cloud.operators.vertex_ai.batch_prediction_job.DeleteBatchPredictionJobOperator。您可以在此处找到有关如何使用 VertexAI 运算符的示例

tests/system/providers/google/cloud/vertex_ai/example_vertex_ai_batch_prediction_job.py[source]

create_batch_prediction_job = CreateBatchPredictionJobOperator(
    task_id="create_batch_prediction_job",
    job_display_name=JOB_DISPLAY_NAME,
    model_name="{{ti.xcom_pull('auto_ml_forecasting_task')['name']}}",
    predictions_format="csv",
    bigquery_source=BIGQUERY_SOURCE,
    gcs_destination_prefix=GCS_DESTINATION_PREFIX,
    model_parameters=MODEL_PARAMETERS,
    region=REGION,
    project_id=PROJECT_ID,
)

tests/system/providers/google/cloud/vertex_ai/example_vertex_ai_batch_prediction_job.py[source]

list_batch_prediction_job = ListBatchPredictionJobsOperator(
    task_id="list_batch_prediction_jobs",
    region=REGION,
    project_id=PROJECT_ID,
)

tests/system/providers/google/cloud/vertex_ai/example_vertex_ai_batch_prediction_job.py[source]

delete_batch_prediction_job = DeleteBatchPredictionJobOperator(
    task_id="delete_batch_prediction_job",
    batch_prediction_job_id=create_batch_prediction_job.output["batch_prediction_job_id"],
    region=REGION,
    project_id=PROJECT_ID,
    trigger_rule=TriggerRule.ALL_DONE,
)

列出和删除数据集

您可以使用 AutoMLListDatasetOperator 获取 AutoML 数据集列表。该运算符在 XCom 中返回 dataset_id_list 键下的数据集 ID 列表。

此操作已弃用,适用于表格、视频智能、视觉和自然语言,并且将在 31.03.2024 后移除。请改用 airflow.providers.google.cloud.operators.vertex_ai.dataset.ListDatasetsOperator。您可以在此处找到有关如何使用 VertexAI 运算符的示例

tests/system/providers/google/cloud/vertex_ai/example_vertex_ai_dataset.py[源代码]

list_dataset_job = ListDatasetsOperator(
    task_id="list_dataset",
    region=REGION,
    project_id=PROJECT_ID,
)

要删除数据集,可以使用 AutoMLDeleteDatasetOperator。删除运算符还允许传递要删除的数据集 ID 的列表或逗号分隔的字符串。

此操作已弃用,适用于表格、视频智能、视觉和自然语言,并且将在 31.03.2024 后移除。请改用 airflow.providers.google.cloud.operators.vertex_ai.dataset.DeleteDatasetOperator。您可以在此处找到有关如何使用 VertexAI 运算符的示例

tests/system/providers/google/cloud/vertex_ai/example_vertex_ai_dataset.py[源代码]

delete_dataset_job = DeleteDatasetOperator(
    task_id="delete_dataset",
    dataset_id=create_text_dataset_job.output["dataset_id"],
    region=REGION,
    project_id=PROJECT_ID,
)

参考

有关详细信息,请参阅

此条目是否有用?