介绍
2018年,谷歌推出了云AutoML,引起了广泛关注,是机器学习和人工智能领域最重要的工具之一。在本文中,你将学习“AutoML”,这是一种借助 Google 云 AutoML 构建机器学习模型的无代码解决方案。
AutoML 是 Google Cloud Platform 上 Vertex AI 的一部分。Vertex AI 是用于在云上构建和创建机器学习管道的端到端解决方案。不过,我们将在以后的文章中讨论 Vertex AI 的详细信息。AutoML 主要依赖于两件事,一是迁移学习和神经搜索架构。你只需提供 AutoML 将为你的用例构建最佳自定义模型的数据。
在本文中,我们将讨论在 Google Cloud Platform 上使用 Python 代码进行 AutoML 的好处、用法和实际实施。
构建机器学习模型是一个耗时的过程,需要大量的专业知识,例如熟练掌握编程语言、良好的数学和统计学知识以及对机器学习算法的理解。过去,拥有技术技能的人只能从事数据科学和构建模型。对于非技术人员来说,构建机器学习模型是一项最困难的任务。
然而,对于构建模型的技术人员来说,这条路并不容易。模型构建完成后,其维护、部署和自动扩展需要额外的工作、工时,并且需要一套略有不同的技能。为了克服这些挑战,全球搜索巨头谷歌于 2014 年推出了 AutoML,但后来才公开发布。
AutoML 支持非结构化和结构化数据,分为四种类型
使用这四种数据类型,你可以执行 AutoML 支持的某些活动。
图像
使用图像数据集,你可以在 AutoML 中执行以下任务
表格
使用表格数据集,你可以执行以下任务:
视频
你可以使用视频数据集执行以下活动
文本
AutoML 文本数据支持以下任务:
要使用 AutoML,你应该在 Google Cloud Platform 上拥有一个帐户。帐户设置是一个非常简单的过程,只需转到 URL https://console.cloud.google.com/并单击“加入”,它会要求你提供 Gmail 电子邮件 ID 和密码,然后就会在 GCP 上创建一个帐户。点击搜索栏,搜索Vertex AI,在左侧你会看到Vertex AI的所有组件,点击workbench。
Workbench 为你提供了一个 jupyter 实验室,你可以在其中使用虚拟机在云上创建笔记本实例。选择“USER-MANAGED NoteBOOKS”实例并单击“NEW NoteBOOK”,选择Python 3并保留默认设置不变,这将需要两到三分钟的时间,将为你创建一个Jupyter Lab。
你还可以创建带有或不带有 GPU 的 TensorFlow 和 pytorch 实例。单击“OPEN JUPYTERLAB”,然后单击 Notebook 部分中的 Python 3 (ipykernel)。
现在, Jupyter 笔记本已准备就绪,你可以编写类似于本地 Python Jupyter 笔记本的代码。
我们将使用 Python 中的 AutoML 客户端库为演示创建表格分类模型。
首先,你需要安装这两个软件包。
!pip install --upgrade google-cloud-aiplatform
!pip install --upgrade google-cloud-storage
成功安装这两个包后,重新启动内核。你可以通过两种方式重新启动内核,一种是从用户界面,从顶部栏中选择“内核”选项卡,然后单击“重新启动内核”,第二种选择是通过编程方式。
#restart the kernel
import os
if not os.getenv("IS_TESTING"):
import ipython
app = Ipython.Application.instance()
app.kernel.do_shutdown(True)
设置你的项目 ID、存储桶名称和区域。如果你不知道你的项目 ID,请运行以下代码以使用 gcloud 命令了解你的 Google Cloud 项目 ID。
import os
PROJECT_ID = ''
if not os.getenv("IS_TESTING"):
proj_output = !gcloud config list --format 'value(core.project)' 2>/dev/null
PROJECT_ID = proj_output[0]
print("Project ID: ", PROJECT_ID)
#set project id, bucket name and region
PROJECT_ID = '@YOUR PROJECT ID' #from the above code you can get your project id
BUCKET_NAME = 'gs://PROJECT_ID' #you can set your own bucket name
REGION = 'us-west1' #change the region if different
为什么我们需要一个存储桶名称?在 AutoML 中,你可以使用三种方式上传数据:
在此示例中,我们从云存储上传数据集,因此我们需要创建一个存储桶,在其中上传 CSV 文件。
在云存储中创建一个bucket,并设置来自google云存储的数据路径。
#using gsutil command we can create a bucket in cloud storage
! gsutil mb -l $REGION $BUCKET_NAME
#checking if the bucket created
! gsutil ls -al $BUCKET_NAME
#dataset path in gcs
IMPORT_FILE = 'data.csv'
gcs_path = f"{BUCKET_NAME}/{IMPORT_FILE}"
现在,我们需要在 AutoML 中创建一个数据集,然后在该数据集上训练模型。
#import necessary libraries
import os
from google.cloud import aiplatform
#initializing the AI platform
aiplatform.init(project=PROJECT_ID, location=REGION)
#creating dataset in AutoML
ds = aiplatform.TabularDataset.create(
display_name = 'data_tabular', #set your own name
gcs_source = gcs_path)
#create a training job in AutoML to run the model
job = aiplatform.AutoMLTabularTrainingJob(
diaply_name = '#set your own name',
optimization_prediction_type = 'classification',
column_transformations = [
{'categorical' : {'column_name': 'City'}}, #just randomly given the name
{'numeric' : {'column_name': 'Age'}},
{'numeric' : {'column_name': 'Salary'}}])
#run the model
#this will take time, depending on your dataset
model = job.run(
dataset = ds,
target_column = Adopted,
training_fraction_split = 0.8,
test_fraction_split = 0.2,
model_display_name = '#give your own name',
disable_early_stopping = False)
训练完成后,我们将使用端点部署我们的模型。Endpoint 是 Vertex AI 的组件之一,你可以在其中部署模式并进行在线预测。
#deploying the model
endpoint = model.deploy(machine_type = 'n1-standard-4')
这将需要几分钟的时间。创建端点实例时,请明智地选择你的机器类型,因为这会产生成本。设置较低的机器类型会导致较少的费用,而设置较高的机器类型会导致较高的成本。如需更清楚地了解定价,请查看以下链接。
https://cloud.google.com/products/calculator#id=9c1e6e38-ba1e-4b40-b1e4-52c86bb9ab29
#making prediction
pred = endpoint.prediction([
{'City': 'Madrid',
'Age': 52,
'Salary': 70000}])
print(pred)
Google Cloud AutoML 是一款功能强大的工具,任何人都可以使用它来构建机器学习模型,而无需编写代码。AutoML 具有非常交互式的用户界面,你可以在其中构建和部署模型,而无需具备丰富的算法和编码知识。
本文的主要要点是:
Q1. AutoML 会取代数据科学家的工作吗?
答:不,AutoML 不会取代数据科学家的工作。AutoML 具有很大的潜力,可以实现机器学习的自动化,但如果我们想构建一个完全控制代码的自定义模型,我们需要数据科学家的专业知识。
Q2. 预构建的 API 和 AutoML 执行相同的工作吗?
答:预构建的 API 使用预构建的 ML 模型,AutoML 使用定制的 ML 模型。
Q3。非技术人员可以使用 AutoML 吗?
答:是的,任何人都可以使用 AutoML 并在 Google Cloud 上构建机器学习模型。
Q4。谷歌云太贵了?
答:这取决于你要使用的用例和云服务。
Q5. 什么是 Google Cloud 顶点 AI?它像 AutoML 吗?
答:Vertex AI 是 Google Cloud 的 ML 套件,为在云上构建、部署和创建机器学习和人工智能管道提供端到端解决方案。AutoML 是 Vertex AI 的组件之一。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有