Accéder au contenu principal

5 projets que vous pouvez réaliser avec des modèles d'IA générative (avec exemples)

Apprenez à utiliser des modèles d'IA générative pour créer un éditeur d'images, un chatbot de type ChatGPT avec peu de ressources, une application de classification d'approbation de prêt, automatiser les Interactions PDF et un assistant vocal alimenté par GPT.
Actualisé 14 nov. 2024  · 10 min de lecture

Une IA jongle avec les tâches

Dans ce billet, nous allons explorer cinq projets d'IA générative qui vous aideront à construire et à renforcer votre portefeuille d'apprentissage automatique et de science des données. Ces projets sont conçus pour améliorer votre compréhension des technologies de pointe telles que Stable Diffusion, Segment Anything, LangChain, Alpaca-LoRA, et bien d'autres encore.

Que vous soyez novice en matière d'IA générative ou que vous ayez une certaine expérience, ces projets vous permettront d'acquérir des compétences précieuses qui vous aideront à vous démarquer lors des candidatures et des entretiens d'embauche.

Pour en savoir plus sur la série GPT, qui comprend GPT-1, GPT-2, GPT-3 et GPT-4, consultez l'article intitulé "Qu'est-ce que GPT-4 et pourquoi est-ce important ?

1. StableSAM : Stable Diffusion Inpainting with Segment Anything (peinture par diffusion stable avec segment)

Dans ce projet, vous utiliserez le segment-anything de Meta, les diffuseurs Hugging Face et Gradio pour créer une application qui peut changer l'arrière-plan, le visage, les vêtements ou tout autre élément que vous sélectionnez. Il ne demande que l'image, la zone sélectionnée et l'invite.

Cas d'utilisation :

StableSAM est parfait pour les professionnels de la création dans les secteurs du marketing numérique, de la conception et du divertissement. Il permet aux utilisateurs de modifier des parties spécifiques d'images avec précision, ce qui le rend idéal pour des tâches telles que le changement d'arrière-plan, la modification de tenues ou la modification d'objets dans du matériel promotionnel. Pour les amateurs, il s'agit d'un outil fantastique pour la personnalisation d'images sans avoir besoin de compétences avancées en matière de conception.

Les compétences que vous apprendrez :

  • Mise en œuvre d'un pipeline d'inpainting d'images utilisant la Stable Diffusion
  • Travailler avec le Segment Anything Model (SAM) de Meta pour la segmentation d'images
  • Créer une application web interactive avec Gradio
  • Utilisation des diffuseurs Hugging Face pour le déploiement des modèles

Créer un pipeline de peinture par diffusion stable

Nous allons créer un pipeline d'Inpainting par Stable Diffusion en utilisant les poids des diffuseurs et des modèles disponibles sur stabilityai/stable-diffusion-2-inpainting - Hugging Face. Ensuite, nous l'ajouterons à CUDA pour l'accélération GPU. 

Définition du masque d'image et de la fonction d'inpainting

La fonction de masque d'image est créée à l'aide de SAM Predictor. Il prend une image, la section image élue et une valeur booléenne is_backgroud pour créer une image masquée et une segmentation. 

Ensuite, la fonction d'inpainting utilise le pipeline Stable Diffusion Inpainting pour modifier les parties sélectionnées des images. Les pipelines nécessitent une image d'entrée, une image masquée, une image segmentée, un texte d'invite et un texte d'invite négatif.  

Création de l'interface utilisateur de Gradio

Vous allez créer une ligne et ajouter trois blocs d'images. Pour un produit viable minimal, vous devez ajouter une ligne supplémentaire avec un bouton de soumission. Ensuite, vous devez modifier l'objet image d'entrée pour sélectionner les pixels, générer le masque et la segmentation, et ajouter une action au bouton de soumission pour exécuter la fonction d'inpainting.

Gradio est assez facile à apprendre. Vous pouvez tout apprendre en lisant les documents de Gradio

