(UPDATE 10/23/2022) Kami telah merilis Godel v1.1, yang dilatih pada dialog multi-turn 551m dari utas diskusi Reddit, dan instruksi 5M dan dialog yang didasarkan pada pengetahuan. Ini telah menunjukkan hasil yang jauh lebih baik pada tolok ukur kami, terutama dalam pengaturan nol-shot.
Silakan periksa kartu model kami di repositori HuggingFace Transformers. Dengan beberapa baris kode, harus cukup mudah untuk mengobrol dengan Godel. Demo langsung ditampilkan di sini.
Model dasar: https://huggingface.co/microsoft/godel-v1_1-base-seq2seq
Model besar: https://huggingface.co/microsoft/godel-v1_1-large-seq2seq
Repositori ini menampilkan dialog yang diarahkan pada tujuan menggunakan Godel, dan berisi dataset, kode sumber, dan model pra-terlatih untuk makalah berikut:
Godel: Pra-pelatihan skala besar untuk dialog yang diarahkan pada tujuan
Baolin Peng, Michel Galley, Pengcheng HE, Chris Brockett, Lars Liden, Elnaz Nouri, Zhou Yu, Bill Dolan, Jianfeng Gao 
Godel adalah model pra-terlatih berskala besar untuk dialog yang diarahkan pada tujuan. Ini diparameterisasi dengan model encoder-decoder berbasis transformator dan dilatih untuk pembuatan respons yang didasarkan pada teks eksternal, yang memungkinkan penyempurnaan yang lebih efektif pada tugas dialog yang memerlukan pengkondisian respons pada informasi yang eksternal untuk percakapan saat ini (misalnya, dokumen yang diambil). Model pra-terlatih dapat disesuaikan secara efisien dan disesuaikan untuk menyelesaikan tugas dialog baru dengan beberapa dialog khusus tugas.
Repositori ini didasarkan pada Transformers Hugginface. Beberapa skrip evaluasi dan dataset diadaptasi dari DSTC7-end-to-end-conversation-modeling, Dialogpt, UnifiedQA, MS Marco, Multiwoz, Dataset yang Dipandu Skema, dll.
Skrip yang disertakan dapat digunakan untuk mereproduksi hasil yang dilaporkan dalam makalah. Halaman web proyek dan demo: https://aka.ms/godel
Membutuhkan antarmuka interaktif requries node.js dan npm . Silakan merujuk di sini untuk instalasi.
Silakan gunakan perintah di bawah ini untuk membuat lingkungan, klon repo dan instal paket yang diperlukan.
conda create -n godel-env python=3.8
conda activate godel-env
conda install nodejs
git clone https://github.com/microsoft/GODEL.git
cd GODEL
pip install -r requirements.txt
export PYTHONPATH="`pwd`"
Ambil dan unzip model pretrained berdasarkan untuk melanjutkan finetune data Anda sendiri.
wget https://bapengstorage.blob.core.windows.net/fileshare/godel_base.tar.gz
tar -zxvf godel_base.tar.gzFormat data
{
"Context" : " Please remind me of calling to Jessie at 2PM. " ,
"Knowledge" : " reminder_contact_name is Jessie, reminder_time is 2PM " ,
"Response" : " Sure, set the reminder: call to Jesse at 2PM "
},Kami menggunakan format JSON untuk mewakili contoh pelatihan. Seperti yang ditunjukkan pada contoh di atas, ini berisi bidang -bidang berikut:
Fine-tuning
DATA_NAME={path_of_data}
OUTPUT_DIR={path_of_fine-tuned_model}
MODEL_PATH={path_of_pre-trained_model}
EXP_NAME={experiment_name}
python train.py --model_name_or_path ${MODEL_PATH}
--dataset_name ${DATA_NAME}
--output_dir ${OUTPUT_DIR}
--per_device_train_batch_size=16
--per_device_eval_batch_size=16
--max_target_length 512
--max_length 512
--num_train_epochs 50
--save_steps 10000
--num_beams 5
--exp_name ${EXP_NAME} --preprocessing_num_workers 24Generasi
DATA_NAME = { path_of_data }
OUTPUT_DIR = { path_to_save_predictions }
MODEL_PATH = { path_of_fine - tuned_model }
python generate . py - - model_name_or_path ${ MODEL_PATH }
- - dataset_name ${ DATA_NAME }
- - output_dir ${ OUTPUT_DIR }
- - per_device_eval_batch_size = 16
- - max_target_length 128
- - max_length 512
- - preprocessing_num_workers 24
- - num_beams 5 Interaksi
Kami menyediakan antarmuka demo untuk mengobrol dengan model finetuned. Server backend didasarkan pada Flask dan antarmuka didasarkan pada Vue , Bootstrap-Vue , dan BasicVuechat .
Mulai server backend:
# Please create the backend server refering to e.g., dstc9_server.py
python EXAMPLE_server.py # start the sever and expose 8080 Mulailah Melayani Halaman Frontend:
cd GODEL/html
npm install
npm run serve Buka LocalHost: 8080 di browser web Anda, Anda akan melihat halaman berikut. Perhatikan bahwa port backend harus konsisten dengan port yang digunakan dalam html/compoents/chat.vue.
Demo langsung ditampilkan di sini.
Kami telah merilis Godel v1.1, yang dilatih pada dialog multi-turn 551m dari utas diskusi Reddit dan instruksi 5M dan dialog yang didasarkan pada pengetahuan. Lebih banyak model akan dirilis nanti.
Kami telah merilis tiga model yang disesuaikan yang dapat disesuaikan lebih lanjut pada dataset yang disesuaikan dengan pengguna dengan sumber daya rendah. Parameter total dalam model ini berkisar dari 117m hingga 2,7 miliar.
| Model | Huggingface Model Cards |
|---|---|
| Basis | Microsoft/Godel-V1_1-Base-Seq2seq |
| Besar | Microsoft/Godel-V1_1-Large-Seq2seq |
5/22/2023: Model Godel pretraining dengan basis kode kami tidak lagi didukung, tetapi model Godel tetap tersedia. Lihat di sini untuk detailnya.
Godel disesuaikan dan dievaluasi pada empat tugas. Kami menyediakan skrip untuk membuat data pelatihan dan pengujian dalam format kami. Silakan merujuk ke create_downstream_dataset.sh untuk mengunduh data asli dan menjalankan CMD berikut.
cd scripts
./create_downstream_dataset.shGROUNDED_CHECKPOINT={path_to_saved_checkpoint}
OUTPUT_DIR={path_to_save_predictions}
TASK=wow
accelerate launch --config_file configs/G16_config.yaml train.py
--model_name_or_path ${GROUNDED_CHECKPOINT}
--dataset_name ./datasets_loader/ ${TASK} _dataset.py
--output_dir ${OUTPUT_DIR}
--per_device_train_batch_size=16
--per_device_eval_batch_size=16
--max_target_length 256
--max_length 512
--num_train_epochs 10
--preprocessing_num_workers 24
--num_beams 5
--exp_name ${TASK}
--learning_rate 5e-5
--save_every_checkpoint
--save_steps 50000 Dalam tutorial ini, Anda akan membangun model dialog ground berdasarkan Godel untuk tugas DSTC9. Informasi terperinci dapat ditemukan di sini.
Pertama -tama unduh data dan konversikan ke format Godel.
cd examples/dstc9
./create_data.shFinetune dengan model Godel pra-terlatih
cd GODEL
GODEL_MODEL={path_to_pre-trained_model}
python train.py
--model_name_or_path ${GODEL_MODEL}
--dataset_name ../examples/dstc9/dstc9_dataset.py
--output_dir ../examples/dstc9/ckpt
--per_device_train_batch_size=16
--per_device_eval_batch_size=16
--max_target_length 128
--max_length 512
--num_train_epochs 50
--save_steps 10000
--num_beams 5
--exp_name wow-test
--preprocessing_num_workers 24
--save_every_checkpoint Berinteraksi dengan model terlatih di atas
cd examples/dstc9
# replace model path in dstc9_server with a trained ckpt in line 49
python dstc9_server.py
cd GODEL/html
npm install
npm run serveRepositori ini bertujuan untuk memfasilitasi penelitian dalam pergeseran paradigma membangun bot tugas pada skala. 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 in-house sendiri untuk pra-pelatihan di masa depan dan memecahkan kode generasi respons dari sistem pretrained/finetuned. Microsoft tidak bertanggung jawab atas generasi apa pun dari pemanfaatan pihak ke -3 dari sistem pretrained.
Jika Anda menggunakan kode dan data ini dalam penelitian Anda, silakan kutip kertas arxiv kami:
@misc{peng2022godel,
author = {Peng, Baolin and Galley, Michel and He, Pengcheng and Brockett, Chris and Liden, Lars and Nouri, Elnaz and Yu, Zhou and Dolan, Bill and Gao, Jianfeng},
title = {GODEL: Large-Scale Pre-training for Goal-Directed Dialog},
howpublished = {arXiv},
year = {2022},
month = {June},
url = {https://www.microsoft.com/en-us/research/publication/godel-large-scale-pre-training-for-goal-directed-dialog/},
}
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.
Proyek ini dapat berisi merek dagang atau logo untuk proyek, produk, atau layanan. Penggunaan resmi merek dagang atau logo Microsoft tunduk dan harus mengikuti pedoman merek dagang & merek Microsoft. Penggunaan merek dagang atau logo Microsoft dalam versi yang dimodifikasi dari proyek ini tidak boleh menyebabkan kebingungan atau menyiratkan sponsor Microsoft. Setiap penggunaan merek dagang atau logo pihak ketiga tunduk pada kebijakan pihak ketiga tersebut.