Pengalaman kami dengan DeepPavlov: asisten suara dalam 20 hari dan menerima 5000 panggilan di hotline

Ketika rezim isolasi diri diumumkan , hotline virus corona di Tatarstan mendapat banyak pertanyaan dari warga. Untuk meringankan operator pusat panggilan, kami di Pusat Transformasi Digital Republik, bersama dengan komisaris AI di Tatarstan, mengembangkan asisten suara yang menjawab pertanyaan-pertanyaan sederhana.







Untuk menerima panggilan, kami menggunakan platform Voximplant , dan untuk mengenali pertanyaan dan jawaban - DeepPavlov . Asisten suara diluncurkan dalam dua setengah minggu, dan membantu memproses 5.000 panggilan. Kami berhasil meluncurkan produk yang membantu penduduk Tatarstan menerima informasi yang dapat dipercaya dari pihak berwenang, dan hanya turun ke jalan. Di bawah ini kami akan memberi tahu Anda bagaimana kami melakukannya.



Apa tugasnya



Kami awalnya berencana membuat asisten suara yang akan membantu orang menerima layanan pemerintah dan menjawab pertanyaan yang sering diajukan. Tetapi ketika seluruh tipu muslihat tentang virus korona dimulai, kami menyadari bahwa Lilia akan membantu membongkar pusat panggilan: misalnya, memberi nasihat di hotline, membantu mendapatkan tiket digital, dan tunjangan pengangguran. Segala sesuatu yang seseorang dapat temukan di situs web layanan negara dapat ditemukan dari Lilia, dan Anda juga dapat mengobrol dengannya.



. 1 -: , . : , , , . 12.



. , . , . , , , — « »
.




Selain mengeluarkan digital pass, Lilia pun harus menjawab pertanyaan warga Tatarstan. Kami membuat asisten suara yang akan menjawab pertanyaan umum seperti "Apa yang perlu Anda lakukan agar bisa lulus" dan "Apakah jahe membantu Anda dengan virus corona?"



Untuk mengatasi masalah ini, kita bisa membuat IVR biasa. Tetapi IVR membutuhkan waktu lama, dan jika dilakukan secara normal, maka Anda perlu meletakkan arsitektur yang kompleks. Secara umum, tidak ada waktu untuk ini. Kami pikir akan lebih mudah membuat asisten suara (yang dapat menerjemahkan ucapan menjadi teks, memprosesnya, mengklasifikasikan maksud, dan memberikan respons suara). Hehe.



Bagaimana tampilannya dari sudut pandang pengguna



Semuanya sederhana di sini.



  1. Pria itu menelepon hotline, dia ditawari untuk memilih antara percakapan dengan operator dan Lilia. Pada tahap mana pun, Anda dapat beralih ke operator langsung.
  2. .
  3. , . , -.








Untuk menerima panggilan dan mengimplementasikan skrip, kami menggunakan platform Voximplant: menulis skrip dan menghubungkan sinyal mesin penjawab. Lily menyapa pria itu dan menanyakan apa yang diinginkannya.



Penelepon mengajukan pertanyaan melalui telepon. Kemudian Lilia mulai mendengarkan. Di VoxImplant, kami menggunakan modul ASR untuk menerjemahkan ucapan menjadi teks, yang disebut model Yandex.SpeechKit. Jadi, audio stream diterjemahkan ke dalam teks, yang kemudian mengalami tokenisasi dan stemming. Kami juga mencoba mengekstrak fitur: NER, POS, dan Chunk untuk metode ML dasar, tetapi semua ini membutuhkan waktu yang sangat lama.







Misalnya, awalnya, dari pertanyaan "Tolong beri tahu saya cara melindungi diri Anda dari virus korona", kami membendung "perlindungan" dan "virus korona" dan mengubahnya menjadi representasi vektor. Representasi vektor entitas termasuk dalam pengklasifikasi untuk coronavirus (dan kemudian - untuk layanan publik). Sekarang DeepPavlov melakukan semua ini.



Selanjutnya, beberapa opsi dimungkinkan, tergantung pada tingkat kepercayaan (keyakinan):



  1. Jika jaringan mengklasifikasikan pertanyaan dengan keyakinan yang cukup (berdasarkan penelitian, ambang batas dipilih secara individual, berdasarkan kelas), maka Lilia akan menjawab pertanyaan tersebut.
  2. Jika jaringan memiliki respons keyakinan yang rendah, kami berasumsi bahwa ini adalah pertanyaan yang tidak kami bahas dalam kumpulan data kami (tetapi pertanyaan tersebut masih mengacu pada domain virus corona), atau orang tersebut hanya ingin membicarakan topik lain. Misalnya, dia bertanya "Siapa Elon Musk."


Untuk pertanyaan semacam itu, kami menggunakan model BERT yang dilatih di dump Wikipedia untuk masalah menjawab pertanyaan basis pengetahuan.



