Repositori ini berisi kode sumber dan model terlatih untuk model pembuatan respons dialog pretrained skala besar. Hasil evaluasi manusia menunjukkan bahwa respons yang dihasilkan dari dialogpt sebanding dengan kualitas respons manusia di bawah tes Turing percakapan tunggal.
Repositori ini didasarkan pada huggingface pytorch-transformer dan openai gpt-2, berisi skrip ekstraksi data, kode pelatihan model dan medium kecil (117m) (345m) dan pos pemeriksaan model besar (762m).
Model ini dilatih pada dialog multi-turn 147m dari utas diskusi Reddit. Model terbesar dapat dilatih dalam beberapa jam pada mesin 8 V100 (namun ini tidak diperlukan), dengan pelatihan terdistribusi dan opsi FP16.
Script termasuk dapat digunakan untuk mereproduksi hasil tantangan pembuatan dialog DSTC-7 dan dataset multi-referensi 6K yang dibuat dari data Reddit.
Halaman web proyek: https://www.microsoft.com/en-us/research/project/large-cale-pretraining-for-response-generation/
Kertas Arxiv: https://arxiv.org/abs/1911.00536
(Perbarui 07/09/2022) Perubahan pada server file.pushshift.io/reddit menyebabkan pipa pembuatan data kami pecah. Masalah -masalah ini sekarang telah diperbaiki, dan langkah -langkah yang dijelaskan dalam ayat persiapan data di bawah ini harus berfungsi lagi. Data dihasilkan dalam waktu sekitar 10 jam dengan 8 proses ( -j 8 ), dan ruang disk sementara 800GB diperlukan.
(UPDATE 06/23/2021) Kami telah merilis versi Dialogpt (Retgen) Retrieval-Agusted/Ground
(Perbarui 05/20/2021) Panduan video yang luar biasa di YouTube untuk Dialogpt oleh Prakhar Mishra
(UPDATE 03/31/2021) Demo Pihak ke -3 oleh AK391 Menggunakan Demo Web Gradio Cobalah
(UPDATE 09/15/2020) Satu set model peringkat dialog skala besar telah dirilis!
Generasi Dialogpt ditingkatkan dengan mengintegrasikan dengan model peringkat dialog terbaru kami, Dialogrpt
(UPDATE 07/08/2020) Set uji multi-ref 6K telah dirilis!
Untuk menghasilkan data, pleaser run demo.py dan atur opsi data untuk 'penuh', set uji multi-ref 6K yang dihasilkan akan ditempatkan di
./data/test.refs.txt
(Perbarui 03/10/2020) Kartu Model Tersedia di Transformers Huggingface!
Silakan periksa kartu model kami di Repositori HuggingFace Transformers. Dengan beberapa baris kode, harus cukup lurus untuk bermain dengan dialogpt secara interaktif.
Model Kecil: https://huggingface.co/microsoft/dialogpt-small
Model Sedang: https://huggingface.co/microsoft/dialogpt-medium
Model Besar: https://huggingface.co/microsoft/dialogpt-large
(Baru) Model Peringkat: https://huggingface.co/microsoft/dialogrpt-updown
(Perbarui 01/06/2020) Beberapa implementasi skrip decoding pihak ketiga:
Dialogpt dikembangkan sepenuhnya pada Ubuntu 16.04 , dan - tergantung pada ketersediaan kami - kami mencoba memberikan dukungan jika Anda mengalami kesulitan menjalankan kode pada konfigurasi yang sama. Namun, kami tidak dapat memberikan dukungan untuk distribusi lain atau sistem operasi . Bagian dari kode dapat dijalankan pada rasa UNIX lainnya (MacOS, Subsistem Windows untuk Linux, Cygwin, dll.), Tetapi disarankan untuk menggunakan Ubuntu untuk kode pelatihan utama.
Kode pelatihan dapat dijalankan pada CPU, tetapi bisa lambat. Kami akan merekomendasikan untuk menggunakan GPU untuk melatih dan finetune semua model. Tidak ada batasan minimal dari jumlah GPU. Namun, jika menggunakan kereta terdistribusi untuk beberapa konfigurasi GPU, speed-up vs jumlah GPU kira-kira sub-linear. Untuk mensimulasikan ukuran batch yang sama saat menggunakan GPU lebih sedikit, silakan gunakan gradient_accumulation_steps yang lebih besar dalam pelatihan model.
Model 117m dan 345m dapat dimuat dalam GPU tunggal dengan memori 12g. Model 762m akan membutuhkan GPU tunggal yang memiliki memori lebih dari 16g untuk pelatihan yang efisien. Kecepatan pelatihan pada data benchmark dengan instance pelatihan 50m dan V100 GPU:
| n_gpu | waktu zaman (h) | token/dtk |
|---|---|---|
| 1 | 118 | 10847 |
| 2 | 62 | 20645 |
| 4 | 34 | 37647 |
| 8 | 18 | 71356 |
Fine-tuning dari model pretrained kami pada dataset baru biasanya membutuhkan 1-2 zaman.
Kami membuat demo script demo.py untuk meringankan kesulitan penyebaran sistem ini. demo.py berisi pipa pengunduhan model , ekstraksi data, preprocessing data dan pelatihan model melalui dataset dummy dalam satu baris perintah.
Harap gunakan commandline di bawah ini untuk mengkloning, instal persyaratan dan muat lingkungan Conda (perhatikan bahwa perangkat pengembang NVIDIA CUDA 10.0 diperlukan): diperlukan:
sudo apt-get install -y make wget gzip bzip2 xz-utils zstd sedgit clone https://github.com/microsoft/DialoGPT.git
cd DialoGPT
conda env create -f LSP-linux.yml -n LSP
conda activate LSP Jika Anda menjalankan ini pada arsitektur selain Linux, harap gunakan LSP-generic.yml alih-alih LSP-linux.yml tetapi harap dicatat bahwa yang generik tidak diuji di semua platform, sehingga stablity tidak dapat gauranteed. Untuk menggunakan pelatihan FP16, silakan instal APEX dengan menggunakan perintah di bawah ini
conda activate LSP
git clone https://github.com/NVIDIA/apex
cd apex
git reset --hard 3d01e4a0a188cc8df54bc6e44cf5eb40ff6b4cc5
pip install -v --no-cache-dir --global-option= " --cpp_ext " --global-option= " --cuda_ext " .
python3.6 demo.pyUntuk memulai, pertama instal Docker dan Nvidia-Docker dari repo resmi mereka. Lingkungan gambar untuk menjalankan kode dapat dimuat seperti di bawah ini:
Nvidia-Docker V2. *
$ docker run --gpus all --ipc=host --rm -it -v $PWD :/workspace --network=host icaruszyz/large-scale-training:dialogpt bashNvidia-Docker V1. *
$ nvidia-docker --rm -it -v $PWD :/workspace --network=host icaruszyz/large-scale-training:dialogpt bashDi dalam wadah Docker, jalankan
python demo.py Bagian ini menjelaskan semua komponen dalam demo.py
Sebelum menjalankan demo.py , Anda dapat mengatur data_folder (nilai default ./models ) di demo.py sebagai tempat Anda ingin mengunduh semua data dan model pretrained/fine-tuned. Lalu cukup jalankan
python demo.pyke
Perhatikan bahwa secara default demo.py akan menggunakan data dummy, harap tentukan data pelatihan reddit dengan menggunakan opsi --data . Tiga opsi tersedia: dummy , small dan full .
python demo.py --data small
python demo.py --data fullData reddit kecil adalah sekitar 140MB dan data Reddit penuh lebih dari 27GB. Anda dapat menyiapkan secangkir kopi saat diproses dengan data Reddit penuh karena butuh waktu lama !
Untuk menghasilkan data set uji multi-ref 6K, pleaser run demo.py dan atur opsi data untuk 'penuh', generasi akan ditempatkan di
./data/test.refs.txt
Model pretrained dan fine-tuned tersedia di Azure Blobstorage. Silakan jalankan/lihat demo.py untuk detail lebih lanjut tentang cara mengunduh/menggunakan model -model itu. Atau Anda dapat mengunduh langsung dengan menggunakan tautan di demo_utils.py .
Pertama, gunakan prepare4db.sh untuk mengonversi file data TSV ke dalam format yang benar yang dapat dikenali oleh skrip berikut. Data pelatihan harus kemudian diproses ke dalam file database dengan Commandline di bawah ini:
python prepro.py --corpus $DATA_PATH Skrip pelatihan dapat digunakan dalam GPU tunggal atau beberapa pengaturan GPU (pelatihan terdistribusi di beberapa GPU dalam satu node):
python ./LSP_train.py # Single GPU training
python -m torch.distributed.launch --nproc_per_node=8 ./LSP_train.py # Training on 8 GPUsSkrip pelatihan menerima beberapa argumen untuk mengubah pelatihan:
| Argumen | Jenis | Nilai default | Keterangan |
|---|---|---|---|
| max_seq_length | int | 128 | Jumlah token maksimum untuk setiap instance pelatihan. |
| train_input_file | str | "" | Jalur dataset pelatihan dalam format .db |
| eval_input_file | str | "" | Jalur validasi yang ditetapkan dalam format TSV |
| lanjutan_from | int | 0 | Melanjutkan pelatihan setelah sejumlah langkah tertentu |
| FP16 | boolean | True | Apakah akan menggunakan titik mengambang 16-bit untuk pelatihan model. |
| train_batch_size | int | 4 | Ukuran batch untuk pelatihan |
| valid_batch_size | int | 4 | Ukuran batch untuk validasi |
| gradient_accumulation_steps | int | 2 | Menumpuk gradien pada beberapa langkah |
| learning_rate | float | 1e-5 | Tingkat pembelajaran |
| LR_SCHEDULE | str | noam | Jadwal tingkat pembelajaran dapat dipilih dari [ noam , noamwd , BERT , None ] |
| num_optim_steps | int | 1000000 | Jumlah Langkah Optimalisasi Pelatihan |
| no_token_id | boolean | True | Jika diatur, menggunakan embedding tipe token all-zeros. |
Selama pelatihan, dua file log akan diperbarui. train_log.txt dan eval_log.txt berisi statistik kehilangan model, kebingungan dan kecepatan pelatihan (token/detik) untuk pelatihan dan set dev.
File log dan pos pemeriksaan model yang disimpan dapat ditemukan di ./models/output_model
Kami mencatat bahwa bahkan dengan dataset Reddit yang disaring dengan benar, kadang -kadang model kami masih dapat menghasilkan respons yang cukup toksik/tidak pantas. Karena alasan ini, kami tidak dapat memberikan skrip decoding saat ini (demo langsung dan akses skrip decoding hanya setelah diundang sekarang). Kami saat ini masih mengerjakan metode decoding yang terkontrol untuk mencegah sistem ini dari generasi beracun. Mohon tetap disini.
Lihat Masalah #3 dan Diskusi Reddit untuk beberapa diskusi tentang metode decoding pihak ketiga.
Lihat di bawah untuk beberapa metode decoding pihak ketiga:
Kami merilis 6 model fine-tuned yang dapat disesuaikan lebih lanjut pada dataset yang disesuaikan dengan pengguna rendah sumber daya. Parameter total dalam model ini berkisar dari 117m hingga 762m, sesuai dengan ukuran model OpenAI GPT-2.
| Model | Fine-tuned dari GPT-2 | Dilatih dari awal |
|---|---|---|
| Model Dialogpt 762m | [Tautan] [Kartu Model Huggingface] | [link] |
| Dialogpt 345m Model | [Tautan] [Kartu Model Huggingface] | [link] |
| Model 117m Dialogpt | [Tautan] [Kartu Model Huggingface] | [link] |
| Model Dialogpt 345M (Reverse, untuk MMI) | link | - |
| Dialogrpt (model peringkat baru ) | link | - |
File model dapat dimuat persis seperti pos pemeriksaan model GPT-2 dari Transformers HuggingFace. Anda dapat menemukan file konfigurasi yang sesuai ( merges.txt , config.json , vocab.json ) dalam repo Dialogpt di ./configs/* .
Model terbalik memprediksi sumber dari target. Model ini digunakan untuk reranking MMI.
Model Dialogrpt model peringkat yang baru -baru ini kami usulkan digunakan untuk memprediksi umpan balik manusia (Upvotes, balasan) dari tanggapan. Model -model ini dapat digunakan untuk meningkatkan kualitas pembuatan dialogpt (lihat kertas EMNLP kami untuk detailnya).
Langkah pertama untuk melatih kembali model lengkap adalah menghasilkan dataset Reddit 27GB yang disebutkan di atas. Ini melibatkan mengunduh pengiriman Reddit lengkap dan komentar yang dibuang dari https://files.pushshift.io/reddit dan membuat file menengah, yang secara keseluruhan membutuhkan 700GB ruang disk lokal . Mengunduh dan memproses data lengkap membutuhkan sekitar 1-2 hari, tergantung pada (CPU) Compute Capabilties Anda (misalnya, ~ 24 jam dengan 8 core pada komputer baru-baru ini). Dengan asumsi Anda menjalankan langkah -langkah pengaturan dan instalasi di atas (CONDA mengaktifkan LSP, dll.), Anda dapat membuat dataset lengkap dengan menjalankan:
python demo.py --data full
atau
cd reddit_extractor; SIZE=full make -j 8; cd ..
Perintah sebelumnya memanggil yang terakhir, sehingga kedua metode tersebut setara. Kami merekomendasikan yang pertama, karena yang terakhir sebagian besar berguna jika Anda mengalami masalah apa pun atau ingin menyesuaikan argumen apa pun (misalnya, perintah make memungkinkan Anda membangun hanya sebagian dari data). Perhatikan bahwa fase pengunduhan dapat rawan kesalahan, misalnya berdasarkan geolokasi Anda (firewall, dll.). Jika perintah di atas gagal menghasilkan data/train.tsv , atau jika file itu tidak mendekati 27GB, itu berarti ada yang salah. Dalam hal ini, Anda mungkin ingin memeriksa reddit_extractor/wget-log dan reddit_extractor/logs/*.log untuk kesalahan yang jelas (misalnya, wget tidak dapat mengunduh dari pushshift.io). Jika pesan kesalahan tidak masuk akal bagi Anda, jangan ragu untuk menghubungi kami. Jika demikian, pastikan untuk memasukkan pesan kesalahan yang dikumpulkan dari file log ini.
Statistik Data Pelatihan: File TSV pelatihan yang dihasilkan harus kira-kira 26,8 GB tidak terkompresi, dengan 146,8 juta instance pelatihan, token sumber 3,87B, dan token target 2.14B (termasuk bobot level ucapan 0/1). File train.tsv yang dihasilkan harus berisi 146.846.215 baris.
Kami merekomendasikan menghasilkan data di atas menggunakan demo.py --data full , karena (1) menghasilkan data, (2) mengubahnya menjadi format DB, dan (3) melatih model menggunakan python LSP_train.py . Harap langsung mengedit demo.py jika Anda ingin menyesuaikan salah satu hyperparameters.
Model kami mencapai hasil canggih dalam tugas pembuatan respons Tantangan DSTC-7.
| Percobaan | Nist2 | Nist4 | Bleu2 | Bleu4 | METEOR | ENT-4 | Dist-1 | Dist-2 | Rata -rata. Len |
|---|---|---|---|---|---|---|---|---|---|
| Respons manusia | 2.62 | 2.65 | 12,35% | 3,13% | 8,31% | 10.45 | 16,66% | 67,01% | 18.8 |
| Pemenang DSTC-7 | 2.51 | 2.52 | 14,35% | 1,83% | 8,07% | 9.03 | 10,89% | 32,49% | 15.1 |
| Dialogpt 345m | 2.80 | 2.82 | 14,16% | 2,31% | 8,51% | 10.08 | 9,13% | 39,73% | 16.9 |
| Dialogpt 345m (BS) | 2.92 | 2.97 | 19,18% | 6,05% | 9,29% | 9.57 | 15,73% | 51,03% | 14.2 |
di mana ENT mewakili skor entropi, dan Dist mewakili skor yang berbeda. Untuk semua metrik kecuali panjang rata -rata, lebih besar lebih baik.
Perhatikan bahwa evaluasi otomatis superior yang dibandingkan dengan respons manusia tidak perlu menyiratkan bahwa model kami mencapai paritas manusia. Silakan periksa makalah kami untuk analisis lebih rinci.
Untuk menyempurnakan model DialogPT 345M pada data tantangan DSTC-7 di server dengan 8 V100 GPU, silakan jalankan Commandline berikut (data DSTC dapat ditemukan di DSTC-7 Repo):
python3 -m torch.distributed.launch --nproc_per_node=8 train_LSP.py --init_checkpoint ./models/medium/medium_ft.pkl --train_input_file ./data/DSTC_train.db --eval_input_file ./data/DSTC_valid.tsv --model_name_or_path ./model/medium/ --learning_rate 1e-4 --train_batch_size 64 --eval_batch_size 64 --no_token_idModel terlatih dapat ditemukan di DSTC Medium Model
Silakan unduh paket pihak ke-3 berikut dan simpan ke folder kosong 3rdparty :
cpan install ): xml: ranting, sortir: secara alami dan string: util. Harap ikuti repo resmi DSTC-7 untuk mengekstrak data, dan masukkan data-official-test/test.refs.txt ke dalam ./dstc/data/ folder.
Jalankan skrip ekstraksi di bawah ini untuk menghasilkan file hipotesis respons manusia human.resp.txt :
python extract_human.pyAkhirnya, untuk mereproduksi hasil hipotesis manusia pada dataset DSTC, silakan jalankan perintah berikut di bawah folder repo:
python batch_eval.py Hasil evaluasi akan dihasilkan di folder ./dstc/eval/
Kami menguji dataset multi-ref 6K dari Reddit. Hasilnya dirangkum di bawah ini
| Percobaan | Nist2 | Nist4 | Bleu2 | Bleu4 | METEOR | ENT-4 | Dist-1 | Dist-2 | Rata -rata. Len |
|---|---|---|---|---|---|---|---|---|---|
| Respons manusia | 3.41 | 4.25 | 17,90% | 7,48% | 10,64% | 11 | 14,50% | 63,00% | 13.1 |
| Dialogpt 117m | 2.39 | 2.41 | 10,54% | 1,55% | 7,53% | 10.78 | 8,60% | 39,90% | 12.8 |
| Dialogpt 345m | 3 | 3.06 | 16,96% | 4,56% | 9,81% | 9.13 | 6,80% | 26,30% | 12.2 |
| Dialogpt 762m | 2.84 | 2.9 | 18,66% | 5,25% | 9,66% | 9.72 | 7,76% | 29,93% | 11.2 |
| Dialogpt 345m (BS) | 3.4 | 3.5 | 21,76% | 7,92% | 10,74% | 10.48 | 12,38% | 48,74% | 11.3 |
| Dialogpt 345m (W/MMI) | 3.28 | 3.33 | 15,68% | 3,94% | 11,23% | 11.25 | 9,39% | 45,55% | 17.2 |
Kami selanjutnya melakukan evaluasi manusia (contoh 6K untuk setiap metode, setiap contoh dievaluasi oleh 3 hakim manusia). Hasilnya menunjukkan bukti kuat bahwa kualitas generasi kita adalah untuk mendekati kualitas respons manusia nyata, di bawah tes Turing yang tidak interaktif ini:
Relevansi : A dan B, mana yang lebih relevan dengan prompt sumber.
| Sistem a | A menang (%) | Ikatan (%) | B menang (%) | Sistem b |
|---|---|---|---|---|
| Dialogpt 345m | 2671 (45%) | 513 (9%) | 2816 (47%) | Tanggapan manusia |
| Dialogpt 345m | 3281 (72%) | 394 (9%) | 882 (19%) | PersonalityChat |
| Dialogpt 345m W/ MMI | 2871 (48%) | 522 (9%) | 2607 (43%) | Tanggapan manusia |
Informativeness : A dan B, yang mana yang lebih puas dan informatif.
| Sistem a | A menang (%) | Ikatan (%) | B menang (%) | Sistem b |
|---|---|---|---|---|
| Dialogpt 345m | 2722 (45%) | 234 (4%) | 3044 (51%) | Tanggapan manusia |
| Dialogpt 345m | 3490 (77%) | 206 (5%) | 861 (19%) | PersonalityChat |
| Dialogpt 345m W/ MMI | 3011 (50%) | 234 (4%) | 2755 (46%) | Tanggapan manusia |
Human-like : A dan B, yang menurut Anda lebih mungkin dihasilkan oleh manusia.
| Sistem a | A menang (%) | Ikatan (%) | B menang (%) | Sistem b |
|---|---|---|---|---|
| Dialogpt 345m | 2716 (45%) | 263 (4%) | 3021 (50%) | Tanggapan manusia |
| Dialogpt 345m | 3462 (76%) | 196 (4%) | 899 (20%) | PersonalityChat |
| Dialogpt 345m W/ MMI | 2978 (50%) | 241 (4%) | 2781 (46%) | Tanggapan manusia |
Silakan lihat detail lengkap di kertas Arxiv kami.
| Peran | Tanggapan |
|---|---|
| Pengguna | Apakah uang membeli kebahagiaan? |
| Bot | Tergantung berapa banyak uang yang Anda habiskan untuk itu. |
| Pengguna | Apa cara terbaik untuk membeli kebahagiaan? |
| Bot | Anda hanya harus menjadi jutawan pada awal usia 20 -an, maka Anda bisa bahagia. |
| Pengguna | Ini sangat sulit! |
| Bot | Anda tidak tahu betapa sulitnya menjadi jutawan dan bahagia. Ada alasan mengapa orang kaya punya banyak uang |
| Peran | Tanggapan |
|---|---|
| Pengguna | Apa arti hidup? |
| Bot | Artinya adalah bersama keluarga dan teman Anda. |
| Bot | Saya akan menebak: itu berarti bahwa orang tua dan teman Anda telah mencintai Anda. Itulah artinya, saya percaya. |
| Bot | Saya pikir artinya adalah memastikan Anda hidup saat Anda mati. Jadi, Anda akan bersama keluarga, teman, dan diri Anda sendiri. |
| Bot | Tidak, tapi terima kasih telah mencoba membantu. |
| Pengguna | Bot |
|---|---|
| siapa presiden pertama Amerika Serikat | George Washington |
| Apa titik air mendidih? | Saya pikir ini sekitar 212 F. |
| Mana yang lebih besar, matahari atau bulan? | Matahari. |
| Hewan mana yang memiliki garis -garis hitam dan putih? | Kucing bergaris hitam dan putih. |
| Pengguna | Bot |
|---|---|
| Perang perdagangan antara Cina dan AS masih terjadi. | Saya yakin pemerintah Cina dan U. S . Akan baik -baik saja dengan itu selama mereka menjaga tangan mereka di atas meja dan uang mengalir. |
| Siapa yang memenangkan Piala Dunia pada tahun 2018? | Jerman, saya percaya. |
| Titan RTX Nvidia sangat bagus. | Saya memiliki kartu ini dan saya menyukainya. Tidak ada keluhan. |
| Bisakah Porsche mengalahkan Tesla dengan EV Taycan baru? | Saya kira tidak demikian . Tesla lebih kuat dari Porsche. |
| Pengguna | Bot |
|---|---|
| Apa arti kehidupan yang baik? | Saya pikir kita semua terhubung dengan kehidupan masa lalu kita dan makna hidup adalah untuk menjalani seperti yang Anda inginkan dan bagaimana Anda mau. |
| Mana yang lebih penting - menjadi sukses atau bahagia? | Menjadi sukses tidak ada habisnya. Menjadi bahagia adalah satu -satunya hal yang penting. |
| Apakah kedamaian satu -satunya cara untuk menghentikan perang? | Tidak jika dunia tidak mau bekerja dengan Anda. Damai adalah tujuan akhir, tetapi perdamaian membutuhkan lebih dari itu. |
| Berapa banyak kebebasan yang harus dimiliki orang? | Jumlah kebebasan yang tepat adalah kebebasan untuk melakukan sesuka Anda, selama Anda tidak menyakiti orang atau properti. |
| Pengguna | Bot |
|---|---|
| Apa pendapat Anda tentang repo Dialogpt? | Cukup bagus, tapi sangat mudah untuk menemukan bug. |
Harap mulai masalah jika Anda menemukannya :)
Demo langsung dan akses skrip decoding hanya atas undangan sekarang. Harap tetap disetel untuk rilis penuh.
Retgen: https://github.com/dreasysnail/retgen. Dialogpt Retrieval-Agusted/Grounded dan Beyond. Retgen adalah kerangka kerja pelatihan bersama yang secara bersamaan mengoptimalkan bagian retriever yang padat dan generator teks yang didasarkan pada pengetahuan dengan cara ujung ke ujung.
Microsoft Icecaps: https://github.com/microsoft/icecaps.
Sebagai gudang ortogonal dari proyek ini, Microsoft Icecaps adalah toolkit open-source (dalam TensorFlow) untuk membangun sistem percakapan saraf. ICECAPS menyediakan serangkaian alat dari pemodelan percakapan baru-baru ini dan literatur NLP umum dalam paradigma fleksibel yang memungkinkan pengaturan pembelajaran multi-tugas yang kompleks.
Unilm pretrained: https://github.com/microsoft/unilm
MT-DNN: https://github.com/namisan/mt-dnn
Rekan dialogpt Cina oleh Yangjianxin1. https://github.com/yangjianxin1/gpt2-chitchhat. Kami senang melihat bahwa strategi MMI yang kami gunakan dalam Dialogpt juga telah meningkatkan kinerja untuk proyek ini juga!
Silakan hubungi [email protected] jika Anda memiliki pertanyaan/saran. Namun, responsnya akan sporadis. Harap harapkan penundaan.
Proyek ini menyambut kontribusi dan saran. Sebagian besar kontribusi mengharuskan Anda untuk menyetujui perjanjian lisensi kontributor (CLA) yang menyatakan bahwa Anda memiliki hak untuk, dan benar -benar melakukannya, beri kami hak untuk menggunakan kontribusi Anda. Untuk detailnya, kunjungi https://cla.opensource.microsoft.com.
Saat Anda mengirimkan permintaan tarik, bot CLA akan secara otomatis menentukan apakah Anda perlu memberikan CLA dan menghiasi PR secara tepat (misalnya, pemeriksaan status, komentar). Cukup ikuti instruksi yang disediakan oleh bot. Anda hanya perlu melakukan ini sekali di semua repo menggunakan CLA kami.
Proyek ini telah mengadopsi kode perilaku open source Microsoft. Untuk informasi lebih lanjut, lihat FAQ Kode Perilaku atau hubungi [email protected] dengan pertanyaan atau komentar tambahan.
Repositori ini bertujuan untuk memfasilitasi penelitian dalam pretraining skala besar untuk data percakapan. Toolkit ini hanya berisi bagian dari mesin pemodelan yang diperlukan untuk benar -benar menghasilkan file berat model dalam dialog yang sedang berjalan. Dengan sendirinya, model ini hanya memberikan informasi tentang bobot berbagai rentang teks; Agar seorang peneliti benar -benar menggunakannya, mereka perlu membawa data percakapan mereka sendiri dan memecahkan kode generasi respons dari sistem pretrained. Microsoft tidak bertanggung jawab atas generasi apa pun dari pemanfaatan pihak ke -3 dari sistem pretrained.
Jika Anda menggunakan kode ini dalam penelitian Anda, Anda dapat mengutip kertas arxiv kami:
@inproceedings{zhang2019dialogpt,
title={DialoGPT: Large-Scale Generative Pre-training for Conversational Response Generation},
author={Yizhe Zhang and Siqi Sun and Michel Galley and Yen-Chun Chen and Chris Brockett and Xiang Gao and Jianfeng Gao and Jingjing Liu and Bill Dolan},
year={2020},
booktitle={ACL, system demonstration}
}