Fast Byte Latent Transformer(Fast-BLT): BLT의 바이트 단위 생성을 가속하는 BLT-D/BLT-S/BLT-DV 모델에 대한 연구 (feat. Meta FAIR, Stanford, UW)

Fast Byte Latent Transformer (Fast-BLT) 연구 소개

바이트 단위 언어 모델(BLT)과 문제

대규모 언어 모델(LLM)을 사용해 보면 한 가지 묘한 경험을 하게 됩니다. 한국어, 중국어, 또는 흔치 않은 도메인의 텍스트를 입력할 때마다 영어에서는 잘 작동하던 모델이 갑자기 성능이 떨어지거나, 같은 문장에 대해 영어 대비 몇 배 많은 토큰을 쓰는 것을 발견합니다. 이는 우연이 아니라, 현재 LLM들이 의존하는 서브워드 토크나이저(subword tokenizer) 의 구조적 한계 때문입니다.

서브워드 토크나이저는 학습 단계에서 본 텍스트 분포에 맞춰 고정된 어휘 사전(vocabulary)을 만듭니다. 이로 인해 (1) 입력 노이즈에 취약하고, (2) 구조화된/도메인 외(out-of-domain) 입력 처리가 어렵고, (3) 문자 단위 이해 능력이 떨어지며, (4) 언어별 토큰 효율성이 크게 불균형해지는 문제가 발생합니다. 이런 한계를 근본적으로 우회하기 위해 등장한 것이 바이트 단위(byte-level) 언어 모델, 즉 토크나이저-프리(tokenizer-free) 모델입니다.

문제는 효율성입니다. 평균적으로 하나의 서브워드 토큰은 여러 바이트에 해당하므로, 동일한 텍스트를 표현하는 바이트 시퀀스는 토큰 시퀀스보다 몇 배나 길어집니다. 단순한 자기회귀(autoregressive) 바이트 모델은 학습과 추론 비용이 모두 폭증할 수밖에 없습니다.

이런 비용 문제를 완화하기 위해 Byte Latent Transformer(BLT) (:pytorch::kr:한국어 정리 글)가 제안되었습니다.

PyTorchKR의 Byte Latent Transformer(BLT) 소개 글

BLT는 바이트들을 가변 길이 패치(variable-length patch) 로 동적으로 묶고, 무거운 글로벌 트랜스포머는 패치 단위의 잠재 토큰(latent token)에서만 동작하게 함으로써 연산 비용을 크게 줄였습니다. 그러나 BLT가 해결한 것은 주로 연산량(computation) 문제였습니다. 실제 LLM 추론에서 더 큰 병목인 메모리 대역폭(memory bandwidth) 문제는 그대로 남아 있었습니다. 모델 가중치와 KV 캐시를 반복적으로 GPU 메모리에서 불러오는 비용이 추론 속도를 지배하는데, 바이트 단위 디코더는 여전히 한 번에 한 바이트씩 생성하기 때문입니다.

Fast-BLT 연구의 발상 전환: 잠재 표현은 그대로, 바이트 생성만 병렬화

본 논문 Fast-BLT(Fast Byte Latent Transformer) (FAIR at Meta, Stanford University, University of Washington 공동 연구)는 바로 이 메모리 대역폭 병목을 정조준합니다. 핵심 아이디어는 다음과 같습니다.

BLT의 계층적 잠재 토큰화는 그대로 유지하면서, 바이트 디코더가 한 번의 호출로 여러 바이트를 동시에 만들어내도록 만들 수 있는가?

연구진은 이 질문에 세 가지 방식으로 답합니다.

  1. BLT-D (BLT Diffusion): 디코더에 블록 단위 이산 확산(block-wise discrete diffusion) 목적 함수를 추가하여, 마스킹된 바이트 블록을 한 번에 병렬로 생성합니다. 가장 빠른 변형으로, BLT 대비 메모리 대역폭을 최대 92\% 까지 감소시킵니다.

  2. BLT-S (BLT Self-speculation): 어떤 학습도 새로 하지 않고, 기존 BLT의 로컬 디코더가 패치 경계를 넘어 드래프트(draft) 바이트를 만들고 풀 모델이 이를 검증(verify)합니다. 그리디 디코딩(greedy decoding) 결과를 정확히 보존하면서 최대 77\% 의 메모리 대역폭 감소를 얻습니다.

  3. BLT-DV (BLT Diffusion + Verification): BLT-D의 확산 드래프트를 자기회귀 다음 바이트 예측으로 검증해, 속도와 품질의 중간 지점을 노립니다. 메모리 대역폭은 최대 81\% 감소합니다.

이는 마치 문장을 한 글자씩 받아쓰는 학생전체 단락을 한꺼번에 채우고 사후에 검토하는 학생의 차이와 같습니다. BLT-D는 후자에 해당하며, BLT-S/BLT-DV는 그 사이에서 정확도를 보장하는 사후 검토 절차를 추가한 방식입니다. 세 방법 모두 추가 모델이나 별도의 드래프트 네트워크 없이 BLT의 기존 컴포넌트만으로 가속을 달성한다는 점이 핵심입니다.

배경: BLT 아키텍처와 이산 확산 언어 모델

계층적 BLT: 인코더, 글로벌 모델, 디코더

BLT는 다음과 같은 세 가지 컴포넌트로 구성됩니다:

  • 로컬 인코더(local encoder) \mathcal{E}: 길이 N 의 원시 바이트 시퀀스 x = [x_1; x_2; \dots; x_N] \in \mathcal{V}^N 을 임베딩한 뒤, 가변 길이 패치들로 묶어 M \approx N/4 개의 잠재 토큰(latent token) 표현 \mathbf{T} \in \mathbb{R}^{M \times d_{\text{global}}} 로 압축합니다. 패치 경계는 작은 보조 모델이 추정한 엔트로피 기반 분할(entropy-based segmentation) 로 결정되며, 예측 가능한 구간은 길게, 불확실한 구간은 짧게 묶입니다.

  • 글로벌 트랜스포머(global transformer) \mathcal{G}: 잠재 토큰 시퀀스 \mathbf{T} 를 다음 잠재 토큰을 예측하기 위한 컨텍스트 표현 \mathbf{O} \in \mathbb{R}^{M \times d_{\text{global}}} 로 변환합니다. 이 모듈이 파라미터의 대부분을 차지합니다.

  • 로컬 디코더(local decoder) \mathcal{D} : 잠재 토큰 \mathbf{O} 에 대한 크로스 어텐션(cross-attention) 을 통해 바이트 시퀀스 y \in \mathcal{V}^N 를 자기회귀적으로 출력합니다. 각 레이어는 다음과 같은 형태로 동작합니다.

    \mathbf{B}_l = \mathbf{D}_{l-1} + \mathbf{W}_o\!\left(\mathrm{softmax}\!\left(\frac{\mathbf{Q}\mathbf{K}^\top}{\sqrt{d_k}}\right)\mathbf{V}\right), \quad \mathbf{D}_l = \mathrm{DecoderTransformerLayer}(\mathbf{B}_l).

이 구조 덕분에 BLT는 높은 연산 비용을 갖는 글로벌 모델을 패치당 한 번씩만 호출하며, 디코더는 가벼운 모듈로 유지됩니다. 하지만 바이트 출력은 여전히 한 번에 하나입니다. 평균 패치 크기가 4바이트라면, 패치 하나를 채우기 위해 디코더 호출이 4 회, 글로벌 모델은 1 회 필요합니다.

이산 확산 언어 모델(dLM): 마스크 채우기 관점의 디코딩

이산 확산 언어 모델(discrete diffusion language model, dLM) 은 토큰 시퀀스에 확률적 손상(corruption)을 정의하고, 이를 되돌리는 역과정을 학습합니다. 본 연구는 흡수 상태 이산 확산(absorbing discrete diffusion) 을 사용합니다. 깨끗한 시퀀스 x^0 에 대해, 잡음 수준 t \sim \mathcal{U}(0, 1) 을 뽑은 뒤, 각 위치를 독립적으로 \mathtt{[MASK]} 로 치환합니다.

q(x^t_i = \mathtt{[MASK]} \mid x^0_i) = t, \quad q(x^t_i = x^0_i \mid x^0_i) = 1 - t.

모델은 손상된 시퀀스로부터 원래 토큰을 복원하는 디노이징 분포(denoising distribution) p_\theta(x^0_i \mid x^t, t) 를 학습합니다. 이 손실은 데이터 로그우도에 대한 단순화된 ELBO(Evidence Lower Bound) 상한에 해당하며, 개념적으로 마스크 언어 모델(masked language model) 과 매우 유사합니다. 추론 시에는 마스크 위치를 한꺼번에 디노이징하므로 자기회귀보다 훨씬 적은 모델 호출로 시퀀스를 생성할 수 있습니다.

기존 dLM은 보통 고정 길이 토큰 위에서 정의되어 BLT처럼 동적 패치를 사용하는 계층 구조와는 자연스럽게 맞물리지 않습니다. 이를 해결하는 것이 BLT-D의 핵심 과제였습니다.

BLT-D: 계층적 바이트 모델에 블록 확산 결합하기

BLT-D는 BLT의 인코더 \mathcal{E} 와 글로벌 모델 \mathcal{G} 는 그대로 두고, 디코더 \mathcal{D} 와 학습 손실만 변경합니다. 디코더는 마스킹된 고정 길이 블록을 한 번의 호출로 부분적으로 채워 나가는 블록 단위 이산 확산 으로 동작합니다. 여기에서는 BLT-D의 (1) 추론 절차, (2) 어텐션 마스크, (3) 언마스킹 전략, (4) 학습 절차로 나누어 살펴보겠습니다.

BLT-D 추론: 블록 단위 확산 디코딩

길이 N 의 프리픽스 x = [x_1; \dots; x_N] 이 주어지면, BLT-D는 다음과 같은 순서로 한 블록B 바이트를 생성합니다.

  1. 잠재 토큰 계산: 패처(Patcher)가 xM 개 패치로 분할하면, 인코더 \mathcal{E} 가 잠재 토큰 \mathbf{T} 를 만들고, 글로벌 모델 \mathcal{G} 가 컨텍스트 잠재 토큰 \mathbf{O} = [\mathbf{o}_1; \dots; \mathbf{o}_M] 을 출력합니다.

  2. 블록 초기화: 디코더 입력으로 x' = [x_1; \dots; x_N; \underbrace{\mathtt{[MASK]}; \dots; \mathtt{[MASK]}}_{B \text{ 개}}] \in \mathcal{V}^{N+B} 를 구성합니다.

  3. 반복적 언마스킹: 디코더가 x' 에 대해 포워드 패스를 수행하고, 매 스텝마다 마스크 위치 중 1 \leq k \leq B 개를 선택해 모델 예측으로 채웁니다. 모든 마스크가 채워질 때까지 이 과정을 반복합니다. 일반적으로 s 번의 언마스킹 스텝만으로 B 바이트를 모두 채우며, s < B 일 때 가속이 발생합니다.

  4. 블록 이어붙이기: 채워진 블록을 시퀀스에 합친 뒤, 다시 1단계로 돌아가 패처/인코더/글로벌 모델을 호출해 다음 블록을 생성합니다.

따라서 BLT-D는 블록 간(across-block) 자기회귀, 블록 내(within-block) 확산준-자기회귀(semi-autoregressive) 구조입니다. 인코더와 글로벌 모델은 (평균 패치 크기보다 큰) 블록 단위로만 호출되므로, 디코더뿐 아니라 계층 전체의 호출 빈도가 함께 감소 합니다. 또한 깨끗한 프리픽스와 처음 M-1 개의 잠재 토큰은 캐시할 수 있어, 매 스텝마다 마지막 잠재 토큰과 현재 블록만 재계산하면 됩니다.

BLT-D의 어텐션 마스크: 깨끗한 프리픽스 vs. 마스킹된 블록

BLT-D 디코더의 핵심은 프리픽스(prefix)와 블록의 어텐션 패턴을 분리했다는 것입니다. i \in \{1, \dots, N+B\}x' 의 위치, p(i) 가 위치 i 의 패치 인덱스라 할 때:

  • 크로스-어텐션(latent token 참조): 깨끗한 프리픽스 위치(i \leq N)는 직전 패치의 잠재 토큰 \mathbf{o}_{p(i)-1} 에 주의를 둡니다(단, 각 패치의 마지막 바이트만 자신의 잠재 토큰 \mathbf{o}_{p(i)} 에 주의를 두며, 이는 표준 BLT와 동일합니다). 마스킹된 블록 위치(i > N)는 마지막 잠재 토큰 \mathbf{o}_M 한 곳만 바라봅니다.

  • 셀프-어텐션(self-attention): 프리픽스 위치들은 인과적(causal) 어텐션, 블록 위치들은 양방향(bidirectional) 어텐션을 사용합니다. 즉 블록 내부의 마스크들은 서로를 자유롭게 참조하면서 동시에 디노이징됩니다.

이 마스크 구성 덕분에, 디코더는 기존 BLT의 인과적 디코딩 능력을 유지하면서 블록 내부에서는 양방향 정보 흐름을 활용할 수 있습니다. 같은 가중치를 인과적 마스크로 다시 돌리면 곧바로 표준 자기회귀 BLT처럼 동작하므로, 뒤에서 다루는 BLT-DV의 검증 단계가 자연스럽게 가능해집니다.

블록 언마스킹 전략

매 디코더 스텝마다 어떤 마스크를 언마스킹할지 선택하는 규칙이 속도와 품질을 결정합니다:

  • 신뢰도 기반 언마스킹(Confidence-based Unmasking): 각 위치의 최대 예측 확률을 신뢰도로 보고, 임계값 \alpha 를 넘는 위치들을 한꺼번에 확정합니다(Ghazvininejad et al., 2019). 만약 임계값을 넘는 위치가 없다면 가장 신뢰도가 높은 한 위치를 강제로 언마스킹해 진행이 멈추지 않게 합니다.

  • 엔트로피 기반 샘플링(Entropy-bounded Sampling, EB Sampling): 각 마스크 위치의 예측 엔트로피를 오름차순으로 정렬하고, 누적 엔트로피가 임계값 \gamma 이하인 최대 부분집합을 한 번에 디코딩합니다(Ben-Hamu et al., 2025). top-p 샘플링 과 결합 가능해 생성 다양성을 조절할 수 있습니다.

후자는 마스크 토큰 사이의 상호 정보(mutual information) 를 직접 계산하기 어렵다는 점을 고려해 주변 엔트로피의 합 이라는 상한을 사용한다는 점이 흥미롭습니다.

BLT-D 학습: 두 가지 목적 함수의 결합

BLT-D는 같은 모델이 디퓨전 모드와 자기회귀 모드 양쪽으로 모두 동작 하도록, 데이터 전처리와 손실 함수가 다음과 같이 설계됩니다.

1) 블록 구성(Block Construction)

원시 바이트 시퀀스 x = [x_1; \dots; x_N]M 개 패치로 분할되고 패치 p_i 가 인덱스 s_i 에서 시작한다고 합시다. BLT-D는 두 번째 패치 이후의 패치마다 시작점 s_i 로부터 고정 길이 B 의 블록 b_{i-1} = [x_{s_i}; x_{s_i+1}; \dots; x_{s_i+B-1}] 를 만듭니다(첫 패치는 1바이트라 블록 구성에서 제외됩니다). 보통 B 는 평균 패치 크기보다 크게 설정되므로, 각 블록은 현재 패치의 끝을 넘어 미래 패치의 바이트까지 포함 하게 됩니다. 이 설계가 바로 디코더가 평균 패치 크기 이상의 미래 바이트 를 예측하도록 만드는 핵심입니다. 블록이 시퀀스 끝을 넘으면 \mathtt{[PAD]} 로 채우고, 모든 블록은 이어 붙여 x_{\text{block}} \in \mathcal{V}^{B \cdot (M-1)} 를 만듭니다. 각 바이트의 원래 위치 인덱스 [s_i; s_i+1; \dots; s_i+B-1] 는 그대로 보존되어 디코더의 RoPE 위치 인코딩 에 사용됩니다.

2) 확산 과정(Diffusion Process)

각 학습 샘플에 대해 t \sim \mathcal{U}(0, 1) 을 뽑고, x_{\text{block}} 의 각 바이트를 독립적으로 확률 t\mathtt{[MASK]} 로 치환해 손상된 시퀀스 x_{\text{block}}^t 를 만듭니다. 디코더 입력은 깨끗한 시퀀스와 손상된 시퀀스를 연결한 형태 입니다.

\mathbf{D}_0 = \mathrm{Embed}([x; x_{\text{block}}^t]).

3) 디코더 어텐션(Decoder Attention)

