Server vLLM OpenAI-Compatible

Trooper.AI fornisce un modello di distribuzione completamente automatizzato vLLM che installa, configura ed esegue un server di inferenza compatibile con OpenAI sulla Sua macchina GPU utilizzando systemd.

Status Dashboard for vLLM on Trooper.AI
Cruscotto di stato per vLLM su Trooper.AI

L'obiettivo:

Il template esegue automaticamente:

Lei controlla solo un piccolo insieme di parametri pubblici.

Comprensione dei numeri di GPU: vLLM funziona con più GPU, ma richiede che il numero di GPU divida in modo uniforme le attention heads del modello. Ad esempio, un modello come Gemma con 32 attention heads può utilizzare 1, 2, 4 o 8 GPU – ma non 3.


Nota di sicurezza importante sulle schermate: I server mostrati nelle schermate sono solo a scopo dimostrativo e sono protetti dal Trooper.AI Network-Level Firewall, incluso in tutte le ordinazioni di GPU Server. Per informazioni dettagliate, vedere 🛡️ Trooper.AI Firewall personalizzabile a livello di rete.


Impostazioni del modello vLLM

Questo modello distribuisce un server di inferenza vLLM pronto all'uso sulla Sua istanza Trooper.AI. Installa l'ambiente di esecuzione necessario, configura il punto di accesso API e prepara il modello per richieste compatibili con OpenAI.

Di seguito è riportata una breve spiegazione di ciascuna opzione di configurazione.

Basic settings to get startet with vLLM
Impostazioni di base per iniziare con vLLM

commandline_args

Argomenti avanzati opzionali passati direttamente al comando di avvio del server vLLM.

Utilizzi questo se ha bisogno di abilitare funzionalità aggiuntive come:

  • parallelismo tensoriale
  • quantizzazione
  • richiesta di strumenti
  • impostazioni personalizzate del tokenizer
  • decodifica speculativa

Esempio:

Codice
--tensor-parallel-size 2

Lasci in bianco a meno che Lei non sappia esattamente quali flags desidera utilizzare.

hf_token

Il Suo token di accesso a HuggingFace.

Questo è richiesto se il modello:

  • è gated
  • richiede autenticazione
  • o viene scaricato da un repository privato

Per i modelli pubblici questo campo può essere lasciato vuoto.

Può generare un token qui:

Codice
https://huggingface.co/settings/tokens

Il token viene utilizzato esclusivamente durante il download del modello.

max_tokens

Definisce la finestra di contesto massima che il server deve supportare.

Questo influisce direttamente sull'utilizzo della VRAM.

Valori tipici:

... ...il modello: è protetto da autenticazione o scaricato da un repository privato. Per i modelli pubblici questo campo può essere lasciato vuoto. È possibile generare un token qui: Code https://huggingface.co/settings/tokens Il token viene utilizzato solo durante il download del modello.maxtokensDefinisce la finestra di contesto massima che il server deve supportare. Questo influisce direttamente sull'utilizzo della VRAM. Valori tipici: Contesto Raccomandato modelli piccoli 4096 modelli medi 8192 modelli con contesto lungo 16384+ Valori più alti aumentano significativamente l'utilizzo della memoria. Se il Suo server esaurisce la VRAM, abbassi questo valore.modelnameL'identificatore del modello HuggingFace che vLLM deve caricare.Esempio: Code mistralai/Ministral-3-14B-Instruct Altri esempi compatibili: Code Qwen/Qwen2.5-14B-Instruct google/gemma Context repository Per i modelli pubblici questo campo può essere lasciato vuoto. È possibile generare un token qui: Code https://huggingface.co/settings/tokens Il token viene utilizzato solo durante il download del modello.maxtokensDefinisce la finestra di contesto massima che il server deve supportare. Questo influisce direttamente sull'utilizzo della VRAM. Valori tipici: Contesto Raccomandato modelli piccoli 4096 modelli medi 8192 modelli con contesto lungo 16384+ Valori più alti aumentano significativamente l'utilizzo della memoria. Se il Suo server esaurisce la VRAM, abbassi questo valore.modelnameL'identificatore del modello HuggingFace che vLLM deve caricare.Esempio: Code mistralai/Ministral-3-14B-Instruct Altri esempi compatibili: Code Qwen/Qwen2.5-14B-Instruct google/gemma-3-12b-it meta-llama/Meta-Llama-3-8B-Instruct ... e molti altri Assicurarsi che... Consigliato
modelli piccoli 4096
modelli medi 8192
modelli a lungo contesto 16384+

Valori più alti aumentano significativamente l’uso della memoria. Se il Suo server va in esaurimento di VRAM, abbassi questo valore.

modelname

L’identificatore del modello HuggingFace che vLLM deve caricare.

Esempio:

Codice
mistralai/Ministral-3-14B-Instruct-2512

