KubernetesでのGenAIアプリケーションの展開:ステップバイステップガイド
『KubernetesによるGenAIアプリケーションの展開:ステップバイステップガイド』
今日の高速な技術的な風景において、AI/MLのアプリケーションを効率的かつ効果的に展開することが重要です。Kubernetesは、コンテナ化されたアプリケーションを管理しスケーリングするための優れたオープンソースプラットフォームとして、さまざまな環境でシームレスに実行されることを保証することで、主要なソリューションとして台頭しました。
この包括的なガイドでは、Kubernetes上でAI/MLアプリケーションを展開する手順をステップバイステップで説明します。アプリケーションのコンテナ化からKubernetesクラスターの設定、AI/MLアプリケーションの展開まで、このガイドでカバーしています。
一緒にこの学習の冒険に出かけましょう!
なぜKubernetes上にGenAIアプリケーションを展開するのか?
Kubernetes上でAI/MLアプリケーションを展開することは、複雑なAI/MLワークロードの管理に堅牢なソリューションを提供します。その主要な利点の1つはスケーラビリティです。Kubernetesはインフラストラクチャを自動的にスケーリングし、さまざまなワークロードに効率的に対応し、需要に基づいてリソースを効果的に割り当てることができます。このオートスケーリング機能は、AI/MLタスクでの大規模な計算処理の処理に重要です。
- グーグルはコントロールを失っている – CTR操作から大量のAIコンテンツまで
- 裁判官がChatGPTを法的判決に使用することが許可されました
- AIの付き添いロボットが、孤独感に苦しむ高齢者の一部には助けになっていますが、他の人には嫌われています
さらに、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!
Was this article helpful?
93 out of 132 found this helpful
Related articles