사기 전에 속도와 비용부터

모델별 실행 레시피

Gemma 4 26B-A4B 서빙 설정: 24GB~32GB Q4와 BF16 서버

Gemma 4 26B-A4B의 활성 규모는 작지만 모델 전체는 메모리에 있어야 합니다. 24GB급 장비에서 기대보다 느리다면 계산 설정보다 먼저 어디에 가중치가 올라갔는지 봐야 합니다. Q4 적재부터 확인한 뒤 문맥과 생성 속도를 조정해보겠습니다.

실행 레시피

장비별 설정

한 사람이 사용할 때

사용할 장비를 고르면 실행 명령과 조정할 옵션이 나옵니다.

가용 메모리: 56GB / 대역폭: 307GB/s

운용 프로필

Apple MacBook Pro M5 Pro (64GB)

메모리 적정

권장 런타임: LM Studio (MLX 4비트 (GGUF Q4_K_M과 별도 형식)) · 문서화된 런타임 설정

설치 직후 처음 실행하거나 매일 안정적으로 사용할 때

선택 프로필 문맥

16,384 토큰

런타임 문서 기반MBP M5 Pro 64GB · Q4 · 요청 1개

런타임 문서에 따른 시작 설정입니다. 아래 순서로 조정하며 속도를 비교하세요.

계산기 예상 디코드

26.9 ~ 65.4 tok/s

단일 사용자 예상치

계산기 예상 TTFT

8.8 ~ 21.5초

프리필: 765 ~ 1,861 tok/s

예상 메모리 점유

16.34GB / 56GB

남은 여유: 약 39.7GB

서버 주소

http://127.0.0.1:1234

로컬 전용 127.0.0.1

예상치는 계산기의 추천 양자화·가속과 16,384토큰 기준입니다. 위 실행 설정의 실측값은 아닙니다.

이 프로필의 실제 설정

적용값왜 이렇게 잡았나
가중치MLX 4비트 (GGUF Q4_K_M과 별도 형식)MLX 모델 디렉터리를 사용합니다. GGUF의 Q4_K_M과 같은 파일 형식이 아닙니다.
입력 길이 확인16,384lms load의 context-length와 실제 로드 결과를 함께 확인합니다.
KV 캐시모델 설정에서 확인이 실행 명령은 KV 캐시 정밀도를 지정하지 않습니다.
프리필 배치런타임 설정에서 확인llama.cpp의 batch-size와 ubatch-size를 MLX 설정값으로 대신 쓰지 않습니다.
동시 요청1한 요청의 속도를 확인합니다. 여러 요청의 합산 처리량과 구분합니다.
메모리 여유2GB 이상모델을 불러온 뒤 실제 메모리와 스왑 여부를 확인합니다.

MBP M5 Pro 64GB 실행 명령어 (LM Studio)

LM Studio MLX 엔진 · 로컬 MLX 4비트 모델
# lms ls에서 확인한 MLX 4비트 모델 식별자를 입력
MODEL_ID=""
lms ls
: "${MODEL_ID:?MLX 모델 식별자를 입력하세요}"
lms load "$MODEL_ID" --gpu=max --context-length=16384
lms server start --port 1234
먼저 이 설정으로 기준 속도를 기록한 뒤 아래 튜닝 순서를 따라 한 항목씩 바꿉니다.

실행 후 확인

  1. 01서버 시작 로그에서 모델 적재 완료와 실제 컨텍스트 길이를 확인합니다.
  2. 02준비 실행 뒤 요청은 하나씩 보냅니다. 길이가 같은 서로 다른 입력 세 개로 첫 입력 처리 시간을 기록합니다.
  3. 03같은 입력을 반복한 결과는 캐시 재사용으로 따로 기록합니다. 첫 입력 결과와 합치지 않습니다.
  4. 04프리필 tok/s, 디코드 tok/s, 피크 메모리를 함께 기록한 뒤 한 항목씩만 바꿉니다.

바뀌는 점

  • 문맥과 동시 요청을 보수적으로 잡아 장비의 최대 처리량보다 낮게 나올 수 있습니다.

한 항목씩 조정

속도를 올리는 순서

