Saltar al contenido principal
InicioBlogInteligencia Artificial (IA)

Cinco proyectos que puedes crear con modelos de IA generativa (con ejemplos)

Aprende a utilizar modelos de IA generativa para crear un editor de imágenes, un chatbot similar a ChatGPT con pocos recursos y una aplicación clasificadora de aprobación de préstamos y a automatizar interacciones PDF y un asistente de voz con GPT.
mar 2024  · 10 min leer

Una IA hace malabarismos con las tareas

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. 

Paquete StableSAM

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. 

Demo de StableSAM

Recursos: 

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

  1. Repositorio de clones: tloen/alpaca-lora
  2. Instala las dependencias con pip install -r requirements.txt
  3. 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. 

Captura de pantalla de Alpaca-LoRA-Serve

Recursos:

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. 

Captura de pantalla del tutorial de youtube

Recursos:

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

Imagen del tutorial de youtube

Recursos:

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. 

App clasificadora de aprobación de préstamos

Este proyecto también incluye consejos para escribir prompts eficaces, lo que se está volviendo esencial en todos los campos. 

Recursos: 

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:

Temas
Relacionado

blog

¿Qué es un modelo generativo?

Los modelos generativos utilizan el machine learning para descubrir patrones en los datos y generar datos nuevos. Conoce su importancia y sus aplicaciones en la IA.
Abid Ali Awan's photo

Abid Ali Awan

11 min

blog

10 maneras de utilizar ChatGPT para las finanzas

Descubre cómo los modelos lingüísticos de IA como ChatGPT pueden revolucionar tus operaciones financieras, desde la generación de informes hasta la traducción de jerga financiera.
Matt Crabtree's photo

Matt Crabtree

13 min

An avian AI exits its cage

blog

12 alternativas de código abierto a GPT-4

Alternativas de código abierto a GPT-4 que pueden ofrecer un rendimiento similar y requieren menos recursos informáticos para funcionar. Estos proyectos vienen con instrucciones, fuentes de código, pesos del modelo, conjuntos de datos e IU de chatbot.
Abid Ali Awan's photo

Abid Ali Awan

9 min

blog

7 proyectos de IA para todos los niveles

Desarrolla tu portafolio y mejora tus habilidades para crear soluciones innovadoras a problemas complejos trabajando en proyectos de IA.
Abid Ali Awan's photo

Abid Ali Awan

8 min

blog

5 formas únicas de utilizar la IA en el análisis de datos

El análisis de datos con IA está en auge entre los profesionales de los datos. Conozca en esta guía cinco formas únicas de aprovechar el poder de la IA para el análisis de datos.
Austin Chia's photo

Austin Chia

tutorial

Cómo hacer modelos de ChatGPT personalizados: 5 sencillos pasos para conseguir GPT personalizados

Echa un vistazo a estos cinco sencillos pasos para liberar todo el potencial de ChatGPT con tus propios GPT personalizados.
Moez Ali's photo

Moez Ali

9 min

See MoreSee More