jam 블로그

DIALOGPT : Large-Scale Generative Pre-training for Conversational Response Generation 본문

인공지능

DIALOGPT : Large-Scale Generative Pre-training for Conversational Response Generation

kid1412 2020. 3. 31. 01:11
728x90

https://arxiv.org/abs/1911.00536

DIALOGPT(Dialogue generative pre-trained transformer)란?

  • 크고 조정 가능한 신경 대화형 응답 생성 모델
  • 2005~2017년 Reddit 코멘트 체인에서 추출된 1억 2천 5백만개의 대화식 교환에 대해 훈련된 Hugging Face PyTorch Transformer를 확장
  • Single-turn dialogue settings에서 자동 및 인간 평가 측면에서 인간과 가까운 성능을 달성(?)
  • 사전 훈련된 모델 및 교육 파이프라인이 공개되어 신경 반응 생성 및 보다 지능적인 오픈 도메인 대화 시스템 개발에 관한 연구가 쉬움

소개

  • Reddit 데이터에 대해 학습된 대화형 응답 생성을 위한 조정 가능한 기가워드 스케일 신경망 모델
  • 최근에 Transformer 기반 아키텍쳐 (Radford et al., 2018; Devlin et al., 2019; Raffel et al., 2019)를 사용한 대규모 사전 훈련의 발전이 성공적으로 입증
    • GPT-2가 매우 큰 데이터 세트에 대해 유창하고 어휘적으로 다양하며 내용이 풍부한 텍스트를 생성할 수 있음을 보여주었음.
    • 미세한 세밀도로 텍스트 데이터를 캡처하고 인간이 쓴 실제 텍스트를 면밀하게 모방한 고해상도 출력을 낼수 있는 능력이 있음.
  • DIALOGPT는 대화형 신경 반응 생성 문제(the challenges of conversational neural response generation)를 해결하기 위해 GPT-2를 확장함.
    • 신경 반응 생성 : 프롬프트와 관련이 있는 자연적으로 보이는 텍스트 생성의 목적을 공유하는 텍스트 생성의 하위 범주
  • 신경기계번역과 같은 텍스트 생성 과제보다 텍스트 요약 및 편집과 같은 일대다 문제를 풀어보자 라는 게 목표
  • 대부분 open-domain neural response generation system은 내용 또는 스타일의 불일치나 장기적 문맥 정보의 부족 등의 문제가 있음
    • 이러한 것은 transformer 모델을 사용하면 장기 의존성 정보를 시간이 지남에 따라 더 잘 보전할 수 있으며, 깊은 구조보다는 대규모 데이터 세트를 활용하는게 더 효과적
  • 그래서 DIALOGPT는 Auto regresive 언어 모델로 구성되며 multi-layer transfomer 아키텍처.
  • GPT-2와 다르게 Reddit 토론 체인에서 추출한 대규모 대화 쌍/세션에 대해 train 함
    • 따라서 DIALOGPT가 더 세분화 된 대화 흐름에서 P(target;source)의 공동 분포를 포착 할 것이라고 가정함.
  • 공개 벤치마크 데이터셋(DSTC-7)과 Reddit 게시물에서 추출한 새로운 6k 다중 참조 테스트 데이터 세트로 사전 훈련된 모델을 평가하여 SOTA를 찍었음.
  • DIALOGPT는 새로운 데이터 세트(훈련 사례가 거의 없는 데이터 세트)에서 쉽게 활용 및 적용 할 수 있음.

Dataset

  • 2005 ~ 2017년까지 Reddit에서 스크랩 된 comment 체인
  • 필터링 조건
    • 소스 또는 URL
    • 3개 이상 반복 단어 포함
    • 응답에 1개 이상의 단어가 포함되지 않은 경우
    • 50개의 가장 빈번한 영어 단어가 적어도 하나 이상 포함 되어 있지 않은 경우
    • [,] 와 같은 특수 마커가 있는 경우
    • 소스 및 대상 시퀀스가 200단어 보다 길 경우
    • 블랙 리스트에 들어가 있는 공격적인 언어가 포함된 경우
  • 필터링 후 18억 단어로 147,116,725(1억이상)개의 대화 인스턴스로 구성

