본문 바로가기

논문

[논문 공부] What Changes Can Large-scale Language Models Bring? Intensive Study on HyperCLOVA: Billions-scale Korean Generative Pretrained Transformers

What Changes Can Large-scale Language Models Bring? Intensive Study on HyperCLOVA: Billions-scale Korean Generative Pretrained Transformers

원문 : https://arxiv.org/pdf/2109.04650.pdf


개요

이번 포스팅에서는 What Changes Can Large-scale Language Models Bring? Intensive Study on HyperCLOVA: Billions-scale Korean Generative Pretrained Transformers 논문을 공부합니다.

나는 사용했다. 구글 번역기 번역을 위해서


Reference

jiho님의 HyperCLOVA 리뷰


들어가기 전

In-context learning

  • Context 내에서, 주어진 task에 대한 description을 통해 어떤 task를 수행해야 하는지 '유추'하며 학습함
  • ex) description : 'Eng2Kor', hi -> 안녕(1-shot)  
  • 위처럼 설명과 1-shot or zero-show or few-shot을 주고 학습하는 방식
GPT-3 읽어 보고 개념이 맞나 다시 확인할 필요가 있음

 


TITLE : What Changes Can Large-scale Language Models Bring? Intensive Study on HyperCLOVA: Billions-scale Korean Generative Pretrained Transformers

Abstract

GPT3는 언어 모델에서 매우 놀라운 능력을 보여줬지만

  • 본 논문에서 우리는 GPT3에 남아있는 문제(Like 'nonEnglish LM' , 다양한 크기의 모델에 대한 성능)에 대해 다룸

해당 문제를 다루기 위해서, 우리는 5600억 개 한국 토큰을 가진 말뭉치로 학습해서

  • 820억 개의 매개변수를 가지는 GPT3 변형 모델인, HyperCLOVA를 소개함

HyperCLOVA는 다양한 한국 downstream task의

  • zero-shot learning과 few-show learning에서 SOTA를 달성함

또한, 우리는 prompt-based learning의 이점을 보여주고

  • prompt engineering pipeline에 통합할 수 있는 방법을 보여줌

그리고 HyperCLOVA 스튜디오를 도입해

  • 비전문가도 할 수 있는 No Code AI 패러다임의 실현 가능성에 대해 보여줌

마지막으로, 3가지 성공적인 사내 응용프로그램을 통해

  • 우리가 소개한 방법의 잠재력을 입증함

1. Introduction

Zero-shot learning과 Few-shot learning의 성능이 뛰어나기 때문에

  • GPT-3는 상당한 주목을 받았음

GPT-3을 사용한

  • In-context learning 성능을 더 향상한 연구들도 제안되었음

심지어 최근에는, 모델의 매개변수를 하나도 업데이트하지 않고

  • GPT-3, BERT, T5의 성능을 향상한 prompt-based learning 방식도 나왔음

우리는 GPT-3을 사용하는 데 있어서 3가지 실질적인 문제를 다룸

First

GPT-3에 사용된 학습 말뭉치(corpus)의 92.7%가 영어임

  • 그래서 다른 언어 task에 적용하려면 어려움

또, 영어-한국어처럼 언어 속성이 다른 경우, 모델을 학습하는 방법도 잘 모르고

  • 어떤 언어가 잘 적용되는지 아닌지도 잘 모름
두 번째

대규모 LM을 사용할 때 드는 비용을 고려해야 하기 때문에, 다양한 크기의 모델 성능을 알면 좋지만

  • 우리가 알 수 있는 정보는 130억 개/1750억 개의 매개변수를 가진 GPT-3 뿐임
마지막

향상된 prompt-based learning 방식이

  • 아직, in-context learning방식으로 학습된 대규모 LM에 관련해서는 연구가 없음
이러한 문제점을 해결하기 위해서

우리는 다양한 매개변수를 가진 비영어권 GPT-3을 사용함

 

비영어권 GPT-3는  in-context few-shot learning 방식과 promptbased learning 방식으로

  • Classification과 Generation에 관련한 다양한 task를 통해 기능 분석할 것임

