Sampling suhu

Baru-baru ini saya menemukan sebuah pertanyaan dalam obrolan ODS : mengapa algoritma huruf per huruf tidak mengambil sampel huruf dari p (vektor probabilitas huruf berikutnya yang diprediksi oleh model bahasa ), tetapi dari p'=softmax(log(p)/t) ( di mana t adalah beberapa skalar positif aneh lainnya)?


Jawaban cepat dan tidak dapat dimengerti: t adalah "suhu", dan memungkinkan Anda untuk mengontrol berbagai teks yang dihasilkan. Dan demi jawaban yang panjang dan terperinci, sebenarnya, pos ini ditulis.


Sedikit matematika


Pertama, softmax(x)=exp(x)/sum(exp(x)) mengingatkan Anda bahwa softmax(x)=exp(x)/sum(exp(x)) (exp, log, dan pembagian vektor adalah komponen). Ternyata jika t=1 , maka logaritma dan eksponen saling dimusnahkan, dan kita mendapatkan p'=p . Yaitu, dengan suhu satuan, transformasi ini tidak mengubah apa pun.


Apa yang terjadi jika Anda membuat suhunya sangat tinggi? Softmax mendapatkan (hampir) nol, dan pada output kita mendapatkan (hampir) angka yang sama, sekitar 1/n , di mana n adalah dimensi p (jumlah huruf dalam alfabet). Yaitu, pada suhu yang sangat tinggi, kami menekankan pada apa yang diprediksi oleh model bahasa, dan sampel semua huruf sama-sama memungkinkan.


Dan jika kita mengatur suhu mendekati nol, maka masing-masing komponen p' akan menjadi eksponen yang sangat besar dibagi dengan jumlah eksponen yang sangat besar. Dalam batas itu, huruf itu, yang sesuai dengan nilai p , akan mendominasi yang lain, dan p' akan cenderung menyatu untuknya dan nol untuk semua huruf lainnya. Artinya, pada suhu yang sangat rendah, kami selalu memilih huruf yang paling mungkin (bahkan jika probabilitas absolutnya tidak begitu tinggi - katakanlah, hanya 5%).


Kesimpulan utama


Yaitu, pengambilan sampel suhu adalah pandangan umum dari berbagai jenis pengambilan sampel, dengan mempertimbangkan prediksi model dengan berbagai tingkat. Ini diperlukan untuk bermanuver antara model kepercayaan dan keragaman. Anda dapat menaikkan suhu untuk menghasilkan teks yang lebih beragam, atau menurunkannya untuk menghasilkan teks yang rata-rata modelnya lebih percaya diri. Dan, tentu saja, semua ini berlaku tidak hanya untuk generasi teks, tetapi secara umum untuk model probabilistik.


Gambar di atas menunjukkan contoh pengambilan sampel pada suhu yang berbeda dari model GPT-2, melalui halaman yang luar biasa ini didukung oleh kelompok Wajah Memeluk. GPT-2 menghasilkan teks bukan dengan huruf atau kata-kata, tetapi oleh token BPE (urutan huruf yang dipilih secara khusus), tetapi esensi dari ini tidak benar-benar berubah.


Sedikit fisika


Dan apa hubungannya suhu dengan itu, Anda mungkin bertanya. Jawabannya adalah referensi ke distribusi Boltzmann yang digunakan dalam termodinamika. Distribusi ini menggambarkan probabilitas keadaan di mana sistem berada (misalnya, beberapa molekul gas terkunci dalam botol), tergantung pada suhu sistem dan tingkat energi potensial yang sesuai dengan keadaan ini. Setelah transisi dari negara berenergi tinggi ke keadaan berenergi rendah, dilepaskan (diubah menjadi panas), tetapi sebaliknya, dihabiskan. Oleh karena itu, sistem akan lebih sering berakhir dalam keadaan energi rendah (lebih mudah untuk masuk ke dalamnya, lebih sulit untuk pergi, dan mustahil untuk dilupakan ), tetapi semakin tinggi suhunya, semakin sering sistem masih akan beralih ke keadaan berenergi tinggi juga. Boltzmann, pada kenyataannya, menggambarkan keteraturan ini dengan rumus, dan mendapat p=softmax(-energy/t) .


Saya sudah menulis dalam esai saya tentang entropi ( 1 , 2 , 3 ), tetapi tidak benar-benar menjelaskan bagaimana statistik entropi terkait dengan konsep entropi dalam fisika. Tetapi sebenarnya, melalui distribusi Boltzmann, mereka tampaknya terhubung. Tapi di sini saya lebih baik mengirim Anda pergi untuk membaca karya fisika, dan saya sendiri akan melangkah lebih jauh dengan NLP. Rendah untuk Anda kebingungan!


PS Teks ini ditulis pada suhu sekitar 38 °, jadi jangan heran jika ini sedikit lebih acak daripada yang Anda harapkan ¯\_(ツ)_/¯

Source: https://habr.com/ru/post/id467189/


All Articles