🚀 Coba Zilliz Cloud, Milvus yang sepenuhnya terkelola, secara gratis—rasakan performa 10x lebih cepat! Coba Sekarang>>

milvus-logo
LFAI

Arsitektur Keseluruhan

  • Scenarios
May 12, 2020
milvus

Proyek Milvus:github.com/milvus-io/milvus

Sistem penjawab pertanyaan umumnya digunakan dalam bidang pemrosesan bahasa alami. Sistem ini digunakan untuk menjawab pertanyaan dalam bentuk bahasa alami dan memiliki berbagai macam aplikasi. Aplikasi yang umum digunakan meliputi: interaksi suara cerdas, layanan pelanggan online, akuisisi pengetahuan, obrolan emosional yang dipersonalisasi, dan banyak lagi. Sebagian besar sistem penjawab pertanyaan dapat diklasifikasikan sebagai: sistem penjawab pertanyaan generatif dan pengambilan, sistem penjawab pertanyaan satu putaran dan sistem penjawab pertanyaan banyak putaran, sistem penjawab pertanyaan terbuka, dan sistem penjawab pertanyaan khusus.

Artikel ini terutama membahas tentang sistem QA yang dirancang untuk bidang tertentu, yang biasanya disebut robot layanan pelanggan yang cerdas. Di masa lalu, membangun robot layanan pelanggan biasanya membutuhkan konversi pengetahuan domain menjadi serangkaian aturan dan grafik pengetahuan. Proses konstruksi sangat bergantung pada kecerdasan "manusia". Dengan penerapan deep learning dalam pemrosesan bahasa alami (NLP), mesin pembaca dapat secara otomatis menemukan jawaban atas pertanyaan yang cocok secara langsung dari dokumen. Model bahasa deep learning mengubah pertanyaan dan dokumen menjadi vektor semantik untuk menemukan jawaban yang cocok.

Artikel ini menggunakan model BERT sumber terbuka Google dan Milvus, mesin pencari vektor sumber terbuka, untuk dengan cepat membangun bot tanya jawab berdasarkan pemahaman semantik.

Arsitektur Keseluruhan

Artikel ini mengimplementasikan sistem penjawab pertanyaan melalui pencocokan kemiripan semantik. Proses konstruksi secara umum adalah sebagai berikut:

  1. Dapatkan sejumlah besar pertanyaan dengan jawaban dalam bidang tertentu (kumpulan pertanyaan standar).
  2. Gunakan model BERT untuk mengubah pertanyaan-pertanyaan ini menjadi vektor fitur dan menyimpannya di Milvus. Dan Milvus akan memberikan ID vektor untuk setiap vektor fitur pada saat yang bersamaan.
  3. Simpan ID pertanyaan yang representatif dan jawaban yang sesuai di PostgreSQL.

Ketika seorang pengguna mengajukan pertanyaan:

  1. Model BERT mengubahnya menjadi vektor fitur.
  2. Milvus melakukan pencarian kemiripan dan mengambil ID yang paling mirip dengan pertanyaan.
  3. PostgreSQL mengembalikan jawaban yang sesuai.

Diagram arsitektur sistem adalah sebagai berikut (garis biru mewakili proses impor dan garis kuning mewakili proses kueri):

1-system-architecture-milvus-bert-postgresql.png 1-sistem-arsitektur-milvus-bert-postgresql.png

Selanjutnya, kami akan menunjukkan kepada Anda bagaimana cara membangun sistem tanya jawab online selangkah demi selangkah.

Langkah-langkah untuk Membangun Sistem Tanya Jawab

Sebelum memulai, Anda perlu menginstal Milvus dan PostgreSQL. Untuk langkah-langkah instalasi spesifik, lihat situs web resmi Milvus.

1. Persiapan data

Data percobaan dalam artikel ini berasal dari: https://github.com/chatopera/insuranceqa-corpus-zh

Kumpulan data tersebut berisi pasangan data pertanyaan dan jawaban yang berhubungan dengan industri asuransi. Dalam artikel ini kami mengekstrak 20.000 pasangan pertanyaan dan jawaban darinya. Melalui kumpulan data pertanyaan dan jawaban ini, Anda dapat dengan cepat membangun robot layanan pelanggan untuk industri asuransi.

2. Menghasilkan vektor fitur

Sistem ini menggunakan model yang telah dilatih sebelumnya oleh BERT. Unduh dari tautan di bawah ini sebelum memulai layanan: https://storage.googleapis.com/bert_models/2018_10_18/cased_L-24_H-1024_A-16.zip

Gunakan model ini untuk mengubah basis data pertanyaan menjadi vektor fitur untuk pencarian kemiripan di masa mendatang. Untuk informasi lebih lanjut tentang layanan BERT, lihat https://github.com/hanxiao/bert-as-service.

2-code-block.png 2-code-block.png

3. Mengimpor ke Milvus dan PostgreSQL

Normalisasi dan impor vektor fitur yang dihasilkan impor ke Milvus, dan kemudian impor ID yang dikembalikan oleh Milvus dan jawaban yang sesuai ke PostgreSQL. Berikut ini menunjukkan struktur tabel dalam PostgreSQL:

3-import-milvus-postgresql.png 3-impor-milvus-postgresql.png

4-import-milvus-postgresql.png 4-impor-milvus-postgresql.png

4. Mengambil Jawaban

Pengguna memasukkan sebuah pertanyaan, dan setelah membuat vektor fitur melalui BERT, mereka dapat menemukan pertanyaan yang paling mirip di perpustakaan Milvus. Artikel ini menggunakan jarak kosinus untuk merepresentasikan kemiripan antara dua kalimat. Karena semua vektor dinormalisasi, semakin dekat jarak kosinus dari dua vektor fitur ke 1, semakin tinggi kemiripannya.

Dalam praktiknya, sistem Anda mungkin tidak memiliki pertanyaan yang sangat cocok di perpustakaan. Kemudian, Anda dapat menetapkan ambang batas 0,9. Jika jarak kemiripan terbesar yang diperoleh kurang dari ambang batas ini, sistem akan meminta agar tidak menyertakan pertanyaan terkait.

4-retrieve-answers.png 4-mengambil-jawaban.png

Demonstrasi Sistem

Berikut ini adalah contoh tampilan antarmuka sistem:

5-milvus-QA-system-application.png 5-milvus-QA-sistem-aplikasi.png

Masukkan pertanyaan Anda dalam kotak dialog dan Anda akan menerima jawaban yang sesuai:

5-milvus-QA-system-application-2.png 5-milvus-QA-system-application-2.png

Ringkasan

Setelah membaca artikel ini, kami harap Anda dapat dengan mudah membuat Sistem Tanya Jawab Anda sendiri.

Dengan model BERT, Anda tidak perlu lagi menyortir dan mengatur korpus teks sebelumnya. Pada saat yang sama, berkat kinerja tinggi dan skalabilitas tinggi dari mesin pencari vektor open source Milvus, sistem QA Anda dapat mendukung korpus hingga ratusan juta teks.

Milvus telah secara resmi bergabung dengan Linux AI (LF AI) Foundation untuk inkubasi. Anda dipersilakan untuk bergabung dengan komunitas Milvus dan bekerja sama dengan kami untuk mempercepat penerapan teknologi AI!

=> Coba demo online kami di sini: https://www.milvus.io/scenarios

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started

Like the article? Spread the word

Terus Baca