Accéder au contenu principal

Comment utiliser DeepSeek Janus-Pro localement ?

Apprenez à configurer le projet DeepSeek Janus-Pro, à construire votre propre image Docker et à exécuter l'application web Janus localement sur votre ordinateur portable.
Actualisé 29 janv. 2025  · 13 min de lecture

DeepSeek, une startup chinoise spécialisée dans l'IA, a bouleversé le secteur mondial de l'IA, faisant disparaître 1 000 milliards de dollars des bourses américaines et ébranlant des géants de la technologie tels que Nvidia et OpenAI. Il s'est rapidement imposé comme leader dans la génération de texte, le raisonnement, les modèles de vision et la génération d'images. DeepSeek a récemment lancé des modèles de pointe, dont Janus, un modèle multimodal capable de comprendre des données visuelles et de générer des images à partir de textes.

Image par l'auteur

Dans ce tutoriel, nous allons découvrir la série Janus, configurer le projet Janus, construire un conteneur Docker pour exécuter le modèle localement et tester ses capacités à l'aide de diverses images et invites textuelles.

Découvrez les modèles DeepSeek qui bouleversent l'industrie mondiale de l'IA :

Qu'est-ce que la série Janus de DeepSeek ?

La série Janus de DeepSeek est une nouvelle ligne de modèles multimodaux conçus pour unifier les tâches de compréhension et de génération visuelles à l'aide de cadres innovants. La série comprend Janus, JanusFlow et la version avancée Janus-Pro, chacune s'appuyant sur l'itération précédente avec des améliorations notables en termes d'efficacité, de performance et de capacités multimodales.

1. Janus

Janus est un cadre autorégressif innovant qui sépare l'encodage visuel en voies distinctes pour les tâches de compréhension et de génération, tout en utilisant une architecture de transformateur unifiée. Cette approche résout les conflits entre ces rôles, améliorant ainsi la flexibilité et l'efficacité. Janus égale ou dépasse les modèles spécifiques à une tâche, ce qui en fait un candidat solide pour les systèmes multimodaux de la prochaine génération.

2. JanusFlow

JanusFlow combine la modélisation linguistique autorégressive avec le flux rectifié, une technique de modélisation générative de pointe. Sa conception minimaliste permet une formation aisée au sein de grands modèles linguistiques sans nécessiter de modifications compliquées. JanusFlow démontre des performances supérieures à celles des approches spécialisées et unifiées, repoussant ainsi les limites de la modélisation du langage visuel.

3. Janus-Pro

Janus-Pro améliore les modèles précédents en introduisant des stratégies d'entraînement optimisées, des ensembles de données d'entraînement élargis et une mise à l'échelle pour des modèles de plus grande taille. Ces avancées améliorent considérablement la compréhension multimodale et le suivi des instructions texte-image tout en garantissant une génération texte-image plus stable.

Comparaison avec Janus Pro

Source : deepseek-ai/Janus

Consultez le site DeepSeek's Janus-Pro : Caractéristiques, comparaison avec DALL-E 3 et autres pour en savoir plus sur la série Janus, comment y accéder et comment elle se compare à DALL-E 3 d'OpenAI.

Mise en place du projet Janus

Janus est un modèle relativement nouveau, et il n'existe actuellement aucune version quantifiée ou application locale d'IA disponible pour une utilisation facile sur les ordinateurs portables ou de bureau. 

Cependant, le dépôt Janus sur GitHub fournit une excellente version de Gradio que tout le monde peut essayer. Le problème, cependant, c'est que la démo ne fonctionne souvent pas en raison de multiples conflits de paquets.

Pour résoudre ce problème, dans ce projet, nous allons modifier le code original, construire notre propre image Docker et exécuter le conteneur localement à l'aide de l'application Docker Desktop. 

1. Installer Docker Desktop

Pour commencer, téléchargez et installez la dernière version de Docker Desktop sur le site officiel de Docker.

Note pour les utilisateurs de Windows :

