InternVL3: 네이티브 멀티모달 사전학습(Native Multimodal Pretraining)
InternVL3 이전의 모든 공개 비전-언어 모델(open Vision-Language Model; VLM)은 같은 세 단계 레시피(recipe)를 따랐습니다. 텍스트 토큰(text token) 수조 개로 학습된 텍스트 대규모 언어 모델(text LLM)을 가져와, 시각 인코더(vision encoder)를 붙인 다음, 그 연결부를 미세조정(fine-tune)하는 방식입니다. 이 방식은 동작은 하지만 정렬 부채(alignment debt)를 남깁니다. 텍스트 LLM은 사전학습 예산 전체를 순수 텍스트에 썼기 때문에 시각 토큰(visual token)을 본질적으로 이해하지 못합니다. 비전을 사후에 덧붙이면 LLM은 기존 텍스트 능력을 잊지 않으면서 시각 입력을 텍스트 추론(text reasoning)과 다시 연결하는 법을 새로 배워야 합니다. InternVL3(Zhu et al., 2025년 4월)는 이 사후(post-hoc) 접근을 거부합니다. 단 한 번의 사전학습(pretraining) 실행 안에서 첫 스텝부터 텍스트와 멀티모달 데이터를 함께 섞어 학습합니다. 그 결과 78B 규모의 공개 파라미터 모델로 MMMU-Pro에서 Gemini 2.5 Pro에 견주는 성능을 달성했습니다. 이번 레슨에서는 왜 네이티브 사전학습(native pretraining)이 필요한지, 그렇게 했을 때 무엇이 달라지는지를 함께 읽어 봅니다.
유형: Learn
언어: Python (표준 라이브러리, 학습 코퍼스 믹서(training-corpus mixer))
선수 지식: Phase 12 · 05, Phase 12 · 07 (recipes)
예상 시간: 약 120분
학습 목표
- 사후(post-hoc) VLM 학습이 왜 정렬 부채(alignment debt)를 쌓는지 설명합니다. 측정 가능한 세 가지 증상은 파국적 망각(catastrophic forgetting), 답변 표류(answer drift), 시각-텍스트 불일치(visual-text inconsistency)입니다.
- InternVL3의 네이티브 사전학습 코퍼스 혼합(corpus mix)과 텍스트 : 인터리브(interleaved) : 캡션(caption) 비율이 왜 중요한지 설명합니다.
- 가변 시각 위치 인코딩(variable visual position encoding; V2PE)을 Qwen2-VL의 M-RoPE와 비교합니다.
- 시각 해상도 라우터(Visual Resolution Router; ViR)와 디커플드 비전-언어 배포(Decoupled Vision-Language deployment; DvD) 최적화를 이름과 함께 설명합니다.
문제
사후(post-hoc) 방식의 VLM 학습은 사실상 업계 기본값입니다. LLaVA, BLIP-2, Qwen-VL, Idefics는 모두 이미 사전학습된 LLM, 예컨대 Llama, Vicuna, Qwen, Mistral을 가져와 비전 기능을 덧붙이는 식으로 만들어집니다. 학습 단계는 보통 다음과 같이 흘러갑니다.
- 고정된(frozen) LLM과 고정된 시각 인코더 위에, 학습 가능한 프로젝터(trainable projector)를 두고 캡션 쌍(caption pair)으로 학습해 임베딩(embedding)을 정렬(align)합니다.
- LLM의 고정을 풀고(unfreeze), LLaVA-Instruct, ShareGPT4V 같은 명령 학습(instruction) 데이터로 추가 학습합니다.
- 선택적으로 과제별 미세조정(task-specific fine-tune)을 수행합니다.
이때 정렬 부채는 세 가지 증상으로 모습을 드러냅니다.
- 파국적 망각(catastrophic forgetting). 사후 학습된 VLM은 순수 텍스트 능력을 잊어버립니다. GSM8K 점수가 5~10점 떨어지고 Hellaswag 점수도 함께 내려갑니다. 텍스트 전용 에이전트의 성능이 퇴행합니다.
- 답변 표류(answer drift). 같은 시각 질문을 조금만 다르게 표현해도 답이 달라집니다. 시각 인코더는 LLM 본래의 토큰보다 더 약한 결속(binding)으로 LLM에 연결되기 때문입니다.
- 시각-텍스트 불일치(visual-text inconsistency). VLM이 이미지를 올바르게 묘사해 놓고는, 그 묘사와 모순되는 답을 내놓는 일이 생깁니다. 시각 토큰이 LLM 내부의 일관성 검사에 텍스트 토큰과 동등한 방식으로 참여하지 못하기 때문입니다.
이 증상들은 이미 잘 문서화되어 있습니다. MM1.5 논문의 4장이 이를 정량화했고, LLaVA-OneVision의 절단 실험(ablation)도 동일한 경향을 암시합니다. 네이티브 사전학습은 바로 이 문제에 대한 응답입니다.
개념
네이티브 멀티모달 사전학습(Native multimodal pretraining)
InternVL3는 첫 스텝(step)부터 멀티모달이 본래 섞여 있는 코퍼스로 처음부터(scratch) 학습합니다. 혼합 비율은 다음과 같습니다.
- 40% 텍스트 전용 데이터 (FineWeb, Proof-Pile-2 등)
- 35% 인터리브 이미지-텍스트 데이터 (OBELICS, MMC4 계열)
- 20% 이미지-캡션 쌍 데이터
- 5% 비디오-텍스트 데이터
시각 토큰, 텍스트 토큰, 그리고 모달리티 간 상호작용(cross-modal interaction)이 첫 그래디언트 스텝(gradient step)부터 동일한 손실(loss)에 함께 참여합니다. 별도의 정렬 사전학습 단계도 없고, 프로젝터(projector)를 고정해 두는 단계도 없으며, 나중에 복구해야 할 파국적 망각도 없습니다.
베이스 모델(base model)은 단일 단계(single stage)로 학습됩니다. 그 뒤에 명령 튜닝(instruction tuning)이 이어지긴 하지만, 베이스 모델은 이미 시각 토큰을 일급 시민(first-class citizen)으로 이해하고 있습니다.
V2PE (variable visual position encoding)
Qwen2-VL은 축 할당(axis allocation)이 고정된 M-RoPE를 사용합니다. InternVL3는 그 대신 V2PE를 도입합니다. V2PE는 텍스트, 이미지, 비디오와 같은 모달리티 유형(modality type)에 따라 위치 인코딩(position encoding)이 달라지고, 학습 가능한 스케일링(learnable scaling)을 가집니다. 실제 동작은 다음과 같습니다.
- 텍스트 토큰은 1차원 위치(text index)를 부여받습니다.
- 이미지 패치(image patch)는 2차원 위치(row, col)를 부여받습니다.
- 비디오 프레임(video frame)은 3차원 위치(time, row, col)를 부여받습니다.
세 모달리티는 같은 RoPE 주파수 베이스(frequency base)를 공유하지만, 대역(band)별 은닉 차원(hidden-dim) 할당은 고정된 분할(split)이 아니라 학습된 파라미터(learned parameter)입니다. 덕분에 사전학습 중에 시간 방향(temporal)과 공간 방향(spatial)의 주파수 해상도 균형을 학습으로 배울 수 있습니다.
V2PE의 절단 실험 결과는 동일 연산량(compute) 기준으로 M-RoPE 대비 비디오 벤치마크에서 1~2점 향상이라고 보고합니다. 혁명적이라기보다 더 깔끔한 설계입니다.
시각 해상도 라우터(Visual Resolution Router; ViR)
ViR은 배포 시(deployment) 최적화입니다. 모든 이미지가 풀 해상도(full-resolution) 인코딩을 필요로 하지는 않습니다. 디테일이 거의 없는 객체 하나만 담긴 사진을 1280px 네이티브로 인코딩하면 토큰을 낭비하게 됩니다. ViR은 인코딩에 들어가기 전에, 질문에 답하는 데 필요한 최소 해상도를 미리 예측하는 작은 분류기(classifier)입니다.
라우팅은 세 단계(tier)로 이루어집니다. 저해상도(low-res, 256 토큰), 중해상도(medium, 576 토큰), 고해상도(high, 2048+ 토큰)입니다. 실서비스 트래픽(production traffic)의 약 60%는 저해상도나 중해상도로 충분합니다. 결과적으로 같은 품질에서 처리량(throughput)이 2~3배 늘어납니다.
디커플드 비전-언어 배포(Decoupled Vision-Language deployment; DvD)
큰 VLM을 서빙(serve)할 때, 시각 인코더는 이미지 한 장당 한 번만 돌지만 LLM은 출력 토큰마다 자기회귀(autoregressive)로 반복 실행됩니다. 두 컴포넌트의 병목(bottleneck)은 서로 다릅니다. 비전 쪽은 합성곱(convolution)과 어텐션(attention)에서 GPU 메모리 대역폭이 병목이고, LLM 쪽은 KV 캐시(KV cache)가 병목입니다. DvD는 둘을 서로 다른 GPU에 분리해 두고 그 사이를 스트리밍(streaming)으로 연결합니다.
8B LLM과 400M 인코더 조합의 모델에서 DvD를 적용하면, 한 노드에서 두 컴포넌트를 함께 띄운(co-located) 방식 대비 노드당 처리량이 대략 두 배 가까이 늘어납니다.
단일 단계(single-stage) vs 다단계(multi-stage) 품질
InternVL3가 내건 주요 벤치마크 주장은 다음과 같습니다. 78B 파라미터(parameter) 모델은 MMMU-Pro에서 Gemini 2.5 Pro와 맞먹고, 38B 모델은 GPT-4o와 맞먹으며, 8B 모델은 8B 규모의 공개 모델 리더보드(open-8B leaderboard)에서 1위를 기록합니다. 모두 단일 단계 사전학습 + 명령 튜닝(single-stage pretrain + instruction-tune) 레시피만으로 얻은 결과입니다.
정렬 부채 가설은 측정 가능합니다. InternVL3-8B는 비전 벤치마크 향상 한 단위당 잃는 텍스트 벤치마크(MMLU, GSM8K) 점수가 Qwen2.5-VL-7B보다 적습니다. 모델이 더 만능형(generalist)에 가까운데, 이는 학습이 두 조각이 아니라 한 덩어리였기 때문입니다.
InternVL3.5와 InternVL-U
InternVL3.5(2025년 8월)는 같은 레시피를 더 큰 규모로 확장(scale)한 모델입니다. 동일한 네이티브 사전학습 접근에 더 많은 데이터, 더 많은 파라미터를 얹습니다. MMMU 개선폭은 점진적(incremental)입니다.
InternVL-U(2026)는 통합 생성(unified generation)을 추가합니다. 같은 백본(backbone) 위에 MMDiT 헤드(head)를 얹어 이미지 출력까지 만들어 냅니다. "U"는 "이해(Understanding) + 생성(generation)"을 뜻하며, Transfusion 계열의 통합 모델(unified model, Lesson 12.13)을 추격합니다. 동일한 네이티브 사전학습 백본이 이해 헤드와 생성 헤드를 모두 지원합니다.
네이티브 사전학습의 트레이드오프
네이티브 사전학습은 공짜가 아닙니다.
- 연산량(Compute). 새 VLM을 처음부터 학습하는 비용은 텍스트 LLM을 학습하는 비용과 같은 자릿수입니다. 수백만 GPU-시간(GPU-hour)이 필요합니다. 반면 사후 적응(post-hoc adaptation)은 기존 LLM 가중치(weight)를 재사용하기 때문에 비용 대부분을 아낄 수 있습니다.
- 데이터. 대규모 인터리브 이미지-텍스트 코퍼스는 흔치 않습니다. OBELICS는 약 1억 4,100만 문서, MMC4는 약 5억 7,100만 문서 규모입니다. 텍스트 전용 데이터가 15T(조) 토큰 단위로 풀려 있는 것과 비교하면, 멀티모달 사전학습용 데이터 부족(data scarcity)은 매우 강한 제약입니다.
- 베이스 LLM 재사용(Base-LLM reuse). 네이티브 사전학습은 나중에 새 LLM을 끼워 넣는(drop-in) 선택지를 포기합니다. 반면 사후 방식은 어댑터(adapter)만 다시 학습하면 Llama-3.1을 Llama-4로 갈아 끼울 수 있습니다.
InternVL3의 베팅은 분명합니다. 정렬 부채가 재사용 가능성을 잃는 손실보다 더 나쁘다는 것입니다. 벤치마크가 이 주장을 뒷받침합니다. 다만 생산 비용이 너무 크기 때문에 다른 연구실들이 같은 방식을 손쉽게 복제하기는 어렵습니다. 사후 방식의 VLM은 대부분의 프로젝트에서 여전히 더 싸기 때문에 앞으로도 계속 살아남을 것입니다.
사용해보기
code/main.py는 학습 코퍼스 믹서(training-corpus mixer)와 ViR 라우터 시뮬레이터(simulator)입니다. 다음을 수행합니다.
- 목표 코퍼스 혼합 비율(%text, %interleaved, %caption, %video)을 입력으로 받아, 모달리티별 기대 학습 스텝(expected step) 수를 계산합니다.
- 쿼리 배치(분포: 저디테일 50%, 중간 30%, 고디테일 20%)에 대해 ViR 라우팅을 시뮬레이션하고 요청당 평균 토큰 수(average token count)를 보고합니다.
- 시각 인코더 FLOPs와 LLM FLOPs가 주어졌을 때 DvD 처리량 추정치를 보고합니다.
- 사후 사전학습과 네이티브 사전학습을 파라미터, 연산량, 데이터, 예상 정렬 부채 증상 기준으로 나란히 비교 출력합니다.
산출물 만들기
이번 레슨은 outputs/skill-native-vs-posthoc-auditor.md를 산출물로 만듭니다. 제안된 VLM 학습 계획이 주어졌을 때, 네이티브와 사후 중 어느 쪽이 적합한지 감사(audit)하고, 정렬 부채 위험을 표시하며, 코퍼스 혼합 비율을 추천합니다. 새 공개 VLM 프로젝트의 학습 전략을 결정해야 할 때 사용합니다.
연습문제
-
쉬움 — InternVL3-8B(네이티브 사전학습)와 LLaVA-OneVision-7B(사후 학습) 사이의 연산량 차이를 추정해 봅니다. GPU-시간 비율은 대략 얼마입니까? 그 격차를 무엇이 설명합니까?
-
중간 — InternVL3는 40% 텍스트 / 35% 인터리브 / 20% 캡션 / 5% 비디오 비율을 보고합니다. 만약 목표 과제가 비디오 중심이라면, 새 비율을 제안하고 그래도 베이스 모델에 충분한 텍스트와 캡션 데이터가 여전히 필요한 이유를 논해 봅니다.
-
중간 — MM1.5 논문의 4장(망각 관련)을 읽어 봅니다. 사후 학습에서 가장 큰 퇴행을 보인 벤치마크의 정확한 이름은 무엇입니까? 그 퇴행의 비용은 어느 정도였습니까?
-
어려움 — ViR은 트래픽의 60%를 저해상도 인코딩으로 보냅니다. 어떤 종류의 쿼리에서 잘못된 라우팅(misroute), 즉 고해상도가 필요한데도 저해상도로 보내지는 경우가 생길까요? 라우터 실패 모드(failure mode) 세 가지를 제안해 봅니다.
-
어려움 — DvD는 비전과 LLM을 서로 다른 GPU에 나눕니다. 어떤 트래픽 패턴에서는 DvD가 처리량을 높이기는커녕 오히려 낮출 수 있을까요?
핵심 용어
| 용어 | 흔한 설명 | 실제 의미 |
|---|
| 네이티브 멀티모달 사전학습(Native multimodal pretraining) | "처음부터 함께 학습한다" | 텍스트, 이미지, 비디오 토큰이 나중에 덧붙는 것이 아니라 1번 스텝부터 동일한 손실 함수에 함께 참여하는 학습 방식이다. |
| 정렬 부채(Alignment debt) | "사후 학습 페널티" | 고정된 LLM에 비전을 붙이면서 누적되는, 텍스트 능력과 답변 일관성의 측정 가능한 퇴행이다. |
| V2PE | "가변 시각 위치 인코딩" | 모달리티별로 학습 가능한 위치 인코딩 할당을 두는 InternVL3의 M-RoPE 후속 설계이다. |
| ViR | "해상도 라우터" | 인코딩 전에 쿼리별 최소 해상도를 골라 추론 토큰을 절약하는 작은 분류기이다. |
| DvD | "디커플드 배포" | 시각 인코더와 LLM을 서로 다른 GPU에 두고 스트림(stream)으로 넘겨주는 배포 방식이다. 큰 VLM에서 처리량을 끌어올린다. |
| InternVL-U | "이해 + 생성 통합" | 네이티브 사전학습 백본에 이미지 생성 헤드를 추가한 2026년 후속 모델이다. |
| 인터리브 코퍼스(Interleaved corpus) | "OBELICS / MMC4" | 텍스트와 이미지가 자연스러운 읽기 순서(reading order)로 섞여 있는 문서로, 네이티브 사전학습의 원재료가 된다. |
더 읽을거리