Altri esempi compatibili:

Codice
Qwen/Qwen2.5-14B-Instruct
google/gemma-3-12b-it
meta-llama/Meta-Llama-3-8B-Instruct
... and many more

Assicuri che il modello sia supportato da vLLM e che rientri nella memoria della Sua GPU.

chiave

Questo è la Sua chiave di autenticazione dell'API.

Tutte le richieste al server vLLM devono includere questo token nell’header:

Codice
Authorization: Bearer YOUR_TOKEN

Questo protegge il Suo server da accessi non autorizzati.

Esempio di richiesta:

Codice
curl https://your-server/v1/chat/completions \
  -H "Authorization: Bearer YOUR_TOKEN"

Utilizzi una stringa casuale lunga e complessa.


Dimensione del Modello e Requisiti della GPU

Lei può utilizzare una vasta gamma di grandi modelli linguistici da HuggingFace all'interno di vLLM. Assicuri che sia disponibile sufficiente VRAM, poiché le prestazioni dipendono dalla presenza di adeguata VRAM libera sulla GPU per ospitare il modello e la dimensione del contesto, moltiplicata per il numero di utenti contemporanei.

Trooper.AI seleziona automaticamente la precisione ottimale per ogni architettura di GPU.

Calcolo della VRAM: Peso del modello + ~25% buffer di cache KV.
VRAM può essere condivisa tra più GPU tramite Tensor Parallelism (--tensor-parallel-size N).

Modello Parametri Precisione VRAM min. Totale Configurazione GPU GPUs
Qwen/Qwen3-4B 4B BF16 ~8 GB 1× V100 16GB / RTX 4070 Ti Super 1
Qwen/Qwen3-8B 8B BF16 ~20 GB 1× RTX 3090 / RTX 4090 (24 GB) 1
mistralai/Ministral-3-14B-Instruct-2512 14B FP8 ~29 GB 1× RTX 4080 Pro 32GB o 1× A100 40GB 1
Qwen/Qwen3-32B 32B FP8 ~40 GB 1× A100 40GB o 2× RTX 4090 (2×24 GB) 1–2
meta-llama/Llama-3.1-8B-Instruct 8B FP8 ~20 GB 1× RTX 3090 / RTX 4090 (24 GB) 1
meta-llama/Llama-3.1-70B-Instruct 70B FP8 ~90 GB 1× RTX Pro 6000 Blackwell (96 GB) o 2× A100 (2×40 GB) 1–2

Nota: FP8 viene utilizzato sulle architetture Ada/Hopper (RTX 40-series, A100, H100) per il massimo throughput. \ Trooper.AI seleziona automaticamente la precisione ottimale per la Sua GPU.
Le configurazioni Multi-GPU utilizzano Tensor Parallelism — la VRAM scala linearmente tra le GPU.


Parametri Pubblici

Questi parametri possono essere impostati tramite variabili di ambiente prima dell’esecuzione dell’installer.

Variabile Descrizione
TOKEN Chiave API per l'autenticazione
modelname Percorso modello HuggingFace
hf_token Token HuggingFace (per modelli a accesso controllato)
commandline_args Argomenti CLI aggiuntivi opzionali per vLLM

Benchmark automatico per regolare i Parametri

Status Dashboard for vLLM on Trooper.AI
Cruscotto di stato per vLLM su Trooper.AI

Il nostro modello include un benchmark di prestazioni per aiutarla a ottimizzare il suo GPU Server per l'uso multi-agente. Utilizzalo per testare e confrontare modelli, tipi di GPU e parametri al fine di massimizzare il throughput e gli utenti simultanei.

Come funziona il benchmark?

Il benchmark avvia contemporaneamente più agenti, ognuno interagente con il endpoint del server vLLM su argomenti diversi. Questo evita la memorizzazione nella cache e verifica le prestazioni in scenari reali. Lei può visualizzare il throughput di ciascun agente, il throughput totale e confrontare i costi per servizi tokenizzati come GPT-5 mini. Spesso, un server vLLM di Trooper.AI è 2-4 volte meno costoso dei servizi di inferenza basati su token di grandi dimensioni, mantenendo il Suo lavoro con LLM privato!


Cosa fa il Modello

Startup of your vLLM server
Avvio del Suo server vLLM

  1. Rileva l’architettura della GPU (Volta, Ampere, Ada, Hopper, Blackwell)

  2. Rileva la dimensione della VRAM

  3. Seleziona automaticamente la precisione ottimale:

    • FP8 > BF16 > FP16
  4. Utilizza la cache KV in FP16 per garantire la stabilità

  5. Impostazioni:

    • sequenze concorrenti massime
    • dimensione batch di token
    • utilizzo della memoria
  6. Installa vLLM con CUDA

  7. Crea un servizio systemd:

    Codice
    vllm-server.service
    
  8. Avvia un server API compatibile con OpenAI persistente su un endpoint sicuro HTTPS.

