트랜스포머
정의
트랜스포머: 셀프어텐션 사용(단어간 장거리 종속성과 문맥 관계를 포착할 수 있게 하는 어텐션) 아키택처에서 파생된 AI 모델이며 사람의 언어를 이해 및 생성
종류
Language Modeling은 NLP의 하위분야로 '자동 인코딩 작업'과 '자기회귀 작업' 두가지 모델링 작업이 있음.
- 자동인코딩: 알려진 어휘에서 문장의 어느 부분이든 누락된 부분을 채우도록 모델에 요청. 예시로는 BERT. 트렌스포머의 인코더 부분에 해당. 마스크 없이 양방향 표현을 생성. 문장 분류 또는 토큰 분류에 주로 사용됨.
- 자기회귀(Autoregressive Language): 알려진 어휘에서 주어진 문장의 바로 다음에 가장 가능성 있는 토큰을 생성하도록 모델에 요청. 예시로는 GPT. 트렌스포머 모델의 디코더 부분에 해당
특징
2017년에 나온 트렌스포머는 seq2seq 모델이었음.
아래 두가지 요소를 가지고 있음.
- 인코더: 문장을 핵심구성 요소로 분리, 벡터화하고 어텐션을 이용해 텍스트 맥락을 이해(텍스트 이해가 뛰어남)
- 디코더: 수정된 형식의 어텐션을 사용해 다음에 올 최적의 토큰을 예측하고 텍스트 생성(텍스트 생성이 뛰어남)
이 둘을 사용하면 seq2seq 모델이 됨.
BERT는 인코더, GPT는 디코더만 있는 모델, T5는 둘을 조합한 모델.
1.1 LLM의 작동원리
사전훈련(pre-training)과 파인튜닝되는지에 따라 성능이 결정됨. LLM기반 모델들은 언어와 단어의 관계를 배우고 이해하려는 훈련을 받음.
Pre-training은 모델을 사전에 학습하는 것임. 예를 들면, BERT는 영어 위키백과(영어버전의 위키백과로 수집된 기사들)와 BookCorpus(다양한 장르의 소설, 비소설로 검증된 저자에 의해 영어로 작성된 문서들)에서 사전훈련 되었음.
또한, 두가지 모델로 학습되는데 '마스크된 언어모델링'(한 문장 안에서 토큰의 상호작용을 인식하도록)과 '다음문장예측'(문장들 사이에서 토큰이 서로 어떻게 상호작용하는지) 모델링 작업을 수행하는데 전자는 개별 단어 임베딩을 가르치기 위함이고 후자는 전체 텍스트 시퀀스를 임베딩하는 방법을 학습하기 위함.
전이학습(Transfer Learning)
LLM내에서 전이학습은 말뭉치에서 사전훈련한 LLM을 가져와 작업 특정 데이터로 모델의 파라미터를 업데이트함.
이미 특정 언어와 언어간의 관계를 사전에 학습해서 새로운 작업에 성능 향상을 가능하게 함.
비지도 학습으로 일반적인 개념을 가르치고, 지도학습으로 모델을 파인튜닝
파인튜닝(Fine-tunning)
특정 작업의 성능을 향상시키기 위한 조정
어텐션(Attention)
다양한 가중치를 다르게 할당하는 메커니즘. 가장 중요한 정보를 강조 가능해짐.
위 설명을 요약하자면,
LLM은 큰 말뭉치에서 사전훈련되고 작은 데이터셋으로 파인튜닝됨. 트랜스포머는 고도의 병렬처리가 가능하여 빠르며 토큰 간의 장거리 의존성과 관계를 어텐션을 사용해서 포착 가능함. 특히, 어텐션이 Internal world model과 사람이 식별할 수 있는 규칙을 학습하는데 가장 주요한측면으로 보여지고 있음.
임베딩(Embedding)
단어, 구절, 토큰의 수학적 표현
토큰 임베딩(토큰의 의미를 임베딩), 세그먼트 임베딩, 위치임베딩(위치를 임베딩)등 여러 종류의 임베딩이 존재함.
텍스트가 토큰화되면 각 토큰에 임베딩이 주어지고 그 값들이 더해짐. 어텐션이 계산되기 전에 초기 임베딩을 갖게됨.
토큰화(Tokenization)
텍스트의 가장 작은 이해단위인 토큰으로 분해하는 과정
LLM에서는 전통적인 NLP에서 사용한 불용어제거, 어간추출, 잘라내기 등과 같은 것들이 필요하지 않음.
out-of-vocaburary(OVV)구문을 어떻게 처리하나? 일단 더 작은 부분의 단어로 나눔.
1.2 가장 많이 활용되는 LLM
BERT, T5(Google), GPT(OpenAI)은 트렌스포머 기반 아키텍쳐
BERT(Bidirectional Encoder Representation from Transformers)
문장의 양방향 표현을 구성하기 위해 어텐션 메커니즘을 사용하는 자동 인코딩 모델
문장 분류와 토큰 분류 작업에 이상적.
Bidirectional: 자동 인코딩 언어 모델
Encoder: 트랜스포머에서 인코더만 활용
Representation: 어텐션을 활용
Transformers: 트랜스포머의 아키텍처를 활용
생성에 중점을 둔 느린 LLM에 비해 빠르게 처리 가능. 자유로운 텍스트 처리보다 대량의 말뭉치를 빠르게 분석하고 작업하는데 적합. 문서 분류나 요약보다는 사전훈련된 모델로 활용함.
GPT-4와 ChatGPT(Generative Pre-trained Transformers)
어텐션 메커니즘을 사용한 자기회귀 모델
텍스트 생성에 활용.
Generative: 자기 회귀 언어 모델
Pre-trained: 디코더는 거대 말뭉치에서 학습
Transformers: 트랜스포머의 아키텍처를 활용
한번에 하나의 토큰을 생성하는데 뛰어남. 큰 문맥 윈도우를 주었을때 텍스트를 생성하는데 적합.
T5(Text-to-Text Trsansfer Transformers)
텍스트 분류, 요약 및 생성하는 인코더/디코더 트랜스포머 모델
Text-to-Text: 시퀀스 투 시퀀스 모델
Transfer: 전이학습을 이용
Transformer: 인코더, 디코드를 모두 활용한 순수 트랜스포머
텍스트 처리와 이해하는 능력 그리고 생성까지 모두 필요로한 어플리케이션에 유용하며
GPT-3도 이러한 능력을 보유함.
1.3 도메인 특화 LLM
domain-specific LLM은 특정 도메인에서 언어와 개념을 이해하기 위해 설계됨. (예시: 생물 의학 무넌에 사전 훈련된 BioGPT) 당연한 얘기지만 특정 도메인을 잘 이해하는거만큼 일반 LLM은 특정 도메인의 언어를 이해하는데 모자람이 있을 것임.
1.4 LLM을 이용한 어플리케이션
- 사전 훈련된 LLM으로 파인튜닝없이 기본 처리 하기
- 전이학습을 사용해 사전 훈련된 LLM을 파인튜닝 하기
- 사전 훈련된 LLM에 작업 요청하기
'데이터분석 > 딥러닝' 카테고리의 다른 글
Knowledge distillation & Calibration (0) | 2024.05.20 |
---|---|
GAN 모델이란? (2) | 2021.04.06 |
CNN으로 개와 고양이 분류하기 (1) | 2020.02.25 |
MNIST를 이용해 간단한 CNN만들기 (2) | 2020.02.12 |
배치학습 vs 온라인학습 (0) | 2020.02.12 |