NL-082, PLATO-2: Towards Building an Open-Domain Chatbot via Curriculum Learning (2020-Preprint)
■ Comment
- 일단 논문이 좀 긴편이고 많은 실험을 했기 때문에 읽는 데 시간이 좀 오래걸린 편.
- 이 논문은 오픈 도메인 챗봇을 만드는데, 핵심 컨트리뷰션은 다음과 같다.
- curriculum learning (총 3 step)
- 영어, 중국어 언어에 대해 실험
- SoTA 달성
- 모델은 UniLM 사용 (encoder-decoder, encoder, decoder 다 같은 것으로 사용)
- bi-directional coherence 확률로 score func 사용
- 여기서는 scratch부터 학습을 하며 (pre-trained 모델 없이) 일반 pre-trained 모델과 달리 학습 순서를 나눈다.
- 쉬운것부터 학습한다는 개념인 curriculum learning이며 다음과 같이 있다.
- 1) Coarse-grained generation
- 이것은 일반적인 LM 모델 학습 하듯이 진행을 하며 입력은 conetxt, response가 들어간다.
- context는 bidirectional attention, response는 forward attention을 하도록 마스크를 조정해준다.
- 2) Fine-graend generation
- 이것은 LM 모델 학습에서 loss가 변형된 것으로 2개가 있다.
- 이것의 효과는 one-to-many 매핑을 학습하는 것이라 보면 되고, c<->r 매핑이 아닌, (c, r) -> z를 구한 뒤, (c, z) -> r이 되도록 학습하는 식이다.
- 이 방법에 대한 시초는 PLATO-1에 있다고 하는데 이 논문은 안 읽어서...
- 또한 BoW loss가 있는데 이러한 loss가 있다는 것은 처음 알았다.
- 3) Response Coherence Estimation
- 이것은 response와 context와의 연관성을 학습하기 위한 모델이다.
- loss가 2개가 있는데 첫 번째는 (c, r)의 유사도를 구하는 개념이라고 보면된다.
- 두 번째 loss는 masked LM을 통한 학습인데, distributed representation을 모델이 할 수있도록 유지하기 위함이라고 하는데.. (정말로 이것의 효과가 있는지는 실험을 하지는 않더라)
- 모델이 3)으로도 학습할 수 있는 이유는 uniLM으로 기본적으로 모델이 여러 기능을 수행할 수 있기 때문이다.
- 문제는 inference할 때인데, 논문에서는 설명이 안되어 있으나 1) 방식으로 수행을 하겠지 싶다.
- 왜냐하면 2)는 r을 모르기 때문에 z을 구할 수 없기 때문이다.
- 실험도 상당히 많이 했는데 총 3가지 evaluation을 했다.
- 1) Self-Chat Evaluation
- self-play 모드로 모델이 서로 주고받는 것
- 2) Human-Bot Chat Evaluation
- 사람과 모델이 주고받으면서 데이터 수집
- 3) Static Evaluation
- context history가 주어지고 마지막 한 문장만을 생성하는 식으로 모델비교
- 이 외에도 score function 비교의 실험으로 response selection을 했는데 bidirectional score funcion 이 젤 좋다는 결론이다.
- 그리고 모델들을 비교한 실험 결과는 PLATO-2가 상당히 좋다는 결과를 보여준다.
- 아쉬운 점은 ablation study가 없어서 정말로 저 step이 제대로 된 효과를 발휘하는지?에 대한 검증이 없다.
- 기타
- score function으로 다음과 같이 3가지 분류로 나눈다는 것을 알았다
- forward response generation probability
- backward context recover probability
- bi-directional coherece probability
- one-to-many 매핑에 대한 점을 생각해볼 필요가 있다.
- 보통은 one-to-one으로 학습하기 때문이고 이에 대한 부분은 PLATO-1을 좀 읽어볼 필요가 있을 듯
- UniLM의 효과
- 이렇게 모델의 attention mask을 조정하면서 사용하는게 정말로 효과가 있는지에 대한 ref 논문도 읽어보면 좋을 것 같다.
- 유용한 ref?
- Li(2019)에서 말하듯이, self-chat 평가는 human-bot chat evaluations와 높은 연관성을 가진다.
- Roller et al. (2020)에서 말하듯이, 만약 "Hi"로 시작한다면, partner은 서로에게 인사하는 경향을 보이고 짧은 대화에서 얇은 토픽을 커버한다
- normalization이 BERT는 post- / GPT는 pre- 방법임을 기억하자.
0. Abstract
- 좋은 품질의 open-domain 챗봇을 만들기 위해선, 우리는 PLATO-2의 효과적인 학습 과정을 curriculum learning을 통하여 소개한다.
- 이 학습 과정에는 2개의 전략이 속해있다.
- 첫 번째는, coarse-grained generation 모델로 one-to-one 매핑의 간단한 프레임워크을 통하여 response generation을 배운다.
- 두 번째는, fine-grained generation 모델과 evaluation model들은 더 나아가서 diverse response generation과 response coherence estimation을 각각 배운다.
- PLATO-2은 중국어와 영어 데이터 2개에 대해 학습되고 이의 효과성과 우수함은 comprehensive evaluation을 통하여 입증되어 SoTA을 달성한다.
1 Introduction
- 최근, task에 상관없이 큰 스케일의 transformer models의 pretraining과 general 텍스트 코퍼라는 NLU, NLG, open-domain dialogue generation에서 놀라운 성능을 달성한다.
- 예를 들어, GPT2 모델을 기반으로한, DialoGPT는 더 나아가서 Reddit comments을 사용하여 response generation을 위한 학습까지 한다.
- 사람과 같은 open-domain 챗봇을 얻기 위해서는, Meena는 파라미터를 2.6B로 스케일업하고 더 많은 학습 과정에서 social media conversation에 적용하여 response quality의 놀라운 향상을 이끌었다.
- 원하지 않는, 큰 코퍼라에 대한 toxic or bias 특성을 피하기 위해, Blender은 human annotated dataset으로 pre-trained model을 fine-tune하였고 원하는 대화 스킬인 engagingness, knowledge, empathy and personality을 강조하였다.
- 모델의 확장과 데이터 selection와 같은 위의 시도 외에도, PLATO는 고유의 one-to-many mapping 문제를 해결하여 response quality 품질을 높인다.
- one-to-many을 PLATO에서 어떻게 다루는지 알면 좋을듯
- one-to-many 매핑은 하나의 대화 컨텍스트가 여러 개의 적절한 response에 일치하는 것을 말한다.
- one-to-many relationship 모델링 기능이 response generation에 중요하다는 것은 널리 알려져 있습니다 (Zhao et al., 2017; Chen et al., 2019).
- PLATO는 명시적으로 discrete latent variables을 통하여 one-to-many relationship을 모델링하고 대화 생성의 퀄리티를 증가시키는데 목표를 가진다.
- 이 연구에서, 우리는 PLATO을 PLATO-2로 스케일업하고 curriculum learning을 통하여 효과적인 학습 전략을 토의한다.
- 여기에는 2개의 스테이지가 있고 전체적인 프로세스는 그림 1에 스케치되어있다.
- 내가 알고 있는 curriculum learning 개념은 사람이 유아기부터 성인까지 점점 어려운 것을 배워나가는 것처럼, 모델이 쉬운거를 학습하고 어려운 테스크를 학습하는게 효과적이라는 것으로 알고있다.
- 즉 무엇이 어렵고 쉬운지를 정하는 것과 데이터를 모으는 문제들이 있겠다.
- 첫 번째 스테이지에서는, 간단한 one-to-one mapping 모델링에서 진행되고, coarse-grained generation 모델이 다른 대화 컨텍스트에서 적절한 response generation을 위한 학습이 된다.
- 두 번째 스테이지에는 fine-grained generation model과 evaluation model로 생성을 개선한다.
- fine-grained 생성 model은 명시적으로 다양한 reponse generation을 위한 one-to-many mapping relationship을 모델링한다.
- fine-grained generation model으로부터 생성된 대부분 적절한 반응을 선택하기 위해서 evaluation model이 response coherence을 평가하도록 학습이 된다.
- 즉 general response generation을 통하여 일반적인 생성을 하고 이것으로 diverse response generation을 한 후, response coherence estimation로 적절한 response을 선택하겠다는 의미?
- response selection을 위해서, 이전의 연구들은 variant scoring functions을 적용하고, 이는 forward response generation probability와 backward context recover probability와 bi-directional coherece probability을 포함한다.
- forward ref은 안읽어 봤지만, source --> target가 나올 확률을 말하는 것일 듯
- backward ref은 dialogpt인데, 여기서 말하는 것은 target --> source의 확률을 말하는 것이다.
- bi-direction ref은 PLATO인데, 아마 s<-->t의 확률을 의미하는 거겠지?
- 그러나, the forward score은 maximum likelihood의 속성 때문에 safe하고 generic response을 선호하는 반면, backward score은 context와 높은 overlap을 가지는 response을 선택하는 경향이 있어서 반복적인 대화를 유발한다.
- 위의 문제점을 개선하기 위해 PLATO-2의 평가 모델에서 bi-directional coherence estimation을 채택하여 실험에서도 효과적임을 검증했다.
- 우리는 다양한 크기 (16 억 매개 변수 및 3 억 1 천만 매개 변수)로 PLATO-2 모델을 훈련했습니다.
- 영어 모델 외에도 대규모 소셜 미디어 대화를 통해 중국 모델을 교육했습니다.
- 영어와 중국어 데이터 세트에 대한 포괄적 인 실험을 통해 PLATO-2가 최첨단 모델을 능가한다는 것을 보여줍니다.
- 오픈 도메인 대화 생성에 대한 연구를 촉진하기 위해 GitHub에서 영어 모델과 소스 코드를 공개했습니다.
2 Methodology
2.1 Model Architecture
- PLATO-2의 구조는 transformer blocks으로 그림 2(a)에 나와 있다.
- transform block의 주요 구성 요소에는 layer normalization, multi-head attention and feed forward layers가 포함된다.
- 이러한 구성 요소의 배열에는 layer normalization의 위치와 관련하여 두 가지 옵션이 있습니다.
- 한 가지 방법은 BERT (Devlin et al., 2019)에서 사용 된 원래의 post-normalization이며, 여기서 layer normalization는 residual connections 사이에 배치됩니다.
- 다른 방법은 GPT2 (Radford et al., 2019)에서 사용 된 최근 pre-normalization로, layer normalization는 residual connections 안에서 배치된다.
- Megatron-LM (Shoeybi et al., 2019)에보고 된 바와 같이 post-normalization는 모델 크기가 증가함에 따라 성능 저하로 이어지고 pre-normalization는 large-scale models에서 안정적인 학습을 가능하게합니다. (처음 안 사실)
- 따라서 pre-normalization가 모델에 채택됩니다.
- 또한 기존 Seq2Seq와 달리 구조에는 별도의 인코더 및 디코더 네트워크가 없습니다.
- training 효율성을 위해 PLATO-2는 flexible attention mechanism을 통해 bidirectional context encoding 및 uni-directional 응답 생성을 위한 unified 네트워크를 유지합니다 (Dong et al., 2019; Bao et al., 2020).
2.2 Curriculum Learning
- 이 연구에서, curriculum learning을 통하여 PLATO-2의 학습을 효율적으로 실행한다.
- 그림 2(b)에서 보여주듯이, 2가지 학습 과정이 있다.
- during stage 1, a coarse-grained baseline model is trained for general response generation under the simplified one-to-one mapping relationship
- during stage 2, two models of fine-grained generation and evaluation are further trained for diverse response generation and response coherence estimation respectively.
- 이 모델의 백본은 모두 transformer blocks이지만 self-attention masks는 training objectives에 맞게 적절하게 설계되었습니다.
2.2.1 General Response Generation
- 대화에서 많은 one-to-many 관계가 알려져있고 context의 일부분은 여러 개의 적절한 반응들을 가질 수 있다.
- 전통적인 생성 네트워크는 one-to-one 매핑에 디자인되어있기 때문에 그들은 generic, dull response을 생성하려고 한다.
- 반면에, 이것은 응답 생성의 일반적인 특성을 캡쳐하는 여전히 효율적인 방법이다.
- 따라서 먼저 one-to-one 매핑의 단순화 된 관계 하에서 일반적인 응답 생성을 학습하기 위해 대략적인 기준 모델을 학습시킨다.
- context 및 response (c, r)의 훈련 샘플 하나가 주어지면 다음과 같은 negative log-likelihood (NLL) loss을 최소화해야한다.
- T는 target response r의 길이이고, r<t은 이전의 생성된 단어들을 의미한다.
- 식을 보면, teacher forcing을 의미하는 것 같은데? 말로는 no teacher forcing 느낌이 나는데?
- 응답 생성은 uni-directional decoding 과정이기 때문에, response에 있는 각 token은 오직 이전의 것만을 attend한다. (그림 2의 주황색 선처럼)
- context에서는, bi-drectional attention이 좀 더 NLU에 좋아지도록 가능하고 그림 2의 파랑선과 같다.
2.2.2 Diverse Response Generation
- coarse-grained baseline model를 기반으로 diverse response generation은 좀 더 나아가서 one-to-many 매핑의 관계하에서 학습이 된다.
- 우리의 이전 연구인 PLATO을 따라, discrete latent varibale은 one-to-many 관계 모델링을 소개한다.
- 이것은 먼저, 학습 샘플 p(z|c, r)의 latent act distribution을 측정하고나서 샘플링된 latent variable p(r|c, z)의 response을 생성한다.
- The NLL loss of diverse response generation is defined as follows:
- 식만 보면 순서가 다음과 같은데..
- c: "안녕 뭐하니? / 반가워. / 취미가 뭐야?"
- r: "농구야"
- c, r에서부터 --> 적절한 z를 뽑음
- z, c에서부터 --> r이 되도록 학습
- 이렇게 하면, step-1)에서 c에서 r이 되도록 학습하는 것과 달리 z라는 변수가 조건으로 들어간다.
- 근데 z는 r로부터 뽑은 것이니, 즉 (c,z1)<->(r1), (c,z2)<->(r2) 등등으로 c와 r사이만 보면 one-to-one이 아닌, one-to-many가 되는 것의 개념이다?
- z는 latent act로 p(z|c, r)에서 샘플링된다.
- 밑에서 구한 z을 근데 입력으로 어떻게 넣는다는 거지?
- 이론적으론, 문장하고 같이 입력이 아니라, word embedding이 통과한 부분에 넣어줘야할 듯
- latent values의 poersterior distribution은 latent act recognition의 작업을 통해 추정된다.
- 즉, 그림2의 stage2.1을 보면, latent [M]의 special token을 앞에 두고 context, response을 순차대로 넣은 다음 Transformer encoder을 태운다.
- 그래서 나온 h[M]을 식 (3)과 같이 softmax을 통해 p(z|c, r)을 구한다.
- 이걸 다시 입력으로 넣어서 p(r|c, z)을 계산하는데, 이때는 transformer decoder가 되는 것.
- 그렇다면, 학습이 아닌 테스트에서는 r을 모르는데 어떻게 z을 구할까? 는 뒤에서 살펴보자.
- where h[M] ∈ R^D is the final hidden state of the special mask [M], W1 ∈ R^(K×D) and b1 ∈ R^K denote the weight matrices of one fully-connected layer.
- 정통적인 NLL loss 외에도, bag-of-words (BOW) loss (Zhao et al., 2017) 또한 discrete latent variables의 학습 과정을 촉진시키도록 적용된다
- where V refers to the whole vocabulary.
- 함수 f는 non-autoregressive way으로 target response안에 있는 단어들을 예측하도록하는 하는 것이다.
- hz는 latent variable의 마지막 hidden state이고 |V|의 vocab size이다.
- f_rt는 단어 rt의 측정된 확률을 말한다.
- NLL loss와 비교하여 BOW loss는 단어의 순서들을 버리고 latent variable이 target response의 global information을 캡쳐하는 것에 집중한다.
- 즉, 원래는 식 2처럼 response을 맞추도록 NLL loss가 정의되고 이는 상당히 익숙하다.
- 여기서는 BOW loss라는 것을 활용하는데, 이는 response r을 r1, r2, ..., rT을 예측하는 것으로 바꾸는 것이다.
- 예를 들어보자.
- c: "안녕 뭐하니? / 반가워. / 취미가 뭐야?"
- r: "농구야"
- 입력: "z 안녕 뭐하니? 반가워. 취미가 뭐야?"
- 출력으로는 "농구"와 "야"가 나와야한다.
- 즉 r1="농구", r2="야"라고 할 때, r1, r2은 순서와 상관없이 입력(z, c) 뒤에 나타날 확률을 각각 계산하는 것이다.
- NLL에서는 f을 계산한 다음, next token에 해당하는 prob을 증가시키도록 학습하지만, 여기서는 f에서 출력으로 나와야할 모든 token에 해당하는 prob의 비중을 높이도록 식 4처럼 학습하는 것!
- To sum up, the objective of the fine-grained generation model is to minimize the following integrated loss:
2.2.3 Response Coherence Estimation
- 최근에, 한 전략은 response quality을 향상시키는 효과적임을 보여준다, 이 전략은 먼저 여러 개의 candidate response을 생성하고나서 score function을 통하여 랭킹을 매긴다.
- score function에는 여러 가지 정의가 있지만, 이것은 3가지 카테고리로 나눌 수 있다.
- 1) Meena에 적용된 length-average log-likelihood의 score function으로 context p(r|c)가 주어졌을 때 response의 forward generation 확률을 고려하는 것이다.
- 즉 c입장에서 r이 얼마나 높은 확률로 뽑히는지
- 2) DialoGPT에서 활용된 maximum mutual information으로 이것은 candidate response p(c|r)이 주어졌을 때 context을 복원하는 backward probability을 고려하는 것이다.
- 즉 r입장에서 c가 얼마나 높은 확률로 뽑히는지
- 3) PLATO에서 사용된 discriminative function으로 context와 response p(
|c, r) 사이의 coherence estimation이다. (
은 coherence label)
- 즉, c와 r 사이의 유사도? 그런 개념인 듯
- forward score은 안전한 responses을 선호하고 backward score은 반복적인 conversations을 생성하므로, PLATO-2는 평가 모델에서 bi-directional coherence estimation을 적용한다.
- The loss of response coherence estimation (RCE) is defined as follows:
- positive 학습 샘플은 dialogue context와 일치하는 target response (c, r)으로부터 뽑고 coherence label
= 1이다.
- 그리고 negative 샘플들은 랜덤으로 코퍼스로부터 선택한 responses이며
=0이다.
- distributed representation의 능력을 유지하기 위해, masked language model (MLM)의 테스크또한 evaluation network에 포함된다.
- 이 테스크안에서, 입력토큰의 15%은 랜덤으로 마스킹되고 네트워크는 마스킹된 것을 복원하도록 한다.
- MLM loss는 다음과 같이 정의된다.
- where x refers to the input tokens of context and response.
stands for masked tokens and
denotes the rest unmasked ones.
- 최종 loss는 다음과 같다.
- 즉, curriculum learning의 이전 스텝에서는 생성에 관련된 학습이었다.
- 마지막 스텝에서는 r과 c 사이가 얼마나 관련있는지를 판별하도록 모델이 학습된다.
- 여기서 기억해야할 것은 생성 모델=evaluation 모델이라는 것이다.
- 단지 어떻게 attention을 하냐에 따라 작동하는 식이 다르다는 것.
- 어떻게 보면 multi-task learning을 다른 step으로 학습시키는 것과 유사한 듯.
- 여기서 r은 생성된 r을 활용하는 것이 아니라, 코퍼스에서 추출한 것을 이용해서 c와의 관계를 파악하는 것이다.
- loss1은 r이 c의 real next response인지 아닌지를 구별하는 것이다.
- loss2는 x=(r, c) 로보고 MLM을 학습하는 것이다.
- 여기서는 pre-trained 모델을 사용안했기 때문에 실제 pre-trained 모델에서 사용되는 MLM loss을 사용한 것이다.
- 그렇다면, pre-trained 모델을 사용하고 loss2는 사용안하면 안되나?
3 Experiments
3.1 Training Data
- PLATO-2는 영어와 중국어 모델이 있고 open-domain social media conversations으로부터 학습 데이터를 추출한다.
- The details are elaborated as follows.
3.1.1 English Data (번역)
- 영어 교육 데이터는 제 3자가 수집 한 Reddit 댓글에서 추출되어 pushshift.io에서 공개적으로 제공됩니다 (Baumgartner et al., 2020).
- 주석이 메시지 트리 형식으로 지정되므로 루트에서 트리 노드로의 모든 대화 경로는 노드를 응답으로, 이전 턴을 컨텍스트로 사용하여 하나의 학습 샘플로 처리 할 수 있습니다.
- 생성 품질을 향상시키기 위해 정교한 데이터 정리를 수행합니다.
- 다음 조건 중 하나라도 충족되면 메시지 노드 및 하위 트리가 제거됩니다.
- 1) BPE 토큰 수가 128 개 이상 2 개 미만입니다.
- 2) 모든 단어가 30 자 이상이거나 메시지가 1024 자 이상입니다.
- 3) 알파벳 문자 비율이 70 % 미만입니다.
- 4) 메시지에 URL이 포함되어 있습니다.
- 5) 메시지에는 r /, u /, &와 같은 특수 문자열이 포함됩니다.
- 6) 메시지가 부모의 텍스트와 많이 겹칩니다.
- 7) 메시지가 100 회 이상 반복됩니다.
- 8) 메시지에 불쾌감을주는 단어가 포함되어 있습니다.
- 9) 서브 레딧이 격리됩니다.
- 10) 저자는 알려진 봇입니다.
- 필터링 후 데이터는 시간순으로 학습 및 검증 세트로 분할됩니다.
- 교육 세트에는 2005 년 12 월부터 2019 년 7 월까지 684M (컨텍스트, 응답) 샘플이 포함되어 있습니다.
- 검증 세트의 경우 2019 년 7 월 이후의 나머지 데이터에서 0.2M 샘플이 선택되었습니다.
- 영어 어휘에는 SentencePiece 라이브러리로 구성된 8K BPE 토큰 (Sennrich et al., 2016)이 포함되어 있습니다.
3.1.2 Chinese Data (번역)
- 중국 교육 데이터는 공용 도메인 소셜 미디어에서 수집 된 후 유사한 청소 프로세스가 이어집니다.
- 필터링 후 훈련 세트에 1.2B (컨텍스트, 응답) 샘플이 있고 검증 세트에 0.1M 샘플이 있습니다.
- 중국어 어휘에는 30K BPE 토큰이 포함되어 있습니다.
3.2 Training Details
- PLATO-2에는 310M 매개 변수의 소형 버전과 1.6B 매개 변수의 표준 버전의 두 가지 모델 크기가 있습니다.
- 310M 매개 변수 모델에는 24 개의 변압기 블록과 16 개의 어텐션 헤드가 있으며 임베딩 차원은 1024입니다.
- 1.6B 매개 변수 모델에는 32 개의 트랜스포머 블록과 32 개의 어텐션 헤드가 있으며 임베딩 차원은 2048입니다.
- 훈련 과정에서 사용되는 하이퍼 파라미터는 다음과 같습니다.
- 컨텍스트 및 응답의 최대 시퀀스 길이는 모두 128로 설정됩니다.
- 우리는 Adam (Kingma and Ba, 2015)을 최적화 프로그램으로 사용하고 선형 워밍업과 invsqrt 감쇠를 포함하는 학습률 스케줄러를 사용합니다 (Vaswani et al., 2017).
- 상대적으로 큰 배치 크기로 대규모 모델을 훈련시키기 위해 우리는 메모리 계산을 교환하기 위해 그래디언트 체크 포인트 (Chen et al., 2016)를 사용합니다.
- 자세한 구성은 표 1에 요약되어 있습니다.
- 교육은 64 개의 Nvidia Tesla V100 32G GPU 카드에서 수행되었습니다.
- 1.6B 매개 변수 모델이 커리큘럼 학습 프로세스를 완료하는 데 약 3 주가 걸립니다.
3.3 Evaluation Settings
3.3.1 Compared Methods
- 비교 모델들은 다음과 같다.
- 자세한 건 생략...다들 쟁쟁한 모델
- DialoGPT (Zhang et al., 2020)
- Blender (Roller et al., 2020)
- Meena (Adiwardana et al., 2020)
- Microsoft XiaoIce (Zhou et al., 2020).
- 포괄적이고 공정한 비교를 위해 PLATO-2의 세 가지 버전이 실험에 포함되었습니다.
- PLATO 1.6B parameter
- PLATO 1.6B 매개 변수 모델은 영어로 된 표준 버전으로, 먼저 Reddit 주석을 사용하여 학습 한 다음 BST 대화로 미세 조정됩니다.
- 이 모델은 PLATO-2의 효과를 측정하기 위해 최첨단 오픈 도메인 챗봇 Blender와 비교됩니다.
- PLATO 310M parameter
- PLATO 310M 매개 변수 모델은 Reddit 주석으로 훈련 된 작은 영어 버전입니다.
- 이 모델은 유사한 모델 스케일과 훈련 데이터를 가지고 있기 때문에 DialoGPT와 비교됩니다.
- PLATO 333M parameter Chinese model
- XiaoIce 모델과 비교
3.3.2 Evaluation Metrics
- 우리는, automatic과 human evaluations을 실행한다.
- automatic evaluation에서는, lexical diversity에 대한 모델의 능력에 접근하기 위해, 우리는 distinct-1/2의 corpus-level metric을 사용한다.
- 이는 생성된 단어들의 전체 수로 uni- or bi-grams의 구분되는 수를 나눈 것이다.
- human evaluation에서 우리는 coherence, informativeness, engagingness and humanness을 포함하여 4가지 utterance level 및 dialogue level 메트릭을 사용합니다.
- 3명의 크라우드 소싱 워커들은 [0, 1, 2]로 response/dialogue quality을 점수매기고 final score은 다수결로 인해 결정된다.
- The higher score, the better.
- These criteria are discussed as follows, with scoring details provided in the Appendix.
- Coherence
- Coherence은 응답이 컨텍스트와 관련이 있고 일관성이 있는지 여부를 측정하는 utterance-level 측정 항목입니다.
- Informativeness
- Informativeness 또한 utterance-level 측정 항목으로, 응답이 정보를 제공하는지 또는 컨텍스트가 제공되지 않았는지 평가한다.
- Engagingness
- Engagingness는 annotator가 긴 대화를 위해 화자와 대화를 원하는지 여부를 평가하는 dialogue-level metric입니다.
- Humanness
- Humanness은 또한 dialogue-level metric으로 화자가 인간인지 아닌지를 판단한다.
3.4 Experimental Results
- In the experiments, we include both static and interactive evaluations.
3.4.1 Self-Chat Evaluation
- Self-chats은 대화 시스템의 평가에서 널리 사용되고 모델은 대화에서 양쪽 파트너의 역할을 수행한다.
- human-bot 대화와 비교하여, self-chat logs은 값싼 가격으로 효과적으로 모으기 쉽다.
- Li(2019)에서 말하듯이, self-chat 평가는 human-bot chat evaluations와 높은 연관성을 가진다. (새롭게 안 사실)
- 실험에서, 우리는 bot이 self-chat을 수행하고나서 크라우드소싱 워커들이 대화 품질을 평가하게 한다.
- interactive 대화를 시작하는 방법은 special attention을 요구한다.
- Roller에서 말하듯이, 만약 "Hi"로 시작한다면, partner은 서로에게 인사하는 경향을 보이고 짧은 대화에서 얇은 토픽을 커버한다. (새롭게 알진 않았지만 ref 확보)
- 그래서 모델의 약점을 노출하고 모델의 한게를 탐구하기 위해, 우리는 미리 선택된 토픽들로 interactive 대화로 시작한다.
- 우리는 전통적인 200개 질문을 토픽으로 시작하고 봇에게 context가 주어졌을 때, self-chat의 수행을 하게 한다.
- 그림 3 참고
- 각 대화에서 start uttternace을 포함한 10 utterances가 있다.
- 우리는 200 self-chat logs에 대해 automatic evaluation을 수행하고 이 중에서 랜덤으로 50개 대화를 선택하여 사람 평가를 한다.
- 비교 모델들은 2그룹으로 나눈다.
- 1) DialoGPT 345M model and PLATO 310M model.
- 이 둘다, Reddit comments으로 학습되고 비슷한 모델 스케일을 가진다.
- 2) Blender 2.7B model and PLATO 1.6B model
- 둘 다, Reddit comments으로 학습되고 더 나아가서 BST conversation으로 finetuned 된다.
- 사람의 평가에서, 동일한 그룹에 속하고 같은 start 토픽을 가지는 것의 두 개의 self-chat logs가 3명의 크라우드소싱 워커들에게 보여진다.
- One example is given in Figure 3.
- ACUTEEval에서 제시하듯이, 우리는 크라우드소싱 워커에게 오직 대화안의 한 명의 speaker에게 집중해달라고 요청한다.
- 평가에서, 그들은 P1의 utterance에 대한 coherence and informativeness에 대해 점수를 주고 engagingness and humanness에 대한 P1의 전반적인 품질 평가를 한다.
- The self-chat evaluation results are summarized in Table 2.
- 결과를 보면, PLATO 1.6B 모델이 human and automatic evaluations에서 가장 좋은 성능을 보여준다.
- corpus-level metric distinct-1/2에 대한 Blender and PLATO-2사이의 차이는 PLATO-2가 더 좋은 lexical diversity의 능력을 보여준다.
- 또한, 이 두 그룹의 차이는 모델 스케일을 확대하고 human annotated conversations이 대화 품질을 개선하는데 도움이 된다는 것을 나타낸다.
- In addition, the difference between these two groups indicates that enlarging model scales and exploiting human annotated conversations help improve the dialogue quality.
3.4.2 Human-Bot Chat Evaluation
- 중국어 평가에선, Microsoft XiaoIce의 public으로 사용가능한 API가 없어서 self-chat을 수행하기가 어렵다.
- 즉 영어에서는 DialoGPT vs PLATO 310M, Belnder vs PLATO 1.6B을 self-chat으로 비교
- 중국어에선 Xialoce vs PLATO 333M을 human-bot으로 모은 데이터로 비교
- 그래서, 우리는 human-bot 대화를 공식 Weibo 플랫폼을 통하여 수집하였다.
- 상호대화는 pre-selected 토픽으로 시작하고 7~14 라운드를 진행한다.
- 50개의 다양한 토픽들은 상업챗봇의 (여행, 영화, 취미 등등) 빈번한 토픽들로부터 추출이 된것이다.
- 수집된 human-bot 대화는 크라우드소싱 워커들로인해 평가된다.
- 사람과 자동 평가 결과는 테이블 3에 있다.
- XiaoIce는 높은 distinct 값을 가지고, 이는 response generation에서 검색기반 전략으로 사용할 수 있다.
- 사람 평가는 PLATO-2 모델이 Xiaolce보다 모든 평ㄱ ㅏ메트릭에서 더 좋은 성능을 보여줌을 말한다.
3.4.3 Static Evaluation
- interactive 평가뿐만 아니라, 우리는 static 평가로 모델의 성능을 분석한다.
- static evaluation는 각 모델이 multi-turn 컨텍스트가 주어졌을 때 response을 생성한다.
- Meena와 비교하기 위해, 우리는 60 static 샘플들을 논문 appendix에 제공하고, 다른 모델들과 함께 해당응답을 생성한다.
- 우리는 Daily Dialog 으로부터 60개의 테스트 샘플을 포함하고 Reddit에서 60개의 테스트 샘플을 포함한다.
- humanness 측정에는 일반적으로 multi-turn 상호작용이 필요하므로이 메트릭 static 평가에서 제외됩니다.
- 결과는 테이블 4에 있다.
- PLATO-2는 다양한 채팅 시나리오에서 일관되고 유익하며 매력적인 응답을 생성 할 수 있음을 알 수 있습니다.
3.5 Discussions
3.5.1 Case Analysis (번역)
- 모델의 특징들을 분석하는 것에 더 나아가서 Belnder와 PLATO-2에 대한 self-chat 예제를 보자.
- 두 모델 모두 고품질의 매력적인 대화를 생성 할 수 있지만 서로 다른 담화 스타일을 보여줍니다.
- Blender는 술, 취미, 영화, 일 등 짧은 대화에서 주제를 빠르게 바꾸는 경향이 있습니다.
- 이 스타일의 출현은 BST 미세 조정 데이터와 관련이있을 수 있습니다.
- 예를 들어 ConvAI2는 서로에 대해 더 많이 알기 위해 주제를 빠르게 전환해야하는 두 파트너 간의 개인 정보 교환에 관한 것입니다.
- 데이터 수집의 작업 설정으로 인해 일부 사람이 주석 처리 한 대화는 약간 부자연 스러울 수 있습니다.
- 그럼에도 불구하고 BST 대화를 통한 미세 조정은 큰 말뭉치의 바람직하지 않은 독성 특성을 완화하고 인간 대화의 바람직한 기술을 강조하는 데 필수적입니다.
- Blender와 구별되는 PLATO-2는 시작 주제에 충실하고 심도있는 토론을 진행할 수 있습니다.
- 이유는 두 가지 일 수 있습니다.
- 한편으로 우리 모델은 일대일 관계의 정확한 모델링을 통해 다양하고 유익한 응답을 생성 할 수 있습니다.
- 반면에 평가 모델은 일관된 응답을 선택하고 현재 주제를 고수하는 데 도움이됩니다.
- 또한 크라우드 소싱 작업자에게 쌍별 순위를 통해이 두 모델에서 생성 된 응답을 비교하도록 요청했습니다.
- 비교 결과는 표 5에 나와 있으며, 위의 담화 스타일 분석도 검증합니다.
- 또한 그림 4에서는 XiaoIce 및 PLATO-2의 두 가지 휴먼 봇 채팅 예제를 제공합니다.
- 왼쪽에는 원본 대화 형 로그가, 오른쪽에는 번역 된 로그가 표시됩니다.
- XiaoIce에 의해 생성 된 일부 응답은 맥락과 일관되지 않으며 주제의 갑작스런 변화가 있음을 알 수 있습니다.
- 대조적으로 PLATO-2와의 상호 작용은 더 일관되고 매력적입니다.
3.5.2 Response Selection Comparison
- 우리는 response selection에서 distinct score 함수의 성능을 비교하는 더 많은 실험을 진행한다.
- 즉 어떤 score function이 좋냐 이거임!
- 1) 중국어 response selection 데이터세트를 구축했다.
- 테스트 세트에서 100 개의 대화 컨텍스트가 선택되고 상용 챗봇을 사용하여 각 컨텍스트에 대해 10 개의 후보 응답이 검색됩니다.
- 2) 크라우드 소싱 작업자에게 후보 응답이 컨텍스트와 일관성이 있는지 여부를 레이블에 주석을 달도록 요청합니다.
- 3) forward 응답 생성 확률 p(r|c), backward 컨텍스트 복구 확률 p(c|r) 및 양방향 일관성 확률 p(
|c, r)을 포함한 score funcion을 사용하여 333M 파라미터를 가진 모델 3개를 학습한다.
- annotated 달린 응답 선택 데이터 집합에 대한 결과는 표 6에 요약되어 있다.
- 평균 평균 정밀도(MAP) (Baeza-Yates et al., 1999), 평균 역수 순위(MRR) (Voorhees et al., 1999) 및 위치 1에서의 정밀도(P@1)의 지표가 사용된다.
- 이러한 결과는 PLATO-2의 evaluation 모델이 적절한 반응을 더 잘 선택한다는 것을 나타낸다.
4 Related Work (번역)
- Related works include large-scale language models and open-domain dialogue generation.
- Large-scale Language Models
- 사전 훈련 된 대규모 언어 모델은 다양한 NLP 작업에서 많은 혁신을 가져 왔습니다.
- GPT (Radford et al., 2018) 및 BERT (Devlin et al., 2019)는 일반적인 텍스트 말뭉치에 대해 훈련 된 대표적인 단방향 및 양방향 언어 모델입니다.
- 사전 정규화를 도입하고 가중치 초기화를 수정함으로써 GPT-2 (Radford et al., 2019)는 모델 규모를 117M에서 1.5B 매개 변수로 성공적으로 확장합니다.
- 메모리 제약에 대처하기 위해 Megatron-LM (Shoeybi et al., 2019)은 모델 병렬 처리를 활용하여 512 GPU에서 8.3B 매개 변수 모델을 학습시킵니다.
- GPT-3 (Brown et al., 2020)은 175B 매개 변수 자기 회귀 언어 모델을 추가로 학습하여 많은 NLP 작업에서 강력한 성능을 보여줍니다.
- 대규모 언어 모델의 개발은 대화 생성 작업에도 도움이됩니다.
- Open-domain Dialogue Generation.
- GPT-2를 기반으로 DialoGPT (Zhang et al., 2020)는 Reddit 주석을 사용하여 응답 생성을 위해 훈련됩니다.
- 인간과 유사한 오픈 도메인 챗봇을 얻기 위해 Meena (Adiwardana et al., 2020)는 네트워크 매개 변수를 2.6B로 확장하고 교육 과정에서 더 많은 소셜 미디어 대화를 활용합니다.
- 참여도, 지식, 공감 및 성격의 바람직한 대화 기술을 강조하기 위해 Blender (Roller et al., 2020)는 사람이 주석이 달린 대화를 통해 사전 훈련 된 모델을 추가로 미세 조정합니다.
- 모델 척도 및 데이터 선택에 대한 위의 시도 외에도 PLATO (Bao et al., 2019)는 고유 한 일대 다 매핑 문제를 해결하기 위해 이산 잠재 변수를 도입하여 응답 품질을 개선합니다.
- 이 작업에서 우리는 PLATO를 PLATO-2로 더 확장하고 커리큘럼 학습을 통해 효과적인 교육에 대해 논의합니다.
5 Conclusion
- 이 연구에서, 우리는 오픈 도메인 챗봇 PLATO-2의 효과적인 학습방법 토의한다.
- curriculum learning을 통한 2개의 스테이지를 가진다.
- 첫 번째, 우리는 coarse-grained 모델은 general response 생성을 위해 학습된다.
- 두 번째, fine-grained 생성, 평가에 대한 두 개의 모델은 diverse response generation과 response coherence estimatino에 대해 학습된다.
- 실험 결과는 PLATO-2가 중국어, 영어 평가에서 SoTA보다 의미있는 성능 향상을 달성한다.
Reference
댓글
댓글 쓰기