全部产品
Search
文档中心

Container Compute Service:Gunakan daya komputasi GPU ACS untuk menerapkan layanan inferensi model terdistribusi berdasarkan versi penuh DeepSeek

更新时间:Jul 02, 2025

Container Compute Service (ACS) tidak memerlukan pengetahuan mendalam tentang perangkat keras yang mendasarinya atau pengelolaan node yang dipercepat GPU. Semua konfigurasi siap pakai. ACS mudah diterapkan dan ditagih dengan metode penagihan bayar sesuai pemakaian. Ini cocok untuk layanan inferensi LLM, yang dapat secara efisien mengurangi biaya inferensi. DeepSeek-R1 memiliki ratusan miliar parameter. Beberapa GPU mandiri tidak mampu memuat atau menjalankan DeepSeek-R1 dengan performa 100%. Kami merekomendasikan menggunakan solusi penyebaran terdistribusi berdasarkan dua atau lebih instans kontainer untuk menjamin performa model besar dan meningkatkan throughput mereka. Topik ini menjelaskan cara menggunakan daya komputasi ACS untuk menerapkan layanan inferensi terdistribusi berdasarkan versi penuh DeepSeek.

Informasi latar belakang

DeepSeek-R1

DeepSeek-R1 adalah model inferensi generasi pertama yang disediakan oleh DeepSeek. Model ini dirancang untuk meningkatkan performa inferensi LLM melalui pembelajaran yang ditingkatkan secara besar-besaran. Statistik menunjukkan bahwa DeepSeek-R1 unggul dibandingkan model sumber tertutup lainnya dalam inferensi matematis dan kompetisi pemrograman. Performanya bahkan mencapai atau melampaui seri OpenAI-01 di beberapa sektor. Performa DeepSeek-R1 juga sangat baik di sektor-sektor terkait pengetahuan, seperti kreativitas, penulisan, dan tanya jawab. Untuk informasi lebih lanjut tentang DeepSeek, lihat Repositori GitHub DeepSeek AI.

vLLM

vLLM adalah kerangka layanan inferensi LLM berperforma tinggi dan mudah digunakan. vLLM mendukung sebagian besar LLM yang paling umum digunakan, termasuk model Qwen. vLLM didukung oleh teknologi seperti optimasi PagedAttention, pengelompokan berkelanjutan, dan kuantifikasi model untuk sangat meningkatkan efisiensi inferensi LLM. Untuk informasi lebih lanjut tentang kerangka vLLM, lihat Repositori GitHub vLLM.

ACS

ACS dirilis pada tahun 2023. ACS fokus pada penyampaian daya komputasi kontainer generasi berikutnya yang inklusif, mudah digunakan, elastis, dan fleksibel secara konsisten. ACS menyediakan daya komputasi umum dan heterogen yang sesuai dengan spesifikasi Kubernetes. Ini menyediakan sumber daya komputasi kontainer tanpa server dan menghilangkan kebutuhan untuk khawatir tentang pemeliharaan node dan kluster. Anda dapat mengintegrasikan penjadwalan, runtime kontainer, penyimpanan, dan kemampuan jaringan dengan ACS untuk mengurangi kompleksitas O&M Kubernetes dan meningkatkan elastisitas serta fleksibilitas daya komputasi kontainer. Dengan metode penagihan bayar sesuai pemakaian, instans elastis, dan kemampuan fleksibel, ACS dapat sangat mengurangi biaya sumber daya. Dalam skenario inferensi LLM, ACS dapat mempercepat pemuatan data dan gambar untuk lebih mengurangi waktu peluncuran model dan biaya sumber daya.

LeaderWorkerSet (LWS)

LWS adalah jenis beban kerja baru yang diajukan oleh SIG Kubernetes. Perbedaan antara LWS dan beban kerja asli Kubernetes lainnya, termasuk Deployments dan StatefulSets, adalah bahwa LWS memperlakukan sekelompok pod sebagai replika, bukan satu pod. Saat replika diperluas, semua pod dalam replika tersebut diperluas. Pod dalam replika berfungsi sebagai pod pemimpin dan pekerja. LWS cocok untuk menjalankan pekerjaan inferensi AI atau pembelajaran mesin yang didistribusikan di beberapa instans. Untuk informasi lebih lanjut tentang LWS, lihat Repositori GitHub LWS.

Fluid

Fluid memungkinkan observabilitas, penskalaan otomatis, dan portabilitas dataset dengan mengelola dan menjadwalkan JindoRuntime. Anda dapat menggunakan Fluid untuk mempercepat akses model. Fluid menggunakan cache untuk mempercepat akses ke model besar. Misalnya, 10 instans layanan inferensi diluncurkan secara bersamaan. Bandwidth yang tersedia untuk setiap instans untuk menarik data dari OSS terbatas. Akibatnya, data ditarik dengan penundaan yang tidak dapat diabaikan. Anda dapat memperluas sistem penyimpanan dasar ke kluster ACS untuk memanfaatkan bandwidth node cache terdistribusi. Ini dapat sangat mengurangi waktu pemuatan model dan membuat bisnis Anda lebih elastis.

