Yolo 비전 선전
선전
지금 참여하기
용어집

Reformer

리포머(Reformer) 아키텍처를 살펴보세요. 긴 시퀀스에 효율적인 트랜스포머 변형 모델입니다. LSH 어텐션과 리브넷(RevNet)이 AI 연구를 위해 메모리를 최적화하는 방식을 알아보세요.

리포머는 표준 모델로는 계산상 불가능한 매우 긴 데이터 시퀀스를 처리하도록 설계된 트랜스포머 아키텍처의 효율적인 변형입니다. 기존 딥러닝 시스템에 내재된 메모리 병목 현상을 해결하기 위해 도입된 리포머는 어텐션 메커니즘의 복잡도를 2차 함수에서 선형-로그 함수로 감소시킵니다. 이 혁신을 통해 인공지능 연구자들은 단일 GPU에서 수만 개의 토큰에 달하는 컨텍스트 윈도우(예: 전체 책, 고해상도 이미지, 긴 음악 작품)를 가져와 모델을 훈련시킬 수 있습니다. GPU에서 모델을 훈련할 수 있게 합니다.

리포머의 핵심 혁신

리포머는 BERT나기존 GPT 시리즈와 차별화되는 두 가지 주요 아키텍처 변경을 통해 효율성을 달성합니다. 이러한 기법은 모델 훈련 중 활성화 값을 저장하는 데 필요한 방대한 메모리 문제를 해결합니다.

  • 지역성 민감 해싱(LSH) 어텐션: 표준 트랜스포머에서는 시퀀스의 모든 요소가 다른 모든 요소에 대해 어텐션을 수행하여 막대한 계산 부하를 발생시킵니다. 리포머는 지역성 민감 해싱을 활용해 유사한 벡터들을 그룹화합니다. 모든 쌍에 대해 어텐션 점수를 계산하는 대신, 모델은 가장 가까운 이웃으로 구성된 소규모 부분집합에 대해서만 이를 계산하여 추론 엔진의 속도를 크게 향상시킵니다.
  • 가역 잔여 계층(RevNets): 기존 신경망은 역전파 과정에서 기울기를 계산하기 위해 모든 계층의 활성화 값을 저장해야 합니다. Reformer는 가역 신경망을 활용하여 역방향 전파 시 계층의 출력으로부터 입력을 재계산할 수 있게 합니다. 이 기술은 중간 활성화 값을 캐싱할 필요성을 제거하여 더 큰 배치 크기를 위한 메모리를 확보합니다.

리포머 대 표준 변환기

두 아키텍처 모두 셀프 어텐션 메커니즘에 의존하지만, 머신러닝 생태계 내에서 서로 다른 목적을 수행합니다.

  • 표준 트랜스포머: 짧은 길이의 시퀀스부터 중간 길이의 시퀀스까지 탁월합니다. 그러나 메모리 사용량은 시퀀스 길이($L$)에 따라 이차적으로 증가합니다($O(L^2)$). 감정 분석이나 챗봇과 같은 작업에 사용되는 많은 대규모 언어 모델(LLM) 의 핵심 구조입니다.
  • 리포머: 극한의 길이($O(L \log L)$)에 최적화되었습니다. 일부 상황에서 소량의 정확도를 희생하여 표준 트랜스포머로는 처리 불가능한 입력(예: 극도로 긴 시계열 분석 데이터 처리 또는 픽셀 단위 이미지 생성)을 처리할 수 있습니다.

실제 애플리케이션

리포머의 방대한 컨텍스트 윈도우 처리 능력은 데이터를 쉽게 분할할 수 없는 분야에서 새로운 가능성을 열어줍니다.

  1. 유전체 분석: DNA 서열은 수백만 개의 염기쌍으로 구성됩니다. 리포머는 이러한 긴 서열을 분석하여 생물정보학에서 패턴을 식별하면서도 전체적인 맥락을 잃지 않아 단백질 구조 예측을 지원합니다.
  2. 장문 텍스트 생성: 일반적인 텍스트 생성 모델은 몇 단락 이후 일관성을 잃을 수 있지만, 리포머는 수천 단어에 걸쳐 일관성을 유지할 수 있어 긴 법률 계약서 요약이나 소설 전체 장 생성에도 적합합니다.

컴퓨터 비전의 효율성

개혁자들은 종종 텍스트와 연관되지만, 컴퓨터 비전에서는 효율성의 원칙이 핵심적입니다. 개혁자가 트랜스포머를 최적화하듯, YOLO26과 같은 현대 비전 모델들은 실시간 추론을 위해 컨볼루션 신경망(CNN)을 최적화합니다. 하드웨어 자원이 제한된 Ultralytics 통해 모델을 에지 디바이스에 배포할 때는 메모리 제약 조건을 이해하는 것이 매우 중요합니다.

다음 코드는 PyTorch를 사용하여 모델의 메모리 사용량을 검사하는 방법을 보여줍니다. PyTorch를 사용하여 모델의 메모리 사용량을 검사하는 방법을 보여줍니다. 이는 Reformer와 같은 메모리 효율적인 아키텍처 개발의 핵심 개념입니다.

import torch
import torch.nn as nn

# Define a simple Transformer layer (Standard, not Reformer optimized)
layer = nn.TransformerEncoderLayer(d_model=512, nhead=8)
model = nn.TransformerEncoder(layer, num_layers=6)

# Create a long sequence input (Sequence Length: 2000, Batch: 1, Features: 512)
# Standard Transformers struggle as this length increases.
input_data = torch.rand(2000, 1, 512)

# Check parameter count to understand model complexity
params = sum(p.numel() for p in model.parameters())
print(f"Model Parameters: {params:,}")

# Perform a forward pass
output = model(input_data)
print(f"Output shape: {output.shape}")

관련 개념

  • 스파스 어텐션: LSH를 포함하는 더 넓은 범주의 기법으로, 모델이 계산량을 줄이기 위해 토큰의 일부 집합에만 주의를 기울이는 방식이다.
  • 경사도 체크포인트: 모델 훈련 중 계산 시간을 메모리 공간으로 교환하기 위해 사용되는 가역 레이어와 유사한 기법.
  • 모델 최적화: 모델 효율성을 개선하는 일반적인 관행으로, 양자화, 가지치기 및 리포머(Reformer)와 같은 아키텍처 변경을 포함합니다.

Ultralytics 커뮤니티 가입

AI의 미래에 동참하세요. 글로벌 혁신가들과 연결하고, 협력하고, 성장하세요.

지금 참여하기