Non è richiesta alcuna regolazione manuale.


Punti di accesso API

URL di base:

Codice
http://YOUR_SERVER:PORT/v1

Punti di accesso:

  • /v1/models
  • /v1/completions
  • /v1/chat/completions

Intestazione di autenticazione:

Codice
Authorization: Bearer YOUR_TOKEN_FROM_CONFIG

Esempio di Client in Python

python
from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://YOUR_SERVER_ENDPOINT.apps.trooper.ai/v1"
)

resp = client.chat.completions.create(
    model="Qwen/Qwen3-14B",
    messages=[
        {"role": "user", "content": "Hello, what is vLLM?"}
    ],
    max_tokens=200
)

print(resp.choices[0].message.content)

Esempio di Client in Node.js

JavaScript
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "YOUR_API_KEY",
  baseURL: "https://YOUR_SERVER_ENDPOINT.apps.trooper.ai/v1"
});

const completion = await client.chat.completions.create({
  model: "Qwen/Qwen3-14B",
  messages: [
    { role: "user", content: "Hello from Node.js" }
  ],
  max_tokens: 200
});

console.log(completion.choices[0].message.content);

Esempio di Client in PHP

PHP
<?php

$ch = curl_init("https://YOUR_SERVER_ENDPOINT.apps.trooper.ai/v1/chat/completions");

$data = [
  "model" => "Qwen/Qwen3-14B",
  "messages" => [
    ["role" => "user", "content" => "Hello from PHP"]
  ],
  "max_tokens" => 200
];

curl_setopt_array($ch, [
  CURLOPT_POST => true,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer YOUR_API_KEY",
    "Content-Type: application/json"
  ],
  CURLOPT_POSTFIELDS => json_encode($data)
]);

$response = curl_exec($ch);
curl_close($ch);

echo $response;

Esempio di Streaming

Streaming in Python

python
resp = client.chat.completions.create(
    model="Qwen/Qwen3-14B",
    messages=[{"role":"user","content":"Explain transformers"}],
    stream=True
)

for chunk in resp:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)

Streaming con Node.js

JavaScript
const stream = await client.chat.completions.create({
  model: "Qwen/Qwen3-14B",
  messages: [{ role: "user", content: "Explain transformers" }],
  stream: true
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0].delta?.content || "");
}

Casi d’uso

I server Trooper.AI vLLM sono progettati per:

  • backend AI SaaS
  • chatbot
  • Assistenti per il codice
  • sistemi RAG
  • Server di inferenza multi-utente
  • Inferenza batch ad alta capacità di elaborazione
  • ambienti di noleggio GPU

Filosofia delle Prestazioni

Trooper.AI utilizza:

  • Aggiustamento automatico dell'architettura
  • Selezione automatica della precisione
  • batching consapevole di VRAM
  • Configurazione stabile della cache KV

Evita:

  • configurazione errata della GPU
  • Crash di precisione
  • frammentazione della VRAM
  • Instabilità del contesto

Confronto dei costi: Ministral-3 su Trooper.AI vs GPT-5 mini

Jeopardy-Game-Benchmark
Jeopardy-Game-Benchmark

Per fornire una stima approssimativa dell’economia del self-hosting, il seguente confronto proietta i costi di esecuzione di Ministral-3-14B-Instruct-2512 su un Trooper.AI GPU server rispetto all’utilizzo dell’API GPT-5 mini per lo stesso carico di lavoro.

La stima si basa sull’effettivo test di benchmark descritto in questo articolo e proiettata su un’ora di inference throughput continuo.

Costo orario a throughput misurato

Piattaforma Costo orario
API di GPT-5 mini ~$3.12
Ministral-3-14B su Trooper.AI GPU server €0.51 (~$0.54)

Come è stato calcolato

Questa stima si basa sull’esecuzione reale del benchmark riportata in questo articolo utilizzando Ministral-3-14B-Instruct-2512 su un server GPU di Trooper.AI.

Metrica Valore
Token totali elaborati 307,028
Tempo di esecuzione 153 secondi
Throughput ~2006 token/sec
Token previsti/ora ~7,22 milioni di tokens

Distribuzione dei token nel benchmark:

Tipo di token Tokens
Token di input 275,186
Token di output 31,842

Scalando questo rapporto a ~7,22 milioni di tokens/ora e applicando GPT-5 mini pricing:

  • €0,25 / 1M token di input
  • $2,00 / 1M output tokens

si traduce in una stima di ~$3.12 all'ora per lo stesso carico di lavoro.

Il server Ministral-3 su Trooper.AI invece funziona a un costo fisso di €0.51/ora (~$0.54), indipendentemente dal volume di token, il che consente di elaborare milioni di token all'ora a costo prevedibile.