학습 시 디코더의 어텐션 마스크는 다음과 같이 구성됩니다:

  • 크로스 어텐션: 깨끗한 패치 p_i 의 바이트는 (마지막 바이트를 제외하고) \mathbf{o}_{i-1} 을, 마지막 바이트는 \mathbf{o}_i 를 봅니다. 손상된 블록 b_{i-1}^t 의 바이트는 모두 \mathbf{o}_{i-1} (직전 잠재 토큰)을 참조 해, 블록과 패치의 정렬을 유지합니다.

  • 셀프 어텐션: 깨끗한 시퀀스 부분은 인과적 마스크, 손상된 블록 내부는 양방향 마스크를 사용하며, 손상된 블록의 바이트는 이전 깨끗한 바이트들에 대해서는 인과적으로 어텐션을 둡니다. 이렇게 함으로써 한 번의 포워드 패스로 모든 블록의 디노이징을 병렬 로 학습할 수 있습니다.

4) 결합 손실(Combined Loss)

손실 함수는 깨끗한 시퀀스에 대한 자기회귀 다음 바이트 예측 손실손상된 블록에 대한 디노이징 손실의 합입니다. 먼저 깨끗한 시퀀스 손실(Clean Sequence Loss) 은 표준 자기회귀 형태입니다:

\mathcal{L}_{\text{clean}}(\theta) = -\sum_{i=1}^N \log p_\theta(x_i \mid x_{<i}).

디노이징 손실(Masked Diffusion Loss) 은 마스킹된 위치에서만 계산되며, 흡수 상태 이산 확산의 ELBO 유도에 따라 1/t재가중 됩니다:

\mathcal{L}_{\text{mask}}(\theta) = -\frac{1}{t} \sum_{i=2}^{M} \sum_{k=0}^{B-1} \mathbf{1}_{[b^t_{i-1,k} = \mathtt{[MASK]}]} \, \log p_\theta\!\left(x_{s_i + k} \mid b^t_{i-1}, x_{<s_i}\right).

전체 학습 손실(Total Training Loss) 은 위 두 손실의 단순 합입니다:

\mathcal{L}_{\text{total}}(\theta) = \mathcal{L}_{\text{clean}}(\theta) + \mathcal{L}_{\text{mask}}(\theta).

이 이중 학습 덕분에 BLT-D는 한 세트의 가중치로 두 가지 추론 모드를 모두 지원합니다. 블록 마스크 + 양방향 어텐션으로 돌리면 확산 디코딩, 인과적 어텐션으로 돌리면 표준 자기회귀 디코딩이 되며, 이 두 모드의 결합이 곧 BLT-DV의 토대가 됩니다. 향후 두 손실 사이의 가중치 \lambda 를 도입해 검증 정확도를 더 높이는 방향이 후속 연구로 제안되어 있습니다.

BLT-S와 BLT-DV: 추론만 바꿔 얻는 가속

BLT-S와 BLT-DV는 추측 디코딩(speculative decoding) 의 발상을 BLT의 계층 구조에 그대로 옮겨 적용합니다. 차이점은 다음과 같습니다. 보통의 추측 디코딩은 별도의 드래프트 모델을 두고 그 출력을 타깃 모델이 검증하지만, BLT는 이미 가벼운 로컬 디코더무거운 인코더/글로벌 모델로 분해되어 있어 추가 모델 없이도 같은 모델의 컴포넌트만으로 드래프트-검증 구조를 만들 수 있습니다.

두 방법이 공유하는 검증 절차는 다음과 같습니다.

  1. 드래프트 시퀀스 x' 에 대해 패처/인코더/글로벌/디코더 전체를 한 번 돌려 그리디(Greedy)한 다음 바이트 예측 y 를 만듭니다.

  2. 드래프트 위치 i = l+1, \dots, l+r 을 순회하며, x'_iy_{i-1} 이 같으면 수용하고 다르면 첫 불일치 위치에서 모델 예측으로 교체 한 뒤 중단합니다.

  3. 모든 바이트가 일치하면 검증 단계에서 얻은 다음 바이트 예측 하나를 공짜 바이트(free byte) 로 추가 수용합니다.

이 절차는 확률 분포가 아닌 바이트 자체의 일치를 요구하므로 표준 추측 디코딩보다 수용 기준이 엄격합니다. 그 대신 그리디 디코딩 결과의 정확한 보존이라는 강한 보장을 얻습니다. 온도가 0이 아닌 샘플링은 거부 샘플링과 결합해 확장 가능하지만, 본 논문에서는 그리디 설정만 평가합니다.

