top of page
Gambar penulisCornellius Yudha Wijaya

Pengantar Streaming-LLM: LLM untuk Input dengan Panjang Tak Terbatas

Large Language Model (LLM) telah mengubah cara orang bekerja. Model seperti keluarga GPT yang telah banyak digunakan, membuat kita terbiasa dengan kemampuan mereka. Dengan memanfaatkan kekuatan LLM, kita bisa mendapatkan jawaban atas pertanyaan dengan cepat, men-debug kode, dan berbagai hal lainnya. Hal ini membuat model LLM berguna dalam banyak aplikasi.


Namun, LLM juga memiliki tantangan. Salah satunya adalah model ini kurang cocok untuk aplikasi streaming karena keterbatasannya dalam menangani percakapan panjang yang melebihi panjang urutan pelatihan yang telah ditentukan sebelumnya. Selain itu, konsumsi memori yang tinggi juga menjadi masalah.


Masalah inilah yang memicu penelitian untuk mengatasinya. Mari kita bahas penelitian tersebut lebih lanjut.



StreamingLLM

StreamingLLM adalah framework yang dikembangkan oleh penelitian Xiao et al. (2023) untuk mengatasi masalah aplikasi streaming. Metode yang ada saat ini menghadapi tantangan karena attention window membatasi LLM selama pelatihan awal.


Teknik attention window mungkin efisien namun memiliki kelemahan ketika menangani teks yang lebih panjang dari ukuran cache-nya. Itu sebabnya para peneliti mencoba menggunakan Key dan Value dari beberapa token awal (attention sink) dengan token terbaru. Perbandingan antara StreamingLLM dan teknik lainnya dapat dilihat pada gambar di bawah ini.

Kita bisa melihat bagaimana StreamingLLM mengatasi tantangan menggunakan metode attention sink. Attention sink (token awal) ini digunakan untuk perhitungan perhatian yang stabil dan menggabungkannya dengan token terbaru untuk efisiensi dan menjaga performa yang stabil pada teks yang lebih panjang.


Selain itu, metode yang ada saat ini mengalami masalah dalam optimisasi memori. Namun, LLM menghindari masalah ini dengan mempertahankan jendela berukuran tetap pada Key dan Value dari token yang paling baru. Penulis juga menyebutkan manfaat StreamingLLM sebagai baseline perhitungan ulang window sliding hingga 22,2x lebih cepat.


Secara perfroma, StreamingLLM memberikan akurasi yang luar biasa dibandingkan dengan metode yang ada, seperti yang terlihat pada tabel di bawah ini.

Tabel di atas menunjukkan bahwa akurasi StreamingLLM dapat mengungguli metode lainnya dalam benchmark dataset. Itulah mengapa StreamingLLM bisa memiliki potensi untuk banyak aplikasi streaming.


Untuk mencoba StreamingLLM, Anda bisa mengunjungi halaman GitHub mereka. Clone repository pada direktori yang diinginkan dan gunakan kode berikut di CLI Anda untuk mengatur lingkungan.

conda create -yn streaming python=3.8
conda activate streaming

pip install torch torchvision torchaudio
pip install transformers==4.33.0 accelerate datasets evaluate wandb scikit-learn scipy sentencepiece

python setup.py develop

Kemudian, Anda bisa menggunakan kode berikut untuk menjalankan chatbot Llama dengan LLMstreaming.

CUDA_VISIBLE_DEVICES=0 python examples/run_streaming_llama.py  --enable_streaming

Keseluruhan perbandingan sampel dengan StreamingLLM dapat ditunjukkan pada gambar di bawah ini.

Itulah semua informasi tentang pengantar StreamingLLM. Secara keseluruhan, saya percaya StreamingLLM bisa memiliki tempat dalam aplikasi streaming dan membantu mengubah cara aplikasi bekerja di masa depan.


Kesimpulan

Memiliki LLM dalam aplikasi streaming akan membantu bisnis dalam jangka panjang; namun, ada tantangan dalam penerapannya. Sebagian besar LLM tidak dapat melebihi panjang urutan pelatihan yang telah ditentukan dan memiliki konsumsi memori yang lebih tinggi. Xiao et al. (2023) mengembangkan framework baru yang disebut StreamingLLM untuk menangani masalah ini. Dengan menggunakan StreamingLLM, sekarang dimungkinkan untuk memiliki LLM yang berfungsi dalam aplikasi streaming.



8 tampilan0 komentar

Postingan Terkait

Lihat Semua

Comments


bottom of page