KubernetesでのGenAIアプリケーションの展開:ステップバイステップガイド

『KubernetesによるGenAIアプリケーションの展開:ステップバイステップガイド』

今日の高速な技術的な風景において、AI/MLのアプリケーションを効率的かつ効果的に展開することが重要です。Kubernetesは、コンテナ化されたアプリケーションを管理しスケーリングするための優れたオープンソースプラットフォームとして、さまざまな環境でシームレスに実行されることを保証することで、主要なソリューションとして台頭しました。

この包括的なガイドでは、Kubernetes上でAI/MLアプリケーションを展開する手順をステップバイステップで説明します。アプリケーションのコンテナ化からKubernetesクラスターの設定、AI/MLアプリケーションの展開まで、このガイドでカバーしています。

一緒にこの学習の冒険に出かけましょう!

なぜKubernetes上にGenAIアプリケーションを展開するのか?

Kubernetes上でAI/MLアプリケーションを展開することは、複雑なAI/MLワークロードの管理に堅牢なソリューションを提供します。その主要な利点の1つはスケーラビリティです。Kubernetesはインフラストラクチャを自動的にスケーリングし、さまざまなワークロードに効率的に対応し、需要に基づいてリソースを効果的に割り当てることができます。このオートスケーリング機能は、AI/MLタスクでの大規模な計算処理の処理に重要です。

さらに、Kubernetesはマルチクラウドおよびハイブリッドクラウド環境をサポートし、柔軟性を提供し、ベンダーロックインを回避します。開発、テスト、展開のための一貫した統合環境を提供し、データサイエンティストとエンジニアの間の協力を向上させます。

Kubernetesはまた、高可用性と障害耐性を確保し、失敗したコンテナを自動的に置き換えたり再スケジュールしたりすることで、AI/MLアプリケーションの信頼性と堅牢性を確保します。さらに、更新とロールバックなどの多くの運用関連の側面を簡素化し、チームがインフラストラクチャを管理する代わりにAI/MLモデルの構築により集中できるようにします。

事前準備

  • Docker Desktopをインストールしてアプリケーションをコンテナ化します。
  • Minikubeをインストールします。シングルノードクラスタを作成するためにMinikubeを使用します。
  • Node.jsをダウンロードしてインストールします。サンプルアプリケーションはNode.jsアプリケーションです。
  • 無料のSingleStoreデータベースクラウドアカウントにサインアップして、アプリケーションをデータベースと統合します。

チュートリアル

GitHubアカウントをお持ちのことを願っています。

まず、既に利用可能なopenai-quickstart-nodeリポジトリをローカルにクローンします。

git clone https://github.com/pavanbelagatti/openai-quickstart-node.git

プロジェクトディレクトリに移動しましょう。

cd openai-quickstart-node

プロジェクトの要件と依存関係をインストールします。

npm install

.envファイルを作成し、OpenAI APIキーを追加します。

touch .env

.envファイルに以下のようにOpenAIキーを環境変数として追加します。

OPENAI_API_KEY=<Your OpenAI APIキーを追加>

以下のコマンドを使用してアプリケーションを実行します。

npm run dev

ローカルの3000番ポートでアプリケーションが表示されるはずです。

アプリケーションをコンテナ化するためのDockerfileを作成しましょう

以下のDockerfileの命令を追加します。

DockerHubにビルド、タグ、プッシュしましょう。

docker build -t <イメージ名> .

注意:私はイメージをgenerativeai-node-appと名付けています

コンテナを起動しましょう。

イメージがビルドされました!次は、次のコマンドを使用して指定されたポートでDockerコンテナを起動します:

docker run -p 3002:3002 generativeai-node-app

DockerHubの認証情報を使って再度ビルドしましょう。

docker build -t <あなたのDockerHubユーザー名>/<イメージ名> .

イメージをDockerHubにプッシュしましょう。

docker push <あなたのDockerHubユーザー名>/<イメージ名>

DockerHubでイメージがプッシュされたかどうか確認できます。

Kubernetesでアプリケーションをデプロイして公開する

アプリケーションをデプロイして公開するために、2つのyamlファイルが必要です。deployment.yaml ファイルと service.yaml ファイルです。

1つのファイルはデプロイの指示を含み、もう1つはサービスの公開に関する指示です。

まずは deployment.yaml ファイルを見てみましょう。

以下は service.yaml ファイルです。

シングルノードのKubernetesクラスタを作成するためにMinikubeを使用し、アプリケーションのデプロイにも使用します。

以下のコマンドを使用してMinikubeを起動しましょう。

minikube start

これが表示されるはずです。

注意: Docker Desktopを起動して、Kubernetesを有効にしておいてください。以下のイメージは参考までに表示されています。

以下のコマンドを使用してデプロイメントファイルを適用させましょう。

kubectl apply -f deployment.yaml

同様に、サービスのyamlファイルも適用します。

kubectl apply -f service.yaml

以下のコマンドを使用して、まずはPodのステータスを確認しましょう。

