すべてのプロダクト
Search
ドキュメントセンター

Container Compute Service:ACS GPU コンピューティング性能を利用した DeepSeek 蒸留モデル推論サービスの構築

最終更新日:Aug 29, 2026

Container Compute Service (ACS) を使用すると、基盤となるハードウェアや GPU ノードを管理することなく、GPU アクセラレーション対応の大規模言語モデル推論を実行できます。すべての設定がすぐに使用でき、課金は従量課金制です。ACS は大規模言語モデル (LLM) の推論タスクに最適であり、推論コストの削減に役立ちます。このトピックでは、vLLM フレームワークを使用して、ACS 上に本番環境対応の DeepSeek 蒸留モデル推論サービスをデプロイする手順について説明します。

背景情報

DeepSeek-R1

DeepSeek-R1 は、DeepSeek の第一世代推論モデルです。大規模な強化学習によってトレーニングされ、大規模言語モデルの推論性能を向上させます。数学的推論やプログラミングコンペティションにおいて、他のクローズドソースモデルを上回り、特定のタスクでは OpenAI o1 シリーズに匹敵するか、それを超える性能を発揮します。DeepSeek-R1 は、文章作成や Q&A などの知識集約型タスクにおいても優れた結果を示します。

DeepSeek は、その推論能力を Qwen および Llama アーキテクチャに基づく小規模なモデルに蒸留しています。14B 蒸留モデルはオープンソースの QwQ-32B モデルを上回り、32B および 70B 蒸留モデルは新たなベンチマークを確立しています。詳細については、「DeepSeek AI GitHubリポジトリ」をご参照ください。

vLLM

vLLM は、高性能な大規模言語モデル推論フレームワークで、Qwen シリーズを含む最も広く使用されている大規模言語モデルのほとんどをサポートしています。PagedAttention、継続的バッチ処理、およびモデル量子化を使用して、推論スループットを最大化します。詳細については、「vLLM GitHubリポジトリ」をご参照ください。

Arena

Arena は、Kubernetes ベースの機械学習タスクを管理するための軽量クライアントです。データ準備、モデル開発、トレーニング、および予測という機械学習ライフサイクル全体を網羅し、データサイエンティストの生産性を向上させます。Arena は、GPU 共有や Cloud Parallel File Storage (CPFS) などの Alibaba Cloud インフラストラクチャサービスと統合されており、Alibaba Cloud に最適化されたディープラーニングフレームワークを実行して、Alibaba Cloud の異種デバイスが持つ性能とコストメリットを最大化できます。詳細については、「Arena GitHubリポジトリ」をご参照ください。

前提条件

開始する前に、次の条件を満たしていることを確認してください。

  • サービスアカウントにシステムデフォルトロールが割り当てられていること (Alibaba Cloud を初めて使用する場合に必要)。これにより、ACS は Elastic Compute Service (ECS)、Object Storage Service (OSS)、Apsara File Storage NAS、Cloud Parallel File Storage (CPFS)、Server Load Balancer (SLB) などの依存サービスを呼び出し、クラスターを作成し、ログを保存できます。ACS は、このロールが正しく付与された後にのみ、これらの機能を使用できます。詳細については、「Container Compute Serviceの使用開始」をご参照ください。

  • GPU リソースを提供するリージョンおよびゾーンに ACS クラスターがあること。「ACS クラスターの作成」をご参照ください。

  • kubectl クライアントがクラスターに接続されていること。詳細については、クラスターの kubeconfig ファイルを取得し、kubectl を使用してクラスターに接続する を参照してください。

  • Arena クライアントがインストールされていること。「Arenaクライアントの設定」をご参照ください。

GPU インスタンス仕様の選択

推論中の GPU メモリは、主にモデルの重み、KV キャッシュ、およびランタイムバッファによって消費されます。次の式を使用して、必要な最小 GPU メモリを見積もります。

GPU メモリ = モデルパラメータ数 × パラメータあたりのバイト数

7B FP16 モデルの場合:7 × 10⁹ × 2 バイト ≈ 13.04 GiB。計算中に必要な KV キャッシュサイズ、GPU 使用率、およびそれら用の予約済みバッファも考慮する必要があるため、7B モデルの推奨仕様は24 GiB のメモリを搭載した 1 GPU、8 vCPU、および 32 GiB の RAM です。

次の表に、サポートされている各 DeepSeek 蒸留モデルの推奨仕様を示します。ACS で使用可能な GPU モデルと仕様の完全なリストについては、「GPUモデルと仕様」をご参照ください。課金の詳細については、「課金の概要」をご参照ください。

モデル

サイズ

モデルサイズ (GB)

推奨仕様

vCPU

