Cinco proyectos que puedes crear con modelos de IA generativa (con ejemplos)
En este post, conoceremos distintos tipos de modelos generativos que podemos utilizar para crear proyectos interesantes. Además, aprenderemos cómo podemos utilizar ChatGPT para crear un proyecto de ciencia de datos de principio a fin.
Cinco proyectos de IA generativa mejorarán tu portafolio de machine learning y ciencia de datos y te convertirán en un candidato atractivo para la solicitud de empleo. También te ayudarán a comprender las herramientas más recientes, como Stable Diffusion Inpainting, Segment Anything, Stanford Alpaca, LoRA, LangChain, OpenAI API y Whisper.
Puedes informarte sobre la serie GPT, incluidos GPT-1, GPT-2, GPT-3 y GPT-4, consultando el artículo "¿Qué es GPT-4 y por qué es importante?". También puedes ver otros proyectos de IA en otro post.
1. StableSAM: Stable Diffusion Inpainting con Segment Anything
En este proyecto, utilizarás Segment Anything de Meta, difusores de Hugging Face y Gradio para crear una aplicación que pueda cambiar el fondo, la cara, la ropa o cualquier cosa que selecciones. Solo quiere la imagen, el área seleccionada y el prompt.
Crear pipeline de Stable Diffusion Inpainting
Crearemos un pipeline de Stable Diffusion Inpainting utilizando el difusor y los pesos del modelo disponibles en stabilityai/stable-diffusion-2-inpainting · Hugging Face. Después, lo añadiremos a "cuda'' para la aceleración de GPU.
Definición de las funciones de máscara de imagen e inpainting
La función de máscara de imagen se crea utilizando SAM Predictor. Toma una imagen, la sección de imagen seleccionada y el valor booleano is_backgroud para crear la imagen enmascarada y la segmentación.
Después, la función de inpainting utiliza el pipeline de Stable Diffusion Inpainting para cambiar las partes seleccionadas de las imágenes. Los pipelines requieren una imagen de entrada, una imagen enmascarada, una imagen segmentada, un texto de prompt y un texto de prompt negativo.
Creación de IU de Gradio
Crearás una fila y añadirás tres bloques de imágenes. Para un producto viable mínimo, tienes que añadir otra fila con un botón de envío. Después, tienes que modificar el objeto de imagen de entrada para seleccionar píxeles, generar la máscara y la segmentación y añadir acción al botón de envío para ejecutar la función de inpainting.
Gradio es bastante fácil de aprender. Puedes aprenderlo todo leyendo los Documentos de Gradio.
Versión mejorada de StableSAM
La versión mejorada de StableSAM está disponible en Hugging Face, que incluye un pipeline de inpainting personalizado que utiliza ControlNet. Utiliza Runway ML Stable Diffusion Inpainting en lugar de Stability AI.
Como puedes ver, la versión final de la app tiene un aspecto limpio, con un bloque de segmentación, un botón de limpiar, una opción de fondo y un prompt negativo.
Recursos:
- Demo de Hugging Face: StableSAM
- Tutorial en Youtube: Stable Diffusion Inpainting con Segment Anything Model (SAM)
2. Alpaca-LoRA: Crea como en ChatGPT con recursos mínimos
Alpaca-LoRA proporciona todos los componentes necesarios para que crees tu propio chatbot especializado similar a ChatGPT utilizando una sola GPU.
En esta sección, veremos la configuración inicial, el entrenamiento, el script de inferencia y el cliente nativo para ejecutar la inferencia en la CPU.
Configuración local
- Repositorio de clones: tloen/alpaca-lora
- Instala las dependencias con
pip install -r requirements.txt
- Si bitsandbytes no funciona, instálalo desde la fuente.
Entrenamiento
En esta parte, veremos el script de ajuste fino que puedes ejecutar en el modelo LLaMA utilizando el modelo depurado de Stanford Alpaca.
Puedes consultar el repositorio para ajustar los hiperparámetros y mejorar el rendimiento.
python finetune.py \
--base_model 'decapoda-research/llama-7b-hf' \
--data_path 'yahma/alpaca-cleaned' \
--output_dir './lora-alpaca'
Inferencia
El script de inferencia lee el modelo LLaMA base de Hugging Face y carga los pesos LoRA para ejecutar una interfaz Gradio.
python generate.py \
--load_8bit \
--base_model 'decapoda-research/llama-7b-hf' \
--lora_weights 'tloen/alpaca-lora-7b'
También puedes utilizar alpaca.cpp para ejecutar modelos alpaca en la CPU o en la Raspberry Pi 4 de 4 GB de RAM. Además, puedes utilizar Alpaca-LoRA-Serve para crear una interfaz al estilo ChatGPT, como se muestra a continuación.
Recursos:
- GitHub: tloen/alpaca-lora
- Tarjeta modelo: tloen/alpaca-lora-7b
- Demo de Hugging Face: Alpaca-LoRA-Serve
- Interfaz estilo ChatGPT: Alpaca-LoRA-Serve
- Conjunto de datos de Alpaca: AlpacaDataCleaned
3. Automatización de la interacción PDF con LangChain y ChatGPT
Crea tu propio clon de ChatPDF utilizando el cargador PDF de LangChain, incrustaciones de OpenAI y GPT-3.5. Crearás un chatbot que pueda comunicarse con tu libro, documentación legal y otros documentos PDF importantes.
Carga del documento
Utilizaremos el cargador de documentos LangChain para cargar los PDF y leer su contenido.
from langchain.document_loaders import PyPDFLoader
pdf_path = "./paper.pdf"
loader = PyPDFLoader(pdf_path)
pages = loader.load_and_split()
print(pages[0].page_content)
Creación de incrustaciones y vectorización
Crearemos incrustaciones utilizando la clase OpenAIEmbeddings de la API LangChain. Después, pasa estas incrustaciones a la clase Chroma para crear una base de datos vectorial del 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()
Consulta del PDF
Utilizaremos la clase ChatVectorDBChain para interactuar con ChatGPT utilizando una base de datos vectorial generada.
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"])
El siguiente paso no se menciona en el videotutorial. Puedes utilizar el marco Gradio para crear una aplicación web y compartirla con tus colegas y amigos.
Recursos:
- Tutorial en Youtube: Cómo hablar con un PDF utilizando LangChain y ChatGPT
- Blog con código fuente: Automatización de la interacción PDF con LangChain y ChatGPT
- Consulta también: Habla con tu CSV y Excel con LangChain
4. Asistente de voz Bing-GPT
Crea tu propio asistente personal con IA como J.A.R.V.I.S. Para ello, necesitarás OpenAI API, la biblioteca de texto a voz, la biblioteca de reconocimiento de voz e IA generativa.
Después de cargar las bibliotecas necesarias, tienes que proporcionar la clave de OpenAI API:
openai.api_key = "[paste your OpenAI API key here]"
Palabra de activación
Crea una función de palabra de activación para activar la IA. En este caso, el desarrollador utiliza "bing" o "gpt".
Síntesis de voz
La función de síntesis de voz proporciona inferencia de texto a voz. Puedes acceder a polly (de texto a voz) desde boto3 y reproducir el audio con pydub.
Transcripción con Whisper
El reconocimiento de voz lo hace openai/whisper. Solo tienes que averiguar la API para añadirla a tu aplicación.
ChatBot con EdgeGPT
Al final, utilizarás acheong08/EdgeGPT y OpenAI API para crear un chatbot. Si el usuario utiliza la palabra de activación "bing'', se utilizará el modelo EdgeGPT y, si no, el modelo ChatGPT.
Si buscas una implementación mucho más sencilla del asistente de voz, echa un vistazo a OpenAI Whisper, ChatGPT, TTS e IU web Gradio.
Recursos:
- Tutorial en Youtube: Crea un asistente de voz ChatGPT y Bing en 7 minutos
- GitHub: Ai-Austin/Bing-GPT-Voice-Assistant
- Solución alternativa: youtube-stuffs/voiceGPT.ipynb
5. Un proyecto integral de ciencia de datos
En este proyecto, utilizaremos ChatGPT para trabajar en aplicaciones clasificadoras de aprobación de préstamos integrales. Todo lo que necesitamos es acceso a la interfaz ChatGPT y un equipo personal para ejecutar el código.
Planificación de proyectos
En la fase de planificación, describiremos el conjunto de datos y lo que queremos de él. A veces las respuestas no son perfectas, pero puedes ajustar la respuesta proporcionando prompts de seguimiento.
Después, empezaremos a seguir el breve plan.
Análisis exploratorio de datos (EDA)
Pediremos a ChatGPT que genere código Python que cargue el conjunto de datos y realice un análisis exploratorio de datos con diversas técnicas de visualización. Incluso puedes pedirle que interprete los resultados.
Ingeniería de características
Hemos pedido a ChatGPT que escriba un código de ingeniería de características y, sorprendentemente, ha creado dos características a partir de características existentes. Esto significa que ahora la IA comprende plenamente el conjunto de datos.
Preprocesamiento y equilibrio de los datos
Tenemos un conjunto de datos desequilibrado y, en esta parte, utilizaremos ChatGPT para generar código de preprocesamiento y equilibrio de clases.
Selección del modelo
Acabamos de pedir a ChatGPT que escriba el código de selección del modelo especificando los modelos de machine learning. Después de ejecutar el código, seleccionaremos el modelo con mejores resultados.
Ajuste de hiperparámetros y evaluación de modelos
Para mejorar el rendimiento, pediremos a ChatGPT que escriba código Python para el ajuste de hiperparámetros y la evaluación de modelos, y que guarde el modelo con mejores resultados.
Creación de una app web con Gradio
Pediremos a ChatGPT que escriba el código de la app Gradio utilizando el modelo y el preprocesamiento guardados. La IA comprendió las características de entrada y los resultados de salida. Por ello, obtuvimos una aplicación web totalmente funcional.
Implementación de la aplicación web en espacios
En el último paso, hemos pedido a ChatGPT que implemente una aplicación web en el espacio. Nos ha proporcionado unos pasos que podemos seguir e implementar en pocos minutos.
Este proyecto también incluye consejos para escribir prompts eficaces, lo que se está volviendo esencial en todos los campos.
Recursos:
- Tutorial DataCamp: Guía para utilizar ChatGPT en proyectos de ciencia de datos
- Demo de Hugging Face: Clasificador de préstamos
Conclusión
Esto es solo el principio de lo que está por venir con los modelos de IA generativa. La comunidad de código abierto trabaja duro para desarrollar herramientas que te ayuden a crear cualquier tipo de IA. Puedes utilizar estas herramientas incluso para crear inteligencia artificial general (AGI); echa un vistazo a Auto-GPT (código abierto experimental para crear GPT-4 totalmente autónomo) y babyagi (sistema de gestión de tareas con IA).
En este post, hemos cubierto los proyectos que se pueden comprender en todos los niveles y requieren menos recursos para empezar. Todos utilizan herramientas, modelos, conjuntos de datos y paquetes de código abierto que cualquiera puede utilizar.
Si eres nuevo en ChatGPT, considera la posibilidad de hacer el curso Introducción a ChatGPT. Si ya estás familiarizado con la IA generativa, puedes mejorar tus habilidades con los prompts revisando la completa Hoja de trucos de ChatGPT para ciencia de datos o consultando los siguientes recursos:
- Empieza a utilizar ChatGPT en nuestro curso Introducción a ChatGPT.
- Descárgate esta práctica hoja de trucos de referencia de prompts de ChatGPT para la ciencia de datos.
- Escucha este episodio de podcast sobre Cómo ChatGPT y GPT-3 aumentan los flujos de trabajo para comprender cómo ChatGPT puede beneficiar a tu empresa.
- Tutorial sobre la API Whisper
- Empieza a aprender IA

blog
¿Qué es un modelo generativo?
blog
10 maneras de utilizar ChatGPT para las finanzas

blog
12 alternativas de código abierto a GPT-4

blog
7 proyectos de IA para todos los niveles
blog
Los 7 mejores generadores de vídeo de IA para 2024 con vídeos de ejemplo
tutorial