All Products
Search
Document Center

Object Storage Service:Penyiaran model

Last Updated:Apr 03, 2026

Saat meluncurkan layanan inferensi AI pada beberapa node, fitur penyiaran model OSS Connector hanya memuat data model dari OSS pada satu node. Node lain kemudian menerima data tersebut melalui topologi berantai. Metode ini secara signifikan mengurangi trafik kembali ke sumber (back-to-source traffic) dan meningkatkan efisiensi distribusi model.

Cara kerja

Ketika beberapa node yang menjalankan layanan inferensi AI menarik file model dari OSS secara bersamaan, aktivitas unduh tersebut dapat memenuhi bandwidth egress sumber, menciptakan bottleneck performa yang berpotensi menyebabkan penundaan atau kegagalan saat startup. Masalah ini terutama terasa di wilayah dengan bandwidth egress OSS yang lebih rendah, di mana trafik back-to-source konkuren dapat sangat memengaruhi efisiensi penerapan.

Penyiaran model OSS Connector mengoptimalkan penerapan inferensi AI skala besar. Saat beberapa instans inferensi untuk model yang sama diluncurkan, hanya satu atau beberapa node saja yang memuat data model langsung dari OSS. Data tersebut kemudian didistribusikan ke node lain melalui topologi berantai. Dengan memanfaatkan sumber daya penyimpanan dan jaringan node, penyiaran model mengurangi trafik kembali ke sumber, meringankan beban sumber, serta meningkatkan efisiensi distribusi.

Penyiaran model OSS Connector menggunakan metode transport berantai, di mana file model diteruskan secara serial dari satu node ke node berikutnya. Setiap node hanya menerima dan meneruskan data sekali. Untuk transfer file model, satu aliran data (data stream) umumnya sudah cukup untuk memenuhi bandwidth jaringan sebagian besar tipe instans mainstream. Metode berantai ini menghindari bottleneck bandwidth yang dapat terjadi pada transport berbasis pohon (tree-based), di mana satu node harus mengirim data ke beberapa node downstream secara bersamaan.

OSS Connector melakukan preload file model dari OSS ke dalam buffer memori menggunakan strategi konkurensi tinggi, sehingga mesin inferensi dapat memuat model ke Memori GPU sesuai kebutuhan. Buffer tersebut dilepas setelah jeda waktu tertentu sejak inferensi selesai. Fitur penyiaran model memperluas mekanisme ini dengan memungkinkan buffer dibagikan lintas node. Fitur ini mengintegrasikan fungsionalitas DADI P2P dan hanya memerlukan layanan Redis atau Tair untuk discovery node dan manajemen metadata. Konfigurasi ini memungkinkan data yang telah dibuffer didistribusikan ke node lain. Dibandingkan dengan penerapan node tunggal, solusi ini hanya menambahkan logika pembagian buffer yang ringan sambil memanfaatkan sepenuhnya bandwidth egress node yang menganggur selama proses pemuatan model, sehingga menghasilkan metode pemuatan model terdistribusi yang hemat biaya dan efisien.

Catatan

Dengan penyiaran model, hanya satu aliran data yang ditarik dari OSS pada satu waktu untuk model tertentu. Hal ini secara signifikan mengurangi beban pada sumber OSS selama startup batch. Namun, jika performa sumber tetap menjadi bottleneck, Anda sebaiknya menggunakan fitur ini bersama OSS Accelerator atau versi cache terdistribusi dari DADI P2P.

Prasyarat

Konfigurasi database

Fitur penyiaran model memerlukan layanan Redis atau Tair untuk discovery node dan manajemen metadata. Anda harus mengonfigurasi database ini untuk menggunakan fitur tersebut.

Opsi 1: Beli dan konfigurasi Tair (Direkomendasikan)

