全部产品
Search
文档中心

Container Service for Kubernetes:Men-deploy layanan inferensi model distilled DeepSeek di ACK

更新时间:Nov 11, 2025

Topik ini menjelaskan cara menggunakan KServe untuk men-deploy layanan inferensi model DeepSeek yang siap produksi di Alibaba Cloud Container Service for Kubernetes (ACK).

Informasi latar belakang

Model DeepSeek-R1

DeepSeek-R1 adalah model inferensi generasi pertama dari DeepSeek. Model ini dirancang untuk meningkatkan kemampuan inferensi model bahasa besar (LLM) melalui pembelajaran penguatan berskala besar. Eksperimen menunjukkan bahwa DeepSeek-R1 berkinerja baik pada berbagai tugas, seperti penalaran matematika dan kompetisi pemrograman. Model ini tidak hanya melampaui model tertutup lainnya, tetapi juga mendekati atau melampaui seri OpenAI-O1 pada tugas-tugas tertentu. DeepSeek-R1 juga unggul dalam tugas berbasis pengetahuan serta berbagai jenis tugas lainnya, termasuk penulisan kreatif dan tanya jawab umum. DeepSeek juga menyuling kemampuan inferensi ke dalam model yang lebih kecil. Model ini meningkatkan kinerja inferensi model yang sudah ada, seperti Qwen dan Llama, melalui fine-tuning. Model distilled 14B secara signifikan melampaui model open-source QwQ-32B yang ada. Model distilled 32B dan 70B telah mencatat rekor baru. Untuk informasi selengkapnya tentang model DeepSeek, lihat repositori GitHub DeepSeek AI.

KServe

KServe adalah platform layanan model open-source berbasis cloud-native yang menyederhanakan proses deployment dan menjalankan model pembelajaran mesin di Kubernetes. KServe mendukung berbagai framework pembelajaran mesin dan menyediakan kemampuan skalabilitas elastis. Platform ini menggunakan file YAML sederhana untuk menyediakan API deklaratif bagi deployment model, sehingga mempermudah konfigurasi dan pengelolaan layanan model. Untuk informasi selengkapnya tentang proyek open source KServe, lihat KServe.

Arena

Arena adalah solusi ringan berbasis Kubernetes untuk pembelajaran mesin yang mendukung seluruh siklus hidup pembelajaran mesin, termasuk persiapan data, pengembangan model, pelatihan model, dan prediksi model, guna meningkatkan efisiensi ilmuwan data. Arena terintegrasi erat dengan layanan cloud dasar Alibaba Cloud dan mendukung layanan seperti berbagi GPU dan CPFS. Anda dapat menjalankan framework pembelajaran mendalam yang dioptimalkan oleh Alibaba Cloud untuk memaksimalkan kinerja dan efisiensi biaya perangkat heterogen Alibaba Cloud. Untuk informasi selengkapnya tentang Arena, lihat repositori GitHub Arena.

Prasyarat

Spesifikasi instans GPU dan estimasi biaya

Parameter model merupakan konsumen utama Memori GPU selama fase inferensi. Anda dapat menghitung Memori GPU yang dibutuhkan menggunakan rumus berikut:

Sebagai contoh, pertimbangkan model 7B dengan presisi default FP16. Jumlah parameter model adalah 7 miliar. Jumlah byte untuk presisi tipe data adalah 2 byte (bilangan titik mengambang 16-bit / 8 bit per byte).

Selain Memori GPU yang diperlukan untuk memuat model, Anda juga harus mempertimbangkan ukuran KV Cache dan pemanfaatan GPU selama komputasi. Biasanya disediakan buffer tambahan. Oleh karena itu, kami merekomendasikan penggunaan instans GPU-accelerated dengan Memori GPU sebesar 24 GiB, seperti ecs.gn7i-c8g1.2xlarge atau ecs.gn7i-c16g1.4xlarge. Untuk informasi selengkapnya tentang tipe instans GPU-accelerated dan penagihan, lihat Keluarga instans yang dioptimalkan untuk komputasi dengan akselerasi GPU dan Penagihan Layanan GPU Elastis.

