- Ollama는 새로운 엔진을 통해 멀티모달(텍스트+이미지) 모델 지원을 시작함
-
Llama 4 Scout와 Gemma 3 모델 등 다양한 시각 멀티모달 모델을 지원해, 이미지와 텍스트를 결합한 질문 응답이 가능해짐
- 새로운 엔진은 모델 모듈성 향상, 정확도 개선, 효율적인 메모리 관리 기능을 제공함
- 이미지 캐싱, 하드웨어 메타데이터 활용 등으로 빠른 추론 성능과 하드웨어 최적화를 이루고 있음
- 앞으로 더욱 긴 컨텍스트 지원, 툴 호출, 스트리밍 등 다양한 기능 확장이 예고됨
Ollama의 멀티모달 모델 지원
Ollama는 새로운 멀티모달 엔진 도입을 통해, 이미지와 텍스트를 복합적으로 다루는 최신 비전 멀티모달 모델들을 지원함
종합 멀티모달 이해 및 추론
Llama 4 Scout
- Ollama에서는 Llama 4 Scout(1090억 파라미터, mixture-of-experts 모델)을 지원함
- 예시로, 비디오 프레임의 위치 기반 질문을 할 수 있음
- 예) 에서 특정 건물, 환경 요소, 배경 정보 등 다양한 이미지 특징을 탐지함
- 이어서 다양한 후속 질문도 자연스럽게 이어질 수 있음
- 예) "이 건물에서 스탠포드까지 얼마나 먼가?", "어떻게 가는 것이 가장 좋은가?" 등의 질문에 정확한 정보를 제공함
- 여러 교통 수단, 경로, 예상 소요 시간 등 실제 상황에 맞는 답변 제공
Gemma 3
- Gemma 3는 여러 이미지를 동시에 입력받아, 이미지들 간의 관계를 분석할 수 있음
- 예) 4장의 이미지에서 공통적으로 등장하는 동식물, 특정 장면의 존재 여부, 특이 상황 등 다양한 조건을 빠르게 파악함
- 재미있는 상황 예시로, 라마와 돌고래가 복싱하는 모습을 보고 누가 이길지 분석, 개체의 특징과 역동성을 파악함
문서 인식 및 분석
Qwen 2.5 VL
- Qwen 2.5 VL 모델은 문자인식(OCR) 및 이미지 내 특정 텍스트 정보 추출에 활용됨
- 실제 사용 예시로, 수표의 정보를 추출하거나, 봄맞이 대련과 같은 중국어 수직 글귀를 영어로 번역하는 작업을 처리함
Ollama 멀티모달 엔진의 특징
- Ollama는 지금까지 ggml-org/llama.cpp 프로젝트에 의존하여 모델 지원을 해왔으며, 사용성 및 모델 이식성을 중심으로 개발함
- 최근 다양한 연구소에서 멀티모달 모델을 공개하며, Ollama의 목표대로 더 폭넓은 모델 지원을 위해 엔진을 자체적으로 강화함
- 새로운 엔진은 멀티모달 모델을 독립적이고 일급 객체로 취급하며, 파트너 및 커뮤니티 참여도도 높임
엔진 발전의 의미
- Ollama의 현지 추론의 신뢰성, 정확성 향상, 미래의 다양한 멀티모달 분야 지원의 기반 마련(예: 음성, 이미지 생성, 비디오 생성, 긴 컨텍스트 지원, 개선된 도구 활용 등)
모델 모듈성
- 각 모델의 “영향 범위”를 독립시켜, 신뢰성 개선 및 개발자가 새 모델을 쉽게 통합할 수 있도록 설계함
- 기존 ggml/llama.cpp는 텍스트 전용 모델만 지원, 멀티모달에서는 텍스트 디코더와 비전 인코더가 분리되어 별도 실행됨
- 이미지는 비전 알고리듬에서 임베딩 후 텍스트 모델로 전달되어야 하므로, 각 모델별 로직을 슬림하게 구현 가능하게 함
- Ollama 내에서는 모델이 자체적으로 임베딩 투영 계층, 모델 고유 훈련 체계에 맞춘 분리가 가능함
- 모델 제작자는 추가 패치나 복잡한 조건문 없이 자신의 모델과 훈련에만 집중할 수 있음
- 일부 모델 구조 예시는 Ollama의 GitHub 저장소에서 확인할 수 있음
정확성 향상
- 대형 이미지는 토큰 양이 커서 배치 사이즈를 초과할 수 있음
- 이미지가 배치를 넘을 경우 위치 정보가 무너질 수 있음
- Ollama는 이미지 처리 시, 추가 메타데이터를 부여해 정확성을 높임
- 인과적 어텐션 적용 여부, 이미지 임베딩 배치 분할 및 경계 관리 등 디테일하게 처리함
- 분할 지점이 부적절하면 출력 품질 저하 우려, 모델별 논문 기준으로 기준점을 맞춤
- 타 현지 추론 툴은 제각기 방식으로 구현하지만, Ollama는 모델 설계와 훈련 방식에 맞춘 정확한 처리로 품질을 보장함
메모리 관리 최적화
-
이미지 캐싱: 한 번 처리된 이미지는 계속 메모리에 저장되어 후속 프롬프트 처리 속도가 빨라짐. 메모리 한계에 도달하지 않는 한, 이미지는 유지됨
-
메모리 예측 및 KV 캐시 최적화: 하드웨어 제조사 및 OS 파트너와 협력하여 하드웨어 메타데이터를 정확히 인식, 메모리 사용 최적화 추구
- 펌웨어 버전별 검증 작업 수행, 새로운 기능에 대한 벤치마킹 진행
- Ollama는 causal attention을 모델 단위로 별도로 최적화하며, 그룹 수준이 아닌 개별 모델에 맞춤 설정 제공
- 예시:
- Google DeepMind의 Gemma 3: 슬라이딩 윈도우 어텐션을 통해 일부 컨텍스트 길이만 할당, 나머지 메모리는 동시 추론 등에 할당
- Meta의 Llama 4 Scout, Maverick 등: 청크드 어텐션, 2D 로터리 임베딩 등 지원, mixture-of-experts 모델의 긴 컨텍스트 지원 구현
- 어텐션 계층이 완전히 구현되지 않은 모델의 경우 ‘동작’할 수 있지만, 장기적으로 출력 품질 저하, 비정상 결과 가능성 있음
앞으로의 계획
- 더 긴 컨텍스트 길이 지원
- 추론/사고 능력 강화
- 도구 호출 및 스트리밍 응답 제공
- 컴퓨터 직접 활용 기능 확장
감사의 글
-
모델 개발에 기여한 단체 및 연구자
- Google DeepMind, Meta Llama, Alibaba Qwen, Mistral, IBM Granite 등 비전 모델 개발에 힘쓴 여러 실험실 및 커뮤니티 구성원들에게 감사함
-
GGML
- GGML 팀의 텐서 라이브러리는 Ollama의 추론 엔진을 이루는 핵심 요소임. Go에서 GGML에 직접 접근해 커스텀 추론 그래프, 복잡한 모델 아키텍처 설계에 활용 가능함
-
하드웨어 파트너사
- 다양한 장치에서의 추론 성능 향상에 협력해준 NVIDIA, AMD, Qualcomm, Intel, Microsoft 등 하드웨어 파트너들에게 감사함