Modelar os dados para que os LLMs realmente os compreendam

Modelar os dados para que os LLMs realmente os compreendam

Jean-Emmanuel Orfèvre
Jean-Emmanuel Orfèvre
8 min
Modelar os dados para que os LLMs realmente os compreendam

Em resumo

80% do sucesso do text-to-insight depende da modelagem. Nomes explícitos, metadados enriquecidos, documentação cristalina.

Um LLM que lê uma tabela chamada « txn » com uma coluna « amt » não vai entender nada. Ele vai alucinar. Você pode culpá-lo, mas é você quem deve ser culpado - a modelagem é catastrófica.

Eis o problema em produção atualmente. Implantam-se ferramentas de text-to-SQL sem fazer o trabalho básico: explicar claramente aos dados o que eles são. É como dar uma query SQL a um analista usando nomes de variáveis aleatórios. Péssima ideia.

Na Bomzai, vimos os números: quando a modelagem é boa, a precisão passa de 50% para 90% em 6-12 meses. Não por mágica. Por clareza.

Os nomes são 60% da batalha

Primeira regra, estupidamente simples mas ignorada em todo lugar: as colunas devem ter nomes explícitos. Sem abreviações. Sem códigos crípticos.

« order_date » em vez de « order_dt ». « customer_id » em vez de « cust_id ». « order_revenue_usd » em vez de « revenue ». Os números são claros: com nomes explícitos, os LLM cometem 45% menos erros.

Por quê? Porque uma coluna chamada « amount » gera dúvidas: são todos os valores ou apenas as vendas? Com « order_sales_amount », não há dúvida.

Os prefixos ajudam. « is_ » para booleanos (is_active, is_premium). « cnt_ » para contagens. « amt_ » para valores monetários. É uma convenção simples. Ninguém a segue. Quase todos sofrem.

Cada coluna deve vir com um manual de instruções

Uma tabela no dbt não é apenas colunas. É uma descrição, uma granularidade, uma fonte, uma frequência de atualização. Cada coluna: seu tipo, sua lógica de negócio, seus valores possíveis, seus casos limites.

Exemplo concreto: « customer_region » não é apenas uma string. É uma dimensão com os valores (EMEA, APAC, AMERICAS). « order_date » tem um formato (YYYY-MM-DD) e uma granularidade (dia). « total_revenue » deve ter regras explícitas: incluir ou excluir o quê, filtrar como.

As relações entre tabelas devem ser explícitas. Um pedido tem UM cliente, UM produto. Sem ambiguidade.

Quando um LLM tem acesso a esses metadados enriquecidos, ele consegue raciocinar corretamente. É exatamente como dar a um analista humano o contexto necessário para responder sem erros.

O Semantic Layer: a camada de interface

Em produção, o Semantic Layer (dbt Semantic Layer, Cube.dev, AtScale) se torna a verdadeira interface. Não tabelas brutas expostas. Métricas e dimensões com definições rígidas.

Um LLM que constrói sobre um Semantic Layer gera automaticamente SQL correto. Por quê? Porque o perímetro é claro. Sem ambiguidade sobre « revenue » - existe apenas uma definição oficial.

É também a principal alavanca para a governança. Quando a lógica muda (nova definição de churn), atualiza-se uma vez, usa-se em todo lugar. Não 47 queries ad hoc para corrigir.

Melhoria contínua baseada nos erros

Em produção, coletam-se as alucinações. Quando o LLM gera uma query falsa, é um sinal: o que está faltando na modelagem?

Coluna mal nomeada? Renomeie-a. Metadado confuso? Esclareça-o. Join complicado? Esconda-o sob uma intermediária mais clara.

É engenharia de software aplicada à modelagem. Testes automatizados: « para essa pergunta, o LLM deve gerar esse SQL exato ». Se o teste falha, é um sinal para remodelar.

As melhores equipes que vi usam um loop: pergunta → LLM → SQL gerado → validação → feedback → remodelagem. Leva 12 meses para chegar a 90% de precisão, mas chega.

Não é técnica, é clareza

A modelagem para o text-to-insight não é um assunto técnico esotérico. É extremamente pragmático.

Nomes explícitos. Documentação completa. Metadados enriquecidos. Semântica cristalina. Quando uma IA consegue ler e entender os dados diretamente, ela gera SQL correto. 80% do sucesso do text-to-insight vem daí. Os 20% restantes? É a escolha das ferramentas.

Muitos fazem o inverso: investem nos melhores LLM (Claude, GPT-4) e negligenciam a modelagem. Resultado: um bom LLM que alucina sobre dados mal documentados. Desperdício.

Comece pela base. Os nomes. A documentação. O Semantic Layer. Depois, o LLM brilha.

Não é rápido. Não é sexy. Mas é onde os resultados mensuráveis chegam.

Continue a explorar

Veja outros artigos de Modern Stack & Integração no universo Tech & Platform

Artigos recomendados

Este tema interessa a você?

Nossos especialistas podem aprofundar este tema numa conversa dedicada. Marque um horário para falar sobre isso.

Falar com um especialista →