AI Agent/vLLM

Mac 에서 vllm 으로 서빙하기

seungkyua@gmail.com 2026. 9. 9. 16:55

vllm 앞단에 gateway 를 만들기 위해서 테스트 용으로 최소 사양을 vllm 을 맥북에 띄운다.

실제로 모델을 활용하려는 목적이 아니라 api 호출이 되는지만 확인하는 용도이다.

python 은 3.12 버전을 사용해야 한다.

$ cd ~/Documents/works/ai/vllm-mac

# Python3 가상환경 생성 및 활성화
$ python3.12 -m venv .venv-vllm-metal-3.12
$ source .venv-vllm-metal-3.12/bin/activate

# pip 최신화
$ pip install --upgrade pip

1. vllm-metal 을 컴파일해서 돌리기 (에러, 원래 안되는 방법)

# 필수 빌드 도구 및 dependencies 설치
$ pip install \
  "setuptools==77.0.3" \
  "numpy==1.26.4" \
  "torch==2.13.0" \
  "torchvision==0.28.0" \
  "opencv-python-headless==4.10.0.84" \
  "wheel" "cmake" "ninja" "gguf"


$ git clone https://github.com/vllm-project/vllm-metal.git
$ cd vllm-metal
$ pip install maturin
$ VLLM_METAL_BUILD_FROM_SOURCE=1 pip install --no-build-isolation -e .

vllm 을 설치한다.

# vLLM 소스코드 클론 및 Mac MPS 빌드 옵션 적용
$ git clone https://github.com/vllm-project/vllm.git vllm-ref
$ cd vllm-ref

# Metal (MPS) 지원 플래그 적용 후 설치
$ VLLM_TARGET_DEVICE=mps pip install -e .

vllm 을 실행한다.

$ cd ~/Documents/works/ai/vllm-mac

$ pip install huggingface_hub

$ hf download bartowski/Llama-3.2-1B-Instruct-GGUF Llama-3.2-1B-Instruct-Q8_0.gguf --local-dir ./llama3-gguf
$ hf download unsloth/Llama-3.2-1B-Instruct config.json --local-dir ./llama3-gguf

$ ulimit -n 65536

$ vllm serve ./llama3-gguf/Llama-3.2-1B-Instruct-Q8_0.gguf \
  --tokenizer unsloth/Llama-3.2-1B-Instruct \
  --gpu-memory-utilization 0.25 \
  --max-model-len 2048 \
  --port 8000

2. MLX 백엔드 엔진으로 직접 전환

# 1. mlx-lm 설치 (단 1초 소요)
pip install mlx-lm

# 2. OpenAI 호환 API 서버 실행 (vllm serve 대체)
mlx_lm.server --model mlx-community/Llama-3.2-1B-Instruct-4bit --port 8000

호출

curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "mlx-community/Llama-3.2-1B-Instruct-4bit",
    "messages": [{"role": "user", "content": "Hello!"}]
  }'
반응형