Penerapan model

Langkah 1: Siapkan file model DeepSeek-R1-Distill-Qwen-7B

  1. Jalankan perintah berikut untuk mengunduh model DeepSeek-R1-Distill-Qwen-7B dari ModelScope.

    Catatan

    Pastikan plug-in git-lfs telah diinstal. Jika belum diinstal, Anda dapat menjalankan yum install git-lfs atau apt-get install git-lfs. Untuk informasi selengkapnya tentang metode instalasi, lihat Install 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. Buat direktori di OSS dan unggah model ke OSS.

    Catatan

    Untuk informasi selengkapnya tentang cara menginstal dan menggunakan ossutil, lihat Menginstal 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. Buat volume persisten (PV) dan klaim volume persisten (PVC). Konfigurasikan PV dan PVC bernama llm-model untuk kluster target. Untuk informasi selengkapnya, lihat Menggunakan volume penyimpanan statis ossfs 1.0.

    Contoh Konsol

    Tabel berikut menjelaskan konfigurasi dasar untuk PV contoh.

    Item Konfigurasi

    Deskripsi

    Tipe PV

    OSS

    Nama

    llm-model

    Sertifikat Akses

    Konfigurasikan ID AccessKey dan Rahasia AccessKey untuk mengakses OSS.

    ID Bucket

    Pilih bucket OSS yang Anda buat pada langkah sebelumnya.

    Jalur OSS

    Pilih jalur tempat model disimpan, seperti /models/DeepSeek-R1-Distill-Qwen-7B.

    Tabel berikut menjelaskan konfigurasi dasar untuk PVC contoh.

    Item konfigurasi

    Deskripsi

    Tipe Klaim Penyimpanan

    OSS

    Nama

    llm-model

    Mode Alokasi

    Pilih PV yang sudah ada.

    PV yang Ada

    Klik tautan untuk memilih PV yang sudah ada, lalu pilih PV yang telah Anda buat.

    Contoh kubectl

    Berikut ini adalah contoh file YAML:

    apiVersion: v1
    kind: Secret
    metadata:
      name: oss-secret
    stringData:
      akId: <your-oss-ak> # ID AccessKey untuk mengakses OSS.
      akSecret: <your-oss-sk> # Rahasia AccessKey untuk mengakses OSS.
    ---
    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> # Nama bucket.
          url: <your-bucket-endpoint> # Titik akhir, seperti oss-cn-hangzhou-internal.aliyuncs.com.
          otherOpts: "-o umask=022 -o max_stat_cache_size=0 -o allow_other"
          path: <your-model-path> # Dalam contoh ini, jalurnya adalah /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

Langkah 2: Men-deploy layanan inferensi

  1. Jalankan perintah berikut untuk memulai layanan inferensi bernama deepseek.

    arena serve kserve \
        --name=deepseek \
        --image=kube-ai-registry.cn-shanghai.cr.aliyuncs.com/kube-ai/vllm:v0.6.6 \
        --gpus=1 \
        --cpu=4 \
        --memory=12Gi \
        --data=llm-model:/models/DeepSeek-R1-Distill-Qwen-7B \
        "vllm serve /models/DeepSeek-R1-Distill-Qwen-7B --port 8080 --trust-remote-code --served-model-name deepseek-r1 --max-model-len 32768 --gpu-memory-utilization 0.95 --enforce-eager"

    Tabel berikut menjelaskan parameter-parameter tersebut.

    Parameter

    Wajib

    Deskripsi

    --name

    Ya

    Nama layanan inferensi yang akan dikirimkan. Nama harus unik secara global.

    --image

    Ya

    Alamat citra layanan inferensi.

    --gpus

    Tidak

    Jumlah GPU yang dibutuhkan oleh layanan inferensi. Nilai default adalah 0.

    --cpu

    Tidak

    Jumlah CPU yang dibutuhkan oleh layanan inferensi.

    --memory

    Tidak

    Jumlah memori yang dibutuhkan oleh layanan inferensi.

    --data

    Tidak

    Jalur model layanan. Dalam topik ini, model ditentukan sebagai PV llm-model yang Anda buat pada langkah sebelumnya. PV dipasang ke direktori /models/ di dalam kontainer.

    Keluaran yang diharapkan:

    inferenceservice.serving.kserve.io/deepseek created
    INFO[0003] The Job deepseek has been submitted successfully
    INFO[0003] You can run `arena serve get deepseek --type kserve -n default` to check the job status

