Introduction to Agentic AI

Running LLM Model Locally with vLLM and others

vLLM Installation

Windows 11 WSL2

vLLM on WSL2 前置工作

Windows Subsystem for Linux

安裝和執行各種 Linux 發行版

使用GNU/Linux套件管理員安裝軟體

Unix-like命令列界面

使用GPU加速AI工作負載

開啟Hyper-V虛擬機器平台設定才能安裝WSL2

for Hyper-V

vLLM on WSL2 前置工作: 安裝顯卡驅動程式

  1. 安裝NVidia繪圖卡驅動程式(根據型號)
    • 採用CUDA (Compute Unified Device Architecture)
    • GPU的Compute Capability需達數值7以上
    • nvcc: Nvidia CUDA Compiler Driver

2. 安裝WSL Version 2 with Linux

wsl --install
  • 開啟安裝好之Ubuntu圖示,設定管理員的帳號密碼(務必記住)
sudo apt update && sudo apt upgrade
  • 在ubuntu內更新和升級套件

vLLM on WSL2 前置工作: 安裝WSL2

3. 安裝CUDA Toolkit for WSL2(ubuntu)

https://developer.nvidia.com/cuda-toolkit

wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-8

隨選項不同產生不同指令

參考範例:選擇wsl-ubuntu的情形

vLLM on WSL2 前置工作: 安裝CUDA Toolkit

vLLM on WSL2 前置工作: 確認nvcc路徑

4. 確認nvcc路徑

nvcc --version
  • 找不到nvcc? ('/usr/local/cuda-12.8換成實際安裝路徑)
export PATH="/usr/local/cuda-12.8/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-12.8/lib64:$LD_LIBRARY_PATH"
source ~/.bashrc
nvcc --version
nvidia-smi.exe
  • 再次檢查路徑是否正確?

vLLM on WSL2 前置工作: 建立與啟用虛擬環境

python3 -m venv .myenv
source ./.myenv/bin/activate
pip install vllm

vllm serve facebook/opt-125m

5. 建立與啟用Python虛擬環境

  • 啟用myenv虛擬環境(之後每次啟動都需進入虛擬環境)
  • 安裝vllm & 啟動local server

以facebook/opt-125m為例

選用模型以llama-3.2-1B為例

登入後申請agreement

選用模型以llama-3.2-1B為例

python -m vllm.entrypoints.openai.api_server --model=meta-llama/Llama-3.2-1B-Instruct --max-model-len 4096
pip install "huggingface_hub[cli]"==0.36.2
huggingface-cli login
export HF_TOKEN=貼上TOKEN

於提示列貼上token

token貼於此

n

token合法

或是設定HF_TOKEN環境變數

vllm requires<5,>=4.56

transformers 4.57.6 requires huggingface-hub<1.0,>=0.34.0

--max-model-len可限制token數量

選用模型 Gemma3介紹

支援超過140種語言

Function Calling

developer friendly model size: 270M, 1B, 4B, 12B, 27B)

選用模型 google/gemma-3-1b-it

it: instruction trainning

pt: pre-trained

pip install vllm

# 需要 transformers 4.56版之後, <5版
pip install transformers==4.57.6

# sudo需輸入密碼
sudo apt-get install python3-dev

# GPU記憶體預設保留0.9, 改成0.8
vllm serve google/gemma-3-1b-it --gpu-memory-utilization 0.8

--gpu-memory-utilization

requested_memory = total_gpu_memory × gpu_memory_utilization

gemma-3-1b也需要token: 註冊HuggingFace帳號,建立HF_TOKEN

成功啟動於localhost:8000

 curl -X POST "http://localhost:8000/v1/chat/completions" \
        -H "Content-Type: application/json" \
        --data '{
                "model": "google/gemma-3-1b-it",
                "messages": [
                        {
                                "role": "user",
                                "content": "What is the capital of France?"
                        }
                ]
        }'

測試問題

選用模型 google/gemma-3-1b-it

執行llm模型時,記憶體不足經常發生

Text

跑模型佔用7G

選用模型 google/gemma-3-1b-it

測試結果

vLLM on WSL2 Gemma3 model size & precision

量化(quantization)模型 參考

參數精確度 換取 所需記憶體

vLLM on WSL2 模型檔案格式GGUF

  • GGUF:(GPT-Generated Unified Format)
  • 專為大語言模型(LLM)推理設計的單一二進制檔案格式
  • 由 llama.cpp 開發者 @ggerganov 推出
  • 旨在提升 CPU 與 GPU 本地部署的執行速度與記憶體效率。

vLLM on WSL2 模型檔案格式GGUF

以ggml-org/gemma-3-4b-it-GGUF為例

Appendix 1: Local LLM

By Leuo-Hong Wang

Appendix 1: Local LLM

  • 16