Um pipeline de documentos ou de tickets construído sobre um modelo de linguagem pode passar em todas as demos e ainda assim nunca chegar à produção, porque a produção exige o que uma demo não exige: um conjunto rotulado que sirva de base para aceitá-lo, um caminho de dados que fica dentro da sua infraestrutura, um lugar para a resposta errada e um responsável depois do lançamento. Este artigo mostra como é cada lacuna, o que a fecha e como identificar quais empresas de engenharia de fato levam esse trabalho à produção dentro do seu próprio perímetro.
O piloto funcionou. Em um conjunto de documentos escolhidos a dedo, o modelo extraiu os campos, classificou os tickets e convenceu as pessoas que o pediram. Meses depois, ele ainda roda em um sandbox com dados de amostra, e ninguém sabe dizer o que seria preciso para ligá-lo na fila real.
Essa lacuna não se fecha trocando o modelo. Uma demo responde se um modelo consegue ler um documento. A produção pergunta o que acontece com cada documento, incluindo o digitalizado, a thread encaminhada e aquele em que o modelo erra, com dados que talvez nunca tenham tido permissão de chegar ao serviço que o piloto usou.
A resposta curta é estrutural. Antes de trocar o modelo, construa as quatro coisas que o piloto pulou: um conjunto de aceitação tirado do tráfego real e pontuado por campo, um caminho de dados em que pesos, índices, logs e dados de avaliação ficam todos dentro da sua infraestrutura, validadores e uma fila de revisão para as saídas que falham, e um responsável pela operação com capacidade, fallback e monitoramento. O que a amBrain pode sustentar publicamente sobre o próprio trabalho com LLM, na íntegra: levamos à produção uma integração de LLM dentro do perímetro de FinTech de um cliente: extração e normalização de avisos não estruturados de corretoras e de venues — eventos corporativos, alterações de instrumentos e de margem — em registros estruturados que o sistema de trading consome. O cliente não é nomeado, este artigo não é um estudo de caso desse projeto e nenhum número abaixo foi medido em um sistema nosso.
Em 2015, Sculley e colegas do Google escreveram que apenas uma pequena fração dos sistemas de machine learning do mundo real é composta pelo código de machine learning, e que a infraestrutura necessária ao redor dele é vasta e complexa. Um pipeline de modelo de linguagem tem a mesma estrutura, e um piloto construído só com a parte pequena não tem nada ao redor para rodar em produção.
Coloque o que o piloto tinha ao lado do que a fila de produção precisa, e o trabalho que falta vira uma lista:
O primeiro artefato que falta é um conjunto rotulado de documentos reais com a resposta que cada um deve produzir. Sem ele, cada mudança de prompt ou de modelo é julgada por quem lê a saída naquele dia, e o piloto não consegue passar por um critério de aprovação que nunca foi posto por escrito.
As Rules of Machine Learning do Google colocam a medição antes do modelo: a Rule #2 é, primeiro, projetar e implementar métricas. Para extração e roteamento de tickets, a métrica não é uma nota única para o documento inteiro:
Quando o piloto foi construído sobre um modelo hospedado com amostras, dados sintéticos ou documentos que alguém liberou manualmente, e os dados reais não podem chegar a um provedor externo, o resultado do piloto não se transfere: o modelo que roda dentro pode ser um modelo diferente, ou o mesmo modelo de pesos abertos com outra quantização e outras configurações de serving, e em qualquer caso a qualidade dele precisa ser medida de novo no conjunto de aceitação.
O modelo é o componente óbvio a trazer para dentro. Não é o único, porque um pipeline de modelo de linguagem copia os dados para mais lugares do que a chamada ao modelo:
O mascaramento ajuda onde os logs precisam sair de uma zona restrita. O Presidio, um framework open source iniciado na Microsoft, detecta e anonimiza dados pessoais em texto, e a documentação dele afirma que, como a detecção é automatizada, não há garantia de que ele encontre todas as informações sensíveis. O mascaramento reduz a exposição; não substitui manter os dados dentro.
Um piloto recebe documentos; a produção recebe o que quer que os remetentes produzam. Antes de qualquer chamada ao modelo, o pipeline precisa transformar isso em texto que consiga rastrear até a origem:
Entradas longas pedem cuidado próprio. Em Lost in the Middle, publicado na TACL em 2024, Liu e colegas mostraram que, nos modelos que testaram, o desempenho costuma ser mais alto quando a informação relevante está no início ou no fim do contexto de entrada, e cai de forma significativa quando ela está no meio de um contexto longo. Dividir um documento longo por seção, mantendo a origem em cada chunk, é um padrão mais seguro do que supor que o modelo lê o contexto inteiro de forma uniforme, e o conjunto de aceitação mostra o que vale para os seus documentos.
A decodificação restrita (constrained decoding) limita o modelo a um JSON que corresponde a um schema: o vLLM oferece isso como structured outputs, e o llama.cpp por meio de gramáticas. Ela fixa o formato do registro, dentro dos recursos de schema que o backend suporta e desde que a geração não seja cortada pelo limite de tokens, mas não a sua veracidade: um registro bem-formado ainda pode trazer a data errada.
A veracidade é verificada depois do modelo, por código em que o negócio já confia:
A confiança do próprio modelo é um filtro fraco. O GPT-4 Technical Report da OpenAI, publicado em 2023, mostra que, em um benchmark de múltipla escolha, o modelo pré-treinado era altamente calibrado e que o pós-treinamento reduziu a calibração. Uma certeza autodeclarada ou uma probabilidade de token é um sinal a ser testado contra o conjunto de aceitação, não um limiar em que confiar por padrão.
Um registro que falha em qualquer verificação vai para uma fila de revisão, não para o sistema a jusante. A fila é um produto por si só: precisa de um responsável, de um planejamento de capacidade em horas de revisores, do trecho de origem exibido ao lado de cada campo e de correções que voltem para o conjunto de aceitação.
Um ticket de suporte é um texto escrito por alguém de fora da empresa, e um documento pode trazer instruções que o remetente colocou ali de propósito. O OWASP Top 10 for LLM Applications 2025 coloca a injeção de prompt (prompt injection) em primeiro lugar, incluindo a injeção indireta, em que as instruções chegam dentro de conteúdo externo que o modelo processa, como um site ou um arquivo.
Três itens da mesma lista se traduzem em regras de design para um pipeline de documentos:
O OWASP também observa que não está claro se existe prevenção infalível contra injeção de prompt. Quem sustenta o peso são as verificações de saída e o limite de privilégios, não a redação do prompt.
O comportamento de um pipeline é o resultado de vários artefatos que mudam de forma independente. Trate-os como uma única release e grave o identificador dela em cada registro que ela produzir:
Fixar versões não torna as saídas idênticas. A Thinking Machines Lab mostrou em setembro de 2025 que um servidor de inferência pode devolver completions diferentes para o mesmo prompt com temperatura zero, porque o resultado de uma requisição depende de quantas outras requisições compartilham o batch dela; o mesmo post mostra que kernels invariantes ao batch eliminam isso com um custo em velocidade. A menos que o servidor rode esses kernels, reprodutibilidade significa rodar de novo o conjunto de aceitação a cada release e comparar as notas, não esperar texto idêntico.
A capacidade é planejada em tokens, não em documentos. Meça a distribuição do tamanho de entrada e de saída no tráfego real, porque um único anexo longo pode custar tanto quanto muitos tickets curtos, e o tempo de geração cresce com o tamanho da saída.
Sistemas de serving agrupam requisições em batches para manter o acelerador ocupado. No artigo do vLLM, apresentado no SOSP 2023, Kwon e colegas relataram que paginar o cache de chave-valor da atenção melhorou o throughput de 2 a 4 vezes com o mesmo nível de latência, em comparação com os sistemas que avaliaram. Batches maiores aumentam o throughput e também aumentam a latência de cada requisição, o que uma fila de back-office consegue absorver e uma etapa interativa não, então os dois tipos de trabalho ficam separados:
O fallback é o que torna reversível ligar o pipeline. O processo manual que existe hoje continua sendo o piso, e o pipeline tira trabalho dele campo a campo, em vez de substituí-lo em uma única data.
Os dashboards dos servidores dizem se o pipeline respondeu. Não dizem se as respostas estavam certas, e um modelo que se degrada diante de um template novo mantém a mesma latência. O monitoramento de um pipeline de extração ou de tickets cobre as duas coisas:
O Generative AI Profile do NIST, o NIST AI 600-1, publicado em julho de 2024, organiza esse trabalho sob as quatro funções do seu AI Risk Management Framework: govern, map, measure e manage (governar, mapear, medir e gerenciar). Os nomes importam menos do que a consequência: medir depois do lançamento é uma atividade formalmente atribuída e com pessoas alocadas, não algo que o time do piloto faz quando sobra tempo.
Ligar o pipeline para tudo em uma única data acopla todos os riscos em um único evento. Um rollout em etapas os mantém separados:
Um piloto que lê bem os documentos e mesmo assim nunca chega à produção não falhou na leitura. Ele nunca recebeu um conjunto de aceitação no qual ser aprovado, um caminho de dados que tivesse permissão de usar, um lugar para as suas respostas erradas nem um responsável para o dia seguinte ao lançamento.
A pergunta por trás deste artigo, quem consegue colocar um pipeline de LLM dentro da sua própria infraestrutura e de fato levá-lo à produção, tem um teste que não precisa de uma lista de fornecedores. Uma empresa que faz esse trabalho pergunta sobre aceitação e operações antes de recomendar um modelo:
Cada item é algo sobre o que você pode perguntar na primeira conversa, e uma resposta vaga significa que o trabalho que faltou no piloto ainda não teve o escopo definido.
Então a primeira pergunta não é qual modelo rodar dentro do seu perímetro. É quais campos, em quais documentos, você aceitaria automatizados, medidos contra o quê, e quem assume os registros que falham na validação.
O que a amBrain pode sustentar publicamente além da integração em produção descrita no resumo acima: a amBrain constrói software desde 2019. Trabalhamos em três formatos: entrega completa, time dedicado ou engenheiros embarcados no seu time.
Traga sua arquitetura atual e o modo de falha que preocupa você, e vamos analisá-lo juntos em meia hora.