본문 바로가기
Data Tech/LLM(대규모언어모델)

[허깅페이스] Transformer란?

by SuperDev 2025. 4. 14.

트랜스포머에 대해 공부하기에 앞서 자연어 처리(NLP)에 대해 알아봅시다.

 

1. NLP란 무엇인가? 

NLP(Natural Language Processing)란 사람의 언어와 관련된 것을 이해하는데 중점을 둔 기계학습 분야를 말합니다. 개별 단어를 이해하는 것을 넘어, 해당 단어들의 문맥을 이해하는 것 입니다.

컴퓨터와 사람은 서로 정보를 처리하는 방식이 다릅니다. 우선 모델이 텍스트를 학습할 수 있도록 텍스트가 처리 과정을 거쳐야 하는데, 사람의 언어 체계는 매우 복잡하기 때문에 이러한 처리가 어떻게 이루어져야 하는지 면밀히 고민해야 합니다. 따라서 텍스트 표현 방법과 관련한 수많은 연구가 진행되어 왔습니다.

 

가장 일반적인 NLP 작업 예시

  • 전체 문장 분류
  • 문장 내 단어 분류
  • 텍스트 컨텐츠 생성
  • 텍스트 안에서 정답 추출하기
  • 입력 텍스트로부터 새로운 문장 생성하기

 

2. 트랜스포머로 무엇을 할 수 있을까?

트랜스포머에 대한 개념을 공부하기 전에 어떻게 사용되고 있는지 알아봅시다.

Transformers 라이브러리의 가장 기본 객체는 pipeline() 함수입니다. 파이프라인에는 다양한 명령과 모델이 있지만 예시로 "sentiment-analysis"를 활용해 감정 분석을 진행해봅시다.

from transformers import pipeline

# 감정 분석
classifier = pipeline("sentiment-analysis")
classifier("I've been waiting for a HuggingFace course my whole life.")
# [{'label': 'POSITIVE', 'score': 0.9598047137260437}]

classifier(
    ["I've been waiting for a HuggingFace course my whole life.", "I hate this so much!"]
)
# [{'label': 'POSITIVE', 'score': 0.9598047137260437},
# {'label': 'NEGATIVE', 'score': 0.9994558095932007}]

 

여기서 classifier 객체를 생성할 때 모델이 다운로드 되며, 캐싱(caching)이 이루어지므로, 재실행 시에는 캐싱된 모델을 사용하게 되어 모델을 다시 다운로드 하지 않습니다.

 

텍스트를 파이프라인에 넣을 때 거치는 3가지 주요 과정

  1. 텍스트가 모델이 이해할 수 있는 형태로 전처리
  2. 전처리된 입력이 모델 입력으로 들어감
  3. 모델의 예측값이 후처리를 거쳐 사람이 이해할 수 있는 형태로 반환

현재까지 사용 가능한 파이프라인 종류

구분 설명
feature-extraction 특징 추출 (텍스트에 대한 벡터 표현 추출)
fill-mask 마스크 채우기
ner 개체명 인식 (named entity reconition)
question-answering 질의 응답
sentiment-analysis 감정 분석
summarization 요약
text-generation 텍스트 생성
translation 번역
zero-shot-classification 제로샷 분류 (어떠한 레이블 세트에 대해 분류 진행)

 

 

3. 트랜스포머의 동작

트랜스포머는 2017년 6월에 처음 소개되었습니다. 처음 연구 목적은 번역 작업 수행이었지만 이후 고성능의 모델들이 개발되기 시작하였습니다.

  • 2018년 6월 GPT : 최초로 사전 학습된 트랜스포머 모델로 NLP 작업에 미세조정
  • 2018년 10월 BERT : 더 좋은 문장 요약을 위해 설계
  • 2019년 2월 GPT-2 : 더 성능 좋은 모델
  • 2019년 10월 DistilBERT : BERT의 60% 빠른 속도에 메모리 측면에서 40% 가벼운 BERT 경량화 버전
  • 2020년 5월 GPT-3 : 미세 조정 없이도 다양한 작업을 수행

위에 언급한 모델들은 언어모델로서 학습되었습니다. 수많은 텍스트에 대해 학습된 모델들로, 이러한 자가 지도 학습은 학습의 목적이 모델 입력으로부터 자동으로 계산되는 방식을 말합니다. 결국 사람이 데이터에 레이블을 달지 않아도 학습이 가능합니다.

 

전이 학습 (Transfer Learning)

사전 학습(Pretraning)시에는 모델을 밑바닥부터 학습시키게 됩니다. 모델 가중치를 랜덤하게 초기화하고, 사전 지식 없이 학습을 시작하므로, 방대한 양의 데이터와 수 주 씩 걸리는 학습 시간이 필요합니다.

반면에 미세 조정(Fine-tuning) 모델은 사전 학습을 마친 이후에 학습을 의미합니다. 미세 조정에는 적은 양의 데이터만 필요하며, 사전 학습 과정에서 얻은 지식이 전이 되었다고 하여, 전이 학습이라고 부릅니다.

 

일반적인 구조

모델은 기본적으로 인코더와 디코더로 이루어져 있습니다. 인코더는 모델이 입력을 이해하는데 최적화 되어 있으며, 디코더는 출력을 생성하는데 최적화되어 있습니다.

태스크에 따라 개별적으로 쓰일 수도 있는데, 인코더 모델은 문장 분류, 개체명 인식과 같이 입력에 높은 이해를 요구하는 작업에 특화되어 있고, 디코더는 텍스트 생성 관련 작업에 특화되어 있습니다.

 

어텐션 레이어(Attention layers)

트랜스포머 모델의 중요한 특징은 어텐션 레이어라 불리는 특수한 레이어로 구성되어 있습니다. 이 레이어가 단어의 표현을 다룰 때 입력으로 넣어준 문장의 특정 단어에 어텐션을 기울이고, 특정 단어는 무시하도록 알려줍니다. 예로 “You like this course”라는 입력이 주어지면 번역 모델은 “like”라는 단어를 알맞게 번역하기 위해 인접한 단어 “You”에도 주의를 기울입니다. 

 

4. 편향과 한계

사전 학습된 혹은 미세 조정된 모델들은 양질의 데이터와 그렇지 않은 데이터까지 수집했을 가능성이 있습니다. 상당히 중립적인 데이터를 이용해 사전 학습 되었음에도 불구하고 이러한 현상이 일어날 수 있고, 편향적인 결과가 나타날 수 있는 점을 인지하고 있어야 합니다.

728x90