Utiliser Docker Model Runner
Docker Model Runner peut être intégré avec Docker Compose pour exécuter des modèles d'IA dans le cadre de vos applications multi-conteneurs.
Cela vous permet de définir et d'exécuter des applications alimentées par l'IA aux côtés de vos autres services.
Prérequis
- Docker Compose v2.35 ou plus récent
- Docker Desktop 4.41 ou plus récent
- Docker Desktop pour Mac avec Apple Silicon ou Docker Desktop pour Windows avec GPU NVIDIA
- Docker Model Runner activé dans Docker Desktop
Services de fournisseur
Compose introduit un nouveau type de service appelé provider
qui vous permet de déclarer les capacités de plateforme requises par votre application. Pour les modèles d'IA, vous pouvez utiliser le type model
pour déclarer les dépendances de modèle.
Voici un exemple de comment définir un fournisseur de modèle :
services:
chat:
image: my-chat-app
depends_on:
- ai_runner
ai_runner:
provider:
type: model
options:
model: ai/smollm2
Remarquez l'attribut provider
dédié dans le service ai_runner
.
Cet attribut spécifie que le service est un fournisseur de modèle et vous permet de définir des options telles que le nom du modèle à utiliser.
Il y a aussi un attribut depends_on
dans le service chat
.
Cet attribut spécifie que le service chat
dépend du service ai_runner
.
Cela signifie que le service ai_runner
sera démarré avant le service chat
pour permettre l'injection d'informations de modèle dans le service chat
.
Comment ça fonctionne
Pendant le processus docker compose up
, Docker Model Runner tire et exécute automatiquement le modèle spécifié.
Il envoie également à Compose le nom de tag du modèle et l'URL pour accéder au model runner.
Cette information est ensuite transmise aux services qui déclarent une dépendance sur le fournisseur de modèle.
Dans l'exemple ci-dessus, le service chat
reçoit 2 variables d'environnement préfixées par le nom du service :
AI_RUNNER_URL
avec l'URL pour accéder au model runnerAI_RUNNER_MODEL
avec le nom du modèle qui pourrait être passé avec l'URL pour demander le modèle.
Cela permet au service chat
d'interagir avec le modèle et de l'utiliser pour ses propres besoins.