NanoFLUX 모바일용 T2I, 압축을 어디까지

 

NanoFLUX 모바일용 T2I, 압축을 어디까지
NanoFLUX 모바일용 T2I, 압축을 어디까지

“큰 모델을 모바일로”는 말은 쉬워도, 실제로는 어디를 줄여야 품질이 남는지부터가 난제입니다. NanoFLUX는 17B FLUX.1-Schnell에서 2.4B로 내려오면서, 병목을 DiT(12B)와 T5-XXL(5B)로 정확히 찍고 C1~C4 단계로 점진 압축을 설계합니다. 다만 ‘모바일 2.5초’가 어디까지 일반화되는지, 그리고 자동지표 중심의 “성능 보존”이 체감 품질을 충분히 대변하는지까지 같이 봐야 의미가 커집니다.

모바일: “2.5초”를 숫자보다 조건으로 읽어야 합니다

이 논문의 가장 큰 장점은 목표가 분명하다는 점입니다. NanoFLUX는 “모바일에서 고품질 T2I를 가능하게 하겠다”를 선언하고, 이를 위해 무거운 구성요소 두 개(12B DiT, 5B T5-XXL)에 압축을 집중합니다. 그리고 한 번에 무리하게 줄이지 않고 C1(헤드 수), C2(헤드 차원), C3(깊이/블록 병합), C4(정규화 고정)로 설계합니다. 이런 단계형 로드맵은 실무자가 “어디서 품질이 무너지는지”를 추적하기 쉬운 구조입니다. 실제로 Table 1에서 압축 단계별 One-IG/DPG/GenEval/HPSv3 점수가 크게 흔들리지 않도록 구성하고, 학생 모델은 용량이 줄수록 더 많은 스텝이 필요하다는 관찰에 따라 단계별 최적 스텝 수를 교차검증으로 정합니다(예: 12B는 4-step, 1.8B는 10-step).

다만 “모바일 2.5초”는 숫자 자체가 아니라 “측정 조건”이 핵심입니다. 논문은 Samsung S25U(Qualcomm Snapdragon 8 Elite Hexagon) 단일 디바이스에서 denoising latency를 보고합니다. Table 6 기준으로 12B(4-step) 14.00초에서, C4 1.8B(10-step) 2.75초까지 내려오고, 여기에 Progressive Token Downsampling(PTD)을 적용하면 2.40초까지 내려갑니다. 최종적으로 디코더(약 160ms)와 T5-Large(약 15ms)를 더해 end-to-end 약 2.5초라고 말합니다.

여기서 비평 포인트가 생깁니다. 이 결과는 “온디바이스 가능”을 강하게 보여주지만, 독자가 기대하는 “대부분의 폰에서”로 일반화하려면 최소 2~3개 SoC/런타임(iOS 포함)에서의 end-to-end 지연과 peak memory를 함께 제시해야 신뢰가 올라갑니다. 같은 ‘2.4B’여도 메모리 대역폭, NPU/TPU 컴파일러, 연산자 지원 여부에 따라 병목이 달라지기 때문입니다. 논문은 “가능성”을 시연했지만, 재현성의 범위는 아직 좁습니다. 따라서 블로그 글에서는 “2.5초 달성”을 강조하되, 다음처럼 조건을 붙여 독자 오해를 줄이는 편이 안전합니다.

측정은 특정 디바이스(삼성 S25U)·특정 가속기(Hexagon)·특정 해상도(512×512)·특정 스텝(10-step) 조건이라는 점입니다.

다른 SoC에서의 결과는 동일하게 나오리라 단정하기 어렵고, ‘모바일에서 가능’은 맞지만 ‘대부분의 모바일에서 동일 체감’은 추가 검증이 필요하다는 점입니다.

또 하나 중요한 지점은 “품질 비교가 무엇을 의미하는가”입니다. NanoFLUX는 One-IG 벤치마크의 5개 차원(alignment/style/diversity/text/reasoning) 중에서, 학습 데이터에 렌더링된 텍스트가 없다는 이유로 text와 reasoning 카테고리를 점수에서 제외합니다. 이는 정직한 선택이지만, 동시에 온디바이스 크리에이티브에서 중요한 “글자 생성/정확 표기(브랜드, 간판, 문구)” 약점을 평가에서 의도적으로 비워 둔 셈입니다. 즉 “점수로는 teacher급 유지”가 나오더라도, 텍스트 렌더링이나 타이포 정확성은 별도 평가 없이 강하게 말하기 어렵습니다. 이 부분은 논문이 더 강해지려면 반드시 보완되어야 하고, 블로그 글에서는 독자가 기대치를 조정하도록 안내하는 것이 좋습니다.

