Corso

In questo post esploreremo cinque progetti di IA generativa che ti aiuteranno a creare e rafforzare il tuo portfolio di machine learning e data science. Questi progetti sono pensati per approfondire tecnologie all'avanguardia come Stable Diffusion, Segment Anything, LangChain, Alpaca-LoRA e altro ancora.
Che tu sia alle prime armi con l'IA generativa o abbia già un po' di esperienza, questi progetti ti forniranno competenze preziose per distinguerti nelle candidature e nei colloqui di lavoro.
Puoi scoprire la serie GPT, inclusi GPT-1, GPT-2, GPT-3 e GPT-4, leggendo l'articolo "Che cos'è GPT-4 e perché è importante?". Puoi anche dare un'occhiata ad altri progetti di IA in un post separato.
1. StableSAM: Inpainting con Stable Diffusion e Segment Anything
In questo progetto userai il segment-anything di Meta, i diffusers di Hugging Face e Gradio per creare un'app in grado di cambiare lo sfondo, il volto, i vestiti o qualsiasi altra parte selezionata. Ha bisogno solo dell'immagine, dell'area selezionata e del prompt.
Caso d'uso:
StableSAM è perfetto per professionisti creativi nei settori del digital marketing, del design e dell'intrattenimento. Consente di modificare con precisione parti specifiche delle immagini, ideale per attività come cambiare sfondi, alterare outfit o modificare oggetti in materiali promozionali. Per gli hobbisti, è uno strumento fantastico per personalizzare le immagini senza competenze avanzate di design.
Competenze che imparerai:
- Implementare una pipeline di inpainting di immagini con Stable Diffusion
- Lavorare con il Segment Anything Model (SAM) di Meta per la segmentazione delle immagini
- Creare un'applicazione web interattiva con Gradio
- Usare i diffusers di Hugging Face per il deployment del modello
Creare la pipeline di inpainting con Stable Diffusion
Creeremo una pipeline di Inpainting con Stable Diffusion usando diffuser e i pesi del modello disponibili su stabilityai/stable-diffusion-2-inpainting · Hugging Face. Dopodiché, la abiliteremo su CUDA per l'accelerazione GPU.
Definire la maschera dell'immagine e la funzione di inpainting
La funzione per la maschera dell'immagine viene creata usando SAM Predictor. Prende in input un'immagine, la sezione selezionata e un valore booleano is_backgroud per generare un'immagine mascherata e la segmentazione.
Successivamente, la funzione di inpainting utilizza la pipeline di Inpainting di Stable Diffusion per cambiare le parti selezionate delle immagini. Le pipeline richiedono immagine di input, immagine mascherata, immagine segmentata, testo del prompt e prompt negativo.
Creare l'interfaccia Gradio
Creerai una riga e aggiungerai tre blocchi immagine. Per un MVP, devi aggiungere un'altra riga con un pulsante di invio. Poi, devi modificare l'oggetto immagine di input per selezionare i pixel, generare maschera e segmentazione e aggiungere l'azione al pulsante di invio per eseguire la funzione di inpainting.
Gradio è piuttosto semplice da imparare. Puoi trovare tutto nella documentazione di Gradio.
Versione migliorata di StableSAM
La versione migliorata di StableSAM è disponibile su Hugging Face e include una pipeline di inpainting personalizzata che utilizza ControlNet. Usa Runway ML Stable Diffusion Inpainting invece di Stability AI.

Come puoi vedere, la versione finale dell'app ha un aspetto pulito, con un blocco di segmentazione, un pulsante di pulizia, l'opzione per lo sfondo e il prompt negativo.

