>_ DevTrendsfr

Langue

Accueil

Langages

Sections

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarqué Sécurité
Python

Comment déployer n'importe quel modèle d'IA open-source avec l'API OpenAI en une seule commande

Lorsqu'un projet OpenAI prend de l'ampleur, la question de la confidentialité ou des économies de coûts se pose presque toujours. Vous souhaitez déployer un Llama 3 ou Qwen local, mais les ennuis d'infrastructure commencent alors. Vous devez configurer vLLM, écrire un wrapper FastAPI, implémenter la réponse en streaming, assurer la compatibilité des formats et somehow wrap everything in Docker.

L'équipe BentoML a regroupé cette routine dans l'utilitaire OpenLLM. En essence, c'est un outil qui prend un modèle ouvert du catalogue et lance un serveur complet avec des points de terminaison au format OpenAI via une seule commande console.

hello

Ce qu'il y a sous le capot et pourquoi vous en avez besoin

OpenLLM n'invente pas son propre moteur d'inférence à partir de zéro. Les développeurs ont pris des solutions éprouvées et les ont assemblées dans une pile prête à l'emploi :

  • vLLM avec le paging mémoire optimisé est utilisé comme backend d'inférence.
  • L'utilitaire uv d'Astral gère les paquets et le chargement rapide des dépendances.
  • Le modèle est conditionné selon les normes BentoML, donc le serveur est immédiatement prêt pour le déploiement sur Kubernetes ou le cloud.
  • Pour les tests manuels rapides, une interface web légère chatgpt- lite est intégrée.

L'avantage principal de cette approche est que vous n'avez pas besoin de réécrire le code client. Si votre application fonctionne déjà avec la bibliothèque standard en Python, TypeScript ou Go, vous avez juste besoin de changer l'URL de base et de passer une clé API factice.

Démarrage rapide et lancement local

OpenLLM s'installe via pip standard. Pour une vérification basique, il y a une commande de salutation interactive :

pip install openllm
openllm hello

Pour lancer un modèle spécifique, utilisez la commande. Par exemple, pour Llama 3.2 :

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

openllm serve llama3.2:1b

Après exécution de la commande, un serveur démarre sur le port 3000. Vous pouvez immédiatement vous y connecter en utilisant le client OpenAI officiel :

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="")

Au-delà du SDK Python, le serveur se connecte sans problème à des bibliothèques comme LlamaIndex ou LangChain. Passez simplement .

Interface web intégrée et fonctionnement via terminal

Si vous n'avez pas envie d'écrire du code pour l'instant et que vous avez juste besoin de vérifier la qualité des réponses du modèle sur des prompts spécifiques, OpenLLM dispose d'une interface utilisateur intégrée. Après le démarrage du serveur, elle est disponible à .

openllm_ui

L'interface est minimaliste, sans paramètres supplémentaires. Ouvrez un onglet dans votre navigateur, entrez du texte, évaluez la vitesse de streaming et la génération.

Pour ceux qui préfèrent ne jamais quitter le terminal, il y a une commande de chat directe :

openllm run llama3:8b

Elle ouvre immédiatement une session interactive pour communiquer avec le modèle directement dans la console.

Modèles pris en charge et exigences matérielles

OpenLLM prend en charge une liste intéressante de modèles, des petits réseaux locaux aux variantes massives pour clusters :

  • DeepSeek (jusqu'à r1-671b, ce qui nécessitera 16 cartes de 80 Go chacune)
  • La famille Llama (versions 3.1, 3.2, 3.3 et builds expérimentaux)
  • Qwen 2.5 et Qwen 2.5 Coder
  • Gemma 2 et Gemma 3
  • Mistral 8B et Mistral Large
  • Phi-4

Vous pouvez consulter l'ensemble du catalogue avec la commande :

openllm model list

Si les poids ont été mis à jour ou que de nouvelles versions ont été ajoutées au dépôt central, la liste se synchronise via . Vous pouvez également connecter votre propre dépôt avec des fine-tunes spécifiques conditionnées au format BentoML.

Passer en production

Le lancement local est idéal pour les expérimentations, mais en production le serveur doit pouvoir monter en charge. Puisque le projet est réalisé par les auteurs de BentoML, il y a une intégration directe avec leur infrastructure.

bentocloud_ui

Le déploiement sur BentoCloud se fait en littéralement une ligne :

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

Cela déploie un service prêt à l'emploi avec l'auto-scaling basé sur le nombre de requêtes, les métriques et la surveillance de la latence sans avoir à gérer des manifests Kubernetes bruts.

Nuances et limitations

Lors du travail avec OpenLLM, vous devez garder à l'esprit quelques points :

  1. Appétit en VRAM. Comme vLLM avec la mémoire pré-allouée pour le KV-cache fonctionne en arrière-plan, même les petits modèles de 1-3B peuvent nécessiter environ 12-24 Go de VRAM dans la configuration par défaut. Vous ne pourrez pas exécuter de réseaux lourds sur un ordinateur portable classique sans GPU dédié.
  2. Jetons Hugging Face. OpenLLM ne stocke pas lui-même les poids, mais les télécharge depuis le hub. Pour les modèles sous licence fermée (Meta Llama, Mistral), vous devez obtenir l'accès sur Hugging Face à l'avance et passer la variable d'environnement .
  3. Dépôts publics. Actuellement, l'ajout de catalogues de modèles personnalisés n'est pris en charge que pour les dépôts Git publics.

À qui cela sera utile

OpenLLM comble le fossé entre les utilitaires domestiques comme Ollama et les frameworks d'entreprise complexes. Si vous avez besoin d'un backend auto-hébergé rapide avec interface OpenAI pour l'intégration dans un pipeline existant, un service basé sur BentoML et vLLM peut être assemblé en quelques minutes.

Vous pouvez essayer le projet sur n'importe quelle machine avec un GPU NVIDIA adapté, en commençant par les modèles compacts Gemma 2B ou Llama 3.2 1B.

Projets similaires