pile·
AI / ML·스캐터랩스캐터랩 (이루다)·

트랜스포머: 더 어렵게, 더 좋게, 더 빠르게, 더 강하게

RNN의 장기 의존성 문제에서 attention과 Transformer가 등장한 배경을 시작으로 GPT·BERT와 후속 개선 모델을 연결해 설명한다. XLNet·RoBERTa·MT-DNN·T5는 더 어렵고 다양한 방식으로 사전학습해 성능을 높였고, quantization·pruning·DistilBERT·ALBERT는 너무 큰 모델을 실제 서비스에 맞게 줄였다. 구조, 학습 데이터, 목적함수, 압축이라는 네 축으로 Transformer 발전을 조망한다.

핵심 포인트
  • RNN은 토큰을 순차 처리해 먼 단어의 정보가 약해지지만 attention은 모든 단어 쌍의 관계를 직접 가중치로 표현한다.
  • Transformer는 RNN 없이 scaled dot-product와 multi-head attention을 쌓아 병렬 학습과 장거리 관계 모델링을 가능하게 했다.
  • GPT는 decoder의 단방향 attention으로 생성에, BERT는 encoder의 양방향 attention으로 이해 과제에 강점을 보였다.
  • XLNet·RoBERTa·MT-DNN·T5는 더 많은 데이터, 어려운 예측 순서, 동적 masking, 멀티태스크 학습으로 BERT의 미학습 여력을 끌어냈다.
  • 서비스 단계에서는 200ms가 넘을 수 있는 BERT inference와 큰 메모리 비용을 줄이기 위해 quantization, pruning, distillation, parameter sharing을 사용한다.
상세 정리
  • RNN의 한계: 이전 hidden state에 의존해 문장을 순서대로 처리하면 긴 문장의 앞쪽 정보가 vanishing gradient로 약해진다. 번역처럼 먼 단어를 참조해야 하는 생성 과제에서 문제가 커진다.
  • Attention 전환: 출력이 입력의 모든 단어를 직접 참조하고 중요도를 가중치로 학습한다. 단어 사이 거리에 관계없이 상관관계를 표현할 수 있다.
  • Transformer 구성: scaled dot-product attention은 Query와 Key의 내적을 차원 크기로 조절하고 Value를 가중합한다. 여러 Q·K·V 투영을 쓰는 multi-head attention이 관계의 다양한 측면을 학습한다.
  • Encoder와 decoder: encoder는 입력을 문맥 표현으로 바꾸고 decoder는 다음 토큰 확률을 만든다. decoder는 미래 토큰을 보지 않도록 attention을 masking한다.
  • GPT와 BERT: GPT는 decoder block의 순방향 문맥으로 직접 문장을 생성한다. BERT는 encoder의 양방향 문맥을 써 분류와 표현 학습에서 더 풍부한 정보를 얻지만 직접 생성에는 맞지 않는다.
  • 크기 문제: 큰 Transformer는 학습 데이터와 시간이 많이 필요하고 실행도 느리다. 글은 서비스 latency 목표를 50~100ms로 보지만 당시 BERT 단일 처리가 GPU에서도 200ms를 넘을 수 있다고 지적한다.
  • XLNet: 토큰 예측 순서를 permutation으로 샘플링해 단순 양방향 masking보다 다양한 조건 관계를 학습한다. 더 많은 데이터 효과와 구조 효과를 함께 검증했다.
  • RoBERTa: BERT 구조를 유지하면서 데이터와 학습량을 늘리고 입력할 때마다 masking을 바꾸며 NSP를 제거하고 batch를 키웠다. BERT가 원래 충분히 학습되지 않았음을 보였다.
  • MT-DNN: 문장 분류, 문장쌍 유사도·분류·순위처럼 서로 다른 GLUE 작업을 task-specific layer와 함께 번갈아 학습한다. 단순 MLM보다 어려운 감독 신호로 범용 표현을 강화한다.
  • T5: 모든 NLP 문제를 text-to-text 형식으로 통일하고 약 750GB C4 데이터로 학습했다. 과제별 출력 구조를 하나의 생성 인터페이스로 맞추는 장점을 보여준다.
  • Quantization: 가중치와 연산 정밀도를 낮춰 메모리와 계산량을 줄인다. 속도 이득을 얻지만 낮은 정밀도가 정확도에 미치는 영향을 측정해야 한다.
  • Pruning: attention head나 연결 중 영향이 작은 부분을 제거한다. 큰 Transformer가 실제 과제에 비해 과도하게 매개변수화됐다는 관찰을 활용한다.
  • DistilBERT: 큰 BERT의 출력 분포와 내부 표현을 작은 student가 따라 학습하는 knowledge distillation로 크기와 latency를 줄이면서 성능을 보존한다.
  • ALBERT: embedding과 hidden dimension을 분리하고 layer 사이 파라미터를 공유해 파라미터 수를 크게 줄인다. 모델 폭과 층을 그대로 늘리는 방식의 중복을 제거한다.
  • 전체 흐름: 한쪽은 더 많은 데이터와 어려운 과제로 큰 모델의 잠재력을 끌어내고, 다른 쪽은 같은 능력을 더 작은 계산 예산에 담는다. 연구 성능과 제품 latency를 잇는 두 방향이 동시에 필요하다.
왜 읽나Transformer의 기본 구조부터 BERT 후속 학습법과 모델 압축까지 한 흐름으로 이해하려는 NLP 입문자와 실무자에게 유용하다.
스캐터랩
스캐터랩 (이루다) 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. AI / ML·LY CorporationLY Corporation·

    Grafana에서 자연어로 장애 원인을 분석하기: LLM 에이전트 기반 SRELens 개발기

    LY Corporation Home SRE 팀이 장애 분석 시 메트릭·로그·트레이스가 각각 다른 화면에 흩어져 있는 문제를 해결하기 위해 Grafana 플러그인 SRELens를 개발했다. SRELens는 LLM 에이전트가 자연어 질의를 받아 실제 관측성 데이터를 조회하고, 근거와 함께 장애 원인 후보를 정리해 주는 도구다. LGTM-P 스택(Loki·Grafana·Tempo·Mimir·Pyroscope)과 FlavaMCP 게이트웨이를 통합해 단일 채팅 인터페이스에서 멀티시그널 분석이 가능하다.

    #llm-app#mcp#observability+2