Colab Pro está caro, instável e às vezes bloqueia conta. Kaggle limita 30h/semana. Configurar CUDA + PyTorch + drivers em sua própria GPU dá uma tarde fácil de trabalho. JupyterLab no GPUBrasil resolve em 90 segundos: notebook pronto com CUDA, PyTorch, TensorFlow, JAX e tudo o que você precisa para ML/IA.

⚡ Resumo

JupyterLab + CUDA 12 + PyTorch 2.5 + Transformers + Datasets + xformers + bitsandbytes pré-instalados. Volume persistente para seus notebooks e datasets. R$ 1,80/h por uma RTX A4000.

O que está incluído

Casos de uso brasileiros

Hardware recomendado

💰 Custo no GPUBrasil

RTX A4000 R$ 1,80/h | RTX 4090 R$ 3,60/h | L40S R$ 6,00/h. Pague apenas pelo tempo ligado. Cabe em qualquer bolso de pesquisador ou DS individual.

Deploy em 1 clique

Passo 1: Iniciar template

  1. Console → Templates → 📓 Notebooks & Dev
  2. Selecione JupyterLab GPU
  3. Escolha GPU conforme seu projeto
  4. Clique em Iniciar

O template usa imagem CUDA + Jupyter pré-configurada, expõe Jupyter na porta 8888 com token gerado e mostra a URL no console assim que estiver pronto.

Passo 2: Verificar GPU

import torch

print("CUDA disponível:", torch.cuda.is_available())
print("Device:", torch.cuda.get_device_name(0))
print("VRAM total:", f"{torch.cuda.get_device_properties(0).total_memory / 1e9:.1f} GB")

# Teste rápido
x = torch.randn(10000, 10000, device="cuda")
y = x @ x.T
print("Matmul OK:", y.shape)

Passo 3: Fine-tune Llama 3 com QLoRA

from transformers import (
    AutoTokenizer, AutoModelForCausalLM,
    TrainingArguments, BitsAndBytesConfig
)
from peft import LoraConfig, get_peft_model
from trl import SFTTrainer
from datasets import load_dataset

model_id = "meta-llama/Meta-Llama-3.1-8B-Instruct"

# Quantização 4-bit
bnb = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_compute_dtype=torch.bfloat16
)

tok = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
    model_id, quantization_config=bnb, device_map="auto"
)

# LoRA
lora = LoraConfig(
    r=16, lora_alpha=32,
    target_modules=["q_proj","k_proj","v_proj","o_proj"],
    bias="none", task_type="CAUSAL_LM"
)
model = get_peft_model(model, lora)

# Dataset
ds = load_dataset("seu-user/dataset-br", split="train")

trainer = SFTTrainer(
    model=model,
    train_dataset=ds,
    tokenizer=tok,
    args=TrainingArguments(
        output_dir="/workspace/llama-br",
        num_train_epochs=3,
        per_device_train_batch_size=2,
        gradient_accumulation_steps=4,
        learning_rate=2e-4,
        bf16=True,
        save_steps=100
    )
)
trainer.train()
trainer.save_model("/workspace/llama-br-final")

Passo 4: Conectar com seu Qdrant/vLLM

from qdrant_client import QdrantClient
from openai import OpenAI

# Qdrant brasileiro
qdrant = QdrantClient("https://qdrant.gpubrasil.com.br", port=443, https=True)

# vLLM brasileiro como cliente OpenAI
llm = OpenAI(
    base_url="https://vllm.gpubrasil.com.br/v1",
    api_key="dummy"
)

resp = llm.chat.completions.create(
    model="Qwen/Qwen2.5-7B-Instruct",
    messages=[{"role":"user","content":"Resumo da B3 hoje?"}]
)
print(resp.choices[0].message.content)

Passo 5: Acesso SSH (opcional)

Para devs que preferem VS Code Remote ou terminal puro:

# No console do GPUBrasil → Instâncias → Detalhes → SSH
ssh -i ~/.ssh/sua-key.pem ubuntu@<ip-instancia>
# Ou abra direto no VS Code com Remote-SSH

Persistência e backup

Tudo em /workspace é volume persistente — sobrevive a stop/start. Para backup:

# Snapshot via console GPUBrasil (1 clique)
# Ou via rsync para S3 brasileiro
rsync -avz /workspace/ s3://meu-bucket-br/jupyter-backup/

Dicas de produtividade

JupyterLab vs alternativas

Notebook GPU pronto em 90 segundos

Ganhe R$ 25 grátis no GPUBrasil e suba JupyterLab CUDA em 1 clique.

Começar Grátis →

Conclusão

JupyterLab no GPUBrasil é a forma mais rápida de ter um ambiente ML/IA profissional em GPU brasileira. Sem desconexões do Colab, sem cota do Kaggle, sem ódio configurando CUDA. Pague pelo tempo de uso e foque no código que importa.

Combine com: vLLM · Qdrant