企業が人工知能 (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
>>: 二度とアルゴリズムの罠に陥らないでください!背後にいる人物を見つけ出す
最近、P2Pプラットフォームが頻繁に崩壊していることから、インターネット金融プラットフォームの長期的...
音声アシスタントからチャットボットまで、人工知能 (AI) はテクノロジーとのやり取りの方法に革命を...
単純な生物はどのようにして特定の場所へ移動できるのか?ウィーン大学で開発された人工知能と物理モデルが...
アリババAIは、常識QA分野の権威あるデータセットであるCommonsenseQAで新たな世界記録を...
既存のディープ エッジ検出ネットワークは通常、マルチレベルの特徴をより適切に抽出するためのアップサン...
コンピューター科学者たちは、人間自身よりも顔を識別できる新しい顔認識アルゴリズムを開発した。誰もが、...
この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...
[[331789]]序文従来のデータの公開と共有の方法の多くは、生のデータをプレーンテキストで直接出...
MIT と Nvidia の研究者は、高性能コンピューティング タスクで使用されるデータ構造であるス...
導入異常検出に関するいくつかの入門的な質問。質問することは学習するための最良の方法の一つです。しかし...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
人工知能は、人間の活動と市場投資の2つの主要分野である健康と言語に拡大しています。 「State o...
近年、高所から物が投げられたり落下したりして負傷する事故が多発しています。水のボトル、スイカの皮、缶...