여러 값을 한꺼번에 바꾸면 원인을 찾기 어렵습니다.

  1. STEP 1

    기준값 저장

    첫 입력과 캐시 재사용을 구분하고 각각 세 번 기록합니다. 프리필·디코드·피크 메모리를 함께 비교합니다.

    멈출 때: 오류가 있거나 메모리 여유가 2GB보다 작으면 다음 단계로 넘어가지 않습니다.

  2. STEP 2

    프리필 청크 조정

    1,024 → 2,048 → 4,096 순서로 올리며 긴 입력의 TTFT와 피크 메모리를 비교합니다.

    멈출 때: TTFT가 줄지 않거나 메모리 정점이 급증하면 직전 값으로 돌아갑니다.

  3. STEP 3

    KV 캐시 조정

    문맥이 부족할 때만 F16/BF16 기준값과 Q8 캐시를 같은 질문으로 비교합니다.

    멈출 때: 출력 차이가 생기거나 필요한 문맥이 이미 확보됐다면 기본 정밀도를 유지합니다.

  4. STEP 4

    MTP·투기 디코딩

    지원 모델에서만 켠 뒤 코드와 일반 문장을 나눠 수락률과 실제 디코드 tok/s를 측정합니다.

    멈출 때: 세 번의 중앙값이 기준보다 좋아지지 않으면 끕니다.

  5. STEP 5

    문맥 확장

    실제로 필요한 길이까지 두 배씩 늘리고 중간 정보 검색과 스왑 여부를 확인합니다.

    멈출 때: 검색 정확도가 떨어지거나 스왑·메모리 압축이 시작되면 한 단계 줄입니다.

내 장비 측정 기록 보내기

같은 조건으로 3회 이상 측정한 JSON을 가져오세요. 전송 버튼을 누르기 전에는 이 브라우저에서만 확인합니다.

장비·모델·실행 조건과 측정값만 받습니다. 질문·답변·원본 로그·파일 경로는 넣지 마세요.

기록 파일이 없다면, 실행 중인 로컬 서버에서 측정 도구로 만들 수 있습니다. Node.js 20 이상이 필요하며 결과를 자동 전송하지 않습니다.

검토한 이용자 제출 기록입니다. 이 사이트의 직접 측정과는 구분합니다.

설정 오류 제보

선택한 설정에서 막힌 부분을 알려주세요. 제보는 관리자만 확인합니다.

전송할 설정 · MBP M5 Pro 64GB · Gemma 4 26B-A4B (MoE) · 균형 설정

활성 숫자와 내려받을 파일을 나눕니다

이 모델은 약 25.2B 전체 중 토큰당 약 3.8B가 활성화되는 MoE입니다. 활성 부분만 받아 실행하는 것이 아니므로 전체 변환본의 크기를 확인합니다. 24GB VRAM이나 큰 통합 메모리에서도 캐시와 앱 몫을 남겨야 합니다.

공식 BF16 체크포인트와 Q4 데스크톱 경로는 다릅니다. 공식 google/gemma-4-26B-A4B-it 예시는 더 큰 메모리의 NVIDIA 서버용입니다. Q4로 들어간 장비에서 공식 모델 ID만 바꿔 같은 용량을 기대하지 마세요.

MoE를 지원하는 앱이어도 새 모델 구조와 양자화의 지원은 별도입니다. 먼저 파일의 권장 런타임을 확인하고 모델을 정상적으로 불러오는 것부터 시작합니다.

활성 숫자와 내려받을 파일을 나눕니다
활성 숫자와 내려받을 파일을 나눕니다

문맥 8K와 요청 한 개를 출발점으로

LM Studio의 실제 식별자를 확인해 아래 예시를 맞춥니다. 8K에서도 공간이 부족하다면 길이를 낮춰 적재부터 확인합니다. 가장 큰 문맥을 켜야 모델의 성능을 모두 쓴다는 뜻은 아닙니다.

LM Studio는 이 예시에서 1234, vLLM은 8000 포트를 사용합니다. 주소와 모델 이름을 같은 경로로 맞추세요. 로컬 전용 접근 설정을 확인하고 외부에 제공할 계획이면 인증과 네트워크 제한을 별도로 준비합니다.

실제 GPU 점유와 CPU에 남은 부분을 확인합니다. 가중치가 일부 넘어갔다면 낮은 활성 계산량이 있어도 전송 때문에 생성이 느릴 수 있습니다. 이 상태를 정상 GPU 적재 결과와 같은 조건으로 비교하지 마세요.

LM Studio CLI 로컬 서빙 (24GB~32GB 데스크톱)
# 1. 로컬 모델 식별자 확인
lms ls

# 2. 호환 변환본을 8K 문맥으로 로드
lms load <gemma-26b-a4b-identifier> --gpu=max --context-length=8192

# 3. 로컬 서버 시작
lms server start --port 1234
24GB GPU 또는 Mac 36GB+ 환경에서 127.0.0.1 로컬 데몬을 실행합니다.
공식 vLLM MoE 서빙 (고용량 NVIDIA)
vllm serve google/gemma-4-26B-A4B-it   --host 127.0.0.1   --port 8000   --max-model-len 8192   --gpu-memory-utilization 0.90
공식 instruction 체크포인트는 Q4 데스크톱 경로보다 많은 메모리가 필요합니다.

밀집 모델과 비교할 때도 작업을 맞춥니다