Method

Model Architecture

  • GPT-2 아키텍처를 기반

  • GPT-2에서 12-24 layer transfomer, 모델 깊이의 초기화 방식, 토큰나이저용 바이트 페어 인코딩을 상속

  • multi-turn dialogue session을 긴 테스트로 모델링하고 생성 작업를 언어 모델링으로 구성

    • 대화 세션 내의 모든 dialogue들을 긴 텍스트 x1~ xN(N은 시퀀스 길이)로 연결

    • Source 문장은 S = x1~xm

    • Target 문장은 T = xm+1~xN

      $$p(T|S) = \prod_{n=m+1}^Np(x_n|x_1,...,x_{n-1})$$

    • multi-turn dialogue instances는 T1~TK 즉, p(TK,...,T2|T1)으로 쓸 수 있음

      • 이는 p(Ti|T1,...,Ti-1)의 조건부 확률의 곱
    • single objective인 p(TK,...,T2|T1)를 최적화 하는 것은 p(Ti|T1,...,Ti-1) source-target 쌍을 최적화 하는 것으로 생각할 수 있음.

Maximization Mutual Information

  • Open-domain 텍스트 생성 모델은 단순하고 비정보적인 샘플을 생성하는 것으로 악명이 높음.
    • 이 문제를 해결하기 위해 Maximum Mutual Information(MMI) 스코어링 기능을 구현
    • MMI는 사전 훈련된 backward 모델을 사용하여 주어진 응답, p(Source|Target)에서 소스 문장을 예측합니다.
      • 먼저 top-K 샘플링을 사용하여 일련의 가설을 생성
      • P(Source|Hypothesis)의 확률을 사용하여 모든 가설을 재조정. (Hypothesis: 위에서 만든 가설)
      • 빈번하고 반복적인 가설이 많은 쿼리와 연관 될 수 있기 때문에 Maximizing backward model likelihood가 저런 가설들에게 불이익을 주어 특정한 쿼리에 대한 확률을 낮춰줌
    • Zhang et al에 따르면 샘플 평균 기준선으로 policy gradient(강화학습에서 하강경사법)를 사용하여 보상 R ⇒ P(Source|Hypothesis)를 최적화하려고 시도
      • 검증된 보상은 안정적으로 개선 될 수 있지만 RNN 아키텍처에 따른 훈련과 달리 강화 학습(RL) 훈련은 locally-optimal solution으로 쉽게 수렴 되는 것으로 나타났는데, 여기서 가설은 단순히 Source 문장을 반복하고 상호 정보가 극대화 됨
      • 따라서 transformer가 강력한 모델 표현력때문에 local optima에 쉽게 갇힐 수 있다고 가정함
        • 정규 RL 훈련에 대한 조사는 향후 작업으로 넘김.

Result

Experimental Details

  • 총 117M, 345M, 762M의 총 매개 변수를 사용하여 3가지 크기의 모델을 학습. 모델 사양은 아래와 같음

    https://s3-us-west-2.amazonaws.com/secure.notion-static.com/736cbaba-b0d9-4ed0-b4bc-e0c446b5dcd6/Untitled.png

    • B는 GPU당 배치 크기
  • 이 모델은 50,257개의 어휘를 사용하며 NVLINK를 사용하여 16개의 Nvidia V100으로 훈련

    • 16,000 warm-up step으로 Noam 학습 rate 스케줄러를 사용
    • 학습 속도는 validation loss를 기준으로 선택
    • 각 모델은 validation loss가 진행되지 않을때 까지 학습
      • 중소형 모델은 최대 5 epochs
      • 대형 모델은 최대 3 epochs