그래서 우리는 한국어 LM, 820억 개의 매개변수를 가지는 HyperCLOVA를 가져왔음

 

HyperCLOVA에 사용되는 한국어 데이터셋의 코퍼스 구성과

  • 5610억 개 한국어 토큰을 수집하기 위한 크롤링과 전처리 방식에 대해 설명함

또한 HyperCLOVA를 위한 새로운 한국어 토크 나이징 방식과

  • byte-level BPE 토크 나이저도 소개함

우리 연구 결과가 tokenization 방식이 In-context learning 방식의 대규모 모델에서

  • 매우 중요한 역할을 한다는 것을 보여줌

HyperCLOVA는 SOTA를 달성했고

  • 대규모 언어 모델(LM)에 지속적인 prompt-based 최적화 기술의 적용 가능성 또한 발견함

P-tuning의 효과에 대한 조사도 했고

  • AI산업에서 다양한 단일 LM의 운영성을 설명함

또 있다, 또 

  • 우리는 ML 비전문가도 AI제품 만들 수 있게 하는 HyperCLOVA Studio랑 사용 시나리오도 소개함

진짜 마지막으로

  • HyperCLOVA Studio를 활용한 No/Low Code AI의 패러다임을 제시함!

그러니까 요약하자면,

  1. 5600억 개 한국어 토큰으로 학습한 대규모 한국어 언어 모델 "HyperCLOVA"!
  2. 비영어권 언어를 학습할 때, 언어별 토큰화 방식의 효과를 발견함!
  3. Prompt based 튜닝 방식이 성능을 향상할 수 있다는 사실을 발견함!
  4. HyperCLOVA Studio를 통한 No Coda AI 구현 가능성 주장!

2. Previous Work

2.1 Prompt Optimization

언어 모델이 계속 커짐에 따라 prompt-based learning 방식이

  • 여러 측면에서 효율적이기 때문에 finetuning 방식을 대체할 수 있는 가능성을 보여주는 연구들이 나오고 있음

2.2 Language Model

다국어 언어 모델이 사용 가능하지만 여전히 특정 언어 모델이 성능이 더 좋음

 

하지만 비영어권 언어 모델은 높은 비용 때문에 사용하는데 제한적이고

  • 우리가 아는 한, 비영어권 In-context learning 은 아직 연구가 안됨

3. Pre-training

3.1 Data Description

GPT-3에 사용된 데이터셋 중 한국어 데이터는

  • 0.02% 미만으로 매우 적은 수치임

따라서 HyperCLOVA을 학습하기 위해선

  • 대규모 한국어 중심 corpus를 구축하는 것이 중요함

HyperCLOVA를 pre-training 할 때 사용한 데이터셋은 표 1에 나와있음

표 1

GPT-3을 학습할 때 사용한 데이터셋의 크기에 버금가는 데이터셋을 만들기 위해

  • 법적 문제가 없는 선에서 사내 서비스와 외부 파트너로부터 데이터를 수집함

우리는 데이터셋을 정제하고 최종적으로 5610억 개 한국어 토큰으로 코퍼스를 만들었고

  • Pre-training을 위해 무작위로 샘플링함

부록 A1, A2, A3, A4에 데이터 수집부터 정제방법까지 자세히 나와있음

  • Modu 데이터는 국립 국어원(NIKL). 에서 수집한 다양한 데이터셋의 집합
  • 데이터셋 비율은 한국어 97%, 영어 2%, 일본어 0.5%, 그 외 0.5% 로 구성
  • 문서의 Quality를 측정하기 위해 로지스틱 회귀 모델 사용
  • High-quality인 백과사전은 positive, 크롤링된 웹 문서는 negative로 학습해, Low-quality로 예측된 문서를 제외시킴
  • 중복 문서를 제거하고자 Hash 함수를 사용해 유사도를 계산함
  • 사내 필터링 기술을 사용해 광고와 불필요 문서를 제거함
  • 너무 짧거나 반복적인 Low-quality 한 문서 제외
  • 욕설과 속어, 중복 문장 제거
  • KiN 데이터(QnA데이터셋임)인 경우, 질문 하나당 답변수가 많으면 공인 전문가의 답변을 사용하고 채택된 답변이라도 답변자의 평판이 낮은 경우 제외함
  • 또한 특정 페이지의 의미 있는 부분만 사용(예를 들어, 뉴스 기사에 첫 줄과 마지막 줄에 있는  "홍길동 기자" 같은 문구 제외)
  • 개인 정보는 마스킹하고 중요하지 않은 정보(성별, 나이 등등)는 사용함

