A AWS publicou, em 12 de outubro de 2026, um guia técnico em seu blog de machine learning que detalha como implantar modelos de decisão no Amazon SageMaker AI com o apoio do llama.cpp. O texto integra a série da empresa dedicada a contêineres especializados de aprendizado profundo (Deep Learning Containers, ou DLCs) para inferência de IA generativa, que já passou por WhisperX e pelas duas partes do vLLM-Omni, e descreve dois caminhos para servir o mesmo modelo empacotado.
A motivação é prática. Aplicações que roteiam requisições, escolhem a próxima ação de um agente ou atribuem resultados de política costumam precisar de pontuações sobre um conjunto fechado de alternativas, e não de texto livre.
Segundo a AWS, usar o llama.cpp sobre endpoints gerenciados do Amazon SageMaker AI oferece um caminho administrado para servir modelos quantizados, em infraestrutura de CPU ou de GPU.
Dois caminhos a partir do mesmo pacote
O diagrama central do post mostra uma aplicação chamando um endpoint em tempo real que pode operar de duas formas. Na primeira, a geração de texto usa o DLC da AWS para llama.cpp e devolve respostas geradas por meio de uma API compatível com o padrão da OpenAI.
Na segunda, o chamado caminho de decisão estruturada monta uma imagem filha que substitui o servidor padrão por um adaptador baseado no SemIf e retorna probabilidades para opções declaradas. Qualquer um dos modos pode rodar em CPU ou GPU, dependendo da API e dos requisitos de latência da carga de trabalho.
O caminho padrão e o esquema de entrada
No fluxo convencional, o modelo é empacotado como model.tar.gz no Amazon Simple Storage Service (Amazon S3) e a imagem publicada do DLC é referenciada diretamente. O contêiner localiza o primeiro arquivo .gguf disponível em /opt/ml/model, mapeia POST /invocations para o llama-server em /v1/chat/completions e repassa variáveis de ambiente com o prefixo SM_LLAMA_CPP_* como argumentos do llama.cpp.
Nesse modo, a entrada segue o esquema de Chat Completions da OpenAI: um arranjo messages com role e content, além de controles de geração como max_tokens e stream. A resposta vem no formato compatível de choices, e o texto produzido é lido em choices[0].message.content.
O exemplo citado no post trata de um cliente que não consegue receber o e-mail de redefinição de senha e pede ao modelo que indique a melhor fila de atendimento — um caso típico de roteamento.
SemIf: probabilidades em vez de prosa
O problema é que a API HTTP do llama-server não expõe os logits da posição final nem as operações de estado que o SemIf utiliza. Por isso, o caminho estruturado recorre ao AWS CodeBuild para construir uma imagem filha, armazenada no Amazon Elastic Container Registry (Amazon ECR).
Essa imagem preserva as bibliotecas compiladas de CPU ou CUDA do DLC original e troca seu ponto de entrada por um adaptador compatível com o SageMaker.
Aqui, o esquema deixa de ser conversacional. A requisição traz um identificador definido pelo chamador, um estado não estruturado, uma pergunta e uma lista ordenada de opções permitidas, cada uma com id e description.
A resposta devolve option_ids, probabilities e os option_logits brutos na mesma ordem, acompanhados de metadados de prompt, tempo de execução e modelo fixado. Com identificadores estáveis, a aplicação pode aplicar limites de corte, planos de contingência e verificações de política sem precisar interpretar texto gerado.
Um campo em formação
O post situa o SemIf, antes chamado OpenJev, dentro de uma classe mais ampla de modelos de decisão, que atribuem pontuações a resultados definidos pela própria aplicação a partir de estado não estruturado. Entre outras implementações citadas estão o Jev, modelo de decisão da TypeSafe exposto pela API /v1/systemone; o Kev, servidor de modelos projetado para compatibilidade com a API da TypeSafe; e o Strands Decider 2B, um modelo construído especificamente para fluxos de agentes, com saídas calibradas.
Por que isso importa
O guia interessa a equipes que precisam transformar decisões em contratos verificáveis. Em vez de torcer para que um modelo escreva a resposta certa, o desenvolvedor recebe uma distribuição de probabilidade sobre alternativas conhecidas, o que simplifica auditoria, testes automatizados e integração com sistemas legados.
A opção de rodar em CPU, com modelos quantizados, também amplia o leque de cenários em que esse tipo de inferência cabe no orçamento.
A AWS disponibiliza um exemplo de código com opções de implantação em CPU e GPU, que serve como ponto de partida para quem quiser reproduzir os dois caminhos descritos. A série de DLCs especializados segue como o eixo em torno do qual a empresa organiza esse tipo de receita técnica.
Fontes e links
- AWS
- Repositório do llama.cpp
- Repositório do SemIf (antigo OpenJev)
- Exemplo de código no GitHub da AWS