Speeding up training

  • 훈련 과정을 가속화하고 GPU 메모리 제한을 수용하기 위해 모든 훈련 데이터를 lazy-loading database file로 압축하여 필요할 때만 데이터가 로드되는 식으로 작업
  • 훈련을 확장하기 위해 별도의 비동기 데이터 프로세스를 확용
    • 훈련 시간은 대락적으로 GPU의 수와 선형적으로 감소
    • 유사한 길이의 대화를 동일한 배치로 그룹화 하여 동적 배치 전략을 채택

DSTC-7 Dialogue Generation Challenge

  • The DSTC (Dialog System Technology Challenges) 7 track (Galley et al., 2019)의 목표는 외부 지식에 근거한 정보를 주입하여 채팅을 넘어서는 대화 응답을 생성하는 것이 목표인 end-to-end 대화 모델링
    • 이 task는 구체적이거나 사전 정의된 목표가 없다는 점에서 목표 지향적, task 지향적, task 완료 대화로 생각하는 것과는 다르다
    • 대신에 사람들이 정보를 공유하는 직장, 그 밖의 생산적인 환경에서 보이는 것과 같이 기본적인 목표가 사전에 잘못 정의되거나 알려지지 않은 인간과 같은 상호작용이 목표
  • 테스트 데이터는 Reddit 데이터의 대화 스레드를 포함
    • Multi-reference test set를 만들기 위해 6개 이상의 응답이 포함된 대화 세션을 활용
    • turn 길이와 같은 다른 필터링 기준을 고려할 때 2208 사이즈의 5-reference test set을 생성. (각각의 경우, 이 task에서 사람의 성과를 평가하기 위해 6명의 사람 응답 중 하나가 따로 설정 되어 있음). 훈련 데이터는 테스트 세트와 다른 시간의 범위에서 수집
  • BLEU, METEOR, NIST를 포함한 표준 기계 번역 메트릭을 사용하여 자동 평가를 수행
    • NIST는 정보 이득에 의해 n-그램과 가중치가 일치하는 BLEU의 변형. 즉, 정보가 없는 n-그램에 간접적으로 불이익을 줌
  • 어휘 다양성을 평가하기 위해 엔트로피와 Dist-n을 사용함.
  • DIALOGPT를 두가지 기준으로 비교
    • 사내 경쟁 시퀀스-to-시퀀스 모델인 PERSONALITYCHAT
    • 마이크로스프트 Azure의 인지 서비스로 생산에 이용되어 온 트위터 데이터에 대한 훈련 실시

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/74d5e144-af8b-4d53-931a-7705fc7af380/Untitled.png

  • 위 표에 345M 파라미터와 Beam search를 갖춘 DIALOGPT가 대부분 측정에서 높은 점수를 획득

  • 345M 파라미터가 117M보다 전반적으로 좋다

  • Beam Search (너비 10)은 BLEU, DIST 점수를 크게 개선하고 NIST, METEOR를 약간 개선

  • Source-Target 쌍으로 미세조정 되며 DSTC 훈련 세트의 기초 정보를 활용하지 않음

    • 사전 훈련 과정에서 풍부한 배경 정보를 학습하고 기본 문서가 없기 때문에 방해가 되지 않음
  • DIALOGPT의 점수는 사람의 점수보다 높음

    • 인간보다 현실적이라기 보다는 대화의 외톨이적 성격 탓

      https://s3-us-west-2.amazonaws.com/secure.notion-static.com/b5c721e5-36b8-4f64-bd73-06c8593e2803/Untitled.png

    • 다수의 사람 반응 (R1-R4)은 Source 표현에 잘 일치 함

    • 일반성을 상실하지 않는 한, R1-R3은 테스트할 기본적 진실을 참조인 반면, R4는 사람 점수를 계산하는 역할을 하는 지속적 인간 응답이라고 가정

    • 의미 공간에서 잘 훈련된 모델에서 생성된 응답 Rg는 아마도 모든 가능한 반응의 기하학적 중심 근처에 놓여 있는 경향이 있음

      • 훈련의 목표는 가장 가능성이 높은 응답을 생성하기 때문
      • 모든 훈련 인스턴스의 기하 평균에 가깝기 때문에 이러한 인스턴스를 평균화
      • 생성된 Rg는 표준화 된 인간 응답 R4보다 R1-R3으로부터 더 낮은 의도적 거리(BLEU와 같은 더 높은 점수에서 관리됨)을 가짐