Proiezione dei carichi di lavoro a lungo termine

Utilizzando il throughput osservato, è possibile stimare il costo di esecuzione del sistema per un'intera ora.

Metrica Valore
Token all'ora ~7,221,543
Costo di GPT-5 mini $3.12
Costo del server Trooper.AI €0.51 (~$0.54)

Risparmio orario

Eseguire lo stesso carico di lavoro per un'ora risulterebbe comunque:

≈ 5,8 volte più economico su Trooper.AI

Quando l'auto-ospitaggio diventa molto più economico

L'auto-ospitare LLMs risulta più conveniente economicamente quando:

  • i carichi di lavoro contengono molte richieste piccole
  • inferenza parallela è richiesta
  • applicazioni generano milioni di token all'ora
  • i carichi di lavoro vengono eseguiti ininterrottamente

Esempi tipici includono:

  • simulazioni di giochi AI
  • sistemi agenti
  • pipeline di automazione
  • applicazioni di chat con molti utenti

Riassunto

In questo benchmark:

Metrica Risultato
Modello Ministral-3-14B
Costo del server €0.51/hour
Token elaborati 307k
Tempo di esecuzione 153 secondi
Riduzione dei costi 82.8%
Vantaggio di costo 5,8 volte più economico di GPT-5 mini

Per workload ad alto throughput, l’esecuzione di modelli come Ministral-3 su Trooper.AI GPU servers può ridurre drasticamente i costi di inferenza eliminando contemporaneamente i limiti delle API.


Perché ha bisogno del template vLLM

Il template Trooper.AI vLLM Le offre:

  • API compatibile con OpenAI
  • Ottimizzazione automatica della GPU
  • Impostazioni predefinite sicure per la produzione
  • Configurazione minima
  • Massima throughput

Lei sceglie solo il modello e l'API key.

Tutto il resto è ottimizzato automaticamente.


Risoluzione dei problemi

Con il dashboard può facilmente rilevare problemi all'avvio e risolverli. Non abbastanza VRAM? Effettui un upgrade a un Blib più potente in pochi minuti tramite il dashboard. Oppure risolva l'utilizzo della VRAM riducendo la dimensione della finestra dei token. Verifichi i Logs in tempo reale con facilità tramite il dashboard:

Crashed and how to fix it
Crashato e come risolverlo

Ministral 3

Per utilizzare Ministral 3 di solito è necessario Transformers 4.x e questo può essere facilmente forzato con la casella di spunta «Ministral 3 Fix» nella configurazione del Template. Tenga presente che vLLM è uno strumento per esperti e Lei dovrà sapere come ottimizzare e risolvere problemi, ma Le offriamo il miglior supporto possibile.

Innanzitutto, attivi la Ministral 3 Fix:

Ministral 3 Fix Checkbox turn on!
Attivi la spunta per Ministral 3 Fix!

In secondo luogo, utilizzi questi parametri per sfruttare al massimo le funzionalità del modello:

Command Args for Ministral 3 vLLM
Argomenti di comando per Ministral 3 vLLM

bash
--async-scheduling --tokenizer_mode mistral --config_format mistral --load_format mistral --enable-auto-tool-choice --tool-call-parser mistral --limit-mm-per-prompt='{"image":{"count":4,"width":768,"height":768}}'

Questo avvierà lo Startup di Ministral 3 sul Suo Server – a patto che tutti gli altri parametri siano compatibili con la dimensione della Sua VRAM.

Nemotron 3 Nano con Token Budget

Per NVIDIA Nemotron 3 Nano è necessario almeno la versione 0.18.1 di vLLM (nightly al 30-03-2025). Può configurare il parser e il limite dei token in modo da utilizzare thinking_token_budget. Legga di più qui: https://docs.vllm.ai/en/latest/features/reasoning_outputs/#online-serving Attenzione: ciò ridurrà il throughput di circa il -30%!

Modifichi gli argomenti di riga di comando come segue:

bash
  --async-scheduling 
  --reasoning-parser-plugin /home/trooperai/vllm-server/nano_v3_reasoning_parser.py  
  --reasoning-parser nano_v3 
  --reasoning-config '{"think_start_str": "<think>", "think_end_str": " - I have to give the solution based on the thinking directly now:</think>"}'

Scarichi il parser da:

bash
wget -O - https://huggingface.co/nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16/resolve/main/nano_v3_reasoning_parser.py

In alternativa, può utilizzare il nemotron_3_parser impostato su ON. Questo provvederà automaticamente a quanto richiesto. Assicuri inoltre di attivare la build sviluppatore notturna!

In questo modo Lei ottiene maggiore controllo sulla funzione di ragionamento di Nemotron 3 Nano.


Assistenza

Per la regolazione avanzata, multi-GPU o preset personalizzati, contatti il supporto di Trooper.AI.