Understanding Causal LLM’s, Masked LLM’s, and Seq2Seq: A Guide to Language Model Training…
In the world of natural language processing (NLP), choosing the right training approach is crucial for the success of your language model…
medium.com
대충 번역 + 요약.
----------------------------------------------------------------------
NLP를 할때 적합한 학습 방법을 선택하는 것은 성공을 위해 매우 중요하다. 이 글에서 우린 CLM, MLM, Sequence-To-Sequence 접근의 차이점과 활용 방법에 대해 알아보도록 한다.
왜 CLM, MLM, Seq2Seq를 이해하는 것이 중요한가
이 언어모델 학습방법들을 이해해야 여러분의 상황에 맞는 가장 좋은 방법을 택할수있고 그래야 모델의 성능을 최대한으로 이끌어낼수있다.
각 방법은 장단이 있고 각각 적합한 유형의 문제가 있다. 이 방법들의 기초를 이해함으로써 여러분은 여러분 모델의 트레이닝과 파인튜닝을 최적화해서 더 나은 결과물을 만들 수 있을것이다.
Causal Language Modeling (CLM)
CLM은 모델이 주어진 시퀀스의 다음 토큰을 예측하도록 훈련하는 자동회귀 방법이다. 대표적으로 GPT가 CLM 방식으로 훈련돼서 텍스트 생성이나 요약같은 작업에 적합하다. 하지만 CLM은 일방향 문맥을 가지고 있다. 그래서 과거의 문맥만 고려하고 미래 문맥을 고려하지 않는다.
Masked Lanaguage Modeling (MLM)
MLM은 BERT같은 모델을 훈련시키기 위해 쓰인 방법이다. 입력 시퀀스에서 일부 토큰을 마스킹하고 모델은 그 토큰을 주변 문맥을 통해 예측하도록 훈련된다. MLM은 문맥을 양방향으로 고려할 수 있는 장점이 있다. 이 방법은 텍스트 분류나 감성분석, 개체명 인식 등에 효과적이다.
Sequence-to-Sequence (Seq2Seq)
Seq2Seq 모델은 인코더-디코더 아케텍처로 구성된다. 인코더가 입력 시퀀스를 처리하고 디코더가 출력 시퀀스를 만든다. 이 접근법은 주로 기계 번역, 요약, 질문-답변 등의 태스크에 쓰인다. Seq2Seq 모델은 입력-출력 변환과 관계된 더 복잡한 작업을 처리할 수 있어 광범위한 NLP 작업에 다용도로 사용할 수 있다.
세 방법의 핵심 차이점
Causal Language Modeling (CLM)
구현
CLM에서 모델은 시퀀스의 다음 토큰을 예측하도록 훈련된다. 훈련할때 입력 토큰이 모델에 들어가고 모델은 다음 토큰의 확률 분포를 예측한다. 오차는 모델의 예측값과 실제 타겟 토큰(=바로 다음 입력토큰)을 기반으로 계산한다.
아키텍처
CLM은 GPT같은 자동회귀 모델에 이용된다. 이런 유형의 모델은 각 토큰이 이전 토큰들만 고려할 수 있는 일방향(left-to-right) 트랜스포머 아키텍처를 이용한다. 이런 방식은 모델이 훈련중에 타겟 토큰을 엿보는(cheating)걸 방지한다.
출력 모델
파인튜닝된 CLM 모델은 토큰을 하나씩 생성하면서 텍스트를 만들 수 있다. 하지만, MLM 모델에 비해 양방향 문맥을 다 고려하는데엔 비효율적이다.
Masked Language Modeling (MLM)
구현
MLM에선 모델이 입력시퀀스에서 마스킹된 토큰을 예측하도록 훈련된다. 전처리 과정에서 일정 비율의 토큰이 랜덤하게 마스킹되고 그 부분을 예측하도록 훈련된다. 오차는 모델의 예측 토큰과 실제 타겟 토큰(마스킹된 토큰)을 기반으로 계산된다.
아키텍처
MLM은 BERT같은 양방향 트랜스포머 모델에 이용된다. CLM모델과 다르게 MLM 모델은 훈련중에 입력 시퀀스의 모든 토큰을 참조할 수 있어 양방향 문맥을 다 고려할수있다.
출력 모델
파인튜닝된 MLM 모델은 시퀀스에서 단어와 단어간의 관계를 이해하는데에 뛰어나다. 그래서 텍스트 분류, 감성 분석, 개체명 인식, 질의응답 등에 좋은 성능을 보인다.
Sequence-to-Sequence Modeling
구현
seq2seq 모델링에선 모델이 입력 시퀀스에 기반해서 시퀀스를 출력하도록 훈련된다. 모델은 두 가지 요소로 구성된다.
1. 인코더 : 입력 시퀀스를 인코딩해서 문맥데이터를 만든다. (원문에 latent representation이라 돼있는데 이해하기 쉽게 문맥데이터라고 의역했음)
2. 디코더 : 문맥데이터를 받아 출력시퀀스를 만든다.
오차는 모델의 예측과 타겟 출력토큰에 기반해 계산된다.
아키텍처
인코더-디코더 아키텍처를 택한다. 그리고 각 인코더, 디코더는 트랜스포머 아키텍처를 택할수도 있고 LSTM같은 다른 아키텍처를 택할수도있다. 인코더는 입력 시퀀스를 처리하고 문맥 표현(context representation)을 만든다. 디코더는 이 문맥표현이랑 자기만의 상태값(hidden-state)을 이용해 출력 시퀀스를 만든다.
출력 모델
파인튜닝된 seq2seq 모델은 입력 텍스트에 기반해서 밀접한 관련이 있는 출력 텍스트를 만드는 작업에 적합하다. 예를 들면 텍스트 요약이나 번역, 질의응답 등이 있다.
요약하자면, 이 방법들은 훈련 목적, 모델 아키텍처, 적합한 태스크가 다르다. CLM은 다음 토큰을 예측하는데 집중하기 때문에 텍스트 생성에 적합하고 MLM은 마스킹된 토큰을 예측하기때문에 양방향 문맥 고려가 필요한 작업에 적합하고 seq2seq는 입력시퀀스랑 관련된 시퀀스를 생성하는데에 적합하다.
허깅페이스의 MLM 파라미터
DataCollatorForLanguageModeling 클래스의 mlm 파라미터는 mlm을 쓸건지 clm을 쓸건지 택하는 불리언 플래그다.
챗봇을 만들기 위한 MLM vs CLM
CLM과 MLM은 챗봇을 만들때 각자의 장단이 존재한다.
MLM
장점
MLM은 양방향 문맥을 고려할 수 있다. 이전 토큰들만 고려하는게 아니라 주어진 시퀀스 전체를 고려해야되는 특정 챗봇 시나리오에서는 더 효율적일 수 있다.
단점
1. BERT같은 MLM 모델은 텍스트를 자동회귀적으로 생성하게 설계되지 않았다. 다양한 NLP 태스크에 맞춰 파인튜닝할 수 있지만 본질적으로 챗봇 응답같은 텍스트 생성을 위해 만들어진게 아니다. MLM을 텍스트 생성에 쓰려면 디코더를 추가하거나 seq2seq 모델을 쓰는 등 추가적인 아키텍처 변화가 필요하다.
2. 추론중에 MLM모델은 토큰들을 점진적으로 증가하는 방향으로(?)(incrementally, 일방향으로 를 말하고싶은거같다.) 예측하지 못한다. 훈련과정중에 마스킹된 토큰을 병렬적으로 예측하기 때문이다. 이거때문에 챗봇 응답이 앞뒤가 좀 안맞을수도 있다.(a less coherent chatbot response). 모델이 텍스트를 순차적으로 생성하도록 훈련되지 않았기 때문이다.
CLM
장점
1. GPT같은 CLM 모델은 자동회귀적으로 텍스트를 생성하도록 설계돼있어서 챗봇을 만들때 유리하다. CLM 모델들은 주어진 이전 시퀀스를 기반으로 다음 토큰을 예측한다. 이것은 챗봇이 응답을 생성하는 방법과 일치한다.
2. CLM 모델은 문맥상 연관성이 높고 밀접한 관련이 있는 응답을 잘 생성한다. 이전 토큰들을 통해 다읍 토큰을 예측하도록 훈련됐기 때문.
단점
1. CLM은 양방향 문맥을 고려하지 못한다. 이것때문에 MLM이 문맥을 이해하는 것과 미묘한 차이가 생길수있다.
2. 자동회귀적인 본질때문에 MLM 모델보다 추론 시간이 더 길다. 특히 긴 시퀀스를 생성할땐 더욱 더 그렇다. 토큰을 하나씩 생성해야되기 때문이다.
(이후 내용은 귀찮아서 번역 생략)
하는말 계속 반복하는거같다. 글을 좀더 짧게 쓸수도 있었을텐데
'기술 공부 끄적끄적 > 인공지능' 카테고리의 다른 글
| 딥러닝 자연어 처리 발전과정 (0) | 2024.03.04 |
|---|---|
| 토크나이저란 (0) | 2024.03.02 |
| 언어 모델이란 (0) | 2024.03.01 |