Container Compute Service (ACS) は、Kubernetes のコンテナ仕様に準拠したコンテナコンピューティングリソースを提供します。ACS はサーバーレスコンピューティングリソースを提供し、コンテナ化されたアプリケーションを効率的に実行できます。このトピックでは、ACS コンソールで、および ACS クラスタ証明書を使用して、コンテナ化された生成 AI を活用したチャットアプリケーションをデプロイおよび公開する方法について説明します。また、アプリケーションを監視する方法についても説明します。
背景情報
このトピックでは、次のオープンソースプロジェクトを使用します。RWKV-Runner と ChatGPT-Next-Web。RWKV-Runner は、RESTful API を使用してオンライン推論を提供する 0.1 億パラメータのモデルです。ChatGPT-Next-Web は、チャットアプリケーション用の Web UI です。イメージを使用して RWKV-Runner と ChatGPT-Next-Web を ACS クラスタにデプロイし、フロントエンドとバックエンドを分離するアーキテクチャ上に生成 AI を活用したチャットアプリケーションを構築できます。このトピックの手順を完了すると、生成 AI を活用したチャットアプリケーションが作成されます。
Kubernetes で使用される用語の詳細については、CNCF と阿里雲が共同開発したクラウドネイティブテクノロジーのコースを参照してください。
手順
ACS を初めて使用する場合は、ACS をアクティブ化し、クラウド リソースにアクセスするための権限を ACS に付与する必要があります。その後、ACS クラスタを作成し、クラスタに生成 AI を活用したアプリケーションをデプロイできます。
ACS のアクティブ化と権限の付与
ACS を初めて使用する場合は、ACS をアクティブ化し、クラウド リソースにアクセスするための権限を ACS に付与する必要があります。
ACSコンソールにログオンし、有効化をクリックします。
ACS アクティブ化ページに移動し、画面の指示に従って ACS をアクティブ化します。
ACSコンソールに戻り、ページを更新します。今すぐ承認をクリックします。
ACS 承認ページに移動し、画面の指示に従って ACS に権限を付与します。
上記の手順を完了したら、ACS コンソールを更新します。その後、ACS を使い始めることができます。
手順 2: ACS クラスタを作成する。
この手順では、ACS クラスタを作成する際にクラスタパラメータを設定する方法を示します。
クラスター ページの左上隅にある クラスターの作成 をクリックします。
ACSコンソールにログオンします。左側のナビゲーションペインで、クラスタをクリックします。
クラスターの作成ページで、次の表に示すパラメーターを設定します。
表に記載されていないパラメータについては、デフォルト設定を使用します。
パラメータ
説明
例
クラスター名
クラスタの名前を入力します。
ACS-Demo
リージョン
クラスタをデプロイするリージョンを選択します。
中国 (北京)
VPC(仮想プライベートクラウド)
ACS クラスタは、仮想プライベートクラウド (VPC) にのみデプロイできます。クラスタと同じリージョンにある VPC を指定する必要があります。
VPC の作成をクリックして、中国 (北京) リージョンに vpc-acs-demo という名前の VPC を作成します。詳細については、VPC の作成と管理を参照してください。
vpc-acs-demo
仮想スイッチ
クラスタ内のノードが相互に通信するための vSwitch を選択します。
Vswitch の作成 をクリックし、vpc-ack-demo VPC に vswitch-ack-demo という名前の vSwitch を作成します。次に、vSwitch リストで vswitch-ack-demo を選択します。詳細については、vSwitch の作成と管理を参照してください。
vswitch-acs-demo
APIサーバーアクセス設定
クラスタの Kubernetes API サーバーをインターネットに公開するかどうかを指定します。インターネット経由でクラスタを管理する場合は、Elastic IP アドレス (EIP) を使用して Kubernetes API サーバーを公開する必要があります。
EIP を使用して API サーバーを公開する を選択します。
サービス ディスカバリ
クラスターのサービスディスカバリを有効にするかどうかを指定します。サービスディスカバリを有効にするには、CoreDNS を選択します。
CoreDNS を選択します。
注文の確認 をクリックし、利用規約を読んで選択し、クラスターの作成 をクリックします。
説明クラスターの作成には約10分かかります。クラスターが作成された後、クラスターページでクラスターを表示できます。
手順 3: ACS クラスタに RWKV-Runner をデプロイする
この手順では、汎用デプロイメントを作成して ACS クラスタに RWKV-Runner をデプロイする方法と、RESTful API を使用してクラスタ内で RWKV-Runner を公開する方法を示します。デプロイメントの作成に使用されるパラメータの詳細については、デプロイメントを使用してステートレスアプリケーションを作成するを参照してください。
ACSコンソールにログインします。クラスタページで、作成したクラスタの名前(この例ではACS-Demo)をクリックします。
左側のナビゲーション ウィンドウで、 を選択します。
デプロイ ページで、イメージから作成 をクリックします。
基本情報名前基本情報ウィザードページで、汎用インスタンスタイプ既定Qosタイプ次へを に設定し、にを選択し、にを選択して、をクリックします。
コンテナー ウィザード ページで、コンテナーを構成し、次へ をクリックします。
パラメータ
説明
例
イメージ名
タグのない画像アドレスを入力するか、画像を選択 をクリックして使用する画像を選択します。
registry.cn-beijing.aliyuncs.com/acs-demo-ns/rwkv-runner
イメージタグを選択
イメージバージョンを選択 をクリックし、イメージバージョンを選択します。
1.0.0
CPU
アプリケーションに必要な vCPU の数を入力します。
1 コア
メモリ
アプリケーションに必要なメモリ量を入力します。
2 GiB
ポート番号
コンテナポートを設定します。
名前: runner.
コンテナーポート: 8000.
プロトコル: TCP。
詳細作成サービスウィザードページで、の右側にあるをクリックします。
[サービスの作成] ダイアログボックスで、次のパラメーターを構成し、[作成] をクリックして、RESTful API を使用してクラスター内で rwkv-runner アプリケーションを公開します。
パラメータ
説明
例
アプリケーション名
サービスの名前を入力します。
rwkv-runner-svc
状態
サービスのタイプ。このパラメータは、サービスへのアクセス方法を指定します。
クラスタ IP
ポートマッピング
サービスポートとコンテナポートを指定します。コンテナポートは、バックエンド ポッドで公開されているポートと同じである必要があります。
名前: runner。
サービスポート: 80.
コンテナーポート: 8000.
プロトコル: TCP。
詳細設定 ウィザード ページの右下隅にある 作成 をクリックします。
アプリケーションを作成すると、完了ウィザードページに移動します。このページには、アプリケーションのオブジェクトが表示されます。詳細の表示をクリックして、アプリケーションの詳細を表示します。
手順 4: クラスタ証明書を使用して ChatGPT-Next-Web をデプロイする
この手順では、クラスタ証明書を使用して汎用デプロイメントを作成してクラスタに ChatGPT-Next-Web をデプロイする方法と、RWKV-Runner をインターネットに公開する方法を示します。デプロイメントの作成に使用されるパラメータの詳細については、デプロイメントを使用してステートレスアプリケーションを作成するを参照してください。
ACSコンソールにログオンします。クラスターページで、作成したクラスターの名前(この例ではACS-Demo)をクリックします。
クラスター情報ページで、接続情報タブをクリックします。インターネットアクセス用のクラスター証明書を取得し、画面の指示に従って証明書をオンプレミス マシンに保存します。
chat-next-web.yaml という名前のファイルを作成し、次の内容をファイルにコピーします。
次のコマンドを実行して、上記の resource をクラスタに作成します。
kubectl apply -f chat-next-web.yaml
手順 5: クラスタ証明書を使用してアプリケーションの初期化ジョブを作成する
この手順では、クラスタ証明書を使用して RWKV-Runner モデルの初期化ジョブを作成する方法を示します。ジョブによって作成されたポッドの QoS クラスは BestEffort です。ジョブの作成に使用されるパラメータの詳細については、ジョブの作成を参照してください。
rwkv-init-job.yaml という名前のファイルを作成し、次の内容をファイルにコピーします。
次のコマンドを実行して、初期化ジョブをデプロイします。
kubectl apply -f rwkv-init-job.yaml
次のコマンドを実行して、初期化ジョブが完了したかどうかを確認します。
kubectl get pod
予期される出力:
手順 6: アプリケーションをテストする
この手順では、サービスを使用してアプリケーションにアクセスする方法を示します。
ACSコンソールにログオンします。クラスターページで、作成したクラスターの名前 (この例ではACS-Demo) をクリックします。
左側のナビゲーションペインで、
を選択します。サービス ページで、作成したサービス (この例では chat-frontend-svc) を見つけます。 外部 IP 列の IP アドレスをクリックしてアプリケーションにアクセスします。
リソースの解放
ACS クラスタを使用すると、次の料金が発生します。
クラスタ内のワークロードで使用されるコンピューティングパワーの料金。料金は ACS によって課金されます。
クラスタで使用される他のクラウド リソースの料金。料金は、阿里雲サービスの課金ルールに基づいて課金されます。
ACS クラスタを作成した後、次の項目に注意してください。
クラスタを使用する必要がなくなった場合は、クラスタと関連リソースを削除します。詳細については、ACS クラスタの削除を参照してください。
クラスタを保持する必要がある場合は、アカウントの残高が 100 人民元未満になったら、アカウントにチャージしてください。ACS で使用される阿里雲サービスの課金ルールの詳細については、課金を参照してください。