BLT-S: 자기 자신을 드래프터(drafter)로 쓰는 자기 추측

표준 BLT 추론에서 디코더는 엔트로피 기반 패처가 "여기서 새 패치를 시작해야 한다" 고 판단할 때까지만 바이트를 생성합니다. 이는 보통 약 4 바이트마다 발생하며, 그때마다 무거운 글로벌 모델이 다시 호출됩니다.

BLT-S(BLT Self-speculation) 는 단순한 발상에서 출발합니다. 디코더가 패치 경계를 넘어 고정된 윈도우 크기 k 까지 계속 자기회귀적으로 바이트를 생성하게 한 뒤, 패처가 시퀀스를 다시 분할하고 인코더/글로벌/디코더 전체를 한 번 돌려 검증합니다. 검증된 바이트와 드래프트가 일치하면 그대로 수용하고, 불일치가 처음 발생한 위치에서 드래프트는 폐기되며 모델의 예측으로 대체됩니다.

이 방식은 그리디 디코딩 결과를 표준 BLT와 완전히 동일하게 보존하면서도, 패치 경계마다 호출되던 글로벌 모델을 덜 자주 호출하게 만듭니다. 디코더 NFE는 늘지만(드래프트하느라 더 많이 호출), 글로벌 NFE의 큰 감소가 이를 상쇄하고도 남습니다. 일반적인 추측 디코딩(speculative decoding) 과 달리 별도의 드래프트 모델, 추가 헤드, 추가 학습이 전혀 필요 없다는 점이 차별점입니다. BLT의 기존 가벼운 로컬 디코더가 그대로 드래프터 역할을 합니다.

BLT-DV: 확산을 드래프트, 자기회귀를 검증으로

BLT-DV(BLT Diffusion + Verification) 는 BLT-D의 두 가지 학습 목적 중 자기회귀 부분을 검증에 활용합니다. 앞서 본 결합 손실에서 \mathcal{L}_{\text{clean}} 으로 다음 바이트 예측을 동시에 학습했기 때문에, 동일한 가중치에 인과적 마스크만 다시 씌우면 자기회귀 모델로 변신 할 수 있습니다. 즉 드래프트와 검증 모두 같은 모델 파라미터 가 수행하며, 변경되는 것은 디코더의 셀프/크로스 어텐션 마스크뿐입니다.

BLT-DV의 한 스텝은 다음과 같이 진행됩니다:

  1. 디퓨전 디코더가 마스크 블록을 채워 드래프트 블록 을 생성합니다(do_verify=True 분기).

  2. 같은 모델에 인과적 마스크를 씌워 풀 패스를 한 번 더 돌려 다음 바이트 예측을 만듭니다.

  3. Algorithm 2의 검증 절차를 적용해 일치하지 않는 첫 위치까지만 수용합니다.

실험적으로 흥미로운 발견 중 하나는, 단일 스텝 디퓨전(one-step diffusion) + 검증 의 조합이 가장 빠른 추론을 만든다는 점입니다. 단일 스텝 디퓨전만 사용하면 품질이 급격히 떨어지지만, 자기회귀 검증이 이 결함을 "마치 교정자가 빠른 초고를 다듬듯이" 보정해 줍니다. 블록 크기 B 와 언마스킹 전략의 선택이 생성 속도와 검증 수용률 사이의 균형을 결정합니다.

사전 학습 및 실험 설정

모델, 데이터, 하이퍼파라미터

연구진은 BLT와 BLT-D-{4, 8, 16}(블록 크기 B \in \{4, 8, 16\})을 1B 파라미터와 3B 파라미터 두 규모로 학습했습니다.

  • 1B 모델: 글로벌 1.28\text{B}, 인코더 19\text{M}, 디코더 160\text{M}
  • 3B 모델: 글로벌 2.82\text{B}, 인코더 26\text{M}, 디코더 160\text{M}
  • 패치 설정: 엔트로피 패칭, 평균 패치 크기 4 바이트, 최대 패치 크기 8 바이트
  • 사전 학습 데이터: BLT-1T(1조 토큰, Datacomp-LM 일부 포함)

평가 태스크와 효율성 지표