짧은 질문이 정상적으로 끝나면 평소 문서를 넣어봅니다. 준비 실행 뒤 세 번의 중앙값을 기록하되, 처음 읽는 문서와 입력 캐시를 재사용한 요청은 나눠 남기세요. 첫 토큰 시간과 디코드도 구분합니다. 토큰 수와 양자화가 다른 결과를 장비 성능 차이로 읽지 않는 것이 중요합니다.

Dense 모델보다 빠를 수는 있지만 항상 그렇지는 않습니다. MoE 커널과 메모리 접근, 캐시 조건의 영향을 받습니다. 평균 활성 수치 하나로 실제 속도를 역산하지 말고 런타임의 실행 결과를 사용하세요.

빠른 답변에서 중요한 조건이 빠지지 않았는지도 봅니다. 반복해서 쓸 질문 몇 개의 정답 확인이 최고 tok/s 하나보다 모델 선택에 도움이 됩니다.

OpenAI 호환 챗 완성 호출 테스트
curl -N http://127.0.0.1:1234/v1/chat/completions   -H "Content-Type: application/json"   -d '{
    "model": "<gemma-26b-a4b-identifier>",
    "messages": [
      {"role": "user", "content": "MoE 아키텍처의 장점을 짧게 정리해줘."}
    ],
    "max_tokens": 512,
    "stream": true
  }'
127.0.0.1 로컬 엔드포인트의 응답 지연과 생성 속도를 측정합니다.
밀집 모델과 비교할 때도 작업을 맞춥니다
밀집 모델과 비교할 때도 작업을 맞춥니다

문맥을 늘리다가 느려졌다면

모델 본체는 그대로라도 KV 캐시와 임시 공간이 늘어날 수 있습니다. 동시 요청을 한 개로 두고 8K에서 필요한 길이까지 단계적으로 올리세요. 갑자기 느려지면 스왑과 메모리 압박, CPU 오프로드 여부를 먼저 확인합니다.

지원되는 캐시 압축을 시험하더라도 가중치 정밀도와 동시에 바꾸지 마세요. 어느 변경이 품질이나 속도에 영향을 줬는지 알아야 합니다. 문제가 생기면 직전에 정상적으로 동작한 길이로 돌아가 비교합니다.

상위 메모리의 가치는 한 번 모델을 켜는 데서 끝나지 않습니다. 평소 긴 입력과 다른 앱을 함께 써도 공간이 남는지까지 확인할 때 내게 필요한 옵션인지 판단할 수 있습니다.

26B를 고른 이유로 돌아갑니다

12B보다 더 좋은 결과가 필요한 질문이 있었는지, 그 차이를 이 모델에서 실제로 얻었는지 봅니다. 차이가 없다면 작은 모델을 여유 있게 유지하는 것도 가능합니다. 크기가 커졌다는 사실만으로 불편한 대기를 받아들일 필요는 없습니다.

원하는 결과와 속도를 찾았다면 파일·버전·문맥·캐시 설정을 저장하세요. 모델의 가능성을 확인하는 단계에서 매일 쓰는 도구로 넘어가기 위한 마지막 작업입니다.

26B를 고른 이유로 돌아갑니다
26B를 고른 이유로 돌아갑니다

NVFP4로 실행하려면

현재 체크포인트 안내는 TP=1 기준입니다. MoE 백엔드는 CUTLASS 또는 Marlin을 확인하세요.

vLLM · nvidia/Gemma-4-26B-A4B-NVFP4

수정 내역

사이트의 안내가 바뀐 기록입니다. 설치된 엔진·모델 버전을 자동으로 확인한 결과는 아닙니다.

  1. Mac의 모델 형식과 실행 설정 정정

    Mac의 MLX 실행 경로를 GGUF Q4_K_M과 구분하고, 엔진 이름·모델 형식·명령의 표기를 맞췄습니다. 명령에서 지정하지 않는 KV 캐시 정밀도와 프리필 배치는 모델·런타임 설정에서 확인하도록 바꿨습니다.

    명령이 그대로인데 배치만 커진 것처럼 보이던 MLX 속도 프로필도 제거했습니다.

  2. 첫 입력과 캐시 재사용의 기록 분리

    검증 순서에서 처음 읽는 입력과 같은 입력을 반복한 결과를 따로 기록하도록 바꿨습니다. 캐시 효과를 프리필 처리량이나 장비 차이로 합산하지 않습니다.

  3. 장비·프로필 저장과 다시 열기 추가

    실행 가능한 프로필은 장비와 함께 이 브라우저에 최대 5개까지 저장하고, 가이드 목록에서 다시 열 수 있게 했습니다. 저장한 뒤 공개 설정이 바뀌거나 프로필이 없어지면 실행 전에 다시 확인하도록 안내합니다.

  4. 실행 엔진 설명으로 이어지는 링크 추가

    설정에 표시된 엔진 이름에서 해당 실행 프로그램의 설명으로 이어지도록 했습니다. 엔진이 확인되지 않은 경로에는 임의의 프로그램을 연결하지 않습니다.