Continuous Batching dan Pengurusan Memori vLLM Memacu Peningkatan Prestasi dalam Penyajian LLM

Pasukan Komuniti BigGo
Continuous Batching dan Pengurusan Memori vLLM Memacu Peningkatan Prestasi dalam Penyajian LLM

Enjin inferens sumber terbuka vLLM telah mendapat perhatian yang ketara kerana keupayaannya untuk menyajikan model bahasa besar dengan cekap pada skala yang besar. Pecahan teknikal yang terperinci mendedahkan bagaimana sistem ini mencapai throughput yang tinggi melalui strategi batching yang inovatif dan teknik pengurusan memori yang memaksimumkan penggunaan GPU tanpa mengorbankan kualiti respons.

Komponen Seni Bina vLLM V1:

  • AsyncLLM: Pembungkus tak segerak yang mengendalikan tokenisasi dan komunikasi IPC
  • EngineCore: Enjin inferens teras dengan logik penjadualan dan pelaksanaan
  • Scheduler: Menguruskan kumpulan permintaan dan peruntukan token
  • ModelExecutor: Menyelaraskan pemuatan model merentasi pekerja GPU menggunakan Ray
  • ModelRunner: Melaksanakan laluan ke hadapan pada GPU individu
  • KVCacheManager: Menguruskan memori GPU sebagai sistem paging dengan blok bersaiz tetap
Meneroka vLLM: Bagaimana model bahasa besar digunakan dengan cekap pada skala besar
Meneroka vLLM: Bagaimana model bahasa besar digunakan dengan cekap pada skala besar

Continuous Batching Mengekalkan Kualiti Sambil Meningkatkan Kecekapan

Salah satu kebimbangan utama pembangun tentang batching berbilang permintaan adalah sama ada ia memberi kesan kepada prestasi model. Perbincangan komuniti mendedahkan bahawa pendekatan vLLM menangani kebimbangan ini dengan berkesan. Tidak seperti kaedah batching tradisional yang mungkin menggabungkan prompt yang berbeza ke dalam konteks yang sama, vLLM memproses permintaan berasingan secara selari sambil berkongsi sumber pengiraan. Ini bermakna tiada pertukaran dalam perplexity atau kualiti respons - pengguna mendapat prestasi model yang sama seperti yang mereka jangkakan daripada permintaan individu, tetapi dengan kecekapan yang jauh lebih baik.

Algoritma continuous batching berfungsi dengan mengekalkan bajet token yang fleksibel merentas berbilang permintaan. Sebagai contoh, jika tiga permintaan mempunyai 3, 5, dan 12 token prompt masing-masing dengan bajet 10 token, penjadual mungkin memproses 3 token daripada permintaan pertama, 5 daripada yang kedua, dan 2 daripada yang ketiga dalam satu forward pass. Peruntukan dinamik ini memastikan sumber GPU kekal digunakan sepenuhnya sambil mengekalkan keadilan merentas permintaan.

Bajet token: Bilangan maksimum token yang boleh diproses dalam satu forward pass melalui model

Contoh Continuous Batching:

  • 3 permintaan dengan 3, 5, dan 12 token prompt masing-masing
  • Bajet token sebanyak 10 token bagi setiap forward pass
  • Langkah 0: Memproses 3 token (R1) + 5 token (R2) + 2 token (R3)
  • Langkah 1: Memproses baki 8 token (R3) + 1 decode token setiap satu (R1, R2)
Proses peruntukan token dalam continuous batching meningkatkan kecekapan untuk pelbagai permintaan
Proses peruntukan token dalam continuous batching meningkatkan kecekapan untuk pelbagai permintaan

Had Lebar Jalur Memori Membolehkan Pemprosesan Selari

Keberkesanan pendekatan batching vLLM berpunca daripada ciri asas seni bina LLM semasa. Model bahasa moden sangat terhad oleh lebar jalur memori berbanding kapasiti pengiraan. Kesesakan ini berlaku kerana sistem menghabiskan masa yang ketara menunggu berat model dipindahkan daripada memori video (VRAM) ke memori lebar jalur tinggi (HBM). Semasa tempoh menunggu ini, memproses berbilang permintaan secara serentak menjadi hampir percuma dari sudut pengiraan.

Wawasan ini menjelaskan mengapa vLLM boleh mencapai peningkatan prestasi yang begitu dramatik. Sistem ini pada dasarnya mengisi jurang pengiraan yang sebaliknya akan dibazirkan menunggu pemindahan memori. Teras GPU yang akan menganggur semasa operasi memori sebaliknya boleh bekerja pada permintaan tambahan tanpa memberi kesan kepada kelajuan pemprosesan permintaan individu.