Langkah 3: Verifikasi layanan inferensi

  1. Jalankan perintah berikut untuk memeriksa status deployment layanan inferensi KServe.

    arena serve get deepseek

    Keluaran yang diharapkan:

    Name:       deepseek
    Namespace:  default
    Type:       KServe
    Version:    1
    Desired:    1
    Available:  1
    Age:        3m
    Address:    http://deepseek-default.example.com
    Port:       :80
    GPU:        1
    
    
    Instances:
      NAME                                 STATUS   AGE  READY  RESTARTS  GPU  NODE
      ----                                 ------   ---  -----  --------  ---  ----
      deepseek-predictor-7cd4d568fd-fznfg  Running  3m   1/1    0         1    cn-beijing.172.16.1.77

    Keluaran tersebut menunjukkan bahwa layanan inferensi KServe telah dideploy.

  2. Jalankan perintah berikut untuk menggunakan alamat IP gerbang NGINX Ingress guna mengakses layanan inferensi.

    # Mendapatkan alamat IP NGINX Ingress.
    NGINX_INGRESS_IP=$(kubectl -n kube-system get svc nginx-ingress-lb -ojsonpath='{.status.loadBalancer.ingress[0].ip}')
    # Mendapatkan hostname layanan inferensi.
    SERVICE_HOSTNAME=$(kubectl get inferenceservice deepseek -o jsonpath='{.status.url}' | cut -d "/" -f 3)
    # Mengirim permintaan untuk mengakses layanan inferensi.
    curl -H "Host: $SERVICE_HOSTNAME" -H "Content-Type: application/json" http://$NGINX_INGRESS_IP:80/v1/chat/completions -d '{"model": "deepseek-r1", "messages": [{"role": "user", "content": "Say this is a test!"}], "max_tokens": 512, "temperature": 0.7, "top_p": 0.9, "seed": 10}'

    Keluaran yang diharapkan:

    {"id":"chatcmpl-0fe3044126252c994d470e84807d4a0a","object":"chat.completion","created":1738828016,"model":"deepseek-r1","choices":[{"index":0,"message":{"role":"assistant","content":"<think>\n\n</think>\n\nIt seems like you're testing or sharing some information. How can I assist you further? If you have any questions or need help with something, feel free to ask!","tool_calls":[]},"logprobs":null,"finish_reason":"stop","stop_reason":null}],"usage":{"prompt_tokens":9,"total_tokens":48,"completion_tokens":39,"prompt_tokens_details":null},"prompt_logprobs":null}

Observabilitas

Observabilitas untuk layanan inferensi LLM di lingkungan produksi sangat penting untuk menemukan dan menyelesaikan masalah secara proaktif. Framework vLLM menyediakan banyak metrik inferensi LLM. Untuk informasi selengkapnya, lihat dokumen Metrik. KServe juga menyediakan metrik untuk membantu memantau kinerja dan kesehatan layanan model. Kemampuan ini diintegrasikan ke dalam Arena. Anda dapat menambahkan parameter --enable-prometheus=true saat mengirimkan aplikasi untuk mengaktifkannya.

arena serve kserve \
    --name=deepseek \
    --image=kube-ai-registry.cn-shanghai.cr.aliyuncs.com/kube-ai/vllm:v0.6.6 \
    --gpus=1 \
    --cpu=4 \
    --memory=12Gi \
    --enable-prometheus=true \
    --data=llm-model:/models/DeepSeek-R1-Distill-Qwen-7B \
    "vllm serve /models/DeepSeek-R1-Distill-Qwen-7B --port 8080 --trust-remote-code --served-model-name deepseek-r1 --max-model-len 32768 --gpu-memory-utilization 0.95 --enforce-eager"

