Upstage AI Lab 2기
2024년 5월 7일 (화) Day_100
오늘의 todo
- [ ] 강의 수강
- [ ] NLP Advanced (05/13 (월), 05/14 (화))
- [ o ] BERT 이전 몰아보기
- [ o ] 자연어처리 경진대회 이해하기
- [ o ] 자연어처리 Task 이해하기
- [ o ] 자연어처리 Pipeline 이해하기
- [ o ] 자연어처리 Pipeline 구현하기
- [ ] Encoder Model (BERT)
- [ ] Transfer Learning이란
- [ ] BERT 이해하기
- [ ] Tokenizer 이해하기
- [ ] BPE 구현하기
- [ ] BERT Pretraining 하기
- [ ] BERT Finetuning 하기
- [ ] 수강한 강의 내용 정리하기
- [ o ] 자연어처리 경진대회 이해하기
- [ ] Encoder Model (BERT)
- [ ] 코드 필사
- [ o ] 산책
CH1. BERT 이전 몰아보기
(1) Seq2Seq (Sequence to sequence)
Encoder + Decoder 구조
- Encoder : 자연어를 고정된 길이의 벡터 (context vector) 로 변환
- Decoder : context vector를 타겟 자연어로 변환
(2) RNN (Recurrent Neural Network)
In 현재 타임 스텝(t) : input x<t> & a<t-1> (이전 스텝까지의 정보)
- One-to-One : e.g. 이미지 분류
- One-to-Many : e.g. 음악/텍스트 생성
- Many-to-One : e.g. 언어모델, 감성분류
- Many-to-Many (Tx = Ty) : e.g. 개체명인식
- Many-to-Many (Tx != Ty) : e.g. 기계번역
장점 :
1. sequential 특성 학습
2. past 정보 고려
3. 다양한 길이의 입출력 처리에 용이
단점 :
1. Long-term-dependency
2. 선행 타임스텝에 대한 의존성 - 계산 속도 느림
3. Gradient Vanishing Problem
(2-1) LSTM (Long-Short-Term-Memory)
vanilla RNN의 Long-term-dependency 보완한 RNN
cell state와 gate로 Gradient Vanishing Problem 개선
|- cell state : 핵심정보 저장
|- hidden state : 각 time step 마다 필요한 정보만을 hidden state 에 업데이트
(2-2) GRU (Gated Recurrent Unit)
LSTM의 모델 구조를 단순화
LSTM vs. GRU
|- LSTM : 2가지 state, 3가지 gate
|- GRU : 1가지 state, 2가지 gate - LSTM 보다 Long-term-dependency에 취약
note : 나중에 LSTM과 GRU 논문 읽고 구조 좀 더 자세하게 기술해보기
(3) Attention
RNN + Attention
Decoder의 특정 예측 시점 : 인코더의 각 스텝의 hidden state 와 디코더의 hidden state 에 대한 attention score 출력
(4) Transformer
“Attention is All you need”
(다 필요없다! Attention( Key, Query, Value. )만 있으면 된다!) → A Big Paradigm Shift!!
|- Seq2Seq Model : Encoder + Decoder 구조.
|- Multi-head Attention : Attention을 여러 head로 병렬 계산 for diversity. Concat Attention values from each head.
|- Self-Attention : 같은 문장 내 토큰 간 attention. 인코더/디코더 각각에서 attention + 인코더-디코더 attention
|- Positional Encoding : 입력 sequence 상 token의 위치에 대한 정보
note : 기존의 attention 은 인코더-디코더 간 attention 뿐.
RNN 없음. Only Key, Query, Value.
- Concat Attention values from each head.
- (hidden_size)/(num_attention_heads) : 나누어 떨어지지 않으면 error 발생함.
Query, Key, Value 연산 (좋은 참고 자료 : https://jalammar.github.io/illustrated-transformer/)
1. Q, K, V
input X
Q = X * Wq
K = X * Wk
V = X * Wv
2. attention score = Q · KT
3. scaling & softmax & multiply V -> 각 토큰의 embedding (hidden state) 산
Positional Encoding
Input embedding += position_embeddings
이번주에 꼭 읽을 논문 :
attention
이번주에 꼭 공부하기 :
1. tmuk
2. https://www.youtube.com/playlist?list=PL8MaVgZDhGk-z7cezrPFJ5y6v3GW_S1iF
3. https://codingopera.tistory.com/44
참고해서 예쁜 다이어그램 만들기?
'Upstage AI Lab 2기' 카테고리의 다른 글
Upstage AI Lab 2기 [Day100] NLP (실습) (0) | 2024.05.07 |
---|---|
Upstage AI Lab 2기 [Day100] NLP - Encoder Model(BERT) (이론) (0) | 2024.05.07 |
Upstage AI Lab 2기 [Day095] CV - Generation (0) | 2024.04.29 |
Hydra (0) | 2024.04.16 |
Pytorch Lightning (0) | 2024.04.16 |