Modèle / jeu de données
xorbitsai/inference avatar
xorbitsai/inference

Xinference : un seul point d'entrée pour servir LLM, parole et modèles multimodaux

Swap GPT for any LLM by changing a single line of code. Xinference lets you run open-source, speech, and multimodal models on cloud, on-prem, or your laptop — all through one unified, production-ready inference API.

9 566 étoiles865 forksPythonApache-2.0

En bref

De quoi s’agit-il ?
Xinference (dépôt xorbitsai/inference) est un serveur d'inférence Python sous licence Apache-2.0 qui unifie le déploiement de modèles texte, vocaux et multimodaux derrière une API compatible OpenAI. Voici ce que le dépôt documente, ce qu'il laisse dans l'ombre, et pour quels usages il tient la route.
À qui s’adresse-t-il ?
Xinference convient aux équipes qui doivent servir plusieurs familles de modèles (texte, parole, multimodal) sur leur propre matériel et veulent une API unique compatible OpenAI, sans écrire un adaptateur par moteur. Il ne convient pas si vous cherchez un simple client pour des API hébergées, ni si vous avez besoin d'un support commercial contractuel : le dépôt renvoie vers une offre Enterprise distincte.
Puis-je l’utiliser commercialement ?
Oui. Apache-2.0 est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
Est-il encore maintenu ?
Oui. Le dépôt a reçu de nouveaux commits au cours des dernières 24 heures.
En quel langage est-il écrit ?
Principalement Python, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Le problème : un moteur d'inférence par famille de modèles

Servir un LLM en local implique de choisir un moteur (vLLM, SGLang, llama.cpp), d'apprendre son API, puis de recommencer pour un modèle de reconnaissance vocale et encore pour un modèle de diffusion d'images. Chaque moteur a ses dépendances, son format de requête et sa façon de gérer la mémoire GPU. Xinference se positionne comme la couche qui absorbe cette diversité : le README décrit une bibliothèque destinée à servir des modèles de langage, de reconnaissance vocale et multimodaux, avec un déploiement en une seule commande. La cible annoncée couvre chercheurs, développeurs et data scientists, ce qui est large. Le point réellement différenciant tient dans la phrase d'accroche du dépôt : remplacer GPT par n'importe quel LLM en changeant une seule ligne de code. Autrement dit, l'interface exposée imite celle d'OpenAI, et le travail d'adaptation se déplace du code client vers le serveur.

Une API compatible OpenAI posée devant plusieurs moteurs

L'architecture visible dans le matériel est celle d'un serveur qui prend en charge l'orchestration et délègue l'exécution à des backends spécialisés. Les topics du dépôt listent vLLM, SGLang, llama-cpp, transformers et diffusers : ce sont les moteurs que Xinference pilote, pas des implémentations qu'il réécrit. Le README mentionne aussi xllamacpp, une liaison Python pour llama.cpp maintenue par l'équipe Xinference, présentée comme supportant le continuous batching. Un détail mérite l'attention : le README évoque un cache KV partagé entre plusieurs réplicas via une amélioration vLLM (PR #2732). C'est le genre d'optimisation qui n'a de sens que si plusieurs réplicas servent le même modèle et que le préfill est répété. Pour la partie distribution, le README cite l'inférence répartie sur plusieurs workers (PR #2877) sans détailler le protocole. Sur ce point précis, la documentation publique du dépôt reste allusive, et il faudra consulter les pages dédiées avant de dimensionner un cluster.

Installation et démarrage : ce que le README donne comme commandes

Le dépôt renvoie à une page d'installation auto-hébergée et à PyPI pour la version publiée. La version courante au moment de la rédaction est v3.3.0, publiée le 30 août 2026, précédée de v3.2.0 (15 août 2026) et v3.1.0 (31 juillet 2026). Le rythme est soutenu : environ deux semaines entre chaque version mineure. Une image Docker existe sous le nom xprobe/xinference sur Docker Hub, ce qui évite de gérer les dépendances CUDA et les roues PyTorch à la main. Le README ne fournit pas dans l'extrait disponible la commande exacte de lancement du serveur ni les clés de configuration ; il faut se référer à la documentation en ligne pour les paramètres de port, de répertoire de modèles et de sélection de moteur. C'est une lacune de l'extrait, pas nécessairement du projet, mais elle signifie qu'on ne peut pas reproduire un démarrage complet à partir du seul README.

Le catalogue de modèles comme argument, et comme charge de maintenance