Version améliorée de StableSAM

La version améliorée de StableSAM est disponible chez Hugging Face. Elle comprend un pipeline d'inpainting personnalisé qui utilise ControlNet. Il utilise Runway ML Stable Diffusion Inpainting au lieu de Stability AI. 

Paquet StableSAM

Comme vous pouvez le constater, la version finale de l'application est claire, avec un bloc de segmentation, un bouton propre, une option d'arrière-plan et une invite négative. 

Démonstration de StableSAM

Ressources : 

2. Alpaca-LoRA : Créez un chatbot de type ChatGPT avec des ressources minimales 

L'Alpaca-LoRA fournit tous les composants nécessaires pour que vous puissiez créer votre propre chatbot spécialisé de type ChatGPT en utilisant un seul GPU. Dans ce projet, nous examinerons la configuration initiale, l'entraînement, le script d'inférence et le client natif pour l'exécution de l'inférence sur le processeur.

Cas d'utilisation :

Ce projet est excellent pour ceux qui s'intéressent à la construction de systèmes d'intelligence artificielle conversationnelle personnalisés. Que vous créiez un chatbot de service à la clientèle pour une petite entreprise ou que vous développiez un assistant personnel, Alpaca-LoRA offre un moyen efficace de former un chatbot spécialisé en utilisant des ressources informatiques limitées. Ce projet est idéal pour expérimenter la mise au point d'un modèle de langage avec un budget limité.

Les compétences que vous apprendrez :

  • Ajustement des modèles linguistiques avec LoRA sur un seul GPU
  • Mise en place et utilisation de l'ensemble de données Stanford Alpaca
  • Exécution de scripts d'inférence sur des environnements à faibles ressources (par exemple, Raspberry Pi)
  • Déployer une interface de chatbot basée sur Gradio
  • Comprendre comment les grands modèles linguistiques tels que LLaMA sont formés et optimisés

Configuration locale

  1. Dépôt clone : tloen/alpaca-lora
  2. Installez les dépendances en utilisant pip install -r requirements.txt
  3. Si bitsandbytes ne fonctionne pas, installez-le à partir de la source

Formation

Dans cette partie, nous examinerons le script de réglage fin que vous pouvez exécuter sur le modèle LLaMA en utilisant le modèle Stanford Alpaca nettoyé. 

Vous pouvez consulter le référentiel pour ajuster les hyperparamètres afin d'améliorer les performances.

python finetune.py \
    --base_model 'decapoda-research/llama-7b-hf' \
    --data_path 'yahma/alpaca-cleaned' \
    --output_dir './lora-alpaca'

Inférence

Le script d'inférence lit le modèle LLaMA de base à partir de Hugging Face et charge les poids LoRA pour exécuter une interface Gradio. 

python generate.py \
    --load_8bit \
    --base_model 'decapoda-research/llama-7b-hf' \
    --lora_weights 'tloen/alpaca-lora-7b'

Vous pouvez également utiliser alpaca.cpp pour faire fonctionner les modèles alpaca sur un CPU ou un Raspberry Pi 4 avec 4 Go de RAM. En outre, vous pouvez utiliser Alpaca-LoRA-Serve pour créer une interface de type ChatGPT, comme indiqué ci-dessous.

Capture d'écran d'Alpaca-LoRA-Serve

Ressources :

3. Automatiser l'interaction avec les PDF grâce à LangChain et ChatGPT

Créez votre propre clone de ChatPDF en utilisant le chargeur PDF de LangChain, OpenAI Embeddings et GPT-3.5. Vous allez créer un chatbot qui peut communiquer avec votre livre, votre documentation juridique et d'autres documents PDF importants.

Cas d'utilisation :