Ikhtisar solusi

Pemisahan model

DeepSeek-R1 memiliki 671 miliar parameter. Setiap GPU dapat menyediakan paling banyak 96 GB memori, yang tidak cukup untuk memuat seluruh model. Untuk menyelesaikan masalah ini, Anda perlu memisahkan model. Dalam contoh ini, model diterapkan di dua instans kontainer yang dipercepat GPU. Model dipisahkan menggunakan paralelisme model (PP=2) dan paralelisme data (TP=8). Gambar berikut menunjukkan bagaimana model dipisahkan.

image

Paralelisme model (PP=2) membagi model menjadi dua fase. Setiap fase berjalan pada instans kontainer yang dipercepat GPU. Misalnya, Model M dibagi menjadi M1 dan M2. M1 berjalan pada instans kontainer GPU pertama dan meneruskan hasil ke M2 yang berjalan pada instans kontainer GPU kedua.

Paralelisme data (TP=8) mengalokasikan operasi komputasi di setiap fase (M1 atau M2) ke delapan GPU. Misalnya, dalam fase M1, data input dibagi menjadi delapan bagian dan dialokasikan ke delapan GPU. Setiap GPU memproses sebuah bagian dan kemudian sistem menggabungkan hasil komputasi dari delapan GPU.

Arsitektur terdistribusi

Solusi ini menggunakan ACS untuk dengan cepat menerapkan layanan inferensi terdistribusi berdasarkan versi penuh DeepSeek. Ini menggunakan vLLM dan Ray untuk menerapkan model DeepSeek-R1 dalam arsitektur terdistribusi. Solusi ini juga menggunakan LWS untuk mengelola penyebaran pemimpin dan pekerja untuk DeepSeek, dan menggunakan cache terdistribusi yang disediakan oleh Fluid untuk mempercepat pemuatan model dalam kluster ACS. vLLM diterapkan di dua pod ACS yang dipercepat GPU. Setiap pod memiliki delapan GPU. Setiap pod berfungsi sebagai grup Ray untuk meningkatkan throughput keseluruhan dan tingkat konkurensi. Setiap grup Ray terdiri dari kepala Ray dan pekerja Ray. Anda dapat memisahkan model sesuai. Perhatikan bahwa nilai variabel tensor-parallel-size dan LWS_GROUP_SIZE dalam template YAML bervariasi tergantung pada arsitektur terdistribusi.

Prasyarat

Spesifikasi GPU yang dipercepat dan perkiraan biaya

Spesifikasi instans GPU yang dipercepat ACS yang disarankan untuk penyebaran dua atau lebih instans: 8 GPU (96 GiB memori per GPU), 64 vCPU, dan 512 GiB memori. Anda juga dapat merujuk ke Tabel spesifikasi yang disarankan dan Model GPU dan spesifikasi. Untuk informasi lebih lanjut tentang penagihan instans GPU yang dipercepat ACS, lihat Ikhtisar penagihan.

Catatan
  • Pastikan bahwa spesifikasi instans GPU yang dipercepat ACS sesuai dengan Logika penyesuaian spesifikasi pod ACS.

  • Secara default, pod ACS menyediakan 30 GiB EphemeralStorage gratis. Gambar inferensi registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/vllm:v0.7.2 yang digunakan dalam contoh ini berukuran 9,5 GiB. Jika Anda memerlukan lebih banyak ruang penyimpanan, sesuaikan ukuran EphemeralStorage. Untuk informasi lebih lanjut, lihat Tambahkan EphemeralStorage.

Prosedur

Langkah 1: Persiapkan file model DeepSeek-R1

LLM memerlukan banyak ruang disk untuk menyimpan file model. Kami merekomendasikan Anda membuat volume NAS atau OSS untuk menyimpan file model secara permanen. Dalam contoh ini, OSS digunakan.

Catatan

