BYOD는 LoRA만으로 자기회귀 모델을 확산 모델로 전환한다
BYOD: Build Your Own DLM - Efficient Autoregressive-to-Diffusion Language Model Conversion
무엇인가
이 논문은 자기회귀(AR) 언어모델을 확산 언어모델(DLM)로 바꾸는 전환 비용을 낮추는 문제를 다룬다. AR 모델은 왼쪽에서 오른쪽으로 한 번에 한 토큰만 생성하고 인과적 어텐션 때문에 앞 토큰만 본다. 반면 DLM은 손상된 시퀀스의 여러 위치를 양방향 문맥으로 반복 복원하며, 함수 평가 횟수(NFE)를 출력 길이와 별도로 정할 수 있고 초기 저확률 예측을 수정할 수 있다. 문제는 기존 DLM이 대규모 사전학습이나 전체 모델 미세조정을 요구해 비싸다는 점이다. 논문은 LLaDA 사례의 학습 비용을 표준 임대·전력 시나리오에서 약 67만5천 달러, 44,100kg CO2e로 추정했지만 이는 저자들의 실제 청구서나 측정 배출량이 아니라고 선을 긋는다. 저자들은 아키텍처별 확산 기반 모델을 새로 사전학습하지 않고도 재현 가능한 전환 레시피를 만드는 것을 목표로 한다.
어떻게 동작하나
핵심 학습 목적은 마스크 확산이다. 명령 p와 깨끗한 응답 x0가 있을 때 답변 위치 A와 EOS 패딩 위치 P를 두고, 각 예제마다 t를 0.001에서 1 사이 균등분포에서 뽑아 A∪P의 각 위치를 확률 t로 독립적으로 마스킹한다. 모델은 프롬프트가 보이는 상태에서 깨진 시퀀스의 같은 위치에 원래 토큰을 맞히도록 학습하며, 손실은 -1/(t|R|) 곱하기 마스킹된 위치들의 로그 확률 합으로 계산한다. 1/t는 샘플링된 마스킹 비율을 보정하는 항이다. 최종 손실은 답변 영역 손실에 0.9, EOS 패딩 영역 손실에 0.1을 준 가중합이다. 첫 EOS는 실제 답변 토큰으로 포함하고 이후 EOS는 패딩으로 취급하며, 프롬프트와 채팅 템플릿 토큰은 손실에서 제외한다. 훈련 마스크는 온라인으로 다시 샘플링하고 검증 마스크는 예제 인덱스와 시드로 고정한다.
무엇과 다른가
전환 자체는 모든 층의 인과 마스크를 양방향 어텐션 마스크로 바꾸는 데서 시작한다. 그러면 프롬프트, 답변, EOS 패딩 위치가 서로를 모두 볼 수 있다. 여기에 각 셀프 어텐션의 query와 value 투영에 rank 1024, alpha 1024, 드롭아웃 0인 LoRA를 붙인다. 백본 가중치, 토큰 임베딩, 언어모델 헤드, 바이어스, 정규화 층은 모두 동결하고 출력 어휘도 늘리지 않는다. 대신 각 토크나이저에 이미 있는 단일 토큰 문자열을 마스크로 재사용한다. Gemma, Llama, Qwen은 MASK를, Ministral은 <?>를 쓴다. AR 학습의 다음 토큰 라벨 시프트를 제거하고 깨진 시퀀스에서 같은 위치의 깨끗한 토큰을 예측한다. 학습 데이터는 100만 예제 혼합으로 일반 명령 45%, 객관식 추론 18%, 수학 18%, 코드 19%다. 정규화 프롬프트 중복 제거, 평가 프롬프트와 정확히 일치하는 예제 제외, 256토큰 길이 제한을 적용하고 각 모델의 네이티브 채팅 템플릿으로 재토큰화한다. 25,000회 전환은 최대 1억240만 토큰을 처리하며 Google Colab의 NVIDIA RTX PRO 6000 한 장에서 3.1~4.0시간 걸린다. 어댑터는 최종 파라미터의 4.1~5.8%다.
어떻게 쓰나
추론은 고정 길이의 완전히 마스킹된 답변 블록에서 시작한다. 각 디노이징 단계에서 모델이 모든 마스킹 위치를 예측하고, 신뢰도 높은 예측을 남기며 낮은 위치는 다시 마스킹한다. 수용된 토큰은 더 이상 마스킹되지 않으므로 한 번의 네트워크 평가에서 여러 토큰이 확정될 수 있다. 평가는 MMLU, MMLU-Pro, HellaSwag, ARC-Challenge, GSM8K, MATH-500, GPQA-Main, HumanEval, MBPP의 9개 과제에서 이뤄졌다. 각 전환 모델은 원래 AR 부모 모델과 쌍으로 비교되고, LLaDA 8B Instruct는 같은 평가 하네스에서 외부 확산 베이스라인으로 쓰인다. BYOD-Gemma가 9개 과제 평균 50.6%로 BYOD 중 가장 강했고 LLaDA의 51.9%와 1.3점 차이였다. AR 부모 모델들은 평균적으로 더 높았고, 수학과 코드에서 격차가 컸다. Llama를 25,000회에서 50,000회로 늘리면 평균은 0.5점 오르지만 5개 과제는 개선되고 4개 과제는 하락했다. HumanEval과 MBPP 부분집합에서 BYOD-Llama-50k 출력의 28.0%와 8.8%가 파싱에 실패했고 Llama AR은 0%였다. LLaDA는 같은 하네스에서 출판 평균보다 2.6점 낮게 나와 프로토콜 민감성을 보였다.
전제와 한계
개방형 생성 품질은 100개 질문에 대해 동결된 Microsoft Phi-4 14B를 외부 퍼플렉시티 채점기로 써서 평가했다. 모든 생성 답변의 비패딩 토큰에 대한 음의 로그 가능도를 합산한 뒤 지수화해 토큰별 가중치를 동일하게 했다. NFE 예산 전반에서 전환 모델의 퍼플렉시티는 AR 부모의 2.7~5.0배였고 Distinct-1/2/3도 대체로 더 낮았다. 128토큰을 64스텝으로 생성할 때 BYOD의 퍼플렉시티는 8.3~11.1, LLaDA는 4.1, AR 부모는 2.2~3.0이었다. 50,000회로 늘린 Llama는 검증 손실이 거의 단조 감소하며 50,000회 끝에서 평탄해지고 퍼플렉시티도 모든 NFE 예산에서 내려갔지만 체크포인트 간 변동이 컸다. Distinct-1은 상대적으로 안정적이었고 BYOD-Llama의 퍼플렉시티는 LLaDA보다 높았으며 LLaDA는 다시 Llama AR보다 높았다. 양방향 어텐션 시험에서는 응답 뒤쪽에 제시된 단어를 앞쪽 마스킹 위치에 복사하는 과제를 썼다. 뒤쪽 단서를 추가했을 때 모든 전환 모델과 LLaDA가 100% 항목에서 탐욕 예측을 바꿨다. 단서가 없을 때 정확 일치는 모두 0%였고, 단서가 있을 때 정확 복사는 BYOD-Gemma와 BYOD-Ministral, LLaDA가 100%, BYOD-Llama-25k가 90%, BYOD-Llama-50k가 70%, BYOD-Qwen이 20%였다.
개발자 입장에서 BYOD는 이미 가진 AR 체크포인트를 버리지 않고 확산 생성 실험을 빠르게 시작하는 방법이다. 단일 GPU 몇 시간과 LoRA만으로 네 모델 계열을 같은 목적함수와 같은 데이터 혼합으로 비교할 수 있고, 코드와 네 모델 데모가 공개되어 재현과 정성 검사가 가능하다. 어댑터는 W_merged = W + (alpha/r)BA로 부모 투영에 병합할 수 있어 추론 시 어댑터 분기를 제거할 수 있고, 논문은 병합 후에도 대체로 비슷한 동작을 보였다고 보고한다. 실무 적용 전에는 반드시 NFE 예산, 출력 길이, 재마스킹 전략을 함께 스윕해야 한다. 특히 수학·코드에서 구문 오류와 파싱 실패가 늘고, 낮은 NFE에서는 반복과 퍼플렉시티 악화가 나타날 수 있으므로 과제별 정확도와 사람이 보는 정성 평가를 같이 봐야 한다. 벤치마크 수치는 하네스에 민감하므로 LLaDA 같은 외부 모델과 비교할 때 프로토콜을 맞춰야 한다.
저자들이 밝힌 가장 큰 한계는 전환은 효율적이지만 생성은 아직 효율적이지 않다는 점이다. 출력 품질이 AR 부모와 LLaDA에 못 미치고, 특히 NFE가 출력 길이보다 작을 때 그렇다. 추론 예산도 실제 wall-clock 지연이 아니라 네트워크 평가 횟수로 측정했으며, 각 확산 스텝이 전체 답변 블록을 처리하므로 순차 평가가 적다고 해서 속도 향상을 보장하지 않는다. 따라서 효율성 주장은 전환 학습에 대한 것이지 추론 가속에 대한 것이 아니다. 네 백본 비교는 크기, 토크나이저, 사전학습, 정렬, 어텐션 설계가 달라 통제된 아키텍처 연구가 아니고, LoRA rank를 1024로 고정해 절대 어댑터 예산도 모델마다 다르다. 그래서 Gemma의 우수성을 아키텍처, 부모 품질, 모델 크기, 학습 파라미터 수 중 무엇으로 돌릴지 분리할 수 없다. Phi-4 퍼플렉시티와 Distinct-n은 유창성·반복의 일부만 재고 사실성, 문법, 일관성을 직접 측정하지 않는다. 다른 DLM의 출판 결과는 프로토콜이 달라 별도로 비교했고 LLaDA만 같은 하네스에서 다시 돌렸다. 에너지 사용과 탄소 강도도 직접 측정하지 않았으므로 비용·환경 수치는 상대적 규모의 지표로만 봐야 한다. 또한 전환 한 번은 몇 시간이지만 모델·설정·소거·검증 실험 전체에는 수백 GPU시간이 들었다.