Ce projet est utile pour automatiser les flux de travail basés sur des documents, tels que l'analyse de documents de recherche, de contrats juridiques ou de rapports financiers. Vous pouvez créer un chatbot qui répond à des questions spécifiques sur les documents PDF, ce qui peut être un outil puissant dans des secteurs comme le droit, l'université ou la veille stratégique, où le traitement de grandes quantités de texte est essentiel.

Les compétences que vous apprendrez :

  • Chargement et traitement de documents PDF à l'aide du PyPDFLoader de LangChain
  • Créer des embeddings et vectoriser des données documentaires avec OpenAIEmbeddings
  • Construire une base de données vectorielles pour l'interrogation de documents avec Chroma
  • Intégration de ChatGPT avec des données vectorisées pour la réponse aux questions
  • Développer une interface simple de chatbot PDF avec Gradio

Chargement du document

Nous utiliserons le chargeur de documents LangChain pour charger les PDF et en lire le contenu.

from langchain.document_loaders import PyPDFLoader

pdf_path = "./paper.pdf"
loader = PyPDFLoader(pdf_path)
pages = loader.load_and_split()
print(pages[0].page_content)

Création d'embeddings et vectorisation

Nous allons créer des embeddings à l'aide de la classeOpenAIEmbeddings de l'API LangChain. Ensuite, vous transmettez ces encastrements à la classe Chroma afin de créer une base de données vectorielle pour le document PDF.

from langchain.embeddings import OpenAIEmbeddings
from langchain.vectorstores import Chroma

embeddings = OpenAIEmbeddings()
vectordb = Chroma.from_documents(pages, embedding=embeddings, persist_directory=".")

vectordb.persist()

Interroger le PDF

Nous utiliserons la classe ChatVectorDBChain pour interagir avec ChatGPT en utilisant une base de données vectorielle générée.

from langchain.chains import ChatVectorDBChain
from langchain.llms import OpenAI

pdf_qa = ChatVectorDBChain.from_llm(
    OpenAI(temperature=0.9, model_name="gpt-3.5-turbo"),
    vectordb,
    return_source_documents=True,
)

query = "What is the VideoTaskformer?"
result = pdf_qa({"question": query, "chat_history": ""})
print("Answer:")
print(result["answer"])

L'étape suivante n'est pas mentionnée dans le tutoriel vidéo. Vous pouvez utiliser le framework Gradio pour créer une application web et la partager avec vos collègues et amis. 

Capture d'écran du tutoriel de Youtube

Ressources :

4. Assistant vocal Bing-GPT

Créez votre propre assistant personnel doté d'une IA, comme J.A.R.V.I.S. Pour cela, vous aurez besoin de l'API OpenAI, d'une bibliothèque de synthèse vocale, d'une bibliothèque de reconnaissance vocale et d'une IA générative.

Cas d'utilisation :

L'assistant vocal Bing-GPT est idéal pour créer des assistants personnels IA à commande vocale capables de gérer des tâches telles que l'établissement de rappels, la réponse à des questions ou le contrôle d'appareils domestiques intelligents. Ce projet peut également être étendu à l'automatisation des entreprises, à la création de solutions de service à la clientèle basées sur la voix ou à l'élaboration d'outils d'IA accessibles aux personnes handicapées.

Les compétences que vous apprendrez :

  • Utiliser l'API d'OpenAI pour générer des réponses de chatbot
  • Mise en œuvre de la synthèse et de la reconnaissance vocales à l'aide de Whisper et Polly
  • Mise en place de la détection des mots de réveil pour les interactions basées sur la voix
  • Construire un assistant d'IA hybride en utilisant EdgeGPT et ChatGPT
  • Intégration des technologies de synthèse vocale et de reconnaissance vocale dans Python

Après avoir chargé les bibliothèques requises, vous devez fournir la clé API OpenAI :

openai.api_key = "[paste your OpenAI API key here]"

Mot de passe

Créez une fonction de réveil pour activer l'IA. Dans ce cas, le développeur utilise "'bing" ou "gpt".

Synthèse vocale

