Conteneuriser une application d'IA générative
Prérequis
NoteLes applications GenAI peuvent souvent bénéficier de l'accélération GPU. Actuellement, Docker Desktop ne prend en charge l'accélération GPU que sur Windows avec le backend WSL2. Les utilisateurs de Linux peuvent également accéder à l'accélération GPU en utilisant une installation native de Docker Engine.
- Vous avez installé la dernière version de Docker Desktop ou, si vous êtes un utilisateur Linux et prévoyez d'utiliser l'accélération GPU, Docker Engine. Docker ajoute régulièrement de nouvelles fonctionnalités et certaines parties de ce guide peuvent ne fonctionner qu'avec la dernière version de Docker Desktop.
- Vous disposez d'un client git. Les exemples de cette section utilisent un client git en ligne de commande, mais vous pouvez utiliser n'importe quel client.
Aperçu
Cette section vous guide dans la conteneurisation d'une application d'IA générative (GenAI) à l'aide de Docker Desktop.
NoteVous pouvez voir plus d'exemples d'applications GenAI conteneurisées dans les applications de démonstration de GenAI Stack.
Obtenir l'application exemple
L'application exemple utilisée dans ce guide est une version modifiée de l'application PDF Reader des applications de démonstration de GenAI Stack. L'application est une application Python full stack qui vous permet de poser des questions sur un fichier PDF.
L'application utilise LangChain pour l'orchestration, Streamlit pour l'interface utilisateur, Ollama pour exécuter le LLM, et Neo4j pour stocker les vecteurs.
Clonez l'application exemple. Ouvrez un terminal, placez-vous dans le répertoire dans lequel vous souhaitez travailler et exécutez la commande suivante pour cloner le dépôt :
$ git clone https://github.com/craig-osterhout/docker-genai-sample
Vous devriez maintenant avoir les fichiers suivants dans votre répertoire docker-genai-sample
.
├── docker-genai-sample/
│ ├── .gitignore
│ ├── app.py
│ ├── chains.py
│ ├── env.example
│ ├── requirements.txt
│ ├── util.py
│ ├── LICENSE
│ └── README.md
Initialiser les ressources Docker
Maintenant que vous avez une application, vous pouvez utiliser docker init
pour créer les ressources Docker nécessaires à la conteneurisation de votre application. À l'intérieur du répertoire docker-genai-sample
, exécutez la commande docker init
. docker init
fournit une configuration par défaut, mais vous devrez répondre à quelques questions sur votre application. Par exemple, cette application utilise Streamlit pour s'exécuter. Référez-vous à l'exemple docker init
suivant et utilisez les mêmes réponses pour vos invites.
$ docker init
Welcome to the Docker Init CLI!
This utility will walk you through creating the following files with sensible defaults for your project:
- .dockerignore
- Dockerfile
- compose.yaml
- README.Docker.md
Let's get started!
? What application platform does your project use? Python
? What version of Python do you want to use? 3.11.4
? What port do you want your app to listen on? 8000
? What is the command to run your app? streamlit run app.py --server.address=0.0.0.0 --server.port=8000
Vous devriez maintenant avoir le contenu suivant dans votre répertoire docker-genai-sample
.
├── docker-genai-sample/
│ ├── .dockerignore
│ ├── .gitignore
│ ├── app.py
│ ├── chains.py
│ ├── compose.yaml
│ ├── env.example
│ ├── requirements.txt
│ ├── util.py
│ ├── Dockerfile
│ ├── LICENSE
│ ├── README.Docker.md
│ └── README.md
Pour en savoir plus sur les fichiers ajoutés par docker init
, consultez les rubriques suivantes :
Exécuter l'application
À l'intérieur du répertoire docker-genai-sample
, exécutez la commande suivante dans un terminal.
$ docker compose up --build
Docker construit et exécute votre application. En fonction de votre connexion réseau, le téléchargement de toutes les dépendances peut prendre plusieurs minutes. Vous verrez un message comme celui-ci dans le terminal lorsque l'application sera en cours d'exécution.
server-1 | You can now view your Streamlit app in your browser.
server-1 |
server-1 | URL: http://0.0.0.0:8000
server-1 |
Ouvrez un navigateur et affichez l'application à l'adresse http://localhost:8000. Vous devriez voir une application Streamlit simple. Le téléchargement du modèle d'intégration peut prendre quelques minutes. Pendant le téléchargement, Running apparaît dans le coin supérieur droit.
L'application nécessite un service de base de données Neo4j et un service LLM pour fonctionner. Si vous avez accès à des services que vous avez exécutés en dehors de Docker, spécifiez les informations de connexion et essayez-le. Si vous n'avez pas les services en cours d'exécution, poursuivez ce guide pour apprendre comment vous pouvez exécuter tout ou partie de ces services avec Docker.
Dans le terminal, appuyez sur ctrl
+c
pour arrêter l'application.
Résumé
Dans cette section, vous avez appris comment conteneuriser et exécuter votre application GenAI à l'aide de Docker.
Informations connexes :
Prochaines étapes
Dans la section suivante, vous apprendrez comment exécuter votre application, votre base de données et votre service LLM localement à l'aide de Docker.