(업데이트 10/23/2022) 우리는 Reddit 토론 스레드의 551m 다중 회전 대화와 5M 명령 및 지식 기반 대화 상자에 대한 교육을받은 Godel v1.1을 발표했습니다. 그것은 우리의 벤치 마크, 특히 제로 샷 설정에서 훨씬 더 나은 결과를 보여주었습니다.
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, Zhou Yu, Bill Dolan, Jianfeng Gao 
Godel은 목표 지향적 대화에 대한 대규모 미리 훈련 된 모델입니다. 변압기 기반 인코더 디코더 모델로 매개 변수화되고 외부 텍스트에 기반을 둔 응답 생성을 위해 교육을 받았으며, 이는 현재 대화 외부의 정보에 대한 응답을 조절 해야하는 대화 상자 작업에보다 효과적인 미세 조정을 허용합니다 (예 : 검색된 문서). 미리 훈련 된 모델은 효율적으로 미세 조정되고 적응하여 소수의 작업 별 대화 상자로 새로운 대화 작업을 수행 할 수 있습니다.
이 저장소는 Hugginface Transformers를 기반으로합니다. 일부 평가 스크립트 및 데이터 세트는 DSTC7-END-TO-END-CONVERSATION-MODELING, DINGOGPT, UNIFEIDQA, MS Marco, Multiwoz, Schema Guided DataSet 등에서 조정됩니다.
포함 된 스크립트를 사용하여 논문에보고 된 결과를 재현 할 수 있습니다. 프로젝트 및 데모 웹 페이지 : https://aka.ms/godel
대화식 인터페이스가 필요합니다 . 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 모델과 채팅하기위한 데모 인터페이스를 제공합니다. 백엔드 서버는 플라스크를 기반으로하며 인터페이스는 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 웹 브라우저에는 다음 페이지가 표시됩니다. 백엔드 포트는 HTML/Compoents/Chat.Vue에 사용되는 포트와 일치해야합니다.
라이브 데모가 여기에 표시됩니다.
우리는 Reddit 토론 스레드와 5M 명령 및 지식 지상 대화의 551m 다중 턴 대화에 대해 교육을받은 Godel v1.1을 발표했습니다. 더 많은 모델이 나중에 출시됩니다.
저수고 자원 사용자 가중화 데이터 세트에서 더 미세 조정할 수있는 세 가지 미세 조정 모델을 출시했습니다. 이 모델의 총 매개 변수는 117m에서 2.7b입니다.
| 모델 | 포옹 페이스 모델 카드 |
|---|---|
| 베이스 | Microsoft/Godel-v1_1-베이스 -seq2seq |
| 크기가 큰 | Microsoft/Godel-V1_1-Large-Seq2Seq |
5/22/2023 : 코드베이스를 사용하여 고델 모델을 더 이상 지원하지는 않지만 Godel 모델을 사용할 수 있습니다. 자세한 내용은 여기를 참조하십시오.
Godel은 세 가지 작업에 대해 미세 조정되고 평가되었습니다. 우리는 형식으로 교육 및 테스트 데이터를 만들기위한 스크립트를 제공합니다. 원래 데이터를 다운로드하고 다음 CMD를 실행하려면 Create_downStream_dataset.sh 를 참조하십시오.
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 모델과의 FINETUNE
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이 저장소는 규모에 따라 작업 봇을 구축하는 패러다임 전환에 대한 연구를 촉진하는 것을 목표로합니다. 이 툴킷에는 실행중인 대화 상자에서 실제로 모델 웨이트 파일을 생성하는 데 필요한 모델링 기계의 일부만 포함되어 있습니다. 자체적 으로이 모델은 다양한 텍스트 스팬의 가중치에 대한 정보 만 제공합니다. 연구원이 실제로 그것을 사용하려면, 미래의 사전 훈련을 위해 사내 대화 데이터를 가져 와서 사기꾼/미세한 시스템에서 응답 생성을 해독해야합니다. Microsoft는 사전에 사전 된 시스템의 제 3 자 활용의 세대에 대해 책임을지지 않습니다.
연구 에서이 코드와 데이터를 사용하는 경우 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 오픈 소스 행동 강령을 채택했습니다. 자세한 내용은 추가 질문이나 의견이 있으면 행동 강령 FAQ 또는 [email protected]에 문의하십시오.
이 프로젝트에는 프로젝트, 제품 또는 서비스에 대한 상표 또는 로고가 포함될 수 있습니다. Microsoft 상표 또는 로고의 승인 된 사용에는 Microsoft의 상표 및 브랜드 지침이 적용되며 따라야합니다. 이 프로젝트의 수정 된 버전에서 Microsoft 상표 또는 로고를 사용한다고해서 혼란을 일으키거나 Microsoft 후원을 암시해서는 안됩니다. 타사 상표 또는 로고를 사용하면 타사 정책이 적용됩니다.