Si vous utilisez Windows, vous devrez également installer le sous-système Windows pour Linux (WSL). Ouvrez votre terminal et exécutez la commande suivante pour installer WSL :

wsl --install

2. Cloner le dépôt Janus

Ensuite, clonez le dépôt Janus depuis GitHub et naviguez jusqu'au répertoire du projet :

git clone https://github.com/deepseek-ai/Janus.git
cd Janus

3. Modifier le code de la démo

Naviguez jusqu'au dossier demo et ouvrez le fichier app_januspro.py dans votre éditeur de code préféré. Apportez les modifications suivantes :

  1. Modifier le nom du modèle : Remplacez deepseek-ai/Janus-Pro-7B par deepseek-ai/Janus-Pro-1B.

Cette opération permet de charger la version allégée du modèle, qui ne pèse que 4,1 Go, ce qui la rend plus adaptée à une utilisation locale.

Modifier le fichier de l'application web janus pro

  1. Mettez à jour la dernière ligne du script : Modifiez la fonction demo.queue comme suit :
demo.queue(concurrency_count=1, max_size=10).launch(
    server_name="0.0.0.0", server_port=7860
)

Modifier le fichier de l'application web janus pro

Ce changement assure la compatibilité avec l'URL et le port de Docker.

4. Créez une image Docker

Pour conteneuriser l'application, créez un site Dockerfile dans le répertoire racine du projet. Utilisez le contenu suivant pour le site Dockerfile:

# Use the PyTorch base image
FROM pytorch/pytorch:latest

# Set the working directory inside the container
WORKDIR /app

# Copy the current directory into the container
COPY . /app

# Install necessary Python packages
RUN pip install -e .[gradio]

# Set the entrypoint for the container to launch your Gradio app
CMD ["python", "demo/app_januspro.py"]

Le Dockerfile devra : 

  • Créez une image Docker en utilisant l'image de base PyTorch.
  • Il définit le répertoire de travail à l'intérieur du conteneur.
  • Tous les fichiers nécessaires de votre machine locale seront copiés dans le répertoire /app du conteneur Docker.
  • Le fichier Docker installera toutes les dépendances nécessaires à l'application.
  • Enfin, il lancera l'application Gradio dans le conteneur.

Construction et exécution de l'image Docker 

Une fois que le site Dockerfile est prêt, nous allons construire l'image Docker et lancer le conteneur.

Vous pouvez suivre le cours Introduction à Docker pour apprendre les bases de la construction et du déploiement d'une image Docker.

Tapez la commande suivante dans le terminal pour créer l'image Docker. Cette commande utilisera l'image Dockerfile située dans le dossier racine et lui attribuera le nom janus:

docker build -t janus . 

Il faut 10 à 15 minutes, en fonction de votre vitesse Internet, pour construire l'image à partir de zéro. 

construire l'image Docker Janus

La commande suivante démarre un conteneur Docker pour l'application Janus. Il permet la prise en charge du GPU, mappe le port 7860 pour l'accès à l'application Gradio, et assure un stockage persistant pour les fichiers de modèle de Hugging Face.

docker run -it -p 7860:7860 -d -v huggingface:/root/.cache/huggingface -w /app --gpus all --name janus janus:latest

Si vous ouvrez l'application Docker Desktop et naviguez vers l'onglet "Containers", vous verrez que le conteneur janus est en cours d'exécution. Cependant, il n'est pas encore prêt à être utilisé.

Exécution de l'image Janus dans le conteneur.

Pour vérifier sa progression, cliquez sur le conteneur janus et allez ensuite dans l'onglet "Logs". Ici, vous remarquerez que le conteneur est en train de télécharger le fichier de modèle à partir du Hub Hugging Face.

Journaux sur le conteneur Janus

Une fois que le modèle a été téléchargé avec succès, les journaux affichent un message indiquant que l'application est en cours d'exécution.

Le modèle a été téléchargé avec succès et l'application web fonctionne.

