본문 바로가기

인공지능

GLM-5 로컬 실행 가이드: 744B 초대형 추론 모델을 내 장비에서 구동하는 방법

728x90
반응형
728x170

GLM-5는 Z.ai의 최신 추론 모델로, 기존 GLM-4.7 대비 코딩, 에이전트, 대화 성능이 크게 향상된 모델입니다. 특히 200K 컨텍스트 윈도우를 지원하며, 다양한 벤치마크에서 성능이 상승했습니다.

이 글에서는 GLM-5의 주요 특징과 모델 구조, 양자화 옵션, 로컬 실행 방법(llama.cpp, vLLM), 그리고 Tool Calling 구성 방법까지 정리합니다. 실제 실행 예제와 함께 로컬 환경에서 GLM-5를 어떻게 운영할 수 있는지 단계별로 살펴보겠습니다.

반응형

GLM-5 개요 및 핵심 특징

1. 모델 스펙

  • 전체 파라미터: 744B (활성 40B)
  • 사전 학습 토큰: 28.5T
  • 최대 컨텍스트 길이: 200K (최대 202,752)
  • 디스크 요구 용량:
    • Full 모델: 1.65TB
    • Dynamic 2-bit (UD-IQ2_XXS): 241GB (-85%)
    • Dynamic 1-bit: 176GB (-89%)

GLM-5는 대규모 파라미터와 장문 컨텍스트 처리에 최적화된 구조를 갖고 있으며, MoE(Mixture of Experts) 기반 구조로 효율적인 연산을 지원합니다.


성능 향상 포인트 및 벤치마크

GLM-5는 다음과 같은 벤치마크에서 향상된 결과를 보였습니다.

  • Humanity's Last Exam: 50.4% (+7.6%)
  • BrowseComp: 75.9% (+8.4%)
  • Terminal-Bench-2.0: 61.1% (+28.3%)

특히 SWE-bench Verified, Terminal-Bench 2.0, BrowseComp 등 코드 및 툴 기반 태스크에서 강점을 보입니다. 이는 단순한 대화 모델이 아니라, 실제 에이전트 및 툴 호출 기반 자동화 작업에 적합한 모델임을 의미합니다.


양자화(Quantization) 및 실행 환경 요구사항

GLM-5는 Unsloth Dynamic 2.0 양자화를 적용한 GGUF 버전을 제공합니다.

1. 2-bit Dynamic (UD-IQ2_XXS)

  • 디스크: 241GB
  • 256GB unified memory Mac에 적합
  • 1x24GB GPU + 256GB RAM 환경에서도 MoE offloading으로 실행 가능

2. 1-bit Dynamic

  • 약 176GB
  • 180GB RAM 환경 필요

3. 8-bit

  • 약 805GB RAM 필요

권장 사항:

  • VRAM + RAM 합이 다운로드한 양자화 크기와 비슷하면 최적
  • 부족한 경우 SSD offloading 가능 (llama.cpp 사용 시)
  • --fit on 옵션을 사용해 GPU 활용 극대화

llama.cpp를 이용한 GLM-5 실행

1. llama.cpp 빌드

PR 19460이 적용된 최신 llama.cpp가 필요합니다.

apt-get update
apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev -y
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp && git fetch origin pull/19460/head:MASTER && git checkout MASTER && cd ..
cmake llama.cpp -B llama.cpp/build -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON
cmake --build llama.cpp/build --config Release -j --clean-first --target llama-cli llama-mtmd-cli llama-server llama-gguf-split
cp llama.cpp/build/bin/llama-* llama.cpp

GPU가 없다면 -DGGML_CUDA=OFF로 변경합니다.


2. 모델 다운로드

pip install -U huggingface_hub
hf download unsloth/GLM-5-GGUF \
    --local-dir unsloth/GLM-5-GGUF \
    --include "*UD-IQ2_XXS*"

2bit dynamic UD-Q2_K_XL 사용이 권장됩니다.


3. 기본 추론 실행 예시

export LLAMA_CACHE="unsloth/GLM-5-GGUF"
./llama.cpp/llama-cli \
    -hf unsloth/GLM-5-GGUF:UD-IQ2_XXS \
    --jinja \
    --ctx-size 16384 \
    --flash-attn on \
    --temp 0.7 \
    --top-p 1.0 \
    --fit on