A New Reddit Multi-reference Dataset

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/bdcc9dea-5576-4b77-99cb-315156ebaa98/Untitled.png

  • 6k 예제를 가진 multi-reference test set 결과
  • GPT-2를 사전 훈련된 모델로 사용하여 처음부터 훈련 및 미세 조정의 두가지 설정하여 테스트
    • 두 설정 모두 큰 모델이 작은 모델보다 성능이 우수
    • 사전 훈련된 GPT-2 모델로 fine-tuning 된 것과 scratch로 훈련된 것을 비교하면 작은 모델에서는 GPT-2를 사용한 것이 성능에 도움이 됨
    • 사람 점수보다 345M, Beam이 BLEU 점수가 더 높게 나왔음.

Re-ranking The Response Using MMI

  • GPT-2 중간 모델에서 fine-tune된 345M 모델을 사용하여 top-K(K=10)을 사용하여 각 입력 소스 문장에 대해 16개 샘플을 생성
  • GPT-2 중간 모델에서 fine-tune된 345M 모델인 backward 모델을 사용하여 다시 순위를 매기는 단계가 이어짐
  • 역행 모델 손실이 가장 적은 반응이 평가를 위해 선택되어짐 (표3 MMI)
  • Greedy 생성과 비교할 때 MMI re-ranking화는 높은 NIST, METEOR, Entropy 및 Dist 점수로 더 다양한 응답을 생성하지만 BLEU에서는 약간 감소

Generation Examples

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/90efc1e8-61e7-45ae-af51-7380ce5c5abf/Untitled.png

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/faaee266-d244-4451-99b4-21e4367ba98b/Untitled.png

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/b6aa9a67-f1d2-4167-b6df-15a486500e8f/Untitled.png

  • 표 4 (대화식 채팅) 및 표 5 (사용자 프롬프트가 포함 된 자체 재생 봇)에 샘플 생성 대화가 제공
  • 출력은 top-K 샘플링을 기반으로 하며 10개의 랜덤 샘플에서 수동으로 응답을 선택
    • DIALOGPT는 Reddit 데이터에서 배울 수 있는 풍부한 정보로 인해 상식 문제를 어느정도 해결할 수 있는 능력을 보여줌
    • 경우에 따라 원하는 답변 대신에 대안적이고 합리적인 답변을 생성
    • RNN보다 멀티 턴 생성을 더 잘 처리 할 수 있으며 관련하여 보다 일관된 경향이 있음(표5)

Human Evaluation

  • 크라우드 소싱을 사용하여 Reddit 6K 테스트 데이터 세트에서 무작위로 샘플링된 2000개의 테스트 소스를 평가
    • 시스템을 쌍으로 구성하여 각 시스텐 출력 쌍을 무작위로 3명의 심사원에게 제시
    • 심사원은 목적 적합성, 정보성 및 생성물이 3점 Likert와 같은 척도를 사용하여 얼마나 인간적인지 평가
    • 심사위원은 자격 테스트를 통과해야하고 스팸 탐지 제도가 시행.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/8f28d311-cd6f-4063-943c-666f0cd6de01/Untitled.png

  • 위 표는 목적 적합성, 정보성 및 인간에 대한 전체적인 심사원의 선호도를 원시 숫자와 전체 비율을 표시
  • PersonalityChat 보단 DialoGPT에 대한 강한 선호도를 확인 할 수 있음
  • 바닐라 DialoGPT 중간 모델이 이미 인간의 반응 품질에 가까울 수 있음을 시사
    • 가끔 심사원들이 인간의 반응보다 MMI 변형을 선호 하는것도 보임
    • 아마 심사원들이 인터넷 밈에 연관된 것들이 익숙히 않아서 생긴 문제로 판단
  • 중요도 시험과 사용된 인적 평가 템플릿을 포함한 추가 세부 사항은 부록에 수록

