Google Cloud AutoML 运算符¶
Google Cloud AutoML 使您即使在机器学习知识有限的情况下也能利用机器学习的强大功能。您可以使用 AutoML 构建 Google 的机器学习功能,创建针对您的业务需求量身定制的自定义机器学习模型,然后将这些模型集成到您的应用程序和网站中。
先决条件任务¶
要使用这些运算符,您必须执行以下几项操作
使用 Cloud Console 选择或创建 Cloud Platform 项目。
按照 Google Cloud 文档中的描述,为您的项目启用结算功能。
按照 Cloud Console 文档中的描述,启用 API。
通过 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 表相关的运算符已弃用。请使用相关的 Vertex AI 表格运算符。
模型操作¶
要创建 Google AutoML 模型,您可以使用 AutoMLTrainModelOperator
。该运算符将等待操作完成。此外,该运算符会在 XCom 中返回模型的 ID,键为 model_id
。
警告
此运算符在运行文本、视频和视觉预测时已弃用,并将很快删除。传统 AutoML 自然语言、视觉、视频智能的所有功能和新功能均可在 Vertex AI 平台上使用。请使用 SupervisedFineTuningTrainOperator
、CreateAutoMLImageTrainingJobOperator
或 CreateAutoMLVideoTrainingJobOperator
。
您可以在此处找到有关如何使用 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,
)
您可以在此处找到有关如何使用 VertexAI 运算符进行 AutoML 视频智能分类的示例
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)
要获取现有模型,可以使用 AutoMLGetModelOperator
。
此运算符已弃用,用于表格、视频智能、视觉和自然语言,并将在 2024 年 3 月 31 日之后删除。请改用 airflow.providers.google.cloud.operators.vertex_ai.model_service.GetModelOperator
。您可以在此处找到有关如何使用 VertexAI 运算符的示例
get_model = GetModelOperator(
task_id="get_model", region=REGION, project_id=PROJECT_ID, model_id=model_id_v1
)
创建模型后,可以使用 AutoMLDeployModelOperator
部署模型。
此运算符已弃用,适用于表格、视频智能、视觉和自然语言,将在 2024 年 3 月 31 日之后移除。请改用 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
。
此运算符已弃用,适用于表格、视频智能、视觉和自然语言,将在 2024 年 3 月 31 日之后移除。请改用 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
。在第一种情况下,模型必须已部署。
TRANSLATION_STR = "A Dog walks down the street"
predict_task = AutoMLPredictOperator(
task_id="predict_task",
model_id=model_id,
payload={"text_snippet": {"content": TRANSLATION_STR}},
location=GCP_AUTOML_LOCATION,
project_id=GCP_PROJECT_ID,
)
AutoMLBatchPredictOperator
已弃用,适用于表格、视频智能、视觉和自然语言,将在 2024 年 3 月 31 日之后移除。请改用 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 列表。
此运算符已弃用,适用于表格、视频智能、视觉和自然语言,将在 2024 年 3 月 31 日之后移除。请改用 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 列表或逗号分隔的字符串。
此运算符已弃用,适用于表格、视频智能、视觉和自然语言,将在 2024 年 3 月 31 日之后移除。请改用 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,
)