Alibaba Cloud AISearch for Milvus (Milvus) menyediakan berbagai tipe Compute Unit (CU) dan jumlah node komputasi (Query Node) yang fleksibel. Gunakan referensi ini untuk memilih tipe instans yang sesuai dengan skenario bisnis Anda.
Tipe CU
Node komputasi Milvus mendukung tipe CU berikut:
-
Compute-optimized: Paling cocok untuk beban kerja dengan QPS tinggi dan latensi rendah, seperti pencarian, sistem rekomendasi, AI generatif, dan chatbot.
-
Storage-optimized: Paling cocok untuk volume data besar dengan kebutuhan kinerja pencarian moderat. Instans storage-optimized menawarkan kapasitas penyimpanan empat kali lipat dibandingkan instans compute-optimized dan memberikan kinerja unggul yang memenuhi kebutuhan sebagian besar skenario. Tipe ini ideal untuk pengambilan data tidak terstruktur berskala besar, deteksi hak cipta, dan persiapan data model.
PentingSaat ini, CU storage-optimized memiliki batasan berikut:
-
Hanya skala keluar (scale-out) dan skala-masuk (scale-in) yang didukung. Peningkatan atau penurunan spesifikasi secara vertikal tidak didukung. Pastikan spesifikasi CU dengan cermat sebelum pembelian.
-
Hanya indeks DiskANN yang direkomendasikan. Tipe indeks ini hanya mendukung data vektor float. Untuk mengukur jarak antar vektor, hanya Jarak Euclidean (L2), inner product (IP), atau cosine similarity (COSINE) yang didukung.
-
Perbandingan kapasitas penyimpanan
|
Tipe CU |
Tipe Indeks |
Spesifikasi CU |
Referensi kapasitas data vektor (berdasarkan data vektor SIFT 128-dimensi) |
Referensi kapasitas data vektor (berdasarkan data vektor GIST 960-dimensi) |
|
Compute-optimized |
HNSW M:30 efConstruction:360 |
4 vCPU 16 GiB (4 CUs) |
16 juta |
3 juta |
|
8 vCPU 32 GiB (8 CUs) |
32 juta |
6 juta |
||
|
16 vCPU 64 GiB (16 CUs) |
64 juta |
12 juta |
||
|
32 vCPU 128 GiB (32 CUs) |
128 juta |
24 juta |
||
|
Storage-optimized |
DiskANN |
8 vCPU 32 GiB (8 CUs) |
120 juta |
23 juta |
|
16 vCPU 64 GiB (16 CUs) |
240 juta |
46 juta |
||
|
32 vCPU 128 GiB (32 CUs) |
480 juta |
92 juta |
-
Data dalam tabel ini berdasarkan pengujian kinerja dan hanya sebagai referensi untuk penilaian kapasitas.
-
Set data uji hanya berisi kunci primary dan data vektor, tanpa bidang skalar. Kunci primary merupakan bilangan bulat positif auto-increment yang dimulai dari nol, dikonversi ke string. Karena bidang skalar penting di sebagian besar lingkungan produksi dan juga mengonsumsi ruang penyimpanan, jumlah vektor aktual yang dapat disimpan akan lebih rendah daripada nilai dalam tabel.
Perbandingan kinerja pengambilan
|
Tipe CU |
Spesifikasi CU |
Tipe Indeks |
topk=50 |
topk=100 |
topk=250 |
topk=1000 |
||||
|
QPS |
RT_p99 |
QPS |
RT_p99 |
QPS |
RT_p99 |
QPS |
RT_p99 |
|||
|
Compute-optimized |
16 vCPU 64 GiB (16 CUs) |
HNSW M:30 efConstruction:360 |
2000 |
< 10 ms |
1200 |
< 10 ms |
550 |
< 15 ms |
150 |
< 30 ms |
|
Storage-optimized |
16 vCPU 64 GiB (16 CUs) |
DiskANN |
700 |
< 15 ms |
550 |
< 20 ms |
200 |
< 30 ms |
60 |
< 50 ms |
-
Data ini berdasarkan hasil pengujian menggunakan dataset Cohere (10 juta vektor, 768 dimensi). Kinerja aktual bervariasi tergantung pada distribusi data dari dataset yang berbeda.
-
RT_p99 diukur dengan menjalankan 1.000 permintaan pencarian secara berurutan dan mengambil waktu respons pada persentil ke-99.
-
Data uji hanya berisi kunci primary dan data vektor, tanpa bidang skalar. Kunci primary merupakan bilangan bulat positif auto-increment yang dimulai dari nol. HNSW digunakan untuk instans compute-optimized dan DiskANN untuk instans storage-optimized.
-
Milvus secara berkala mengoptimalkan indeks vektor di latar belakang. Proses ini biasanya selesai dalam waktu 3 jam setelah data ditulis, setelah itu sistem mencapai kinerja optimal.
Jumlah node komputasi
Anda dapat memperluas jumlah node komputasi (Query Node) dari 1 hingga 50. QPS meningkat secara linear seiring bertambahnya jumlah node. Lebih banyak node juga meningkatkan ketersediaan layanan; oleh karena itu, untuk lingkungan produksi yang memerlukan ketersediaan tinggi, gunakan minimal 2 node.
Analisis skenario
Misalnya, Anda sedang membangun sistem pengambilan gambar yang berisi 20 juta gambar. Setiap gambar direpresentasikan oleh vektor berdimensi 768. Tujuan Anda adalah memproses 2.000 permintaan pencarian per detik dan mengembalikan 100 hasil teratas dalam waktu kurang dari 10 milidetik. Evaluasi opsi Anda sebagai berikut:
-
Penilaian latensi: Pilih tipe CU berdasarkan kebutuhan latensi Anda. Misalnya, jika Anda memerlukan latensi kurang dari 10 milidetik, maka CU compute-optimized adalah satu-satunya tipe yang memenuhi persyaratan ini.
-
Pertimbangan kapasitas: Hitung jumlah CU yang diperlukan berdasarkan volume data dan dimensinya. Satu CU compute-optimized berukuran 16 vCPU 64 GiB (16 CUs) mampu menangani 12 juta vektor berdimensi 960. Untuk menampung 20 juta vektor berdimensi 768, Anda harus mengonfigurasi minimal dua CU tersebut sehingga total menjadi 32 CUs.
-
Validasi throughput: Verifikasi throughput setiap node untuk pengaturan top-k yang ditentukan. Misalnya, dengan top-k diatur ke 100, satu node compute-optimized memberikan QPS sebesar 1.200. Untuk mencapai kinerja berkelanjutan sebesar 2.000 QPS, Anda perlu menggandakan jumlah node.
Berdasarkan analisis ini, pilih CU compute-optimized dan konfigurasikan empat node, masing-masing dengan spesifikasi 16 vCPU 64 GiB (16 CUs).