Inggris |. Cina
Memanfaatkan Pengambilan Bagian dengan Model Generatif untuk Jawaban Pertanyaan Domain Terbuka
RetrievalPengambilan Bagian Padat untuk Menjawab Pertanyaan Domain Terbuka
Penjadwal APS
Sistem dialog proses penuh yang dapat diterapkan dan dijalankan
Model TensorFlow
Transformator
Seq2Seq
Model pengambilan SMN
Transformator Pengambilan Sampel Terjadwal
GPT2
Dialog Tugas
model Pytorch
Transformator
Seq2Seq
Proyek ini bertujuan untuk membangun sistem dialog yang dapat diterapkan secara online. Ini mencakup sistem dialog domain terbuka dan berorientasi tugas. Proyek ini mereproduksi model terkait digunakan dalam proyek.
Direktori data di gudang berisi data mainan untuk setiap korpus, yang dapat digunakan untuk memverifikasi eksekusi sistem. Korpus dan Paper lengkap dapat dilihat di sini
LCCC
LintasWOZ
ayam kuning kecil
Douban
Ubuntu
Qingyun
Tieba
Linux mengeksekusi run.sh, dan pemeriksaan direktori proyek mengeksekusi check.sh (atau check.py)
actuator.py di direktori root adalah pintu masuk eksekusi umum, yang dijalankan dengan memanggil format perintah berikut (perhatikan bahwa persyaratan.txt diinstal sebelum eksekusi):
python actuator.py --version [Options] --model [Options] ...
Saat mengeksekusi melalui actuator.py di direktori root, --version
, --model
dan --act
merupakan parameter yang diperlukan, di antaranya --version
adalah versi kode tf/torch
, --model
adalah model transformer/smn...
yang sesuai untuk eksekusi. transformer/smn...
, dan act adalah mode eksekusi ( mode pre_treat
secara default). Untuk parameter perintah yang lebih detail, silakan merujuk ke actuator.py
di bawah setiap model atau file konfigurasi json yang sesuai di direktori konfigurasi.
Mode eksekusi --act
dijelaskan sebagai berikut:
Mode pre_treat adalah mode prapemrosesan teks. Jika tidak ada kumpulan hasil segmentasi kata dan kamus, Anda perlu menjalankan mode pre_treat terlebih dahulu.
mode kereta adalah mode pelatihan
mode evaluasi adalah mode evaluasi indikator
Mode obrolan adalah mode percakapan. Saat menjalankan mode obrolan, masukkan ESC untuk keluar dari percakapan.
Urutan eksekusi normal adalah pre_treat->train->evaluate->chat
Ada actuator.py terpisah di bawah setiap model, yang dapat melewati sambungan luar untuk eksekusi dan pengembangan. Namun, perhatikan penyesuaian jalur direktori proyek selama eksekusi.
Dalam dialog, kode inti dari model yang relevan ditempatkan untuk memfasilitasi enkapsulasi dan pengemasan di masa depan.
pos pemeriksaan menyimpan lokasi untuk pos pemeriksaan
config adalah direktori tempat file konfigurasi disimpan
data adalah lokasi penyimpanan data asli. Pada saat yang sama, file data perantara yang dihasilkan selama eksekusi model juga disimpan dalam direktori ini.
model menyimpan direktori untuk model
tensorflow dan pytorch menempatkan kode inti untuk konstruksi model dan eksekusi setiap modul
preprocess_corpus.py adalah skrip pemrosesan korpus, yang memproses setiap korpus dalam dialog satu putaran dan multi-putaran, dan menstandarkan panggilan antarmuka terpadu.
read_data.py digunakan untuk panggilan format pemuatan data load_dataset.py
metrics.py adalah skrip untuk berbagai indikator
tools.py adalah skrip alat, yang berisi pemecah kata, operasi log, skrip simpan/muat pos pemeriksaan, dll.
Tempatkan instruksi dokumentasi di bawah dokumen, termasuk catatan bacaan kertas model
buruh pelabuhan (seluler) digunakan untuk skrip penerapan server (terminal seluler).
Server adalah antarmuka layanan UI. Gunakan labu untuk membangun dan menggunakannya.
tools adalah direktori alat yang dicadangkan
actuator.py (run.sh) adalah total pintu masuk aktuator
check.py (check.sh) adalah skrip pemeriksaan direktori proyek
Sebelum menggunakan sistem dialog pengambilan SMN, Anda perlu menyiapkan lingkungan Solr. Linux direkomendasikan untuk lingkungan sistem penerapan Solr. Disarankan untuk menggunakan penerapan kontainer (disarankan Docker) untuk alat, dan mempersiapkan:
Solr(8.6.3)
pysolr(3.9.0)
Penjelasan singkat diberikan di bawah ini. Untuk lebih jelasnya, silakan merujuk ke artikel: Dapatkan sistem dialog pengambilan respons kandidat - menggunakan pysolr untuk memanggil Solr
Untuk memastikan Solr berjalan secara online dengan stabil dan memfasilitasi pemeliharaan selanjutnya, silakan gunakan DockerFile untuk penerapan alamat akuisisi DockerFile: docker-solr
Untuk penggunaan model pengujian saja, Anda dapat menggunakan instruksi build paling sederhana berikut:
docker pull solr:8.6.3 # 然后启动solr docker run -itd --name solr -p 8983:8983 solr:8.6.3 # 然后创建core核心选择器,这里取名smn(可选) docker exec -it --user=solr solr bin/solr create_core -c smn
Mengenai alat segmentasi kata di Solr, ada IK Analyzer, Smartcn, Pinyin word segmenter, dll. Anda perlu mengunduh jar yang sesuai, lalu menambahkan konfigurasi di file konfigurasi inti Solr yang dikelola skema.
Catatan khusus : Jika Anda menggunakan TF-IDF, Anda juga perlu mengaktifkan konfigurasi kesamaan di skema terkelola.
Setelah menerapkan Solr online, gunakan pysolr dengan Python untuk menghubungkan dan menggunakan:
pip install pysolr
Cara penambahan data indeks (umumnya memerlukan pemeriksaan keamanan terlebih dahulu) adalah sebagai berikut. Tambahkan indeks ke data balasan. Respons adalah json dalam bentuk: [{},{},{},...]. Setiap objek di dalamnya dibuat sesuai dengan kebutuhan balasan Anda:
solr = pysolr.Solr(url=solr_server, always_commit=True, timeout=10) # 安全检查 solr.ping() solr.add(docs=responses)
Metode querynya adalah sebagai berikut. Untuk query semua pernyataan menggunakan TF-IDF, metode pernyataan querynya adalah sebagai berikut:
{!func}sum(product(idf(utterance,key1),tf(utterance,key1),product(idf(utterance,key2),tf(utterance,key2),...)
Sebelum digunakan, Anda perlu menambahkan data ke Solr. Untuk menggunakannya di model SMN ini, cukup jalankan mode pre_treat terlebih dahulu.
Hanya Perhatian yang Anda Butuhkan |.Catatan Bacaan: Karya perintis Transformer, layak untuk dibaca secara intensif |.Ashish dkk, 2017
Jaringan Pencocokan Sekuensial: Arsitektur Baru untuk Seleksi Respons Multi-putaran dalam Chatbot Berbasis Pengambilan | Membaca catatan: model dialog pengambilan SMN, ekstraksi informasi multi-lapisan dan multi-perincian |
Eksplorasi Besar-besaran Arsitektur Terjemahan Mesin Neural |. Catatan Bacaan: Analisis skala besar pertama menggunakan hyperparameter arsitektur NMT sebagai contoh disajikan. |.Denny dkk., 2017
Pengambilan Sampel Terjadwal untuk Transformer |. Catatan Bacaan: Menerapkan Pengambilan Sampel Terjadwal di Transformer |
Berlisensi di bawah Lisensi Apache, Versi 2.0 Hak Cipta 2021 DengBoCong.