3.2 Model and Learning

HyperCLOVA는 GPT-3와 동일한 아키텍처 구조를 사용하고

  • 표 2에서 다양한 모델 크기의 세부 구성을 볼 수 있음

특히, 대규모 LM에 관한 연구에서는 다루지 않았던

  • 응용프로그램에서 유용하게 사용되는 중간 크기의 모델의 기능과 representation 파워에 관한 분석을 목표로 함

왜 분석하냐면

  • 엄청 큰 크기 모델을 이해하는데 도움도 될 것이고, 실질적으로 많이 사용할 수 있는 크기 이기 때문임

옵티마이져는 AdamW 사용함

  • 하지만 CosineAnnealing LR(learning rate)와  weight decay를 곁들인

모든 크기의 모델은 1024의 mini-batch size  사용

  • 820억 개 매개변수를 가진 모델 하나 학습하는데 13.4일 걸림

3.3 Korean Tokenization

한국어는 명사 뒤 조사가 있고, 동사나 형용사의 어간 뒤에는 어미가 있는, 교착어임

  • 따라서 명사, 조사, 어간과 어미를 적절하게 토큰 화하면 각 토큰의 의미가 명확해짐

해당 논문에서는

  • Tokenization이 한국어 언어 모델의 성능에 영향을 미친다는 연구 결과를 보여줬음

그렇기 때문에, 영어와 달리

  • 한국어 LM에 맞는 토큰화 방식을 사용해야 함

우리는 morpheme-aware byte-level BPE 토크 나이져를 사용함

  • GPT-2랑 GPT-3에서 사용된 토크 나이 져도 byte-level BPE였음

하지만 영어랑은 달리, 'ㅎ', '하', '한'은 모두 다른 글자로 취급하여 서로 다른 세 개의 유니코드 바이트로 나뉨

  • 그래서 형태소 분석기를 적용해, 기존 byte-level BPE 문제를 완화시킴(그림 1)

그림 1

회사 내에서 사용하는 형태소 분석기를 사용해 띄어쓰기랑 형태소를 사용해 문장을 미리 분할하고

  • 분할된 문장의 일부를 사용해서 1바이트의 비 한글 문자 단위로 Morpheme aware byte-level BPE를 학습함

4. Experimental Results

4.1 Experimental Setting

우리는 주로 5개의 데이터셋을 사용했는데,

  • 이 중 2개는 KLUE(Korean Language Understanding Evaluation)에서 가져옴

그리고 Prompt-based optimization 성능을 평가하기 위해

  • 사내에서 사용 중인 데이터셋을 추가로 사용함

5개 데이터셋 

NSMC
  • NAVER Movies에서 가져온 영화 리뷰 데이터 셋, 평점 예측 Task
  • 학습 데이터 15만 개, 테스트 데이터 5만개
  • Few-shot learning 할 때, 12개 sets를 생성(각 Set은 원본 학습 데이터셋에서 무작위 샘플링된 70개 예제로 구성)
  • 테스트 정확도는 12개의 모델에 대해 정확도를 평균냄
KorQuAD 1.0
  •  Machine reading comprehension 데이터셋의 한국어 버전 데이터, 독해 Task
  • 학습 지문 데이터 66,181개, 검증 지문 데이터 5574개
  • GPT-3 연구에서 사용했던, SQuAD v2.0를 사용한 평가 체계를 따름
  • 모델 크기별로 실험함
