Google Cloud Architecture Framework のこのドキュメントでは、Google Cloud におけるデータ分析の基本原則とベスト プラクティスについて説明します。主要な AI サービスと機械学習(ML)サービスと、それらが AI と ML のライフサイクルのさまざまな段階でどのように役立つかについて説明します。以下のベスト プラクティスは、AI と ML のニーズを満たし、システム設計を作成するのに役立ちます。このドキュメントは AI と ML の基本的なコンセプトを理解していることを前提としています。
Google Cloud で ML モデルを構築する際の開発プロセスを簡素化してオーバーヘッドを最小限に抑えるには、ユースケースに対して意味がある最高レベルの抽象化を検討します。抽象化のレベルは、システムを考えるまたはプログラムする複雑さの度合いとして定義されます。抽象化レベルが高いほど、閲覧者が認識できる細部は少なくなります。
ビジネスのニーズに基づいて Google AI や ML サービスを選択するには、次の表を使用します。
ペルソナ | Google サービス |
---|---|
ビジネス ユーザー | Contact Center AI Insights、Document AI、ディスカバリ AI、Cloud Healthcare API などの標準ソリューション。 |
ML の経験があまりないデベロッパー | 事前トレーニング済み API が、視覚、動画、自然言語などの一般的な知覚タスクに対処します。これらの API は、事前トレーニング済みモデルでサポートされており、デフォルトの検出項目を提供します。これらの API は、ML の専門知識やモデルの開発作業なしですぐに使用できます。トレーニング済みの API には、Vision API、Video API、Natural Language API、Speech-to-Text API、Text-to-Speech API、Cloud Translation API などがあります。 |
デベロッパーのための生成 AI | Vertex AI Agent Builder により、開発者はすぐに使用できる機能を使用して chatbot を数分、検索エンジンを数時間で構築、かつデプロイできます。複数の機能をエンタープライズ ワークフローに統合することを必要とするデベロッパーは、Gen App Builder API を使用して直接統合できます。 |
デベロッパーとデータ サイエンティスト | AutoML を使用すると、独自の画像、動画、テキスト、または表形式データによるカスタムモデルを開発できます。AutoML では、モデルの開発を加速させるために、Google の Model Zoo による最も効率の良いモデル アーキテクチャの自動検索がサポートされています。したがって、モデルを構築する必要はありません。AutoML では、モデル アーキテクチャの選択、ハイパーパラメータの調整、トレーニングとサービス提供に向けたマシンのプロビジョニングなど、共通のタスクを扱います。 |
データ サイエンティストと ML エンジニア | Vertex AI カスタム モデル ツーリングは、カスタムモデルをトレーニングして提供し、ML ワークフローの運用を可能にします。Compute Engine VM のようなセルフマネージド コンピューティングで ML ワークロードを運用できます。 |
データ サイエンティスト、ML エンジニア | Vertex AI での生成 AI サポート(別名 genai)では、Google の大規模な生成 AI モデルにアクセスできるため、AI を活用したアプリケーションにて、モデルのテスト、調整、デプロイが可能です。 |
SQL インターフェースに詳しいデータ エンジニア、データ サイエンティスト、データ アナリスト | BigQuery ML を使用すると、BigQuery に保存されたデータを基に SQL ベースのモデルを開発できます。 |
主なサービス
次の表に、AI と ML サービスの概要を示します。
Google サービス | 説明 |
---|---|
Cloud Storage と BigQuery | ML のデータとアーティファクト用に柔軟なストレージ オプションを提供します。 |
BigQuery ML | BigQuery 内部に格納されたデータから ML モデルを直接構築できます。 |
Pub/Sub、Dataflow、 Cloud Data Fusion、Dataproc |
バッチおよびリアルタイムのデータの取り込みと処理をサポートします。詳細については、データ分析をご覧ください。 |
Vertex AI | データ サイエンティストと ML エンジニアは、単一世代のプラットフォームを使用して、生成 AI から MLOps まで、あらゆる ML モデルを作成、トレーニング、テスト、モニタリング、調整、デプロイできます。 ツールには次のものが含まれます。
|
Vertex AI Agent Builder | ウェブサイトやエンタープライズ データ全体で使用するための chatbot と検索エンジンを構築できます。
|
Vertex AI の生成 AI | Google の大規模生成 AI モデルにアクセスして、AI 搭載のアプリケーションで使用するためにテスト、調整、デプロイを行うことができます。Vertex AI の生成 AI は genai とも呼ばれます。
|
事前トレーニング済み API |
|
AutoML | ML モデルを構築、デプロイ、スケールするためのカスタムモデル ツールを提供します。デベロッパーは、独自のデータをアップロードし、適切な AutoML サービスを使用してカスタムモデルを構築できます。
|
AI Infrastructure | AI アクセラレータを使用して、大規模な ML ワークロードを処理できます。これらのアクセラレータを使用すると、費用対効果の高い方法でディープ ラーニング モデルや ML モデルからトレーニングし、推論を行うことができます。 GPU により、ディープ ラーニング モデルの推論や、スケールアップまたはスケールアウトによるトレーニングの費用対効果を高めることができます。Tensor Processing Unit(TPU)は、ディープ ニューラル ネットワークをトレーニングして実行するための、カスタム開発された ASIC です。 |
Dialogflow | 会話体験を実現する仮想エージェントを提供します。 |
Contact Center AI | 人間のエージェント向けに Agent Assist の機能を使用して、自動化されインサイトを多用したコンタクト センター体験を提供します。 |
Document AI | ドキュメント全般、および融資関連や調達関連のドキュメントなど、具体的なドキュメントの種類に対して大規模なドキュメント理解を提供します。 |
Lending DocAI | 担保のドキュメント処理を自動化します。規制とコンプライアンスの要件に対応しながら、処理時間を短縮し、データ キャプチャを合理化します。 |
Procurement DocAI | 請求書や領収書などの非構造化ドキュメントを構造化データに変換して運用効率を高め、カスタマー エクスペリエンスを向上させ、意思決定に情報を提供することで、調達データのキャプチャを大規模に自動化します。 |
推奨事項 | パーソナライズされたおすすめ商品情報を提供します。 |
Healthcare Natural Language AI | 医療文書を確認、分析できます。 |
Media Translation API | 音声データからのリアルタイムの音声翻訳を有効にします。 |
データ処理
以下に挙げるデータ ストレージのベスト プラクティスを実際の環境に適用します。
データが ML 要件を満たすようにする
ML に使用するデータは、データの種類に関係なく特定の基本要件を満たす必要があります。要件には、ターゲットを予測するデータの能力、トレーニングに使用されるデータと予測に使用されるデータの粒度の整合性、トレーニング用に正確にラベル付けされたデータなどがあります。また、十分な量のデータが必要になります。詳細については、データ処理をご覧ください。
表形式データを BigQuery に保存する
表形式データを使用する場合は、すべてのデータを BigQuery に保存し、BigQuery Storage API を使用して、データを読み取ってください。API とのインタラクションを容易にするためには、データの読み取り方法に応じて、以下の追加ツール オプションからひとつ選んで使用してください。
- Dataflow を使用する場合は、BigQuery I/O コネクタを使用してください。
- TensorFlow や Keras を使用する場合は、BigQuery 用の tf.data.dataset リーダーを使用します。
- 画像や動画などの非構造化データを使用する場合は、すべてのデータを Cloud Storage に保存することを検討します。
入力データタイプによって、使用可能なモデル開発ツールが決定されます。事前トレーニング済みの API、AutoML、BigQuery ML は、特定の画像、動画、構造化データのユースケースに対して、より費用対効果が高く、時間効率の良い開発環境を提供できます。
ML モデルを開発するために十分なデータを確保する
利便性の高い ML モデルを開発するには、十分なデータが必要です。カテゴリを予測する場合、各カテゴリの推奨サンプル数は、機能数の 10 倍になります。より多くのカテゴリを予測するには。より多くのデータが必要です。データセットがアンバランスだと、さらに多くのデータが必要です。ラベル付けされたデータが不足している場合は、半教師あり学習を検討してください。
データセット サイズにはトレーニングや提供という意味も含みます。小規模なデータセットの場合は、Notebooks インスタンス内で直接トレーニングできます。分散トレーニングが必要な大規模なデータセットの場合は、Vertex AI custom training service を使用してください。Google 側でデータモデルをトレーニングすることを希望される場合は、AutoML を使用してください。
使用するデータを準備する
適切に準備されたデータはモデルデプロイを加速させます。データ パイプラインを構成するときは、両方のタイプのデータから一貫した結果が得られるように、バッチデータとストリーミング データの両方を処理できるようにしてください。
モデルの開発とトレーニング
以下に挙げる独自のモデル開発と、トレーニングのベスト プラクティスを実際の環境に適用します。
マネージド モデル開発またはカスタム トレーニング モデルの開発を選択する
モデルをビルドする場合、最高レベルの抽象化を検討してください。可能であれば、AutoML を使用して、開発およびトレーニングのタスクを処理してください。カスタム トレーニング済みのモデルについては、セルフマネージド オプションの代わりにスケーラビリティと柔軟性のためのマネージド オプションを選択してください。モデル開発オプションについては、推奨されるツールとプロダクトを使用するをご覧ください。
Compute Engine VM や Deep Learning VM コンテナのセルフマネージド トレーニングではなく、Vertex AI Training サービスを検討してください。JupyterLab 環境の場合は、マネージドとユーザー マネージドの両方の JupyterLab 環境を提供する Vertex AI Workbench を検討してください。詳細については、ML 開発と運用化されたトレーニングをご覧ください。
カスタム トレーニングされたモデル用にビルド済みコンテナやカスタム コンテナを使用する
Vertex AI 上のカスタム トレーニング モデルの場合、ML のフレームワークとフレームワーク バージョンに応じて、事前にビルドされたコンテナやカスタム コンテナを使用できます。事前にビルドされたコンテナは、TensorFlow、scikit-learn、PyTorch、XGBoost のいずれかのバージョン用に作成された Python トレーニング アプリケーションに使用できます。
それ以外の場合は、トレーニング ジョブ用のカスタム コンテナを作成することを選択できます。たとえば、ビルド済みのコンテナでは利用できない Python ML フレームワークを使用してモデルをトレーニングしたい場合、もしくは Python 以外のプログラミング言語を使用してトレーニングしたい場合は、カスタム コンテナを使用してください。カスタム コンテナ内で、トレーニング アプリケーションとそのすべての依存関係をイメージにプリインストールします。このイメージを使用して、トレーニング ジョブを実行します。
分散トレーニングの要件を検討する
分散トレーニング要件を検討します。TensorFlow や PyTorch のような ML フレームワークでは、複数のマシンで同一のトレーニング コードを実行できます。これらのフレームワークは、各マシンに設定された環境変数に基づき、自動で作業分担を調整します。フレームワークによっては、追加のカスタマイズが必要になる場合があります。
次のステップ
AI と ML の詳細については、以下をご覧ください。
アーキテクチャ フレームワークの他のカテゴリ(信頼性、オペレーショナル エクセレンス、セキュリティ、プライバシー、コンプライアンスなど)を確認する。