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

機械学習

Concrete MLと出会ってください:プライバシーの保護と安全な機械学習を可能にするオープンソースのFHEベースのツールキット

人工知能と機械学習は、過去数年間で驚異的な生産性の向上を示しています。機械学習は、すべてのプライバシーと機密性の手段...

AIニュース

「A.I.が住宅法案を書いた批評家はそれがインテリジェントでないと言っています」

ニューヨーク州の議員は、人工知能プログラムを使用して、ニューヨーク州の法律の抜け穴を特定しましたしかし、その結果とな...

AIニュース

「AnthropicがClaude 2を発表:コーディングを革新する次世代AIチャットプログラム」

人工知能スタートアップのAnthropicは、テックジャイアントのGoogleによるバックアップを受けて、人気のあるチャットプログラ...

機械学習

コンセプト2ボックスに出会ってください:知識グラフにおける高レベルの概念と細粒度なエンティティとのギャップを埋める – 二重幾何学的アプローチ

大量の研究が知識グラフのような大規模な接続データセットの表現方法を見つけるために行われてきました。これらの方法は知識...

機械学習

「Prompt Diffusionを紹介する:拡散ベースの生成モデルにおけるコンテキスト内学習を可能にするAIフレームワーク」

最新の大規模言語モデル(LLM)であるBERT、GPT-2、BART、T5、GPT-3、およびGPT-4は、機械学習の最近の進歩、特に自然言語処...