AI Hub Korean-English
  • 뉴스, 정부 웹사이트, 법률 문서에서 가져온 (한국어, 영어 번역본)으로 구성된 데이터셋, 번역 Task
  • 80만 개의 Sentence(한국어, 영어 번역본이 하나의 pair)가 존재함
  • 번역 작업을 평가하기 위해, 무작위로 1000개 pairs를 추출함
  • 평가를 위해 BLEU score 사용
YNAT
  • 7개의 뉴스 토픽 클래스로 구성된 분류 Task
  • 학습 데이터 45000개, 검증 데이터 9000개, 테스트 데이터 9000개로 구성
KULE-STS
  • 문장 간 유사성을 예측하는 Task
Query modification task
  • AI 스피커 같은 대화형 시스템을 위한 쿼리 변형에 대한 이해 Task

4.2 In-context Few-shot Learning

  • 아래는 6가지 Tasks에 대한 Few-shot learning 결과임

그림 2

  • 모델 크기가 커지면서 성능이 좋아지는 것을 확인할 수 있음
  • Ko-En의 경우, 한국어 말뭉치에 비해 영어 말뭉치 비율이 적어서 성능이 잘 안 나오는 것으로 추정
  • 비교 Baseline은 mBERT(다국어 BERT)와 Transformer 기반 모델

 

4.4 Effect of Tokenization

한국어 언어 특성을 고려한

  • 우리의 토큰화 방식, Morpheme-aware bytelevel BPE의 효과를 분석함

우리 방식과 비교하기 위해서, Byte-level BPE , Char-level BPE를 사용함

  • 사용한 이유는 이 두 개가 대규모 LM을 학습하는 데 사용할 때 주로 사용되기 때문

Pre-training 하는 시간을 고려해서, 상대적으로 크기가 작은 모델에 적용해서 성능 테스트함

  • 그럼에도 불구하고, 토큰화 방식이 중요하다는 증거를 발견함

결과(그림 3)를 확인하면  우리 토큰화 방식이, 전반적으로 성능이 좋고

  • 언어별 토큰화 방식이 중요한 점을 깨달았음

그림 3


5. Discussion on Industrial Impacts

What change can large-scale LMs bring? (대규모 언어 모델들은 어떤 변화를 가져올까?)

  • 라고 묻는다면, 우리는 " NLP ML Operation 작업 가속화"라고 대답할 것임

딥러닝 알고리즘 연구가 아니라, 딥러닝 모델을 사용한 AI 응용프로그램 만들기 단계에서는

  • 많은 단계가 존재하기 때문에 많은 비용이 들어감

하지만 HyperCOLVA Studio 같이, 대규모 LM은 존재하고 이를 활용할 수 있는 플랫폼만 있다면

  • 비전문가도 뚝딱뚝딱 프로토타입 수 있음

그리고 일반적으로 AI 응용프로그램 만들 때 아래와 같은 단계가 존재함

  1. 문제 정의 및 사용자 연구
  2. 데이터 수집 및 라벨링
  3. 모델 학습 및 검증
  4. 배포와 MLops 단계
  5. 오류 분석 및 사용자 모니터링

하지만, HyperCLOVA Studio같이 GUI 인터페이스가 있는 플랫폼은

  • 2~4단계를 하나의 단계로 해결할 수 있기 때문에 AI 제품 개발에 걸리는 시간도 줄일 수 있음


6. Conclusion

한국어가 중심인 대규모 언어 모델인 HyperCLOVA를 소개했음

 

820억 개 매개변수를 가진 우리 모델은 in-context zero-shot , few-shot을 통해서 SOTA를 달성했고

  • Prompt-based learning 방식으로 성능이 더 좋아질 수 있는 것도 보여줬음

그리고 비전문가도 AI제품을 개발할 수 있도록 

  • HyperCLOVA Studio를 제공할 것임

우리 플랫폼은 No Code AI 패러다임을 완성시킬 수 있다고 생각하며

  • 플랫폼을 활용해서 비전문가도 AI 프로그램을 개발하는 것이 대중화되길 바람