第一步:下載anaconda for mac
https://zhuanlan.zhihu.com/p/350828057 知乎保姆級教程
https://www.anaconda.com/docs/getting-started/anaconda/install#macos-linux-installation 下載地址
第二步:部署vllm的虛擬環境
https://www.53ai.com/news/OpenSourceLLM/2025040116542.html
注意?? vllm不支持python 3.13及以上版本,所以配置時得指定
https://docs.vllm.ai/en/latest/getting_started/installation/gpu.html
conda create -n usingvllm python=3.10 jupyter
conda activate usingvllm
git clone https://github.com/vllm-project/vllm.git 已經clone
pip install torch torchvision
一次性安裝所有 vLLM 的依賴
pip install -e .
如果報了error可能是沒有install成功。
檢查
du -sh ~/.cache/huggingface/hub/models–tiiuae–falcon-7b-instruct
刪除
rm -rf ~/.cache/huggingface/hub/models–tiiuae–falcon-7b-instruct
第三步:從offline_inference+qwen3入手
快速開始:本地推理從examples/offline_inference/basic/basic.py開始
● LLM 是用于運行 vLLM 引擎離線推理的主類。
● SamplingParams 指定了采樣過程的參數。
sampling_params = SamplingParams(temperature=0.8, top_p=0.95)
● 采樣溫度(輸出的隨機程度):越小越保守(0.1),越高越創造性(1.0-1.2)
● 核心采樣概率top_p(nucleus sampling):采樣時候選詞概率總和,表示模型會從累計概率為前 95% 的候選詞中選一個(對比top-k 選前k個詞)
llm = LLM(model=“facebook/opt-125m”)
● 模型從https://huggingface.co/Qwen/Qwen3-0.6B
在線服務從examples/online_serving/openai_completion_client.py開始
第四步:本地跑serve出錯及解決
Load and run the model:
vllm serve “Qwen/Qwen3-0.6B”
● 解決——不選擇默認的=4,調整最大maxlen:
export VLLM_CPU_KVCACHE_SPACE=8
vllm serve “Qwen/Qwen3-0.6B” --max-model-len 2048
已上在vsc部署成功(約等于把自己電腦當成服務器了)
另起終端
//Call the server using curl:
curl -X POST “http://localhost:8000/v1/chat/completions”
-H “Content-Type: application/json”
–data ‘{
“model”: “Qwen/Qwen3-0.6B”,
“messages”: [
{
“role”: “user”,
“content”: “What is the capital of France?”
}
]
}’
輸出:
對應“服務器”輸出:即為部署成功。
分析:
- WARNING [cpu.py:248] Pin memory is not supported on CPU.使用的是 CPU 環境(Mac M3 Pro 無 CUDA),這個警告是預期的,不會影響結果,只是說不能做 pinned memory 提速(只有 GPU 可用)。
- INFO [metrics.py:417] Avg prompt throughput: 3.0 tokens/s
INFO [metrics.py:417] Avg generation throughput: 10.5 tokens/s
模型每秒處理平均 3 個 prompt token,生成 token 平均 10.5 個/s,對于 Mac CPU 跑的模型來說,這個速度是完全合理的(0.6B 的 Qwen 模型) - INFO: 127.0.0.1:58210 - “POST /v1/chat/completions HTTP/1.1” 200 OK
響應狀態碼 200,說明接口調用完全成功,用 curl 或 Python requests.post() 調用的 API 得到了返回結果