Risorse:
- Demo su Hugging Face: StableSAM
- Tutorial su YouTube: Stable Diffusion Inpainting con Segment Anything Model (SAM)
2. Alpaca-LoRA: crea un chatbot in stile ChatGPT con risorse minime
Alpaca-LoRA fornisce tutti i componenti necessari per creare un tuo chatbot specializzato in stile ChatGPT usando una singola GPU. In questo progetto vedremo l'impostazione iniziale, l'addestramento, lo script di inferenza e il client nativo per eseguire l'inferenza sulla CPU.
Caso d'uso:
Questo progetto è eccellente per chi è interessato a costruire sistemi di IA conversazionale personalizzati. Che tu stia creando un chatbot per l'assistenza clienti di una piccola azienda o sviluppando un assistente personale, Alpaca-LoRA offre un modo efficiente per addestrare un chatbot specializzato con risorse computazionali limitate. È ideale per sperimentare il fine-tuning di modelli linguistici con un budget contenuto.
Competenze che imparerai:
- Fine-tuning di modelli linguistici con LoRA su una singola GPU
- Configurazione e utilizzo del dataset Stanford Alpaca
- Esecuzione di script di inferenza in ambienti a basse risorse (ad es. Raspberry Pi)
- Deployment di un'interfaccia chatbot basata su Gradio
- Comprendere come modelli linguistici di grandi dimensioni come LLaMA vengono addestrati e ottimizzati
Configurazione locale
- Clona il repository: tloen/alpaca-lora
- Installa le dipendenze usando
pip install -r requirements.txt - Se bitsandbytes non funziona, installalo dal codice sorgente.
Addestramento
In questa parte vedremo lo script di fine-tuning che puoi eseguire sul modello LLaMA usando il modello Stanford Alpaca ripulito.
Puoi consultare il repository per modificare gli iperparametri e ottenere prestazioni migliori.
python finetune.py \
--base_model 'decapoda-research/llama-7b-hf' \
--data_path 'yahma/alpaca-cleaned' \
--output_dir './lora-alpaca'
Inferenza
Lo script di inferenza legge il modello LLaMA di base da Hugging Face e carica i pesi LoRA per eseguire un'interfaccia Gradio.
python generate.py \
--load_8bit \
--base_model 'decapoda-research/llama-7b-hf' \
--lora_weights 'tloen/alpaca-lora-7b'
Puoi anche usare alpaca.cpp per eseguire i modelli alpaca su CPU o su Raspberry Pi 4 con 4 GB di RAM. Inoltre, puoi utilizzare Alpaca-LoRA-Serve per creare un'interfaccia in stile ChatGPT, come mostrato qui sotto.

Risorse:
- GitHub: tloen/alpaca-lora
- Scheda modello: tloen/alpaca-lora-7b
- Demo su Hugging Face: Alpaca-LoRA-Serve
- Interfaccia in stile ChatGPT: Alpaca-LoRA-Serve
- Dataset Alpaca: AlpacaDataCleaned
3. Automatizzare l'interazione con i PDF con LangChain e ChatGPT
Crea il tuo clone di ChatPDF usando il loader PDF di LangChain, OpenAI Embeddings e GPT-3.5. Creerai un chatbot che può dialogare con il tuo libro, documentazione legale e altri documenti PDF importanti.
Caso d'uso:
Questo progetto è utile per automatizzare flussi di lavoro basati su documenti, come l'analisi di articoli di ricerca, contratti legali o report finanziari. Puoi costruire un chatbot che risponde a domande specifiche sui documenti PDF, uno strumento potente in settori come il legale, l'accademia o la business intelligence, dove è essenziale processare grandi quantità di testo.
Competenze che imparerai:
- Caricare ed elaborare documenti PDF usando il PyPDFLoader di LangChain
- Creare embedding e vettorizzare i dati dei documenti con OpenAIEmbeddings
- Costruire un database vettoriale per interrogare i documenti con Chroma
- Integrare ChatGPT con dati vettorializzati per il question answering
- Sviluppare una semplice interfaccia chatbot per PDF con Gradio
Caricare il documento
Useremo il document loader di LangChain per caricare i PDF e leggerne i contenuti.
from langchain.document_loaders import PyPDFLoader
pdf_path = "./paper.pdf"
loader = PyPDFLoader(pdf_path)
pages = loader.load_and_split()
print(pages[0].page_content)
Creare embedding e vettorizzazione
Creeremo embedding usando la classe OpenAIEmbeddings dell'API LangChain. Dopodiché passeremo questi embedding alla classe Chroma per creare un database vettoriale per il documento PDF.
from langchain.embeddings import OpenAIEmbeddings
from langchain.vectorstores import Chroma
embeddings = OpenAIEmbeddings()
vectordb = Chroma.from_documents(pages, embedding=embeddings, persist_directory=".")
vectordb.persist()
Interrogare il PDF
Useremo la classe ChatVectorDBChain per interagire con ChatGPT usando un database vettoriale generato.
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"])
Il passaggio successivo non è menzionato nel video tutorial. Puoi usare il framework Gradio per creare un'app web e condividerla con colleghi e amici.

