← Voltar a AI Engineer — DEUS.ai

Flashcards essenciais — RAG, Agents, Embeddings e Produção (DEUS AI Engineer)

AI Engineer — DEUS.ai

Apresentação

Flashcards essenciais — RAG, Agents, Embeddings e Produção

Resumo organizado para revisão rápida antes da entrevista AI Engineer na DEUS Initiative. Conteúdo em Português, com versões para dizer em voz alta (spoken version) quando aplicável. Organizado por prioridade: A (must know), B (important), C (difícil/bonus) + Comportamental/Prático.

Como usar

  • Lê cada cartão, tenta responder em 20–30s.
  • Depois lê a "spoken version" em voz alta como se estivesses a explicar ao entrevistador.
  • Se erras, marca para repetir mais cedo.
  • Sugestão de repetição espaçada: 1 dia / 3 dias / 1 semana.

Prioridade A (fundamentais)

  1. RAG em 30 segundos
  • Pergunta: O que é RAG em 30 segundos?
  • Resposta: RAG combina LLM com retrieval: query → embedding → vector search → top‑k documentos → injeção do contexto no prompt → LLM gera resposta fundamentada. Reduz hallucinations e mantém conhecimento atualizado.
  • Spoken version: "RAG junta um modelo de linguagem com um índice vetorial: transformas a pergunta em embedding, recuperas os documentos mais similares, injetas esses trechos no prompt e deixas o LLM gerar uma resposta baseada nesses documentos."
  1. Pipeline RAG (offline → online)
  • Pergunta: Principais passos do pipeline RAG (offline → online)?
  • Resposta: Offline: ingestão → chunking → embeddings → vector DB. Online: query → embedding → retrieval → (reranking) → prompt augmentation → LLM → resposta.
  • Spoken version: "Offline fazemos ingestão, chunking e embeddamos para o vector DB. Online embeddamos a query, recuperamos docs, opcionalmente rerankamos, augmentamos o prompt e chamamos o LLM."
  1. Chunking: o que e porquê crítico
  • Pergunta: O que é chunking e porquê é crítico?
  • Resposta: Dividir documentos em pedaços para embeddings/LLM. Balancear tamanho vs recall. Estratégias: fixed size, sentence‑based, semantic chunking, sliding window; overlap 10–20% comum.
  • Spoken version: "Chunking quebra o documento para embedding; tens de escolher o tamanho certo e usar overlap para preservar contexto."
  1. Embeddings
  • Pergunta: O que são embeddings?
  • Resposta: Representações vetoriais densas que capturam significado. Textos semanticamente similares ficam próximos no espaço vetorial.
  • Spoken version: "Embeddings são vetores que representam semântica — textos parecidos ficam próximos no espaço."
  1. Métricas para retrieval
  • Pergunta: Métricas comuns para embeddings / retrieval?
  • Resposta: Cosine similarity, dot product, Euclidean; avaliação: recall@k, precision@k, MRR.
  • Spoken version: "Usamos cosine ou dot product para similaridade e métricas como recall@k e MRR para avaliar retrieval."
  1. Tipos de RAG
  • Pergunta: Quais são os tipos de RAG importantes?
  • Resposta: Naive, Hybrid (vetor + BM25), Reranking (cross‑encoder), Parent‑Child, Hierarchical, Agentic RAG.
  • Spoken version: "Há RAG simples, híbrido com BM25, pipelines com reranker, parent‑child e abordagens agentic para multi‑hop."
  1. HNSW
  • Pergunta: O que é HNSW?
  • Resposta: Índice ANN em grafo hierárquico (Hierarchical Navigable Small World). Busca rápida e alto recall, usado em Pinecone/Qdrant/Weaviate.
  • Spoken version: "HNSW é um índice ANN baseado num grafo hierárquico usado para buscas vetoriais rápidas."
  1. Hybrid search
  • Pergunta: O que é hybrid search e quando usar?
  • Resposta: Combinar semantic vector search + keyword (BM25), fundindo rankings (ex: RRF). Usar quando exact match importa (nomes, IDs, termos técnicos).
  • Spoken version: "Combinas BM25 com semantic search para garantir matches exatos e semânticos."
  1. Reranking
  • Pergunta: O que é reranking e por que usar?
  • Resposta: Recuperar top‑N com bi‑encoder e depois reordenar com cross‑encoder (mais preciso). Pipeline: retrieve top 20 → rerank → top 5 → LLM.
  • Spoken version: "Usas um bi‑encoder para recuperar e um cross‑encoder para rerankar porque é mais acurado, embora mais caro."
  1. Parent‑Child RAG
  • Pergunta: O que é parent‑child RAG?
  • Resposta: Indexar chunks pequenos para matching preciso, mas devolver o documento pai (maior contexto) para o LLM — combina recall e contexto.
  • Spoken version: "Indexas chunks pequenos, mas reenvías o pai para fornecer contexto amplo quando necessário."
  1. Context dilution
  • Pergunta: O que causa context dilution e como evitar?
  • Resposta: Muitos chunks irrelevantes no prompt diluem informação útil. Mitigar: reduzir k, usar reranking, aumentar qualidade do retrieval.
  • Spoken version: "Diminuir k ou rerankar evita que o prompt fique cheio de lixo."
  1. Caching & redução de custos
  • Pergunta: Como reduzir custos de LLM em produção?
  • Resposta: Caching (exact/semantic), model routing, RAG, batching, prompt & token optimization, speculative decoding.
  • Spoken version: "Fazer caching e enviar queries simples para modelos baratos reduz significativamente custos."
  1. Model routing
  • Pergunta: O que é model routing?
  • Resposta: Enviar cada pedido para o modelo adequado (barato vs caro) com base em heurísticas ou router LLM para reduzir custo sem sacrificar qualidade.
  • Spoken version: "O router decide se um pedido vai para um modelo pequeno ou para o modelo grande."
  1. Ingestão escalável para RAG
  • Pergunta: Como implementar ingestão escalável para RAG?
  • Resposta: Event‑driven: doc change → queue (Kafka/SQS) → workers processam chunk, embed e upsert no vector DB (async, retry, idempotency).
  • Spoken version: "Usa pipelines event‑driven com filas e workers idempotentes para embeds e upserts."
  1. Backend estateless
  • Pergunta: Como desenhar backend estateless para AI?
  • Resposta: Backend sem estado; session/context em cliente ou Redis; permite horizontal scaling e réplicas intercambiáveis.
  • Spoken version: "Mantém estado fora do backend, em Redis ou no cliente para escalabilidade."
  1. Prompt engineering — boas práticas
  • Pergunta: Boas práticas em prompt engineering?
  • Resposta: System prompt (persona, regras), few‑shot para formatos, chain‑of‑thought para raciocínio, ReAct para tool use, structured outputs (JSON schema), delimitadores para evitar prompt injection, guardrails.
  • Spoken version: "Define system prompt, usa exemplos para formato e valida resposta com schemas."
  1. Temperatura
  • Pergunta: Quando usar temperature 0 vs 0.7?
  • Resposta: 0: tarefas determinísticas (parsing, extraction, classification). 0.7: criatividade, brainstorming. Use 0–0.3 para factualidade.
  • Spoken version: "Temperatura baixa para precisão, alta para criatividade."
  1. RAG vs Fine‑tuning
  • Pergunta: Diferença entre RAG e fine‑tuning?
  • Resposta: RAG: adiciona conhecimento externo em runtime (bom para dados que mudam). Fine‑tuning: altera comportamento/estilo do modelo (bom para formatos consistentes); não usar fine‑tuning para conhecimento que muda.
  • Spoken version: "RAG actualiza respostas sem tocar no modelo; fine‑tuning altera o próprio modelo."
  1. Pipeline híbrido recomendado (BM25 + RRF + Reranking)
  • Pergunta: Qual o pipeline RAG recomendado para produção e os 3 passos?
  • Resposta: (1) Hybrid Search: BM25 + vector search em paralelo, top-100 cada; (2) RRF para fusion das listas; (3) Reranking com cross-encoder nos ~120 candidatos → top-5 a top-10 para o LLM. Ganhos de 20–35% vs naive.
  • Spoken version: "Fazes duas buscas em paralelo — BM25 e vetorial —, fundes com RRF e rerankas com cross-encoder antes de passar ao LLM."
  1. RRF (Reciprocal Rank Fusion)
  • Pergunta: O que é RRF e para que serve?
  • Resposta: Técnica para combinar rankings: score(d) = Σ 1/(k + rank_i(d)). k típico 60. Combina listas (dense + BM25) sem normalizar scores; robusto e simples.
  • Spoken version: "RRF combina rankings pelos ranks em vez dos scores — evita problemas de escala entre BM25 e similaridade vetorial."
  1. Bi-encoder vs Cross-encoder
  • Pergunta: Diferença entre bi-encoder e cross-encoder?
  • Resposta: Bi-encoder: query e doc embedados separadamente; usado em retrieval (rápido). Cross-encoder: par (query, doc) num forward; usado em reranking (preciso, lento). Pipeline: retrieve com bi → rerank com cross.
  • Spoken version: "Bi-encoder para recuperar rápido; cross-encoder para rerankar com precisão."
  1. Hallucinations — causas e mitigação
  • Pergunta: O que causa hallucinations e como mitigar?
  • Resposta: Causas: conhecimento limitado, temperatura alta, contexto irrelevante. Mitigação: RAG (grounding), temperatura 0–0.3, prompts "diz não sei se não souberes", reranking, verificação pós-geração, human-in-the-loop.
  • Spoken version: "RAG e temperatura baixa reduzem; prompts conservadores e verificação ajudam."
  1. Structured output
  • Pergunta: Como garantir output estruturado (JSON) de um LLM?
  • Resposta: Function calling / tool use (modelo devolve JSON schema); ou prompt com schema + parse com fallback (extrair bloco {...}); validar com Pydantic/JSON Schema.
  • Spoken version: "Function calling é o mais fiável; senão, schema no prompt e parse robusto com fallback."

Prioridade B (arquitecturas agentes, observability e segurança)

  1. HyDE
  • Pergunta: O que é HyDE?
  • Resposta: HyDE = gerar documento hipotético pela LLM, embeddar esse doc e usar para retrieval; útil para queries vagas.
  • Spoken version: "Gerar um doc hipotético com o LLM e embeddá‑lo pode melhorar retrieval para queries abstratas."
  1. Agentic RAG
  • Pergunta: O que é agentic RAG?
  • Resposta: Um agente decide dinamicamente quando/como pesquisar, possibilitando multi‑hop retrievals e decisões de pesquisa durante o raciocínio.
  • Spoken version: "Agents tomam decisões de busca enquanto raciocinam, permitindo passos encadeados."
  1. ReAct
  • Pergunta: O que é ReAct?
  • Resposta: Pattern que intercala Reasoning (Thought) e Acting (Action/tool call): Thought → Action → Observation → repeat. Base para agents.
  • Spoken version: "Pensa, age, observa e repete — esse é o ciclo ReAct."
  1. Tools / function calling
  • Pergunta: Como funcionam tools (function calling) com agents?
  • Resposta: Definir schema (name, description, parameters). LLM responde com tool_call → parse args → executar função → adicionar resultado ao histórico → LLM continua. Usar descrições claras e schemas estritos.
  • Spoken version: "Define funções com schemas e deixa o LLM chamar essas funções de forma controlada."
  1. LangGraph
  • Pergunta: O que é LangGraph?
  • Resposta: Framework para workflows stateful de agentes com state machine: nós = agentes, edges = transições; facilita coordenação e estado partilhado.
  • Spoken version: "LangGraph organiza agentes como grafos com estado, facilitando orquestração."
  1. Single vs Multi‑agent
  • Pergunta: Quando usar single agent vs multi‑agent?
  • Resposta: Single: tarefas simples, menos custo. Multi‑agent: tarefas complexas que beneficiam de especialização (search, summarizer, safety), controlo e debuggability.
  • Spoken version: "Usa multi‑agent quando precisares de especialização e isolamento de responsabilidades."
  1. Evitar loops infinitos
  • Pergunta: Principais práticas para evitar loops infinitos em agents?
  • Resposta: Limitar max iterations/steps, timeouts, detetar tool repeated calls com mesmos args, fallback humano e edge‑case detection.
  • Spoken version: "Define limites de iterações, timeouts e detecção de repetição."
  1. Langfuse / LangSmith (observability)
  • Pergunta: O que é Langfuse/LangSmith e para que servir?
  • Resposta: Ferramentas de observability e tracing para LLMs: trace de prompts, tokens, custo, passos do agente; úteis para debugging e monitorização.
  • Spoken version: "Usa Langfuse para traçar prompts e entender custos e falhas."
  1. Guardrails / segurança de agents
  • Pergunta: Quais guardrails e medidas de segurança implementarias para agents?
  • Resposta: Input sanitization (prompt injection detection), separators, system prompt isolado, output validation (schema, PII redaction, moderation), principle of least privilege for tools, human‑in‑the‑loop para actions críticas.
  • Spoken version: "Sanitiza inputs, valida outputs e limita privilégios das tools."
  1. Testes e mocks para LLMs
  • Pergunta: Como testar código que chama LLMs sem gastar tokens?
  • Resposta: Mock objects no unit tests (unittest.mock), fixtures para integration tests, usar small eval datasets e mocks para LLM responses.
  • Spoken version: "Mocka as chamadas ao LLM nos testes unitários para evitar custos."
  1. Coding patterns para entrevistas
  • Pergunta: Coding patterns essenciais para live coding (AI interviews)?
  • Resposta: Chunking (preserve boundaries), retry with exponential backoff & jitter, parse JSON com fallback, generators para streaming, type hints e edge cases.
  • Spoken version: "Implementa retries e parsing robusto e preserva boundaries dos chunks."
  1. LoRA vs Full fine-tuning — porquê LoRA
  • Pergunta: Porquê preferir LoRA a Full fine-tuning?
  • Resposta: Custo (LoRA numa GPU 24GB; Full precisa de múltiplas). Catastrophic forgetting (LoRA preserva o base). Múltiplas tarefas (adapters trocáveis). Overfitting (com 500–2K exemplos, Full overfita; LoRA generaliza).
  • Spoken version: "LoRA é mais barato, preserva capacidades gerais e permite vários adapters por tarefa."
  1. LoRA vs Prompt Tuning — quando cada um
  • Pergunta: Quando usar LoRA vs Prompt Tuning?
  • Resposta: LoRA: 500+ exemplos, mudanças comportamentais profundas, formato rígido. Prompt Tuning: 100–500 exemplos, tarefa simples, sem GPU.
  • Spoken version: "Prompt Tuning para poucos dados e tarefas simples; LoRA para comportamento específico com mais exemplos."
  1. Corrective RAG (CRAG)
  • Pergunta: O que é Corrective RAG?
  • Resposta: Avalia qualidade do retrieval antes de passar ao LLM. Se baixa: não usar ou web search. Se média: query expansion. Se alta: passar normalmente. Evita context dilution.
  • Spoken version: "CRAG verifica se o retrieval é bom antes de injetar no prompt."
  1. RAGAS — métricas de avaliação
  • Pergunta: O que é RAGAS e que métricas avalia?
  • Resposta: Framework de avaliação: Faithfulness (resposta suportada pelo contexto?), Answer relevance, Context precision. Ferramentas: ragas library, LangSmith evals.
  • Spoken version: "RAGAS mede se a resposta é fiel ao contexto e relevante para a pergunta."
  1. Circuit breaker e fallbacks
  • Pergunta: Como desenhar fallbacks quando o LLM falha?
  • Resposta: Retry com backoff. Circuit breaker após N falhas. Fallback: modelo menor, resposta cached, ou "Temporariamente indisponível". Queue para reprocessar.
  • Spoken version: "Retry, circuit breaker e um plano B — modelo menor ou cache."
  1. Streaming de tokens
  • Pergunta: Porquê e como implementar streaming em LLMs?
  • Resposta: Melhora perceived latency (TTFT); utilizador vê progresso. Implementação: Server-Sent Events ou WebSockets; enviar tokens parciais; suportar cancelamento.
  • Spoken version: "Streaming reduz latência percebida — o utilizador vê a resposta a aparecer."

