[논문리뷰] Building a Personalized Dialogue System with Prompt-Tuning (NAACL 2022)
이 연구에서는 캐릭터 설정에 기반한 일관된 응답을 제공하는 대화 시스템을 구축하며, 사전 훈련된 대형 언어 모델에 저비용의 프롬프트 튜닝 방식을 적용하여 자연스럽고 개인화된 응답을 생성할 수 있음을 보여준다.
1 Introduction
- 대화 시스템을 훈련하는 데 사용되는 대규모 대화 말뭉치는 다양한 발화자의 발화를 포함
- 이로 인해 훈련된 시스템이 생성하는 발화가 일관성이 결여됨 (Li et al., 2016b)
- 예: “나는 도쿄에서 왔어요.” 다음에 “나는 교토에서 왔어요.”라고 말할 수 있음
- 일관된 발화를 위해, 페르소나에 기반한 응답을 생성하는 대화 시스템 구축 목표
- 모델에 페르소나를 부여하는 간단한 방법: 자연어로 페르소나를 모델 입력에 연결 (Zhang et al., 2018)
- 하지만 이 방법은 추가되는 페르소나 정보로 인해 입력 텍스트가 길어지는 단점 존재
- 제안하는 방법:
- 사전 훈련된 언어 모델의 모든 매개변수를 동결하고 입력 토큰 시퀀스 전에 고정 길이의 프롬프트 추가
- 페르소나 정보를 포함하도록 임베딩된 벡터만 최적화
- 실험 언어: 영어와 일본어
- 자동 및 수동 평가 결과, 제안한 방법으로 페르소나 기반의 자연스러운 응답이 가능한 대화 시스템 구축 가능성 확인
- 장점:
- 사전 훈련된 모델의 매개변수를 업데이트하지 않음으로써 훈련에 필요한 계산 비용 절감
- 수백~수천 개의 발화-응답 쌍으로 이루어진 작은 데이터셋으로도 개인화된 대화 시스템 구축 가능
2 Related Work
2.1 프롬프트 조정 (Prompt-Tuning)
- 사전학습 모델: BERT 및 T5와 같은 모델의 등장으로 사전학습 모델을 특정 작업에 적합하게 조정하는 방법이 주류로 자리잡음.
- 파라미터 업데이트 필요 없음: 모델의 규모가 커짐에 따라 파라미터를 업데이트하지 않고 작업에 적응하는 방법이 주목받음.
- 제로/소수-shot 학습: Brown 등(2020)이 수동으로 작성된 작업 설명과 예제를 기반으로 한 방법 제안.
- 정확도 문제: 기존 연구(Reynolds and McDonell, 2021; Zhao et al., 2021)는 정확도에서 파인튜닝에 미치지 못함.
- 자동화된 프롬프트 최적화: 프롬프트 조정은 수작업 없이 프롬프트를 최적화하는 방식.
- 두 가지 방법:
- 이산 어휘에서 최상의 단어 선택 (Shin et al., 2020)
- 연속 임베딩 벡터 최적화 (Qin and Eisner, 2021; Li and Liang, 2021; Lester et al., 2021; Liu et al., 2021; Vu et al., 2021)
- 프리픽스 조정: 입력의 시작 부분에 프리픽스 토큰을 추가하고 해당 임베딩 벡터만 최적화 (Lester et al., 2021; Li and Liang, 2021).
- 다중 모달 프롬프트 조정: 이미지와 자연어를 위한 연구 (Tsimpoukelli et al., 2021).
- 두 가지 방법:
2.2 페르소나 기반 대화 시스템 (Persona-Based Dialogue Systems)
- 자연스러운 상호작용: Roller et al. (2021)에 따르면, 일관된 성격, 지식, 감정 및 공감을 고려하는 것이 중요.
- 페르소나 중심 강조: 일관된 응답 생성을 위해 성격을 가장 중요하게 삼음.
- 페르소나-챗 데이터셋: Zhang et al. (2018)이 성격 추가를 목표로 만든 데이터셋.
- 구성: 두 명의 작업자가 각기 5개의 페르소나 문장을 기반으로 한 다중 회차 대화.
- 총 1,155개 페르소나: 각 페르소나에 대해 원본 문장과 수정된 문장 제공.
- 모델 훈련 방식: Zhang et al. (2018)의 연구에서는 다양한 페르소나 기반 발화를 사용하여 모델을 훈련한 반면, 본 방법은 단일 페르소나 기반 발화로 모델을 훈련.
- 일본어 버전: JPersonaChat (Sugiyama et al., 2021).
- 다른 대화 데이터: PersonalDialog (Zheng et al., 2019) 및 Reddit 대화 데이터 코퍼스 (Mazaré et al., 2018).
- 인코딩된 페르소나 정보 추가: Zheng et al. (2019)이 seq2seq 모델의 입력 전 단계에서 방법 제안.
3 Method
- 제안된 방법 소개
- 실험에 대한 자세한 설정은 섹션 4.1과 4.2에서 설명됨
3.1 Proposed Model
- 변환기(Transformer) 기반 모델 제안
- 추가 임베딩 레이어:
- 개인 정보 토큰(pesona info tokens) 위한
- 개인 정보 토큰 설명:
- 사용자의 개인 정보를 담고 있는 토큰
- 모델의 아키텍처 및 입출력 관계:
- 그림 1에 표시됨
3.2 Datasets
- 일상 대화는 항상 개인 정보와 관련되지 않음 (Song et al., 2021).
- 제안된 모델은 다음의 두 가지 종류의 대화 데이터셋으로 구성됨:
- 개인 정보 기반 대화 데이터셋: 각 발화가 개인 정보에 기반함.
- 비개인 정보 대화 데이터셋: 개인 정보와 관련이 없는 발화로 구성됨.
- 모델은 개인 정보와 관련된 발화 뿐만 아니라 비관련 발화도 생성할 수 있도록 설계됨.
3.3 Training
- 신규 추가된 임베딩 레이어는 개인 정보 토큰을 임베딩함.
- 사전 훈련된 언어 모델의 임베딩 레이어는 발화와 응답 쌍을 임베딩함.
- 이 임베딩 벡터들은 결합되어 모델에 입력됨.
- 훈련 중 응답 문장의 출력 토큰에 대해 교차 엔트로피 손실이 계산됨.
- 개인 정보 토큰의 임베딩 레이어의 파라미터만 업데이트됨.
- 개인 정보 토큰의 임베딩 레이어는 Persona-Chat 데이터셋에 포함된 개인 문장으로 초기화됨.
- 해당 문장들은 사전 훈련된 언어 모델의 임베딩 레이어에 의해 벡터로 임베딩되며 초기화에 사용됨.
- 개인 문장의 토큰 수가 개인 정보 토큰의 길이보다 적으면, 개인 문장은 필요할 때까지 반복 배치됨.
4 Experiments
- 대화 시스템 구축:
- 섹션 3의 방법을 기반으로 개인화된 대화 시스템을 구축.
- Hugging Face의 Transformers를 사용.
- 하드웨어:
- NVIDIA A100 SXM4 GPU 사용 (GPU 메모리: 40 GB).
- 실험 언어:
- 주요 실험은 영어로 수행.
- 일본어 추가 실험 결과도 섹션 마지막에 포함.
4.1 Datasets Setup
- 실험에 사용된 데이터셋:
- Persona-Chat Dataset: 1
- DailyDialog Dataset: Li et al. (2017) 2
- 두 데이터셋 모두 영어로 진행됨.
4.1.1 Training Datasets
- 다중 회전 대화: Persona-Chat 데이터셋의 다중 회전 대화는 한 라운드 왕복의 두 발화로 분할됨.
- 대화 쌍: 두 발화의 쌍을 대화 쌍이라고 지칭.
- 개인화 유형: 대화 쌍은 응답자에게 주어진 개인화 유형에 따라 집계됨.
- 사용된 페르소나:
- Persona-Chat 데이터셋에는 1,155개의 페르소나가 존재.
- 실험에서는 대화 쌍이 많은 세 가지 페르소나를 선택하여 실험 진행.
- 선택된 페르소나의 대화 쌍 개수:
- 185, 167, 166.
- 모델 훈련 및 평가:
- 각 실험 설정에 대해 세 가지 페르소나에 해당하는 모델을 훈련 및 평가.
- 훈련 및 평가 비율:
- 집계된 대화 쌍은 9:1 비율로 훈련 쌍과 평가 쌍으로 분할됨.
- 짧은 발화 추가:
- Persona-Chat 데이터셋에는 짧고 개인화와 관련 없는 발화가 부족.
- 이를 보완하기 위해 DailyDialog에서 ‘관계’ 주제의 대화 쌍을 추가.
- 짧은 발화는 발화와 응답 모두 50자는 미만일 때 포함.
- 혼합 비율:
- Preliminary 실험 결과를 바탕으로 DailyDialog에서 추가된 대화 쌍과 Persona-Chat에서 얻은 대화 쌍의 비율을 1:1로 설정함.
- 훈련 데이터셋 비율: 이 비율을 훈련 데이터셋 비율이라고 정의함.
4.1.2 Evaluation Datasets
- 평가를 위해 두 가지 데이터셋을 생성함:
- Persona Eval Dataset:
- 전체 9:1 데이터셋의 10%를 차지함.
- General Eval Dataset:
- DailyDialog에서 수집한 대화 쌍으로 구성됨.
- Persona Eval Dataset:
- 일반 평가 데이터셋의 주제:
- 태도 및 감정
- 문화 및 교육
- 금융
- 건강
- 일상생활
- 정치
- 관계
- 학교 생활
- 관광
- 업무
- 훈련 방법 및 모델 성능:
- Dist-1과 Dist-2에 따른 자동 평가 결과
- Fine-Tuning (added) 모델:
- GPT2-XL: Dist-1 = 0.199, Dist-2 = 0.526
- Fine-Tuning (none) 모델:
- GPT2-XL: Dist-1 = 0.210, Dist-2 = 0.568
- Prompt-Tuning 모델:
- GPT-J-6B: Dist-1 = 0.213, Dist-2 = 0.595
- Fine-Tuning (added) 모델:
- Dist-1과 Dist-2에 따른 자동 평가 결과
- 결과 해석:
- prompt-tuned GPT-J-6B 모델이 가장 다양한 응답을 생성.
- “Added”와 “none”은 개성 문장의 추가 여부를 나타냄.
4.2 Model Setup
- 모델 비교:
- 프롬프트 튜닝 모델과 파인튜닝 비교.
- 데이터셋: 섹션 4.1의 데이터셋 사용.
- 사용 모델:
- GPT2-XL (1.5B 파라미터)
- GPTJ-6B (Wang and Komatsuzaki, 2021).
- GPT-J-6B 모델은 GPU 메모리 부족으로 파인튜닝 미실험.
- 하이퍼파라미터 설정:
- 프롬프트 튜닝의 하이퍼파라미터는 Lester et al. (2021)의 설정에 기반.
- 퍼소나 정보 토큰 길이는 200으로 설정, 초기 실험 결과 반영.
- 응답 문장 생성 전략:
- 탐욕 검색(greedy search) 전략 사용.
- 에폭 수 설정:
- 학습 중 손실이 수렴할 때까지 에폭 수 설정.
- 파인튜닝 실험:
- 두 가지 방법 실험:
- 대화 쌍만 입력.
- 대화 쌍 발언 전에 퍼소나 문장 추가 후 모델에 입력.
- 두 가지 방법 실험:
- 기타 하이퍼파라미터 값은 부록 B에 제공.
4.3 Results
- 평가 데이터셋에서 대화 쌍의 발화를 모델에 입력함.
- 생성된 응답의 다양성을 자동으로 평가함.
- 응답이 자연스러운지, 그리고 개인화된 정보(pesona)를 기반으로 하는지를 수동으로 평가함.
4.3.1 Automatic Evaluation
- 생성된 응답의 다양성을 평가하기 위해 distinct-N 방법(Li et al., 2016a)을 사용함.
- distinct-1 및 distinct-2 값은 Table 1에 제시됨.
- 각 모델의 결과는 세 가지 유형의 페르소나에 대한 일반 평가 데이터셋으로부터 수집됨.
- 결과:
- prompt-tuning으로 훈련된 GPT-J-6B 모델이 가장 높은 점수(98)를 기록함.
Table 2 요약
- 생성된 응답은 유창성, 몰입도, 적합성에 대해 5점 척도로 평가됨.
- 총 5명의 작업자가 각각의 질문에 대해 답변, 평균 및 표준편차 제공.
- prompt-tuning된 GPT-J-6B 모델이 페르소나 평가 데이터셋에서 모든 분야에서 최고 점수 기록.
- 일반 평가 데이터셋에서는 유의미한 차이 없음.
Table 3 요약
- 생성된 응답의 페르소나 고려 점수 분포를 5점 척도로 평가함.
- 1은 페르소나와 일치하지 않음, 3은 페르소나와 관련 없음, 5는 페르소나에 부합함.
- 각 설정에서 페르소나 평가 데이터셋 샘플 수는 50, 일반 평가 데이터셋 샘플 수는 150임.
- 추가 발견:
- fine-tuning 과정에서 페르소나 문장을 입력에 추가하지 않을 때 결과가 더 좋음을 발견함.
- Zhang et al. (2018)의 seq2seq 모델 실험 결과와 유사한 결과임.
4.3.2 Manual Evaluation
- 평가 플랫폼
- Amazon Mechanical Turk 사용
- Zhang 외 (2018)의 방법론 따름
- 평가 항목
- 유창성, 몰입도, 적절성, 페르소나 고려
- 5점 척도로 평가
- 평가 대상 및 샘플 수
- 페르소나 평가 데이터셋에서 50개, 일반 평가 데이터셋에서 150개
- 실험 설계
- 작업 예시는 부록 C에 제시
- 인간 평가 점수는 Zhang 외 (2018) 실험에서 인용
- 모델 성능
- 페르소나 문장을 입력할 경우, 자동 평가 결과가 낮아지므로 페르소나 문장 없이 평가
- prompt-tuned GPT-J-6B 모델이 모든 평가 항목에서 최고 점수 기록
- 결론
- 모델 크기가 클수록 더 많은 지식 저장 및 자연스러운 응답 생성
- 일반 평가 데이터셋 결과
- 큰 차이는 없지만, 일반적인 짧은 문장으로 이루어져 있어 간단한 응답 대부분
- 페르소나 고려 결과
- 평가 결과 분포: 1(불일치)에서 5(일치)까지
- 생성된 응답의 평균 점수는 페르소나 기반 응답 대부분이 동응일함을 나타냄
- 모델 훈련 방법 비교
- prompt-tuning이 자연스러운 응답 생성을 더 잘함
- 응답 예시
- 탁월한 점수를 받은 prompt-tuned GPT-J-6B 모델의 생성된 응답 예시 제시
- 페르소나 기반과 비기반 응답 모두 나타남
- 훈련 데이터셋
- 소규모 데이터셋에서도 자연스럽고 일관된 개성을 생성하는 응답 가능함.
4.4 Experiments in Japanese
- 일본어 실험을 위해 두 개의 데이터셋 사용:
- JPersonaChat
- JEmpatheticDialogues (Sugiyama et al., 2021)
- 영어 실험과 유사하게 세 개의 페르소나 사용:
- JPersonaChat의 대화 쌍 수: 527, 525, 525
- 훈련 데이터셋 생성 과정은 영어 실험과 동일함:
- JEmpatheticDialogues의 발화가 더 짧고 일반적이어서, 추가 발화 조건 없음
- 훈련 데이터셋 비율은 1:10으로 설정:
- 초기 실험 결과 기반
- 모델:
- GPT2-XL5 (1.3B 매개변수)
- HyperCLOV A (Kim et al., 2021; 6.9B 매개변수)
- 자동 평가 결과 (표 6):
- HyperCLOV A는 매개변수가 많음에도 불구하고 낮은 점수 경향
- 응답이 백채널링으로 시작하는 경우가 많음
- 수동 평가 결과 평균 점수 (표 7):
- Persona eval 데이터셋 및 일반 eval 데이터셋 모두에서 HyperCLOV A 모델이 가장 높은 점수 기록
- 페르소나 고려 사항 분포 (표 8):
- 영어 실험과 유사하게 많은 응답이 페르소나를 기반으로 함
- 페르소나와 불일치하는 응답은 적음
- 생성된 응답 예시는 부록 A에 제공됨
5 Conclusion
-
제안된 방법: 단일 페르소나를 기반으로 하는 대화 데이터를 이용한 사전 훈련된 언어 모델의 프롬프트 튜닝 방법.
- 자동 및 수동 평가 결과:
- 대화 시스템이 더 자연스럽고 개인화된 응답을 생성할 수 있음.
- 재조정(finetuning)보다 적은 계산 자원으로도 가능.
- 언어 비교:
- 일본어로 생성된 응답이 영어보다 자연스러움.
- 평가 결과:
- 프롬프트 튜닝을 통한 HyperCLOV A 모델이 모든 평가 항목에서 가장 높은 점수.
- 평가 항목: 유창성, 흥미도, 관련성.
- 미래 활용 방향:
- 대화 시스템에 개인성을 추가하는 데 사용할 수 있음.
- 감정을 표현하는 응답 생성을 위한 프롬프트 설계 가능성.
Comments