Beam Search adalah algoritma decoding yang digunakan dalam model AI generatif untuk menemukan urutan token dengan probabilitas tertinggi secara keseluruhan, bukan hanya memilih token terbaik satu per satu.
Berbeda dengan greedy decoding (yang memilih token dengan probabilitas tertinggi pada setiap langkah), beam search mempertahankan beberapa kandidat (disebut "beam") secara paralel. Pada setiap langkah, algoritma memperluas setiap kandidat dengan semua kemungkinan token berikutnya, menghitung probabilitas total untuk setiap urutan yang dihasilkan, dan mempertahankan hanya kandidat dengan probabilitas tertinggi (sebanyak beam size).
Beam size adalah parameter yang menentukan berapa banyak kandidat yang dipertahankan. Beam size yang lebih besar (misalnya 5 atau 10) menghasilkan pencarian yang lebih menyeluruh dan sering kali output yang lebih baik, tetapi lebih mahal secara komputasi. Beam size yang lebih kecil (misalnya 1, yang sama dengan greedy decoding) lebih cepat tetapi mungkin melewatkan urutan yang lebih baik.
Beam search sangat umum digunakan dalam terjemahan mesin, peringkasan teks, dan pengenalan suara—tugas-tugas di mana menemukan urutan output terbaik sangat penting. Beam search membantu mengurangi kesalahan yang dapat terjadi jika model membuat pilihan suboptimal pada langkah awal (yang kemudian memengaruhi langkah-langkah berikutnya).
Namun, beam search juga memiliki kekurangan. Ini cenderung menghasilkan output yang kurang beragam dan lebih "aman"—kadang-kadang terlalu berfokus pada urutan yang paling mungkin secara statistik, yang mungkin bukan yang paling kreatif atau alami. Untuk aplikasi kreatif, sampling (dengan temperature) sering lebih disukai daripada beam search.