Prioridade C (diferenciais e prático/estratégico)

  1. LoRA / QLoRA / PEFT
  • Pergunta: O que é LoRA, QLoRA e PEFT?
  • Resposta: LoRA: Low‑Rank Adaptation (adaptações pequenas). QLoRA: LoRA + quantização 4‑bit do modelo base para treinar modelos grandes com pouca memória. PEFT: biblioteca que implementa LoRA/QLoRA/adapters.
  • Spoken version: "LoRA adapta pouco peso, QLoRA inclui quantização para GPUs pequenas, PEFT é a biblioteca."
  1. Quando preferir QLoRA
  • Pergunta: Quando preferir QLoRA a LoRA?
  • Resposta: Quando tens GPUs com pouca memória (ex: 10–12GB) e queres treinar modelos 7B+ sem grande infra; trade‑off leve na qualidade.
  • Spoken version: "Escolhe QLoRA se tiveres GPUs limitadas e quiseres treinar modelos maiores."
  1. Plano de 90 dias (senior)
  • Pergunta: O que incluir num plano de 90 dias (senior)?
  • Resposta: 1–2 semanas: entender stack, codebase, stakeholders; semanas 3–4: shadow deploys e identificar quick wins; mês 2: primeira contribuição (observability/eval); mês 3: own feature end‑to‑end.
  • Spoken version: "Primeiro entendes o stack e stakeholders, depois contribuis com melhorias e assumes um feature."
  1. Multi‑tenancy no vector DB
  • Pergunta: Como implementarias multi‑tenancy no vector DB?
  • Resposta: Namespace ou metadata (tenant_id) por tenant; filtrar por tenant_id vindo da auth (JWT/API key), nunca do user input.
  • Spoken version: "Usa namespaces ou tenant_id em metadata e valida pelo token de autenticação."
  1. Erros que causam reprovação na entrevista
  • Pergunta: Quais erros evitam reprovação na entrevista?
  • Resposta: Falar só de modelos (não sistemas), ignorar produção/monitorização/custos/dados/segurança, confundir RAG e fine‑tuning, não saber explicar embeddings, não fazer perguntas.
  • Spoken version: "Não faltes com aspectos de produção e custos; prepara perguntas."
  1. Perguntas a fazer ao entrevistador (escolhe 3–4)
  • Pergunta: O que perguntar ao entrevistador? (escolhe 3–4)
  • Resposta: Que arquitecturas de AI constroem atualmente? Usam RAG ou fine‑tuning? Maiores desafios ao colocar LLMs em produção? Como gerem ingestão de conhecimento?
  • Spoken version: "Pergunta sobre arquitetura atual, RAG vs fine‑tuning e desafios na produção."
  1. DEUS — empresa e valores
  • Pergunta: O que saber sobre a DEUS para a entrevista?
  • Resposta: DEUS = Data | Engineering | User Experience | Strategy. Missão: AI que serve pessoas. Escritórios: Amsterdam, Porto, A Coruña. Valores: tecnologia ao serviço das pessoas, no assholes, diversidade.
  • Spoken version: "A DEUS foca-se em AI ética com impacto — o que me atraiu foi o equilíbrio entre inovação e serviço às pessoas."
  1. Estrutura de resposta senior
  • Pergunta: Como estruturar uma resposta técnica (postura senior)?
  • Resposta: Começar curto (2–3 frases). Perguntar: "Queres que aprofunde?" Estrutura: Problema → Arquitetura → Trade-offs → Resultado (métricas). Enfatizar sistemas, não só modelos.
  • Spoken version: "Resposta curta primeiro, depois oferta de aprofundar. Problema, abordagem, trade-offs, resultado."
  1. Human-in-the-loop
  • Pergunta: O que é human-in-the-loop em agentes?
  • Resposta: Agente para e pede confirmação antes de ações críticas (email, compra, delete). Detetar ações de alto risco → pedir aprovação → executar só se aprovado.
  • Spoken version: "Para ações sensíveis, o agente pede confirmação ao utilizador antes de executar."
  1. SFT + LoRA (combinação)
  • Pergunta: SFT e LoRA são exclusivos?
  • Resposta: Não. SFT é o tipo de dados (instrução→resposta); LoRA é o método de treino. Combinação típica: dataset de instruções + treino com LoRA.
  • Spoken version: "SFT define os dados; LoRA define como treinas. Usas os dois em conjunto."
  1. LangChain vs LlamaIndex
  • Pergunta: Quando usar LangChain vs LlamaIndex?
  • Resposta: LangChain: agentes, tools, chains genéricos. LlamaIndex: RAG focado, retrieval otimizado. LangChain para workflows complexos; LlamaIndex para RAG puro.
  • Spoken version: "LangChain para agentes e orquestração; LlamaIndex para RAG e retrieval."