Untuk mempercepat pengunduhan dan pengunggahan file, Anda dapat mengajukan tiket untuk menyalin file ke bucket OSS Anda.

  1. Jalankan perintah berikut untuk mengunduh model DeepSeek-R1 dari ModelScope.

    Catatan

    Periksa apakah plug-in git-lfs telah diinstal. Jika belum, jalankan yum install git-lfs atau apt-get install git-lfs untuk menginstalnya. Untuk informasi lebih lanjut, lihat Instal git-lfs.

    git lfs install
    GIT_LFS_SKIP_SMUDGE=1 git clone https://www.modelscope.cn/deepseek-ai/DeepSeek-R1.git
    cd DeepSeek-R1/
    git lfs pull
  2. Buat direktori OSS dan unggah file model ke direktori tersebut.

    Catatan

    Untuk menginstal dan menggunakan ossutil, lihat Instal ossutil.

    ossutil mkdir oss://<your-bucket-name>/models/DeepSeek-R1
    ossutil cp -r ./DeepSeek-R1 oss://<your-bucket-name>/models/DeepSeek-R1
  3. Anda dapat menggunakan metode berikut untuk memuat model dari OSS.

    1. Gunakan pasangan PVC dan PV untuk memasang model: Metode ini cocok untuk model kecil. Gunakan metode ini jika aplikasi Anda tidak perlu memuat model dengan cepat atau meluncurkan pod.

      Gunakan konsol

      Tabel berikut menjelaskan parameter dasar yang digunakan untuk membuat PV.

      Parameter

      Deskripsi

      Jenis PV

      OSS

      Nama Volume

      llm-model

      Sertifikat Akses

      Tentukan ID AccessKey dan Rahasia AccessKey yang digunakan untuk mengakses bucket OSS.

      ID Bucket

      Pilih bucket OSS yang Anda buat pada langkah sebelumnya.

      Jalur OSS

      Pilih jalur model, seperti /models/DeepSeek-R1.

      Tabel berikut menjelaskan parameter dasar yang digunakan untuk membuat PVC.

      Parameter

      Deskripsi

      Jenis PVC

      OSS

      Nama

      llm-model

      Mode Alokasi

      Dalam contoh ini, Existing Volumes dipilih.

      Volumes yang Ada

      Klik Existing Volumes dan pilih PV yang Anda buat.

      Gunakan kubectl

      Blok kode berikut menunjukkan template YAML:

      apiVersion: v1
      kind: Secret
      metadata:
        name: oss-secret
      stringData:
        akId: <your-oss-ak> # ID AccessKey yang digunakan untuk mengakses bucket OSS.
        akSecret: <your-oss-sk> # Rahasia AccessKey yang digunakan untuk mengakses bucket 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 OSS.
            url: <your-bucket-endpoint> # Endpoint, seperti oss-cn-hangzhou-internal.aliyuncs.com.
            otherOpts: "-o umask=022 -o max_stat_cache_size=0 -o allow_other"
            path: <your-model-path> # Jalur model, seperti /models/DeepSeek-R1/ dalam contoh ini.
      ---
      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        name: llm-model
      spec:
        accessModes:
          - ReadOnlyMany
        resources:
          requests:
            storage: 30Gi
        selector:
          matchLabels:
            alicloud-pvname: llm-model
    2. Gunakan Fluid untuk mempercepat pemuatan model: Metode ini cocok untuk model besar. Gunakan metode ini jika aplikasi Anda perlu memuat model dengan cepat atau meluncurkan pod. Untuk informasi lebih lanjut, lihat Gunakan Fluid untuk mempercepat akses data.

      1. Gunakan Helm untuk menginstal komponen ack-fluid dari pasar ACS. Versi komponen harus 1.0.11-* atau lebih baru. Untuk informasi lebih lanjut, lihat Gunakan Helm untuk membuat aplikasi.

      2. Aktifkan mode istimewa untuk pod ACS. Untuk mengaktifkan mode ini, ajukan tiket.

      3. Buat Secret untuk mengakses OSS.

        apiVersion: v1
        kind: Secret
        metadata:
          name: mysecret
        stringData:
          fs.oss.accessKeyId: xxx
          fs.oss.accessKeySecret: xxx

        fs.oss.accessKeyId dan fs.oss.accessKeySecret menentukan ID AccessKey dan Rahasia AccessKey yang digunakan untuk mengakses OSS.

      4. Buat dataset dan JindoRuntime.

        apiVersion: data.fluid.io/v1alpha1
        kind: Dataset
        metadata:
          name: deepseek
        spec:
          mounts:
            - mountPoint:  oss://<your-bucket-name>       # Ganti <your-bucket-name> dengan nilai sebenarnya.
              options:
                fs.oss.endpoint: <your-bucket-endpoint>    # Ganti <your-bucket-endpoint> dengan nilai sebenarnya.
              name: deepseek
              path: "/"
              encryptOptions:
                - name: fs.oss.accessKeyId
                  valueFrom:
                    secretKeyRef:
                      name: mysecret
                      key: fs.oss.accessKeyId
                - name: fs.oss.accessKeySecret
                  valueFrom:
                    secretKeyRef:
                      name: mysecret
                      key: fs.oss.accessKeySecret
        ---
        apiVersion: data.fluid.io/v1alpha1
        kind: JindoRuntime
        metadata:
          name: deepseek
        spec:
          replicas: 16    # Modifikasi parameter sesuai kebutuhan.
          master:
            podMetadata:
              labels:
                alibabacloud.com/compute-class: performance
                alibabacloud.com/compute-qos: default
          worker:
            podMetadata:
              labels:
                alibabacloud.com/compute-class: performance
                alibabacloud.com/compute-qos: default
              annotations:
                kubernetes.io/resource-type: serverless
            resources:
              requests:
                cpu: 16
                memory: 128Gi
              limits:
                cpu: 16
                memory: 128Gi
          tieredstore:
            levels:
              - mediumtype: MEM
                path: /dev/shm
                volumeType: emptyDir
                ## Modifikasi pengaturan sesuai kebutuhan.
                quota: 128Gi
                high: "0.99"
                low: "0.95"

        Jalankan perintah kubectl get pod | grep jindo untuk memeriksa apakah pod berada dalam status Running. Hasil yang diharapkan:

        deepseek-jindofs-master-0    1/1     Running   0          3m29s
        deepseek-jindofs-worker-0    1/1     Running   0          2m52s
        deepseek-jindofs-worker-1    1/1     Running   0          2m52s
        ...
      5. Buat pekerjaan DataLoad untuk menyimpan model dalam cache.

        apiVersion: data.fluid.io/v1alpha1
        kind: DataLoad
        metadata:
          name: deepseek
        spec:
          dataset:
            name: deepseek
            namespace: default
          loadMetadata: true
      6. Jalankan perintah berikut untuk menanyakan status cache.

        kubectl get dataload

        Hasil yang diharapkan:

        NAME       DATASET    PHASE       AGE     DURATION
        deepseek   deepseek   Executing   4m30s   Unfinished

        Jika PHASE menampilkan Executing, caching sedang berlangsung. Tunggu sekitar 20 menit dan jalankan perintah lagi. Jika bidang tersebut menampilkan Complete, model telah disimpan dalam cache. Anda dapat menjalankan perintah kubectl logs $(kubectl get pods --selector=job-name=deepseek-loader-job -o jsonpath='{.items[0].metadata.name}') | grep progress untuk menanyakan nama pekerjaan dan mencetak log untuk melihat kemajuannya.

        Parameter Fluid DataLoad

        Parameter

        Deskripsi

        Contoh

        Nama

        Nama pekerjaan DataLoad.

        deepseek

        Dataset

        Nama dataset.

        deepseek

        Fase

        Status pekerjaan DataLoad. Complete menunjukkan bahwa pekerjaan telah selesai.

        Executing atau Complete

        Usia

        Waktu pembuatan pekerjaan DataLoad.

        4m30s

        Durasi

        Durasi pekerjaan DataLoad.

        Unfinished dan 16m29s

      7. Jalankan perintah berikut untuk memeriksa dataset.

        kubectl get datasets

        Hasil yang diharapkan:

        NAME       UFS TOTAL SIZE   CACHED    CACHE CAPACITY   CACHED PERCENTAGE   PHASE   AGE
        deepseek   1.25TiB          1.25TiB   2.00TiB          100.0%              Bound   21h

        Parameter dataset Fluid

        Parameter

        Deskripsi

        Contoh

        Nama

        Nama dataset.

        deepseek

        Ukuran Total UFS

        Ukuran dataset.

        1.25TiB

        Tersimpan dalam Cache

        Ukuran data yang tersimpan dalam cache.

        1.25TiB

        Kapasitas Cache

        Ukuran total cache.

        2.00TiB

        Persentase Tersimpan dalam Cache

        Persentase data yang tersimpan dalam cache.

        100.0%

        Fase

        Status dataset. Bound menunjukkan bahwa dataset terkait.

        Bound

        Usia

        Waktu pembuatan dataset.

        21h