Anda dapat menggunakan Dasbor Grafana untuk memantau layanan inferensi LLM yang dideploy dengan vLLM. Untuk melakukannya, impor model JSON Grafana vLLM ke Grafana, lalu buat dasbor observabilitas untuk layanan inferensi LLM. Anda dapat memperoleh model JSON dari situs resmi vLLM. Tampilan dasbor yang dikonfigurasi sebagai berikut:

image

Prosedur mengimpor dasbor Grafana

Mengimpor dasbor

  1. Masuk ke Konsol ARMS.

  2. Di panel navigasi kiri, klik Integration Management.

  3. Pada tab Connected Environments, pilih Container Environment, cari lingkungan berdasarkan nama kluster ACK, lalu klik lingkungan target.

    image

  4. Pada tab Manajemen Komponen, salin dan simpan Cluster ID, lalu klik Dashboard Directory.

    image

  5. Di sebelah kanan tab Dashboards, klik tombol Import.

    image

  6. Salin isi file grafana.json, tempelkan ke area Import via panel json, lalu klik tombol Load.

    Catatan

    Anda juga dapat mengimpor dasbor dengan mengunggah file JSON.

    image

  7. Pertahankan pengaturan default dan klik Import untuk mengimpor dasbor observabilitas layanan inferensi LLM.

Verifikasi data dasbor

  1. Cari sumber data menggunakan ID kluster yang disimpan atau ID instans Prometheus, lalu pilih sumber data target.

    image

  2. Kirim beberapa permintaan untuk mengakses layanan inferensi guna mensimulasikan lalu lintas layanan dan memverifikasi data pada dasbor observabilitas layanan inferensi LLM, seperti Token Throughput.

    image

Skalabilitas Elastis

Saat men-deploy dan mengelola layanan model KServe, Anda mungkin menghadapi fluktuasi beban dinamis. KServe menggunakan Horizontal Pod Autoscaler (HPA) Kubernetes dan komponen ack-alibaba-cloud-metrics-adapter dari ACK untuk secara otomatis menyesuaikan jumlah pod layanan model berdasarkan pemanfaatan CPU, memori, dan GPU, serta metrik kinerja khusus, guna memastikan stabilitas dan efisiensi layanan. Untuk informasi selengkapnya, lihat Mengonfigurasi penskalaan otomatis untuk layanan.

Akselerasi Model

Dengan perkembangan teknologi, ukuran model yang digunakan dalam aplikasi AI semakin meningkat. Saat menarik file besar dari layanan penyimpanan seperti Object Storage Service (OSS) dan Penyimpanan File NAS (NAS), masalah seperti latensi tinggi atau cold start dapat terjadi. Anda dapat menggunakan Fluid untuk secara signifikan mempercepat kecepatan pemuatan model dan mengoptimalkan kinerja layanan inferensi, terutama layanan inferensi berbasis KServe. Untuk informasi selengkapnya, lihat Menggunakan Fluid untuk akselerasi model.

Rilis Bertahap

Rilis bertahap merupakan strategi penting di lingkungan produksi untuk memastikan stabilitas bisnis dan meminimalkan risiko yang terkait dengan perubahan. ACK mendukung berbagai kebijakan rilis bertahap, termasuk pendekatan berbasis persentase lalu lintas dan berbasis header permintaan. Untuk informasi selengkapnya, lihat Menerapkan rilis bertahap untuk layanan inferensi.

Inferensi Berbagi GPU

Model DeepSeek-R1-Distill-Qwen-7B hanya membutuhkan 14 GB Memori GPU. Jika Anda menggunakan GPU berkapasitas lebih tinggi, pertimbangkan untuk menggunakan teknologi inferensi berbagi GPU guna meningkatkan pemanfaatan GPU. Teknologi ini mempartisi GPU sehingga beberapa layanan inferensi dapat berbagi GPU tersebut, yang meningkatkan pemanfaatan GPU secara keseluruhan. Untuk informasi selengkapnya, lihat Men-deploy layanan inferensi berbagi GPU.

Referensi