La section Hot Topics du README énumère une longue série d'ajouts récents : Kimi-K3, GLM-5.2, GLM-Image, les séries WeMM-Embedding (2B, 4B, 9B), NaviDC-OCR, Breeze-TTS-2, ACE-Step 1.5, HiDream-O1, Ideogram4, SenseNova-U1.5-8B-MoT, Ornith 1.5, des modèles de monde (Matrix-Game-3.0-5B, HY-WorldPlay-5B, Astra). Chaque entrée correspond à une pull request. Cette densité dit quelque chose du modèle de maintenance : l'équipe passe l'essentiel de son temps à intégrer des architectures publiées par d'autres. C'est utile pour l'utilisateur, qui n'a pas à écrire le code de chargement. C'est aussi une dépendance : la qualité d'intégration d'un modèle donné varie selon la date de la PR et le moteur sous-jacent. Un modèle listé comme pris en charge peut l'être via transformers (lent, peu optimisé) plutôt que via vLLM (plus rapide mais plus exigeant sur le format). Le README ne donne pas ce niveau de détail dans l'extrait fourni.

Ce que le dépôt ne dit pas

Trois zones d'ombre ressortent. D'abord, la configuration : aucune clé de configuration, aucun fichier YAML d'exemple n'apparaît dans l'extrait. Ensuite, les performances : le README mentionne l'auto-batching (PR #4197) comme améliorant le débit, sans chiffre. Aucun benchmark n'est fourni dans le matériel dont je dispose, et je n'en inventerai pas. Enfin, la séparation entre l'édition open source et l'offre Enterprise : le README pointe vers xinference.co pour l'offre Enterprise, mais ne précise pas la frontière fonctionnelle entre les deux. Si vous évaluez Xinference pour un usage en production, cette frontière est la première question à poser, car elle détermine si une fonctionnalité dont vous dépendez restera dans le dépôt Apache-2.0 ou basculera côté commercial.

Face à un serveur vLLM seul

L'alternative la plus directe est de déployer vLLM directement. vLLM expose lui aussi une API compatible OpenAI et couvre le texte. La différence d'approche est nette : vLLM est un moteur, Xinference est un répartiteur. Avec vLLM seul, vous choisissez un moteur et vous vous y tenez ; vous obtenez un contrôle plus fin sur les paramètres de scheduling et de mémoire, et une surface de dépendances plus petite. Avec Xinference, vous acceptez une couche d'abstraction supplémentaire en échange de la possibilité de servir un modèle Whisper à côté d'un LLM et d'un modèle de diffusion, sans trois serveurs distincts. Le compromis se joue là : moins de composants à exploiter d'un côté, plus de flexibilité de catalogue de l'autre. Si votre besoin se limite à un LLM unique et stable, la couche d'abstraction coûte plus qu'elle ne rapporte.

Licence Apache-2.0 et coût de mise à jour

Le dépôt est publié sous Apache-2.0, ce qui autorise l'usage commercial, la modification et la redistribution, avec les obligations habituelles de conservation des mentions de licence et d'avis. Cette licence couvre le code de Xinference, pas les poids des modèles qu'il sert : chaque modèle listé dans le README (Kimi-K3, GLM-5.2, Ideogram4, etc.) a sa propre licence sur Hugging Face ou ModelScope, et certaines sont restrictives. C'est un point à vérifier modèle par modèle avant tout déploiement commercial ; je ne donne pas d'avis juridique ici. Côté maintenance, le rythme de publication (v3.1.0, v3.2.0, v3.3.0 en deux mois) implique des mises à jour fréquentes si vous voulez suivre les nouveaux modèles. Le README signale explicitement que la v3.0.0 apporte des breaking changes avec des notes de migration. Toute équipe qui épingle une version devra donc planifier des fenêtres de migration, pas seulement des correctifs.

Un usage agentique qui déplace la cible

Le README mentionne une intégration avec Xagent, décrite comme permettant planification dynamique, usage d'outils et raisonnement multi-étapes autonome. C'est un positionnement qui va au-delà du simple serveur d'inférence : Xinference devient le backend d'exécution d'un agent, pas seulement un point d'accès HTTP. Pour un lecteur qui cherche uniquement à remplacer un appel OpenAI par un modèle local, cette couche est hors sujet. Pour celui qui construit un agent, elle signifie que le projet suit une direction précise, avec le risque que les besoins du serveur d'inférence et ceux de l'agent divergent. Le README ne détaille pas comment Xagent s'articule techniquement avec le serveur, et cette intégration reste, dans le matériel disponible, une mention sans contenu vérifiable.

Conclusion éditoriale

Xinference convient aux équipes qui doivent servir plusieurs familles de modèles (texte, parole, multimodal) sur leur propre matériel et veulent une API unique compatible OpenAI, sans écrire un adaptateur par moteur. Il ne convient pas si vous cherchez un simple client pour des API hébergées, ni si vous avez besoin d'un support commercial contractuel : le dépôt renvoie vers une offre Enterprise distincte. Avant de vous engager, vérifiez deux choses concrètement : les notes de migration de la v3.0.0 (le README signale des breaking changes) et le tableau de compatibilité des moteurs pour les modèles que vous visez, car tous ne passent pas par vLLM ou SGLang.

Sources officielles

  1. License: Apache-2.0
  2. Project website
  3. README
  4. Releases
  5. xorbitsai/inference on GitHub
Notes de la communauté

Notes de la communauté