툴 호출 중심 작업에서는 temperature 1.0, top_p 0.95 설정이 권장됩니다.


MoE 레이어 오프로딩 전략

MoE 레이어를 CPU로 오프로딩하면 VRAM을 절약할 수 있습니다.

예시:

  • 모든 MoE 레이어 CPU 오프로딩
    -ot ".ffn_.*_exps.=CPU"
  • up/down projection만 오프로딩
    -ot ".ffn_(up|down)_exps.=CPU"

GPU 메모리 상황에 맞춰 정규식으로 세밀하게 조정 가능합니다.


llama-server 기반 OpenAI API 형태 배포

1. 서버 실행

./llama.cpp/llama-server \
    --model unsloth/GLM-5-GGUF/UD-IQ2_XXS/GLM-5-UD-IQ2_XXS-00001-of-00006.gguf \
    --alias "unsloth/GLM-5" \
    --fit on \
    --prio 3 \
    --temp 1.0 \
    --top-p 0.95 \
    --ctx-size 16384 \
    --port 8001 \
    --jinja

2. OpenAI Python 라이브러리로 호출

from openai import OpenAI

openai_client = OpenAI(
    base_url="http://127.0.0.1:8001/v1",
    api_key="sk-no-key-required",
)

completion = openai_client.chat.completions.create(
    model="unsloth/GLM-5",
    messages=[{"role": "user", "content": "Create a Snake game."}],
)

print(completion.choices[0].message.content)

실제 예시로 HTML 기반 Snake 게임 코드가 생성됩니다. 단일 파일로 실행 가능한 구조이며, 점수판, 충돌 감지, 재시작 기능까지 포함되어 있습니다.


vLLM 기반 FP8 배포

FP8 모델은 대규모 GPU 환경에서 사용합니다.

요구사항:

  • 최소 860GB VRAM
  • 권장: 8x H200 또는 8x B200

설치:

uv pip install --upgrade --force-reinstall vllm --torch-backend=auto --extra-index-url https://wheels.vllm.ai/nightly/cu130
uv pip install --upgrade --force-reinstall git+https://github.com/huggingface/transformers.git
uv pip install --force-reinstall numba

실행 예:

vllm serve unsloth/GLM-5-FP8 \
    --served-model-name unsloth/GLM-5-FP8 \
    --kv-cache-dtype fp8 \
    --tensor-parallel-size 8 \
    --dtype bfloat16 \
    --max-model-len 200000 \
    --gpu-memory-utilization 0.93 \
    --port 8001

OpenAI API 형식으로 호출 가능합니다.


Tool Calling 구성

GLM-5는 함수 호출 기반 자동화 작업에 적합합니다.

예시 툴:

  • add_number
  • multiply_number
  • substract_number
  • write_a_story
  • terminal
  • python

OpenAI API를 통해 tools와 tool_choice="auto" 설정 시, 모델이 적절한 함수를 자동 호출합니다.

이를 통해 계산, 파이썬 실행, 터미널 명령 실행 등 복합 에이전트 작업이 가능합니다.


728x90

GLM-5는 단순한 대화형 LLM이 아니라, 장문 추론, 코드 생성, 터미널 작업, 툴 호출 자동화까지 가능한 고성능 추론 모델입니다.

핵심 포인트는 다음과 같습니다.

  1. 200K 컨텍스트 기반 장문 처리
  2. Dynamic 2-bit 양자화를 통한 현실적인 로컬 구동 가능성
  3. MoE 오프로딩 전략으로 GPU 메모리 최적화
  4. llama.cpp 기반 경량 실행과 vLLM 기반 대규모 배포 모두 지원
  5. Tool Calling을 통한 에이전트 자동화 확장

특히 2-bit dynamic 모델은 256GB 메모리 환경에서도 실행 가능하다는 점에서, 초대형 모델의 로컬 운용 가능성을 크게 넓혔습니다.

향후 GLM-5는 코드 자동화, 로컬 AI 에이전트 구축, 사내 전용 추론 서버 구축 등 다양한 영역에서 활용될 수 있을 것으로 기대됩니다.

300x250

https://unsloth.ai/docs/models/glm-5

728x90
반응형
그리드형