Langkah 2: Terapkan model berdasarkan daya komputasi GPU ACS

  1. Gunakan Helm untuk menginstal komponen lws dari pasar ACS. Untuk informasi lebih lanjut, lihat Gunakan Helm untuk membuat aplikasi.

  2. Buat LeaderWorkerSet untuk menerapkan model.

    Catatan
    • Ganti variabel dalam alibabacloud.com/gpu-model-series: <example-model> dengan model GPU aktual yang didukung oleh ACS. Untuk informasi lebih lanjut tentang model GPU yang didukung oleh ACS, konsultasikan dengan PDSA atau ajukan tiket.

    • Dibandingkan dengan TCP/IP, RDMA berperforma tinggi memiliki fitur zero copy dan kernel bypass untuk membantu menghindari penyalinan file dan pergantian konteks yang sering. RDMA dapat mengurangi latensi dan penggunaan CPU serta meningkatkan throughput. ACS memungkinkan Anda menambahkan label alibabacloud.com/hpn-type: "rdma" untuk menggunakan RDMA. Untuk informasi lebih lanjut tentang model GPU yang mendukung RDMA, konsultasikan dengan PDSA atau ajukan tiket.

    • Untuk menggunakan Fluid untuk memuat model, ubah dua parameter claimName dalam PVC menjadi nama dataset Fluid.

    • Nilai variabel tensor-parallel-size dan LWS_GROUP_SIZE bervariasi tergantung pada arsitektur terdistribusi.

    Contoh penerapan standar

    apiVersion: leaderworkerset.x-k8s.io/v1
    kind: LeaderWorkerSet
    metadata:
      name: deepseek-r1-671b-fp8-distrubution
    spec:
      replicas: 1
      leaderWorkerTemplate:
        size: 2 #Jumlah total pemimpin dan pekerja.
        restartPolicy: RecreateGroupOnPodRestart
        leaderTemplate:
          metadata:
            labels: 
              role: leader
              alibabacloud.com/compute-class: gpu  #Tentukan daya komputasi GPU. 
              alibabacloud.com/compute-qos: default #Tentukan kelas QoS ACS.
              alibabacloud.com/gpu-model-series: <example-model> ##Tentukan model GPU.
          spec:
            volumes:
              - name: llm-model
                persistentVolumeClaim:
                  ## Jika Fluid digunakan, tentukan nama dataset Fluid, seperti deepseek.
                  claimName: llm-model
              - name: shm
                emptyDir:
                  medium: Memory
                  sizeLimit: 32Gi
            containers:
              - name: deepseek-r1-671b-leader
                image: registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/vllm:v0.7.2
                env:
                  - name: NCCL_SOCKET_IFNAME #Tentukan NIC.
                    value: eth0
                command:
                  - sh
                  - -c
                  - "/vllm-workspace/ray_init.sh leader --ray_cluster_size=$(LWS_GROUP_SIZE);vllm serve /models/DeepSeek-R1/ --port 8000 --trust-remote-code --served-model-name ds --max-model-len 2048 --gpu-memory-utilization 0.95 --tensor-parallel-size 8 --pipeline-parallel-size 2 --enforce-eager"
    #Atur tensor-parallel-size ke jumlah GPU yang disediakan oleh setiap pod pemimpin atau pekerja.
                resources:
                  limits:
                    nvidia.com/gpu: "8"
                    cpu: "64"
                    memory: 512G
                  requests:
                    nvidia.com/gpu: "8"
                    cpu: "64"
                    memory: 512G           
                ports:
                  - containerPort: 8000
                volumeMounts:
                  - mountPath: /models/DeepSeek-R1
                    name: llm-model
                  - mountPath: /dev/shm
                    name: shm
        workerTemplate:
          metadata:
            labels: 
              alibabacloud.com/compute-class: gpu  #Tentukan daya komputasi GPU. 
              alibabacloud.com/compute-qos: default #Tentukan kelas QoS ACS.
              alibabacloud.com/gpu-model-series: <example-model> ##Tentukan model GPU.
          spec:
            volumes:
              - name: llm-model
                persistentVolumeClaim:
                  ## Jika Fluid digunakan, tentukan nama dataset Fluid, seperti deepseek.
                  claimName: llm-model
              - name: shm
                emptyDir:
                  medium: Memory
                  sizeLimit: 32Gi
            containers:
              - name: deepseek-r1-671b-worker
                image: registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/vllm:v0.7.2
                env:
                  - name: NCCL_SOCKET_IFNAME #Tentukan NIC.
                    value: eth0
                command:
                  - sh
                  - -c
                  - "/vllm-workspace/ray_init.sh worker --ray_address=$(LWS_LEADER_ADDRESS)"
                resources:
                  limits:
                    nvidia.com/gpu: "8"
                    cpu: "64"
                    memory: 512G
                  requests:
                    nvidia.com/gpu: "8"
                    cpu: "64"
                    memory: 512G
                ports:
                  - containerPort: 8000
                volumeMounts:
                  - mountPath: /models/DeepSeek-R1
                    name: llm-model
                  - mountPath: /dev/shm
                    name: shm

    Contoh akselerasi RDMA

    Jika gambar dasar sumber terbuka, seperti vLLM, digunakan, tambahkan parameter env berikut ke file YAML.

    Nama

    Nilai

    NCCL_SOCKET_IFNAME

    eth0

    NCCL_IB_TC

    136

    NCCL_IB_SL

    5

    NCCL_IB_GID_INDEX

    3

    NCCL_DEBUG

    INFO

    NCCL_IB_HCA

    mlx5

    NCCL_NET_PLUGIN

    none

    apiVersion: leaderworkerset.x-k8s.io/v1
    kind: LeaderWorkerSet
    metadata:
      name: deepseek-r1-671b-fp8-distrubution
    spec:
      replicas: 1
      leaderWorkerTemplate:
        size: 2 #Jumlah total pemimpin dan pekerja.
        restartPolicy: RecreateGroupOnPodRestart
        leaderTemplate:
          metadata:
            labels: 
              role: leader
              alibabacloud.com/compute-class: gpu  #Tentukan daya komputasi GPU. 
              alibabacloud.com/compute-qos: default #Tentukan kelas QoS ACS.
              alibabacloud.com/gpu-model-series: <example-model> ##Tentukan model GPU.
              # Jalankan aplikasi dalam jaringan RDMA berperforma tinggi. Ajukan tiket untuk mendapatkan daftar model GPU yang mendukung RDMA.
              alibabacloud.com/hpn-type: "rdma"
          spec:
            volumes:
              - name: llm-model
                persistentVolumeClaim:
                  ## Jika Fluid digunakan, tentukan nama dataset Fluid, seperti deepseek.
                  claimName: llm-model
              - name: shm
                emptyDir:
                  medium: Memory
                  sizeLimit: 32Gi
            containers:
              - name: deepseek-r1-671b-leader
                image: registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/vllm:v0.7.2
                env:
                  - name: NCCL_SOCKET_IFNAME #Tentukan NIC.
                    value: eth0
                  - name: NCCL_IB_TC
                    value: "136"
                  - name: NCCL_IB_SL
                    value: "5"
                  - name: NCCL_IB_GID_INDEX
                    value: "3"
                  - name: NCCL_DEBUG
                    value: "INFO"
                  - name: NCCL_IB_HCA
                    value: "mlx5"
                  - name: NCCL_NET_PLUGIN
                    value: "none"                
                command:
                  - sh
                  - -c
                  - "/vllm-workspace/ray_init.sh leader --ray_cluster_size=$(LWS_GROUP_SIZE);vllm serve /models/DeepSeek-R1/ --port 8000 --trust-remote-code --served-model-name ds --max-model-len 2048 --gpu-memory-utilization 0.95 --tensor-parallel-size 8 --pipeline-parallel-size 2 --enforce-eager"
    #Atur tensor-parallel-size ke jumlah GPU yang disediakan oleh setiap pod pemimpin atau pekerja.
                resources:
                  limits:
                    nvidia.com/gpu: "8"
                    cpu: "64"
                    memory: 512G
                  requests:
                    nvidia.com/gpu: "8"
                    cpu: "64"
                    memory: 512G           
                ports:
                  - containerPort: 8000
                volumeMounts:
                  - mountPath: /models/DeepSeek-R1
                    name: llm-model
                  - mountPath: /dev/shm
                    name: shm
        workerTemplate:
          metadata:
            labels: 
              alibabacloud.com/compute-class: gpu  #Tentukan daya komputasi GPU. 
              alibabacloud.com/compute-qos: default #Tentukan kelas QoS ACS.
              alibabacloud.com/gpu-model-series: <example-model> ##Tentukan model GPU.
              # Jalankan aplikasi dalam jaringan RDMA berperforma tinggi. Ajukan tiket untuk mendapatkan daftar model GPU yang mendukung RDMA.
              alibabacloud.com/hpn-type: "rdma"
          spec:
            volumes:
              - name: llm-model
                persistentVolumeClaim:
                  ## Jika Fluid digunakan, tentukan nama dataset Fluid, seperti deepseek.
                  claimName: llm-model
              - name: shm
                emptyDir:
                  medium: Memory
                  sizeLimit: 32Gi
            containers:
              - name: deepseek-r1-671b-worker
                image: registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/vllm:v0.7.2
                env:
                  - name: NCCL_SOCKET_IFNAME #Tentukan NIC.
                    value: eth0
                  - name: NCCL_IB_TC
                    value: "136"
                  - name: NCCL_IB_SL
                    value: "5"
                  - name: NCCL_IB_GID_INDEX
                    value: "3"
                  - name: NCCL_DEBUG
                    value: "INFO"
                  - name: NCCL_IB_HCA
                    value: "mlx5"
                  - name: NCCL_NET_PLUGIN
                    value: "none"      
                command:
                  - sh
                  - -c
                  - "/vllm-workspace/ray_init.sh worker --ray_address=$(LWS_LEADER_ADDRESS)"
                resources:
                  limits:
                    nvidia.com/gpu: "8"
                    cpu: "64"
                    memory: 512G
                  requests:
                    nvidia.com/gpu: "8"
                    cpu: "64"
                    memory: 512G
                ports:
                  - containerPort: 8000
                volumeMounts:
                  - mountPath: /models/DeepSeek-R1
                    name: llm-model
                  - mountPath: /dev/shm
                    name: shm
  3. Buat Service untuk mengekspos layanan inferensi.

    apiVersion: v1
    kind: Service
    metadata:
      name: ds-leader
    spec:
      ports:
        - name: http
          port: 8000
          protocol: TCP
          targetPort: 8000
      selector:
        leaderworkerset.sigs.k8s.io/name: deepseek-r1-671b-fp8-distrubution
        role: leader
      type: ClusterIP

