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の利点、使用方法、実践的な実装について説明します。

学習目標

  • コードを使ったAutoMLの使用方法を読者に知らせること
  • AutoMLの利点を理解すること
  • クライアントライブラリを使用してMLパイプラインを作成する方法

この記事は、Data Science Blogathonの一部として公開されました。

問題の説明

機械学習モデルを構築することは時間がかかり、プログラミング言語の熟練度、数学と統計の良い知識、および機械学習アルゴリズムの理解などの専門知識が必要です。過去には、技術的なスキルを持つ人々だけがデータサイエンスで働き、モデルを構築できました。非技術的な人々にとっては、機械学習モデルを構築することは最も困難なタスクでした。ただし、モデルを構築した技術的な人々にとっても道のりは容易ではありませんでした。モデルを構築した後、メンテナンス、展開、および自動スケーリングには追加の努力、労働時間、およびわずかに異なるスキルセットが必要です。これらの課題を克服するために、グローバル検索大手のGoogleは、2014年にAutoMLを発表しましたが、後に一般に公開されました。

AutoMLの利点

  • AutoMLは手動の介入を減らし、少しの機械学習の専門知識が必要となります。
  • AutoMLを使うと、技術的な人々と非技術的な人々がコードを書かずに機械学習モデルを構築できます。
  • データの前処理、特徴エンジニアリング、モデル構築、ハイパーパラメータの調整、モデル評価、テストデータでの予測など、モデル構築の各ステップを自動的に処理するため、これらのタスクを実行するためにコードを書く必要はありません。
  • AutoMLは直感的なユーザーインターフェースを提供し、さまざまなAPIを提供します。
  • AutoMLはPythonや他のプログラミング言語のクライアントライブラリも提供します。

サポートされるデータの種類

AutoMLは、非構造化データと構造化データをサポートし、以下の4つのタイプに分類されます。

  1. 画像
  2. 表形式
  3. ビデオ
  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!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

人工知能

「ChatGPT Meme Creator Pluginを使ってミームを作成する(ビジネスを成長させるために)」

この記事では、ChatGPT Meme Creatorプラグインを使用して、実際に面白いミームを作成する方法を詳しく説明します

機械学習

「FastEmbedをご紹介:高速かつ軽量なテキスト埋め込み生成のためのPythonライブラリ」

言葉やフレーズは、埋め込みを使用して高次元空間で効果的に表現することができます。これは、自然言語処理(NLP)の分野で重...

人工知能

ダイナミックAIプロジェクト見積もり' (Dainamikku AI purojekuto mitsumori)

現在、ほとんどの人が見積もりを使用しています顧客は、プロジェクトの結果を使用するタイミングを計画し制御するためにそれ...

データサイエンス

「データサイエンスプロジェクトを変革する:YAMLファイルに変数を保存する利点を見つけよう」

このブログ投稿では、データサイエンスプロジェクトで変数、パラメータ、ハイパーパラメータを保存するための中心的なリポジ...

データサイエンス

「今日使用されているAIoTの応用」

「AIとIoTの統合が、多くの技術分野を再構築する様子を探求してくださいいくつかの有名な例を交えて、最先端のAIoTアプリケー...

データサイエンス

イノベーションを推進するための重要なツール:データレイクハウスにおけるジェネラティブAIの向上

LLMおよびジェネレーティブAIアプリの登場により、データは全エコシステムの中心的な要素となっています本記事では、データレ...