주장 독자가 같이 확인할 조건
모바일 2.5초 end-to-end 단일 디바이스(S25U)·512×512·10-step·특정 NPU 조건이며, 타 SoC/런타임에서 재현 데이터가 추가로 필요함
품질 보존(teacher급) One-IG에서 text/reasoning을 제외했으므로, 텍스트 렌더링/정확 표기 성능은 별도 벤치 또는 사람 평가가 필요함

요약하면, NanoFLUX의 “모바일 성과”는 충분히 인상적이지만, 숫자를 그대로 확장 해석하면 위험합니다. 이 논문이 주는 더 큰 가치는 “모바일을 목표로 할 때 어떤 병목을 어떤 순서로 줄이면 되는지”를 구체적 파이프라인으로 보여준 데에 있습니다.

Static-LN: 과감한 절단이 ‘진짜로 쓰는 부분’ 가설을 드러냅니다

사용자 비평에서 가장 날카로운 칭찬은 Static-LN(AdaLN 제거/고정)입니다. 논문은 MMDiT 구조에서 AdaLN이 매우 큰 파라미터 덩어리라고 지적합니다. Double-Stream 블록은 t와 pooled CLIP 신호로부터 6개 계수를 만들고, Single-Stream 블록은 3개 계수를 만드는데, 이 선형 프로젝션이 블록마다 d²에 비례하므로 전체에서 차지하는 비중이 커집니다. 논문은 FLUX.1-Schnell에서 정규화 관련 파라미터가 약 3.2B라고 예시로 언급합니다.

그런데 핵심은 “이게 정말 샘플별로 크게 달라져야 하는가”라는 질문입니다. 논문은 AdaLN 계수의 변동성을 측정해, 계수의 분산 대비 노름 비율이 일관되게 작다고 보고합니다(부록의 Figure 7 언급). 그리고 여기서 아주 과감한 결정을 합니다. 모든 timesteps에 대해, 소량의 calibration set에서 계산한 평균 계수를 고정해 쓰는 Static-LN으로 바꿔버립니다. 이 조치만으로 2.5B 모델에서 0.7B 파라미터를 제거해 1.8B로 줄일 수 있다고 말합니다. 게다가 “학습 없이” 성능 영향이 작다고 주장하고, Table 2에서 2~20개의 샘플만으로도 거의 비슷한 HPSv3를 얻는다고 보고합니다.

이 대목은 단순 압축 테크닉이 아니라, “모델 내부에서 무엇이 진짜로 정보를 싣는가”에 대한 강한 주장입니다. 즉, CLIP 기반 conditioning이 AdaLN 계수에서 주는 추가 정보가 제한적이며, 텍스트 인코더(T5)와 joint attention 경로가 이미 강한 조건을 제공하니 정규화 계수는 사실상 거의 상수처럼 행동한다는 가설입니다. 이런 가설은 모바일 최적화 관점에서 매우 실무적입니다. 왜냐하면 “줄여도 되는 덩어리”를 정확히 찾았기 때문입니다.

하지만 이 과감함은 동시에 검증 요구로 이어집니다. 독자가 가장 먼저 궁금해할 것은 “평균 계수로 고정했을 때 실패 모드가 어디서 터지냐”입니다. 논문은 소수 샘플로도 충분하다고 말하지만, 그 샘플이 어떤 프롬프트 분포를 대표하는지, 조명/스타일/구도/아트 스타일이 바뀌면 계수 변동이 커지는지, 특정 카테고리에서만 붕괴가 생기는지까지는 본문에서 충분히 보여주기 어렵습니다.

그래서 블로그 글에서 이 부분을 더 가치 있게 만들려면, “정확히 무엇을 추가로 보면 안전한가”를 독자 행동으로 내려주는 것이 좋습니다. 예를 들어 아래 체크리스트는 Static-LN을 실무에서 검증할 때 바로 쓸 수 있습니다.

프롬프트 다양성 스트레스 테스트가 필요합니다(짧은/긴 프롬프트, 추상/구체, 스타일 토큰 다량 포함, 사진풍/일러스트/3D 렌더).

특정 요소(손, 얼굴, 텍스처, 얇은 구조물, 반사/유리, 야간 조명)에서의 붕괴를 사람 평가로 확인하는 것이 좋습니다. 자동지표가 놓치기 쉽기 때문입니다.

“텍스트 렌더링”은 별도로 봐야 합니다. One-IG에서 text/reasoning을 제외했으므로, Static-LN이 글자 정확성에 미치는 영향은 독립적으로 검증해야 합니다.