kubectl get pods

以下のような出力が表示されるはずです。

次に、アプリケーションのデプロイメントステータスを確認し、それが期待通りに実行されているかどうかを確認しましょう。

kubectl get deployment

アプリケーションのサービスステータスも確認しましょう。

kubectl get service

アプリケーションを公開し、アクセスできるか確認してみましょう。

minikube service <アプリケーションのサービス名を追加> --url

以下のような出力が表示され、アプリケーションにアクセスできるはずです。

アプリケーションにアクセスするためのURLリンクが表示されます。

おめでとうございます! アプリケーションをコンテナ化し、Kubernetesを使用してデプロイして公開しました。

アプリケーションにデータベースを統合する

KubernetesでAI/MLアプリケーションを正常にデプロイし、公開した後、アプリケーションデータを処理するために堅牢でスケーラブルなデータベースが必要になることがあります。SingleStoreは高性能でスケーラブルなSQLデータベースであり、AI/MLアプリケーションに適しています。このセクションでは、SingleStoreデータベースをKubernetesにデプロイされたアプリケーションに統合する方法を紹介します。

無料のSingleStoreクラウドアカウントが必要です。

  • ワークスペースを作成し、アプリケーションに適したデータベースとテーブルを作成します。

以下のイメージのようにSQLエディタに移動します。

次のSQLステートメントを使用して新しいデータベースを作成する

-- データベースを作成するCREATE DATABASE <データベース名>;

次に、USEコマンドを使用して新しいデータベースに切り替えます。

USE <データベース名>;

それから、新しいデータベースにスキーマに従ってテーブルを作成します。

-- テーブルを作成するCREATE TABLE <テーブル名> ();

これらのSQLコマンドをSQLエディタに貼り付け、ハイライトしてから実行ボタンをクリックすることができます。

データベースの作成、テーブルの作成、およびテーブルへのデータの追加の全プロセスについては、このチュートリアルを参照してください。

Kubernetesデプロイメント設定の更新

SingleStoreデータベースがKubernetesクラスタの外部で実行されている場合は、アプリケーションのKubernetesデプロイメント設定を更新してSingleStoreデータベースへの接続を許可します。

アプリケーションを再デプロイする

更新されたKubernetesデプロイメント設定を適用して、SingleStore統合を実行するためにアプリケーションを再デプロイします。

kubectl apply -f deployment.yaml

統合を確認する

再デプロイ後に、アプリケーションがSingleStoreデータベースに正常に接続され、期待どおりのデータベース操作が行われていることを確認してください。

これらの手順に従うことで、SingleStoreデータベースをKubernetesに展開されたAI/MLアプリケーションに正常に統合し、アプリケーションデータを管理するための堅牢でスケーラブルなソリューションを提供することができます。

結論

Kubernetes上でAI/MLアプリケーションを展開するための包括的な手順を成功裏に進めたことをおめでとうございます!このガイドでは、アプリケーションのコンテナ化からKubernetes上での展開と公開まで、各重要なフェーズを詳しく説明しています。

AI/ML展開を引き続き探求し強化する際には、SingleStoreのような高性能データベースを統合してアプリケーションデータをシームレスに管理することを検討してください。SingleStoreはスケーラビリティ、スピード、効率性を提供し、頑強なデータベースバックエンドでAI/MLアプリケーションが最適に実行されることを保証します。

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

AIニュース

「世界最大の広告主がAIの力を受け入れる:広告業界におけるパラダイムシフト」

広告業界を再構築する可能性を秘めた動きとして、世界でも有名な広告主の一部が生成型人工知能(AI)の可能性を活用していま...

機械学習

AIの未来を形作る ビジョン・ランゲージ・プリトレーニング・モデルの包括的な調査と、ユニモーダルおよびマルチモーダルタスクにおける役割

機械学習研究の最新リリースで、ビジョン言語事前学習(VLP)とその多様なタスクへの応用について、研究チームが深く掘り下げ...

機械学習

「AIセキュリティへの6つのステップ」

ChatGPTの登場に伴い、すべての企業がAI戦略を考えようとしており、その作業にはすぐにセキュリティの問題が浮かび上がります...

AI研究

スタンフォード大学の研究者がRT-Sketchを紹介します:目標仕様としての手描きスケッチを通じた視覚模倣学習の向上

研究者は、手描きスケッチを視覚模倣学習における目標指定の未開拓の手法として紹介しました。これらのスケッチは、自然言語...

機械学習

機械学習を用いたサッカータッチダウンの予測

日本語訳:「フットボール全米のファンを結びつける、アメリカの伝統的なスポーツです1試合平均1670万人の視聴者数と、スーパ...

AI研究

「Google DeepMind Researchがニューラルネットワークにおける理解現象の謎を探求:記憶と一般化の相互作用を明らかにする」

ニューラルネットワークが学習し一般化するという従来の理論は、ニューラルネットワークの中でのグロッキングの発生によって...