Ciri-ciri Prestasi mengikut Fasa:

  • Fasa Prefill: Penggunaan pengkomputeran yang tinggi, I/O memori yang rendah, memproses semua token gesaan secara selari
  • Fasa Decode: Keperluan pengkomputeran yang ringan, I/O memori yang berat untuk akses cache KV, penjanaan token secara berurutan
  • Kesesakan Memori: Seni bina LLM semasa dihadkan oleh lebar jalur memori berbanding kapasiti pengkomputeran

Paged Attention dan Pengurusan KV Cache

Selain continuous batching, sistem pengurusan memori vLLM memainkan peranan penting dalam kelebihan prestasinya. Sistem ini menggunakan teknik yang dipanggil Paged Attention, yang pada asalnya dibangunkan oleh pasukan vLLM dan sejak itu telah diterima pakai oleh enjin inferens lain. Pendekatan ini menganggap memori GPU seperti sistem paging, menyimpan data cache key-value (KV) dalam blok bersaiz tetap berbanding memerlukan peruntukan memori bersebelahan yang besar.

Cache KV menyimpan kunci dan nilai perhatian transformer untuk setiap token, yang penting untuk menjana token seterusnya dengan cekap. Dengan membahagikan cache ini kepada blok yang boleh diurus, vLLM boleh memperuntukkan memori secara dinamik mengikut keperluan dan mengelakkan isu pemecahan memori yang melanda sistem penyajian lain. Pendekatan berasaskan blok ini juga membolehkan penggunaan memori yang lebih baik merentas berbilang permintaan serentak.

Cache KV: Memori GPU yang menyimpan kunci dan nilai perhatian daripada token sebelumnya, membolehkan penjanaan token baharu yang cekap tanpa mengira semula keadaan masa lalu

Ciri Prestasi Prefill vs Decode

Sistem mengendalikan dua fasa inferens yang berbeza secara berlainan, setiap satu dengan ciri prestasi yang unik. Semasa fasa prefill, semua token prompt boleh diproses secara serentak kerana tensor query untuk setiap kedudukan tersedia serta-merta. Pemprosesan selari ini menjadikan operasi prefill agak pantas dan intensif pengiraan dengan keperluan I/O memori yang minimum.

Fasa decode beroperasi secara berbeza, menjana token satu demi satu secara berurutan. Setiap token baharu bergantung pada output token sebelumnya, menghalang penjanaan selari dalam satu permintaan. Walau bagaimanapun, fasa ini memerlukan I/O memori yang meluas untuk mengakses kunci dan nilai yang disimpan daripada peringkat prefill. Kontras antara fasa-fasa ini menyerlahkan mengapa batching berbilang permintaan menjadi lebih berharga - sementara satu permintaan menunggu operasi memori, yang lain boleh menggunakan sumber pengiraan yang tersedia.

Soalan Prestasi dan Pengoptimuman Masa Depan

Walaupun penjelasan teknikal yang terperinci, beberapa ahli komuniti menyatakan ketiadaan penanda aras prestasi khusus dan spesifikasi perkakasan. Kekurangan nombor throughput konkrit menyukarkan untuk menilai prestasi vLLM berbanding alternatif atau menganggar prestasi yang dijangka pada konfigurasi perkakasan tertentu.

Terdapat lebih banyak prestasi yang boleh anda perah daripada vLLM

Peluang pengoptimuman tambahan wujud melebihi keupayaan teras vLLM. Sesetengah organisasi sedang membina atas asas vLLM dengan menambah sistem beratur berpusat dan sokongan batching bahagian klien yang eksplisit untuk mencapai kadar throughput yang lebih tinggi lagi.

Perbincangan juga menyerlahkan pertimbangan penggunaan praktikal, seperti menguruskan perbualan berkeadaan merentas berbilang instance model. Walaupun model itu sendiri tidak berkeadaan, konteks perbualan memerlukan strategi penghalaan yang teliti di peringkat load balancer untuk mengekalkan faedah prestasi daripada prompt caching dan penggunaan semula cache KV.

Gabungan continuous batching, paged attention, dan pengurusan memori yang cekap vLLM mewakili kemajuan yang ketara dalam teknologi penyajian LLM. Dengan menangani kesesakan asas dalam seni bina transformer, sistem ini mencapai peningkatan prestasi yang besar sambil mengekalkan kualiti respons, menjadikannya pilihan yang menarik untuk organisasi yang menggunakan model bahasa besar pada skala yang besar.

Rujukan: Life of an inference request (vLLM V1): How LLMs are served efficiently at scale