(更新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赞助。任何使用第三方商标或徽标都遵守这些第三方政策。