4x. Adam 옵티마이저를 사용할 때 레이어당 파라미터 크기의 4배에 달하는 메모리가 필요하다는 수치다. 파라미터와 그래디언트, 그리고 모멘텀과 분산이라는 두 가지 옵티마이저 상태를 모두 저장해야 하기 때문이다. 책 한 권을 수정하는데 매 페이지마다 복사본 4장을 펼쳐놓고 작업하는 것과 같다. 그런데 모델이 깊어질수록 이 메모리 점유율은 선형적으로 증가하며, 결국 최신 GPU조차 감당하기 힘든 병목 지점이 된다.

기존의 액티베이션 체크포인팅(Activation Checkpointing) 같은 기술은 중간 계산값을 다시 계산해 메모리를 아끼지만, 옵티마이저가 점유하는 기본 메모리 자체를 줄이지는 못한다. 결국 더 깊은 모델을 만들려면 더 많은 GPU를 투입하거나, 모델의 크기를 포기해야 하는 선택지에 놓인다. 사카나 AI와 도쿄 대학교 연구팀은 이 지점에서 '전체 네트워크를 한꺼번에 학습시켜야 한다'는 고정관념에 질문을 던졌다. 네트워크를 여러 개의 블록으로 쪼개고, 각 블록을 독립적으로 학습시키면서도 전체적인 성능을 유지할 수 있다면 하드웨어 제약을 완전히 다른 차원에서 해결할 수 있기 때문이다.

학습 메모리를 B배 줄이는 DiffusionBlocks의 등장

클라우드 인프라의 가용 자원이 무한하지 않은 상황에서, 모델의 깊이가 깊어질수록 학습 비용은 선형적으로 증가한다. 엔드투엔드 역전파 방식은 모든 계층의 중간 활성화 값을 메모리에 보존해야 하므로, 대규모 트랜스포머 모델을 학습할 때 하드웨어의 한계에 부딪히는 일이 잦다. 활성화 체크포인팅과 같은 기존 기법은 재계산 방식으로 활성화 메모리를 일부 절감하지만, 모델 파라미터와 기울기, 옵티마이저 상태값까지 포함하는 고정 비용은 해결하지 못한다. 특히 Adam 옵티마이저를 사용할 경우 계층당 파라미터 크기의 4배에 달하는 메모리가 필수적으로 요구되는데, 이는 최신 고성능 모델 학습에서 가장 큰 병목 구간으로 작용한다.

사카나 AI(Sakana AI)와 도쿄 대학교 연구팀이 공동 제안한 DiffusionBlocks는 이러한 메모리 제약을 블록 단위 학습으로 돌파한다. 트랜스포머 기반 네트워크를 독립적인 B개의 블록으로 분할하여 학습함으로써, 전체 학습 메모리 요구량을 이론상 1/B 수준으로 직접적으로 절감한다. 핵심은 레지듀얼 네트워크의 업데이트 규칙이 확산 모델의 확률 흐름 미분 방정식(ODE)을 오일러 방식으로 이산화한 것과 구조적으로 동일하다는 점을 활용한 것이다. 이를 통해 각 블록이 전체 네트워크의 종속성 없이 개별적인 로컬 목적 함수를 가지고도 학습될 수 있는 수학적 근거를 마련했다.

실제 학습 과정에서는 매 반복마다 전체 계층이 아닌 샘플링된 단일 블록만 연산에 참여한다. 이때 연구팀은 단순히 구간을 균등하게 나누는 대신, 각 블록이 전체 확률 질량의 정확히 1/B을 담당하도록 하는 등확률 분할 방식을 적용했다. 이는 생성 품질에 기여도가 높은 중간 노이즈 구간에 더 많은 자원을 배정하여 성능 손실을 최소화한다. 실험 결과, DiffusionBlocks는 엔드투엔드 역전파 방식 대비 성능 차이를 1%p 이내로 유지하면서도 메모리 효율을 극대화하는 성과를 보였다. 이는 기존의 임시방편적인 로컬 목적 함수 기반 학습법들이 분류 작업에만 국한되거나 성능 저하가 컸던 한계를 넘어, 범용 트랜스포머 아키텍처 전반에 적용 가능한 실무적 대안으로 자리 잡는다.

