(更新10/23/2022)我們發布了Godel v1.1,該V1.1在Reddit討論線程中接受了5.51m多轉向對話的培訓,以及5M的指導和知識接地對話框。它在我們的基準測試中顯示出明顯更好的結果,尤其是在零射擊設置中。
請在HuggingFace Transformers存儲庫中查看我們的型號卡。有了幾行代碼,與Godel聊天應該非常簡單。現場演示在這裡顯示。
基本模型:https://huggingface.co/microsoft/godel-v1_1-base-seq2seq
大型模型:https://huggingface.co/microsoft/godel-v1_1-large-seq2seq
該存儲庫使用Godel展示了以目標為導向的對話框,並包含以下論文的數據集,源代碼和預培訓的模型:
Godel:針對目標導向對話的大規模預訓練
鮑林·彭(Baolin Peng),米歇爾·加利(Michel Galley),彭本(Pengcheng HE),克里斯·布羅基特(Chris Brockett),拉爾斯·裡登(Lars Liden),埃爾納茲·諾里(Elnaz Nouri),週YU,比爾·多蘭(Bill Dolan) 
Godel是針對目標導向對話的大規模預訓練模型。它是使用基於變壓器的編碼器模型進行參數化的,並經過培訓,用於以外部文本為基礎的響應生成,該模型允許對對話框任務進行更有效的微調,以調節當前對話外部信息的響應(例如,檢索到的文檔)。可以通過少數特定於任務的對話框進行預訓練的模型進行有效的微調和調整以完成新的對話任務。
該存儲庫基於Hugginface Transformers。一些評估腳本和數據集適用於DSTC7-END到端轉換模型,Dialogpt,UnifieDQA,MS MARCO,MULTIWOZ,模式引導的數據集等。
隨附的腳本可用於重現本文報告的結果。項目和演示網頁:https://aka.ms/godel
需要交互式接口requries node.js和npm 。請參考此處進行安裝。
請使用以下命令來創建環境,克隆回購併安裝所需的軟件包。
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`"
獲取並解開基於驗證的模型,該模型以此為基礎,以繼續捕獲自己的數據。
wget https://bapengstorage.blob.core.windows.net/fileshare/godel_base.tar.gz
tar -zxvf godel_base.tar.gz數據格式
{
"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 "
},我們使用JSON格式代表培訓示例。如上面的示例所示,它包含以下字段:
微調
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 24一代
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 相互作用
我們提供了一個演示界面,可以與FineTuned Models聊天。後端服務器基於燒瓶,接口基於VUE , Bootstrap-vue和BasicVuechat 。
啟動後端服務器:
# Please create the backend server refering to e.g., dstc9_server.py
python EXAMPLE_server.py # start the sever and expose 8080 開始服務前端頁面:
cd GODEL/html
npm install
npm run serve 打開Localhost:8080在您的Web瀏覽器中,您將看到以下頁面。請注意,後端端口應與HTML/COMPOENTS/CHAT.VUE中使用的端口一致。
現場演示在這裡顯示。
我們發布了Godel v1.1,該V1.1通過Reddit討論線程和5M教學和知識接地的對話進行了5.51m的多轉話對話。更多型號將在稍後發布。
我們已經發布了三個微調模型,可以在低資源用戶注定的數據集中進行進一步調整。這些模型中的總參數範圍為1.17億至2.7B。
| 模型 | 擁抱面模型卡 |
|---|---|
| 根據 | Microsoft/godel-v1_1-base-seq2seq |
| 大的 | Microsoft/godel-v1_1-large-seq2seq |
5/22/2023:不再支持使用我們的代碼庫進行預訓練的Godel模型,但Godel模型仍然可用。有關詳細信息,請參見此處。
Godel經過微調和評估四個任務。我們提供腳本以創建格式的培訓和測試數據。請參閱create_downstream_dataset.sh下載原始數據並執行以下CMD。
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 在本教程中,您將基於DSTC9任務的Godel構建基礎對話模型。詳細信息可以在此處找到。
首先下載數據並將其轉換為Godel格式。
cd examples/dstc9
./create_data.sh帶有預先訓練的Godel模型的芬太納
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 與上述訓練的模型互動
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 serve該存儲庫旨在促進研究大規模建築任務機器人范式的研究。該工具包僅包含在運行對話框中實際生成模型權重文件所需的建模機械。該模型本身僅提供有關各種文本跨度的權重的信息;為了使研究人員實際使用它,他們將需要將自己的內部對話數據帶入未來的預訓練,並將響應生成從驗證的/填充系統中解碼。微軟對驗證系統的第三方利用率中的任何一代都不承擔任何責任。
如果您在研究中使用此代碼和數據,請引用我們的Arxiv論文:
@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/},
}
該項目歡迎貢獻和建議。大多數捐款要求您同意撰寫貢獻者許可協議(CLA),宣布您有權並實際上授予我們使用您的貢獻的權利。有關詳細信息,請訪問https://cla.opensource.microsoft.com。
當您提交拉動請求時,CLA機器人將自動確定您是否需要提供CLA並適當裝飾PR(例如狀態檢查,評論)。只需按照機器人提供的說明即可。您只需要使用我們的CLA在所有存儲庫中進行一次。
該項目採用了Microsoft開源的行為代碼。有關更多信息,請參見《行為守則常見問題守則》或與其他問題或評論聯繫[email protected]。
該項目可能包含用於項目,產品或服務的商標或徽標。 Microsoft商標或徽標的授權使用受到了Microsoft的商標和品牌準則的約束。在此項目的修改版本中使用Microsoft商標或徽標不得引起混亂或暗示Microsoft贊助。任何使用第三方商標或徽標都遵守這些第三方政策。