Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Escolhendo LLMs na Prática: Lições Reais em Bu...

Escolhendo LLMs na Prática: Lições Reais em Busca Agêntica no Mercado Livre —TDC 2026 Floripa

Nesta palestra, compartilho aprendizados práticos ao comparar múltiplos LLMs (como GPT, Gemini, Qwen e Gemma) em um sistema real de Busca Agêntica, analisando trade-offs entre qualidade, latência, custo e uso de tokens.

Mostro como diferentes modelos se comportaram em tarefas como interpretação de query, expansão de busca e reranking, e por que resultados de benchmark nem sempre refletem o desempenho em produção. Também abordo estratégias de avaliação (incluindo LLM Judge, testes A/B, e métricas), pontos de atenção, refinamento de prompts, além de desafios e aprendizados ao explorar fine-tuning supervisionado e com reforço.

More Decks by Jessica Pauli de C Bonson

Other Decks in Technology

Transcript

  1. Escolhendo LLMs na Prática: Lições Reais em Busca Agêntica no

    Mercado Livre Jéssica Bonson | Senior Staff Engineer @ MERCADO LIVRE TDC 2026 - Florianópolis Trilha: Trilha Gen AI e LLMs
  2. OLÁ! Eu sou Jéssica Bonson (@jpbonson) Senior Staff Engineer @

    MercadoLivre | Search Graduação em Ciências da Computação (UFSC) Mestrado em CS/Machine Learning (Dalhousie University) 15+ anos de experiência em techstacks e projetos diversos Foco em Backend Engineering e Machine Learning aplicado
  3. Sobre o Mercado Livre Empresa líder em tecnologia em soluções

    de e-commerce e fintech na América Latina https://news.mercadolivre.com/pt/o-melhor-do-brasil-2025
  4. Busca no MercadoLivre ~500k RPM no pico só no Brasil

    • • • • Atua em 18 países Cerca de 10 milhões de vendedores Mais de 100 milhões de compradores Mais de 60 milhões de ofertas de produtos
  5. Com os novos horizontes abertos pela IA Generativa, surge a

    pergunta: Como podemos usar LLMs para melhorar a busca do Mercado Livre?
  6. Novo sistema: Agentic Search Search Frontend Agentic Search Search Backend

    Exemplos de coisas que se tornaram possíveis: • Agora a busca funciona para termos semânticos/abstratos ◦ • Agora a busca leva em consideração seu contexto de longo prazo ◦ • por exemplo, quais marcas você mais gosta para determinados produtos Agora a busca leva em consideração seu contexto de curto prazo ◦ • como "algo para desenhar", "aquele negócio para pendurar coisas na parede", etc… o que você clicou, favoritos e carrinho recentes Uma busca que normalmente não retorna nada ou quase nada agora é capaz de generalizar e retornar algo.
  7. Agentic Search Pipeline Query Get User Context Interpret Query •

    Proxy entre o frontend e o backend de Search ◦ Transparente para o usuário e para os outros sistemas Expand Query Search Backend Get Enriched Items Merge/Filter/Rerank Results • Adiciona layers ao fluxo de busca com tasks para LLMs ◦ ◦ Tasks em batch/async Tasks real-time
  8. Exemplo - Interpret Query Task System Prompt: Escreva o produto

    que o usuário provavelmente está procurando com base em sua busca. Saída: Responda apenas com o produto. Sem texto adicional. User Prompt: busca do usuario: valor de vw golf trend 5 p varios nafta. . Resultado (modelo gpt 4.1) Volkswagen Golf Trendline 5 Portas Nafta
  9. Evolução de modelos: Em busca de resiliência e latência Explorações

    iniciais POC do F&F Produção Atual múltiplos modelos GPT-4.1-mini Gemini 2.5 Flash-Lite Qwen3 4b (self-served) GPT-4.1-mini -> Gemini 2.5 Flash-Lite • • • ~50% menos latência ~20% menos custo total maior qualidade Gemini 2.5 Flash-Lite -> Qwen3 4b • • • • ~50% menos latência menos custo total evitar intermitências do GCP manteve qualidade em teste A/B para query-expansion, mas não para reranker
  10. Como escolher o modelo? 01 No início é mais importante

    decidir a tarefa, avaliar a viabilidade de atendê-la com um LLM, e a qualidade dos resultados. Dado isso, é recomendado começar com modelos grandes, e testar múltiplas famílias de modelos. 02 Depois de encontrar um modelo grande que atende a tarefa, pode-se avaliar a qualidade de resultados de modelos menores dentro da mesma família. Além de começar refinar o prompt, e a avaliar custo e latência. 03 Depois de encontrar o menor modelo que atende a tarefa, pode-se aplicar técnicas para obter os mesmos resultados com um modelo ainda menor. Por exemplo, como finetuning e quantização.
  11. Exemplo: Gemma 3-4b vs Qwen 3-4b para query-expansion Gemma 3-4b

    Qwen 3-4b ⚠ responde vazio em ~20% dos casos. ⚠ alucina mais. Nos testes de laboratório ambos se mostraram opções um pouco inferiores, mas possivelmente capazes de substituir Gemini nessa tarefa, cada um com seu drawback. Decisão: Validar em A/B produtivo Conclusão: Para essa tarefa, as respostas vazias foram mais detrimentais que mais alucinações. Qwen conseguiu impactar as métricas de negócio de maneira equivalente a Gemini, enquanto Gemma piorou as métricas.
  12. LLM as Judge Dataset Modelos candidatos LLM Juiz Score comparativo

    200 golden queries + 4k amostras de prod Gera output para cada query Avalia qualidade por critério Rankeia modelos POR QUE USAR Iterar em prompts e modelos sem esperar A/B de semanas. Revelar regressões cedo, antes de custo de prod.
  13. LLM as Judge: Exemplo de Inputs de Query Expansion USER

    PROFILE “perfil sofisticado, adulto. Gosta de produtos premium, tecnológicos, inteligentes, de alta qualidade. Tem golf e esportes outdoor como hobbies. Gosta das marcas Nike e Stuburt para esportes, e Google, Xiaomi, Samsung, Apple para tecnologia.”
  14. LLM as Judge: Exemplo de Prompt Considering this system prompt:

    (...), and this user prompt: (...), please evaluate the following search expansions for MercadoLibre Argentina that I will provide you below, in the format (...). Score according to these criteria: 1. relevance (0-2): Will the expansions help the user find what they are looking for? 2. prompt compliance (0-2): how well the expansions follow the system prompt provided 3. context usage (0-2): use of user context (profile, purchases, recent searches) - 0 = Expansions will be detrimental (irrelevant, unrealistic, change the product) - 1 = Expansions will help a little (partially useful) - 2 = Expansions will help a lot (significantly improve the search) - 0 = violates restrictions - 1 = complies with most rules - 2 = complies with all rules - 0 = uses context incorrectly/unrealistically - 1 = Uses context partially or superficially, or ignore it if it is not helpful for the current query - 2 = Uses context in a relevant, appropriate, AND correct way to personalize searches also, choose which expansion set is the best one and explain your rationale in a short paragraph IMPORTANT: Return your evaluation in PIPE-SEPARATED VALUES (PSV) format: (...). Return ONLY the pipe-separated data, no additional text before or after. Write in english.
  15. LLM as Judge: Exemplo de Prompt Considering this system prompt:

    (...), and this user prompt: (...), please evaluate the following search expansions for MercadoLibre Argentina that I will provide you below, in the format (...). Score according to these criteria: 1. relevance (0-2): Will the expansions help the user find what they are looking for? 2. prompt compliance (0-2): how well the expansions follow the system prompt provided 3. context usage (0-2): use of user context (profile, purchases, recent searches) - 0 = Expansions will be detrimental (irrelevant, unrealistic, change the product) - 1 = Expansions will help a little (partially useful) - 2 = Expansions will help a lot (significantly improve the search) - 0 = violates restrictions - 1 = complies with most rules - 2 = complies with all rules - 0 = uses context incorrectly/unrealistically - 1 = Uses context partially or superficially, or ignore it if it is not helpful for the current query - 2 = Uses context in a relevant, appropriate, AND correct way to personalize searches IMPORTANTE: Definir com extremo IMPORTANT: Return your evaluation in PIPE-SEPARATED VALUES (PSV) format: (...). Return ONLY the pipe-separated data, no additional text before ajuda or after. cuidado e com de experts no Write in english. domínio de negócio! also, choose which expansion set is the best one and explain your rationale in a short paragraph
  16. LLM as Judge: Resultados Análise inicial com 200 golden queries

    (Judge model: gemini-2.5-pro) Análise com 4k samples de produção (Judge model: gpt-5.1) REWARD_WEIGHTS = "relevance": 0.6 "prompt_compliance": 0.2 "context_usage": 0.2
  17. E para outros tipos de tarefas? Rerank Task Gemini como

    baseline para métricas de ranking
  18. Modelos Alguns ‘gotchas’ para ficar de olho Tokenizers diferem entre

    modelos Mesma string pode gerar 20–40% mais tokens em um modelo do que em outro. O custo por token precisa ser avaliado junto com quantos tokens o modelo gera para a tarefa. Testes manuais, métricas de laboratório e métricas de A/B se complementam Não tomar decisões baseado só em um ou só em outro. Testes manuais revelam falha na escolha e cálculo de métricas. Também se atente ao não-determinismo das respostas dos LLMs, use Best-of-N verifications. Escalando testes manuais: BigQuery Cada a request ao LLMs é armazenada no BigQuery: system prompt, user prompt, output, tokens, latency, etc Nem toda otimização depende do modelo Caching com TTL adequado, request em batch, processamento fora do horário de pico, fallbacks… Muitas escolhas de infra ajudam!
  19. Prompt Engineering: Qualidade Desafios de Contexto Boas Práticas de Solução

    'Lost in the Middle' Role & Posição das Instruções Viés onde o modelo foca no início e fim do prompt, Defina o papel do agente no início e coloque as ignorando informações essenciais ocultas no meio. instruções críticas no encerramento. ‘Dumb Zone’ System Prompt Rico, mas Enxuto Contextos longos e irrelevantes geram ruído, Forneça exemplos (‘few-shot’) e instruções claras reduzindo a precisão e a capacidade de raciocínio. para guiar o agente, mas sem dados desnecessários. Estrutura e módulos Organize o prompt em seções claras, com marcações para divisórias.
  20. Prompt Engineering: Custo e Latência Otimização de Formato ANTES JSON

    Verboso - Alto Custo) {"attributes": [{ Diretrizes de Eficiência • • "attribute_id": "BRAND", "value_id": "343642", "value_name": "New Balance" },…]} DEPOIS Mesma informação, compacta) 1|BRAND|New Balance … • • • Não usar JSON. Mapear IDs para números simples no código da aplicação. Não peça outputs desnecessários. Foque nos tokens de saída: são mais caros e impactam mais a latência. Nem tudo precisa ser feito no prompt. Há lógicas que funcionam melhor em código.
  21. também há tasks muito Prompt Engineering: Custo Mas e Latência

    Otimização de Formato ANTES JSON Verboso - Alto Custo) {"attributes": [{ "attribute_id": "BRAND", "value_id": "343642", "value_name": "New Balance" },…]} DEPOIS Mesma informação, compacta) 1|BRAND|New Balance … mais simples de fazer por Diretrizes de Eficiência prompt que por código, como • Não usar JSON. decidir? Mapear IDs para números simples no da aplicação. Avaliecódigo se a task se beneficia do • Não peça outputs desnecessários. conhecimento interno e/ou do • Foque nos tokens de saída: são mais não-determinismo do LLM! caros e impactam mais a latência. • • Nem tudo precisa ser feito no prompt. Há lógicas que funcionam melhor em código.
  22. Conteúdo Relacionado: Related Talk: Related References: Do Vibe Coding ao

    LLM em Produção para Busca Agêntica - TDC 2026 - Summit IA São Paulo - Speaker Deck https://github.com/humanlayer/12-factor-agents https://www.promptingguide.ai/techniques Livro AI Engineering: Building Applications with Foundation Models Chip Huyen — 2025 Referência para LLMOps, avaliação e operação de modelos em prod.
  23. Números em Produção - Latência End-to-end ~3.4s p99 ~2.6s ~1.8s

    Latency budget: 5s p95 LLM-bound ~1s p99 ~0.8s p95 ~0.6s p50 Overhead non-LLM p50 ~2.4s p99 ~1.8s p95 ~1.2s p50
  24. PRODUÇÃO EM MLB · DADOS REAIS Tokens em produção —

    output é 1.6% do input RAZÃO INPUT : OUTPUT POR TASK DIA TÍPICO EM MLB 297B input tokens / dia 4.9B output · 1.65% (média de 7 dias) Rerank 2,863 : 50 ~60 : 1 Expand Personalized 1,342 : 18 ~75 : 1 Expand Generic 656 : 13 ~50 : 1 Interpret 71 : 10 ~7 : 1