Vous pouvez ensuite accéder à votre candidature en visitant l'URL suivante dans votre navigateur : http://localhost:7860/.

Si vous rencontrez des problèmes, veuillez consulter la version mise à jour du projet Janus à l'adressekingabzpro/Janus : Série Janus.

Test du modèle Janus Pro

L'interface de l'application web est claire et tout semble bien fonctionner. Dans cette section, nous allons tester les capacités de compréhension multimodale et de génération de texte à partir d'images du Janus Pro.

Tester la compréhension multimodale

Pour évaluer la compréhension multimodale du modèle, nous chargeons d'abord une image du tutoriel de DataCamp et demandons au modèle de l'expliquer. Les résultats sont impressionnants - même avec le modèle 1B plus petit, la réponse est très précise et détaillée.                                                                                                    

Application web Janus Compréhension multimodale de l'interface utilisateur

Ensuite, nous chargeons une autre image et demandons au modèle de résumer le contenu d'une infographie. Le modèle comprend avec succès le texte de l'image et fournit une réponse très précise et cohérente. Cela démontre la forte capacité du modèle à traiter et à interpréter les éléments visuels et textuels.

Application web Janus Compréhension multimodale de l'interface utilisateur

Test de la génération de texte à partir d'images

En faisant défiler l'application, vous trouverez la section "Génération de texte à partir d'images". Ici, vous pouvez saisir une invite de votre choix et cliquer sur le bouton "Générer des images". Le modèle génère cinq variations de l'image, ce qui peut prendre quelques minutes.

Application Web Janus IU Générations de textes vers des images

Les résultats sont remarquables, produisant des sorties comparables à Stable Diffusion XL en termes de qualité et de détails.

Vous pouvez apprendre à peaufiner Stable Diffusion XL avec DreamBooth et LoRA sur vos images personnelles.

Application Web Janus IU Générations de textes vers des images

Essayons une autre invite :

Prompt :

"L'image présente un œil au dessin complexe sur un fond circulaire orné de motifs tourbillonnants ornés qui évoquent à la fois le réalisme et le surréalisme. Au centre de l'attention se trouve un iris d'un bleu saisissant, entouré de délicates veines qui rayonnent vers l'extérieur à partir de la pupille pour créer de la profondeur et de l'intensité. Les cils sont longs et foncés, projetant des ombres subtiles sur la peau autour d'eux, qui apparaît lisse mais légèrement texturée, comme si elle avait vieilli ou s'était altérée avec le temps.

Au-dessus de l'œil, une structure en pierre ressemble à une partie de l'architecture classique, ajoutant des couches de mystère et d'élégance intemporelle à la composition. Cet élément architectural contraste fortement mais harmonieusement avec les courbes organiques qui l'entourent. Sous l'œil se trouve un autre motif décoratif rappelant l'art baroque, qui renforce encore le sentiment général d'éternité encapsulé dans chaque détail méticuleusement travaillé.

Dans l'ensemble, l'atmosphère dégage une aura mystérieuse qui s'entrelace harmonieusement avec des éléments suggérant l'intemporalité, obtenue par la juxtaposition de textures réalistes et de fioritures artistiques surréalistes. Chaque élément, depuis les motifs complexes qui encadrent l'œil jusqu'à la pièce de pierre d'apparence ancienne qui se trouve au-dessus, contribue de manière unique à la création d'un tableau visuellement captivant, empreint d'une allure énigmatique."

Application Web Janus IU Générations de textes vers des images

Une fois de plus, les résultats sont stupéfiants. Les images générées capturent les détails complexes et les éléments artistiques surréalistes décrits dans le texte.

Conclusion

Pour tester toutes les capacités du modèle, DeepSeek a déployé la même version de l'application web sur Hugging Face Spaces. Vous pouvez y accéder à l'adresse suivante Chat avec Janus-Pro-7B. L'une des principales caractéristiques du modèle Janus Pro est sa grande précision, même lorsque vous utilisez des variantes plus petites comme le modèle 1B.

