Trilha de certificações
Databricks Certified Generative AI Engineer Associate
Avalia o projeto e a implementação de soluções com LLMs na Databricks: decompor problemas, escolher modelos e ferramentas, RAG com Vector Search, agentes (Agent Framework, Agent Bricks, MCP), Model Serving, MLflow para ciclo de vida e avaliação, e governança com Unity Catalog.
Formato da prova
- Questões
- 45 questões
- Duração
- 90 min
- Taxa
- US$ 200
- Idiomas
- Inglês, Japonês, Português (BR), Coreano
- Validade
- 2 anos
- Versão do guia oficial
- 18 de mar. de 2026
Nenhum obrigatório. Recomenda-se seis meses de prática na plataforma e o curso Generative AI Engineering with Databricks.
O que cai e quanto pesa
- Design de aplicações14%
- Preparação de dados14%
- Desenvolvimento de aplicações30%
- Montagem e deploy de aplicações22%
- Governança8%
- Avaliação e monitoramento12%
Número aproximado de questões por seção, considerando as 45 questões pontuadas.
Seção 1 · 14% · ≈ 6 questões
Design de aplicações
Objetivos oficiais
- Projetar um prompt que gere uma resposta em formato específico.
- Escolher as tarefas de modelo que atendem a um requisito de negócio.
- Escolher os componentes de uma chain para a entrada e saída desejadas.
- Traduzir objetivos de negócio em entradas e saídas do pipeline de IA.
- Definir e ordenar ferramentas que buscam conhecimento ou executam ações em raciocínio de várias etapas.
- Determinar como e quando usar Agent Bricks (Knowledge Assistant, Multi-Agent Supervisor, Information Extraction).
Prompt com formato garantido
Você é um assistente de suporte. Responda SOMENTE em JSON válido, sem texto fora do JSON:
{"categoria": "cobrança|entrega|produto", "urgencia": 1-5, "resumo": "<até 20 palavras>"}
Exemplo:
Entrada: "Fui cobrado duas vezes!"
Saída: {"categoria": "cobrança", "urgencia": 4, "resumo": "Cobrança duplicada"}
Instrução clara + schema + exemplo (few-shot). Melhor ainda: structured outputs (response_format com JSON schema) quando o endpoint suporta.
Tarefa certa
Resumir → summarization; separar em categorias → classification; extrair campos → information extraction / NER; responder com base em documentos → RAG; traduzir → translation.
Chains e agentes
Entrada → (reescrita da pergunta) → retriever → prompt com contexto → LLM → (pós-processamento/validação) → saída. Em agentes, o LLM escolhe ferramentas em sequência: ordene para primeiro buscar informação, depois agir.
Agent Bricks
| Brick | Para |
|---|---|
| Knowledge Assistant | Chatbot de perguntas sobre documentos (RAG gerenciado, com citações) |
| Information Extraction | Transformar texto não estruturado em campos estruturados |
| Multi-Agent Supervisor | Orquestrar vários agentes/Genie spaces/ferramentas |
| Use quando o caso se encaixa no padrão e você quer qualidade sem montar tudo à mão; código customizado (Agent Framework) quando precisa de controle fino. |
Documentação:Agent BricksPadrões de design de agentes
Seção 2 · 14% · ≈ 6 questões
Preparação de dados
Objetivos oficiais
- Aplicar uma estratégia de chunking conforme a estrutura do documento e as restrições do modelo.
- Filtrar conteúdo irrelevante dos documentos que piora a qualidade do RAG.
- Escolher o pacote Python adequado para extrair conteúdo conforme a fonte e o formato.
- Definir as operações e a sequência para gravar o texto em chunks em tabelas Delta do Unity Catalog.
- Identificar os documentos-fonte necessários para dar conhecimento e qualidade ao RAG.
- Usar ferramentas e métricas para avaliar o desempenho da recuperação.
- Projetar sistemas de recuperação com estratégias avançadas de chunking.
- Explicar o papel do re-ranking na recuperação de informação.
Chunking
| Estratégia | Quando |
|---|---|
| Tamanho fixo + overlap | Texto corrido sem estrutura |
| Recursivo (parágrafo → frase → palavra) | Padrão robusto para documentos variados |
| Por estrutura (títulos, seções, markdown, HTML) | Documentos bem estruturados (manuais, wikis) |
| Semântico | Quebra quando o assunto muda |
| Parent/child (small-to-big) | Busca em chunk pequeno, devolve o trecho maior |
Chunk maior ou menos overlap → menos chunks (menos embeddings). Chunk deve caber no contexto do modelo de embedding.
Extração por formato
PDF → pypdf, pdfplumber, unstructured; imagem escaneada → OCR (pytesseract); HTML → beautifulsoup; DOCX → python-docx. Ou ai_parse_document direto em SQL.
Do arquivo à tabela
docs = spark.read.format("binaryFile").load("/Volumes/main/rag/pdfs/")
chunks = docs.withColumn("texto", extrai_udf("content")).withColumn("chunk", F.explode(chunk_udf("texto")))
(chunks.select(F.monotonically_increasing_id().alias("id"), "path", "chunk")
.write.option("delta.enableChangeDataFeed", "true").saveAsTable("main.rag.chunks"))
CDF ligado é exigido pelo índice Delta Sync do Vector Search.
Fontes e limpeza
Inclua os documentos que contêm a resposta (políticas, manuais, FAQs); dados estruturados por transação (datas de entrega, saldo) se buscam melhor por lookup/feature table ou ferramenta, não vetor. Remova cabeçalhos/rodapés repetidos, menus, boilerplate e duplicatas.
Avaliar e re-rankear
Métricas de recuperação: recall@k, precision@k, MRR, NDCG, além de juízes de retrieval relevance/groundedness do MLflow. Re-ranker (cross-encoder) reordena os top-N candidatos da busca vetorial por relevância real — melhora a precisão, mas adiciona latência.
Pegadinhas comuns
- Reduzir o tamanho do chunk AUMENTA o número de embeddings.
- Busca vetorial é ruim para fatos estruturados por chave (ex.: data de entrega de um pedido).
Documentação:Preparação de dados para RAGVector Search
Seção 3 · 30% · ≈ 14 questões
Desenvolvimento de aplicações
Objetivos oficiais
- Escolher LangChain ou ferramentas semelhantes para a aplicação.
- Avaliar qualitativamente as respostas para achar problemas de qualidade e segurança.
- Escolher a estratégia de chunking com base na avaliação do modelo e da recuperação.
- Enriquecer o prompt com contexto extra a partir de campos, termos e intenções do usuário.
- Criar um prompt que leve a resposta do LLM de um baseline ao resultado desejado.
- Implementar guardrails para evitar resultados negativos.
- Escolher o melhor LLM pelos atributos da aplicação.
- Escolher o contexto do modelo de embedding conforme os documentos, as queries e a estratégia de otimização.
- Escolher um modelo de um hub/marketplace pelos metadados e model cards.
- Escolher o melhor modelo para uma tarefa por métricas de experimentos.
- Usar MLflow e Agent Framework para desenvolver sistemas agênticos.
- Comparar as fases de avaliação e de monitoramento do ciclo de vida de GenAI.
- Permitir que sistemas multiagente usem Genie spaces ou a Conversation API para buscar dados.
Frameworks
LangChain/LangGraph, LlamaIndex, OpenAI Agents SDK, DSPy — todos funcionam na Databricks; o Mosaic AI Agent Framework + MLflow dão logging, avaliação, tracing e deploy uniformes, qualquer que seja o framework.
Escolhendo o LLM
Considere: qualidade na tarefa (benchmarks e sua avaliação), tamanho do contexto, latência e custo, licença, se precisa de tool calling/JSON. Model card traz tarefa, idiomas, dados de treino, licença e limitações.
Embedding: contexto e dimensão
Escolha um modelo cujo contexto ≥ tamanho do chunk. Se custo/latência importam mais que qualidade, pegue o menor modelo que cobre o chunk (ex.: chunks de 512 tokens → modelo de 512 de contexto e dimensão menor). Dimensão maior = índice maior e mais lento.
Guardrails
Na entrada: detectar prompt injection, tópicos proibidos, PII. Na saída: filtro de toxicidade, checagem de groundedness, validação de schema. Na Databricks: AI Gateway guardrails no endpoint, ou um LLM/classificador como verificador na chain.
Agentes com MLflow
import mlflow
from mlflow.pyfunc import ResponsesAgent
class MeuAgente(ResponsesAgent):
def predict(self, request):
... # chama LLM + ferramentas
mlflow.langchain.autolog() # ou mlflow.openai.autolog(): tracing automático
mlflow.models.set_model(MeuAgente())
Logue com mlflow.pyfunc.log_model(python_model="agente.py", resources=[...]), registre no UC e faça deploy com databricks.agents.deploy().
Avaliação x monitoramento
Avaliação = antes do deploy, com dataset (às vezes com ground truth) e juízes. Monitoramento = em produção, sobre tráfego real (sem ground truth), com os mesmos scorers aplicados a uma amostra dos traces.
Dados estruturados em multiagente
Um Genie space vira ferramenta/subagente: o supervisor pergunta em linguagem natural e o Genie responde com SQL sobre as tabelas — ou chame a Genie Conversation API.
Documentação:Agent FrameworkGuardrails no AI GatewayGenie Conversation API
Seção 4 · 22% · ≈ 10 questões
Montagem e deploy de aplicações
Objetivos oficiais
- Codificar uma chain com modelo pyfunc e pré/pós-processamento.
- Controlar o acesso a recursos a partir de endpoints de serving.
- Codificar uma chain simples conforme os requisitos.
- Escolher os elementos básicos de uma aplicação RAG: flavor, embedding, retriever, dependências, exemplos de entrada e assinatura.
- Registrar o modelo no Unity Catalog com MLflow.
- Criar e consultar um índice do Vector Search e explicar seus conceitos e componentes.
- Identificar como servir uma aplicação que usa Foundation Model APIs.
- Identificar cargas de inferência em batch e aplicar ai_query() adequadamente.
- Configurar o Vector Search conforme nº de embeddings, frequência de atualização, latência e custo.
- Configurar um armazenamento persistente para memória intermediária ou informação estruturada.
- Aplicar boas práticas de CI/CD: atualizar índices, promover prompts entre ambientes e testar componentes do agente.
- Integrar servidores MCP gerenciados, externos e customizados conforme a aplicação.
- Aplicar versionamento de prompts e gerenciar o ciclo de vida deles.
- Desenvolver uma interface interativa para o agente (Apps, Slack, Teams etc.).
Vector Search
- Endpoint (compute) hospeda índices.
- Delta Sync index: sincroniza de uma tabela Delta (com CDF); embeddings calculados pela Databricks (managed) ou por você (self-managed). Sync triggered (você chama
sync) ou continuous (segundos, mais caro). - Direct Access index: você faz upsert/delete pela API.
- Tipos de endpoint: standard (baixa latência, alto QPS) e storage-optimized (bilhões de vetores, mais barato, latência maior).
- Hybrid search (vetor + palavra-chave) e reranking melhoram a relevância mas adicionam latência.
from databricks.vector_search.client import VectorSearchClient
vsc = VectorSearchClient()
idx = vsc.create_delta_sync_index(endpoint_name="vs_ep", index_name="main.rag.chunks_idx",
source_table_name="main.rag.chunks", primary_key="id", pipeline_type="TRIGGERED",
embedding_source_column="chunk", embedding_model_endpoint_name="databricks-gte-large-en")
idx.similarity_search(query_text="prazo de devolução", columns=["chunk", "path"], num_results=5)
Elementos de um RAG logado
Flavor (pyfunc/langchain), modelo de embedding, retriever, LLM, dependências (pip), input_example, signature e resources (endpoints e índices usados → credenciais automáticas no serving).
Acesso a recursos
Declare resources no log do modelo (endpoint de LLM, índice, Genie, função do UC) — o serving cria credenciais de curta duração (passthrough automático). Para segredos externos, use Databricks Secrets em variáveis de ambiente do endpoint.
Batch com ai_query
SELECT id, ai_query('databricks-meta-llama-3-3-70b-instruct',CONCAT('Classifique: ', texto)) FROM main.raw.reviews;
Milhões de linhas → ai_query (paralelo, sem servidor próprio); tempo real → endpoint.
Memória e estado
Conversas e memória de longo prazo em Lakebase (Postgres gerenciado) ou tabelas Delta — não em variáveis do processo.
MCP
- Gerenciado: servidores da Databricks (Vector Search, Genie, funções do UC, alguns serviços externos) — só referencie.
- Externo: servidor de terceiros via conexão do UC, credenciais em Secrets.
- Customizado: seu servidor hospedado como Databricks App.
Prompts e CI/CD
MLflow Prompt Registry: mlflow.genai.register_prompt(...) cria versões; aliases (@production) promovem e permitem rollback. Atualize índices no pipeline (sync após a ingestão) e teste ferramentas isoladamente.
Interface
Databricks Apps (Streamlit, Gradio, Dash, Node) com autenticação corporativa; o backend chama o endpoint com credenciais do app/usuário — nunca exponha tokens no navegador. Slack/Teams via bots que chamam o endpoint.
Pegadinhas comuns
- Continuous sync custa mais; se os dados mudam uma vez por dia, um sync agendado após a carga resolve.
- Token de acesso no JavaScript do navegador é sempre a resposta errada.
Documentação:Vector SearchMCP na DatabricksPrompt RegistryDatabricks Apps
Seção 5 · 8% · ≈ 4 questões
Governança
Objetivos oficiais
- Usar mascaramento como guardrail para cumprir um objetivo de desempenho.
- Escolher guardrails contra entradas maliciosas.
- Considerar requisitos legais e de licença das fontes de dados para evitar risco jurídico.
- Recomendar alternativas para mitigar texto problemático em uma fonte que alimenta a aplicação.
- Mascaramento de PII antes de enviar ao LLM (
ai_mask, regex, máscaras do UC) protege dados e reduz risco sem perder utilidade. - Entradas maliciosas (prompt injection, jailbreak): classificador de entrada, instruções de sistema robustas, separar dados de instruções, limitar ferramentas e permissões do agente.
- Licenças: use dados e modelos cuja licença permite o uso comercial pretendido; documente a origem (UC + tags).
- Texto problemático na fonte (tóxico, desatualizado, enviesado): filtrar ou remover na preparação, em vez de confiar só em guardrail de saída.
Documentação:AI Gateway: guardrails
Seção 6 · 12% · ≈ 5 questões
Avaliação e monitoramento
Objetivos oficiais
- Escolher o LLM (tamanho e arquitetura) com base em métricas quantitativas.
- Escolher as métricas-chave para monitorar um cenário de deploy.
- Avaliar agentes com scorers e tracing do MLflow.
- Usar logs de inferência para avaliar o RAG em produção.
- Usar recursos da Databricks para controlar custos de LLM.
- Usar inference tables e Agent Monitoring para acompanhar um endpoint ao vivo.
- Identificar os juízes de avaliação que exigem ground truth.
- Usar o AI Gateway (inference tables, usage tables e rate limiting) para acompanhar um LLM ou agente.
- Usar scorers customizados para avaliar agentes e LLMs.
- Incorporar feedback de especialistas (SME) para melhorar o agente.
mlflow.genai.evaluate
from mlflow.genai.scorers import Correctness, RelevanceToQuery, RetrievalGroundedness, Safety, scorer
@scorer
def resposta_curta(outputs) -> bool:
return len(outputs.split()) < 120
mlflow.genai.evaluate(data=dataset, predict_fn=agente,
scorers=[Correctness(), RelevanceToQuery(), RetrievalGroundedness(), Safety(), resposta_curta])
- Exigem ground truth (resposta esperada/fatos):
Correctness, retrieval sufficiency. - Não exigem: relevância, groundedness, safety, guidelines.
Tracing
Cada chamada vira um trace com spans (retriever, LLM, ferramentas), latência e tokens — essencial para depurar e alimenta a avaliação.
Produção
- Inference tables (via AI Gateway): requests e responses gravados numa tabela Delta.
- Usage tables: tokens e custo por endpoint/usuário.
- Rate limiting: por usuário/endpoint para controlar custo e abuso.
- Agent monitoring: roda scorers numa amostra do tráfego real.
Custos
Modelo menor quando a qualidade permite, cache, limitar tokens de saída, rate limits, provisioned throughput só quando o volume justifica, batch com ai_query.
Feedback de especialistas
Review App / labeling sessions do MLflow. Para notas consistentes: rubricas claras, calibração dos avaliadores; depois alinhe juízes LLM a esses rótulos.
Documentação:MLflow GenAI evaluateInference tables
Treinamentos recomendados pela Databricks
- Instrutor: Generative AI Engineering with Databricks
- Academy: Building RAG Agents with Agent Bricks
- Academy: Building Agentic Applications on Databricks
- Academy: Agent Evaluation on Databricks
- Academy: Deploying and Monitoring Agent Applications on Databricks