N-gram 모델
연속적인 n개의 단어/문자/토큰을 활용하는 법.
ex) 나는 오늘 학교에 걸어 갔다.
if Bi-gram : P("오늘"|"나는"), P("학교에"|"오늘") 이런 확률들을 고려함.
활용
음성인식
기계번역 - 어느 정도 말이 되는 문장
자연어 생성 - 사람이 한 거 같은 말
한계
N이 커질 수록 고려할 조합의 수가 많아짐
모든 조합을 corpus 내에서 관찰하기는 힘듦
데이터가 부족함
계산이 복잡복잡
context 벡터의 길이가 고정됐기에 긴 의존성이 갖는 언어적인 특성은 잡아내기 어렵다.
해결법
인공신경망을 활용한 RNN, Transformer를 통해 비지도학습을 해서 언어의 P(x)를 학습해서 글을 생성하면 됨.
고려할 것
1. corpus를 어떻게 token으로 나눌지
- Character-level tokenization
- Word-level tokenization
- Sub-Word tokenization
2. 개별 token 표현법
- one_hot encoding (희소 표현)
- Word2Vec (밀집 벡터)
3. 연속적인 입력에 대한 처리
- RNN
- Transformer
in RNN, 출력값 중 가장 높은 확률의 인덱스의 값을 다음 입력으로 넣음
in Transformer, 입력을 encoder에 넣어서 나온 출력값을 decoder의 입력값으로 넣어 결과를 계산함.
GPT
Transformer 기반 Language Model
Generative Pre-trained Transformer
- 생성형 사전 학습 Transformer
- OpenAI 에서 개발한 대규모 언어 모델
- Transformer 디코더 아키텍처 활용 (self-attention)
- Autoregressive Language Model ( 다음 토큰 예측해서 다음 입력으로 사용하는 것을 반복)
- 엄청난 크기의 Corpus에 학습되어 언어 패턴, 지식, 문맥 등 학습
- 다양한 언어 작업 (번역, 문장 완성, 요약 등) 으로 확장 가능
- 사전학습은 ? 특정 작업에 맞추어 미세 조정 가능.
GPT 기계 번역
ex) <to-fr> 같은 특수 토큰 사용 ( 프랑스어로 바꿔주는 토큰 )
GPT 요약
<summarize> 특수 토큰 활용
--> 문장분류, 여러 문장 관계/유사도/정답여부 학습.
입력에 특수 토큰 같이 넣고, 출력을 Linear 통해 원하는 차원으로 맞춰줌.
BERT
Bidirectional Encoder Representations from Transformers
첫 번째 공동 토큰으로 [CLS] 토큰 활용.
Language Model + Transformer's encoder
임베딩 차원에 해당하는 입력 토큰들을 트랜스포머 인코더로 분석 후, 분류 작업으로의 fine-tuning에서 CLS토큰을 출력으로 사용해 분류
- Masked language model pretraning (close task)
토큰의 15%를 가리고, 이를 모델로 예측하는 문제 학습.
문맥/내용/흐름을 이용해야 masking된 곳의 단어를 맞힐 수 있음.
- 다음 문장 예측 (Next sentence prediction)
A, B 두 문장에 대해, B가 A의 다음 문장이 맞을지 맞히는 문제.
50% 확률로 다음 문장인 것을 주어줌.
Down-stream task로의 fine-tuning
NLP 문제 예시
Entailment, Question and answering
문장 여러 개를 주고, 이 문장들의 관계(함의-논리적으로 지지한다. 등)를 따짐.
Pre-trained language model
큰 말뭉치를 이용해 language model을 학습.
- 언어에 대한 이해. 토큰의 자연스러운 흐름, 문맥적 정보 분석, 토큰 사이 관계 분석
- 특정 작업을 잘 하고 싶으면, 그 작업의 data를 특수 토큰을 활용해 autoregressive next token prediction 문제로 변환/입출력 정의
- 필요하면 모델의 구조 바꾸기 (ex - 마지막 layer에서의 출력을 1차원으로.. 등)
- 특정 작업에 미세 조정(fine-tuning) with 해당 작업의 데이터
LLM few-shot / zero-shot capability
Few-shot
새로운 작업에 대해 몇 가지 예시를 줘서 학습시키고 이해시킨 후 새로운 작업 수행하도록 함
Zero-shot
사전에 학습된 지식만 갖고 작업 수행
Prompt engineering
각 작업에서 모델 출력을 변경하거나 추가 학습 없이, 프롬프트 통해 다양한 작업에 모델 적용하는 방법
LLM 창발성
복잡한 시스템의 기본 요소들이 상호작용하여, 개별 요소들의 간단한 동작에서는 예측 불가한 새로운 패턴, 속성, 행동이 나타나는 현상. 단순한 요소들의 합 이상의 속성이 시스템 전체에 나타남.
ex) 개미 혼자는 그냥 움직 / 단체는 식량 찾고 천적 회피
개별 운전자는 그냥 자기 가는 곳 가면 됨 / 단체는 도로 시스템 따르며 정체 발생하기도
-> LLM의 학습 파라미터가 100억 개에서 1000억개 사이에서 특별한 능력이 생기게 된다.
'AI > 인공지능' 카테고리의 다른 글
강화학습 (1) | 2024.06.12 |
---|---|
최적화, Optimization (0) | 2024.06.12 |
VAE, Diffusion (vision transformer 추가하가( (3) | 2024.06.11 |
GAN (2) | 2024.06.09 |