Exemplos práticos e snippets

  1. Exemplo simplificado de pipeline RAG (Python pseudo‑code):
# offline: ingestão -> chunk -> embed -> upsert
for doc in docs:
    chunks = chunk(doc, size=800, overlap=100)
    for c in chunks:
        v = embed_model.embed(c)
        vector_db.upsert(id=make_id(doc, c), vector=v, metadata={"doc_id": doc.id})

# online: query -> embed -> retrieve -> rerank -> prompt -> LLM
q = "Como configurar Snowpipe?"
q_v = embed_model.embed(q)
cands = vector_db.search(q_v, top_k=20)
ranked = cross_encoder.rank(q, cands)[:5]
prompt = format_prompt(q, ranked)
answer = llm.generate(prompt, temperature=0)
  1. Exemplo de function calling schema (JSON) para uma tool:
{
  "name": "get_customer_profile",
  "description": "Retorna perfil do cliente por id",
  "parameters": {
    "type": "object",
    "properties": {"customer_id": {"type": "string"}},
    "required": ["customer_id"]
  }
}
  1. Reranking flow (arquitectura):
  • Bi‑encoder (faiss/hnsw) para recuperar 100
  • Cross‑encoder (BERT/T5) para rerank 100 → 5
  • Injeção do top‑5 no prompt
  1. Strategies for cost reduction (table summary):
TécnicaBenefícioRisco/Nota
Caching (exact)Economiza calls exatasTTL e invalidação necessárias
Semantic cacheAlta reutilizaçãoDefine threshold de similaridade
Model routingMenor custo médioRouter accuracy crítica
BatchingThroughputLatency por batch

Sugestão de treino oral (spoken practice)

  • Lê 12 cartões por sessão: 8 A + 2 B + 2 C (51 cartões no total).
  • Ao responder, grava 30–60s explicação.
  • Usa as "spoken version" como modelo; tenta encurtar para 20s.

Recursos rápidos

  • Terminologia: RAG, HyDE, LoRA, QLoRA, HNSW, BM25, ReAct, LangGraph, Langfuse
  • Ferramentas comuns: Pinecone, Qdrant, Weaviate, Faiss, LangChain, LlamaIndex, LangFuse, LangSmith

Boa revisão — memórias desta sessão são guardadas para próximas solicitações (posso gerar um plano de repetição espaçada, versões em inglês das spoken answers, ou criar flashcards em formato Anki).

Zona de prática

Sem perguntas. Clica em Editar para adicionar.