AutoML – 機械学習モデルを構築するための No Code ソリューション
AutoML - No Code solution for building Machine Learning models.
はじめに
AutoMLは自動機械学習としても知られています。2018年、GoogleはクラウドAutoMLを発表し、大きな関心を集め、機械学習と人工知能の分野で最も重要なツールの1つとなりました。この記事では、「Google Cloud AutoML」を使った機械学習モデルを構築するためのノーコードソリューションである「AutoML」について学びます。
AutoMLは、Google Cloud Platform上のVertex AIの一部です。Vertex AIは、クラウド上で機械学習パイプラインを構築および作成するためのエンドツーエンドソリューションです。ただし、Vertex AIの詳細については、別の記事で説明します。AutoMLは、主に転移学習とニューラルサーチアーキテクチャに依存しています。データを提供するだけで、AutoMLはユースケースに最適なカスタムモデルを構築します。
この記事では、Pythonコードを使ったGoogle Cloud Platform上でのAutoMLの利点、使用方法、実践的な実装について説明します。
- Paellaを紹介します:安定した拡散よりもはるかに高速に高品質の画像を生成できる新しいAIモデル
- AIのダークサイドを明らかにする:プロンプトハッキングがあなたのAIシステムを妨害する方法
- ChatGPTを使った効率的なデバッグ
学習目標
- コードを使ったAutoMLの使用方法を読者に知らせること
- AutoMLの利点を理解すること
- クライアントライブラリを使用してMLパイプラインを作成する方法
この記事は、Data Science Blogathonの一部として公開されました。
問題の説明
機械学習モデルを構築することは時間がかかり、プログラミング言語の熟練度、数学と統計の良い知識、および機械学習アルゴリズムの理解などの専門知識が必要です。過去には、技術的なスキルを持つ人々だけがデータサイエンスで働き、モデルを構築できました。非技術的な人々にとっては、機械学習モデルを構築することは最も困難なタスクでした。ただし、モデルを構築した技術的な人々にとっても道のりは容易ではありませんでした。モデルを構築した後、メンテナンス、展開、および自動スケーリングには追加の努力、労働時間、およびわずかに異なるスキルセットが必要です。これらの課題を克服するために、グローバル検索大手のGoogleは、2014年にAutoMLを発表しましたが、後に一般に公開されました。
AutoMLの利点
- AutoMLは手動の介入を減らし、少しの機械学習の専門知識が必要となります。
- AutoMLを使うと、技術的な人々と非技術的な人々がコードを書かずに機械学習モデルを構築できます。
- データの前処理、特徴エンジニアリング、モデル構築、ハイパーパラメータの調整、モデル評価、テストデータでの予測など、モデル構築の各ステップを自動的に処理するため、これらのタスクを実行するためにコードを書く必要はありません。
- AutoMLは直感的なユーザーインターフェースを提供し、さまざまなAPIを提供します。
- AutoMLはPythonや他のプログラミング言語のクライアントライブラリも提供します。
サポートされるデータの種類
AutoMLは、非構造化データと構造化データをサポートし、以下の4つのタイプに分類されます。
- 画像
- 表形式
- ビデオ
- テキスト
これらの4つのデータタイプを使用することで、AutoMLでサポートされる特定のアクティビティを実行できます。
画像
画像データセットを使用して、AutoMLで以下のタスクを実行できます。
- 画像分類(シングルラベル)
- 画像分類(マルチラベル)
- オブジェクト検出
- 画像セグメンテーション
表形式
表形式のデータセットを使用すると、以下のタスクを実行できます。
- 回帰
- 分類
- 時系列予測
ビデオ
ビデオデータセットを使用すると、以下のアクティビティを実行できます。
- オブジェクト検出
- ビデオアクション認識
- ビデオオブジェクトトラッキング
テキスト
AutoMLテキストデータは以下のタスクをサポートしています。
- センチメント分析
- テキスト分類(シングルラベル)
- テキスト分類(マルチラベル)
- エンティティ抽出
実装
AutoMLを使用するには、Google Cloud Platformのアカウントが必要です。アカウントの設定は非常に簡単なプロセスであり、URL https://console.cloud.google.com/ にアクセスし、参加をクリックするだけで、Gmailのメールアドレスとパスワードが求められ、GCPのアカウントが作成されます。検索バーをクリックして、Vertex AIを検索します。左側には、Vertex AIのすべてのコンポーネントが表示されます。ワークベンチをクリックしてください。
ワークベンチは、クラウド上の仮想マシンを使用して、jupyter labを提供します。 「USER-MANAGED NOTEBOOKS」インスタンスを選択し、「NEW NOTEBOOK」をクリックし、Python 3を選択し、デフォルトの設定をそのままにしてください。2〜3分かかり、Jupyter Labが作成されます。GPUを使用したtensorflowとpytorchインスタンスも作成できます。 「OPEN JUPYTERLAB」をクリックして、ノートブックセクションからPython 3(ipykernel)をクリックしてください。Jupyterノートブックが準備できました。これで、ローカルのPython Jupyterノートブックと似たようなコードを書くことができます。
PythonのAutoMLクライアントライブラリ
PythonのAutoMLクライアントライブラリを使用して、デモ用にタブロイド分類モデルを作成します。
まず、2つのパッケージをインストールする必要があります。
!pip install --upgrade google-cloud-aiplatform
!pip install --upgrade google-cloud-storage
これらの2つのパッケージが正常にインストールされたら、カーネルを再起動してください。カーネルを2つの方法で再起動できます。1つはユーザーインターフェイスからで、「Kernel」タブを選択して「Restart Kernel」をクリックすることです。2番目のオプションはプログラムで実行することです。
#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' #上記のコードからプロジェクトIDを取得できます
BUCKET_NAME = 'gs://PROJECT_ID' #独自のバケット名を設定できます
REGION = 'us-west1' #地域が異なる場合は変更してください
バケット名が必要な理由は何ですか? AutoMLでは、3つの方法でデータをアップロードできます。
- BigQuery
- Cloud Storage
- ローカルドライブ(ローカルマシンから)
この例では、クラウドストレージからデータセットをアップロードしています。そのため、CSVファイルをアップロードするバケットを作成する必要があります。
クラウドストレージでバケットを作成し、google cloud storageからデータパスを設定します。
#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', #独自の名前を設定してください
gcs_source = gcs_path)
#create a training job in AutoML to run the model
job = aiplatform.AutoMLTabularTrainingJob(
diaply_name = '#独自の名前を設定してください',
optimization_prediction_type = 'classification',
column_transformations = [
{'categorical' : {'column_name': 'City'}}, #適当に名前をつけました
{'numeric' : {'column_name': 'Age'}},
{'numeric' : {'column_name': 'Salary'}}])
#run the model
#この処理には時間がかかります。データセットに依存します
model = job.run(
dataset = ds,
target_column = Adopted,
training_fraction_split = 0.8,
test_fraction_split = 0.2,
model_display_name = '#独自の名前を設定してください',
disable_early_stopping = False)
モデルのトレーニングが完了すると、エンドポイントを使用してモデルを展開します。エンドポイントは、モデルを展開してオンライン予測を行うためのVertex AIのコンポーネントの1つです。
#モデルの展開
endpoint = model.deploy(machine_type = 'n1-standard-4')
これには数分かかります。エンドポイントインスタンスを作成する際には、マシンタイプを選択する際に注意してください。低いマシンタイプを設定すると、より少ない費用がかかりますが、高いマシンタイプを設定すると、より多くのコストがかかります。価格についての詳細については、以下のリンクをご覧ください。
https://cloud.google.com/products/calculator#id=9c1e6e38-ba1e-4b40-b1e4-52c86bb9ab29
#予測の実行
pred = endpoint.prediction([
{'City': 'Madrid',
'Age': 52,
'Salary': 70000}])
print(pred)
結論
Google Cloud AutoMLは、コードを書かずに機械学習モデルを構築できる、誰でも利用できる強力なツールです。AutoMLには、アルゴリズムやコーディングの広範な知識がなくても、モデルを構築して展開できる非常にインタラクティブなユーザーインターフェースがあります。ただし、この記事からの主なポイントは以下のとおりです。
- AutoMLクライアントライブラリの支援を受けて、AutoMLサービスをプログラムで利用する方法
- 画像分類、テキストエンティティ抽出、時系列予測、オブジェクト検出など、さまざまなタイプのモデルをAutoMLで構築できること
- AutoMLを使用するためには、MLの専門知識が必要ではありません。また、手動の介入を減らす方法についても説明しました。
- 開発者やデータサイエンティストが、アプリケーションでAI技術の力を素早く効率的に活用する方法
よくある質問
この記事に表示されるメディアはAnalytics Vidhyaによって所有されておらず、著者の裁量で使用されています。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- Light & WonderがAWS上でゲーミングマシンの予測保守ソリューションを構築した方法
- 科学者たちは、AIと迅速な応答EEGを用いて、せん妄の検出を改善しました
- 医薬品探索の革新:機械学習モデルによる可能性のある老化防止化合物の特定と、将来の複雑な疾患治療のための道筋を開拓する
- 音から視覚へ:音声から画像を合成するAudioTokenについて
- AWSにおけるマルチモデルエンドポイントのためのCI/CD
- 2023年5月のVoAGIトップ記事:Mojo Lang:新しいプログラミング言語
- 新たな能力が明らかに:GPT-4のような成熟したAIのみが自己改善できるのか?言語モデルの自律的成長の影響を探る