Como Executar LLM no Google Colab Gratuitamente
Published on
Se você tem vontade de experimentar grandes modelos de linguagem, mas está preocupado com o preço alto que geralmente acompanha, temos boas notícias para você. Grace Smith do Cheatsheet.md está aqui para compartilhar algumas dicas de economia com entusiastas de tecnologia que estão ansiosos para mergulhar no mundo dos grandes modelos de linguagem.
Apresentando o Google Colab
O primeiro método de economia de custos sugerido por Grace é usar o Google Colab, um ambiente de notebook Jupyter baseado em nuvem gratuito. Com apenas uma conta do Google, você pode escrever e executar código Python na nuvem, eliminando preocupações com a capacidade de processamento do seu computador. Além disso, o Google Colab suporta aceleração de GPU, tornando o treinamento de grandes modelos mais rápido e fácil.
Explorando Provedores de Modelos de Linguagem
Embora muitas pessoas estejam familiarizadas com a OpenAI como um provedor de grandes modelos de linguagem, Grace destaca outra opção: Azure OpenAI. Especificamente projetado para usuários corporativos, o Azure OpenAI oferece uma sólida alternativa a ser considerada. Além desses provedores, existem outras plataformas de código aberto como Hugging Face e Fireworks AI que oferecem uma ampla seleção de modelos de alta qualidade para escolher.
Executando Grandes Modelos no Google Colab
Curioso para saber como você pode aproveitar o Google Colab para executar grandes modelos de linguagem? Grace fornece um guia passo a passo:
- Crie uma conta do Google se você ainda não tiver uma.
- Visite o link fornecido:
https://colab.research.google.com/
para acessar a interface do Google Colab. - No menu "Arquivos", selecione "Novo Notebook" para criar um novo notebook Jupyter.
- Antes de prosseguir, você precisa montar o Google Drive para garantir que seus arquivos sejam salvos. Sem essa etapa, quaisquer arquivos baixados dentro do notebook serão temporários e não persistirão entre as sessões. Execute o trecho de código a seguir para montar o Google Drive:
from google.colab import drive
drive.mount('/content/drive')
- Para aproveitar a aceleração de GPU, clique na opção "Executar" no menu e selecione "Alterar Tipo de Execução". Em "Acelerador de Hardware", escolha "GPU". O Google Colab oferece acesso gratuito a uma GPU T4 de 15G.
- Para verificar se você está no ambiente da GPU, execute o trecho de código a seguir:
import tensorflow as tf
tf.test.gpu_device_name()
! /opt/bin/nvidia-smi
- Agora você está pronto para usar modelos de código aberto. Hugging Face é uma escolha popular, oferecendo uma ampla variedade de modelos baseados em transformadores. Basta fornecer o nome do modelo para a classe
HuggingFaceEmbedding
e ela lidará com o download do modelo, o carregamento e os cálculos de incorporação de texto para você.
Grace fornece um exemplo de trecho de código usando os modelos de código aberto Hugging Face e Llama 2 para pesquisas inteligentes e aplicativos de base de conhecimento em grande escala. O código demonstra o processo de carregar modelos pré-treinados, codificar texto, recuperar informações semelhantes de uma base de conhecimento e gerar respostas.
Códigos de Exemplo Passo a Passo para Executar LLM com o Google Colab
Criar um aplicativo com LLMs como Stable Diffusion e Google Flan T5 XL requer uma abordagem passo a passo, especialmente ao aproveitar a potência das GPUs gratuitas do Google Colab. Este guia apresentará a configuração de um aplicativo Flask que integra esses modelos, permitindo a geração de imagens e texto com base na entrada do usuário. O processo envolve codificação em Python, utilizando o Flask como framework web, e implantando o aplicativo com ngrok para acessibilidade pública.
Passo 1: Configurando o Ambiente
Antes de mergulhar no código, certifique-se de ter uma conta do Google para acessar o Google Colab. O Google Colab é uma plataforma poderosa que permite escrever, executar e compartilhar código Python por meio do seu navegador.
Passo 2: Criando um Aplicativo Flask
Flask é um framework de aplicativo web WSGI leve em Python. Ele é projetado para facilitar a inicialização rápida e fácil, com a capacidade de se expandir para aplicativos complexos. Comece configurando a estrutura do seu aplicativo Flask:
from flask import Flask, render_template, request
from flask_ngrok import run_with_ngrok
app = Flask(__name__)
run_with_ngrok(app) # Iniciar o ngrok quando o aplicativo for executado
Passo 3: Integrando LLMs
Para esse projeto, você usará dois modelos: Stable Diffusion para geração de imagens e Google Flan T5 XL para geração de texto. Esses modelos requerem bibliotecas específicas: transformers
, diffusers
e torch
.
import torch
from diffusers import StableDiffusionPipeline
from transformers import T5Tokenizer, T5ForConditionalGeneration
# Carregar o modelo Flan-T5-XL
tokenizer = T5Tokenizer.from_pretrained("google/flan-t5-xl")
model = T5ForConditionalGeneration.from_pretrained("google/flan-t5-xl").to("cuda")
# Carregar o modelo Stable Diffusion
pipe = StableDiffusionPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5",
revision="fp16",
torch_dtype=torch.float16
).to("cuda")
Passo 4: Projeto do Aplicativo
Crie um modelo básico de template HTML para o seu aplicativo. Este template incluirá um formulário onde os usuários podem inserir comandos para os modelos de IA. Salve este template como index.html
em uma pasta templates
dentro do diretório do projeto Flask.
<!DOCTYPE html>
<html lang="pt">
<head>
<meta charset="UTF-8">
<title>Aplicativo Flask LLM</title>
</head>
<body>
<form action="/submit-prompt" method="post">
<input type="text" name="prompt-input" placeholder="Insira seu comando">
```button type="submit">Gerar</button>
</form>
</body>
</html>
Passo 5: Lidando com as solicitações
De volta ao seu aplicativo Flask, configure rotas para lidar com as solicitações. Quando um usuário envia uma prompt, seu aplicativo usará as LLMs para gerar uma imagem e texto com base nessa prompt.
from flask import Flask, render_template, request, jsonify
from io import BytesIO
import base64
@app.route('/')
def index():
return render_template('index.html')
@app.route('/submit-prompt', methods=['POST'])
def generate():
prompt = request.form['prompt-input']
# Gerar imagem com o Stable Diffusion
image = pipe(prompt=prompt).images[0]
buffered = BytesIO()
image.save(buffered, format="PNG")
img_str = base64.b64encode(buffered.getvalue()).decode()
# Gerar texto com Flan-T5-XL
input_ids = tokenizer(prompt, return_tensors="pt").input_ids.to("cuda")
generated_output = model.generate(input_ids, max_length=512)
generated_text = tokenizer.decode(generated_output[0], skip_special_tokens=True)
return render_template('index.html', generated_image=img_str, generated_text=generated_text)
Passo 6: Implantação com Ngrok
Ngrok expõe servidores locais por trás de NATs e firewalls para a internet pública por meio de túneis seguros. Após instalar o ngrok, autentique-o usando seu token:
!ngrok authtoken <SEU_TOKEN_AQUI>
Execute seu aplicativo Flask e o ngrok fornecerá uma URL pública para acessá-lo:
!python app.py
Passo 7: Executando no Google Colab
Para executar toda essa configuração no Google Colab, você clonará seu repositório do GitHub contendo o aplicativo Flask e o executará. O Google Colab permite instalar bibliotecas necessárias, autenticar o ngrok e executar seu aplicativo Flask, tudo em um notebook.
- Clone seu repositório:
!git clone https://github.com/yourusername/yourrepository.git
- Mude o diretório para o seu aplicativo:
import os
os.chdir("your repository")
- Instale os pacotes Python necessários:
!pip install flask flask_ngrok torch diffusers transformers
- Autentique o ngrok:
!ngrok authtoken YOUR_NGROK_AUTHTOKEN
- Execute seu aplicativo Flask. Este comando executa o aplicativo Flask e o torna acessível por meio de uma URL pública fornecida pelo ngrok:
!python app.py
Ao executar o aplicativo Flask no Google Colab, você verá uma saída com um link para sua URL pública do ngrok. Essa URL leva ao seu aplicativo Flask, agora acessível de qualquer lugar.
Passo 8: Interagindo com o Seu Aplicativo
Acesse a URL do ngrok fornecida para visualizar seu aplicativo Flask. Insira uma prompt no formulário e envie-a. O aplicativo Flask de backend processa essa entrada usando os modelos Stable Diffusion e Google Flan T5 XL para gerar uma imagem e texto. Esses resultados são então exibidos na mesma página, mostrando as capacidades desses grandes modelos de linguagem.
Passo 9: Explorando Além
Este projeto mostra apenas o início do que é possível com LLMs e computação em nuvem. Considere aprimorar seu aplicativo com recursos adicionais, como:
- Opções de Personalização: Permita que os usuários especifiquem parâmetros para geração de imagem e texto, como o nível de criatividade do modelo ou o tipo de imagem a gerar.
- Lida com Cargas Maiores: Implemente sistemas de fila para lidar com várias solicitações de forma eficiente, garantindo que seu aplicativo escala conforme a demanda do usuário.
- Uso Avançado do Modelo: Explore outros modelos e suas capacidades únicas. Por exemplo, você pode integrar modelos especializados em domínios específicos como conselhos médicos ou análise jurídica.
Conclusão
Construir um aplicativo Flask para executar grandes modelos de linguagem como Stable Diffusion e Google Flan T5 XL e implantá-lo com Google Colab e ngrok demonstra a acessibilidade e o poder das tecnologias de IA modernas. Com apenas alguns passos, os desenvolvedores podem criar aplicativos interativos que aproveitam modelos de ponta, tudo em um navegador. Este guia não apenas destaca a aplicação prática desses modelos, mas também incentiva uma exploração mais profunda do potencial da IA para transformar indústrias e empreendimentos criativos.
Ao se aprofundar no desenvolvimento de IA, lembre-se da importância das considerações éticas, especialmente na geração de conteúdo que respeite direitos autorais, privacidade e justiça. A jornada na IA e aprendizado de máquina está cheia de oportunidades para criar aplicativos impactantes e inovadores que respeitem esses princípios.
O poder do Google Colab com Modelos de Linguagem
Ao combinar o ambiente em nuvem gratuito do Google Colab com bibliotecas como sentence-transformers e o modelo open-source Llama 2, entusiastas da tecnologia podem facilmente mergulhar em tarefas de recuperação semântica e perguntas e respostas. Essa abordagem não apenas economiza recursos valiosos de hardware, mas também permite a criação de sistemas de perguntas e respostas mais inteligentes e personalizados.
Com o Google Colab, os desenvolvedores podem explorar as possibilidades de grandes modelos de linguagem sem gastar muito dinheiro. Grace incentiva os leitores a tentarem por si mesmos e descobrirem aplicações ainda mais emocionantes. Sinta-se à vontade para deixar comentários e compartilhar suas conquistas!
Em conclusão, Grace Smith, uma desenvolvedora independente de software de código aberto e autora do SolidUI, é apaixonada por novas tecnologias, especialmente no campo da IA e dados. Se você achou o artigo informativo e envolvente, não se esqueça de mostrar seu apoio curtindo e marcando como favorito.
Lembre-se: mantenha sempre a curiosidade e continue explorando o fascinante mundo da tecnologia!