또 한 가지, “distillation-only인데 학습비용이 크다”는 비판은 Static-LN 논의와 연결됩니다. 논문 부록은 C1 단계(12B→5B)에서 40×H100으로 275 epochs 학습을 수행했다고 명시합니다. 즉 모바일 추론을 싸게 만드는 대신, 학습/증류 비용은 상당히 큽니다. 산업 환경에서는 정당화될 수 있지만, 연구 커뮤니티 재현성 관점에서는 장벽입니다. 따라서 “distillation-only”를 ‘가벼움’으로 오해하지 않게, “추론비용을 학습비용으로 옮긴 구조”임을 글에서 분명히 해두는 편이 정직합니다.

결론적으로 Static-LN은 이 논문에서 가장 흥미로운 도박입니다. 성공한다면 “거대한 파라미터 덩어리”를 거의 공짜로 떼어낼 수 있다는 것을 보여줍니다. 그러나 과감한 만큼, 프롬프트·스타일 다양성에서의 실패 모드 분석이 추가되면 신뢰도가 급상승할 지점이기도 합니다.

토큰: 하이브리드 다운샘플링은 ‘역할 분담’이 핵심입니다

토큰 다운샘플링 파트는 “전층에 무조건 적용”하는 흔한 방식과 결이 다릅니다. 논문은 MMDiT의 joint attention이 고해상도 토큰에서 의미가 크고, 모든 층을 저해상도로 밀어버리면 디테일이 손상될 수 있다는 직관을 전면에 둡니다. 그래서 ResNet 기반 Downsampler(D)와 Upsampler(U)를 넣되, 특정 블록 구간 {B_D}만 저해상도 토큰(길이 T/4)로 처리하는 하이브리드 구조를 채택합니다. 실제로 2.5B/1.8B 모델은 DS 19개, SS 24개로 구성되고, D와 U 사이 23개 블록이 다운샘플 토큰으로 동작한다고 설명합니다.

또 하나 설계가 좋은 이유는 “언제” 다운샘플링할지를 timestep 기반으로 나눈 점입니다. 초기 diffusion timesteps는 전역 구조를 잡는 데 관여하므로 저해상도 처리가 가능하고, 후반 timesteps는 미세 디테일을 다듬어야 하니 고해상도가 필요하다는 가정을 둡니다. 그래서 임계값 t_thresh를 두고, t > t_thresh이면 D/U를 bypass해 고해상도로 처리하고, t ≤ t_thresh이면 다운샘플로 처리합니다. 논문은 t_thresh=0.5가 가장 좋은 latency–quality trade-off라고 보고합니다.

여기서 사용자 비평이 칭찬한 “바로 넣으면 불안정”을 인정하고 progressive training으로 안정화했다는 점도 중요합니다. 논문은 D/U를 한 번에 모델 깊은 곳으로 밀어 넣으면 학습이 불안정해진다고 말하고, Figure 3(c)처럼 다운샘플러를 점진적으로 더 앞 블록으로 이동시키며, 새로 연결된 블록과 D/U만 부분적으로 학습하고 나머지는 고정하는 방식으로 안정화합니다. 이 접근은 현업에서 흔히 쓰는 “리스크를 분산하는 도입 전략”과 같습니다.

다만 토큰 다운샘플링은 “지표가 비슷해 보인다”와 “사용자 체감이 유지된다”가 다를 수 있는 구간입니다. Table 3에서 PTD를 적용하면 One-IG는 거의 유지되지만 DPG/GenEval/HPSv3가 소폭 하락합니다(예: 1.8B에서 HPSv3 10.60→10.41). 이 변화가 실제로 어떤 체감 차이로 나타나는지(손/얼굴/얇은 디테일/텍스처), 그리고 어떤 프롬프트에서 더 취약한지까지는 자동지표만으로 충분히 설명되기 어렵습니다. 그러니 “토큰을 줄여도 품질이 유지된다”는 결론은, ‘대부분 유지되지만 특정 디테일 영역에서 퇴화 가능성이 있다’는 형태로 조심스럽게 쓰는 편이 안전합니다.