Pada akhirnya, Lilia perlu memverifikasi kebenaran pengakuan maksud dan kualitas jawabannya, menanyakan: "Apakah saya menjawab pertanyaan Anda?" Jika pengguna menjawab ya, maka Lilia akan menunggu pertanyaan berikutnya. Jika tidak, maka kami akan meminta Anda untuk merumuskan kembali pertanyaan tersebut dan menjalani seluruh siklus lagi. Kebetulan ini tidak berhasil. Kemudian operator langsung memasuki pertempuran.



Sekarang Lilia berbicara dengan suara menyenangkan dari penyintesis ucapan dari Yandex - kami sedikit mengubah kunci dan meningkatkan kecepatan. Terkadang Lily mengacaukan aksen, tetapi ini bisa diperbaiki dengan markup. Tentu saya ingin menambahkan Tatar, tapi sejauh ini sulit.



Secara total, proyek ini memakan waktu dua setengah minggu, dengan mempertimbangkan kumpulan data: sebuah ide muncul, kami mendiskusikan proyek dengan menteri dan, seperti yang kami katakan, alga. Seminggu dihabiskan untuk estimasi dan penelitian, pengembangan membutuhkan 10 hari lagi, lalu kami menyelesaikan dan mengacaukan fungsi tambahan. Kuda utama adalah Nvidia RTX2070. BERT membutuhkan sekitar 12-16 GB memori video.



Dari LSVM dan catboost ke DeepPavlov



Selama proses pengembangan, kami menggunakan model pengklasifikasi yang berbeda. Pertama, kami mencoba model pembelajaran mesin seperti random forest, LSVM, catboost, logreg. Secara umum, keakuratan model pembelajaran mesin tidak terlalu tinggi. Mengapa demikian? Karena banyak dari pertanyaan pengguna sangat mirip satu sama lain: pertanyaan “anak saya sakit coronavirus apa yang harus dilakukan” sangat mirip dengan pertanyaan “apakah mungkin berjalan dengan anak selama virus corona”, meskipun ini adalah kategori yang berbeda dan jawaban yang berbeda diperlukan.



Kami dapat melakukan ekstraksi entitas, pengambilan sampel, penelitian. Tapi kami sedang terburu-buru. Oleh karena itu, kami memutuskan untuk menggunakan pustaka DeepPavlov dari MIPT dalam pekerjaan kami, yang memberikan akurasi 78% dengan regresi logistik dan BERT - 84%.







Keakuratan jawaban tergantung pada markup set data. Kami memiliki daftar 200 pertanyaan yang diajukan orang-orang di hotline, tetapi tidak dipisahkan dengan benar. Misalnya, orang ditanya apa yang harus dilakukan jika salah satu kerabatnya jatuh sakit, dan pertanyaannya adalah apa saja gejala virus corona. Model ML jadi bingung.



Hasil dan rencana untuk masa depan



Lilia bekerja selama 2 minggu dan memproses 5.000 panggilan. Selama ini, Lilia sangat memudahkan pekerjaan operator hotline - mereka tidak perlu menjawab pertanyaan yang sepele dan berulang-ulang. Berkat Lilia, pengguna menerima kartu pas, jawaban atas pertanyaan, dan baru saja berbicara. Tentu saja, ada pengguna yang menyumpahinya dan meminta untuk ditransfer ke operator.



Rezim isolasi diri dibatalkan, tiket digital tidak lagi valid, tetapi Lilia masih dalam peringkat. Ia terus menjawab pertanyaan seputar virus corona, namun kini kemampuan menjawab pertanyaan terkait layanan publik telah ditambahkan padanya.



Kami adalah kementerian, dan kami sebenarnya memiliki dua tugas: agar departemen lain biasanya menggunakan teknologi dan agar penduduk Tatarstan dapat dengan mudah dan mudah berkomunikasi dengan negara. Tugas kedua ditangani dengan sempurna oleh portal layanan negara - milik kami, lokal, bukan federal. Namun portal ini adalah situs dan aplikasi, yang masih sulit dijangkau oleh sebagian orang. Dan jika penghuni tidak membuka portal, maka portal akan menuju ke penghuni, yaitu, kami bergerak menuju penyederhanaan interaksi dengan portal untuk orang-orang yang tidak terlalu menggunakan Internet.



Sekarang Kementerian Urusan Digital Tatarstan sedang bekerja untuk memastikan bahwa masyarakat dapat menerima layanan pemerintah melalui suara dan obrolan. Kami ingin membuat asisten universal yang dapat Anda telepon / tulis dan dapatkan jawaban atas semua pertanyaan penting.



Sejauh ini, Lilia dapat mengetahui berapa lama kantor pendaftaran dibuka, dan di masa mendatang kami berencana bahwa dia akan dapat melakukan pembacaan meter (tetapi ini hanya jika kami memutuskan masalah dengan keamanan transfer data ini). Secara umum, kami mengubah Lilia menjadi produk terpisah.



Jika Anda tertarik untuk mengajar Lilia, selamat datang di tim kami.




All Articles