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
들어가기 전
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의 패러다임을 제시함!
그러니까 요약하자면,
- 5600억 개 한국어 토큰으로 학습한 대규모 한국어 언어 모델 "HyperCLOVA"!
- 비영어권 언어를 학습할 때, 언어별 토큰화 방식의 효과를 발견함!
- Prompt based 튜닝 방식이 성능을 향상할 수 있다는 사실을 발견함!
- 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에 나와있음
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바이트의 비 한글 문자 단위로 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 결과임
- 모델 크기가 커지면서 성능이 좋아지는 것을 확인할 수 있음
- 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)를 확인하면 우리 토큰화 방식이, 전반적으로 성능이 좋고
- 언어별 토큰화 방식이 중요한 점을 깨달았음
5. Discussion on Industrial Impacts
What change can large-scale LMs bring? (대규모 언어 모델들은 어떤 변화를 가져올까?)
- 라고 묻는다면, 우리는 " NLP ML Operation 작업 가속화"라고 대답할 것임
딥러닝 알고리즘 연구가 아니라, 딥러닝 모델을 사용한 AI 응용프로그램 만들기 단계에서는
- 많은 단계가 존재하기 때문에 많은 비용이 들어감
하지만 HyperCOLVA Studio 같이, 대규모 LM은 존재하고 이를 활용할 수 있는 플랫폼만 있다면
- 비전문가도 뚝딱뚝딱 프로토타입 수 있음
그리고 일반적으로 AI 응용프로그램 만들 때 아래와 같은 단계가 존재함
- 문제 정의 및 사용자 연구
- 데이터 수집 및 라벨링
- 모델 학습 및 검증
- 배포와 MLops 단계
- 오류 분석 및 사용자 모니터링
하지만, 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 프로그램을 개발하는 것이 대중화되길 바람