평가는 두 유형의 생성 태스크로 진행됩니다.

  • 번역: FLORES-101의 French→English, German→English(4-shot), 지표는 SentencePiece BLEU
  • 코드 생성: HumanEval(0-shot)과 MBPP(3-shot), 지표는 \mathtt{pass@1}

모든 태스크 추론은 그리디 디코딩 으로 수행하며, BLT-D 변형에 대해서는 신뢰도 기반 언마스킹과 EB 샘플링 양쪽에 대해 하이퍼파라미터 스윕을 수행합니다.

추론 효율성은 다음 세 가지 지표로 측정됩니다.

  • 디코더 NFE(Network Function Evaluation): 출력 시퀀스당 평균 디코더 포워드 패스 수
  • 인코더/글로벌 NFE: 출력 시퀀스당 평균 인코더 및 글로벌 모델 포워드 패스 수
  • 메모리 대역폭(memory bandwidth): 16-bit 정밀도 기준 파라미터 로드량을 추정한 값으로, 다음 식으로 계산됩니다.
\frac{b \, [\, N_{\text{dec}} \cdot P_{\text{dec}} + N_{\text{enc}} \cdot (P_{\text{enc}} + P_{\text{glob}}) \,]}{10^9}.

여기서 b = 2 바이트, N_{\text{dec}}, N_{\text{enc}} 는 각각 디코더와 인코더/글로벌의 평균 호출 수, P_* 는 각 모듈의 파라미터 수입니다. 작은 배치 크기와 작은 KV 캐시를 가정한 로컬 서빙(local serving) 시나리오에 가까운 가정입니다.

Fast-BLT 실험 결과: 속도와 품질의 트레이드오프 지도

BLT vs. BLT-D: 블록 크기에 따른 효율-품질 곡선

3B 모델 비교에서 BLT-D 계열은 모든 태스크에서 BLT 대비 NFE와 메모리 대역폭이 큰 폭으로 감소합니다(이하 결과는 신뢰도 임계값 \alpha = 0.7 기준).

  • BLT-D-4: BLT의 태스크 점수에 거의 근접 하면서도 NFE와 메모리 대역폭은 절반 이하로 줄어듭니다. 가장 균형 잡힌 변형입니다.
  • BLT-D-8: 효율성에서 BLT-D-4보다 한층 앞서며, 특히 번역에서 강한 성능을 유지합니다.
  • BLT-D-16: 가장 빠른 변형으로, BLT 대비 메모리 대역폭을 87\% ~ 92\% 감소시킵니다. 번역은 여전히 경쟁력이 있지만, 코드 생성 에서는 성능이 다소 하락합니다. 이는 코드처럼 국소적 의존성이 강한 도메인 에서는 큰 블록의 병렬 예측이 어렵다는 직관과 일치합니다.

흥미롭게도 BLT-D 계열의 인코더/글로벌 호출도 함께 줄어드는데, 이는 패치 경계가 줄어들면서 글로벌 모델 호출 자체가 적어지기 때문입니다. 다시 말해 BLT-D는 디코더만 빠르게 만든 것이 아니라, 계층 전체를 덜 자주 부르도록 만든 것입니다.

확장 기법 비교: BLT-S와 BLT-DV의 위치

확장 기법들을 도입한 3B 모델 비교 결과(k \in \{8, 16\}, B \in \{8, 16\}), 다음과 같은 양상이 관찰되었습니다.

  • BLT-S(self-speculation): 디코더 NFE는 BLT보다 증가 하지만, 글로벌 NFE는 크게 감소합니다. 결과적으로 메모리 대역폭은 최대 77\% 감소하면서, 태스크 성능은 BLT와 완전히 동일 합니다(그리디 결과 보존). 글로벌 모델이 큰 환경에서 가장 안전한 가속 기법 이라 부를 만합니다.

  • BLT-DV(diffusion + verification): BLT-D 대비 글로벌 NFE가 늘지만, 태스크 점수가 회복됩니다. 메모리 대역폭은 최대 81\% 감소합니다. 단일 스텝 디퓨전과 결합했을 때 가장 빠른 BLT-DV 설정이 나타납니다.

  • BLT-D-8/16: 검증 없이도 여전히 가장 빠른 옵션이지만, 코드 생성 같은 엄격한 시퀀스 일관성 이 요구되는 태스크에서는 점수가 떨어집니다.

