Apple Silicon을 위한 Ollama MLX 엔진 업데이트

Ollama는 Apple의 통합 메모리와 Metal 기반 MLX 프레임워크를 활용하여 Apple Silicon에서 더 높은 성능을 제공하도록 MLX 엔진을 업데이트했습니다. 이러한 업데이트를 통해 더 높은 품질의 응답, 향상된 출력 속도 및 메모리 사용량 감소를 가져옵니다.

NVFP4 지원을 통한 더 높은 품질의 추론

Ollama의 MLX 엔진은 이제 NVIDIA의 모델 최적화 NVFP4 형식을 지원합니다. 이 4비트 양자화 형식은 모델 가중치의 로컬 동적 범위를 더 밀접하게 추적함으로써 다른 4비트 형식에 비해 품질 손실을 줄입니다.

Gemma 4 12B 모델의 경우, NVFP4는 q4_K_M 양자화 형식과 비교했을 때 양자화되지 않은 BF16 가중치 대비 품질 손실(perplexity로 측정됨)을 대략 절반으로 줄입니다. 또한, 이 지원을 통해 데이터센터와 데스크톱 간의 이식성을 확보할 수 있습니다. 데이터센터 배포용으로 최적화된 모델을 이제 MLX 엔진을 통해 가져오고 실행할 수 있기 때문입니다.

향상된 출력 성능

업데이트된 MLX 엔진은 출력 속도를 최대 20%까지 향상시킵니다. 이 성능 향상은 두 가지 주요 기술적 최적화 작업을 통해 달성되었습니다:

  1. Kernel Fusion: MLX의 JIT(just-in-time) 컴파일러 기능을 사용하여 여러 연산을 단일 Metal 커널로 융합했습니다.
  2. Sampling Efficiency: Ollama는 GPU 기반 샘플링이 더 효율적으로 작동하도록 재설계했습니다.

벤치마크 결과에 따르면, 8,300개 토큰의 입력 프롬프트로 10회 실행한 평균 출력 속도를 기준으로, NVFP4는 업데이트된 엔진에서 q4_K_M보다 약 20% 더 빠르게 토큰을 생성합니다.

State Snapshots를 통한 에이전트 워크플로우 최적화

도구 호출 및 반복적인 트랜스크립트가 모델로 하여금 동일한 문맥맥을 수십 번 재처리하게 만드는 에이전트 워크로드의 프롬프트 처리 오버헤드를 해결하기 위해, Ollama는 스냅샷 시스템을 도입했습니다. 이 시스템은 중복 처리를 피하기 위해 주요 지점에서 모델 상태를 저장합니다.

스냅샷 시스템의 활용 사례

  • Multiple Agents: 에이전트가 하위 에이전트에게 작업을 넘기거나 여러 동시 세션을 실행할 때, 각 세션은 저장된 자신의 상태에서 재개됩니다. 시스템 프롬프트 및 도구 정의와 같은 공통 문맥은 한 번만 처리됩니다.
  • Thinking Models: 나중에 히스토리에서 삭제될 토큰을 생성하는 추론 모델의 경우, 응답이 시작되기 직전에 찍은 스냅샷을 통해 다음 턴이 전체 대화를 재처리하지 않고도 재개될 수 있습니다.
  • Branching and Retries: 사용자가 응답을 재생성하거나 다른 후속 경로를 선택할 때, 엔진은 전체 히스토리를 재처리하는 대신 대화가 갈라진 스냅샷 지점에서 재개됩니다.

기술적 구현

Sliding-window attention과 순환 레이어는 되돌릴 수 없는 상태를 보유하므로, Ollama는 대화가 갈라지는 지점, 긴 프롬프트의 중간 간격, 그리고 각 응답 직전에 상태를 선택적으로 그리고 점진적으로 저장합니다. 이러한 선택적 접근 방식은 모델의 메모리를 보존하면서 응답성을 보장합니다.

구현 및 사용법

사용자는 최신 버전의 Ollama를 다운로드하고 MLX 최적화 모델을 실행함으로써 이러한 개선 사항을 이용할 수 있습니다. 예를 들어, Gemma 4 12B를 MLX 엔진으로 실행하려면:

ollama run gemma4:12b-mlx

코딩 에이전트로 통합하려면 ollama launch 명령어를 사용합니다:

ollama launch pi --model gemma4:12b-mlx

Sources

관련