상태: 초안 (2026-10-13), 미실측. 논문·기술 보고서 수치는 원문을 열어 조건과 함께 확인했습니다. 직접 해 본 것은 토큰 수를 세는 계산(
code/12_video_tokens.py)뿐이고, 영상-언어 모델을 우리 탁구 영상에 돌려 본 적은 없습니다(미실측). 실제 서비스(Gemini)의 영상 입력 조건과 느린 확인 층 설계는 TT Score 모델 해부 8편이 다룹니다. 이 편은 「학습 방식과 벤치마크」에 집중합니다. 시리즈 「비전 모델 읽기 2」 12편(마지막). 1편 CLIP의 그림 인코더가 여기서 다시 나옵니다.
목차
- 1. 직관: 눈을 언어 모델에 붙인다
- 2. 어떻게 학습시키나
- 3. 직접 해 보기: 10초 랠리의 토큰 값
- 4. 벤치마크가 보여 주는 것
- 5. 왜 약한가: 학습 방식에서 본 세 가지 이유
- 6. 한계(이 편의 주장에 대한)
- 7. 우리 프로젝트와의 연결
- 참고 문헌
1. 직관: 눈을 언어 모델에 붙인다
영상-언어 모델은 대개 이미 있는 두 부품을 잇습니다. 그림을 보는 인코더(1편의 CLIP 계열)와 글을 다루는 언어 모델입니다. 그 사이에 작은 연결 층을 두어, 그림 인코더가 낸 벡터를 언어 모델이 낱말처럼 읽을 수 있는 벡터(「그림 토큰」)로 바꿉니다. 영상은 프레임 몇 장을 뽑아 각각 그림 토큰으로 바꾼 뒤 이어 붙입니다.
학습의 손실은 언어 모델과 같습니다. 다음 낱말 맞히기입니다. 「이 영상에서 선수가 몇 번 쳤나요?」라는 질문과 그림 토큰을 넣고, 정답 문장의 낱말을 하나씩 맞히게 합니다. 이 간단한 틀 안에서 무엇을, 얼마나 촘촘히 보여 주고, 어떤 문장을 정답으로 주느냐가 모델의 능력을 정합니다.
2. 어떻게 학습시키나
LLaVA: 두 단계
LLaVA(NeurIPS 2023)가 이 계열의 기본 순서를 정했습니다(논문).
- 연결 층만 학습. 그림-설명 짝 59만 5천 개로, 그림 인코더(CLIP ViT-L/14)와 언어 모델은 얼리고 선형 연결 층 하나만 학습합니다. 1에폭, 약 4시간. 그림 토큰이 언어 모델의 낱말 공간에 「들어맞게」 만드는 단계입니다.
- 지시 따르기 학습. 질문-답 형식의 데이터 15만 8천 개로 연결 층과 언어 모델을 함께 학습합니다. 3에폭, 약 10시간. 손실은 답 부분의 낱말에만 겁니다.
두 단계 모두 데이터센터급 GPU 8장으로 했습니다. 흥미로운 점은 2단계 데이터의 출처입니다. 사람이 쓴 것이 아니라, 그림을 볼 수 없는 글 전용 모델(GPT-4)에게 그림의 캡션과 물체 상자 좌표를 글로 주고 대화·자세한 설명·추론 문답을 쓰게 했습니다. 정답 문장이 그림이 아니라 「그림에 대한 글」에서 나왔다는 뜻입니다.
영상으로 넓히기
Video-LLaVA(2023)는 영상에서 프레임 8장을 고르게 뽑아 224px 로 넣습니다. 1단계에 그림-글 55만 8천 개와 영상-글 70만 2천 개, 2단계에 그림 지시 66만 5천 개와 영상 지시 10만 개를 썼습니다(논문). 영상 몇 초가 프레임 8장으로 요약됩니다.
Qwen2.5-VL: 토큰을 줄이고 시각을 넣는다
긴 영상을 넣으려면 토큰을 아껴야 합니다. Qwen2.5-VL(2025 기술 보고서)은 이렇게 합니다.
- 그림을 14×14 화소 조각으로 나눈 뒤, 이웃 2×2 조각을 작은 MLP 로 토큰 하나로 합칩니다. 토큰 하나가 28×28 화소를 맡습니다.
- 연속한 두 프레임을 한 묶음으로 처리합니다.
- 학습 때 프레임률을 바꿔 가며 넣고(동적 FPS), 위치 인코딩의 시간 축을 실제 초에 맞춥니다. 토큰 번호의 간격이 실제 시간 간격을 반영하니, 모델이 「몇 초에」를 답할 수 있습니다.
- 평가 때 영상 하나는 최대 768프레임, 24,576토큰으로 잘랐습니다.
영상 안에서 사건 구간을 찾는 과제(Charades-STA)에서 72B 모델이 mIoU 50.9 였습니다(보고서). 「몇 초 구간」은 어느 정도 하지만, 그 단위는 초입니다.
스트리밍: 언제 말할지까지 배운다
실시간 해설은 질문이 끝나면 답하는 대화와 다릅니다. 영상이 계속 들어오고, 모델이 말할 때를 스스로 정해야 합니다.
- VideoLLM-online(CVPR 2024): 언어 모델 손실에 더해, 프레임마다 「지금은 말하지 않는다」를 맞히는 교차 엔트로피(스트리밍 EOS)를 겁니다. 1인칭 요리·작업 영상의 시간 표시된 서술(Ego4D)과, 언어 모델이 만든 대화로 학습했습니다. 2fps 입력, 논문 실험에서는 프레임당 토큰 1개(공개 모델은 10개)로 줄였고, 5분 영상을 데이터센터급 GPU 한 장에서 초당 10프레임 넘게 처리했습니다(논문).
- LiveCC(CVPR 2025): 유튜브 영상의 자동 자막을 1초 단위로 프레임(2fps)과 번갈아 끼워 넣고, 그 1초에 나온 낱말을 맞히게 했습니다. 해설자가 말하는 타이밍 자체가 정답이 됩니다. 사전학습 500만 클립, 미세조정은 음성 인식으로 다시 만든 자막 52만 6천 개 등입니다(논문).
- StreamingVLM(ICLR 2026): 무한히 이어지는 영상을 다루려고, 맨 앞 토큰 512개(주의가 모이는 「닻」)와 최근 글 토큰 512개, 최근 16초의 그림 토큰만 남기고 나머지는 버립니다. 학습은 24초짜리 구간을 12초씩 겹쳐 잘라 하고, 해설이 없는 초에는 「…」을 정답으로 둡니다. 학습 데이터는 농구·축구·아이스하키·야구·미식축구 2,449경기 4,000시간 넘는 중계였습니다. 탁구는 없습니다. 데이터센터급 GPU 한 장에서 8fps 로 돌았습니다(논문).
이 셋 모두 정답이 사람의 말(서술, 자막, 해설) 입니다. 해설자는 「멋진 포핸드!」라고는 말해도 「리시버 쪽 바운드는 41번째 프레임」이라고는 말하지 않습니다. 모델이 배울 수 있는 시간 해상도는 정답 문장의 시간 해상도를 넘기 어렵습니다.
3. 직접 해 보기: 10초 랠리의 토큰 값
code/12_video_tokens.py 로 Qwen2.5-VL 의 방식(28×28 화소가 토큰 하나, 두 프레임이 한 묶음)대로 10초 랠리에 드는 시각 토큰 수를 셌습니다(code/12_video_tokens.out.txt). 평가 상한은 영상 하나에 24,576토큰입니다.
| 해상도(묶음당 토큰) | 1fps | 2fps | 8fps | 30fps | 60fps |
|---|---|---|---|---|---|
| 448×252(144) | 720 | 1,440 | 5,760 | 21,600 | 43,200(넘침) |
| 896×504(576) | 2,880 | 5,760 | 23,040 | 86,400(넘침) | 172,800(넘침) |
| 1792×1008(2,304) | 11,520 | 23,040 | 92,160(넘침) | 345,600(넘침) | 691,200(넘침) |
그리고 그 해상도에서 공의 크기를 토큰 한 칸과 견줬습니다. 옆면에서 찍은 1080p 영상의 공 지름 중앙값 11화소(TT Score 모델 해부 2편의 실측)를 비율대로 줄였습니다.
448×252: 공 지름 2.6px = 토큰 한 칸 폭의 9%
896×504: 공 지름 5.1px = 토큰 한 칸 폭의 18%
1792×1008: 공 지름 10.3px = 토큰 한 칸 폭의 37%
맞바꿈이 보입니다. 60fps 로 모든 프레임을 넣으려면 448×252 까지 해상도를 낮춰도 상한을 넘고, 그때 공은 토큰 한 칸의 9% 입니다. 공이 보이게 해상도를 올리면 1–2fps 밖에 못 넣습니다. 바운드 하나의 접촉은 한두 프레임(60fps 에서 17–33ms)에 일어나니, 「촘촘한 시간」과 「작은 물체」를 동시에 담을 자리가 토큰 예산에 없습니다. 참고로 VideoLLM-online 공개 모델은 프레임당 10토큰(3×3 칸 + 1)으로 극단적으로 줄였습니다. 10초 2fps 에 200토큰이지만, 화면 전체를 3×3 칸으로만 봅니다.
4. 벤치마크가 보여 주는 것
TennisTV: 테니스 랠리 이해
TennisTV 는 F3Set 의 테니스 영상 1,298개로 8가지 과제 2,527문항을 만들었습니다(현재 v5 기준, 논문).
| 대상 | 평균 정확도 |
|---|---|
| 사람 | 89.2 |
| 무작위 | 27.9 |
| 가장 좋은 모델(GPT-4.1) | 45.1 |
| GPT-4o / Gemini 2.5 Pro | 44.5 / 43.9 |
| Qwen2.5-VL-7B | 38.8 |
가장 좋은 모델도 사람의 절반 수준이고, 무작위보다 17점 높을 뿐입니다. 랠리의 타구 수 세기는 사람 92.5, 가장 좋은 모델 39.8 이었습니다. 1편의 CLIP 이 「세기」에 약하다고 스스로 적었던 것과 같은 결입니다.
더 흥미로운 것은 프레임 수를 늘린 실험입니다(Qwen2.5-VL-7B, 논문).
| 입력 | 전체 | 랠리 단위 과제 | 타구 단위 과제 |
|---|---|---|---|
| 1fps | 38.1 | — | — |
| 16프레임 | 38.6 | 39.3 | 38.0 |
| 32프레임 | 38.8 | 38.8 | 38.9 |
| 64프레임 | 38.4 | 37.7 | 39.1 |
프레임을 4배로 늘려도 전체는 거의 그대로이고, 랠리 단위 과제는 오히려 떨어졌습니다. 프레임을 더 보여 준다고 해서 모델이 그것을 쓰는 법을 아는 것은 아닙니다. 학습 때 그런 정답(촘촘한 시간에 대한 문답)을 거의 보지 못했기 때문으로 해석할 수 있습니다(추정).
F3Set: 아예 비교에서 빠졌다
빠르고 촘촘한 세밀 이벤트 벤치마크 F3Set(ICLR 2025)은 GPT-4V 에 테니스 랠리의 연속 12프레임을 보여 주는 예비 시험을 했습니다. 종목·점수판·대회는 알아봤지만, 세밀한 사건과 프레임 사이의 순서(타구 방향 등)를 잡지 못해 본 실험의 비교 대상에서 뺐습니다(논문 부록). 10편의 프레임 단위 모델과 같은 표에 놓을 수준이 아니었다는 뜻입니다.
SportR: 강화 학습으로 규칙 추론
SportR(2025)은 탁구를 포함한 5종목의 그림 4,789장과 4종목의 영상 2,052개로 규칙·반칙 추론을 묻습니다. 결과가 두 갈래입니다(논문).
- 영상 반칙 분류는 가장 좋은 모델(GPT-5)도 34.39%, 그림에서 위치를 짚는 과제(IoU)는 기본 모델 4.61, 아래의 학습 뒤에도 9.94 였습니다.
- 학습 쪽에서는 희망적인 결과도 있습니다. Qwen2.5-VL-7B 를 그림만으로 짧게 지도 학습한 뒤, 정답 여부(다른 언어 모델이 채점하거나 상자 겹침)를 보상으로 하는 강화 학습(GRPO)을 했더니, 영상을 한 번도 학습하지 않았는데 영상의 반칙 찾기 정확도가 25.49% 에서 59.52% 로 올라 GPT-5(59.17%)를 넘었습니다.
규칙에 대한 추론은 학습으로 늘릴 수 있지만, 그 추론의 재료인 촘촘한 지각(공이 어디에 언제 닿았나)은 여전히 약하다는 그림입니다.
SCBench: 탁구 해설
SCBench(2024)에는 탁구 클립 719개(평균 9.96초)가 있습니다. 탁구에서 가장 좋은 모델(InternVL-Chat-2, 401억 파라미터)의 해설 점수가 10점 만점에 5.92 였습니다. 채점은 다른 언어 모델이 여섯 측면으로 했습니다(논문).
5. 왜 약한가: 학습 방식에서 본 세 가지 이유
- 정답이 말이다. 학습 데이터의 정답은 캡션, 자막, 해설, 언어 모델이 쓴 문답입니다. 사람은 바운드의 프레임 번호를 말로 하지 않습니다. 정답에 없는 시간 해상도는 배우기 어렵습니다.
- 토큰 예산이 시간과 공간을 맞바꾸게 한다. 위 계산처럼, 모든 프레임을 넣으면 공이 토큰 한 칸보다 작아지고, 공을 보이게 하면 프레임이 듬성듬성해집니다.
- 눈이 「세기」와 「세밀함」에 약하다. 많은 모델이 CLIP 계열 그림 인코더를 얼려서 씁니다. 그 인코더가 세기·세밀한 구분에 약하다는 것은 1편에서 봤습니다.
6. 한계(이 편의 주장에 대한)
- 벤치마크는 대부분 중계 영상입니다. 옆면 고정 카메라의 연습 영상에서 같은 결과가 나올지는 모릅니다.
- 모델은 빠르게 바뀝니다. 위 수치는 2025–2026년 논문 시점의 모델입니다. TennisTV 만 해도 v1 에서 v5 까지 수치가 바뀌었으니, 인용할 때는 판을 적어야 합니다.
- 우리는 어떤 영상-언어 모델도 탁구 영상에 돌려 보지 않았습니다(미실측). 이 편의 결론은 논문과 계산에 기댄 것입니다.
7. 우리 프로젝트와의 연결
- 판정에는 넣지 않는다. TT Score 의 판정(인식 → 이벤트 → 심판)에는 영상-언어 모델을 두지 않습니다. 「확인 필요」로 표시된 랠리만 랠리가 끝난 뒤 클립으로 보내 승자·상황을 다시 물어보고, 판정과 다르면 표시만 하는 느린 확인 층이 계획입니다(TT Score 8편). 실제로 호출해 본 적은 없습니다.
- 스트리밍 모델의 쓸모는 해설 쪽. StreamingVLM·LiveCC 처럼 해설을 배우는 모델은 「점수 판정」이 아니라 「하이라이트 설명」이나 「랠리 요약」에 맞습니다. 그것도 탁구 데이터로 학습한 공개 모델은 찾지 못했습니다.
- 규칙 추론은 다른 이야기. SportR 의 결과처럼 규칙에 대한 추론은 학습으로 늘릴 수 있습니다. 우리 엔진이 낸 이벤트 열(바운드·타구·네트)을 글로 바꿔 「이 순서가 규칙상 가능한가」를 묻는 쓰임은, 영상을 직접 보는 것보다 이 모델들의 강점에 맞을 수 있습니다(추정, 미실측).
티티 한마디. 영상-언어 모델은 해설자의 말로 배워요. 그런데 해설자는 「41번째 프레임에 바운드!」라고 말하지 않잖아요. 그래서 말은 잘하는데 공이 언제 떨어졌는지는 잘 몰라요. 판정은 공을 세는 엔진에게, 설명은 말 잘하는 모델에게 맡기는 게 맞는 것 같아요.
참고 문헌
- Liu et al., Visual Instruction Tuning(LLaVA), NeurIPS 2023. https://arxiv.org/abs/2304.08485
- Lin et al., Video-LLaVA: Learning United Visual Representation by Alignment Before Projection, arXiv 2023. https://arxiv.org/abs/2311.10122
- Bai et al., Qwen2.5-VL Technical Report, arXiv 2025. https://arxiv.org/abs/2502.13923
- Chen et al., VideoLLM-online: Online Video Large Language Model for Streaming Video, CVPR 2024. https://arxiv.org/abs/2406.11816
- Chen et al., LiveCC: Learning Video LLM with Streaming Speech Transcription at Scale, CVPR 2025. https://arxiv.org/abs/2504.16030
- Xu et al., StreamingVLM: Real-Time Understanding for Infinite Video Streams, ICLR 2026. https://arxiv.org/abs/2510.09608
- Bao et al., TennisTV: Do Multimodal Large Language Models Understand Tennis Rallies?, arXiv 2025(v5). https://arxiv.org/abs/2509.15602
- Liu et al., F³Set: Towards Analyzing Fast, Frequent, and Fine-grained Events from Videos, ICLR 2025. https://arxiv.org/abs/2504.08222
- Xia et al., SportR: A Benchmark for Multimodal Large Language Model Reasoning in Sports, arXiv 2025. https://arxiv.org/abs/2511.06499
- Ge et al., SCBench: A Sports Commentary Benchmark for Video LLMs, arXiv 2024. https://arxiv.org/abs/2412.17637
- 예제 코드와 출력:
code/12_video_tokens.py,code/12_video_tokens.out.txt