Google Cloud AutoML 算子¶
Google Cloud AutoML 使机器学习功能可用,即使您对机器学习的了解有限。您可以使用 AutoML 构建在 Google 的机器学习功能之上,创建您自己的定制机器学习模型,这些模型针对您的业务需求量身定制,然后将这些模型集成到您的应用程序和网站中。
先决任务¶
要使用这些算子,您必须执行以下操作
使用 Cloud 控制台 选择或创建一个 Cloud Platform 项目。
为您的项目启用结算,如 Google Cloud 文档 中所述。
启用 API,如 Cloud 控制台文档 中所述。
通过 pip 安装 API 库。
pip install 'apache-airflow[google]'有关 安装 的详细信息,请访问此处。
创建数据集¶
要创建 Google AutoML 数据集,可以使用 AutoMLCreateDatasetOperator
。该运算符在 XCom 中返回数据集 ID,其键为 dataset_id
。
在针对文本、视频和视觉预测运行时,此运算符已弃用,并且很快将被移除。旧版 AutoML 自然语言、视觉、视频智能和新功能的所有功能均可在 Vertex AI 平台上使用。请使用 CreateDatasetOperator
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
使用它来导入一些数据。
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
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 平台上使用。请使用 CreateAutoMLTextTrainingJobOperator
、CreateAutoMLImageTrainingJobOperator
或 CreateAutoMLVideoTrainingJobOperator
。
您可以在此处找到有关如何将 VertexAI 运算符用于 AutoML 自然语言分类的示例
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 视觉分类的示例
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 分类的信息,请参阅此处
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 数据集中。要创建数据并将其导入数据集,请使用 CreateDatasetOperator
和 ImportDataOperator
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 算子的示例,请参阅此处
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 操作员的示例
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 操作员的示例
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 模型获取预测,可以使用 AutoMLPredictOperator
或 AutoMLBatchPredictOperator
。在第一种情况下,必须部署模型。
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,
)
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.CreateBatchPredictionJobOperator
、airflow.providers.google.cloud.operators.vertex_ai.batch_prediction_job.GetBatchPredictionJobOperator
、airflow.providers.google.cloud.operators.vertex_ai.batch_prediction_job.ListBatchPredictionJobsOperator
、airflow.providers.google.cloud.operators.vertex_ai.batch_prediction_job.DeleteBatchPredictionJobOperator
。您可以在此处找到有关如何使用 VertexAI 运算符的示例
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,
)
list_batch_prediction_job = ListBatchPredictionJobsOperator(
task_id="list_batch_prediction_jobs",
region=REGION,
project_id=PROJECT_ID,
)
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 运算符的示例
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 运算符的示例
delete_dataset_job = DeleteDatasetOperator(
task_id="delete_dataset",
dataset_id=create_text_dataset_job.output["dataset_id"],
region=REGION,
project_id=PROJECT_ID,
)