5 projetos que você pode criar com modelos de IA generativa (com exemplos)
Nesta postagem, aprenderemos sobre diferentes tipos de modelos generativos que podemos usar para criar projetos interessantes. Além disso, também aprenderemos como podemos usar o ChatGPT para criar um projeto de ciência de dados de ponta a ponta.
Cinco projetos de IA generativa melhorarão seu portfólio de aprendizado de máquina e ciência de dados e farão de você um candidato atraente para a candidatura a um emprego. Eles também ajudarão você a entender as ferramentas mais recentes, como Stable Diffusion Inpainting, Segment Anything, Stanford Alpaca, LoRA, LangChain, OpenAI API e Whisper.
Você pode saber mais sobre a série GPT, incluindo GPT-1, GPT-2, GPT-3 e GPT-4, consultando o artigo "What is GPT-4 and Why Does it Matter?" (O que é GPT-4 e por que é importante?).
1. StableSAM: Pintura de difusão estável com qualquer segmento
Neste projeto, você usará o segment-anything do Meta, os difusores Hugging Face e o Gradio para criar um aplicativo que pode alterar o plano de fundo, o rosto, as roupas ou qualquer coisa que você selecionar. Ele só quer a imagem, a área selecionada e o prompt.
Criar pipeline de pintura por difusão estável
Criaremos um pipeline de Stable Diffusion Inpainting usando o difusor e os pesos do modelo disponíveis em stabilityai/stable-diffusion-2-inpainting - Hugging Face. Depois disso, você o adicionará ao "cuda" para aceleração da GPU.
Definição da máscara de imagem e da função de pintura
A função de máscara de imagem é criada usando o SAM Predictor. Ele usa uma imagem, uma seção de imagem selecionada e o valor booleano is_backgroud para criar uma imagem mascarada e uma segmentação.
Depois disso, a função de pintura usa o pipeline Stable Diffusion Inpainting para alterar partes selecionadas das imagens. Os pipelines exigem imagem de entrada, imagem mascarada, imagem segmentada, texto de aviso e texto de aviso negativo.
Criando a interface do usuário do Gradio
Você criará uma linha e adicionará três blocos de imagens. Para um produto mínimo viável, você precisa adicionar outra linha com um botão de envio. Depois disso, você precisa modificar o objeto de imagem de entrada para selecionar pixels, gerar máscara e segmentação e adicionar uma ação ao botão de envio para executar a função de pintura.
O Gradio é muito fácil de aprender. Você pode aprender tudo lendo os documentos do Gradio.
Versão aprimorada do StableSAM
A versão aprimorada do StableSAM está disponível em hugging face, que inclui um pipeline de pintura personalizado que usa ControlNet. Ele usa Runway ML Stable Diffusion Inpainting em vez de Stability AI.
Como você pode ver, a versão final do aplicativo parece limpa, com um bloco de segmentação, um botão limpo, uma opção de plano de fundo e um prompt negativo.
Recursos:
- Demonstração do rosto abraçado: StableSAM
- Tutorial do YouTube: Pintura de difusão estável com o modelo de qualquer segmento (SAM)
2. Alpaca-LoRA: Crie um ChatGPT com o mínimo de recursos
O Alpaca-LoRA fornece todos os componentes necessários para que você crie seu próprio chatbot especializado do tipo ChatGPT usando uma única GPU.
Nesta seção, veremos a configuração inicial, o treinamento, o script de inferência e o cliente nativo para executar a inferência na CPU.
Configuração local
- Repositório clone: tloen/alpaca-lora
- Instale as dependências usando
pip install -r requirements.txt
- Se o bitsandbytes não funcionar, instale-o a partir da fonte.
Treinamento
Nesta parte, veremos o script de ajuste fino que você pode executar no modelo LLaMA usando o modelo limpo do Stanford Alpaca.
Você pode consultar o repositório para ajustar os hiperparâmetros para obter melhor desempenho.
python finetune.py \
--base_model 'decapoda-research/llama-7b-hf' \
--data_path 'yahma/alpaca-cleaned' \
--output_dir './lora-alpaca'
Inferência
O script de inferência lê o modelo LLaMA básico do Hugging Face e carrega os pesos LoRA para executar uma interface Gradio.
python generate.py \
--load_8bit \
--base_model 'decapoda-research/llama-7b-hf' \
--lora_weights 'tloen/alpaca-lora-7b'
Você também pode usar o alpaca.cpp para que você possa executar os modelos do alpaca na CPU ou no Raspberry Pi 4 com 4 GB de RAM. Além disso, você pode usar Alpaca-LoRA-Serve para criar uma interface no estilo do ChatGPT, como mostrado abaixo.
Recursos:
- GitHub: tloen/alpaca-lora
- Cartão de modelo: tloen/alpaca-lora-7b
- Demonstração do rosto abraçado: Alpaca-LoRA-Serve
- Interface no estilo ChatGPT: Alpaca-LoRA-Serve
- Conjunto de dados da Alpaca: AlpacaDataCleaned
3. Automatizando a interação em PDF com LangChain e ChatGPT
Crie seu próprio clone do ChatPDF usando o carregador de PDF da LangChain, OpenAI Embeddings e GPT-3.5. Você criará um chatbot que pode se comunicar com seu livro, documentação legal e outros documentos PDF importantes.
Carregando o documento
Usaremos o carregador de documentos LangChain para carregar PDFs e ler o conteúdo.
from langchain.document_loaders import PyPDFLoader
pdf_path = "./paper.pdf"
loader = PyPDFLoader(pdf_path)
pages = loader.load_and_split()
print(pages[0].page_content)
Criação de embeddings e vetorização
Criaremos embeddings usando o OpenAIEmbeddings da API LangChain. Depois disso, passe esses embeddings para o Chroma para criar um banco de dados vetorial para o 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()
Consultando o PDF
Usaremos o ChatVectorDBChain para interagir com o ChatGPT usando um banco de dados vetorial gerado.
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"])
A próxima etapa não é mencionada no tutorial em vídeo. Você pode usar a estrutura do Gradio para criar um aplicativo da Web e compartilhá-lo com seus colegas e amigos.
Recursos:
- Tutorial do YouTube: Como conversar com um PDF usando LangChain e ChatGPT
- Blog com código-fonte: Automatizando a interação em PDF com LangChain e ChatGPT
- Além disso, confira: Converse com seu CSV e Excel com o LangChain
4. Assistente de voz Bing-GPT
Crie seu próprio assistente pessoal com tecnologia de IA, assim como J.A.R.V.I.S. Para isso, você precisará da API OpenAI, da biblioteca de conversão de texto em fala, da biblioteca de reconhecimento de fala e da IA generativa.
Depois de carregar as bibliotecas necessárias, você precisa fornecer a chave da API da OpenAI:
openai.api_key = "[paste your OpenAI API key here]"
Acordar palavra
Crie uma função de palavra de ativação para ativar a IA. Nesse caso, o desenvolvedor está usando "'bing" ou "gpt".
Síntese de fala
A função de síntese de fala fornece inferência de texto para fala. Você pode acessar o polly (conversão de texto em fala) do boto3 e reproduzir o áudio usando o pydub.
Transcrição com Whisper
O reconhecimento de fala é feito pelo openai/whisper. Você só precisa descobrir a API para adicioná-la ao seu aplicativo.
ChatBot com EdgeGPT
No final, você usará o acheong08/EdgeGPT e a API OpenAI para criar um chatbot. Se o usuário usar a palavra de ativação "bing", ele usará o modelo EdgeGPT e, caso contrário, o modelo ChatGPT.
Se você estiver procurando uma implementação muito mais simples do assistente de voz, confira o OpenAI Whisper, o ChatGPT, o TTS e o Gradio Web UI.
Recursos:
- Tutorial do YouTube: Crie um ChatGPT e um assistente de voz do Bing em 7 minutos
- GitHub: Ai-Austin/Bing-GPT-Voice-Assistant
- Solução alternativa: youtube-stuffs/voiceGPT.ipynb
5. Um projeto de ciência de dados de ponta a ponta
Neste projeto, usaremos o ChatGPT para trabalhar em aplicativos classificadores de aprovação de empréstimos de ponta a ponta. Tudo o que você precisa é acessar a interface do ChatGPT e uma máquina pessoal para executar o código.
Planejamento de projetos
Na fase de planejamento, descreveremos o conjunto de dados e o que queremos dele. Às vezes, as respostas não são perfeitas, mas você pode ajustar a resposta fornecendo solicitações de acompanhamento.
Depois disso, começaremos a seguir o plano resumido.
Análise exploratória de dados (EDA)
Solicitaremos ao ChatGPT que gere um código Python que carregue o conjunto de dados e realize uma análise exploratória dos dados com várias técnicas de visualização. Você pode até pedir que ele interprete os resultados.
Engenharia de recursos
Pedimos ao ChatGPT que escrevesse um código de engenharia de recursos e, surpreendentemente, ele criou dois recursos a partir de recursos existentes. Isso significa que a IA agora entende completamente o conjunto de dados.
Pré-processamento e balanceamento dos dados
Temos um conjunto de dados desequilibrado e, nesta parte, usaremos o ChatGPT para gerar o código de pré-processamento e de equilíbrio de classes.
Seleção de modelos
Acabamos de pedir ao ChatGPT que escreva o código de seleção de modelo especificando os modelos de aprendizado de máquina. Depois de executar o código, selecionaremos o modelo com melhor desempenho.
Ajuste de hiperparâmetros e avaliação de modelos
Para melhorar o desempenho, pediremos ao ChatGPT que escreva código Python para ajuste de hiperparâmetros e avaliação de modelos e salve o modelo de melhor desempenho.
Criando um aplicativo da Web usando o Gradio
Pediremos ao ChatGPT que escreva o código do aplicativo Gradio usando o modelo salvo e o pré-processamento. A IA entendeu os recursos de entrada e os resultados de saída. Como resultado, obtivemos um aplicativo da Web totalmente funcional.
Implementação do aplicativo Web no Spaces
Na etapa final, pedimos ao ChatGPT para implantar um aplicativo Web no espaço. Ele forneceu algumas etapas que você pode seguir e implantar em poucos minutos.
Esse projeto também ensinará dicas sobre como escrever prompts eficazes, o que está se tornando essencial para todas as áreas.
Recursos:
- Tutorial do DataCamp: Um guia para usar o ChatGPT em projetos de ciência de dados
- Demonstração do rosto abraçado: Classificador de empréstimos
Conclusão
Isso é apenas o começo do que está por vir com os modelos de IA generativa. A comunidade de código aberto está trabalhando arduamente para desenvolver ferramentas que ajudarão você a criar qualquer tipo de IA. Você pode usar essas ferramentas até mesmo para criar AGI (Artificial General AI); confira o Auto-GPT (código aberto experimental para criar GPT-4 totalmente autônomo) e o babyagi (sistema de gerenciamento de tarefas com IA).
Nesta postagem, abordamos os projetos que podem ser compreendidos por todos os níveis e que exigem menos recursos para serem iniciados. Todos eles usam ferramentas, modelos, conjuntos de dados e pacotes de código aberto que estão disponíveis para uso de qualquer pessoa.
Se você for novo no ChatGPT, considere fazer um curso de Introdução ao ChatGPT. Como alternativa, se você já estiver familiarizado com a IA generativa, poderá aprimorar suas habilidades de solicitação analisando a abrangente Folha de dicas do ChatGPT para ciência de dados ou conferindo os seguintes recursos:
- Você pode começar a usar o ChatGPT em nosso curso Introdução ao ChatGPT.
- Faça o download desta folha de referência útil dos prompts do ChatGPT para ciência de dados.
- Ouça este episódio do podcast sobre Como o ChatGPT e o GPT-3 estão aumentando os fluxos de trabalho para entender como o ChatGPT pode beneficiar sua empresa.
- Tutorial sobre a API Whisper
- Comece a aprender IA