본문으로 건너뛰기

qwen3-omni-baseline-news-stt-없이-30fps-vs-05fps

news 카테고리 100 클립 을 STT(Speech-to-Text) 컨텍스트 없이 Qwen3-Omni 로 분석한 baseline. 30fps (원본) vs 0.5fps (저프레임 변환본) 두 가지로 측정 — 영상 fps 가 분석 성능에 미치는 영향 비교.


1. 실행 환경

항목
모델Qwen3-Omni-30B-A3B-Instruct
서빙vLLM (OpenAI 호환 엔드포인트, 단일 GPU)
클라이언트FastAPI 서버 (POST /analyze/by-clip-path )
동시성4 (서버 측 asyncio.Semaphore )
STT 컨텍스트없음 — prompt 의 대사 섹션 자체 제거 (baseline 측정용)
측정 일자2026-05-22

2. 데이터

  • 카테고리: news / 클립 수: 100개 × 2 fps variant
  • 각 클립 6초 → 영상 합계 600초 (10분)
  • 클립 명명: 0001_0600-0606 0100_1194-1200 (원본 영상의 절대초 인코딩)

2.1 클립 사양 (variant 별)

항목30fps (원본)0.5fps (저프레임)
해상도1280×7201280×720
Frame rate30 fps0.5 fps (2초당 1프레임)
클립당 프레임 수1803
코덱h264h264
Duration6.037 초6.037 초
클립당 사이즈1.2 MB492 KB
Bitrate1.6 Mbps0.67 Mbps

3. 처리 결과

variantokfailfail 비율
30fps9733.0%
0.5fps9911.0%

Fail 케이스는 모두 HTTP 500 Internal Server Error (vLLM 측 일시 에러). 재시도 시 보통 해결.

4. 시간 통계

4.1 30fps (원본)

측정 항목n합계 (s)평균 (ms)p50 (ms)p95 (ms)min / max (ms)
Pipeline wall (배치 전체)100191.131,911.3
Qwen 추론97690.207,115.57,171.07,985.45,268 / 9,058
Client elapsed (HTTPX)100761.737,617.37,188.58,811.25,279 / 24,139
네트워크 + 서버 오버헤드9750.09516.412.01,603.2-2,140 / 17,312

4.2 0.5fps (저프레임)

측정 항목n합계 (s)평균 (ms)p50 (ms)p95 (ms)min / max (ms)
Pipeline wall (배치 전체)10078.10781.0
Qwen 추론99294.012,969.82,910.03,470.12,429 / 3,767
Client elapsed (HTTPX)100309.573,095.72,917.03,551.12,431 / 15,023
네트워크 + 서버 오버헤드9912.86129.82.0451.9-693 / 12,142

5. 토큰 사용량

variantprompt 합계prompt avg/클립completion 합계completion avg/클립
30fps1,143,72711,79114,843153
0.5fps169,3891,71113,454136

Prompt 토큰의 대부분이 mp4 base64 인코딩 (영상 프레임 + 오디오). 0.5fps 는 영상 프레임이 1/60 로 줄어 prompt 토큰이 6.89× 압축 됨.

6. 실시간 대비 처리 속도

variant영상 합계wall-time실시간 대비
30fps600 초191 초3.14×
0.5fps600 초78 초7.69×

7. 30fps vs 0.5fps 한눈 비교

측정30fps0.5fps차이
Pipeline wall191.13s78.10s2.45× 빠름
Qwen 추론 평균7,115ms2,970ms2.40× 빠름
Qwen p957,985ms3,470ms2.30× 빠름
Prompt 토큰 avg11,7911,7116.89× 감소
Completion 토큰 avg153136-11%
실시간 대비3.14×7.69×2.45× 향상
ok/fail97/399/1안정성 ↑

8. 분석 품질 정성 비교

같은 클립 (0050 — 산업 통계 그래픽 장면) 의 두 fps 분석 결과:

30fps :

산업 현장 배경에 철강·알루미늄 원재료와 자동차·비행기 등 부품 파생상품을 보여주는 그래픽이 표시된 방송 장면이다. 오른쪽 하단에는 수화 통역사가 수화를 하고 있다.

0.5fps :

산업 현장 배경에 철강·알루미늄 원재료와 자동차·비행기 등 부품 파생상품을 시각화한 그래픽이 표시된다. 오른쪽 하단에는 손을 흔드는 남성이 보인다.

→ 핵심 그래픽·자막 내용은 두 fps 모두 정확히 묘사. 차이는 우측 하단 동적 요소 — 30fps 는 "수화 통역사가 수화를 하고 있다" 로 정확, 0.5fps 는 "손을 흔드는 남성" 으로 연속 동작의 의미를 오인 .

8.1 관찰 정리

측면30fps0.5fps
그래픽 / 자막 / 정적 시각 요소정확정확 (3프레임으로도 충분)
인물 의상 / 배경 디테일정확일부 누락
장면 전환 인식정확누락 빈도 ↑
연속 동작 (수화 등)정확 묘사단순화 또는 오인 (예: 수화 → 손짓)
환각 (없는 요소 생성)낮음약간 ↑
actions 다양성평균 더 다양현저히 적음

9. 결론

결론내용
속도0.5fps 가 2.40× 빠르고 prompt 토큰 6.89× 절감 — 비용·throughput 측면 명백한 우위
품질자막·로고·인물 위치 같은 정적 요소는 동등. 단 장면 전환·연속 동작 인식 능력 떨어짐 , 일부 환각
활용 권장자막·OCR·고정 장면 위주 (예: 자막 인식, 정적 thumbnail 생성) 에는 0.5fps 충분. 동작·장면 전환·세밀한 컷 분석엔 30fps 권장

10. 다음 단계

  • 나머지 6 카테고리 동일 조건 측정 (특히 동작 많은 baseball , lol — 0.5fps 격차 더 클 것으로 예상)
  • Fail 케이스 재시도 + 원인 분석
  • STT 컨텍스트 추가 후 동일 100 클립 재측정 → baseline 대비 품질 개선 정량 비교
  • Gemini 동일 입력 평행 측정 → 모델 간 비교

11. 재현 명령

# FastAPI 서버 기동
./script/start.sh

# 30fps 측정 (baseline)
PYTHONPATH=src uv run script/run_batch.py news news --no-script --model qwen_no_script

# 0.5fps 측정
PYTHONPATH=src uv run script/run_batch.py news news_0.5fps --no-script --model qwen_no_script_0.5fps

# 사람 보기용 markdown
PYTHONPATH=src uv run script/render_summary.py qwen_no_script news news
PYTHONPATH=src uv run script/render_summary.py qwen_no_script_0.5fps news news_0.5fps

산출물:

  • predictions/{model}/news/{source}/{clip_id}.json — 요청별 envelope
  • predictions/{model}/news/{source}/_meta.json — 시간·토큰 통계 raw
  • predictions/{model}/news/{source}/summary.md — 사람 보기용 요약