본문으로 건너뛰기

Character AI가 공개한 대규모 Transformer 학습 효율화 기술 5가지

Character AI는 대규모 Transformer 모델 학습 시 발생하는 통신 대역폭과 수치적 안정성 문제를 해결하기 위해 Squinch, Attention Z-Reg 등 5가지 핵심 최적화 기법을 개발하여 적용했다.

섹션별 상세

01
Squinch는 그래디언트를 8개 요소 단위의 블록으로 묶어 요소당 6비트로 압축하는 알고리즘이다. 각 블록은 부호와 크기를 보존하는 48비트 표현형을 가지며, bfloat16 수준의 정확도를 유지하면서도 통신 대역폭 요구량을 획기적으로 줄인다. 이는 특히 네트워크 자원이 제한된 환경이나 Sparse MoE 모델 학습에서 큰 효과를 발휘한다.
02
Attention Z-Reg는 어텐션 로짓의 수치적 범위를 제어하여 bfloat16 표현의 고정밀 구간을 활용하도록 돕는 정규화 기법이다. 로짓의 합인 Z값이 0에 가깝게 유지되도록 최적화 과정에서 그래디언트에 직접 반영하며, 이를 통해 값이 커질수록 정밀도가 낮아지는 부동소수점의 특성으로 인한 불안정성을 방지한다.
03
Dynamic Clamping은 양자화 인식 학습(QAT) 중 활성화 값이 0으로 붕괴되는 현상을 막기 위한 기술이다. 고정된 임계값 대신 가중치의 RMS 값을 기반으로 클램핑 범위를 동적으로 계산하여, 가중치가 작아질 때 활성화 값이 양자화 오차에 묻히지 않도록 보호함으로써 학습 안정성과 정확도를 개선한다.
04
Visibility Mask는 배치 내 토큰 간의 어텐션 가능 범위를 visibility_start와 visibility_limit이라는 두 개의 텐서로 압축하여 표현한다. 이 방식은 트리 구조의 문서 관계, 양방향 어텐션, 빔 서치 등을 네이티브하게 지원하며, 서로 무관한 여러 데이터 청크를 하나로 묶어 처리함으로써 학습 시스템의 처리량을 높인다.
05
Gumbel Softmax 기반의 증류 학습 최적화는 교사 모델의 방대한 출력 확률 분포를 모두 저장하는 대신 Gumbel Top-k 샘플링을 통해 일부만 저장한다. 샘플링된 토큰의 가중치를 적절히 보정하여 학생 모델이 원래의 분포를 편향 없이 학습할 수 있게 하며, 오프라인 증류 학습에 필요한 저장 공간과 대역폭 비용을 대폭 절감한다.
python
def sample_gumbel_topk(
    log_prob_XV: torch.Tensor,
    k: int,
) -> torch.Tensor:
    K = k + 1
    V = log_prob_XV.size(-1)
    gumbel_noise_XV = -torch.empty_like(log_prob_XV).exponential_().log()
    noised_log_prob_XV = log_prob_XV + gumbel_noise_XV
    noised_log_prob_XK, token_XK = torch.topk(noised_log_prob_XV, K, dim=-1)
    threshold_XK = noised_log_prob_XK
    threshold_X1 = threshold_XK[..., k - 1].unsqueeze(-1)
    token_Xk = token_XK[..., :k]
    log_prob_Xk = log_prob_XV.gather(-1, token_Xk)
    return token_Xk, log_prob_Xk, threshold_X1

Gumbel Top-k 샘플링을 사용하여 모델 증류 학습용 소프트 타겟을 추출하는 함수

python
def soft_targets_from_gumbel_topk(
    token_XK: torch.Tensor,
    log_prob_XK: torch.Tensor,
    threshold_XK: torch.Tensor,
    V: int,
    normalize: bool = True,
) -> torch.Tensor:
    k = token_XK.size(-1)
    threshold_X1 = threshold_XK[..., k - 1].unsqueeze(-1)
    token_Xk = token_XK[..., :k]
    log_prob_Xk = log_prob_XK[..., :k]
    min_noise_Xk = threshold_X1 - log_prob_Xk
    max_exponential_Xk = (-min_noise_Xk).double().exp()
    log_inclusion_prob_Xk = torch.log1p(-(-max_exponential_Xk).exp())
    weight_Xk = torch.exp(log_prob_Xk - log_inclusion_prob_Xk)
    // ...(중략)
    soft_targets_XV.scatter_add_(-1, token_Xk.long(), weight_Xk)
    return soft_targets_XV

샘플링된 Gumbel Top-k 데이터로부터 원래의 소프트 타겟 분포를 복원하는 함수

용어 해설

그래디언트 압축(Gradient Compression)
분산 학습 시 노드 간에 주고받는 그래디언트 데이터를 압축하여 통신 대역폭 요구량을 줄이는 기술이다. 데이터 크기를 줄임으로써 네트워크 병목 현상을 해결하고 전체 학습 속도를 향상시킨다.
양자화 인식 학습(Quantization-Aware Training (QAT))
모델 학습 과정에서 양자화로 인한 오차를 미리 반영하여 학습하는 기법이다. 추론 시 낮은 정밀도(INT8 등)를 사용하더라도 모델의 성능 저하를 최소화하기 위해 사용된다.
건벨 소프트맥스(Gumbel-Softmax)
이산적인 범주형 분포에서 미분 가능한 방식으로 샘플링을 수행할 수 있게 해주는 재파라미터화 기법이다. 모델 증류 학습 시 확률 분포를 효율적으로 샘플링하고 역전파를 유지하는 데 활용된다.
bfloat16
구글이 개발한 16비트 부동소수점 형식으로, FP32와 동일한 지수 범위를 가지면서 메모리 사용량은 절반이다. 딥러닝 학습 시 수치적 안정성과 효율성을 동시에 확보하기 위해 널리 사용된다.

기술

  • bfloat16
  • Gumbel Softmax
  • ReLU2
  • RMSNorm
  • INT8 Training

활용 사례

  • Large-scale Pretraining
  • Offline Model Distillation
  • Distributed Training Optimization
AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2025. 12. 24.수집 2026. 02. 21.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.