Tair adalah layanan database cloud managed penuh dari Alibaba Cloud yang kompatibel dengan protokol Redis.

  1. Buat instans Tair. Untuk instruksi, lihat Ikhtisar quick start. Versi instans harus 6.0 atau lebih baru, dan Anda dapat menggunakan spesifikasi minimum.

  2. Konfigurasikan daftar putih untuk memastikan bahwa node inferensi dapat mengakses instans Tair.

  3. Anda akan memerlukan Connection Address, Port Number, Username, dan Password untuk mengonfigurasi penyiaran model.

Opsi 2: Deploy layanan Redis standalone

Sebagai alternatif, Anda dapat mendeploy layanan Redis sendiri di kluster Kubernetes.

Konfigurasi YAML berikut mendeploy layanan Redis dengan otentikasi Access Control List (ACL).

  1. Buat file konfigurasi ACL dan buat rahasia (secret) Kubernetes.

    # Buat konten ACL
    cat > users.acl << EOF
    user default off -@all
    user Username on >Password ~* &* +@all
    EOF
    
    # Buat secret
    kubectl create secret generic redis-acl-secret \
      --from-file=users.acl \
      --dry-run=client -o yaml | kubectl apply -f -
    Catatan

    Ganti Username dan Password dengan username dan password aktual Anda.

  2. Gunakan konfigurasi berikut untuk mendeploy layanan Redis dan deployment-nya.

    # redis-service.yaml
    apiVersion: v1
    kind: Service
    metadata:
      name: redis
    spec:
      selector:
        app: model-redis
      ports:
        - protocol: TCP
          port: 6379
          targetPort: 6379
    
    ---
    # redis-deployment.yaml
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: model-redis-deployment
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: model-redis
      template:
        metadata:
          labels:
            app: model-redis
        spec:
          containers:
          - name: redis
            image: mirrors-ssl.aliyuncs.com/redis:8.4.0
            ports:
            - containerPort: 6379
            command: ["redis-server"]
            args:
            - "--aclfile"
            - "/etc/redis/users.acl"
            - "--maxmemory"
            - "900mb"
            - "--maxmemory-policy"
            - "volatile-lru"
            - "--save"
            - ""
            - "--appendonly"
            - "no"
            - "--loglevel"
            - "notice"
            resources:
              requests:
                memory: "1Gi"
                cpu: "100m"
              limits:
                memory: "1Gi"
                cpu: "200m"
            volumeMounts:
            - name: acl-config
              mountPath: /etc/redis/users.acl
              subPath: users.acl
          volumes:
          - name: acl-config
            secret:
              secretName: redis-acl-secret
  3. Untuk mendeploy layanan Redis, jalankan perintah berikut.

    kubectl apply -f redis-service.yaml

Aktifkan penyiaran model

Tambahkan konfigurasi penyiaran model ke file konfigurasi OSS Connector di /etc/oss-connector/config.json.

{
  ...
  "broadcast": {
    "enableBroadcast": true,
    "tenant": "${P2P_KEY_PREFIX}",
    "db": {
      "host": "${P2P_REDIS_HOST}",
      "port": 6379,
      "username": "${P2P_REDIS_USERNAME}",
      "password": "${P2P_REDIS_PASSWD}"
    }
  },
  "bindPort": 19898
  ...
}

Tabel berikut menjelaskan parameter konfigurasi tersebut.

Parameter

Deskripsi

broadcast.enableBroadcast

Menentukan apakah penyiaran model diaktifkan. Atur nilai ini ke true untuk mengaktifkan fitur ini.

broadcast.tenant

Menentukan nama penyewa (tenant). Node dengan nama tenant yang sama dapat menggunakan penyiaran model. Kami merekomendasikan mengonfigurasi tenant unik untuk setiap layanan.

broadcast.db.host

Menentukan alamat koneksi layanan Redis atau Tair.

broadcast.db.port

Menentukan nomor port layanan Redis atau Tair. Nilai default-nya adalah 6379.

broadcast.db.username

Menentukan username untuk layanan Redis atau Tair.

