Kubernetes 上で生成 AI アプリケーションをデプロイするためのステップバイステップ ガイド

Kubernetes 上で生成 AI アプリケーションをデプロイするためのステップバイステップ ガイド

翻訳者 |李睿

レビュー | Chonglou

今日の急速に変化するテクノロジーと市場環境では、人工知能 (AI)/機械学習 (ML) アプリケーションを効率的に導入することが重要です。 Kubernetes は、コンテナ化されたアプリケーションを管理および拡張し、さまざまな環境でシームレスに実行できるようにする主要なソリューションとなった強力なオープンソース プラットフォームです。

このガイドでは、開発者向けに、Kubernetes 上に AI/ML アプリケーションをデプロイするプロセスを説明します。アプリケーションのコンテナ化から Kubernetes クラスターのセットアップ、AI/ML アプリケーションのデプロイまで、すべてが網羅されています。

Kubernetes に生成 AI アプリケーションをデプロイする理由は何ですか?

Kubernetes に AI/ML アプリケーションをデプロイすると、複雑な AI/ML ワークロードを管理するための強力なソリューションが提供されます。その主な利点の 1 つはスケーラビリティです。 Kubernetes はインフラストラクチャを自動的に拡張して、さまざまなワークロードに効率的に適応し、需要に基づいてリソースが効率的に割り当てられるようにします。この自動スケーリング機能は、AI/ML タスクに関連する大規模な計算を処理するために不可欠です。

さらに、Kubernetes はマルチクラウドおよびハイブリッド クラウド環境をサポートし、柔軟性を提供し、ベンダー ロックインを回避します。開発、テスト、展開のための一貫性のある統合された運用環境を提供し、データ サイエンティストとエンジニア間のコラボレーションを強化します。

Kubernetes は、高可用性とフォールト トレランスも保証し、障害が発生したコンテナを自動的に置き換えたり再スケジュールしたりして、AI/ML アプリケーションの信頼性と堅牢性を確保します。さらに、更新やロールバックなどの多くの操作が簡素化されるため、チームはインフラストラクチャの管理ではなく AI/ML モデルの構築に集中できるようになります。

前提条件

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

チュートリアル

まず 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=<Add Your OpenAI API Key>

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

 npm run dev

アプリはLocal 3000でご覧いただけます

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

Dockerfile touch Dockerfile

そこに次の Dockerfile 命令を追加します。

 Dockerfile # Use the official Node.js image as a parent image FROM node:14-alpine as build # Set the working directory in the Docker container WORKDIR /app # Copy the package.json and package-lock.json files into the container at /app COPY package*.json ./ # Install the dependencies RUN npm install # Copy the local files into the container at /app COPY . . # Build the application RUN npm run build # Start from a smaller image to reduce image size FROM node:14-alpine as run # Set the working directory in the Docker container WORKDIR /app # Copy over dependencies COPY --from=build /app/node_modules ./node_modules COPY --from=build /app/.next ./.next COPY --from=build /app/public ./public COPY --from=build /app/package*.json ./ # Expose port 3000 for the app to be accessible externally EXPOSE 3000 # Command to run the application CMD ["npm", "start"]

ビルドしてタグ付けし、DockerHub にプッシュします。

 docker build -t <image name>

注: イメージに generativeai-node-app という名前を付けます

次にコンテナを起動します。

画像が作成されました!ここで、次のコマンドを使用して、指定したポートで Docker コンテナを起動します。

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

次に DockerHub の資格情報を使用して再構築します。

 docker build -t <your dockerhub username>/<image name>

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

 docker push <your dockerhub username>/<image name>

DockerHub にアクセスすると、イメージがプッシュされたことを確認できます。

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

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

1 つのファイルには展開手順が含まれ、もう 1 つのファイルにはサービス公開手順が含まれます。

まず deployment.yaml ファイルを確認します。

 YAML apiVersion: apps/v1 kind: Deployment metadata: name: genai-app spec: replicas: 2 selector: matchLabels: app: genai-app template: metadata: labels: app: genai-app spec: containers: - name: genai-app image: pavansa/generativeai-node-app:latest ports: - containerPort: 3000

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

YAML apiVersion: v1 kind: Service metadata: name: genai-app-service spec: selector: app: genai-app ports: - protocol: TCP port: 80 targetPort: 3000 type: LoadBalancer

以下では、Minikube を使用して単一ノードの Kubernetes クラスターを作成し、それを使用してアプリケーションをデプロイします。

次のコマンドを使用して Minikube を起動します。

 minikube start

表示される出力は次のようになります。

: Kubernetes を有効にした状態でDocker Desktopを実行し続けてください以下の写真は参考用です。

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

 kubectl apply -f deployment.yaml

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

 kubectl apply -f service.yaml

まず以下のコマンドを使用してポッドのステータスを確認します。

 kubectl get pods

次の画像に示すように目的の出力が表示されます

アプリケーションのデプロイメント ステータスをチェックして、必要なポッドが期待どおりに実行されているかどうかを確認しましょう。

 kubectl get deployment

