Data Automation e customização de modelos
- ⬜🗂️ O catálogo de modelos: qual escolher para cada caso(AWS Bedrock — GenAI em Produção)
Recomendamos completar os pré-requisitos antes de seguir, mas nada te impede de continuar.
Todo projeto sério de GenAI cedo ou tarde bate em duas paredes que não são de prompt. A primeira: você tem uma montanha de conteúdo não estruturado — PDFs, notas fiscais escaneadas, gravações de call, imagens de produto — e precisa transformar isso em dados que o modelo consiga usar. A segunda: o modelo pronto, por melhor que seja, não fala o dialeto do seu domínio, é caro demais para o volume que você tem, ou é um peso que você mesmo treinou e quer servir. O Bedrock tem uma resposta gerenciada para cada uma: Data Automation para extrair, e um leque de técnicas de customização para adaptar. Este módulo cobre as duas frentes.
Frente A — Bedrock Data Automation (BDA)
O Bedrock Data Automation (BDA) ficou GA em março de 2025 e é, na prática, o IDP (Intelligent Document Processing) de nova geração da AWS. Uma única API extrai insights de conteúdo multimodal não estruturado — documentos, imagens, vídeo e áudio — e devolve saída estruturada pronta para consumir. Onde antes você costurava quatro serviços, agora manda o arquivo e recebe JSON.
O BDA opera em dois modos. No Standard output você não configura nada: ele devolve os insights default de cada modalidade (texto, tabelas, captions, transcrição). No Custom output você cria um Blueprint — um schema em que você declara exatamente os campos a extrair (ex.: número da nota, CNPJ, valor total de uma NF-e). É extração schema-driven: você descreve o formato de saída, o BDA preenche.
| Modalidade | O que o BDA extrai |
|---|---|
| Documento | Texto, tabelas, formulários, pares chave-valor e layout — a base para RAG sobre PDFs e digitalizações. |
| Imagem | Captions descritivos, texto embutido (OCR) e detecção de mais de 35.000 logos e marcas. |
| Vídeo | Sumários por cena e do vídeo inteiro, além de chapters (segmentação em capítulos). |
| Áudio | Transcrição completa mais custom insights configuráveis (tópicos, sentimento, resumo). |
import boto3
# Runtime do BDA: processa o asset de forma assíncrona e grava o JSON no S3.
bda = boto3.client("bedrock-data-automation-runtime", region_name="us-east-1")
resp = bda.invoke_data_automation_async(
inputConfiguration={
"s3Uri": "s3://meu-bucket/entrada/nota-fiscal.pdf"
},
outputConfiguration={
"s3Uri": "s3://meu-bucket/saida/"
},
# O projeto define Standard output ou um Blueprint (Custom output).
dataAutomationConfiguration={
"dataAutomationProjectArn": "arn:aws:bedrock:us-east-1:123456789012:data-automation-project/minha-nfe"
},
)
# Acompanhe o job; o resultado sai como JSON no s3Uri de saida.
print(resp["invocationArn"])BDA como parser de Knowledge Base
O BDA não vive isolado: ele pluga como parser das Knowledge Bases do Bedrock. Ao ingerir uma KB com documentos que misturam texto, tabelas e imagens, o BDA faz o parsing multimodal antes do chunking e do embedding — é assim que você monta RAG sobre conteúdo que não é só texto puro. É o mesmo motor de extração que o Amazon Q Business usa por baixo.
Um serviço no lugar de quatro
Antes do BDA, extrair dados de conteúdo misto significava orquestrar Textract (OCR/forms), Comprehend (NLP/entidades), Transcribe (áudio→texto) e Rekognition (imagem/vídeo) — cada um com sua API, seu output e sua conta de custo. O BDA entrega esse pipeline por trás de uma chamada única e com saída unificada. Menos glue code, menos superfície para quebrar.
BDA é assíncrono e cobra por asset
O BDA processa de forma assíncrona: você dispara o job, o resultado cai como JSON no bucket de saída, e você faz polling ou reage via EventBridge — não é request/response síncrono. A cobrança é por página de documento e por duração de áudio/vídeo processados; confira os valores exatos no pricing do console antes de rodar backfills grandes.
- → frente A: melhora a entrada, não o modelo
- → sem humano esperando: sempre em batch
- → frente B: exige conjunto de treino
- Armazenamento
- IA e machine learning
- Compute
- Fora da AWS
As duas frentes resolvem problemas opostos. A primeira aceita o modelo como está e melhora a ENTRADA. A segunda muda o MODELO — e só se paga com volume que justifique o projeto. Tente a primeira antes.
- Frente A: aceite o modelo e melhore a entrada. Extração gerenciada de documento, imagem, vídeo e áudio, com saída estruturada. Resolve a maioria dos casos sem tocar no modelo.
- E rode em batch. Processamento documental não tem humano esperando. É a economia mais fácil de capturar e a mais esquecida.
- Frente B: quando o pronto não basta. Fine-tuning ajusta ao seu domínio, distillation cria um aluno mais barato, e importar pesos serve para modelo que não está no catálogo. Todos são projeto.
- Avaliação fecha o ciclo. Customizar sem conjunto de referência é aposta: você não consegue afirmar que ficou melhor nem detectar regressão. A avaliação é o que autoriza a troca.
- A frente A é reversível; a frente B é projeto. Melhorar a entrada se desfaz num deploy. Mudar o modelo exige conjunto de treino, conjunto de referência, avaliação e um plano de volta — e o custo só se justifica com volume que amortize tudo isso. Por isso a ordem não é preferência: é a diferença entre um ajuste e um compromisso.
Frente B — Customizar o modelo quando o pronto não basta
Quando o modelo pronto não basta — porque erra o jargão do domínio, custa caro no seu volume, ou porque você tem pesos próprios para servir — o Bedrock oferece cinco caminhos de customização. Eles não são intercambiáveis: vão de "ajuste o comportamento com exemplos" até "traga o modelo inteiro e sirva serverless". A tabela separa o que é cada um e quando faz sentido.
| Técnica | O que é | Quando usar |
|---|---|---|
| Fine-tuning | Ajuste supervisionado com dataset rotulado (pares entrada→saída). Modelos: Nova, Titan, Claude 3 Haiku, Llama 3.1/3.2, Cohere. | Você tem exemplos rotulados e quer forçar formato, tom ou tarefa. O Bedrock é o único serviço managed a fine-tunar Claude. |
| Continued pre-training | Treino não-supervisionado adicional sobre um corpus de domínio, sem rótulos (Titan Text). | Você tem muito texto do domínio (jurídico, médico) e quer impregnar vocabulário e estilo antes de qualquer rótulo. |
| Model Distillation | Transfere conhecimento de um modelo teacher grande para um student pequeno e barato. | Tarefa estreita e bem definida, alto volume, e você quer cortar custo/latência mantendo a acurácia. |
| Custom Model Import | Traga seus próprios pesos e sirva por uma API serverless unificada, sem gerenciar GPU. | Você já treinou/afinou um modelo fora (SageMaker, on-prem) em arquitetura suportada e quer servi-lo no Bedrock. |
| Bedrock Marketplace | Catálogo de 100+ modelos públicos e proprietários, com deploy em endpoints do SageMaker. | Você quer um modelo de nicho que não está no catálogo base do Bedrock (inclui Hugging Face). |
Distillation: o sweet spot de custo/performance
A ideia é usar um modelo grande e caro (teacher) para gerar os dados que treinam um modelo pequeno e barato (student). Segundo a AWS, o student pode ficar até 500% mais rápido e 75% mais barato que o teacher, com menos de 2% de perda de acurácia — esses números são claims da própria AWS, valide no seu caso. Pares de exemplo: Nova Premier → Nova Pro, e Llama 3.3 70B → Llama 3.2 1B/3B. É a jogada certa quando a tarefa é estreita e o volume é alto o bastante para o custo do modelo grande doer.
import boto3
# Control plane do Bedrock: cria e gerencia jobs de customizacao.
bedrock = boto3.client("bedrock", region_name="us-east-1")
# Job de distillation: o teacher gera os dados, o student aprende. Tudo gerenciado.
job = bedrock.create_model_customization_job(
jobName="distill-suporte-tickets",
customModelName="nova-pro-suporte-distilled",
roleArn="arn:aws:iam::123456789012:role/BedrockCustomizationRole",
customizationType="DISTILLATION",
teacherModelIdentifier="amazon.nova-premier-v1:0",
baseModelIdentifier="amazon.nova-pro-v1:0", # o student
trainingDataConfig={"s3Uri": "s3://meu-bucket/prompts-sem-resposta.jsonl"},
outputDataConfig={"s3Uri": "s3://meu-bucket/distill-output/"},
)
print(job["jobArn"])
# O modelo resultante roda sob Provisioned Throughput — veja o callout abaixo.- Custom Model Import aceita arquiteturas específicas — não é qualquer peso: Llama 3.x, Mistral e Mixtral 8x7B, Flan-T5 e, desde nov/2025, OpenAI GPT-OSS 120b e 20b.
- Bedrock Marketplace traz 100+ modelos públicos e proprietários; o deploy acontece em endpoints gerenciados do SageMaker (você paga a instância, não por token).
- Modelos do Marketplace compatíveis com a Converse API podem ser usados com Agents, Knowledge Bases e Guardrails — entram no ecossistema como cidadãos de primeira classe.
Modelo customizado exige Provisioned Throughput
Cuidado com a conta: modelos fine-tuned, importados ou distilled normalmente NÃO rodam em on-demand puro. Para servi-los você provisiona capacidade dedicada (Provisioned Throughput), cobrada por model unit por hora, muitas vezes com commit de 1 ou 6 meses. Isso muda a economia: um modelo custom ocioso ainda queima dinheiro. Só vale quando o volume satura a capacidade — senão o modelo base on-demand sai mais barato.
Qual é a diferença entre o Standard output e o Custom output do Bedrock Data Automation?
Avaliação e batch: os complementos que fecham o ciclo
Customizar sem medir é fé, não engenharia. O Bedrock tem Model Evaluation embutido para comparar candidatos de forma reprodutível — antes de promover qualquer modelo custom para produção. Três abordagens convivem: métricas automáticas (acurácia, toxicidade, BLEU/ROUGE), avaliação humana com seus próprios juízes, e LLM-as-a-judge, em que outro modelo pontua as respostas em critérios como correctness, completeness e faithfulness.
RAG evaluation como quality gate no CI/CD
A avaliação de RAG (GA mar/2025) pontua duas coisas que o eval de texto puro ignora: se o retrieval trouxe o contexto certo (context relevance e coverage) e se a resposta citou as fontes corretas (citation coverage e precision). Trate esses scores como um gate no pipeline: bloqueie o deploy se a coverage cair abaixo do limiar. É a diferença entre "achamos que melhorou" e "a métrica subiu de 0,82 para 0,89".
Batch inference: metade do preço para o que não é interativo
Nem toda inferência precisa ser em tempo real. Rodar avaliações offline, reprocessar um backlog ou gerar embeddings em massa cabe no batch inference, com cerca de 50% de desconto sobre o on-demand. A regra é simples: se ninguém está esperando a resposta na tela, mande para o batch e pague metade.
📋 Tenho uma tarefa estreita (classificar tickets de suporte em 12 categorias), volume altíssimo e constante, e o modelo grande que uso hoje está caro demais. Quero baratear sem perder acurácia.
Tarefa estreita + alto volume é exatamente o cenário em que distillation brilha: você usa o modelo grande como teacher para treinar um student pequeno, que serve a uma fração do custo e da latência. O ganho de custo se paga porque o volume é grande e a tarefa não exige o poder do modelão.
Alt: Fine-tuning do modelo grande — Melhora a qualidade, mas não ataca o problema central: o modelo continua grande e caro por token no seu volume.
Alt: Continued pre-training — Serve para impregnar domínio via corpus não rotulado, não para espremer custo de uma tarefa de classificação já bem definida.
Alt: Trocar para um modelo base menor on-demand — Mais simples, mas sem distillation o modelo pequeno tende a perder acurácia na sua tarefa específica — você troca custo por erro.
Uma engenheira afina um Claude 3 Haiku via Bedrock e vai colocá-lo em produção. Sobre como servir esse modelo customizado, o que é verdade?
Você adicionou um novo modelo ao seu pipeline de RAG e quer garantir, no CI/CD, que a qualidade não regrediu antes do deploy. Qual recurso do Bedrock mede especificamente se o retrieval trouxe e citou o contexto certo?
Próximo passo
Você já sabe extrair dados com o BDA e adaptar modelos com fine-tuning, distillation e import — e viu que modelo custom muda a conta por causa do Provisioned Throughput. A pergunta que fecha o ciclo é: no fim do mês, como exatamente o Bedrock cobra por tudo isso? É o próximo módulo — Preços e cobrança: como o Bedrock cobra de você.
Perguntas frequentes
❓ Quando usar extração automatizada de documento em vez do modelo direto?
❓ Ajuste fino no Bedrock vale a pena?
❓ Quantos exemplos preciso para ajustar um modelo?
Terminou de ler?
Marcar como concluído registra o XP, mantém sua sequência e coloca 3 cartas deste módulo na fila de revisão espaçada.
Próximos passos sugeridos
Temas deste módulo
Discussão
Carregando comentários…