Langkah 3: Verifikasi layanan inferensi

  1. Jalankan kubectl port-forward untuk mengonfigurasi penerusan port antara lingkungan lokal dan layanan inferensi.

    Catatan

    Penerusan port yang disiapkan menggunakan kubectl port-forward tidak andal, aman, atau dapat diperluas di lingkungan produksi. Ini hanya untuk pengembangan dan debugging. Jangan gunakan perintah ini untuk menyiapkan penerusan port di lingkungan produksi. Untuk informasi lebih lanjut tentang solusi jaringan yang digunakan untuk produksi dalam kluster ACK, lihat Manajemen Ingress.

    kubectl port-forward svc/ds-leader 8000:8000

    Hasil yang diharapkan:

    Forwarding from 127.0.0.1:8000 -> 8000
    Forwarding from [::1]:8000 -> 8000
  2. Kirim permintaan ke layanan inferensi.

    curl http://localhost:8000/v1/chat/completions \
      -H "Content-Type: application/json" \
      -d '{
        "model": "ds",
        "messages": [
          {
            "role": "system", 
            "content": "Anda adalah asisten AI yang ramah."
          },
          {
            "role": "user",
            "content": "Silakan perkenalkan pembelajaran mendalam."
          }
        ],
        "max_tokens": 1024,
        "temperature": 0.7,
        "top_p": 0.9,
        "seed": 10
      }'

    Hasil yang diharapkan:

    {"id":"chatcmpl-4bc78b66e2a4439f8362bd434a60be57","object":"chat.completion","created":1739501401,"model":"ds","choices":[{"index":0,"message":{"role":"assistant","reasoning_content":null,"content":"OK. Saya harus memikirkan dengan hati-hati bagaimana menjawab pertanyaan ini. Pertama, saya harus menjelaskan definisi pembelajaran mendalam. Ini adalah cabang dari pembelajaran mesin, bukan? Lalu, saya perlu membandingkannya dengan metode pembelajaran mesin tradisional untuk menjelaskan keuntungan pembelajaran mendalam, seperti ekstraksi fitur otomatis. Mungkin perlu disebutkan jaringan saraf, terutama struktur jaringan saraf mendalam, seperti beberapa lapisan tersembunyi. \n\nSelanjutnya, kita harus membahas komponen inti pembelajaran mendalam, seperti fungsi aktivasi, fungsi loss, dan optimizer. Anda mungkin tidak terbiasa dengan istilah-istilah ini, jadi saya perlu menjelaskan secara singkat bagaimana setiap komponen bekerja. Misalnya, fungsi ReLU sebagai fungsi aktivasi, Adam sebagai optimizer, dan bagaimana fungsi loss cross entropy bekerja. \n\nKemudian, dalam sektor aplikasi, visi komputer dan pemrosesan bahasa alami cukup umum. Beberapa contoh lagi mungkin diperlukan, seperti pengenalan gambar dan penerjemahan mesin, yang jauh lebih mudah dipahami. Selain itu, pengguna mungkin tertarik pada skenario penggunaan, seperti sektor perawatan kesehatan dan keuangan. \n\nAdapun kerangka kerja populer, seperti TensorFlow dan PyTorch, mereka digunakan untuk membuat pembelajaran mendalam lebih mudah diimplementasikan. Ada juga pentingnya percepatan perangkat keras seperti GPU, yang menjelaskan mengapa pembelajaran mendalam berkembang begitu cepat sekarang. \n\nSelain itu, mungkin perlu membahas tantangan dan keterbatasan pembelajaran mendalam, seperti ketergantungan data, kebutuhan sumber daya komputasi yang tinggi, dan interpretasi yang buruk, sehingga pengguna dapat sepenuhnya memahami kelebihan dan kekurangannya. Mungkin juga perlu disebutkan beberapa arah perkembangan masa depan, seperti algoritma pelatihan yang efisien dan penelitian interpretasi. \n\nKebutuhan pengguna mungkin untuk memahami konsep dasar pembelajaran mendalam, dan mungkin memiliki latar belakang teknis, tetapi tidak terlalu mendalam. Mereka mungkin ingin dengan cepat memahami poin-poin utama dan aplikasi, jadi jawaban perlu terstruktur dengan jelas, fokus, tidak terlalu rinci secara teknis, tetapi tidak terlalu singkat. Perlu menyeimbangkan profesionalisme dan kemudahan pemahaman. \n\nHindari menggunakan terlalu banyak istilah, atau jelaskan sedikit ketika menggunakan istilah, seperti "jaringan saraf", "jaringan saraf konvolusional", dll. Mungkin pengguna adalah siswa atau praktisi yang baru memasuki profesi dan perlu dipahami oleh mereka dalam bahasa sederhana. Pada saat yang sama, berikan beberapa contoh untuk membantu mereka menghubungkan dengan aplikasi praktis, sehingga lebih mudah diingat. \n\nKita juga harus memperhatikan hubungan antara pembelajaran mendalam dan pembelajaran mesin, dan perlu secara jelas membedakan keduanya, yang menunjukkan bahwa pembelajaran mendalam termasuk dalam pembelajaran mesin, tetapi pada tingkat yang lebih dalam dan menangani masalah yang lebih kompleks. Algoritma backpropagation mungkin juga disebutkan sebagai salah satu teknik kunci untuk pelatihan. \n\nTerakhir, buatlah ringkasan, menekankan dampak dan potensi pembelajaran mendalam dan arah perkembangan masa depan, sehingga pengguna dapat memiliki pemahaman menyeluruh. Periksa apakah ada poin penting yang hilang, seperti struktur model umum seperti CNN dan RNN, yang mungkin juga perlu disebutkan secara singkat untuk menunjukkan keragaman. \n\nTerkadang pengguna mungkin tertarik pada prinsip, tetapi penting untuk tetap sederhana di sini, fokus pada gambaran keseluruhan daripada detail teknis mendalam. Pastikan logika jawaban lancar, dimulai dari definisi, hingga komponen inti, aplikasi, kerangka kerja, tantangan, dan arah masa depan. Struktur ini lebih masuk akal. \n</think>\n\nPembelajaran mendalam adalah cabang pembelajaran mesin yang bertujuan untuk mensimulasikan mekanisme pembelajaran otak manusia dengan membangun jaringan saraf multi-lapisan (disebut "dalam"). Ini banyak digunakan dalam Pengenalan Gambar, pemrosesan suara, Pemrosesan Bahasa Alami, dan bidang lainnya dengan secara otomatis mempelajari fitur dan pola kompleks dari sejumlah besar data. \n\n### Konsep Inti \n1. **Artificial Neural Network (ANN)**:\n   -Terdiri dari lapisan input, beberapa lapisan tersembunyi, dan lapisan output, masing-masing berisi beberapa neuron. \n   - Pemrosesan informasi dicapai dengan mensimulasikan aktivasi dan transmisi neuron. \n\n2. **Ekstraksi fitur otomatis**:\n   - Pembelajaran mesin tradisional bergantung pada desain fitur manual, sedangkan pembelajaran mendalam secara otomatis mengekstraksi fitur abstrak (seperti dari piksel ke tepi dan bentuk objek) data melalui jaringan multi-lapisan. \n\n3. **Komponen Utama**:\n   - **Fungsi aktivasi** (seperti ReLU dan Sigmoid): memperkenalkan non-linearitas untuk meningkatkan ekspresi model. \n   - **Fungsi loss** (misalnya cross entropy, mean square error): mengukur perbedaan antara nilai prediksi dan nilai sebenarnya. \n   - **Optimizer** (seperti SGD danAdam): mengoptimalkan parameter jaringan melalui backpropagation untuk meminimalkan loss. \n\n---\n\n### Model Típikal\n- **Convolutional Neural Network (CNN)**:  \n  Dirancang untuk gambar, fitur spasial diekstraksi melalui kernel konvolusi. Model klasik seperti ResNet dan VGG. \n- **Recurrent Neural Network (RNN)**:  \n  Memproses data urutan (teks, suara), memperkenalkan mekanisme memori, versi yang ditingkatkan seperti LSTM, GRU. \n- **Transformer**:  \n  Berdasarkan mekanisme self-attention, performa Pemrosesan Bahasa Alami (seperti seri BERT dan GPT) sangat ditingkatkan. \n\n---\n\n### Skenario Aplikasi\n- **Visi Komputer**: Pengenalan Wajah, analisis gambar medis (seperti deteksi lesi CT paru-paru). \n- **Pemrosesan Bahasa Alami**: Layanan pelanggan cerdas, pembuatan ringkasan dokumen, dan terjemahan (seperti DeepL). \n- **Teknologi Suara**: asisten suara (seperti Siri), pembuatan subtitle waktu nyata. \n- **Pembelajaran Penguatan**: AI game (AlphaGo), kontrol robot. \n\n---\n\n ### Keuntungan dan Tantangan \n- **Keuntungan**:\n -Mengotomatisasi pembelajaran fitur kompleks dan mengurangi intervensi manual. \n -Performanya jauh lebih baik dibandingkan metode tradisional dalam big data dan daya komputasi tinggi. \n- **Tantangan**:\n  -Bergantung pada sejumlah besar data berlabel (misalnya, puluhan ribu gambar medis berlabel). \n - Biaya pelatihan model tinggi (misalnya, biaya pelatihan GPT-3 melebihi puluhan juta dolar). \n  - Karakteristik "kotak hitam" menyebabkan interpretasi buruk dan aplikasi terbatas di area berisiko tinggi seperti perawatan kesehatan. \n\n---\n\n ### Alat dan Tren \n- **Kerangka Utama**:TensorFlow (ramah untuk penyebaran industri) dan PyTorch (pilihan utama untuk penelitian). \n- **Arah Penelitian**:\n -Model ringan (seperti MobileNet untuk perangkat seluler). \n -Pembelajaran mandiri (mengurangi ketergantungan pada data berlabel). \n -Peningkatan interpretasi (seperti memvisualisasikan dasar keputusan model). \n\nPembelajaran mendalam mendorong batas kecerdasan buatan, dari AI generatif (seperti Stable Diffusion untuk menghasilkan gambar) hingga mengemudi otonom, terus mengubah ekosistem teknologi. Perkembangan masa depannya mungkin mencapai terobosan dalam mengurangi biaya komputasi, meningkatkan efisiensi dan interpretasi.","tool_calls":[]},"logprobs":null,"finish_reason":"stop","stop_reason":null}],"usage":{"prompt_tokens":17,"total_tokens":1131,"completion_tokens":1114,"prompt_tokens_details":null},"prompt_logprobs":null}

    Parameter Model

    Bagian ini hanya menjelaskan parameter yang digunakan untuk memverifikasi layanan inferensi. Untuk parameter lainnya, lihat Referensi API DeepSeek.

    Parameter

    Deskripsi

    Contoh

    model

    Model.

    ds

    messages

    Daftar pesan.

    • role: peran yang memulai pesan.

    • content: isi pesan.

    -

    max_tokens

    Jumlah maksimum token Completion yang dihasilkan oleh model untuk permintaan. Nilai valid:

    • Bilangan bulat dari 1 hingga 8192.

    • Defaultnya adalah 4096 jika parameter max_tokens tidak ditentukan.

    1024

    temperature

    Suhu pengambilan sampel. Nilai lebih besar, seperti 1, menunjukkan tingkat keacakan yang lebih tinggi. Nilai lebih kecil, seperti 0,2, menunjukkan tingkat konsentrasi dan determinasi yang lebih tinggi. Nilai valid: 0 hingga 2.

    0.7

Referensi