배경을 말씀드리자면 - 이분들입니다. Fred Zhangzhi Peng, Shuibai Zhang, Alex Tong은 AR(Autoregressive)을 diffusion(확산) 모델로 변환하는 작업을 수행했습니다 (이는 이미 이전 모델들에서 작동하고 있습니다).
https://oval-shell-31c.notion.site/Open-dLLM-Open-Diffusion-Large-Language-Model-25e03bf6136480b7a4ebe3d53be9f68a
저는 코드베이스를 포크(fork)했습니다. 코드베이스가 6개월 이상 되었기 때문에, qwen3.6을 지원하도록 업그레이드하기 위해 무료 deepseek-flash / GLM5.1을 사용하여 밤새 opencode를 통해 실행했습니다. 저는 AI가 가장 최신 논문인 LDLM https://arxiv.org/pdf/2605.07933v1을 섞어서 처리하도록 했습니다. Viacheslav Meshchaninov1, Alexander Shabalin1, Egor Chimbulatov2, Nikita Gushchin3,4, Ilya Koziev5, Alexander Korotin3,4, Dmitry Vetrov1 - 이분들은 이 논문을 구현하기 위해 3년을 보냈습니다.
https://x.com/Viacheslav91112/status/2054613430082957443?s=20
저는 AI에게 qwen 3.6 모델을 위한 설정을 구축하고 LDLM으로 업그레이드한 뒤, "정직한" 가정하에 출력값에 대한 수치를 추측해 보라고 요청했습니다. 가장 큰 변수는 시퀀스 길이(sequence length)입니다. 출력량이 많아질수록 처리량(throughput)은 떨어질 가능성이 높습니다.
추론 처리량 (Inference Throughput) (Qwen3.6 LDLM, 미학습, RTX 5090 32GB)
| 모델 (Model) | 차원 (Dim) | 학습 가능한 파라미터 (Trainable Params) | 확산 단계 (Diffusion Steps) | 처리량 (Throughput) |
|---|
| Qwen3.6-35B-A3B | 2048 | 1.39B | 10 | 3,238 tok/s |
| ... | | | | |
가정 및 주의사항 (Assumptions & Caveats)
-
학습되지 않은 가중치 (Untrained weights): 이 벤치마크는 무작위로 초기화된 Perceiver/decoder/diffusion-head 가중치를 사용합니다. 학습된 모델은 동일한 처리량 (throughput)을 갖지만 일관된 출력을 생성할 것입니다. 품질 벤치마크 (perplexity, HumanEval)는 학습이 완료된 후에 게시될 예정입니다.
-
루프 내 인코더 없음 (No encoder in the loop): 동결된 Qwen3.6 인코더는 생성 과정 중에 사용되지 않습니다 — 이는 학습 시(잠재 타겟을 생성하기 위해)에만 필요합니다. 추론 (inference) 시에는 diffusion head가 무작위 노이즈를 디노이징(denoise)하면, Perceiver decoder가 잠재 변수(latents)를 토큰으로 매핑합니다. 벤치마킹 전에는 인코더가 삭제됩니다 (del autoencoder.token_encoder).
-
시퀀스 길이 (Seq len) = 64: 벤치마크는 짧은 시퀀스 길이 (64 토큰)를 사용합니다. 더 긴 시퀀스는 처리량을 비례적으로 감소시킵니다. 4-step 처리량 수치는 10-step 측정값으로부터 선형 외삽(linear extrapolation)한 결과입니다.
-
배치 크기 (Batch size) = 1: 단일 시퀀스 생성만 수행합니다. 처리량은 35B-A3B (dim=2048이 VRAM에 쉽게 들어감)의 경우 배치 크기에 따라 거의 선형적으로 확장되지만, 27B (dim=5120)의 경우 그 정도는 아닙니다.
-
CPU RAM 요구 사항: 인코더가 추론 시에는 사용되지 않지만, 학습 중에는 시스템 RAM에 반드시 들어가야 합니다 (bf16 기준 27B는 약 54GB, 35B-A3B는 약 22GB). Qwen3.6 아키텍처는 CPU에서 실행할 수 없는 Triton 커널 (flash-linear-attention)을 사용하므로, 학습 중 인코더의 순전파 (forward pass)를 위해서는 GPU 오프로딩 (offloading)이 필요합니다 — 따라서 학습을 위해서는 멀티 GPU 설정을 권장합니다.
-
Qwen3.6은 trust_remote_code=True를 요구함: 이 모델은 표준 transformers 릴리스에 포함되지 않은 커스텀 아키텍처 코드 (Qwen3_5ForConditionalGeneration)를 사용합니다. 사용 중인 transformers 버전이 이를 지원하는지 확인하십시오 (>=4.54).
-
35B-A3B는 MoE임: 35B 파라미터 중 토큰당 3B 파라미터만 활성화되므로, 27B 밀집 (dense) 모델 (5120)보다 훨씬 작은 은닉 차원 (hidden dim, 2048)을 가집니다. 이것이 LDLM 학습 가능 구성 요소들이 5배 더 작고 4배 더 빠른 이유입니다.
-
AR 모델과의 직접적인 비교(apples-to-apples comparison)는 아님: Diffusion 모델은 N번의 Diffusion 단계(diffusion steps)에 걸쳐 모든 토큰을 병렬로 생성하는 반면, AR(Autoregressive) 모델은 한 번에 하나의 토큰을 생성합니다. "tok/s" 지표는 짧은 시퀀스에 대해서는 Diffusion 모델에 유리하지만, 학습 수렴(training convergence)에 따라 달라지는 출력 품질(output quality)을 반영하지는 않습니다.
코드는 여기에 있습니다 - git issues 활성화됨
https://github.com/scrya-com/Open-dLLM
wandb 학습 지표(training metrics)
https://wandb.ai/snoozie/Qwen3.6-35B-A3B-LDLM?nw=nwusersnoozie
혹시 남는 vast.ai 크레딧 / azure 크레딧 / google 크레딧이 있다면 저에게 지원 부탁드립니다.