Ollama 멀티모달 엔진 출시

Ollama는 비전 모델을 생태계 내의 일급 시민으로 만들기 위해 설계된 새로운 멀티모달 엔진을 출시했습니다. 이번 업데이트는 로컬 추론의 신뢰성과 정확성을 향상시키고, 음성, 이미지 생성, 비디오 생성 및 확장된 도구 지원과 같은 향후 모달리티 지원을 위한 기반을 마련합니다.

지원되는 멀티모달 모델

Ollama의 새로운 엔진은 다음과 같은 여러 고성능 비전 모델의 로컬 실행을 가능하게 합니다:

  • Meta Llama 4 (109B 파라미터 Mixture-of-Experts 모델인 Llama 4 Scout 포함)
  • Google Gemma 3
  • Qwen 2.5 VL
  • Mistral Small 3.1

주요 기술적 역량

일반적인 이해 및 추론

새로운 엔진은 복잡한 시각적 추론 및 다중 이미지 분석을 지원합니다. 예를 들어, Llama 4 Scout는 비디오 프레임을 분석하여 위치(예: 샌프란시스코의 Ferry Building)를 식별하고, 다른 랜드마크까지의 거리를 계산하는 것과 같은 위치 기반 추론을 제공할 수 있습니다.

Gemma 3는 다중 이미지 입력을 지원하여, 사용자가 여러 이미지를 동시에 입력하거나 후속 프롬프트를 통해 이미지 간의 공통 요소를 식별하거나 서로 다른 시각적 대상 간의 관계를 추론할 수 있도록 합니다.

문서 스캐닝 및 OCR

Qwen 2.5 VL은 높은 정확도의 문자 인식 및 문서 스캐닝에 활용됩니다. 여기에는 세로로 쓰인 중국어 춘련(spring couplets)을 이해하고 영어로 번역하는 기능이 포함됩니다.

아키텍처 개선 사항

모델 모듈화

신뢰성을 높이고 통합을 단순화하기 위해, Ollama는 독립형 모델 아키텍처로 전환했습니다. 이전에는 ggml/llama.cpp에 의존함으로써 텍스트 디코더와 비전 인코더가 별도로 분리되어 독립적으로 실행되는 모델이었으며, 이는 오케스트레이션 레이어에서 모델별 로직이 필요함을 의미했습니다.

새로운 엔진에서는 각 모델이 완전히 독립형이며 훈련과 일치하는 자체 프로젝션 레이어를 노출합니다. 이러한 격리는 여러 파일을 패치하거나 계단식 if 문을 사용하는 필요성을 방지하여, 모델 제작자가 다른 모델의 회귀를 위험에 빠뜨리지 않고 코드를 구현할 수 있도록 합니다.

추론 정확도

Ollama는 대량의 토큰을 생성하는 대형 이미지를 처리하기 위해 메타데이터 프로세싱을 구현했습니다. 인과적 주의(causal attention)를 관리하고 이미지 임베딩을 배치로 나누는 최적의 경계를 결정함으로써, Ollama는 이미지 처리가 모델의 원래 설계 및 훈련을 따르도록 보장하며, 이미지가 잘못 분할될 때 발생하는 출력 품질 저하를 방지합니다.

메모리 관리 및 최적화

Ollama는 성능을 높이고 리소스 소비를 줄이기 위해 여러 메모리 관련 최적화를 도입했습니다:

  • 이미지 캐싱: 처리된 이미지는 후속 프롬프트를 가속화하기 위해 캐싱되며, 사용 중인 동안에는 캐시에서 유지됩니다.
  • 하드웨어 통합: Ollama는 하드웨어 제조사(NVIDIA, AMD, Qualcomm, Intel) 및 Microsoft와 협력하여 더 나은 메모리 추정을 위해 하드웨어 메타데이터를 감지합니다.
  • KV 캐시 최적화: 인과적 주의는 개별 모델 수준에서 구성됩니다. 예를 들어, Gemma 3는 컨텍스트 길이를 최적화하고 동시성을 높이기 위해 슬라이딩 윈도우 어텐션(sliding window attention)을 활용합니다.
  • Llama 4 지원: Llama 4 Scout and Maverick를 위해, Ollama는 청크형 어텐션(chunked attention), 더 긴 컨텍스트를 위한 어텐션 튜닝, 특정 2D 로터리 임베딩(2D rotary embedding), 그리고 Mixture-of-Experts (MoE) 지원을 구현했습니다.

향후 로드맵

Ollama는 다음과 같은 플랫폼의 추가 개선 사항을 개발 중입니다:

  • 더 긴 컨텍스트 크기 지원
  • 사고 및 추론 능력 통합
  • 스트리밍 응답을 포함한 도구 호출(tool calling)

Sources

관련

  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch