Inilah upaya saya untuk menciptakan kembali Meena, chatbot canggih yang dikembangkan oleh Google Research dan dijelaskan dalam makalah Menuju Chatbot Domain Terbuka yang Mirip Manusia.
Untuk implementasi ini saya menggunakan pustaka pembelajaran mendalam tensor2tensor, menggunakan model transformator yang dikembangkan seperti yang dijelaskan di makalah.
Training set yang digunakan adalah korpus OpenSubtitles dalam bahasa Italia. Banyak bahasa lain tersedia di sini.
Mirip dengan pekerjaan yang dilakukan di makalah ini, model ini terdiri dari 1 blok encoder dan 12 blok decoder dengan total 108 juta parameter. Pengoptimal yang digunakan adalah Adafactor dengan jadwal laju pelatihan yang sama seperti yang dijelaskan di makalah.
Berikut adalah hasil setelah melatih model pada 40 juta kalimat kumpulan data OpenSubtitles dalam bahasa Italia. Kecepatan pemelajaran dimulai dari 0,01 dan tetap konstan selama 10 ribu langkah, lalu menurun dengan akar kuadrat terbalik dari jumlah langkah.
Berikut alur evaluasi kerugian selama pelatihan.
Skor kebingungan akhir adalah 10,4 yang sangat dekat dengan skor kebingungan yang dicapai oleh meena chatbot Google 10.2.
Makalah ini menunjukkan korelasi antara skor kebingungan dan Rata-Rata Kepekaan dan Kekhususan yang berkorelasi dengan "kemiripan manusia" dari chatbot. Skor kebingungan kami menunjukkan bahwa bot kami lebih baik dibandingkan chatbot lain seperti Cleverbot dan DialoGPT:
Namun kumpulan data yang digunakan tidak mewakili percakapan normal antar manusia. Namun Opensubtitles menyediakan kumpulan data yang sangat besar dalam banyak bahasa.
Cukup jalankan notebook meena_chatbot_inference.ipynb
.
Jika tidak, unduh model berikut dan ekstrak. Tetapkan MODEL_DIR dan CHECKPOINT_NAME yang tepat predict.py
dan jalankan main.py
Untuk pelatihan cukup jalankan notebook ipython di Google Colab, modelnya akan disimpan di Google Drive. Di akhir eksekusi Anda dapat berinteraksi dengan chatbot.
Model dapat diekspor dengan menyalin file berikut ke dalam folder:
dan jalankan main.py
setelah mengatur direktori model yang tepat.
server.py
menyediakan API HTTP sederhana untuk melayani chatbot.