잔차 연결을 디퓨전 공정으로 해석한 동작 원리

딥러닝 모델의 메모리 병목을 해결하기 위해 사카나 AI와 도쿄대 연구팀은 잔차 네트워크(Residual Network)의 수학적 구조를 스코어 기반 디퓨전 모델의 확률 흐름 ODE(Ordinary Differential Equation)와 결합하는 방식을 도입했다. 잔차 네트워크에서 각 층의 업데이트 식은 zℓ = zℓ−1 + fθℓ(zℓ−1)로 표현되는데, 이는 상미분 방정식의 오일러 이산화(Euler discretization) 과정과 정확히 일치한다. 연구팀은 이 구조가 분산 폭발(Variance Exploding, VE) 공식의 확률 흐름 ODE와 구조적으로 동일함을 확인했다. 이에 따라 잔차 블록의 적층을 단순한 연산의 반복이 아닌, 노이즈 수준 [𝞂min, 𝞂max] 사이를 이동하는 이산화된 디노이징 단계로 재정의한다.

이러한 해석은 각 블록을 독립적인 학습 단위로 분리할 수 있는 이론적 근거를 제공한다. 스코어 매칭 목표는 특정 노이즈 수준에서 독립적으로 최적화가 가능하므로, 전체 네트워크를 한꺼번에 역전파(Backpropagation)할 필요 없이 각 블록이 자신의 로컬 목표만을 수행한다. 학습 과정에서 블록 간 통신은 완전히 배제되며, 반복마다 하나의 블록만 샘플링하여 연산한다. 결과적으로 전체 L개의 층을 모두 계산하는 대신 L/B만큼의 메모리만 점유하여 연산 효율을 극대화한다.

단순히 노이즈 범위를 동일하게 쪼개는 균등 분할 방식은 디노이징의 난이도 차이를 반영하지 못하는 한계가 있다. 연구팀은 로그-정규 분포 하에서 각 블록이 전체 확률 질량의 1/B씩을 균등하게 담당하도록 경계를 설정하는 등확률 분할(Equi-probability partitioning) 기법을 적용했다. 이 방식은 생성 품질에 기여도가 높은 중간 노이즈 구간에 더 세밀한 블록을 배치한다. 실제로 DiT-S/2 모델을 대상으로 실험한 결과, 등확률 분할은 FID 38.03을 기록하여 균등 분할의 43.53 대비 우수한 성능을 나타낸다. 이는 단순히 메모리를 줄이는 것을 넘어, 네트워크의 각 부분이 데이터의 확률적 특성을 효과적으로 학습하도록 유도한다.

기존 메모리 절감 및 학습 기법과의 결정적 차이

딥러닝 엔지니어가 가장 먼저 마주하는 벽은 VRAM 부족으로 인한 런타임 에러다. 기존의 액티베이션 체크포인팅(Activation Checkpointing)을 적용해도 메모리 부족 문제는 쉽게 해결되지 않는다. 이 기법은 계산값을 필요할 때 다시 계산해 액티베이션 메모리는 줄이지만, 파라미터와 그래디언트, 옵티마이저 상태 메모리는 그대로 유지하기 때문이다. 특히 Adam 옵티마이저를 사용하면 각 레이어마다 파라미터, 그래디언트, 그리고 모멘텀과 분산이라는 두 가지 옵티마이저 상태를 저장해야 한다. 결과적으로 레이어당 파라미터 크기의 4배에 달하는 메모리가 상시 점유되며, 모델이 깊어질수록 이 비용은 선형적으로 증가한다. DiffusionBlocks는 네트워크를 B개의 블록으로 나누고 각 블록을 독립적으로 학습시켜 전체 메모리 사용량을 1/B 수준으로 즉각 낮춘다.