RAM

GPU メモリ

DeepSeek-R1-Distill-Qwen-1.5B

1.5B

3.55 GB

4 または 6

30 GiB

24 GiB

DeepSeek-R1-Distill-Qwen-7B

7B

15.23 GB

6 または 8

32 GiB

24 GiB

DeepSeek-R1-Distill-Llama-8B

8B

16.06 GB

6 または 8

32 GiB

24 GiB

DeepSeek-R1-Distill-Qwen-14B

14B

29.54 GB

8 以上

64 GiB

48 GiB

DeepSeek-R1-Distill-Qwen-32B

32B

74.32 GB

8 以上

128 GiB

96 GiB

DeepSeek-R1-Distill-Llama-70B

70B

140.56 GB

12 以上

128 GiB

192 GiB

説明

操作手順

ステップ1:モデルファイルの準備

説明

モデルのダウンロードとアップロードには通常 1~2 時間かかります。時間を節約するには、チケットを送信して、モデルファイルを OSS バケットに直接コピーしてもらうことができます。

  1. git-lfs を使用して、ModelScope から DeepSeek-R1-Distill-Qwen-7B モデルをダウンロードします。

    説明

    git-lfs がインストールされているかどうかを確認してください。インストールされていない場合は、yum install git-lfs または apt-get install git-lfs を実行してインストールしてください。「Git Large File Storageのインストール」をご参照ください。

    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 をインストールするには、「ossutilのインストール」をご参照ください。

    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) と永続ボリューム要求 (PVC) を設定します。詳細な手順については、「OSS静的ボリュームの使用」をご参照ください。

    PV を作成する際には、次のパラメータを使用します。

    パラメータ

    PV タイプ

    OSS

    ボリューム名

    llm-model

    アクセス認証情報

    OSS バケットの AccessKey ID および AccessKey Secret

    バケット名

    前のステップで作成した OSS バケット

    OSS パス

    /models/DeepSeek-R1-Distill-Qwen-7B

    PVC を作成する際には、次のパラメータを使用します。

    パラメータ

    PVC タイプ

    OSS

    名前

    llm-model

    割り当てモード

    既存のボリューム

    既存のボリューム

    上記で作成した PV を選択

    YAML の例:

    apiVersion: v1
    kind: Secret
    metadata:
      name: oss-secret
    stringData:
      akId: <your-oss-ak>       # OSS バケットの AccessKey ID
      akSecret: <your-oss-sk>   # OSS バケットの AccessKey Secret
    ---
    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: llm-model
      labels:
        alicloud-pvname: llm-model
    spec:
      capacity:
        storage: 30Gi
      accessModes:
        - ReadOnlyMany
      persistentVolumeReclaimPolicy: Retain
      csi:
        driver: ossplugin.csi.alibabacloud.com
        volumeHandle: llm-model
        nodePublishSecretRef:
          name: oss-secret
          namespace: default
        volumeAttributes:
          bucket: <your-bucket-name>       # OSS バケットの名前
          url: <your-bucket-endpoint>      # エンドポイント、例: oss-cn-hangzhou-internal.aliyuncs.com
          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. 次のコマンドを実行して、vLLM 推論サービスをデプロイします。このサービスは、OpenAI 互換の HTTP API を公開します。

    --data フラグは、モデル PVC をコンテナ内の /model/DeepSeek-R1-Distill-Qwen-7B にマウントします。--max-model-len フラグは、トークン単位の最大コンテキスト長を設定します。これを増やすと、モデルの会話品質が向上する可能性がありますが、より多くの GPU メモリを消費する場合があります。

    説明
    • --label=alibabacloud.com/gpu-model-series=<example-model><example-model> を、ACS クラスターでサポートされている実際の GPU モデルシリーズに置き換えてください。チケットを送信して、利用可能な GPU モデルシリーズのリストを取得してください。

    • egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/{image:tag} はパブリックレジストリアドレスです。イメージのプル時間を短縮するため、「VPC を使用した AI コンテナイメージプルの高速化」の使用を推奨します。

    arena serve custom \
    --name=deepseek-r1 \
    --version=v1 \
    --gpus=1 \
    --cpu=8 \
    --memory=32Gi \
    --replicas=1 \
    --label=alibabacloud.com/compute-class=gpu \
    --label=alibabacloud.com/gpu-model-series=<example-model> \
    --restful-port=8000 \
    --readiness-probe-action="tcpSocket" \
    --readiness-probe-action-option="port: 8000" \
    --readiness-probe-option="initialDelaySeconds: 30" \
    --readiness-probe-option="periodSeconds: 30" \
    --image=egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/inference-nv-pytorch:25.02-vllm0.7.2-sglang0.4.3.post2-pytorch2.5-cuda12.4-20250305-serverless \
    --data=llm-model:/models/DeepSeek-R1-Distill-Qwen-7B \
    "vllm serve /models/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"

    期待される出力:

    service/deepseek-r1-v1 created
    deployment.apps/deepseek-r1-v1-custom-serving created
    INFO[0004] The Job deepseek-r1 has been submitted successfully
    INFO[0004] You can run `arena serve get deepseek-r1 --type custom-serving -n default` to check the job status

    次の表に、主要なパラメータについて説明します。

    パラメータ

    説明

    --name

    推論サービスの名前

    --version

    推論サービスのバージョン

    --gpus

    レプリカあたりの GPU 数

    --cpu

    レプリカあたりの vCPU 数

    --memory

    レプリカあたりのメモリ量

    --replicas

    レプリカ数

    --label

    ACS GPU コンピューティング性能を指定するラベル。alibabacloud.com/compute-class=gpu および alibabacloud.com/gpu-model-series=<example-model> を設定

    --restful-port

    推論サービスが公開するポート

    --readiness-probe-action

    Readiness Probe の接続タイプ。有効な値:httpGetexecgrpctcpSocket

    --readiness-probe-action-option

    Readiness Probe の接続方法

    --readiness-probe-option

    Readiness Probe の設定

    --image

    推論サービスのコンテナイメージ

    --data

    PVC をコンテナにマウントします。形式:<pvc-name>:<mount-path>arena data list を実行して、使用可能な PVC をリストアップできます

  2. デプロイステータスを確認するには、次のコマンドを実行してください。

    arena serve get deepseek-r1

    期待される出力:

    Name:       deepseek-r1
    Namespace:  default
    Type:       Custom
    Version:    v1
    Desired:    1
    Available:  1
    Age:        6h
    Address:    10.0.78.27
    Port:       RESTFUL:8000
    GPU:        1
    
    Instances:
      NAME                                            STATUS   AGE  READY  RESTARTS  GPU  NODE
      ----                                            ------   ---  -----  --------  ---  ----
      deepseek-r1-v1-custom-serving-54d579d994-dqwxz  Running  1h   1/1    0         1    virtual-kubelet-cn-hangzhou-b

