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 pip1. 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 80002. 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!"}]
}'반응형