Dans ce tutoriel, nous avons exploré Janus Pro, un modèle multimodal capable de comprendre des images et de générer des images à partir d'invites textuelles. En outre, nous avons construit notre propre solution locale pour utiliser le modèle en privé sur un GPU d'ordinateur portable. Cette configuration est rapide, efficace et vous permet d'expérimenter librement avec des ressources limitées.

Consultez notre dernier guide sur Le réglage fin de DeepSeek R1 (modèle de raisonnement). Vous apprendrez à entraîner le modèle de raisonnement sur l'ensemble de données de la chaîne de pensée médicale afin de construire de meilleurs médecins IA pour l'avenir.


Abid Ali Awan's photo
Author
Abid Ali Awan
LinkedIn
Twitter

En tant que data scientist certifié, je suis passionné par l'utilisation des technologies de pointe pour créer des applications innovantes d'apprentissage automatique. Avec une solide expérience en reconnaissance vocale, en analyse de données et en reporting, en MLOps, en IA conversationnelle et en NLP, j'ai affiné mes compétences dans le développement de systèmes intelligents qui peuvent avoir un impact réel. En plus de mon expertise technique, je suis également un communicateur compétent, doué pour distiller des concepts complexes dans un langage clair et concis. En conséquence, je suis devenu un blogueur recherché dans le domaine de la science des données, partageant mes idées et mes expériences avec une communauté grandissante de professionnels des données. Actuellement, je me concentre sur la création et l'édition de contenu, en travaillant avec de grands modèles linguistiques pour développer un contenu puissant et attrayant qui peut aider les entreprises et les particuliers à tirer le meilleur parti de leurs données.

Sujets

Principaux cours sur l'IA

cours

Introduction to LLMs in Python

4 hr
12.3K
Learn the nuts and bolts of LLMs and the revolutionary transformer architecture they are based on!
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow
Apparenté

blog

Les 32 meilleures questions d'entretien sur AWS et leurs réponses pour 2024

Un guide complet pour explorer les questions d'entretien AWS de base, intermédiaires et avancées, ainsi que des questions basées sur des situations réelles. Il couvre tous les domaines, garantissant ainsi une stratégie de préparation bien équilibrée.
Zoumana Keita 's photo

Zoumana Keita

30 min

blog

Les 20 meilleures questions d'entretien pour les flocons de neige, à tous les niveaux

Vous êtes actuellement à la recherche d'un emploi qui utilise Snowflake ? Préparez-vous à répondre à ces 20 questions d'entretien sur le flocon de neige pour décrocher le poste !
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

20 min

blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates a offert plus de 20k bourses d'études à nos partenaires à but non lucratif au deuxième trimestre 2023. Découvrez comment des apprenants défavorisés et assidus ont transformé ces opportunités en réussites professionnelles qui ont changé leur vie.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

blog

2022-2023 Rapport annuel DataCamp Classrooms

À l'aube de la nouvelle année scolaire, DataCamp Classrooms est plus motivé que jamais pour démocratiser l'apprentissage des données, avec plus de 7 650 nouveaux Classrooms ajoutés au cours des 12 derniers mois.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 min

blog

Célébration de Saghar Hazinyar : Une boursière de DataCamp Donates et une diplômée de Code to Inspire

Découvrez le parcours inspirant de Saghar Hazinyar, diplômée de Code to Inspire, qui a surmonté les défis en Afghanistan et s'est épanouie grâce à une bourse de DataCamp Donates.
Fereshteh Forough's photo

Fereshteh Forough

4 min

blog

Nous avons fait don de bourses DataCamp Premium à un million de personnes, et ce n'est pas fini.

Réparties entre nos deux programmes d'impact social, DataCamp Classrooms et #DCDonates, les bourses offrent un accès illimité à tout ce que DataCamp Premium a à offrir.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

Voir plusVoir plus