Risorse:
- Tutorial su YouTube: Come parlare con un PDF usando LangChain e ChatGPT
- Blog con codice sorgente: Automatizzare l'interazione con i PDF con LangChain e ChatGPT
- Guarda anche: Parla con i tuoi CSV & Excel con LangChain
4. Assistente vocale Bing-GPT
Crea il tuo assistente personale basato sull'IA proprio come J.A.R.V.I.S. Per farlo ti serviranno l'API di OpenAI, una libreria per text-to-speech, una libreria per il riconoscimento vocale e l'IA generativa.
Caso d'uso:
Il Bing-GPT Voice Assistant è ideale per creare assistenti personali vocali che gestiscono attività come impostare promemoria, rispondere a domande o controllare dispositivi smart home. Questo progetto può essere ampliato per automatizzare processi aziendali, creare soluzioni di assistenza clienti basate sulla voce o realizzare strumenti di IA accessibili per persone con disabilità.
Competenze che imparerai:
- Usare l'API di OpenAI per generare risposte del chatbot
- Implementare sintesi e riconoscimento vocale usando Whisper e Polly
- Impostare il rilevamento della parola di attivazione per interazioni vocali
- Costruire un assistente ibrido usando EdgeGPT e ChatGPT
- Integrare tecnologie text-to-speech e riconoscimento vocale in Python
Dopo aver caricato le librerie richieste, devi fornire la chiave API di OpenAI:
openai.api_key = "[paste your OpenAI API key here]"
Parola di attivazione
Crea una funzione di wake word per attivare l'IA. In questo caso, lo sviluppatore usa "'bing" o "gpt".
Sintesi vocale
La funzione di sintesi vocale fornisce l'inferenza text-to-speech. Puoi accedere a polly (text-to-speech) da boto3 e riprodurre l'audio usando pydub.
Trascrizione con Whisper
Il riconoscimento vocale è gestito da openai/whisper. Devi solo studiarne l'API per integrarlo nella tua applicazione.
ChatBot con EdgeGPT
Infine, userai acheong08/EdgeGPT e l'API di OpenAI per creare un chatbot. Se l'utente usa la parola di attivazione "bing'' verrà usato il modello EdgeGPT, altrimenti il modello ChatGPT.
Se cerchi un'implementazione molto più semplice di un assistente vocale, dai un'occhiata a OpenAI Whisper, ChatGPT, TTS e interfaccia web Gradio.

Risorse:
- Tutorial su YouTube: Crea un assistente vocale ChatGPT & Bing in 7 minuti
- GitHub: Ai-Austin/Bing-GPT-Voice-Assistant
- Soluzione alternativa: youtube-stuffs/voiceGPT.ipynb
5. Un progetto di data science end-to-end
In questo progetto useremo ChatGPT per lavorare su applicazioni end-to-end di classificazione per l'approvazione dei prestiti. Ci serve solo l'accesso all'interfaccia di ChatGPT e una macchina personale per eseguire il codice.
Caso d'uso:
Questo progetto è pensato per aspiranti data scientist che vogliono costruire una pipeline di machine learning completamente funzionale con l'aiuto dell'IA. Imparerai a usare ChatGPT per pianificare, eseguire e distribuire un modello di machine learning, un'aggiunta eccellente a qualsiasi portfolio di data science. Usa questo progetto per prevedere approvazioni di prestiti, churn o rilevare frodi.
Competenze che imparerai:
- Usare ChatGPT per supportare l'analisi esplorativa dei dati (EDA)
- Automatizzare attività di feature engineering e preprocessing dei dati
- Costruire e ottimizzare modelli di machine learning con l'assistenza di ChatGPT
- Creare un'app web di machine learning con Gradio
Pianificazione del progetto
Nella fase di pianificazione descriveremo il dataset e cosa vogliamo ottenerne. A volte le risposte non sono perfette, ma puoi affinarle con prompt successivi.
Dopodiché inizieremo a seguire il piano sintetico.
Analisi esplorativa dei dati (EDA)
Chiederemo a ChatGPT di generare codice Python che carichi il dataset ed esegua l'EDA con varie tecniche di visualizzazione. Puoi anche chiedergli di interpretare i risultati.
Feature engineering
Abbiamo chiesto a ChatGPT di scrivere codice di feature engineering e, sorprendentemente, ha creato due feature a partire da quelle esistenti. Ciò significa che l'IA comprende appieno il dataset.
Preprocessing e bilanciamento dei dati
Abbiamo un dataset sbilanciato e, in questa parte, useremo ChatGPT per generare codice di preprocessing e bilanciamento delle classi.
Selezione del modello
Abbiamo semplicemente chiesto a ChatGPT di scrivere il codice per la selezione del modello specificando i modelli di machine learning. Dopo l'esecuzione, selezioneremo il modello con le prestazioni migliori.
Tuning degli iperparametri e valutazione del modello
Per migliorare le prestazioni, chiederemo a ChatGPT di scrivere codice Python per il tuning degli iperparametri e la valutazione del modello, e di salvare il modello con le prestazioni migliori.
Creare un'app web con Gradio
Chiederemo a ChatGPT di scrivere il codice dell'app Gradio usando il modello e il preprocessing salvati. L'IA ha compreso le feature in input e i risultati in output. Il risultato è stata un'app web completamente funzionante.
Deployment dell'app web su Spaces
Nel passaggio finale abbiamo chiesto a ChatGPT di distribuire l'app web su uno space. Ha fornito alcuni passaggi da seguire per effettuare il deployment in pochi minuti.

