Langsung ke konten

Arsip

Scheduling

5 artikel
Kecerdasan Buatan 24 Sep 2026 5 min read

Scheduling per Iterasi Membentuk Ulang Batch LLM di Antara Langkah Decode

Serving autoregresif tidak membuat semua request selesai pada titik yang sama. Sebuah sequence dapat menghasilkan token akhir setelah beberapa langkah decode, sedangkan sequence lain masih aktif hingga ratusan langkah. Jika engine mempertahankan batch request awal sampai seluruh anggotanya selesai, sequence yang sudah berakhir meninggalkan kapasitas eksekusi yang tidak terisi di belakang sequence yang lebih panjang. Scheduling per iterasi memindahkan batas keputusan ke bagian yang lebih kecil. Request tidak lagi menjadi satu-satunya unit scheduling yang tidak dapat dipecah. Setelah satu iterasi model, kontrol kembali ke scheduler. Sequence yang selesai dapat keluar, pekerjaan yang menunggu dapat masuk, dan iterasi berikutnya dapat memakai kumpulan sequence aktif yang berbeda.

Kecerdasan Buatan 24 Sep 2026 5 min read

Continuous Batching Mengganti Kelompok Request Statis dengan Scheduling per Iterasi

Generasi autoregresif tidak menyelesaikan setiap request pada iterasi yang sama. Satu sequence dapat menghasilkan stop token setelah beberapa langkah decode, sedangkan sequence lain masih aktif hingga ratusan langkah berikutnya. Batch statis mengikat request tersebut sampai batas batch tercapai. Continuous batching memutus ikatan itu dengan mengizinkan himpunan aktif berubah di antara iterasi model. Perubahan utamanya berada pada granularitas scheduling. Request tidak lagi menjadi unit scheduling yang tidak dapat dipecah selama seluruh proses generasi. Sistem serving dapat membentuk batch eksekusi untuk satu iterasi, memperbarui state request setelah iterasi tersebut, mengeluarkan sequence yang selesai, lalu memasukkan pekerjaan antrean sebelum langkah eksekusi berikutnya.

Rekayasa Perangkat Lunak 23 Sep 2026 5 min read

Priority Inheritance Membatasi Priority Inversion di Sekitar Mutex

Priority Inheritance Membatasi Priority Inversion di Sekitar Mutex Priority scheduling tidak menjamin task runnable dengan priority tertinggi selalu dapat maju. Task ber-priority tinggi dapat terblokir pada mutex yang dimiliki task ber-priority rendah. Jika pekerjaan ber-priority menengah kemudian melakukan preemption terhadap pemilik mutex, task ber-priority tinggi tetap terblokir walaupun pekerjaan menengah itu tidak memiliki dependency langsung terhadap mutex. Kondisi ini disebut priority inversion. Inversion dimulai dari dependency biasa: task ber-priority tinggi memerlukan resource yang sedang dimiliki task ber-priority rendah. Bagian yang merugikan adalah interference dari task di antara kedua priority tersebut, karena interference itu dapat menunda pemilik mutex dan memperpanjang interval blocking.

Rekayasa Perangkat Lunak 20 Sep 2026 5 min read

Power of Two Choices Mengurangi Ketimpangan Load dengan Dua Sampel

Power of Two Choices Mengurangi Ketimpangan Load dengan Dua Sampel Load balancer yang memilih satu destination secara acak memiliki biaya kecil dan mudah didesentralisasi, tetapi penempatan acak dapat menghasilkan queue yang tidak merata. Pada sisi lain, memilih destination dengan load terendah dari seluruh pool membutuhkan informasi load terbaru untuk setiap kandidat dan dapat membuat load balancer sendiri menjadi mahal. Strategi power of two choices berada di antara kedua desain tersebut. Untuk setiap request, ambil dua destination yang memenuhi syarat, bandingkan sinyal load, lalu kirim request ke kandidat yang lebih baik. Dua observasi cukup untuk menghindari banyak penempatan buruk tanpa memerlukan pencarian global.

Kecerdasan Buatan 19 Sep 2026 8 min read

Memecah Prefill Panjang untuk Membatasi Jeda Decode pada Serving LLM

Prompt panjang dapat menempati akselerator selama interval scheduling yang jauh lebih besar dibanding satu iterasi decode. Saat serving engine mencampur prefill baru dengan request yang sudah menghasilkan token, perbedaan ini dapat terlihat sebagai jarak waktu antartoken output yang tidak teratur. Modelnya tidak berubah; interferensi muncul dari cara dua fase inferensi yang berbeda berbagi waktu eksekusi. Prefill memproses prompt dan membentuk key-value state yang dibutuhkan causal attention berikutnya. Decode kemudian memperpanjang sequence secara autoregresif, umumnya satu token baru per request aktif pada setiap iterasi. Kedua fase memberi tekanan yang berbeda pada hardware, sehingga memperlakukannya sebagai unit scheduling yang setara dapat menimbulkan jeda yang sebenarnya dapat dibatasi.