ACK One登録クラスターがデータセンターにおけるGPUリソース不足の解決に役立つ

> 本記事は[こちらのブログ](https://www.alibabacloud.com/blog/ack-one-registered-clusters-help-solve-gpu-resource-shortage-in-data-centers_602235?spm=a2c65.11461433.0.0.4ee35355Z0vn2M)を参考にしています。
> 翻訳にはアリババクラウドの[ModelStudio](https://www.alibabacloud.com/en/product/modelstudio)([Qwen](https://www.alibabacloud.com/en/solutions/generative-ai/qwen))を使用しております。

# DeepSeekとACK One登録クラスタの統合ガイド

**著者:** Xiaobing Meng (Zhishi)

DeepSeekは、深層学習に基づくインテリジェントな推論モデルとして、自然言語処理（NLP）、画像認識などの分野で優れたパフォーマンスを発揮し、急速に人気を集めました。企業レベルのアプリケーションでも学術研究でも、DeepSeekは強力な可能性を示しています。しかし、その適用範囲が拡大するにつれて、データセンターの計算能力のボトルネックが徐々に顕在化してきています。この計算能力不足に対応するため、アリババクラウドが提供するACK One登録クラスタは、企業にとって柔軟かつ効果的な解決策を提供します。オンプレミスデータセンター内のKubernetesクラスタをACK One登録クラスタに接続することで、企業はシームレスに計算資源を拡張でき、強力なACS GPUの計算能力をフル活用し、DeepSeek推論モデルを効率的にデプロイできます。
![1](https://yqintl.alicdn.com/0f5ad9aecd03bf635b958ed72dc9bc69a1cf59c0.jpeg)

## 背景

### ACK One登録クラスタ
データセンターやサードパーティのクラウドに展開されたクラスタを[Alibaba Cloud Distributed Cloud Container Platform for Kubernetes (ACK One)](https://www.alibabacloud.com/product/ack-one?spm=a3c0i.14509290.6791778070.443.59b87b8ducOKjb)に登録することができます。これにより、ハイブリッドクラスタを構築し、集中管理することが可能です。

### ACS計算能力
[Container Compute Service](https://www.alibabacloud.com/product/acs?spm=a3c0i.14509290.6791778070.128.59b87b8ducOKjb) (ACS) は、ACK Serverlessクラスタ（旧称 ASK）のアップグレード版です。コスト効率が高く、使いやすく、弾力性があります。ACSはさまざまなビジネスシナリオ向けに設計されており、コスト効率の良いサーバーレスコンピュートクラスとコンピュートQoSクラスを定義し、必要に応じてリソースを要求し、秒単位での支払いが可能です。これにより、クラスタやノードの運用保守について心配する必要がなくなります。

### DeepSeek-R1
DeepSeek-R1は、DeepSeekが提供する第一世代の推論モデルであり、大規模な強化学習を通じてLLM（大規模言語モデル）の推論性能を向上させることを目指しています。統計によると、DeepSeek-R1は数学的推論やプログラミングコンペティションにおいて他のクローズドソースモデルよりも優れています。特定の分野では、OpenAI-01シリーズに匹敵または凌駕するパフォーマンスを達成しています。また、創作、執筆、質問応答など知識に関連する分野でも優れた結果を出しています。DeepSeekはさらに、QwenやLlamaといった小型モデルにも推論能力を蒸留し、それらの推論性能を微調整しています。DeepSeekから蒸留された14Bモデルは、オープンソースのQwQ-32Bモデルを上回ります。同様に、蒸留された32Bおよび70Bモデルも新たな記録を達成しました。DeepSeekに関する詳細情報は、[DeepSeek AI GitHubリポジトリ](https://github.com/deepseek-ai)をご覧ください。

### vLLM
vLLMは高性能で使いやすいLLM推論サービフレームワークです。vLLMは、Qwenモデルを含む複数の一般的なLLMをサポートしており、PagedAttention最適化、継続的なバッチ処理、モデル量子化などの技術によって、LLMの推論効率を大幅に向上させます。vLLMフレームワークに関する詳細情報は、[vLLM GitHubリポジトリ](https://github.com/vllm-project/vllm)をご覧ください。

## クイック統合

- [Container Service for Kubernetes (ACK) コンソール](https://csnew.console.aliyun.com/#/authorize)にログインし、指示に従ってコンテナサービスを有効化します。
- [ACSコンソール](https://acs.console.aliyun.com/#/)にログインし、画面の指示に従ってACSを有効化します。
- ACK One登録クラスタを作成し、それをデータセンターや別のクラウドサービスプロバイダのKubernetesクラスタに接続します。ACK Oneクラスタは1.24以降に設定することをお勧めします。詳細情報は、[ACK One登録クラスタを作成し、Cluster Bを登録クラスタに接続する](https://www.alibabacloud.com/help/en/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/create-a-registered-cluster-through-the-console?spm=a2c4g.11186623.help-menu-85222.d_2_1_5_0.2291791cYryyIg&scm=20140722.H_121053._.OR_help-T_cn~zh-V_1)をご覧ください。
- Arenaクライアントがインストールされ、設定されていることを確認します。詳細情報は、[Arenaクライアントの設定](https://www.alibabacloud.com/help/en/ack/cloud-native-ai-suite/user-guide/install-arena#task-1917487)をご覧ください。
- ack-virtual-nodeコンポーネントをインストールします。詳細情報は、[ACK One登録クラスタでACS計算能力を使用する](https://www.alibabacloud.com/help/en/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/use-acs-computing-power-in-ack-one-registered-clusters?spm=a2c4g.11186623.help-menu-85222.d_2_1_7_2_0.59b61d21IDhKX3&scm=20140722.H_2868639._.OR_help-T_cn~zh-V_1)をご覧ください。

## 手順

### ステップ1: DeepSeek-R1-Distill-Qwen-7Bモデルファイルの準備
1. ModelScopeからDeepSeek-R1-Distill-Qwen-7Bモデルをダウンロードするには、以下のコマンドを実行します。  
   注: git-lfsプラグインがインストールされているかどうか確認してください。インストールされていない場合は、`yum install git-lfs` または `apt-get install git-lfs` を実行してインストールしてください。詳細情報は、[Install git-lfs](https://docs.github.com/en/repositories/working-with-files/managing-large-files/installing-git-large-file-storage)をご覧ください。
   bash
   git lfs install
   GIT_LFS_SKIP_SMUDGE=1 git clone https://www.modelscope.cn/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B.git
   cd DeepSeek-R1-Distill-Qwen-7B/
   git lfs pull
   

2. OSSディレクトリを作成し、モデルファイルをそのディレクトリにアップロードします。  
   注: ossutilのインストールおよび使用方法については、[Install ossutil](https://www.alibabacloud.com/help/en/oss/developer-reference/install-ossutil?spm=a2c4g.11186623.0.0.384b6557sdxlwN)をご覧ください。
   bash
   ossutil mkdir oss://<your-bucket-name>/models/DeepSeek-R1-Distill-Qwen-7B
   ossutil cp -r ./DeepSeek-R1-Distill-Qwen-7B oss://<your-bucket-name>/models/DeepSeek-R1-Distill-Qwen-7B
   

3. PVおよびPVCを作成します。クラスタに対して「llm-model」という名前の永続ボリューム（PV）と「llm-model」という名前の永続ボリューム要求（PVC）を設定します。詳細情報は、[静的にプロビジョニングされたOSSボリュームのマウント](https://
otherOpts: -o umask=022 -o max_stat_cache_size=0 -o allow_other
path: <your-model-path> # モデルのパス。この例では /models/DeepSeek-R1-Distill-Qwen-7B/ です。
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: llm-model
spec:
  accessModes:
    - ReadOnlyMany
  resources:
    requests:
      storage: 30Gi
  selector:
    matchLabels:
      alicloud-pvname: llm-model

## ステップ2: モデルをデプロイする
1. クラスタ内のノードのステータスを確認するために、次のコマンドを実行します。bash
kubectl get no -owide
期待される出力：
NAME                            STATUS   ROLES           AGE   VERSION   INTERNAL-IP     EXTERNAL-IP   OS-IMAGE                                              KERNEL-VERSION           CONTAINER-RUNTIME
idc-master-0210-001             Ready    control-plane   26h   v1.28.2   192.168.8.XXX   <none>        Alibaba Cloud Linux 3.2104 U11 (OpenAnolis Edition)   5.10.134-18.al8.x86_64   containerd://1.6.32
idc-worker-0210-001             Ready    <none>          26h   v1.28.2   192.168.8.XXX   <none>        Alibaba Cloud Linux 3.2104 U11 (OpenAnolis Edition)   5.10.134-18.al8.x86_64   containerd://1.6.32
idc-worker-0210-002             Ready    <none>          26h   v1.28.2   192.168.8.XXX   <none>        Alibaba Cloud Linux 3.2104 U11 (OpenAnolis Edition)   5.10.134-18.al8.x86_64   containerd://1.6.32
virtual-kubelet-cn-hangzhou-b   Ready    agent           20h   v1.28.2   10.244.11.XXX   <none>        <unknown>                                             <unknown>                <unknown>
virtual-kubelet-cn-hangzhou-h   Ready    agent           25h   v1.28.2   10.244.11.XXX   <none>        <unknown>                                             <unknown>                <unknown>
出力結果から、ノードに virtual-kubelet-cn-hangzhou- ノードが存在することがわかります。

2. 次のコマンドを実行して、vLLM を使用して Qwen モデルを推論サービスとしてデプロイします。
注意：推奨される GPU リソースは、1 GPU、8 vCPU、および 32 GiB のメモリです。bash
arena serve custom \
--name=deepseek-r1 \
--version=v1 \
--gpus=1 \
--cpu=8 \
--memory=32Gi \
--replicas=1 \
--env-from-secret=akId=oss-secret \
--env-from-secret=akSecret=oss-secret \
--label=alibabacloud.com/acs=true \                         # ACS コンピューティングパワーを使用します。
--label=alibabacloud.com/compute-class=gpu \
--label=alibabacloud.com/gpu-model-series=<example-model> \   # GPU インスタンスシリーズを指定します。
--restful-port=8000 \
--readiness-probe-action=tcpSocket \
--readiness-probe-action-option=port: 8000 \
--readiness-probe-option=initialDelaySeconds: 30 \
--readiness-probe-option=periodSeconds: 30 \
--image=registry-cn-hangzhou-vpc.ack.aliyuncs.com/ack-demo/vllm:v0.6.6 \
--data=llm-model:/model/DeepSeek-R1-Distill-Qwen-7B \
vllm serve /model/DeepSeek-R1-Distill-Qwen-7B --port 8000 --trust-remote-code --served-model-name deepseek-r1 --max-model-len 32768 --gpu-memory-utilization 0.95 --enforce-eager

注意：以下のラベルを使用して、ACS GPU コンピューティングパワーの使用方法を記述する必要があります。bash
--label=alibabacloud.com/acs=true
--label=alibabacloud.com/compute-class=gpu
--label=alibabacloud.com/gpu-model-series=<example-model>
期待される出力：
service/deepseek-r1-v1 created
deployment.apps/deepseek-r1-v1-custom-serving created
INFO[0001] The Job deepseek-r1 has been submitted successfully 
INFO[0001] You can run `arena serve get deepseek-r1 --type custom-serving -n default` to check the job status

以下の表はパラメータの説明です。

| パラメータ | 説明 |
| --- | --- |
| --name | 推論サービスの名前 |
| --version | 推論サービスのバージョン |
| --gpus | 各推論サービスレプリカで使用されるGPUの数 |
| --cpu | 各推論サービスレプリカで使用されるCPUの数 |
| --memory | 各推論サービスレプリカで使用されるメモリ量 |
| --replicas | 推論サービスレプリカの数 |
| --label | [ACS GPUコンピューティングパワーを指定](https://www.alibabacloud.com/help/en/cs/user-guide/pod-gpu-model-and-driver-version)するためのラベルを追加します。<br>`--label=alibabacloud.com/acs=true`<br>`--label=alibabacloud.com/compute-class=gpu`<br>`--label=alibabacloud.com/gpu-model-series=example-model`<br>注意: サポートされているGPUモデルを確認するには、[チケットを送信](https://smartservice.console.aliyun.com/service/create-ticket)してください。|
| --restful-port | 公開する推論サービスのポート |
| --readiness-probe-action | リードネスプローブの接続タイプ。有効な値: HttpGet, Exec, gRPC, TCPSocket |
| --readiness-probe-action-option | リードネスプローブの接続方法 |
| --readiness-probe-option | リードネスプローブの設定 |
| --image | 推論サービスのイメージアドレス |
| --data | 共有PVCをランタイム環境にマウントします。値はコロン(:)で区切られた2つの部分で構成されます。コロンの左側にはPVCの名前を指定します。PVCの名前を取得するには、`arena data list` コマンドを実行します。このコマンドは、指定されたクラスタで利用可能なPVCを照会します。コロンの右側にはPVCによって要求されたPVがマウントされるパスを指定します。トレーニングデータは指定されたパスから読み取られます。これにより、トレーニングジョブはPVCによって要求された対応するPVに格納されたデータを取得できます。 |

3. 次のコマンドを実行して、推論サービスの詳細を照会します。サービスが準備できるまで待ちます。bash
arena serve get deepseek-r1
期待される出力：
Name:       deepseek-r1
Namespace:  default
Type:       Custom
Version:    v1
Desired:    1
Available:  1
Age:        17m
Address:    10.100.136.39
Port:       RESTFUL:8000
GPU:        1
Instances:
  NAME                                            STATUS   AGE  READY  RESTARTS  GPU  NODE
  ----                                            ------   ---  -----  --------  ---  ----
  deepseek-r1-v1-custom-serving-5f59745cbd-bsrdq  Running  17m  1/1    0         1    virtual-kubelet-cn-hangzhou-b

4. 次のコマンドを実行して、推論サービスが仮想ノードにデプロイされたかどうかを確認します。bash
kubectl get po -owide 
{id:chatcmpl-cef570252f324ed2b34953b8062f793f,object:chat.completion,created:1739245450,model:deepseek-r1,choices:[{index:0,message:{role:assistant,content:こんにちは！私はDeepSeek-R1です。中国のDeepSeek社が独自に開発したインテリジェントアシスタントです。お手伝いできることを嬉しく思います！ \n&lt;/think&gt;\n\n こんにちは！私はDeepSeek-R1です。中国のDeepSeek社が独自に開発したインテリジェントアシスタントです。お手伝いできることを嬉しく思います！ ,tool_calls:[]},logprobs:null,finish_reason:stop,stop_reason:null}],usage:{prompt_tokens:10,total_tokens:68,completion_tokens:58,prompt_tokens_details:null},prompt_logprobs:null}
結論
DeepSeek-R1は、数学的推論やプログラミングコンテストにおいて他のクローズドソースモデルより優れた性能を発揮します。そのパフォーマンスは、特定の分野でOpenAI-01シリーズに匹敵するか、それ以上に達することもあります。リリース後、多くの人々が試しました。この記事では、ACS GPUの計算能力を使用して、ACK One登録クラスター上で本番利用可能なDeepSeek推論サービスをデプロイする方法について説明します。これにより、データセンター内の計算リソース不足を解消し、企業が複雑で変化に富んだビジネス課題に対処するのを容易にします。これにより、クラウドの生産性の潜在能力を最大限に引き出すことができます。詳細を学び、インテリジェントなスケーリングの旅を始めるには、 <a href=https://www.alibabacloud.com/help/en/ack/distributed-cloud-container-platform-for-kubernetes/product-overview/?spm=a2c4g.11186623.0.i11 target=_blank>ACK One公式サイト</a> をご覧ください。