ステップ3:推論サービスの検証

  1. kubectl port-forward を使用して、ローカルマシンから推論サービスへのポートフォワーディングを設定してください。

    説明

    kubectl port-forward によって確立されるポートフォワーディングは、本番環境レベルの信頼性、セキュリティ、またはスケーラビリティを提供しません。そのため、これは開発およびデバッグ目的のみのものであり、本番環境には適していません。Kubernetes クラスターにおける本番環境対応のネットワーキングソリューションの詳細については、「Ingress 管理」をご参照ください。

    kubectl port-forward svc/deepseek-r1-v1 8000:8000

    期待される出力:

    Forwarding from 127.0.0.1:8000 -> 8000
    Forwarding from [::1]:8000 -> 8000
  2. OpenAI 互換のチャット補完エンドポイントにテストリクエストを送信してください。

    curl http://localhost:8000/v1/chat/completions \
      -H "Content-Type: application/json" \
      -d '{
        "model": "deepseek-r1",
        "messages": [
          {
            "role": "user",
            "content": "Write a letter to my daughter from the future 2025 and tell her to study science and technology well, be the master of science and technology, and promote the development of science and technology and economy. She is now in grade 3."
          }
        ],
        "max_tokens": 1024,
        "temperature": 0.7,
        "top_p": 0.9,
        "seed": 10
      }'

    期待される出力:

    {
      "id": "chatcmpl-53613fd815da46df92cc9b92cd156146",
      "object": "chat.completion",
      "created": 1741216800,
      "model": "deepseek-r1",
      "choices": [
        {
          "index": 0,
          "message": {
            "role": "assistant",
            "content": "<think>...</think>\n\nDear Future 2025: ..."
          },
          "finish_reason": "stop"
        }
      ],
      "usage": {
        "prompt_tokens": 40,
        "completion_tokens": 994,
        "total_tokens": 1034
      }
    }

(オプション) ステップ4:クリーンアップ

不要になった推論サービスおよびストレージリソースを削除してください。

  1. 推論サービスを削除します。

    arena serve delete deepseek-r1

    期待される出力:

    INFO[0007] The serving job deepseek-r1 with version v1 has been deleted successfully
  2. PVC および PV を削除します。

    kubectl delete pvc llm-model
    kubectl delete pv llm-model

    期待される出力:

    persistentvolumeclaim "llm-model" deleted
    persistentvolume "llm-model" deleted

次のステップ