Individuare il modello linguistico locale ideale per il proprio computer non è solo una questione di memoria disponibile, ma di equilibrio tra prestazioni, precisione e capacità hardware. whichllm è uno strumento da riga di comando che automatizza questa analisi, scansionando CPU, GPU e RAM per suggerire e classificare i migliori modelli di HuggingFace pronti all'uso sul sistema in uso.
L'ecosistema dei Large Language Models (LLM) — i modelli di intelligenza artificiale addestrati su enormi quantità di testo — si evolve con una rapidità tale da rendere obsolete le classifiche statiche in poche settimane. whichllm risolve il problema interfacciandosi direttamente con le API di HuggingFace (la principale piattaforma di condivisione di modelli AI) per fornire raccomandazioni basate su dati aggiornati in tempo reale.

Installazione e avvio rapido
Lo strumento è progettato per essere eseguito immediatamente senza configurazioni complesse. Il metodo consigliato utilizza uvx, un esecutore di pacchetti Python estremamente veloce.
bash# Installazione tramite pip (alternativa)
pip install whichllmFlussi di lavoro principali
Una volta installato, whichllm offre diversi comandi per gestire l'intero ciclo di vita di un modello locale, dalla scelta alla programmazione.
Analisi hardware: Il comando base rileva i componenti e stila la classifica dei modelli migliori.
Pianificazione upgrade: Permette di confrontare come cambierebbero le prestazioni passando a GPU (Graphics Processing Unit) diverse.
Generazione di codice: Crea frammenti di codice Python pronti all'uso per integrare il modello nelle proprie applicazioni.
Chat interattiva: Avvia una sessione di conversazione diretta con il modello scelto.
bash# Trova i modelli migliori per questa macchina
whichllm
# Confronta candidati per un aggiornamento hardware
whichllm upgrade "RTX 4090" "RTX 5090" "H100"
# Identifica la GPU necessaria per un modello specifico
whichllm plan "llama 3 70b"
# Avvia una chat con un modello specifico (formato GGUF)
whichllm run "qwen 2.5 1.5b gguf"Analisi delle prestazioni hardware (maggio 2026)
I risultati variano in base ai dati live di HuggingFace. Di seguito una panoramica delle prestazioni stimate per diverse configurazioni hardware tipiche, basata su snapshot recenti. La velocità è espressa in "t/s" (token al secondo), dove un token corrisponde approssimativamente a una parola o parte di essa.
Mostra dati
| Voce | Token al secondo |
|---|---|
| RTX 5090 (Qwen 27B) | 40 |
| RTX 4090 (Qwen 27B) | 27 |
| RTX 4060 (Qwen 14B) | 22 |
| Apple M3 Max (Qwen 27B) | 9 |
| Solo CPU (gpt-oss 20b) | 6 |
Hardware | VRAM | Scelta Top | Velocità |
|---|---|---|---|
RTX 5090 | 32 GB |
| ~40 t/s |
RTX 4090 / 3090 | 24 GB |
| ~27 t/s |
RTX 4060 | 8 GB |
| ~22 t/s |
Apple M3 Max | 36 GB |
| ~9 t/s |
Solo CPU | — |
| ~6 t/s |
L'algoritmo di scoring: oltre la dimensione
Far entrare un modello nella VRAM (Video RAM) è l'aspetto più semplice. La sfida è capire quale, tra i modelli compatibili, sia effettivamente il migliore in termini di intelligenza e velocità. whichllm utilizza un sistema di punteggio da 0 a 100 che aggrega diversi fattori:
Qualità del benchmark: Integra dati da LiveBench, Artificial Analysis, Chatbot Arena ELO e Open LLM Leaderboard.
Recency-aware: Le vecchie classifiche vengono penalizzate rispetto alle nuove generazioni di modelli.
Affidabilità delle prove: Ogni punteggio è pesato in base alla fonte (diretta, variante, base o auto-dichiarata).
Stima dell'architettura: Calcola lo spazio occupato non solo dai pesi del modello, ma anche dalla cache KV (Key-Value) e dai costi fissi del framework (circa 500 MB).
- ✓Classifiche basate su benchmark reali e non solo sulla dimensione dei parametri.
- ✓Rilevamento automatico preciso di GPU NVIDIA, AMD e Apple Silicon.
- ✓Supporto per il caricamento parziale (offload) tra GPU e CPU.
- ✓Output in formato JSON per integrazione in script personali.
- ✗Alcuni stime di velocità hanno confidenza bassa per backend meno comuni.
- ✗La precisione dipende dalla disponibilità di benchmark aggiornati su HuggingFace.
Esecuzione e integrazione
Il comando run è una delle funzionalità più potenti: crea un ambiente isolato, scarica il modello e avvia la chat senza sporcare il sistema globale.

Per gli sviluppatori, whichllm snippet fornisce il codice Python necessario per caricare il modello tramite librerie come llama-cpp-python o transformers.
pythonfrom llama_cpp import Llama
# Snippet generato automaticamente per Qwen 7B
llm = Llama.from_pretrained(
repo_id="Qwen/Qwen2.5-7B-Instruct-GGUF",
filename="qwen2.5-7b-instruct-q4_k_m.gguf",
n_ctx=4096,
n_gpu_layers=-1,
verbose=False,
)
output = llm.create_chat_completion(
messages=[{"role": "user", "content": "Ciao!"}],
)
print(output["choices"][0]["message"]["content"])Integrazione con Ollama
È possibile utilizzare whichllm per alimentare script che gestiscono Ollama (un altro popolare gestore di LLM locali). Ad esempio, si può creare un alias nel terminale per eseguire sempre il miglior modello disponibile:
bashalias bestllm='whichllm --top 1 --json | jq -r ".models[0].model_id"'
# Utilizzo: ollama run $(bestllm)Architettura del sistema
La pipeline dei dati di whichllm assicura che le informazioni siano sempre fresche ma accessibili anche offline tramite cache locale.
Fonti e riferimenti




