NicoLab28/ClipProj-MiniMax-H3
Qwen3-VL 4B/8B용 투영 행렬로 MiniMax H3의 32B 인코더를 대체해 VRAM을 크게 절감
학습 방식 · 선형 투영 행렬은 ridge regression(정규화된 최소제곱)로 적합하여 입력 표준화((h - mean_in)/std_in) 후 행렬 곱으로 출력 표준화된 조건 벡터를 복원합니다. 일부 파일에는 d_in → 16384 → 5120 구조의 residual MLP가 더해지며 GELU 활성화와 마지막 레이어의 제로 초기화로 시작 시 행렬 출력을 그대로 재현하게 설계되어 있습니다. 캘리브레이션 코퍼스는 중복 제거된 8632라인(중간 길이 128단어)으로 구성되며 이름 보완용으로 인기 연예인 500명을 추가해 별도 평가를 수행했습니다.
TL;DR
이 모델은 MiniMax H3의 32B 텍스트 인코더를 대체하도록 학습된 투영 행렬과 선택적 잔차 MLP 모음을 제공하여 Qwen3-VL 4B/8B 인코더로 동일한 5120차원 conditioning을 생성하게 만듭니다. 방식은 토큰 위치별 hidden-state를 표준화한 뒤 ridge regression으로 선형 사상을 학습하고 필요시 d_in → 16384 → 5120의 residual MLP를 더해 보정을 수행하는 형태입니다. 그 결과 diffusion 모델이나 VAE, 샘플러를 바꾸지 않고도 VRAM 소요를 15.7GB에서 약 4.5GB로 줄이며 실제 비디오 생성에서 8B cele‑mlp 변형은 코사인 0.8037을 기록했습니다. 사용하려면 ComfyUI의 ComfyUI-ClipProj 노드(권장 버전 0.1.4)와 해당 크기의 Qwen3-VL 인코더가 필요합니다.
핵심 포인트
- 이 프로젝트는 MiniMax H3의 32B 텍스트 인코더를 대체하도록 학습된 투영 행렬과 선택적 잔차 네트워크를 제공하여 작은 Qwen3-VL 인코더가 동일한 5120차원 conditioning을 출력하게 만듭니다. 입력 토큰은 두 모델에서 동일한 토크나이저와 위치에 매핑되므로 위치별(hidden-state) 선형 사상으로 매핑을 학습할 수 있습니다. 선형 성분은 ridge regression으로 얻고 선택적 residual MLP만 gradient 기반으로 학습하여 행렬 자체는 에폭이나 러닝레이트 없이 적합합니다.
- 성능은 코사인 유사도로 계측되어 mlp(잔차)를 더한 변형이 일관되게 향상된 값을 보이며 최상위 조합은 mmh3-8b-ClipProj-celeb-mlp의 0.8037 코사인입니다. 일반적 생성 품질은 코사인 0.79 수준에서 DiT가 허용하는 범위였고, 짧은 프롬프트에 대해서도 토큰당 코사인이 80단어에서 0.937, 2단어에서 0.908로 급격히 악화하지 않았습니다. 제안된 매트릭스는 실제 비디오 생성 실험에서 간단한 프롬프트와 다중 컷 구조, ref2va/ref2va(참조 비디오) 등에서 32B와 유사한 출력 양상을 관찰했습니다.
- 실사용 요구사항은 ComfyUI 노드 ComfyUI-ClipProj(권장 버전 0.1.4)이며 파일을 ComfyUI/models/clip_projections/에 배치해야 합니다. 8B 행렬은 4096 입력 차원을 기대하므로 반드시 8B Qwen3-VL 인코더와 함께 써야 하고 4B 행렬은 2560 입력 차원에 맞는 4B 인코더를 사용해야 합니다. 행렬들은 같은 크기 계열 내 다양한 체크포인트 변형과 호환성이 높아서 정확히 동일한 체크포인트가 없어도 동작하지만 폭(width) 불일치는 노드가 거부합니다.
- 트레이드오프와 위험 요소로는 양자화(int8 등)가 사실(factual) 정보 회복에 손실을 유발할 수 있고 residual MLP가 분포 밖에서 선형 맵보다 더 불안정하게 동작하는 점이 있습니다. 이름(정체성) 보완을 위해 500명의 이름을 추가한 'celeb' 변형이 특정 이름 토큰 보존에 큰 개선을 가져왔으나 전체 말뭉치 일반화에는 미세한 영향만 남깁니다. 또한 음성 처리에서는 프롬프트 포맷과 샷 길이에 민감한 특성이 보고되어 프롬프트 작성 관례를 지켜야 안정적입니다.
제한사항
- 양자화는 사실 정보 손실을 유발하므로 고유명사나 세부 사실이 중요한 프롬프트에서는 bf16 등 비양자화 표현을 권장합니다. README에서 int8_convrot와 bf16을 비교한 결과 양자화에서 오류가 관찰되었고, 일반적 용도에는 괜찮지만 사실 회복성을 요구하는 작업에는 주의가 필요합니다. 따라서 배포 환경에서 양자화 적용 여부와 그 영향 범위를 사전 검증해야 합니다.
- 잔차 네트워크는 훈련 분포 밖에서 선형 맵보다 더 빠르게 붕괴하는 경향이 있어 일반화 리스크가 존재합니다. 폭(width)이 깊이(depth)보다 성능에 유리하다는 측정(한 층 16384가 두 층 8192보다 나음)이 있었지만 분포 외 입력에서 네트워크 출력이 급락하는 사례가 보고되었습니다. 실무에서는 matrix만과 mlp를 모두 시도해 실제 프롬프트에서 비교 검증하는 것이 권장됩니다.
- 정체성 인식 관련 한계는 말뭉치의 한계에서 기인하며 마스크로 정체성이 드러나는 경우엔 올바른 인물 복원이 되지 않습니다. 500명 이름 보강은 같은 영역의 다른 이름 일반화에 유의미한 개선을 주지만 모든 이름을 보장하지는 못했습니다. 또한 MiniMax H3가 요구하는 음성 태그 포맷과 샷 길이 관행을 지키지 않으면 음성 출력이 의도와 달라질 수 있으므로 프롬프트 작성 규칙을 함께 따라야 합니다.
벤치마크
| 벤치마크 | 지표 | 값 | 비교 |
|---|---|---|---|
| mmh3-8b-ClipProj-celeb-mlp 테스트 코사인 | cosine | 0.8037 | — |
| mmh3-8b-ClipProj-mlp 테스트 코사인 | cosine | 0.7970 | — |
| mmh3-4b-ClipProj-mlp 테스트 코사인 | cosine | 0.7944 | — |
| VRAM 소요 비교 | VRAM | 15.7 GB → 4.5 GB | — |
71
Likes
0
Downloads
조회수
관련 토론
아직 관련 토론이 없습니다.
댓글
댓글을 작성하려면 로그인이 필요합니다.