BERT는 Bidirectional Encoder Representations from Transformers의 약자로, 2018년에 Google에서 개발한 사전 학습된(pre-trained) 언어 모델입니다. 트랜스포머라는 신경망 아키텍처를 사용하여 문장을 양방향으로(bidirectionally) 처리함으로써 문장에 포함된 단어 간의 관계를 학습할 수 있습니다.
지금으로부터 벌써 5년 전 모델이지만, 몇 가지 중요한 점 때문에 BERT 모델은 현재까지도 많이 언급되는 논문입니다.
우선 BERT 모델은 트랜스포머 아키텍처의 인코더(Encoder)만 사용하고 디코더(Decoder)는 사용하지 않습니다.
원래 트랜스포머 아키텍처에서 디코더는 모델이 다른 언어로 된 단어 시퀀스를 생성해야 하는 기계 번역과 같은 작업에 사용됩니다. 반면 인코더는 입력 시퀀스를 고정 길이 벡터 표현으로 인코딩하는 데 사용되며, 이 인코딩은 디코더에서 출력 시퀀스를 생성하는 데 사용할 수 있습니다.
그러나 BERT의 경우 새로운 단어 시퀀스를 생성하는 것이 아니라 주어진 입력 문장의 의미를 이해하고 표현하는 것이 과제입니다. 따라서 트랜스포머의 인코더 부분만 사용됩니다. 즉, 일련의 단어(또는 토큰)를 입력받아 Self-Attention 및 Feed-Forward 레이어를 적용하여 각 토큰의 문맥 표현(Contextualized Embedding)을 학습합니다. 이 Representation은 은 전체 입력 문장을 고려하고 문장의 맥락에서 각 토큰의 의미를 포착합니다.
BERT 인코더의 출력은 입력 문장의 각 토큰에 대해 하나씩 문맥화된 임베딩의 시퀀스입니다. 이러한 임베딩은 텍스트 분류(Text Classification)나 개체 인식(Named Entity Recognition)과 같은 다운스트림 작업의 입력으로 사용하기 용이하다는 장점이 있습니다.
트랜스포머 아키텍처의 인코더 부분만 사용한다는 점은 다양한 NLP 작업에 맞게 Fine-Tuning 할 수 있는 강력한 자연어 표현을 학습할 수 있음을 의미합니다.
BERT 모델은 두 가지 비지도 학습 작업인 Masked Lanauge Model(MLM)과 Next Sentence Prediction(NSP)을 사용하여 대규모 텍스트 말뭉치에 대해 사전 학습을 거칩니다.
MLM 작업에서 BERT는 문장에서 누락된 단어를 예측하도록 훈련받습니다. 구체적으로, 훈련 중에 문장의 일부 단어가 무작위로 마스킹되고 모델은 주변 문맥을 기반으로 원래 단어가 무엇인지 예측하는 임무를 수행합니다. CLS 토큰은 사전 학습 및 Fine-Tuning 중에 각 입력 문장의 시작 부분에 추가되는 특수 토큰입니다.
MLM Loss는 모델이 문장에서 누락된 단어를 얼마나 잘 예측할 수 있는지를 나타내는 척도입니다. 사전 학습 중에 모델은 예측된 단어와 실제 누락된 단어의 차이에 따라 계산되는 MLM Loss을 최소화하도록 학습됩니다. 이는 강력한 학습 방법으로, 현재까지도 다양한 모델링 방법론들에 사용되고 있습니다.
ELECTRA: MLM 목표를 "Discriminative Adversarial Training"이라는 새로운 목표로 대체하는 사전 훈련 방법입니다. ELECTRA는 Generator 네트워크를 사전 훈련하여 가짜(fake) 입력을 생성하고, Discriminator 네트워크는 실제 입력과 가짜 입력을 구별하도록 훈련됩니다. Generator는 Discriminator가 속을 가능성을 최대화하도록 훈련되고, 판별기는 실제 입력과 가짜 입력을 정확하게 구분하도록 훈련됩니다. 바로 여기, Generator를 학습할 때 MLM Loss가 사용됩니다.
T5: 번역(Translation), 요약(Summarization), 질의응답(Question Answering) 등 다양한 Text-to-Text task들을 통해 사전 훈련된 Text-to-Text 트랜스포머 모델입니다. T5에서 사용되는 사전 학습 목표 중 하나는 'span corruption'으로, MLM과 유사하지만 개별 토큰을 마스킹하는 대신 Special 토큰으로 대체된 연속적인 텍스트 스팬을 예측하도록 모델을 학습시킵니다.
Wav2vec 2.0은 Facebook AI Research에서 개발한 음성 인식 모델입니다. 이 모델은 자기 지도 학습(Self-Supervised Learning) 방식을 기반으로 하므로 학습을 위해 레이블이 지정된 데이터에 의존하지 않습니다. 대신, 이전 샘플이 주어지면 음성 신호의 다음 샘플을 예측하여 음성을 인식하는 방법을 학습합니다.
이 모델은 MLM Loss, 수정된 형태의 Contrastive Loss를 사용하여 대량의 unlabeled 음성 데이터를 학습합니다. MLM Loss에서는 음성 신호의 일부가 무작위로 마스킹되고 모델이 마스킹된 샘플을 예측하도록 훈련됩니다. 이 모델은 이러한 마스크에 robust한 음성 신호의 표현을 학습하도록 설계되었으며, 마스크가 제거된 샘플(unmasked sample)이 제공하는 컨텍스트를 기반으로 마스크된 샘플을 효과적으로 예측할 수 있습니다.
이 방법을 통해 레이블이 지정되지 않은 대량의 음성 데이터를 학습함으로써 wav2vec 2.0은 레이블이 지정된 데이터가 제한되어 있는 경우에도 다양한 다운스트림 음성 인식 작업에 높은 정확도로 사용할 수 있는 강력한 음성 신호 표현을 학습할 수 있습니다.
'IT' 카테고리의 다른 글
6번째 글# 파이썬 데이터 분석, 텍스트 데이터 분석하기 (1) (0) | 2023.03.17 |
---|---|
5번째 글# AI Data, 수집, 데이터 처리(Data processing) (0) | 2023.03.17 |
4번째 글# Nginx, Docker, 그리고 보안 (0) | 2023.03.09 |
2번째 글# MLOps와 Kubernetes, Data pipeline (0) | 2023.03.07 |
첫 글# AI 시대에서 컴공 학사가 살아남는 방법 (0) | 2023.03.06 |