アプリケーションのサービスステータスを確認します。

 kubectl get service

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

 minikube service <add your application service name> --url

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

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

これで、アプリケーションは Kubernetes を使用してコンテナ化、デプロイ、公開されました。

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

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

無料の SingleStore Cloud アカウントが必要です。

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

以下に示すように、SQL エディターに移動します

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

 -- create a database CREATE DATABASE <database name>;

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

 USE <database name>;

次に、新しいデータベースに必要なスキーマを持つテーブルを作成します。

 -- create a table CREATE TABLE <table name> ( );

これらの SQL コマンドを SQL エディターに貼り付けて強調表示し、[実行] ボタンをクリックできます。

このチュートリアルでは、データベースとテーブルを作成し、テーブルに情報を提供するプロセス全体を説明します。

Kubernetes デプロイメント構成を更新する

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

 YAML apiVersion: apps/v1 kind: Deployment ... spec: containers: - name: genai-app ... env: - name: DB_HOST value: "<Your SingleStore DB Host>" - name: DB_PORT value: "<Your SingleStore DB Port>" ...

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

更新された Kubernetes デプロイメント構成を適用し、SingleStore と統合されたアプリケーションを再デプロイします。

 Kubectl apply -f deploy .yaml

統合を確認する

再デプロイ後、アプリケーションが SingleStore データベースに正常に接続し、期待どおりにデータベース操作を実行することを確認する必要があります。

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

結論は

これで、Kubernetes に AI/ML アプリケーションをデプロイするための包括的な手順が正常に完了しましたこのガイドでは、アプリケーションのコンテナ化から Kubernetes へのアプリケーションのデプロイと公開までの各重要な段階を開発者に説明します。

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

原題: Kubernetes への GenAI アプリケーションのデプロイ: ステップバイステップ ガイド、著者: Pavan Belagatti

<<:  Sora では 1 分間のビデオを生成するのに 1 時間以上かかります。これによりユーザー エクスペリエンスにどのような変化がもたらされるのでしょうか?

>>:  OpenAI はキャッシュフローがなくなる前に GPT-5 を作成できるでしょうか?アルトマン氏は7兆ドルの帝国を築くという野望を明かすが、投資家は躊躇する

ブログ    

推薦する

最新レポート: 従業員の 25% が ChatGPT などの AI ツールに機密データをアップロードしている

新たな調査によると、従業員の15%がChatGPTに会社のデータを頻繁にアップロードしており、そのデ...

...

GPT-4 が「Who is the Undercover」ボードゲームに大混乱を引き起こします。会話はリアルだが、人間らしさにはまだ改善の余地がある

生成 AI 研究が新たな活力を得ています。韓国チームは、GPT に「Spyfall」と呼ばれるギャン...

2017 ナレッジ グラフ ストレージ システム ランキング: あまり知られていないナレッジ グラフ ストレージ システム

ストレージシステムとは、プログラムやデータを格納するための各種記憶装置、制御部品、情報のスケジュール...

朱順燕:機械知能の発展は、機能的なニーズから感情的なニーズへの進化です。

「Tmall Genieに代表される機械知能デバイスは、まさに家族の一員となり、より心温まるイノベ...

フロンティアモデルフォーラムは責任あるAIの創造を目指している

政府や社会からの監視が強まる中、人工知能(AI)の責任ある開発を促進し、業界標準を確立することを目的...

AIキーストロークパターン検出によるパスワードの認識を防ぐ方法

著者: Vision NP翻訳者:陳俊レビュー丨Chonglou最近、比較的隠れていたネットワーク ...

脳も学習を強化しています! 「価値判断」は脳によって効率的にコード化され、ニューロンに公開される

[[437266]]私たち一人ひとりは、人生において、「今夜何を食べるか」「明日はどこに遊びに行くか...

...

5分で強力で使いやすいディープラーニング環境を構築

ディープラーニング プロジェクトに適した環境を構築するのは簡単な作業ではありません。処理すべきことは...

米国のパイロットがエイリアンの存在を確認!米国は10年間UFOのリバースエンジニアリングを行っており、マスク氏はそれを否定していない

ちょうど昨日、米国議会は、米国政府が不時着したエイリアンの宇宙船とエイリアンの遺体を発見し、それを隠...

2.7B は Llama 2 70B に勝てる、Microsoft は「小さな言語モデル」を提供! 96台のA100が14日間でPhi-2を訓練し、Google Gemini nanoを圧倒

大きなモデルの髪は、本当にどんどんカールしてきています! 11月に、OpenAIはまずGPTを使用し...

ジェネレーティブAIは高度な分析に新たな可能性をもたらす

過去 2 年間で、生成型人工知能 (GenAI) の出現により、産業プロセス分析に刺激的な新しい可能...

大規模モデルを低コストで便利に使用するには? Amazon Web Services が生成型 AI を実現する方法

現在、私たちは「百機種戦争」の時代に突入しており、テクノロジー企業は人工知能分野で主導権を握ろうと、...