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 Natural Language、Vision、Video Intelligence 的所有功能和新功能都可在 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 Natural Language、Vision、Video Intelligence 的所有功能和新功能都可在 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 Tabular 運算子。
模型操作¶
若要建立 Google AutoML 模型,您可以使用 AutoMLTrainModelOperator
。此運算子將等待操作完成。此外,此運算子會在 XCom 中傳回模型 ID,金鑰為 model_id
。
警告
當針對文字、影片和視覺預測執行時,此運算子已被棄用,並將很快移除。舊版 AutoML Natural Language、Vision、Video Intelligence 的所有功能和新功能都可在 Vertex AI 平台上使用。請改用 SupervisedFineTuningTrainOperator
、CreateAutoMLImageTrainingJobOperator
或 CreateAutoMLVideoTrainingJobOperator
。
您可以在這裡找到如何使用 VertexAI 運算子進行 AutoML Vision 分類的範例
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 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)
若要取得現有模型,可以使用 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 中傳回資料集 ID 清單,金鑰為 dataset_id_list
。
此運算子已針對表格、影片智慧、視覺和自然語言棄用,並將於 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,
)