Menjalankan model lokal openai/gpt-oss-20b dengan NVIDIA L4 GPU, model ini sebenarnya dapat dijalankan pada GPU konsumer seri RTX dengan ~16GB VRAM. Saya membaginya menjadi dua bagian: menjalankan secara manual dan menggunakan kontainer dengan sistem operasi Ubuntu 24.04 LTS.
Persiapan
Instal driver dan dependensi
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb && rm -rf cuda-keyring_1.1-1_all.deb
sudo apt update && sudo apt install -y \
linux-headers-$(uname -r) \
libnvidia-compute-580 nvidia-dkms-580-open \
datacenter-gpu-manager-4-cuda-all \
datacenter-gpu-manager-exporter \
cuda-toolkit nvtop build-essential
Kita memerlukan reboot host untuk menerapkan driver GPU.
Validasi Driver
nvidia-smi
nvidia-smi -L

Menjalankan vLLM Secara Manual
Instal git LFS dan kloning repositori openai/gpt-oss-20b
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash
apt install git-lfs && git lfs install
git clone https://huggingface.co/openai/gpt-oss-20b /models/gpt-oss-20b
Instal UV untuk lingkungan virtual Python
curl -LsSf https://astral.sh/uv/install.sh | sh
cd /models && uv venv
source .venv/bin/activate
uv pip install vllm==0.10.2 --torch-backend=auto
Mulai menyajikan model dengan vllm menggunakan perintah berikut
export VLLM_LOGGING_LEVEL=ERROR
python3 -m vllm.entrypoints.openai.api_server \
--host 0.0.0.0 --port 8000 \
--api-key $API_TOKEN \
--served-model-name openai/gpt-oss-20b \
--model /models/gpt-oss-20b \
--gpu-memory-utilization 0.90 \
--chat-template-content-format openai \
--tool-call-parser openai \
--enable-auto-tool-choice \
--trust-remote-code \
--async-scheduling \
--disable-log-requests
Anda dapat memantau pemanfaatan GPU secara real-time menggunakan perintah
nvtop.
Saat model berhasil dimuat, pesan “application startup complete” akan muncul, dan Anda dapat menggunakan model tersebut.

Menjalankan vLLM dengan Kontainer
Instal Nvidia Container Toolkit
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo \
gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.18.0-1
sudo apt update && apt-get install -y \
nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}
Instal Docker dan atur Nvidia Runtime
curl -fsSL https://get.docker.com | bash
nvidia-ctk runtime configure --runtime=docker
systemctl restart docker.service
docker run --rm --gpus all nvidia/cuda:12.3.2-base-ubuntu22.04 nvidia-smi
Jika GPU terdeteksi di tingkat kontainer, lanjutkan ke langkah berikutnya.
Create docker-compose.yaml file configuration
services:
vllm:
image: vllm/vllm-openai:v0.12.0
container_name: vllm-gpt-oss-20b
restart: unless-stopped
ports:
- "8000:8000"
environment:
API_TOKEN: ${API_TOKEN}
VLLM_LOGGING_LEVEL: ERROR
volumes:
- /models:/models
command: >
--host 0.0.0.0
--port 8000
--api-key ${API_TOKEN}
--served-model-name openai/gpt-oss-20b
--model /models/gpt-oss-20b
--gpu-memory-utilization 0.90
--chat-template-content-format openai
--tool-call-parser openai
--enable-auto-tool-choice
--trust-remote-code
--async-scheduling
--disable-log-requests
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
ipc: host
ipc=hostmembuat kontainer Anda berbagi ruang memori dengan mesin host, yang penting untuk menjalankan model besar secara efisien.
Jalankan dengan perintah docker compose up -d lalu pantau log dengan docker compose logs -f.

Menggunakan Model
Periksa model dengan endpoint GET API /v1/models seperti contoh berikut
curl -X GET http://127.0.0.1:8000/v1/models \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_TOKEN" | jq -r

Kemudian lakukan tes prompt dengan POST ke endpoint API /v1/chat/completions seperti contoh berikut
curl -X POST http://127.0.0.1:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_TOKEN" \
-d '{
"model": "openai/gpt-oss-20b",
"messages": [
{
"role": "user",
"content": "what is AI ?"
}
],
"temperature": 0.3,
"max_tokens": 256,
"stream": false,
"reasoning_effort": "high"
}' | jq -r

Benchmark
Terima kasih kepada Yoosu-L atas alat benchmark LLM yang mudah digunakan.
curl -O https://github.com/Yoosu-L/llmapibenchmark/releases/download/v1.0.7/llmapibenchmark_linux_amd64.tar.gz
tar xzvf llmapibenchmark_linux_amd64.tar.gz
Kami akan menguji dengan hingga 1.024 concurrency dengan menjalankan perintah berikut:
./llmapibenchmark_linux_amd64 \
--base-url http://127.0.0.1:8000/v1 \
--api-key $API_TOKEN \
--model openai/gpt-oss-20b \
--concurrency 1,2,4,8,16,32,64,128,256,512,1024 \
--max-tokens 512 \
--num-words 512 \
--prompt "what is AI ?" \
--format yaml | tee benchmark-results-gpt-oss-20b-nvidia-l4.yaml
Results:

Setelah menguji openai/gpt-oss-20b di berbagai tingkat concurrency untuk memahami perilakunya saat beban meningkat. Seiring concurrency meningkat, model secara jelas menjadi lebih cepat dalam menghasilkan token secara keseluruhan, menunjukkan perilaku skalabilitas yang kuat. Throughput prompt juga meningkat dengan concurrency yang lebih tinggi, terutama di rentang menengah.
Meskipun respons tercepat (min TTFT) tetap konsisten rendah, respons terlama (max TTFT) meningkat secara mencolok seiring concurrency tumbuh. Ini berarti sebagian besar permintaan masih dilayani dengan cepat, tetapi sebagian kecil mulai mengalami waktu tunggu lebih lama ketika sistem sangat terisi. Yang penting, semua permintaan berhasil, bahkan pada tingkat concurrency tertinggi.
Data benchmark dapat ditemukan di sini
Referensi
- https://docs.nvidia.com/datacenter/tesla/driver-installation-guide/ubuntu.html
- https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
- https://docs.vllm.ai/projects/recipes/en/latest/OpenAI/GPT-OSS.html
- https://cookbook.openai.com/articles/gpt-oss/run-vllm
- https://docs.astral.sh/uv/getting-started/installation
- https://docs.redhat.com/en/documentation/red_hat_ai_inference_server
- https://github.com/Yoosu-L/llmapibenchmark