Skip to content

Latest commit

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

RunPod llama.cpp - Qwen3.6-35B-A3B

OpenAI-kompatibler API-Server fur Qwen3.6-35B-A3B (UD-IQ4_XS, ~18.2 GB) auf RunPod Serverless.

Dateien

Dockerfile - CUDA 12.4 + llama.cpp Build + RunPod Handler
start.sh - Startet Model-Download (falls nötig) + llama-server + Handler
handler.py - RunPod Serverless Handler, leitet an llama-server weiter

Setup-Anleitung

1. Network Volume anlegen (einmalig)

RunPod Dashboard -> Storage -> Network Volumes -> "+ Network Volume"

  • Name: qwen-models
  • Size: 50 GB
  • Region: z.B. EU-RO-1 oder US-TX-3

Das Modell wird beim ersten Start heruntergeladen (~18 GB) und danach wiederverwendet.

2. Docker Image bauen und pushen

# Docker Hub oder ghcr.io
docker build -t deinusername/runpod-qwen3:latest .
docker push deinusername/runpod-qwen3:latest

3. Serverless Endpoint erstellen

RunPod Dashboard -> Serverless -> "+ New Endpoint"

EinstellungWert
Nameqwen3-llama
Container Imagedeinusername/runpod-qwen3:latest
Container Disk10 GB (Code/Logs, Modell ist auf Volume)
Network Volumeqwen-models (dein Volume von Schritt 1)
GPURTX 4090 (24GB) oder A40 (48GB)
Min Workers0
Max Workers1
Idle Timeout60s
Execution Timeout300s

Environment Variables (optional):

  • HF_TOKEN = dein HuggingFace Token (nur nötig bei private Modellen)
  • CTX_SIZE = 8192 (Standard, kann erhoht werden z.B. 32768)
  • N_PARALLEL = 1 (erhohen fur parallele Requests, braucht mehr VRAM)

4. API verwenden

Der Endpoint akzeptiert OpenAI-kompatible Requests:

importrequestsRUNPOD_API_KEY="dein-runpod-api-key"ENDPOINT_ID="havyf9nvo5kj6h"# deine Endpoint IDresponse=requests.post(
f"https://api.runpod.ai/v2/{ENDPOINT_ID}/runsync",
headers={"Authorization": f"Bearer {RUNPOD_API_KEY}"},
json={
"input": {
"messages": [
{"role": "user", "content": "Erkläre mir Quantisierung in 2 Satzen."}
],
"max_tokens": 1024,
"temperature": 1.0,
"top_p": 0.95,
"top_k": 20
}
},
timeout=300
)
result=response.json()
# result["output"]["choices"][0]["message"]["content"]print(result["output"]["choices"][0]["message"]["content"])

5. Erster Start (Cold Start)

Beim allerersten Start wird das Modell von HuggingFace heruntergeladen (~18 GB). Das dauert je nach Verbindung 5-15 Minuten. Danach liegt es auf dem Network Volume und der Start dauert nur noch ~30 Sekunden.

MTP (Multi-Token Prediction)

Das Modell wurde mit MTP trainiert. Der llama-server ist so konfiguriert dass MTP automatisch genutzt wird (--spec-type draft-mtp --spec-draft-n-max 2). Das gibt ca. 1.5-2x schnellere Inferenz ohne Qualitatseinbuse.

Empfohlene Sampling-Parameter

Modustemperaturetop_ptop_kpresence_penalty
Thinking (allgemein)1.00.95201.5
Thinking (Code/WebDev)0.60.95200.0
Non-Thinking (allgemein)0.70.8201.5

About

nur ein test

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages