Avec toutes les discussions sur les chatbots tels que ChatGPT, il est facile d’oublier que le chat textuel n’est qu’une des nombreuses fonctions de l’IA. L’IA générative idéale serait capable de travailler sur différents modèles selon les besoins, en interprétant et en générant des images, de l’audio et de la vidéo.
Entrez Jarvis, un nouveau projet de Microsoft qui promet un bot pour les gouverner tous. Jarvis utilise ChatGPT comme contrôleur pour un système où il peut utiliser une variété d’autres modèles selon les besoins pour répondre à votre invite. Dans un papier (s’ouvre dans un nouvel onglet) publié par l’Université Cornell, des chercheurs de Microsoft (Yongliang Shen, Kaitao Song, Xu Tan, Dongsheng Li, Weiming Lu et Yueting Zhuang) expliquent le fonctionnement de ce framework. Un utilisateur fait une demande au bot, il planifie la tâche, choisit les modèles dont il a besoin, fait exécuter la tâche par ces modèles, puis génère et émet une réponse.
Le tableau ci-dessous, fourni dans le document de recherche, montre comment ce processus fonctionne dans le monde réel. Un utilisateur demande au bot de créer une image où une fille lit un livre et elle est positionnée de la même manière qu’un garçon dans un exemple d’image. Le bot planifie la tâche, utilise un modèle pour interpréter la pose du garçon dans l’image d’origine, puis déploie un autre modèle pour dessiner la sortie.
Microsoft a une page Github (s’ouvre dans un nouvel onglet) où vous pouvez télécharger et essayer Jarvis sur un PC sous Linux. La société vous recommande d’utiliser Ubuntu (la version obsolète 16 LTS en particulier), mais j’ai pu en obtenir la principale fonctionnalité – un chatbot basé sur un terminal – fonctionnant sur Ubuntu 22.04 LTS et sur le sous-système Windows pour Linux.
Cependant, à moins que vous n’aimiez vraiment l’idée de jouer avec les fichiers de configuration, la meilleure façon de vérifier Jarvis est d’utiliser HuggingGPT (s’ouvre dans un nouvel onglet)un chatbot basé sur le Web que les recherches de Microsoft ont mis en place chez Hugging Face, une communauté d’IA en ligne qui héberge des milliers de modèles open source.
Si vous suivez les étapes ci-dessous, vous aurez un chatbot fonctionnel auquel vous pourrez montrer des images ou d’autres médias et lui demander de produire également des images. Je dois noter que, comme pour les autres robots que j’ai essayés, les résultats étaient très mitigés.
Comment configurer et essayer Microsoft Jarvis / HuggingGPT
1. Obtenir une clé API OpenAPI si vous n’en avez pas déjà un. Vous pouvez l’obtenir sur le site Web d’OpenAPI (s’ouvre dans un nouvel onglet) en vous connectant et en cliquant sur « Créer une nouvelle clé secrète ». L’inscription est gratuite et vous obtiendrez un montant de crédit gratuit, mais vous devrez payer plus si vous l’utilisez. Stockez la clé quelque part, comme dans un fichier texte, où vous pourrez facilement y accéder. Une fois que vous l’avez copié, vous ne pouvez plus jamais le récupérer.
2. Créez un compte gratuit sur Hugging Face si vous n’en avez pas déjà un et connexion au chantier. Le site est situé à huggingface.co (s’ouvre dans un nouvel onglet) pas huggingface.com.
3. Accédez à Paramètres -> Jetons d’accès en cliquant sur les liens dans le rail de gauche.
4. Cliquez sur Nouveau jeton.
5. Nommez le jeton (rien du tout), sélectionnez « écrire » comme rôle et cliquez sur Générer.
6. Copiez la clé API et gardez-le dans un endroit où vous pouvez facilement y accéder.
7. Naviguez vers le Page GPT (s’ouvre dans un nouvel onglet)
8. Collez votre clé OpenAPI et Jeton Visage étreignant dans les champs appropriés. Alors appuyez sur le bouton soumettre à côté de chacun.
9. Entrez votre invite dans la boîte de requête et cliquez sur Envoyer.
Comment configurer Jarvis / Hugging GPT sous Linux
Il est beaucoup plus facile d’utiliser HuggingGPT sur le site Web de Hugging Face. Cependant, si vous voulez essayer de l’installer sur votre PC Ubuntu local, voici comment procéder. Vous pouvez également être en mesure de le modifier pour utiliser plus de modèles.
1. Installer git si vous ne l’avez pas déjà.
sudo apt install git
2. Cloner le référentiel Jarvis depuis votre répertoire personnel.
git clone https://github.com/microsoft/JARVIS
3. Accédez au dossier Jarvis/server/configs.
cd JARVIS/server/configs
4. Modifier les fichiers de configuration et entrez votre clé API OpenAI et les jetons Hugging Face, le cas échéant. Il s’agit de config.azure.yaml, config.default.yaml, config.gradio.yaml et config.lite.yaml. Dans ce tutoriel, nous n’utiliserons que le fichier gradio, il est logique de tous les éditer. Vous pouvez les modifier à l’aide de nano (ex : nano config.gradio.yaml). Si vous ne disposez pas de ces clés API, vous pouvez les obtenir gratuitement auprès d’OpenAI (s’ouvre dans un nouvel onglet)et embrasser le visage (s’ouvre dans un nouvel onglet).
5. Installer Miniconda si vous ne l’avez pas déjà installé. Vous devrez télécharger la dernière version depuis le site Miniconda (s’ouvre dans un nouvel onglet). Après avoir téléchargé le programme d’installation, vous l’installez en allant dans le dossier Téléchargements et en entrant frapper suivi du nom du script d’installation.
bash Miniconda3-latest-Linux-x86_64.sh
Vous serez invité à accepter un contrat de licence et à confirmer l’emplacement d’installation. Après avoir installé Miniconda, fermez et rouvrez toutes les fenêtres du terminal afin que la commande conda soit maintenant dans votre chemin de fichier. S’il ne se trouve pas dans votre chemin, essayez de redémarrer.
6. Revenez au JARVIS/serveur annuaire.
7. Créez et activez un environnement jarvis conda.
conda create -n jarvis python=3.8
conda activate jarvis
8. Installer des dépendances et des modèles.
conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia
pip install -r requirements.txt
cd models
bash download.sh # required when `inference_mode` is `local` or `hybrid`.
9. Retournez au dossier JARVIS/servers.
dix. Exécutez la commande pour lancer le serveur Web local HuggingGPT en utilisant gradio.
python run_gradio_demo.py --config configs/config.gradio.yaml
Vous recevrez alors une URL locale que vous pourrez visiter dans votre navigateur Web. Dans mon cas, c’était http://127.0.0.1:7860.
11. Visitez l’URL (ex : http://127.0.0.1:7860) dans votre navigateur. Si vous utilisez Ubuntu dans une machine virtuelle, utilisez le navigateur dans la machine virtuelle.
12. Entrez votre clé API OpenAPI dans la case en haut de la page Web.
13. Entrez votre ou vos invites dans la boîte de dialogue et appuyez sur Entrée.
L’utilisation du serveur gradio n’est qu’un moyen possible d’interagir avec Jarvis sous Linux. La page Jarvis Github (s’ouvre dans un nouvel onglet) a plus de choix. Celles-ci incluent l’utilisation du serveur de modèles ou le démarrage d’un chat basé sur la ligne de commande.
Je ne pouvais pas faire fonctionner la plupart de ces méthodes (le chat en ligne de commande fonctionnait bien mais n’était pas une interface aussi agréable que celle du Web). De plus, vous pourrez peut-être installer plus de modèles et lancer la génération de texte en vidéo (ce que je n’ai pas pu).
Quoi essayer avec Jarvis / Hugging GPT
Le bot peut répondre à des questions textuelles standard, ainsi qu’à des questions portant sur les images, l’audio et la vidéo. Il peut aussi potentiellement générer des images, du son ou de la vidéo pour vous. Je dis potentiellement parce que, si vous utilisez la version Web, elle est limitée par les modèles gratuits auxquels elle peut accéder à partir de Hugging Face. Sur la version Linux, vous pourrez peut-être ajouter des modèles supplémentaires.
Il existe des exemples de requêtes répertoriés sous la boîte d’invite sur lesquelles vous pouvez cliquer et essayer. Il s’agit notamment de lui donner trois exemples d’images et de lui faire compter le nombre de zèbres qu’il contient, de lui demander de raconter une blague et de montrer une photo de chat ou de lui demander de générer une image qui ressemble à une autre.
Puisqu’il est basé sur le Web, la façon de l’alimenter en images consiste à lui envoyer les URL des images qui sont en ligne. Cependant, si vous êtes capable d’utiliser la version Linux, vous pouvez stocker des images localement dans le dossier JARVIS/server/public et y faire référence par des URL relatives (ex : /myimage.jpg serait dans le dossier public dossier et /examples/myimage.jpg seraient dans le sous-dossier examples de public).
La plupart des requêtes originales que j’ai essayées ne se sont pas particulièrement bien déroulées. La reconnaissance d’image était particulièrement mauvaise. Lorsque je lui ai fourni des images de SSD M.2 et demandé où je pouvais en acheter un, il m’a dit qu’il avait identifié les SSD comme une valise, puis m’a dit de trouver « un magasin ».
De même, lorsque je lui ai fourni une capture d’écran de Minecraft et que je lui ai demandé où je pouvais l’acheter, il a faussement affirmé qu’il avait vu un cerf-volant voler dans les airs. Il pensait qu’un RTX 4070 était une photo en noir et blanc d’un ordinateur. Et quand j’ai demandé où je pouvais en acheter un, il m’a répondu « vous pouvez acheter l’un de ces articles dans notre boutique en ligne ou auprès de divers détaillants près de chez vous ». mais il n’y avait aucun lien réel vers une véritable boutique en ligne.
Ce n’était pas très bon pour générer des images à la demande. Par exemple, je lui ai demandé de dessiner Abraham Lincoln au volant d’une décapotable et il m’a juste donné un buste simple de l’ancien président.
En bref, mis à part les exemples spécifiques suggérés par Microsoft, la plupart des requêtes ne se sont pas particulièrement bien déroulées. Mais comme avec d’autres frameworks d’IA tels que Auto-GPT et BabyAGI, le problème réside dans les modèles que vous utilisez et, à mesure que les modèles s’améliorent, votre sortie s’améliorera également. Si vous souhaitez essayer des agents autonomes, consultez nos tutoriels sur l’utilisation d’Auto-GPT et sur l’utilisation de BabyAGI.