Questo progetto insegna anche consigli su come scrivere prompt efficaci, una competenza ormai essenziale in ogni campo.
Risorse:
- Tutorial di DataCamp: Guida all'uso di ChatGPT per progetti di data science
- Demo su Hugging Face: Loan Classifier
Conclusione
Questo è solo l'inizio di ciò che arriverà con i modelli di IA generativa. La comunità open source sta lavorando sodo per sviluppare strumenti che ti aiutino a costruire qualsiasi tipo di IA. Puoi usare questi strumenti persino per creare AGI (Artificial General Intelligence); dai un'occhiata a Auto-GPT (open source sperimentale per creare GPT-4 completamente autonomo) e babyagi (sistema di gestione delle attività potenziato dall'IA).
In questo post abbiamo coperto progetti comprensibili a tutti i livelli e che richiedono poche risorse per iniziare. Usano tutti strumenti, modelli, dataset e pacchetti open source disponibili a chiunque.
Se sei nuovo su ChatGPT, valuta di seguire il corso Introduzione a ChatGPT. In alternativa, se hai già familiarità con l'IA generativa, puoi migliorare le tue abilità di prompting consultando il Cheat Sheet di ChatGPT per la Data Science o esplorando le seguenti risorse:
- Inizia con ChatGPT nel nostro corso Introduzione a ChatGPT.
- Scarica questa pratica cheat sheet di prompt per la data science su ChatGPT.
- Ascolta questa puntata del podcast su Come ChatGPT e GPT-3 stanno potenziando i flussi di lavoro per capire come ChatGPT può giovare alla tua attività.
- Tutorial sull'API Whisper
- Inizia a studiare l'IA
FAQs
Posso completare questi progetti di IA generativa se sono alle prime armi con il machine learning e l'IA?
Assolutamente! Anche se alcuni progetti possono coinvolgere strumenti e tecniche avanzate, le istruzioni passo passo fornite nel post del blog ti guideranno durante il percorso. Non devi essere un esperto per iniziare e molti strumenti come Gradio, Hugging Face e LangChain sono progettati per i principianti. Inoltre, questi progetti ti aiuteranno a costruire solide basi nell'IA, rendendo più semplice affrontare argomenti più complessi in futuro.
Ho bisogno di una GPU di fascia alta per eseguire questi progetti di IA generativa?
Non necessariamente. Alcuni progetti, come Alpaca-LoRA, sono pensati per essere eseguiti su una singola GPU o persino su una CPU, il che significa che non ti serve una macchina di fascia alta per completarli. Per i progetti che richiedono più potenza computazionale, puoi utilizzare servizi cloud come Google Colab, AWS o Hugging Face Spaces, che offrono l'accesso a GPU gratuitamente o a basso costo.
Come posso presentare questi progetti di IA nel mio portfolio per distinguermi nelle candidature?
Questi progetti sono perfetti da mostrare nel tuo portfolio perché mettono in evidenza la tua capacità di lavorare con strumenti di IA all'avanguardia. Quando li inserisci nel portfolio, assicurati di:
- Includere spiegazioni dettagliate dei progetti, descrivendo il problema che hai risolto, gli strumenti che hai usato e il risultato finale.
- Condividere link a demo live o repository GitHub in modo che i potenziali datori di lavoro possano vedere il tuo lavoro in azione.
- Mettere in evidenza eventuali sfide uniche che hai incontrato e come le hai risolte, dimostrando capacità di problem solving e pensiero critico.
In quanto data scientist certificato, sono appassionato di sfruttare tecnologie all’avanguardia per creare applicazioni di machine learning innovative. Con una solida esperienza in riconoscimento vocale, analisi e reportistica dei dati, MLOps, AI conversazionale e NLP, ho affinato le mie competenze nello sviluppo di sistemi intelligenti in grado di avere un impatto concreto. Oltre alla mia expertise tecnica, sono anche un comunicatore efficace, con il talento di rendere chiari e sintetici concetti complessi. Di conseguenza, sono diventato un blogger molto seguito in ambito data science, condividendo idee ed esperienze con una community in crescita di professionisti dei dati. Attualmente mi concentro sulla creazione e sull’editing di contenuti, lavorando con large language model per sviluppare contenuti potenti e coinvolgenti che possano aiutare aziende e singoli a valorizzare al meglio i propri dati.


