企業が人工知能 (AI)、機械学習 (ML)、ディープラーニング (DL) の利用を増やすにつれて、機械学習開発をどのように拡張し、産業化するかという重要な疑問が生じます。これらの議論は、多くの場合、機械学習モデル自体に焦点を当てていますが、モデルは完全なソリューションの一部にすぎません。本番環境での導入と拡張を実現するには、モデル開発プロセスに、開発前と開発後の主要なアクティビティと公開可能なプロセスを説明する繰り返し可能なプロセスも含める必要があります。 この記事では、Kubermatic Kubernetes プラットフォームを使用して、画像認識予測用のディープラーニング モデルをデプロイ、スケーリング、管理する方法を説明します。
Kubermatic Kubernetes プラットフォームは、柔軟性と自動化、機械学習/ディープラーニング ワークフローとの統合、完全なクラスター ライフサイクル管理を提供する、本番環境レベルのオープン ソース Kubernetes クラスター管理ツールです。 始めるこの例では、画像認識用のディープラーニング モデルをデプロイします。これは、10 のカテゴリに属する 60,000 枚の 32x32 カラー画像を含む CIFAR-10 データセットを使用し、高速コンピューティングに Apache MXNet の Gluon と NVIDIA GPU を使用します。 CIFAR-10 データセットで事前トレーニング済みのモデルを使用する場合は、入門ガイドを参照してください。 トレーニング セットのサンプルを使用して、モデルを 200 回トレーニングします。トレーニング エラーがゆっくりと減少し続ける限り、モデルは過剰適合されません。次の図はトレーニング プロセスを示しています。 トレーニング後、モデル トレーニングから取得したパラメーターは、後で読み込むことができるように保存する必要があります。
モデルのトレーニングが完了したら、それを Flask サーバーでラップできます。次のプログラムは、リクエスト内のパラメータとして画像を受け取り、モデルの予測結果をレスポンスで返す方法を示しています。
コンテナ化モデルモデルを Kubernetes にデプロイする前に、Docker をインストールし、モデルを含むイメージを作成する必要があります。 Docker をダウンロード、インストールして起動します。
コードと依存関係を管理するフォルダーを作成します。
コードの実行に必要なすべての依存関係を管理するには、 requirements.txt ファイルを作成します。
Dockerfile を作成すると、Docker はこのファイルに基づいてイメージを作成します。
この Dockerfile は 3 つの主要な部分に分けられます。まず、Docker は Python のベースイメージをダウンロードします。次に、Docker は Python のパッケージ管理ツール pip を使用して、requirements.txt に記録されているパッケージをインストールします。最後に、Docker は python app.py を実行してスクリプトを実行します。 Docker コンテナをビルドします。
このコマンドは、kubermatic-dl イメージを使用して、現在の作業ディレクトリにコード用のコンテナーを作成します。 使用
このコマンドは、コンテナがホスト上で適切に実行できるかどうかを確認します。 使用
ローカル コンテナの実行ステータスを表示するコマンド: コンテナの実行ステータスを表示する モデルをDocker Hubにアップロードするモデルを Kubernetes にデプロイする前に、まずイメージを一般公開する必要があります。モデルを Docker Hub にアップロードすることで公開できます。 (Docker Hub アカウントをお持ちでない場合は、まずアカウントを作成する必要があります) ターミナルで Docker Hub アカウントにログインします。
イメージにタグを付けると、Docker Hub にアップロードされた後にモデルにバージョン情報が含まれるようになります。
画像にタグを付ける 使用
イメージの ID を確認するコマンド。 モデルをKubernetesクラスターにデプロイするまず、Kubermatic Kubernetes プラットフォームでプロジェクトを作成し、クイック スタート ガイドに従って Kubernetes クラスターを作成します。 Kubernetes クラスターを作成する クラスターにアクセスするための kubeconfig をダウンロードし、ダウンロード ディレクトリに配置します。環境がそれを見つけられるように、適切な環境変数を設定することを忘れないでください。 Kubernetes クラスターの例 kubectl コマンドを使用して、クラスター情報を確認します。たとえば、クラスター内で kube-system が正常に起動されているかどうかを確認する必要がある場合は、kubectl cluster-info コマンドを使用できます。 クラスターでコンテナを実行するには、デプロイメント構成ファイル (deployment.yaml) を作成し、apply コマンドを実行してクラスターに適用する必要があります。
デプロイメントをパブリック インターネットに公開するには、コンテナーに対して外部からアクセス可能な IP アドレスを作成できるサービスが必要です。
もうすぐ完了です。まずはデプロイしたサービスのステータスを確認し、IP 経由で画像認識 API をリクエストします。
最後に、外部 IP に基づいて次の 2 つの画像を使用して画像認識サービスをテストします。
要約するこのチュートリアルでは、ディープラーニング モデルを作成し、Flask を使用して REST API として提供します。アプリケーションを Docker コンテナに配置する方法、このイメージを Docker Hub にアップロードする方法、Kubernetes を使用してサービスをデプロイする方法について説明します。いくつかの簡単なコマンドを実行するだけで、Kubermatic Kubernetes プラットフォームを使用してアプリケーションをデプロイし、他のユーザーがサービスを利用できるようにすることができます。 |
<<: PyTorch のデータセット Torchvision と Torchtext
>>: 二度とアルゴリズムの罠に陥らないでください!背後にいる人物を見つけ出す
あなたも、周りの同僚やオンライン情報で AI 人工知能や Python プログラミングについて話題に...
[[211834]]人工ニューラル ネットワーク (ANN) は脳の処理メカニズムに基づいており、複...
現在の人工知能の発展は、主にディープラーニングに代表される機械学習技術の恩恵を受けています。ディープ...
SymphonyAI のマーケティング責任者として、私は企業における人工知能 (AI) のあらゆるア...
「ポケモン」の話をすると眠くならなくなりましたか? 「Pokemon」は「ポケモン」の非公式翻訳です...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
Wav2vec 2.0 [1]、HuBERT [2]、WavLM [3]などの音声事前トレーニングモ...
「GenAIは、農業革命と産業革命以来、最も重要な変革となるかもしれません。」まあ、心配しないでくだ...
[[206589]]序文以前、SVMの双対問題を最適化するために、単純なSMOアルゴリズムを実装し...
情報化時代において、人工知能は急速に社会の変化と発展を推進しています。世界中の研究機関、企業、大学が...
過去数か月間、コロナウイルス関連の請求による多大なストレスの期間中、失業保険制度から数百万ドルが盗ま...