또한 SANA 계열과의 비교는 읽는 방식이 중요합니다. Table 4에서 NanoFLUX는 2B DiT + 330M T5-Large(10-step)로 제시되고, SANA-1.5(20-step), SANA Sprint(2-step) 등과 비교됩니다. One-IG/DPG/GenEval/HPSv3가 지표마다 유불리가 섞여 있고, 스텝 수·텍스트 인코더·총 파라미터 등이 다르기 때문에 “우위”를 단정하기는 어렵습니다. 여기서 논문이 더 강해지려면, 사용자 비평이 말한 것처럼 동일 예산(동일 latency/전력/메모리) 기준의 파레토 곡선을 제시하는 것이 가장 설득력 있습니다. 즉, “이 모델이 최고”가 아니라 “이 조건에서 이 정도 품질을 이 정도 비용으로 달성”이라는 형태가 모바일 논문에는 더 정확합니다.

마지막으로 텍스트 인코더 증류는 이 논문이 ‘모바일’을 진짜로 의식했음을 보여주는 부분입니다. FLUX 파이프라인에서 T5-XXL(5B)은 토큰 단위 임베딩을 제공해 joint attention에 직접 들어가고, CLIP은 pooled 표현으로 AdaLN에 영향을 줍니다. NanoFLUX는 T5-XXL을 330M T5-Large로 내리면서, 단순 출력 임베딩만 맞추는 대신, 디노이저의 초기 MMDiT 레이어에서 관측되는 “프롬프트 hidden state”를 맞추도록 중간 감독을 넣습니다. 그리고 처음 3개 레이어만 감독해도 충분하다고 주장합니다. 이 설계는 “이미지 토큰이 실제로 주목하는 프롬프트 표현”을 맞추려는 방향이라 타당하지만, 역시 자동지표 중심이므로 실제 프롬프트 분포(사용자 입력의 장문/다국어/오타/브랜드명)에 대한 강건성은 추가 데이터가 있으면 더 좋습니다.

정리하면, NanoFLUX의 토큰 전략은 “초반은 거칠게, 후반은 정밀하게”라는 역할 분담을 구조적으로 구현했다는 점에서 설계가 좋습니다. 다만 품질 보존을 강하게 주장하려면, 텍스트 렌더링/정확 표기와 사람 평가, 그리고 동일 예산 파레토 비교가 추가될 때 메시지가 훨씬 단단해질 것입니다.

NanoFLUX는 압축을 ‘한 방’이 아니라 단계(C1~C4)로 쪼개고, Static-LN과 하이브리드 토큰 다운샘플링으로 모바일 병목을 정확히 공략했다는 점에서 기여가 큽니다. 동시에 모바일 2.5초는 특정 하드웨어 조건에 묶여 있고, One-IG에서 텍스트 렌더링 관련 항목을 제외해 온디바이스 핵심 과제의 일부가 평가 밖으로 빠져 있습니다. 그래서 이 논문은 “대부분의 폰에서 바로 된다”가 아니라, “어디를 줄이면 되는지의 설계 지도”로 읽을 때 가장 유용합니다.

자주 묻는 질문 (FAQ)

Q. NanoFLUX의 압축이 “distillation-only”면 왜 학습비용이 크다고 하나요 A. 추론 비용을 줄이는 대신, 교사–학생 증류로 품질을 유지해야 하므로 학습 단계의 비용이 커질 수 있습니다. 논문 부록은 C1 단계에서 40×H100으로 275 epochs 학습을 수행했다고 밝힙니다. 즉 “온디바이스 추론”을 싸게 만드는 대가로 “학습/증류 비용”을 크게 지불하는 구조입니다.

Q. Static-LN은 정말 안전한가요, 프롬프트가 바뀌면 깨지지 않나요
A. 논문은 AdaLN 계수 변동성이 작다는 관찰을 근거로 평균 계수를 고정하고, 소수 샘플(2~20)로도 성능이 유지된다고 보고합니다. 다만 이것이 모든 스타일/조명/구도/장문 프롬프트에서 동일하게 유지된다고 단정하기는 어렵습니다. 실사용에서는 프롬프트 다양성 스트레스 테스트와 실패 모드(특정 조건에서 붕괴) 점검이 추가로 필요합니다.

Q. One-IG 점수가 비슷하면 체감 품질도 같다고 봐도 되나요
A. 자동지표는 유용하지만, 손/얼굴/텍스처 같은 세부 퇴화나 텍스트 렌더링 문제를 놓칠 수 있습니다. 특히 논문은 One-IG에서 text와 reasoning 카테고리를 학습 데이터 특성 때문에 제외했다고 밝혔으므로, 글자 생성/정확 표기 성능은 별도 벤치나 사람 평가로 보완하는 것이 안전합니다.

[출처]
NanoFLUX: Distillation-Driven Compression of Large Text-to-Image Generation Models for Mobile Devices (https://arxiv.org/html/2602.06879v1

댓글 쓰기

0 댓글

이 블로그 검색

신고하기

프로필