BART
BART는 일부러 훼손한 text를 Encoder에 넣고, Decoder가 원문 전체를 복원하도록 pre-training한다. Bidirectional Encoder와 autoregressive Decoder를 함께 사용하므로 BERT와 GPT를 합친 것처럼 보일 수 있지만, 두 checkpoint를 붙인다는 뜻은 아니다. 원래의 Encoder-decoder Transformer 구조에서 denoising sequence-to-sequence objective를 학습한다.
Conditional Reconstruction
Noising function이 span을 가리거나 token을 지우고 sentence 순서를 바꾸면, Encoder는 그 corrupted input 전체를 읽는다. Decoder는 앞의 output tokens와 Encoder hidden states를 조건으로 원문을 left-to-right 생성한다. Source의 정보를 전달하는 경로는 앞에서 본 Cross-Attention이다.
이 objective에서 label은 별도로 사람이 만드는 것이 아니라 훼손하기 전 원문이다. 따라서 text만으로 “망가뜨린 입력 → 원문” pair를 만들 수 있는 self-supervised pre-training이다. Downstream Summarization에서는 긴 원문을 source, 짧은 summary를 target으로 학습하며, pre-training처럼 source를 반드시 훼손해야 하는 것은 아니다.
Teacher Forcing
학습 때에는 모델이 직전에 생성한 token 대신 이전 gold token을 Decoder input으로 준다. 예를 들어 원래 A를 만들어야 하는 위치에서 틀린 token을 예측해도, 다음 위치의 학습 조건에는 정답 A가 들어간다. 틀린 예측은 해당 위치의 loss로 학습하지만, 그 실수를 다음 위치의 input에 그대로 전파하지 않는 것이다.
| Stage | Sequence |
|---|---|
| Corrupted Encoder input | A _ B _ E |
| Decoder input | <s> A B C D |
| Decoder target | A B C D E |
Decoder input과 target은 한 position만큼 shift되어 있다. Target sequence를 이미 알고 있으므로 모든 position의 input을 학습 시작 전에 구성할 수 있고, causal mask를 유지한 채 여러 position을 병렬 계산할 수 있다. 이것이 교수님이 다음 수업에서 덧붙인 Teacher forcing의 큰 장점이다. Inference에서는 다음 gold token을 알 수 없으므로 실제 생성한 token을 이어서 사용한다.
Five Noising Functions
같은 원문 A B C . D E .에 어떤 corruption을 적용하느냐에 따라 복원해야 하는 정보가 달라진다.
| Function | Operation | Corrupted input |
|---|---|---|
| Token masking | 개별 token을 mask로 대체 | A <m> C . D <m> . |
| Token deletion | token을 아예 제거 | A C . D . |
| Text infilling | 연속 span 전체를 하나의 mask로 대체 | A <m> . D E . |
| Sentence permutation | sentence 순서를 바꿈 | D E . A B C . |
| Document rotation | 임의 token을 시작점으로 회전 | C . D E . A B |
Deletion은 mask 위치조차 남기지 않으며, infilling은 하나의 mask가 여러 token을 대신할 수 있다. 따라서 단순히 보이는 빈칸 하나에 token 하나를 대응시키는 문제가 아니다. Infilling의 span length는 Poisson distribution의 설정을 사용한다. 이 역시 모든 span 길이를 3으로 고정한다는 뜻은 아니다.
강의의 ablation에서 Text infilling은 여러 task에 걸쳐 가장 일관되게 좋았고, Sentence permutation만 사용하는 방법은 약했다. 최종 BART-Large는 30% infilling과 full sentence permutation을 함께 사용한다. 이런 선택은 이름만 보고 결정한 것이 아니라 noising function을 바꾸어 비교한 결과다. 새로운 recipe를 평가할 때에는 parameters와 training 조건 등 비교 설정도 함께 확인해야 한다.
T5 and BART Targets
같은 span B C를 가렸다고 해도 BART는 A B C . D E . 전체를, T5는 Sentinel로 구분한 missing spans만을 생성한다. BERT의 masked-token prediction, GPT의 next-token prediction, BART의 corrupted-source reconstruction은 서로 다른 objective다.
| Aspect | T5 | BART |
|---|---|---|
| 공통 | Encoder-decoder / corrupted input | Encoder-decoder / corrupted input |
| 기본 corruption | 15% tokens / mean span 3 / unique Sentinels | 30% infilling + sentence permutation (Large) |
| Target | Sentinels + missing spans | Full original sequence |
| 강의 예시 | <X> for inviting <Y> | 원문 전체 left-to-right |
| 추가 흐름 | mT5 multilingual / FLAN instruction tuning | Conditional generation / Teacher forcing |
T5의 짧은 target과 BART의 full-original target은 Decoder가 실제로 생성해야 할 sequence를 다르게 만든다. Corruption 방식과 target 구성은 따로 비교해야 한다.
Check
BART와 T5가 같은 span을 가려도 decoder target은 어떻게 다른가?
Answer
BART는 full original sequence, T5는 Sentinels와 missing spans만 생성한다.
Teacher forcing은 어떻게 training parallelism을 가능하게 하는가?
Answer
Previous gold-target sequence가 이미 주어져 각 position의 Decoder 입력을 미리 구성할 수 있다. Causal mask로 미래 target 누설을 막으며 함께 forward한다.
Teacher forcing으로 학습할 때 다음 position을 계산하려고 이전 예측이 끝날 때까지 기다려야 하는가?
Answer
아니다. 이전 gold tokens를 input으로 주므로 모든 shifted inputs를 미리 구성할 수 있다. Causal mask를 유지한 채 positions를 병렬 계산한다. Inference에서는 gold target이 없으므로 생성한 token에 의존하여 이어 간다.