로컬 목표를 설정해 학습하는 기존 시도들은 성능 유지라는 과제를 풀지 못했다. 힌튼의 포워드-포워드(Forward-Forward) 알고리즘을 ViT(Vision Transformer) 구조에 적용해 CIFAR-100 데이터셋으로 평가한 결과 정확도는 7.85%에 그쳤다. 이는 임의로 설정한 로컬 목표가 전체 모델의 전역적 일관성을 보장하지 못해 발생하는 결과다. DiffusionBlocks는 단순한 계산값의 재사용이나 임의의 로컬 목표 설정 대신 수학적 근거를 가진 스코어 매칭(Score Matching) 목적 함수를 사용한다. 잔차 네트워크의 업데이트 과정을 확률 흐름 ODE(Ordinary Differential Equation)로 해석하고 이를 블록 단위의 디노이징 단계로 치환했다. 연속 시간 공식과 블록 학습을 결합해 로컬 학습만으로도 엔드-투-엔드 학습에 근접한 성능을 낸다.

최근 등장한 NoProp 역시 확산 프레임워크를 활용해 역전파 없는 학습을 시도했지만 적용 범위가 매우 제한적이다. NoProp은 분류 작업과 특정 커스텀 CNN 구조에서만 성능을 평가했으며, 이를 다른 아키텍처나 복잡한 작업으로 확장하기 위한 구체적인 절차를 제공하지 않았다. 반면 DiffusionBlocks는 트랜스포머 기반 네트워크 전반에 적용 가능하며 연속 시간 정식화(Continuous-time formulation)를 블록 학습에 결합한 유일한 방법론이다. 이 방식은 엔드-투-엔드 역전파 베이스라인과 비교해 성능 차이를 1%p 이내로 좁히면서도 학습 시 필요한 메모리 자원을 획기적으로 줄인다. 개발자는 아키텍처를 변경하지 않고도 블록 수 B를 조절해 가용 메모리에 맞춘 학습 환경을 구축한다.

추론 효율 3배, 전체 연산량 10배 감소의 실무적 가치

모델의 규모가 커질수록 개발자가 직면하는 가장 큰 장벽은 학습 시 메모리 점유율과 추론 단계의 연산 비용이다. DiffusionBlocks는 네트워크를 독립적인 블록으로 분할하여 학습 효율을 극대화하는 방식을 취한다. 특히 DiT(Diffusion Transformer) 아키텍처에 이를 적용할 경우, 12개의 레이어로 구성된 모델을 3개의 블록으로 나누면 추론 시 단계당 4개의 레이어만 활성화된다. 이는 전체 12개 레이어를 모두 연산하는 기존 방식 대비 추론 연산량을 3배 줄이는 결과로 이어진다. 실무 환경에서는 동일한 하드웨어 자원으로 더 빠른 응답 속도를 확보하거나, 더 적은 GPU 자원으로 동일한 처리량을 유지할 수 있는 직접적인 이점이 발생한다.

학습 단계에서의 효율 개선은 더욱 두드러진다. 기존의 Huginn 모델은 4개 레이어를 가진 블록을 평균 32회 반복하는 스토캐스틱 재귀 방식을 사용하며, 이를 위해 8단계의 BPTT(Truncated Backpropagation Through Time)를 수행해야 했다. DiffusionBlocks는 이 복잡한 반복 과정을 단일 포워드 패스로 대체한다. 학습 에포크는 기존 5회에서 15회로 늘어났지만, 반복 횟수를 32배 줄인 덕분에 전체 연산량은 약 10배 감소한다. 이는 대규모 모델 훈련 시 소요되는 시간과 비용을 획기적으로 단축할 수 있음을 보여준다.

이러한 효율성 개선이 성능 저하로 이어지지 않는다는 점은 실무 도입의 핵심 근거가 된다. OpenWebText 데이터셋을 활용한 실험에서 DiffusionBlocks는 MAUVE 점수 0.82를 기록하여 베이스라인인 0.85와 유사한 수치를 보였다. Llama-2 기준 생성 퍼플렉시티 또한 14.99로 베이스라인 15.05와 거의 차이가 없다. 즉, 학습과 추론 과정의 연산 부담을 대폭 덜어내면서도 모델의 생성 품질은 기존의 엔드투엔드 역전파 방식과 대등한 수준으로 유지한다. 결과적으로 이 방식은 메모리 제약이 심한 환경이나 실시간 추론이 필수적인 서비스에서 모델의 경제성을 높이는 실질적인 대안이 된다.

H100 확보 전쟁에서 '효율적 아키텍처'로의 전략 수정

H100 서버 한 대의 도입 비용과 리드 타임은 국내 소규모 연구소의 모델 설계 방향을 결정한다. 기존의 엔드투엔드 역전파 방식은 모든 레이어의 중간 활성화 값을 저장해야 하므로 모델이 깊어질수록 메모리 요구량이 선형적으로 증가한다. 특히 아담(Adam) 옵티마이저를 사용하면 파라미터, 그래디언트, 그리고 모멘텀과 분산이라는 두 개의 옵티마이저 상태를 위해 레이어당 파라미터 크기의 4배에 달하는 메모리가 필요하다. 활성화 체크포인팅 기술로 일부 메모리를 줄여도 파라미터와 옵티마이저 상태가 차지하는 기본 용량은 변하지 않는다. 하드웨어 증설 없이 모델의 깊이를 늘리려는 시도는 결국 메모리 부족 오류라는 물리적 한계에 부딪힌다.

디퓨전블록스(DiffusionBlocks)는 전체 네트워크를 한 번에 메모리에 올리지 않고 블록 단위로 샘플링하여 학습하는 워크플로우를 도입한다. 네트워크를 B개의 블록으로 분할하고 각 블록을 독립적으로 학습시키면 훈련 메모리를 대략 1/B 수준으로 줄인다. 매 반복마다 단 하나의 블록만 무작위로 샘플링해 계산하고 나머지 블록은 연산에서 완전히 제외하는 방식이다. 이 구조를 적용하면 기존 인프라를 그대로 유지하면서도 이전보다 훨씬 깊은 레이어를 가진 모델을 학습시킬 수 있다. 메모리 점유율이 전체 레이어 L이 아니라 L/B 수준으로 낮아지기 때문이다.

마스크 디퓨전 모델의 경우 연속적인 노이즈 레벨 대신 마스킹 스케줄을 기준으로 블록을 분할한다. 언마스킹 확률인 알파(t)를 기준으로 블록을 나누어 각 블록이 전체 확률 질량의 1/B만큼을 동일하게 처리하도록 설계한다. 이렇게 하면 특정 노이즈 구간에 연산이 쏠리지 않고 모든 블록의 파라미터가 균형 있게 활용된다. 연속적인 노이즈 환경뿐만 아니라 이산적인 마스킹 환경에서도 메모리 효율적인 학습이 가능하다는 점을 확인했다. 이는 다양한 도메인의 생성 모델에 동일한 메모리 최적화 기법을 적용할 수 있는 근거가 된다.

실무 관점에서 이 기술의 핵심은 학습 단계에서 블록 간 통신이 전혀 필요 없다는 점이다. 각 블록은 자신만의 로컬 목적 함수를 통해 최적화되며 이는 전체 모델의 전역적 일관성을 해치지 않는다. 개발자는 이제 GPU 개수를 늘리기 위해 예산을 확보하는 대신 모델을 몇 개의 블록으로 쪼갤지 결정하는 아키텍처 설계에 집중한다. 하드웨어의 양적 팽창이 아니라 설계의 질적 효율로 성능을 끌어올리는 전략적 수정이 가능해진다. 6개월 뒤의 코드에서는 전체 모델을 로드하는 루프 대신 블록 단위로 샘플링하는 학습 파이프라인이 자리 잡는다.

기존의 전체 모델 업데이트 방식은 VRAM의 물리적 한계로 인해 거대 모델의 학습과 최적화 속도를 늦췄다. DiffusionBlocks는 학습 단위를 블록 단위로 세분화하여 메모리 점유율을 낮추고 연산 효율을 극대화한다. 이는 고가의 하드웨어 인프라 의존도를 낮추면서도 정교한 모델 튜닝을 가능하게 만든다.

이제는 모델의 절대적인 파라미터 크기가 아니라, 메모리 병목을 해결하는 아키텍처 설계 능력이 생성 AI의 실무 적용 속도를 결정한다.