La fonction de synthèse vocale assure l'inférence texte-parole. Vous pouvez accéder à la synthèse vocale (polly) à partir de boto3 et lire l'audio à l'aide de pydub.

Transcription avec Whisper

La reconnaissance vocale est effectuée par openai/whisper. Il vous suffit de comprendre l'API pour l'ajouter à votre application. 

ChatBot avec EdgeGPT

Au final, vous utiliserez acheong08/EdgeGPT et l'API OpenAI pour créer un chatbot. Si l'utilisateur utilise le mot-clé "bing", le modèle EdgeGPT sera utilisé, sinon le modèle ChatGPT sera utilisé. 

Si vous recherchez une mise en œuvre beaucoup plus simple de l'assistant vocal, consultez OpenAI Whisper, ChatGPT, TTS et Gradio Web UI

Image tirée d'un tutoriel sur Youtube

Ressources :

5. Un projet de science des données de bout en bout

Dans ce projet, nous utiliserons le ChatGPT pour travailler sur des applications de classification d'approbation de prêt de bout en bout. Tout ce dont nous avons besoin, c'est d'un accès à l'interface du ChatGPT et d'une machine personnelle pour exécuter le code. 

Cas d'utilisation :

Ce projet est conçu pour les scientifiques en herbe qui souhaitent construire un pipeline d'apprentissage automatique entièrement fonctionnel à l'aide de l'IA. Vous apprendrez à utiliser ChatGPT pour planifier, exécuter et déployer un modèle d'apprentissage automatique, ce qui en fait un excellent complément à tout portefeuille de science des données. Utilisez ce projet pour prédire les approbations de prêts, les taux de désabonnement ou la détection des fraudes.

Les compétences que vous apprendrez :

  • Utilisation du chatGPT pour faciliter l'analyse exploratoire des données (AED)
  • Automatisation des tâches d'ingénierie des caractéristiques et de prétraitement des données
  • Construire et mettre au point des modèles d'apprentissage automatique avec l'aide de ChatGPT.
  • Créer une application web d'apprentissage automatique avec Gradio

Planification du projet

Dans la phase de planification, nous décrirons l'ensemble de données et ce que nous en attendons. Parfois, les réponses ne sont pas parfaites, mais vous pouvez ajuster la réponse en proposant des questions de suivi. 

Ensuite, nous commencerons à suivre le plan succinct. 

Analyse exploratoire des données (AED) 

Nous demanderons à ChatGPT de générer du code Python qui chargera le jeu de données et effectuera une analyse exploratoire des données à l'aide de diverses techniques de visualisation. Vous pouvez même lui demander d'interpréter les résultats.

Ingénierie des fonctionnalités

Nous avons demandé à ChatGPT d'écrire un code d'ingénierie des fonctionnalités et, étonnamment, il a créé deux fonctionnalités à partir de fonctionnalités existantes. Cela signifie que l'IA comprend désormais parfaitement l'ensemble de données. 

Prétraitement et équilibrage des données

Nous avons un jeu de données déséquilibré, et dans cette partie, nous utiliserons ChatGPT pour générer le code de prétraitement et d'équilibrage des classes. 

Sélection du modèle

Nous venons de demander à ChatGPT d'écrire le code de sélection des modèles en spécifiant les modèles d'apprentissage automatique. Après avoir exécuté le code, nous sélectionnerons le modèle le plus performant. 

Optimisation des hyperparamètres et évaluation des modèles

Pour améliorer les performances, nous demanderons à ChatGPT d'écrire du code Python pour le réglage des hyperparamètres et l'évaluation des modèles, et de sauvegarder le modèle le plus performant.

Créer une application Web avec Gradio

Nous allons demander à ChatGPT d'écrire le code de l'application Gradio en utilisant le modèle sauvegardé et le prétraitement. L'IA comprend les caractéristiques d'entrée et les résultats de sortie. Nous avons ainsi obtenu une application web pleinement opérationnelle. 

