Gemma 4 비전 성능 최적화 방법
Gemma 4 Vision
핵심 요약
Gemma 4의 비전 토큰 설정을 조정하여 OCR 성능을 극대화하는 구체적인 가이드.
- 비전 토큰 설정 — llama.cpp에서 image-min/max-tokens를 조정해 이미지 인식률을 높임.
- 성능 최적화 — 2240 토큰 설정 시 미세한 디테일과 텍스트 인식 능력이 대폭 향상됨.
- 하드웨어 요구사항 — 높은 토큰 설정 시 VRAM 사용량이 크게 증가하므로 batch-size 조절이 필수적임.
- 모델 비교 — 설정 최적화 시 Gemma 4가 OCR 분야에서 타 모델들을 압도하는 성능을 보여줌.
Gemma 4 모델 요청 스레드에서 많은 사람들이 다음 Gemma 모델에서 더 나은 비전 기능을 원한다고 했습니다. 이는 사람들이 Gemma 4의 비전 예산을 설정하지 않고 있다는 것을 의미합니다.
Gemma 4는 가변 이미지 해상도를 지원합니다. 기본 최대 비전 예산은 280(~645K 픽셀)인데, 이는 너무 적습니다. 이 모드에서는 작은 세부 사항을 OCR로 읽어내는 데 실패합니다. 제가 보기엔 사실상 장님이나 다름없습니다.
llama.cpp에서는 --image-min-tokens와 --image-max-tokens라는 두 가지 매개변수로 Gemma 4의 비전 예산을 설정할 수 있습니다. 엔진은 이미지를 해당 범위 내에 맞추려고 시도합니다. 기본값은 각각 40과 280인 것으로 알고 있습니다. 이는 구글 측에서 설정한 Gemma 4의 기본값이지만, 너무 낮습니다.
저는 각각 560과 2240으로 실행하는 것을 좋아하며, 이렇게 하면 이미지 내의 매우 미세하고 흐릿한 세부 사항까지 포착할 수 있습니다.
왜 2240일까요? 구글의 최대값(1120)의 두 배가 아니냐고요? 제 테스트 결과, 어떤 이유에서인지 2240이 1120보다 더 잘 작동합니다. 이는 llama.cpp가 이미지를 최소 토큰과 최대 토큰 사이에 맞추려고 시도하는 구현 방식 때문이라고 생각합니다.
추가로, 선택한 --image-max-tokens 값보다 높게 --batch-size와 --ubatch-size를 설정해야 합니다. 저는 2240으로 설정할 때 4096으로 실행합니다. 이렇게 하면 VRAM을 훨씬 더 많이 소비하게 됩니다(q8_0 최대 컨텍스트 기준 기본 63GB에서 77GB로 증가).
Ollama를 사용 중이라면, 이 문제가 해결될 때까지는 아마도 답이 없을 겁니다.
하지만 그럴 가치는 충분합니다. 더 높은 비전 예산을 사용하면 Gemma 4는 비전 분야에서 거의 SOTA(최첨단) 수준이며, 특히 OCR 분야에서는 Qwen 3.5, Qwen 3.6, GLM OCR(또는 다른 무작위 OCR), Kimi K2.5 등 다른 모든 모델을 압도합니다. Kimi K2.6은 테스트해보지 않았고, 클라우드 모델은 건드릴 생각도 없습니다.

