
대규모 언어 모델을 Mac에서 로컬로 실행하려면 가장 먼저 부딪히는 문제가 메모리입니다. 특히 26B급 모델이라면 모델 자체의 크기 때문에 충분한 RAM이 필요하다고 생각하기 쉽습니다.
그런데 오픈소스 프로젝트인 TurboFieldfare는 다른 접근 방식을 사용합니다. 전체 약 14.3GB에 달하는 Gemma 4 26B-A4B 모델을 메모리에 전부 올리는 대신, 실행에 필요한 부분만 SSD에서 가져오는 방식으로 약 2GB의 메모리만 사용하도록 설계했습니다.
이 방식 덕분에 최소 8GB RAM을 갖춘 Apple Silicon Mac에서도 해당 모델을 로컬에서 실행할 수 있습니다. 이 글에서는 TurboFieldfare가 어떻게 메모리 사용량을 줄이는지, 토큰 생성 과정에서 어떤 방식으로 SSD와 메모리를 활용하는지, 실제 성능은 어느 정도인지, 그리고 Mac 앱과 CLI, 로컬 서버를 어떻게 활용할 수 있는지 살펴보겠습니다.
TurboFieldfare란 무엇인가
TurboFieldfare는 Gemma 4 26B-A4B를 Apple Silicon Mac에서 낮은 메모리 사용량으로 실행하기 위해 만들어진 Swift·Metal 기반 전용 런타임입니다.
핵심은 모델 전체를 RAM에 적재하지 않는 것입니다.
설치된 텍스트 전용 모델의 저장 공간은 약 14.3GB이지만, 실행 과정에서는 약 1.35GB의 공유 코어와 FP16 KV 캐시 등을 메모리에 유지하고, 토큰 생성에 필요한 routed expert의 가중치를 SSD에서 필요한 만큼 읽어옵니다.
즉, 모델의 크기와 실행 시 필요한 메모리 크기를 분리한 구조입니다.
여기서 Gemma 4 26B-A4B는 MoE 구조를 사용합니다. 전체 파라미터는 약 26B이지만 토큰당 실제로 활성화되는 파라미터는 약 3.88B입니다. TurboFieldfare는 이러한 구조를 활용해 현재 토큰 처리에 필요한 Expert만 선택적으로 가져옵니다.
결과적으로 14.3GB 모델을 저장할 공간은 필요하지만, 모델 전체를 RAM에 올릴 필요는 없는 것이 핵심입니다.
14.3GB 모델을 약 2GB 메모리로 실행하는 원리
TurboFieldfare의 메모리 절약 구조는 크게 세 가지로 볼 수 있습니다.
1. 공유 영역은 메모리에 상주시킨다
Transformer 레이어에서 계속 필요한 공유 가중치와 관련 데이터는 메모리에 유지합니다.
약 1.35GB의 공유 코어와 FP16 KV 캐시가 여기에 해당합니다.
반면 모든 Expert 가중치를 메모리에 유지하지 않습니다.
2. 필요한 Expert만 SSD에서 읽는다
MoE 모델에서는 모든 Expert가 모든 토큰 처리에 사용되는 것이 아닙니다.
TurboFieldfare는 Router가 선택한 Expert를 확인한 뒤 현재 토큰 처리에 필요한 routed expert 가중치만 SSD에서 읽습니다.
SSD에서 읽은 가중치는 Metal이 사용할 수 있는 버퍼로 전달되고, 이후 routed output과 shared output을 결합해 다음 연산을 이어갑니다.
이를 단순하게 표현하면 다음과 같습니다.
Router가 필요한 Expert 선택 → SSD에서 Expert 가중치 확인 → Metal에서 계산 → 결과 결합 → 다음 토큰 처리
이 방식은 모델 전체를 RAM에 올리는 대신, 필요한 부분만 그때그때 가져오는 방식이라고 이해하면 쉽습니다.
3. 4비트 기반 가중치 사용
가중치는 group 64 기반 MLX affine 4비트를 사용합니다.
Router는 8비트, 공유 및 routed expert는 4비트로 구성됩니다.
이를 통해 가중치 자체의 크기도 줄이면서 SSD 스트리밍 구조를 활용할 수 있도록 구성했습니다.
중요한 점은 TurboFieldfare가 단순히 MLX나 llama.cpp를 감싼 실행기가 아니라는 것입니다.
Gemma 4 26B-A4B의 구조에 맞춰 Swift 6.2와 Metal 4로 직접 구현한 전용 런타임이라는 점이 특징입니다.
토큰 하나를 생성할 때는 어떻게 동작할까
TurboFieldfare가 실제로 토큰을 생성하는 과정은 SSD와 메모리, CPU, GPU 역할을 나눠 사용하는 구조로 구성됩니다.
각 Transformer 레이어에서는 Metal이 메모리에 상주하는 가중치를 활용해 attention과 router를 계산합니다.
Router가 계산을 마치면 CPU는 선택된 상위 8개 Expert ID를 확인합니다.
이후 각 레이어에는 16슬롯 LFU 캐시가 사용됩니다.
LFU는 자주 사용되는 항목을 캐시에 남겨두는 방식입니다. 이미 캐시에 필요한 Expert가 있다면 SSD에서 다시 읽을 필요가 없습니다.
반대로 캐시에 없는 Expert라면 Cache Miss가 발생하고, 제한된 수의 병렬 pread 호출을 통해 SSD에서 데이터를 가져옵니다.
여기서 중요한 부분은 SSD에서 데이터를 읽는 동안 Metal이 가만히 기다리는 구조가 아니라는 점입니다.
SSD 읽기가 진행되는 동안 Metal은 이미 메모리에 상주하고 있는 shared-expert 분기를 계산합니다.
SSD에서 필요한 데이터가 준비되면 shared output과 routed output을 결합합니다.
결국 SSD I/O와 GPU 연산을 최대한 겹쳐 실행해 SSD 스트리밍에 따른 부담을 줄이는 구조입니다.
Prefill과 Decode도 다르게 처리한다
프롬프트를 처음 처리하는 Prefill 단계에서는 최대 128토큰 청크를 사용합니다.
한 번 가져온 Expert를 여러 행 처리에 활용할 수 있도록 하는 방식입니다.
반면 실제 텍스트를 생성하는 Decode 단계에서는 routed layer 루프를 토큰 단위로 반복합니다.
KV 캐시는 두 종류로 나뉩니다.
- 25개 sliding-window layer: 제한된 순환 저장소 사용
- 5개 full-attention layer: 선형 저장소 사용
또한 디코딩 attention에서는 정규화된 K와 V 경로를 분리한 exact split-K/V 방식을 사용합니다.
이처럼 TurboFieldfare는 단순히 모델을 작은 크기로 만드는 데 그치지 않고, 모델의 구조와 토큰 생성 과정 자체에 맞춰 메모리와 I/O를 관리하는 방식을 선택했습니다.
모델을 설치할 때도 전체 모델을 메모리에 올리지 않는다
TurboFieldfare의 특징은 실행 과정뿐 아니라 설치 과정에서도 나타납니다.
첫 실행에서 Download를 선택하면 고정된 Hugging Face revision에서 약 15GB를 범위 요청 방식으로 내려받습니다.
여기서 설치기가 원본 체크포인트 전체를 임시 파일이나 메모리에 먼저 만드는 방식을 사용하지 않는다는 점이 중요합니다.
필요한 바이트 범위를 받아 곧바로 .gturbo 레이아웃으로 재패킹합니다.
따라서 전체 shard나 tensor를 별도로 준비할 필요가 없고, 설치 과정에서 발생하는 임시 메모리 사용량도 제한할 수 있습니다.
설치가 완료되면 모델은 약 14.3GB의 저장 공간을 차지합니다.
즉, 실행 메모리는 약 2GB 수준으로 줄이지만 저장 공간까지 2GB로 줄이는 기술은 아닙니다.
이 차이를 이해하는 것이 중요합니다.
설치 과정에서는 다음과 같은 검증도 수행합니다.
- manifest 검증
- 파일 해시 검증
- 중단된 다운로드 재개
- 부분 다운로드 상태 삭제
- 모델을 실제로 로드하지 않는 설치 검증
런타임은 최종 manifest.json이 존재하는 완성된 .gturbo 디렉터리만 사용할 수 있습니다.
실제 Mac에서 어느 정도 속도가 나올까
TurboFieldfare가 흥미로운 이유는 단순히 실행에 성공하는 데 그치지 않고 실제 측정 결과도 제공한다는 점입니다.
제공된 측정값은 다음과 같습니다.
| Mac 환경 | 측정된 디코딩 성능 |
| 8GB M2 MacBook Air | 5.1~6.3 tok/s |
| 24GB M5 Pro | 31~35 tok/s |
8GB M2 MacBook Air에서도 Gemma 4 26B-A4B를 실행할 수 있다는 점이 눈에 띕니다.
다만 이 수치를 모든 환경에서 동일하게 얻을 수 있다고 봐서는 안 됩니다.
프롬프트 길이, 생성 길이, 페이지 캐시 상태, 사용하는 하드웨어에 따라 처리량이 달라질 수 있기 때문입니다.
따라서 위 수치는 성능 상한이라기보다는 제공된 환경에서 측정된 기준점으로 보는 것이 적절합니다.
특히 SSD 기반 Expert 스트리밍을 사용하기 때문에 메모리뿐 아니라 저장장치와 시스템 상태 역시 실행 성능에 영향을 줄 수 있습니다.
8GB Mac에서 실행하기 전에 확인할 점
TurboFieldfare의 검증 대상에는 8GB M2 MacBook Air가 포함되어 있지만, 실행 환경에는 몇 가지 조건이 있습니다.
요구되는 환경은 다음과 같습니다.
- Apple Silicon Mac
- macOS 26 이상
- Metal 4
- Xcode 26
- Swift 6.2 이상
- arm64 환경
- 최소 8GB RAM
이전 macOS와 Metal 버전은 지원하지 않습니다.
또한 모델 자체가 약 14.3GB의 저장 공간을 차지하므로 충분한 여유 저장 공간이 필요합니다. 최초 다운로드에는 인터넷 연결도 필요합니다.
실행 전에는 메모리를 많이 사용하는 다른 앱을 닫고 memory_pressure -Q를 이용해 여유 메모리를 확인하는 것이 권장됩니다.
앱, decode service, CLI, 서버, 테스트 또는 다른 로컬 모델 프로세스 역시 한 번에 하나만 실행해야 합니다.
Mac 앱에서 모델을 실행하는 방법
TurboFieldfare는 하나의 실행 프로그램만 제공하는 것이 아니라 여러 구성 요소를 제공합니다.
주요 구성은 다음과 같습니다.
- TurboFieldfare: 런타임과 Metal 커널을 포함한 Swift 라이브러리
- TurboFieldfareMac: 모델 설치와 생성을 위한 네이티브 Mac 앱
- TurboFieldfareDecodeService: Mac 앱이 사용하는 일회성 로컬 모델·Metal 소유 프로세스
- TurboFieldfareCLI: 명령행 instruction chat 및 raw completion
- TurboFieldfareServer: loopback OpenAI 호환 Chat Completions 서버
- TurboFieldfareRepack: 스트리밍 설치와 설치 검증 도구
Mac 앱에서는 모델을 내려받은 뒤 Load Model을 선택하고 프롬프트를 입력하면 됩니다.
상태 표시줄에서는 다음과 같은 정보를 확인할 수 있습니다.
- 진행 상황
- 디코딩 속도
- 메모리 사용량
또한 sampling, context length, expert-cache slot과 같은 런타임 옵션을 조정할 수 있습니다.
Mac 앱의 입력은 instruction으로 처리되며 Gemma의 채팅 형식이 자동으로 적용됩니다.
기본 sampling 설정은 다음과 같습니다.
- Temperature: 0.2
- Top-K: 64
- Top-P: 0.95
Temperature를 0으로 설정하면 결정론적인 greedy output을 사용할 수 있습니다.
CLI로도 실행할 수 있다
CLI에서는 instruction chat과 raw completion을 지원합니다.
Instruction chat에서는 JSON 메시지 배열을 입력하면 Mac 앱과 같은 형식으로 변환됩니다.
응답 한도를 지정하는 --max-new의 기본값은 1,024토큰입니다.
반면 --prompt는 채팅 형식을 적용하지 않는 raw completion에 사용할 수 있으며, 반복 가능한 비교에도 활용할 수 있습니다.
CLI에서 제공되는 주요 옵션은 다음과 같습니다.
- --max-context
- --temperature
- --top-k
- --top-p
- --repetition-penalty
- --seed
- 반복 가능한 --stop 문자열
생성 텍스트는 표준 출력으로 보내고 시간 통계는 표준 오류로 보냅니다. 통계 출력이 필요하지 않다면 --quiet를 사용할 수 있습니다.
OpenAI 호환 로컬 서버도 제공한다
TurboFieldfare에는 실험적인 OpenAI 호환 서버도 포함되어 있습니다.
서버는 127.0.0.1:8080/v1에서 실행되며 다음 기능을 지원합니다.
- Chat Completions
- 스트리밍
- 함수 도구 선언
- 단일 prefix 프롬프트 재사용
여기서 주의해야 할 부분이 있습니다.
서버가 모델에서 생성된 tool call을 반환할 수는 있지만, 도구 호출에 대한 승인과 실제 실행은 클라이언트가 담당합니다.
또한 원격 인증과 TLS가 지원되지 않습니다.
따라서 이 서버는 loopback 환경에만 유지해야 합니다.
Mac 앱, CLI, 서버 모두 동일한 .gturbo 모델 디렉터리를 사용하지만, 모델을 소유하는 제품은 동시에 하나만 실행해야 합니다.
현재는 텍스트 생성에 집중한다
TurboFieldfare의 현재 지원 범위는 명확합니다.
현재 모델의 입출력은 텍스트 전용입니다.
따라서 다음과 같은 멀티모달 입력은 지원하지 않습니다.
- 이미지
- 오디오
- 비디오
또한 앱과 CLI는 사용자 메시지와 모델 메시지, 선택적인 system guidance를 지원하지만 도구를 노출하거나 실행하지 않습니다.
즉, 현재 TurboFieldfare를 이미지나 음성까지 처리하는 범용 멀티모달 로컬 AI 플랫폼으로 보는 것은 적절하지 않습니다.
현재는 Apple Silicon Mac에서 Gemma 4 26B-A4B 텍스트 추론을 낮은 메모리 사용량으로 실행하는 데 초점이 맞춰져 있습니다.
TurboFieldfare의 핵심은 메모리 최적화 그 이상이다
TurboFieldfare의 구현에서 눈여겨볼 부분은 단순히 모델을 양자화했다는 점만이 아닙니다.
커스텀 Metal 커널을 통해 다음 영역을 직접 처리합니다.
- 양자화 GEMV
- Attention
- MoE
- Normalisation
- RoPE
- Sampling
- Production fusion
여기에 SSD 기반 routed-expert 스트리밍, 제한된 Expert Cache, 청크 단위 단일 프롬프트 Prefill, 토큰 단위 Decode를 결합했습니다.
또한 커널, 캐싱, 입출력, Prefill, Decode에 걸쳐 총 103개의 측정 결과를 실험 기록으로 관리합니다.
실험 문서에는 성능을 개선한 최적화뿐 아니라 효과가 없었던 아이디어와 더 강한 검증 이후 기존 결과가 뒤집힌 사례까지 포함되어 있습니다.
이런 접근은 단순한 기능 구현보다 실제 실행 과정에서 발생하는 병목을 측정하고 개선하는 과정에 초점을 맞추고 있다는 점에서 의미가 있습니다.
오픈소스 프로젝트와 라이선스
TurboFieldfare의 소스 코드와 문서는 Apache License 2.0으로 배포됩니다.
다만 모델 가중치는 저장소에 포함되지 않습니다.
설치기가 고정된 Hugging Face 체크포인트에서 가중치를 별도로 내려받으며, 가중치에는 원본 배포 조건이 계속 적용됩니다.
또한 TurboFieldfare는 Google과 제휴하거나 Google의 후원 또는 승인을 받은 프로젝트가 아닌 독립 연구 프로젝트입니다.
앞으로의 개발 방향
제공된 향후 작업에는 모바일 환경이 포함되어 있습니다.
예정된 방향은 다음과 같습니다.
- iPhone·iPad 앱 개발
- 모바일 추론 속도 측정
- 모바일 메모리 사용량 측정
- 16GB M4 Mac mini 벤치마크
- 다른 8GB Apple Silicon Mac 벤치마크
현재 Mac 환경에서 검증된 구조가 모바일 환경에서도 어떤 성능과 메모리 특성을 보여줄지는 향후 작업에서 확인할 수 있는 부분입니다.
TurboFieldfare의 가장 큰 특징은 14.3GB에 달하는 Gemma 4 26B-A4B를 약 2GB의 메모리로 실행할 수 있도록 설계했다는 점입니다.
하지만 이를 단순히 “26B 모델을 2GB로 압축했다”고 이해하면 핵심을 놓치게 됩니다.
TurboFieldfare는 모델 전체를 RAM에 올리는 대신, 약 1.35GB의 공유 코어와 FP16 KV 캐시 등을 상주시킨 뒤 토큰 처리에 필요한 routed Expert를 SSD에서 가져옵니다.
여기에 16슬롯 LFU Expert Cache와 병렬 pread, Metal 기반 연산을 결합해 SSD I/O와 GPU 연산을 효율적으로 겹쳐 처리합니다.
그 결과 8GB M2 MacBook Air에서 5.1~6.3 tok/s, 24GB M5 Pro에서 31~35 tok/s의 디코딩 성능이 측정됐습니다.
물론 모델을 설치하기 위한 약 14.3GB의 저장 공간은 필요하며, 현재는 macOS 26 이상과 Apple Silicon 환경이 요구됩니다. 이미지·음성·영상은 지원하지 않고, OpenAI 호환 서버 역시 원격 인증과 TLS를 제공하지 않는 실험적 기능이라는 제한도 있습니다.
그럼에도 TurboFieldfare가 보여주는 방향은 분명합니다.
대형 모델을 로컬에서 실행하기 위해 반드시 모델 전체를 메모리에 올려야 하는 것은 아니라는 것입니다.
MoE의 특성과 SSD 스트리밍, 캐싱, Metal 연산을 결합하면 제한적인 메모리 환경에서도 대규모 모델을 실행하는 새로운 방법을 만들 수 있습니다.
특히 8GB Apple Silicon Mac에서 26B급 모델을 직접 실행할 수 있다는 점은 로컬 AI 환경에서 메모리의 역할과 모델 실행 구조를 다시 생각하게 합니다. 향후 모바일 기기와 추가 Apple Silicon 환경에 대한 검증이 이어진다면, 제한된 메모리 환경에서 대형 AI 모델을 실행하는 방식이 어디까지 확장될 수 있을지 확인할 수 있을 것으로 보입니다.
https://github.com/drumih/turbo-fieldfare
GitHub - drumih/turbo-fieldfare: Gemma 4 26B-A4B inference in ~2 GB of RAM on any M-series MacBook
Gemma 4 26B-A4B inference in ~2 GB of RAM on any M-series MacBook - drumih/turbo-fieldfare
github.com

'인공지능' 카테고리의 다른 글
| 로컬 AI와 프론티어 모델을 함께 쓰는 NVIDIA의 ‘System of Models’ 전략 (0) | 2026.08.03 |
|---|---|
| AI First 기업은 어떻게 일하는가? 0→1보다 1→2가 중요한 이유 (0) | 2026.08.03 |
| Qwen3.8-Max 공개, 2.4조 파라미터로 코딩부터 장기 자율 작업까지 확장된 AI 모델 (0) | 2026.08.03 |
| qm, 조직 전체가 함께 사용하는 멀티플레이어 에이전트 하네스 (0) | 2026.08.03 |
| Qwen-UI-Agent, GUI와 CLI를 통합한 차세대 실세계 AI 에이전트 (0) | 2026.08.03 |