저자들은 이를 한 줄로 요약합니다. "BLT-D는 절대 속도, BLT-S는 정확도 보존, BLT-DV는 중간 지점"이라는 식의 지도(map) 가 만들어지는 셈이며, 응용 시 요구 사항에 맞게 선택할 수 있습니다.

우도 기반 평가: 자기회귀 능력은 보존되는가

연구진은 BLT-D가 디퓨전 학습으로 인해 자기회귀 능력을 잃지는 않았는지를 확인하기 위해, 인과적 마스크를 적용한 BLT-D로 ARC-Easy, ARC-Challenge, PIQA, HellaSwag, MMLU 등 5개 벤치마크에서 우도 기반 평가를 수행했습니다. 결과적으로 BLT-D 변형들은 BLT 베이스라인에 근접한 점수 를 보였습니다. 즉, 디퓨전 목적 함수와 다음 바이트 예측을 함께 학습해도 언어 이해 및 추론 능력은 거의 손상되지 않습니다. 이 관찰은 BLT-DV의 검증 단계 신뢰도에 대한 강력한 근거가 됩니다.

다양성과 효율성의 트레이드오프

비조건 생성에서 엔트로피 기반 샘플링과 top-p 샘플링을 조합한 분석을 보면, TTR(type-token ratio, 어휘 다양성 지표) 가 증가할수록 필요한 디코더 호출 수도 함께 증가합니다. 즉, 모델이 반복적이고 예측 가능한 텍스트 를 생성할 때는 적은 호출로도 충분하지만, 다양하고 예측 어려운 텍스트 를 생성할 때는 더 많은 디코더 패스가 필요합니다. 이는 블록 확산 디코딩이 연산 비용과 생성 다양성 사이의 트레이드오프를 사용자가 명시적으로 탐색 할 수 있게 해 준다는 점에서 흥미로운 부수 효과입니다.

한계점 및 향후 연구 방향

저자들은 평가의 가장 큰 한계로, 효율 지표가 NFE와 메모리 대역폭 추정치 라는 대리 지표(proxy metric) 라는 점을 솔직하게 인정합니다. 실제 추론 속도는 커널 구현, 하드웨어 활용도, 배칭 전략, KV 캐시 관리 등 구현 디테일 에 크게 좌우되므로, 고도로 최적화된 추론 엔진 위에서 BLT, BLT-D, BLT-S, BLT-DV를 벤치마킹하는 것이 자연스러운 다음 단계입니다.

향후 연구로 제안된 방향은 구체적입니다.

  • 다른 패치 크기: 평균 4 바이트, 최대 8 바이트 외의 설정 탐색

  • 디퓨전과 자기회귀 손실의 가중치 조정: 두 손실 사이에 가중치를 도입해 BLT-DV 검증 정확도를 더 끌어올릴 가능성

  • 학습 스케일 확장: 디퓨전 언어 모델은 학습 스케일에 특히 민감하다는 보고(Ni et al., 2025)가 있어, 추가 사전 학습으로 격차 축소 가능

  • 디코더 파라미터 할당: 더 큰 디코더는 BLT-D/BLT-DV에 유리하지만, BLT-S에는 오히려 오버헤드를 키울 수 있어 모델 컴포넌트별 크기 최적화 연구 필요

거시적으로 보면, Fast Byte Latent Transformer 는 토크나이저-프리 LLM의 가장 큰 실용적 장애물이었던 추론 효율성을 알고리즘 수준 에서 크게 좁힌 작업입니다. 메모리 대역폭이 절반에서 90% 이상 줄어들 수 있다면, 언어/도메인 불균형이 없는 진짜 다국어 LLM, 문자 단위 이해가 필수인 음성/코드/생물학 시퀀스 모델, 노이즈에 강인한 엣지 추론 등 그동안 비용 때문에 미뤄졌던 응용들이 한층 가까워집니다. 이산 확산과 추측 디코딩이 바이트 단위 계층 구조 라는 새로운 토대 위에서 만나면서 만들어 낸 가능성이라는 점도, 분야 전체에 시사하는 바가 큽니다.

:scroll: Fast Byte Latent Transformer 논문

:scroll: Byte Latent Transformer(BLT, 선행 연구) 논문

:scroll: Block Diffusion(BLT-D의 디퓨전 토대) 논문

더 읽어보기




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: