MultiTurnDialogZoo
1.0.0
바로 사용할 수 있는 다중 턴 또는 단일 턴 대화 기준선 배치입니다.
PR 및 이슈를 환영합니다.
이러한 데이터 세트의 전처리 스크립트는 data/data_process
폴더에서 찾을 수 있습니다.
이 링크를 통해 세 가지 다중 회전 개방형 도메인 대화 데이터 세트(Dailydialog, DSTC7_AVSD, PersonaChat)를 얻을 수 있습니다.
각 데이터 세트에는 6개의 파일이 포함되어 있습니다.
모든 파일에서 한 줄에는 하나의 대화 컨텍스트(src) 또는 대화 응답(tgt)만 포함됩니다. 자세한 내용은 예제 파일에서 확인할 수 있습니다. 그래프를 생성하려면 각 문장은 화자를 나타내는 특수 토큰 <user0>
및 <user1>
으로 시작해야 합니다. __eou__
는 대화 맥락에서 여러 문장을 구분하는 데 사용됩니다. 자세한 내용은 소규모 데이터 사례에서 확인할 수 있습니다.
Seq2Seq, SeqSeq_MHA, HRED, HRED_RA, VHRED, WSeq, WSeq_RA, DSHRED, DSHRED_RA, HRAN, MReCoSa, MReCoSa_RA
daildydialog, ubuntu, dstc7, personachat, empchat
다음 명령을 실행하기 전에 필수 폴더가 생성되었는지 확인하세요.
mkdir -p processed/ $DATASET
mkdir -p data/ $DATASET
mkdir -p tblogs/ $DATASET
mkdir -p ckpt/ $DATASET
변수 DATASET
처리하려는 데이터 세트의 이름이 포함되어 있습니다.
# default 25000 words
./run.sh vocab < dataset >
# only MTGCN and GatedGCN need to create the graph
# zh or en
./run.sh graph < dataset > < zh/en > < cuda >
발화의 길이, 다중 회전 설정의 회전 등을 표시합니다.
./run.sh stat < dataset >
NLTK로 N-gram 언어 모델을 훈련합니다(감마가 0.5인 Lidstone, 기본 n-gram은 3입니다).
# train the N-gram Language model by NLTK
./run.sh lm < dataset >
./run.sh train < dataset > < model > < cuda >
# translate mode, dataset dialydialog, model HRED on 4th GPU
./run.sh translate < dataset > < model > < cuda >
모델 배치 번역
# rewrite the models and datasets you want to translate
./run_batch_translate.sh < cuda >
# get the BLEU and Distinct result of the generated sentences on 4th GPU (BERTScore need it)
./run.sh eval < dataset > < model > < cuda >
모델 배치 평가
# the performance are redirected into the file `./processed/<dataset>/<model>/final_result.txt`
./run_batch_eval.sh < cuda >
# draw the performance curve, but actually, you can get all the information from the tensorboard
./run.sh curve < dataset > < model > < cuda >
논문 참조: Do Neural Dialog Systems Use the Conversation History Effectively? An Empirical Study
# 10 mode for perturbation
./run.sh perturbation < dataset > < zh/en >
Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation
Attention is All you Need
. 바닐라 트랜스포머는 이러한 데이터 세트에서 좋은 성능을 얻기가 매우 어렵다는 점에 유의해야 합니다. 안정적인 성능을 보장하기 위해 RNN 기반 Seq2Seq-attn에서 Multi-head self-attention(1레이어, 변경 가능)을 활용하여 더 나은 성능을 보여줍니다.Building End-To-End Dialogue Systems Using Generative Hierarchical Neural Network Models
. 발화 수준 주의를 통해 HRED가 향상되었습니다.How to Make Context More Useful? An Empirical Study on Context-Aware Neural Conversational Models
A Hierarchical Latent Variable Encoder-Decoder Model for Generating Dialogues
(아직 개발 중, 홍보 환영)Context-Sensitive Generation of Open-Domain Conversational Responses
, HRED의 동적 및 정적 주의 메커니즘ReCoSa: Detecting the Relevant Contexts with Self-Attention for Multi-turn Dialogue Generation
. 여기서 이 구현은 원래 코드와 약간 다르지만 더 강력하고 실용적입니다(3 레이어 다중 헤드 셀프 어텐션이지만 원본 논문에서는 1 레이어만 있음).Hierarchical Recurrent Attention Network for Response Generation
실제로 단어 수준 주의 메커니즘을 사용하는 HRED와 동일합니다.