Related work

  • 대규모 사전 훈련된 transformer 모델을 가진 open-source
    • Huggingface Conv-AI transfoer learning repository
      • GPT-2 Transformer 언어 모델을 기초한 전달 학습으로 대화형 AI 시스템을 훈련하기 위한 코드가 포함되어 있어 ConvAI-2 dialogure competition에서 SOTA를 달성
    • DLGnet
      • 대화 데이터셋에 대해 훈련된 대형 transformer로 multi-turn 대화 생성에서 우수한 성능 발휘
    • AllenNLP
      • 대규모 사전 훈련된 bi-LSTM 문장 표현 학습 프레임 워크 ELMo를 포함하여 많은 자연 언어 처리 작업을 위한 툴킷으로 개발
    • Texar
      • 스타일 전송 및 제어 가능한 세대를 포함한 텍스트 생성에 초점
      • 스퀀스 모델링 도구와 함께 강화 학습 기능이 포함
    • DeepPavlov
      • Task 중신의 대화에 중점을 둔 인기 있는 툴
      • 공개 레포지토리는 질문 답변과 감정 분류를 위한 몇 가지 데모와 사전 훈련된 모델을 포함
    • Icecaps
      • 인격 또는 외부 지식에 바탕을 둔 기술, 멀티태스킹 훈련과 같은 기술을 갖춘 응답 생성 툴킷
    • ConvAI2 challenge
      • 개인화된 대화에 초점을 맞춤
    • ParlAI
      • 업무 중심의 대화 시스템 개발을 위한 또 다른 library
      • 크라우드소싱된 데이터로 훈련된 지식 기반 채팅봇을 위한 사전 훈련된 모델을 포함
    • Text-to-Text Transformer
      • 다중 텍스트 모델링 작업을 통합하고 다양한 자연어 생성 및 이해 벤치 마크의 최신 결과를 달성

Limitations and risks

  • DIALOGPT는 모델로만 출시되며 디코더 구현의 책임은 사용자에게 있음
  • 훈련전 명백한 공격 데이터의 양을 최소화하려는 노력에도 불구하고 DIALOGPT는 공격을 유발할 수 있는 출력을 생성할 수 있는 잠재력이 있음
  • 산출물은 데이터에 내재된 성별 및 기타 과거 편견을 반영 될 수 있음
    • 따라서, 생성된 응답은 비윤리적, 편향적 또는 불쾌한 제안과 합의를 표현하는 경향이 보일 수 있음
    • 이러한 문제는 대규모 자연 발생 데이터셋에서 훈련된 최신 end-to-end 대화 모델에서 알려진 문제
  • DIALOGPT를 만든 동기는 연구자들이 이러한 문제를 조사하고 완화 전략을 개발할 수 있도록 하는 것

Concolusion

  • 대규모 실제 Reddit 데이터셋에 대한 훈련을 받은 open-domain 사전 훈련 모델을 만듬
  • 분산 훈련 파이파라인과 몇 시간 안에 적절한 크기의 맞춤형 데이터셋에 대한 대화 모델을 얻을 수 있도록 fine-tune할 수 있는 몇가지 사전 훈련 모델로 구성
  • DIALOGPT는 완전히 개방되어 있고 배포가 용이하여, 사용자가 미리 훈련된 대화 시스템을 다양한 데이터 세트를 사용하여 부트스트랩 훈련으로 그리고 새로운 애플리케이션과 방법론으로 빌딩 블록으로 확장할 수 있음
  • 향후, 독성 발생을 검출하고 제어하는 방법을 조사하고 강화학습을 확용하여 발생된 반응의 관련성을 더욱 개선하고 모델이 터무니 없는 반응을 발생시키지 않도록 할 것임.
Comments