llama-server로 Qwen3 27B GGUF 로컬 서빙 — Ollama 대신 쓰는 이유

Ollama 말고 llama.cpp의 llama-server로 GGUF 모델을 직접 서빙하는 방법. API 호환성과 속도 차이.

llama-server로 Qwen3 27B GGUF 로컬 서빙 — Ollama 대신 쓰는 이유

Ollama가 있는데 왜 llama-server를 쓰나

Ollama는 편합니다. 모델 관리도 자동이고 API도 간단합니다.

근데 GGUF 파일을 직접 가져다 쓸 때 llama-server가 더 유연합니다.

  • Ollama: 모델을 Ollama 형식으로 import해야 함
  • llama-server: GGUF 파일 경로만 지정하면 바로 서빙

Qwen3 27B GGUF를 HuggingFace에서 받아서 바로 돌릴 때 llama-server가 편했습니다.


llama-server가 뭔가

llama.cpp 프로젝트에 포함된 HTTP 서버입니다. GGUF 모델을 OpenAI API 호환 형식으로 서빙합니다.

OpenAI API 호환이라 openai Python 패키지를 그대로 쓸 수 있습니다.


설치

Windows에서:

# 사전 설치: Visual Studio Build Tools (C++ 컴파일러 필요)

# llama.cpp 빌드
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
mkdir build && cd build
cmake .. -DLLAMA_CUDA=ON  # GPU 사용
cmake --build . --config Release

빌드 후 build/bin/llama-server.exe 생성됩니다.

또는 GitHub Releases에서 미리 빌드된 바이너리를 받을 수 있습니다 (CUDA 버전 선택).


모델 다운로드

HuggingFace에서 GGUF 파일을 받습니다.

# huggingface-cli 사용
pip install huggingface-hub
huggingface-cli download unsloth/Qwen3.6-27B-GGUF \
  --local-dir D:/models/qwen3-27b \
  --include "*.Q4_K_M.gguf"

Q4_K_M: 4비트 양자화. 16GB VRAM에서 27B 모델 돌릴 수 있는 수준.


서버 실행

llama-server.exe `
  --model D:/models/qwen3-27b/Qwen3.6-27B-Q4_K_M.gguf `
  --port 11440 `
  --ctx-size 8192 `
  --n-gpu-layers 999 `
  --host 0.0.0.0

파라미터:

  • --n-gpu-layers 999: GPU VRAM에 최대한 올림 (숫자가 크면 전부 GPU)
  • --ctx-size 8192: 컨텍스트 길이 (길수록 VRAM 더 씀)
  • --port 11440: Ollama(11434)와 포트 구분

Python에서 호출

OpenAI 호환이라 openai 패키지 그대로 씁니다:

from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:11440/v1",
    api_key="dummy"  # 로컬이라 아무 값이나
)

response = client.chat.completions.create(
    model="qwen3-27b",  # 모델명은 아무거나
    messages=[{"role": "user", "content": "안녕"}],
    max_tokens=500
)
print(response.choices[0].message.content)

Ollama API와 비교

Ollamallama-server
GGUF 직접 사용import 필요파일 경로만
API 형식Ollama 전용 + OpenAI 호환OpenAI 호환
모델 관리ollama pull/list직접 파일 관리
GPU 설정자동—n-gpu-layers 조정 필요
속도비슷비슷

겪었던 문제

CUDA 버전 불일치

미리 빌드된 바이너리를 받았는데 CUDA 버전이 드라이버와 안 맞았습니다.

CUDA error: no kernel image is available

해결: 직접 소스 빌드 또는 드라이버에 맞는 CUDA 버전의 바이너리 선택.

VRAM 부족

27B Q4_K_M 모델이 약 15GB VRAM 씁니다. 16GB가 빡빡합니다.

컨텍스트 길이 줄이거나 더 작은 양자화 사용:

Q4_K_M → Q3_K_M  (VRAM 덜 씀, 품질 조금 떨어짐)

JARVIS에서 사용

코딩봇이 이 서버를 씁니다. CoT 코딩 작업용.

포트 11440으로 서빙, OpenAI 호환 API로 호출. Ollama(11434)와 별도로 돌아갑니다.

큰 모델이라 느립니다. 빠른 응답이 필요한 작업은 Ollama의 작은 모델을 씁니다.

#llama-server#Qwen3#GGUF#로컬LLM#llama.cpp