broadcast.db.password

Menentukan password untuk layanan Redis atau Tair.

bindPort

Menentukan port yang digunakan untuk menyediakan data ke node lain. Nilai default-nya adalah 19898.

Untuk contoh lengkap cara mendeploy layanan penyiaran model dengan beberapa instans di kluster Kubernetes, lihat Deploy layanan penyiaran model dengan beberapa instans.

Batasi ukuran cache

Selama penyiaran model, node menyimpan data model dalam memori untuk pengambilan oleh node lain. Anda dapat membatasi memori cache ini dengan cara berikut.

  • Metode 1: Atur variabel lingkungan

    export CONNECTOR_MAX_CACHE_ADVISE_GB=100
  • Metode 2: Atur dalam file konfigurasi

    Atur prefetch.maxCacheAdviseGB dalam /etc/oss-connector/config.json:

    {
      ...
      "prefetch": {
        "vcpus": 16,
        "workers": 24,
        "maxCacheAdviseGB": 100
      },
      ...
    }
Catatan
  • Batas memori merupakan batas lunak (soft limit).

  • Variabel lingkungan memiliki prioritas lebih tinggi daripada file konfigurasi.

Laporan performa

Berikut adalah hasil pengujian performa fitur penyiaran model dengan model Qwen2.5-72B (135,437 GB) di berbagai wilayah.

Pengujian di wilayah Beijing

Lingkungan pengujian

Item

Konfigurasi

OSS

China (Beijing), bandwidth unduh intranet 250 Gbps

Konfigurasi node

ecs.g9i.24xlarge, jaringan 32/48 Gbps (peak), 96 vCPU, 384 GiB

Model

Qwen2.5-72B, 135,437 GB

Metrik

Waktu dari startup server API vLLM hingga layanan siap digunakan, beserta trafik OSS dan P2P.

Ukuran cache tanpa batas

北京Region不限制缓存大小测试结果

  • Hanya satu aliran data kembali ke sumber yang digunakan, sedangkan semua data lain ditransfer melalui P2P. Hal ini meminimalkan tekanan bandwidth pada OSS.

  • Waktu rata-rata hingga model siap tetap mendekati O(1) dan tidak meningkat secara linear seiring bertambahnya jumlah node, menunjukkan skalabilitas horizontal yang sangat baik.

Ukuran cache terbatas

Waktu hingga model siap diuji untuk 1, 10, 50, dan 100 node yang dimulai secara bersamaan dengan ukuran cache tanpa batas dan dibatasi menjadi 100, 60, 40, 20, dan 0 GB.

北京Region限制缓存大小测试结果-时间

北京Region限制缓存大小测试结果-影响

  • Penyiaran model berfungsi sesuai harapan di bawah berbagai batas ukuran cache.

  • Dampak batas cache terhadap performa konsisten di semua tingkat konkurensi. Ukuran cache 40 GB atau lebih besar tidak memberikan pengaruh signifikan terhadap waktu hingga model siap. Performa mulai menurun secara nyata ketika ukuran cache 20 GB atau lebih kecil.

Pengujian di wilayah Ulanqab

Lingkungan pengujian

Item

Konfigurasi

OSS

China (Ulanqab), bandwidth unduh intranet 10 Gbps

Konfigurasi node

ecs.g9i.24xlarge, jaringan 32/48 Gbps (peak), 96 vCPU, 384 GiB

Model

Qwen2.5-72B, 135,437 GB

Waktu hingga model siap diuji untuk 1, 10, 50, dan 100 node yang dimulai secara bersamaan dengan ukuran cache tanpa batas dan dibatasi menjadi 60 dan 0 GB.

乌兰察布Region测试结果

Bahkan dengan bandwidth unduh OSS yang terbatas, hasil pengujian menunjukkan bahwa penyiaran model tetap mempertahankan skalabilitas horizontal yang sangat baik dan meminimalkan tekanan bandwidth pada OSS.