Pular para o conteúdo
Lucas Lessa

Trilha de certificações

Associate

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

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

BrickPara
Knowledge AssistantChatbot de perguntas sobre documentos (RAG gerenciado, com citações)
Information ExtractionTransformar texto não estruturado em campos estruturados
Multi-Agent SupervisorOrquestrar 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égiaQuando
Tamanho fixo + overlapTexto 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ânticoQuebra 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
Guia do exame Generative AI Engineer Associate · Lucas Lessa