Come eseguire un LLM in locale: confronto tra Ollama, llama.cpp, LM Studio e vLLM
Esistono diversi modi per eseguire un LLM in locale. Alcuni strumenti sono progettati per facilitare l'avvio, mentre altri offrono un maggiore controllo o sono costruiti per servire molti utenti contemporaneamente. La scelta giusta dipende da ciò che si desidera: una semplice chat locale, un motore di inferenza configurabile o un'API di produzione.
Ollama
Ollama è uno dei modi più semplici per iniziare a eseguire modelli in locale. Basta installarlo, scaricare un modello ed eseguirlo da riga di comando. Fornisce anche un'API locale per applicazioni e altri strumenti.
Vantaggi:
- Installazione e gestione dei modelli semplici
- Flusso di lavoro da riga di comando intuitivo
- API compatibile con OpenAI
- Supporta l'accelerazione GPU basata su NVIDIA, AMD, Apple Silicon e Vulkan
- I Modelfiles permettono di personalizzare modelli e parametri
- Supporta le richieste concorrenti quando la memoria disponibile è sufficiente
Svantaggi:
- Meno controllo a basso livello rispetto a llama.cpp
- La gestione dei modelli è costruita attorno all'ecosistema Ollama
- Non è la prima scelta quando si necessita di un elevato throughput di servizio o di inferenza distribuita
Difficoltà: Bassa. Una buona scelta se si desidera mettere in esecuzione un modello rapidamente senza dover gestire numerosi parametri di inferenza.
llama.cpp
llama.cpp è un motore di inferenza leggero in C/C++ focalizzato sull'esecuzione efficiente dei modelli su un'ampia gamma di hardware. Utilizza modelli GGUF e offre un controllo dettagliato su come il modello viene caricato ed eseguito.
Vantaggi:
- Controllo fine sulla contestualizzazione, offloading GPU, batching, thread, quantizzazione e altre impostazioni di inferenza
- Ampio supporto hardware, inclusi CUDA, HIP, Metal, Vulkan e SYCL
- Supporta molti livelli di quantizzazione, dai formati a basso bit fino a 8 bit
- Permette di dividere i modelli su più GPU
- Permette di utilizzare CPU e GPU insieme quando un modello è più grande della VRAM disponibile
- Incluye
llama-serverper un'API compatibile con OpenAI
Svantaggi:
- Più configurazione rispetto a Ollama o LM Studio
- I modelli GGUF vengono generalmente scaricati e gestiti separatamente
- Molte impostazioni utili richiedono una comprensione dei parametri di inferenza
Difficoltà: Media. Una buona scelta se si desidera controllare esattamente come viene eseguito un modello o se si vuole sperimentare con le prestazioni e la quantizzazione.
LM Studio
LM Studio è un'applicazione desktop per scaricare, configurare ed eseguire LLM in locale. Fornisce un'interfaccia grafica per trovare modelli e gestire aspetti come l'offloading GPU e la dimensione del contesto.
Vantaggi:
- Interfaccia grafica semplice
- Consente di cercare e scaricare modelli tramite Hugging Face
- Mostra informazioni sul modello e sulle risorse prima del caricamento
- Server API compatibile con OpenAI
- Permette di eseguire i modelli in modalità headless tramite il server
llmster - Supporta i modelli GGUF tramite llama.cpp e i modelli MLX su Apple Silicon
Svantaggi:
- Meno controllo a basso livello rispetto all'uso diretto di llama.cpp
- L'applicazione desktop è meno adatta ad alcune implementazioni server
- Non è progettato principalmente per il servizio multiutente su larga scala
Difficoltà: Bassa. Una buona scelta se si desidera sperimentare con modelli locali senza passare troppo tempo nella riga di comando.
vLLM
vLLM è progettato per servire LLM ad applicazioni e più utenti. Il suo principale vantaggio è il servizio efficiente ad alta concorrenza, utilizzando tecniche come PagedAttention, continuous batching, prefix caching e inferenza distribuita.
Vantaggi:
- Elevato throughput per multiple richieste concorrenti
- Continuous batching e gestione efficiente della KV-cache
- Server API compatibile con OpenAI
- Funziona direttamente con molti modelli Hugging Face
- Supporta la quantizzazione, inclusi FP8, INT4, GPTQ, AWQ, GGUF e altri
- Supporta parallelismo tensoriale, pipeline, esperto e altre forme di parallelismo
- Progettato per inferenza e servizio di produzione
Svantaggi:
- Setup e configurazione più complessi
- Principalmente destinato ad ambienti Linux
- Di solito non necessario per una singola persona che esegue un modello interattivo
- La compatibilità tra hardware e modelli deve essere verificata prima del deployment
Difficoltà: Alta. La scelta migliore per chi implementa un servizio di inferenza piuttosto che semplicemente eseguire un modello su un computer personale.
Quale scegliere?
- Semplicemente si vuole eseguire un modello facilmente: Ollama o LM Studio. Scegli Ollama per la riga di comando e l'API semplice, oppure LM Studio per un'interfaccia grafica.
- Si desidera controllare l'inferenza: llama.cpp. Offre il controllo diretto sul caricamento del modello, quantizzazione, contesto, offloading GPU e altre impostazioni.
- Servono un'API locale: Ollama, llama.cpp o LM Studio. Tutti e tre forniscono API compatibili con OpenAI.
- È necessario servire molti utenti: vLLM. Le sue funzionalità di continuous batching e inferenza distribuita sono progettate per questo caso d'uso.
- Si vogliono sperimentare diverse quantizzazioni: llama.cpp o LM Studio.
Eseguilo su DaDesktop
Se non si dispone di hardware GPU sufficiente in locale, è possibile eseguire questi strumenti su un desktop cloud DaDesktop. Scegli una GPU con VRAM sufficiente per il modello che si desidera eseguire, avvia il desktop e installa il software di inferenza preferito.
Ollama e LM Studio sono utili quando si desidera un ambiente locale semplice. llama.cpp offre un maggiore controllo su hardware e impostazioni di inferenza. vLLM è un'opzione quando è necessario esporre un modello come un'API ad alto throughput.
Visualizza le GPU disponibili per confrontare VRAM e altre specifiche.