>_ DevTrendsit

Lingua

Home

Linguaggi

Sezioni

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicurezza
Python

Come distribuire qualsiasi modello AI open-source con API OpenAI in un solo comando

Quando un progetto OpenAI cresce, la questione della privacy o del risparmio sui costi quasi sempre emerge. Vuoi distribuire un Llama 3 o Qwen locale, ma poi inizia il mal di testa dell'infrastruttura. Devi configurare vLLM, scrivere un wrapper FastAPI, implementare la risposta in streaming, garantire la compatibilità del formato e in qualche modo wrappare tutto in Docker.

Il team di BentoML ha impacchettato questa routine nell'utility OpenLLM. In sostanza, è uno strumento che prende un modello open dal catalogo e lancia un server completo con endpoint in formato OpenAI tramite un singolo comando da console.

hello

Cosa c'è sotto il cofano e perché ne hai bisogno

OpenLLM non inventa il proprio motore di inferenza da zero. Gli sviluppatori hanno preso soluzioni collaudate e le hanno assemblate in uno stack pronto all'uso:

  • vLLM con paging della memoria ottimizzato viene utilizzato come backend di inferenza.
  • L'utility uv di Astral gestisce i pacchetti e il caricamento rapido delle dipendenze.
  • Il modello viene impacchettato secondo gli standard di BentoML, quindi il server è immediatamente pronto per il deployment su Kubernetes o nel cloud.
  • Per test manuali rapidi, è integrata un'interfaccia web leggera simile a ChatGPT.

Il vantaggio principale di questo approccio è che non devi riscrivere il codice client. Se la tua applicazione funziona già con la libreria standard in Python, TypeScript o Go, ti basta cambiare l'URL base e passare una chiave API fittizia.

Avvio rapido e esecuzione locale

OpenLLM si installa tramite pip standard. Per una verifica di base, c'è un comando di saluto interattivo:

pip install openllm
openllm hello

Per lanciare un modello specifico, usa il comando . Ad esempio, per Llama 3.2:

# Для закрытых моделей Meta нужен токен Hugging Face
export HF_TOKEN=hf_your_token_here

openllm serve llama3.2:1b

Dopo l'esecuzione del comando, un server parte sulla porta 3000. Puoi connetterti immediatamente usando il client OpenAI ufficiale:

from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:3000/v1", 
    api_key="na"
)

chat_completion = client.chat.completions.create(
    model="meta-llama/Llama-3.2-1B-Instruct",
    messages=[
        {
            "role": "user",
            "content": "Объясни квантовую запутанность простыми словами"
        }
    ],
    stream=True,
)

for chunk in chat_completion:
    print(chunk.choices[0].delta.content or "", end="")

Oltre all'SDK Python, il server si connette senza problemi a librerie come LlamaIndex o LangChain. Basta passare .

Interfaccia web integrata e funzionamento tramite terminale

Se non hai voglia di scrivere codice e vuoi solo verificare la qualità delle risposte del modello su prompt specifici, OpenLLM ha un'interfaccia UI integrata. Dopo aver avviato il server, è disponibile all'indirizzo .

openllm_ui

L'interfaccia è minimalista, senza impostazioni extra. Apri una scheda nel browser, inserisci il testo, valuta la velocità di streaming e la generazione.

Per chi preferisce non lasciare mai il terminale, c'è un comando di chat diretta:

openllm run llama3:8b

Apre immediatamente una sessione interattiva per comunicare con il modello direttamente nella console.

Modelli supportati e requisiti hardware

OpenLLM supporta un buon elenco di modelli, da piccole reti locali a varianti massive per cluster:

  • DeepSeek (fino a r1-671b, che richiederà 16 schede da 80 GB ciascuna)
  • La famiglia Llama (versioni 3.1, 3.2, 3.3 e build sperimentali)
  • Qwen 2.5 e Qwen 2.5 Coder
  • Gemma 2 e Gemma 3
  • Mistral 8B e Mistral Large
  • Phi-4

Puoi visualizzare l'intero catalogo con il comando:

openllm model list

Se i pesi sono stati aggiornati o sono stati aggiunti nuovi rilasci al repository centrale, l'elenco si sincronizza tramite . Puoi anche collegare il tuo repository personale con fine-tuning specifici impacchettati in formato BentoML.

Passaggio alla produzione

L'esecuzione locale è ottima per gli esperimenti, ma in produzione il server deve scalare sotto carico. Poiché il progetto è realizzato dagli autori di BentoML, c'è un'integrazione diretta con la loro infrastruttura.

bentocloud_ui

Il deployment su BentoCloud viene fatto letteralmente in una riga:

openllm deploy llama3.2:1b --env HF_TOKEN

Questo distribuisce un servizio pronto all'uso con auto-scaling basato sul conteggio delle richieste, metriche e monitoraggio della latenza senza dover gestire manifest Kubernetes grezzi.

Sfumature e limitazioni

Quando lavori con OpenLLM, dovresti tenere a mente alcune cose:

  1. Appetito di VRAM. Poiché sotto il cofano gira vLLM con memoria pre-allocata per la KV-cache, anche piccoli modelli da 1-3B di parametri potrebbero richiedere circa 12-24 GB di VRAM nella configurazione predefinita. Non potrai eseguire reti pesanti su un normale laptop senza una GPU discreta.
  2. Token Hugging Face. OpenLLM non memorizza i pesi da solo, ma li scarica dall'hub. Per modelli con licenze chiuse (Meta Llama, Mistral), devi ottenere l'accesso su Hugging Face in anticipo e passare la variabile d'ambiente .
  3. Repository pubblici. Attualmente, l'aggiunta di cataloghi di modelli personalizzati è supportata solo per repository Git pubblici.

A chi tornerà utile

OpenLLM colma il divario tra utility domestiche come Ollama e framework enterprise complessi. Se hai bisogno di un backend self-hosted rapido con interfaccia OpenAI per l'integrazione in una pipeline esistente, un servizio basato su BentoML e vLLM può essere assemblato in pochi minuti.

Puoi provare il progetto su qualsiasi macchina con una GPU NVIDIA adatta, a partire da compatte Gemma 2B o Llama 3.2 1B.

Progetti correlati