Déploiement de l'application Web sur Spaces

À la dernière étape, nous avons demandé à ChatGPT de déployer une application web sur l'espace. Il propose quelques étapes que nous pouvons suivre et déployer en quelques minutes. 

Application de classification de l'approbation des prêts

Ce projet donnera également des conseils pour rédiger des messages efficaces, ce qui est de plus en plus essentiel dans tous les domaines. 

Ressources : 

Conclusion

Ce n'est qu'un début de ce qui est à venir avec les modèles d'IA générative. La communauté des logiciels libres travaille d'arrache-pied pour développer des outils qui vous aideront à construire n'importe quel type d'IA. Vous pouvez même utiliser ces outils pour créer une AGI (Intelligence Générale Artificielle) ; consultez Auto-GPT (logiciel libre expérimental pour créer un GPT-4 entièrement autonome) et babyagi (système de gestion des tâches alimenté par l'IA). 

Dans ce billet, nous avons abordé les projets qui peuvent être compris par tous les niveaux et qui nécessitent moins de ressources pour démarrer. Ils utilisent tous des outils, des modèles, des ensembles de données et des paquets en libre accès qui sont disponibles pour tout le monde.

Si vous êtes novice en matière de ChatGPT, envisagez de suivre un cours d' introduction au ChatGPT. Par ailleurs, si vous êtes déjà familiarisé avec l'IA générative, vous pouvez améliorer vos compétences en matière d'incitation en consultant l' aide-mémoire complet du ChatGPT pour la science des données, ou en consultant les ressources suivantes :

FAQ

Puis-je mener à bien ces projets d'IA générative si je suis novice en matière d'apprentissage automatique et d'IA ?

Absolument ! Bien que certains projets puissent nécessiter des outils et des techniques avancés, les instructions étape par étape fournies dans l'article de blog vous guideront tout au long du processus. Vous n'avez pas besoin d'être un expert pour commencer, et de nombreux outils comme Gradio, Hugging Face et LangChain sont conçus pour les débutants. En outre, ces projets vous aideront à acquérir des bases solides en matière d'IA, ce qui vous permettra d'aborder plus facilement des sujets plus complexes à l'avenir.

Ai-je besoin d'un GPU haut de gamme pour exécuter ces projets d'IA générative ?

Pas nécessairement. Certains projets, comme Alpaca-LoRA, sont conçus pour fonctionner avec un seul GPU ou même un CPU, ce qui signifie que vous n'avez pas besoin d'une machine haut de gamme pour les mener à bien. Pour les projets nécessitant une plus grande puissance de calcul, vous pouvez utiliser des services basés sur le cloud comme Google Colab, AWS ou Hugging Face Spaces, qui donnent accès à des GPU gratuitement ou à faible coût.

Comment puis-je mettre en valeur ces projets d'IA dans mon portfolio pour me démarquer dans mes candidatures ?

Ces projets sont parfaits pour figurer dans votre portfolio, car ils mettent en évidence votre capacité à travailler avec des outils d'IA de pointe. Lorsque vous les ajoutez à votre portefeuille, veillez à.. :

  • Incluez des explications détaillées des projets, décrivant le problème que vous avez résolu, les outils que vous avez utilisés et le résultat final.
  • Partagez les liens vers les démonstrations en direct ou les dépôts GitHub afin que les employeurs potentiels puissent voir votre travail en action.
  • Insistez sur les difficultés particulières que vous avez rencontrées et sur la manière dont vous les avez résolues, ce qui démontre votre capacité à résoudre des problèmes et à faire preuve d'esprit critique.

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

Apprenez-en plus sur l'IA générative avec ces cours !

Cours

Generative AI Concepts

2 hr
54.5K
Discover how to begin responsibly leveraging generative AI. Learn how generative AI models are developed and how they will impact society moving forward.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow