Pular para o conteúdo

Fundamentos de LLMs e programação baseada em intenção

Prioridade Média 15 min de leitura Status: Não visto Lido Praticado Dominado

Do zero

Um modelo de linguagem de grande porte (LLM, Large Language Model) é um autocompletar gigante. O celular sugere a próxima palavra de uma mensagem; o LLM faz o mesmo, só que treinado com uma quantidade enorme de textos e de código, e com tanta prática que, de prever o próximo pedaço, surge a capacidade de resumir, traduzir, explicar e programar.

Três ideias para entender como ele funciona:

  • Token: o modelo não lê palavras inteiras, e sim pedaços delas. “Auditoria” pode virar dois ou três tokens. Tudo se mede em tokens: o tamanho da pergunta, o da resposta e o custo.
  • Janela de contexto: é a mesa de trabalho do modelo. Tudo o que ele considera ao responder precisa caber ali: as instruções, os arquivos colados, a conversa e a própria resposta. O que não está na mesa, ele não vê.
  • Plausível não é verdadeiro: o modelo gera um texto provável, escolhido token a token entre os mais prováveis; não consulta um banco de fatos. Por isso pode alucinar: inventar com toda a segurança uma função que não existe numa biblioteca.

Na programação, isso mudou o jeito de pedir código. Na programação baseada em intenção, o desenvolvedor diz o que quer e por quê, com as regras e os critérios de aceite, e a ferramenta propõe o como, o código, que a pessoa revisa e testa. No desenvolvimento orientado a linguagem natural, a especificação escrita em português (ou inglês) passa a ser um artefato central do projeto, de onde saem código e testes.

Frase para guardar: LLM prevê o próximo token dentro da janela de contexto; responde o plausível, não o garantido; na programação por intenção, a pessoa define o quê e confere o como.

Em 1 minuto

  • Treinamento em etapas: pré-treinamento (prever o próximo token em grandes volumes de texto e código), ajuste por instruções (exemplos de pedidos e boas respostas) e aprendizado por reforço com feedback humano (RLHF) ou técnicas parecidas, para que o modelo siga pedidos e seja útil e seguro.
  • Transformer e atenção: a arquitetura dos LLMs atuais; o mecanismo de atenção deixa cada token “olhar” os outros do contexto para decidir o que importa (detalhes na lição de redes neurais e PLN).
  • Parâmetros de geração: a temperatura controla a aleatoriedade (baixa, respostas mais previsíveis; alta, mais variadas); o limite de tokens de saída corta respostas longas.
  • Limitações: alucinação; data de corte do conhecimento (não sabe o que veio depois do treinamento, a não ser que receba no contexto); não determinismo (o mesmo pedido pode gerar respostas diferentes); sensibilidade à forma do pedido; custo e tempo crescem com os tokens.
  • Programação baseada em intenção: objetivo, restrições e critérios de aceite em linguagem natural; a IA implementa; a pessoa verifica com testes e revisão. A responsabilidade continua de quem aprova.
  • Ambiguidade é o risco central: linguagem natural dá margem a interpretações; exemplos concretos e testes viram o contrato que tira a dúvida.

Exemplo concreto: a multa por atraso, pedida por intenção

O pedido, com intenção e critérios de aceite:

Quero uma função Python que calcule a multa por atraso na entrega da prestação de contas.
Regras: sem multa até o prazo; 0,33% do valor por dia de atraso; teto de 20% do valor.
Critérios de aceite (valor de R$ 1.000,00): 0 dias → 0; 1 dia → 3,30; 60 dias → 198,00; 61 dias → 200,00.
Inclua os testes desses quatro casos.

O que a ferramenta propõe:

def multa_por_atraso(valor: float, dias: int) -> float:
    """Multa de 0,33% ao dia de atraso, limitada a 20% do valor."""
    if dias <= 0:
        return 0.0
    return round(valor * min(0.0033 * dias, 0.20), 2)

O que a pessoa confere: os quatro testes passam? O teto entra no lugar certo (61 dias daria 20,13%, e o teto corta para 20%)? O arredondamento é o que a norma pede? O valor em float aceita imprecisão de centavos? Em dinheiro, prefira Decimal. Se o pedido tivesse dito só “calcule a multa por atraso”, a ferramenta teria de adivinhar a taxa e o teto, e erraria com toda a confiança. Os critérios de aceite transformam a intenção em algo verificável.

Comparação: o que o LLM é e o que não é

O LLM é O LLM não é
Um modelo que prevê o próximo token com base no contexto Um banco de dados de fatos verificados
Bom em gerar, resumir, traduzir e explicar texto e código Garantia de correção: pode alucinar
Limitado à janela de contexto e à data de corte Conhecedor do seu projeto, se o projeto não estiver no contexto
Probabilístico: a mesma pergunta pode ter respostas diferentes Determinístico como um compilador
Programação tradicional Programação baseada em intenção
O que a pessoa escreve O passo a passo, em código O objetivo, as restrições e os critérios de aceite
Quem escreve o código A pessoa A ferramenta de IA, sob revisão
Como se garante a correção Testes e revisão Testes e revisão, ainda mais necessários
Risco típico Erro de implementação Intenção ambígua, mal interpretada
Etapa do treinamento O que acontece Resultado
Pré-treinamento Prever o próximo token em grandes volumes de texto e código Conhecimento amplo da linguagem
Ajuste por instruções Treinar com exemplos de pedidos e respostas Segue instruções
Reforço com feedback humano (RLHF) Pessoas comparam respostas, e o modelo aprende as preferidas Respostas mais úteis e seguras

Como a FCC cobra

O que é um LLM (previsão do próximo token, tokens, janela de contexto), suas limitações (alucinação, data de corte, não determinismo) e o conceito de programação baseada em intenção.

  • Etapas do treinamento (pré-treinamento, ajuste por instruções, RLHF).
  • Temperatura e outros parâmetros de geração.
  • Desenvolvimento orientado a linguagem natural e o papel da especificação.
  • Responsabilidade humana pela revisão do código gerado.

Pegadinhas

  • “O LLM consulta um banco de dados de fatos verificados antes de responder.” Falso: gera um texto provável; sem fontes no contexto (como no RAG), pode alucinar.
  • “O LLM conhece os arquivos do projeto mesmo que eles não estejam no contexto.” Falso: só considera o que cabe na janela de contexto e o que aprendeu no treinamento.
  • “Na programação baseada em intenção, os testes deixam de ser necessários.” Falso: a intenção precisa ser verificada; testes e revisão continuam, e com mais importância.
  • “Com a mesma pergunta, o LLM sempre dá exatamente a mesma resposta.” Falso: a geração é probabilística; temperatura baixa reduz a variação, mas não a elimina por completo.
  • “Janela de contexto é o período em que o modelo fica disponível para uso.” Falso: é a quantidade de tokens que ele considera de uma vez.

Explique com suas palavras

Explique a um colega por que um assistente de IA pode inventar uma função que não existe e como pedir o código por intenção, com critérios de aceite, reduz esse risco.

  1. Escreva sem olhar a lição, com frases curtas e um exemplo seu.
  2. Onde travar ou precisar de jargão, há uma lacuna: releia só essa parte.
  3. Compare com a explicação-modelo e reescreva o que faltou.

Fica salva neste navegador.

Comparar com uma explicação-modelo

O assistente não procura a resposta num catálogo de funções verdadeiras: ele escreve o que parece mais provável depois do que leu. Se muitas bibliotecas têm uma função “validar_cnpj”, é plausível que a nossa também tenha, e ele a sugere com toda a confiança, mesmo que ela não exista. Ele também não conhece o nosso projeto, a não ser o que estiver na conversa.

Pedir por intenção é dizer exatamente o que se quer: as regras, os limites e exemplos de entrada e saída que precisam dar certo. Esses exemplos viram testes. Se o assistente inventar algo errado, o teste falha e o erro aparece antes de chegar ao sistema. A decisão final continua comigo, que reviso e aprovo.

Teste-se

Eng. de Software com IA e agentes · LLMs e programação por intenção · Inédita, estilo FCC

Questão 1 de 3

Um modelo de linguagem de grande porte (LLM) produz suas respostas

Alternativas

A–E escolhem, Enter confirma. Botão direito ou Shift + letra risca.

Toque longo numa alternativa para riscá-la.

Eng. de Software com IA e agentes · LLMs e programação por intenção · Inédita, estilo FCC

Questão 2 de 3

A janela de contexto de um LLM corresponde

Alternativas

A–E escolhem, Enter confirma. Botão direito ou Shift + letra risca.

Toque longo numa alternativa para riscá-la.

Eng. de Software com IA e agentes · LLMs e programação por intenção · Inédita, estilo FCC

Questão 3 de 3

Um assistente de IA sugeriu chamar a função validar_cnpj() de uma biblioteca do projeto, com explicação detalhada de seus parâmetros, mas essa função não existe na biblioteca. Esse fenômeno é chamado de

Alternativas

A–E escolhem, Enter confirma. Botão direito ou Shift + letra risca.

Toque longo numa alternativa para riscá-la.

Mais duas questões deste tópico estão em Questões.

Flashcards gerados

FrenteVerso
Token O pedaço de texto com que o modelo trabalha, em geral parte de uma palavra; entrada, saída e custo são medidos em tokens.
Data de corte O limite de tempo dos dados de treinamento; o que veio depois o modelo não sabe, a não ser que receba no contexto.
Temperatura Parâmetro que controla a aleatoriedade da geração; baixa deixa as respostas mais previsíveis, alta, mais variadas.
Desenvolvimento orientado a linguagem natural A especificação em linguagem natural vira artefato central do projeto, de onde a IA gera código e testes, sob revisão.
Mecanismo de atenção Parte da arquitetura Transformer que permite a cada token considerar os outros tokens do contexto para decidir o que é relevante.

Ligação com o estudo de caso

Num caso sobre adotar IA no desenvolvimento, explique o que o LLM faz bem (gerar, resumir, explicar) e onde falha (alucina, não conhece o que não está no contexto, varia entre execuções). Proponha: pedidos por intenção com critérios de aceite, contexto do projeto fornecido à ferramenta, testes automatizados como contrato e revisão humana obrigatória antes do merge.

Fontes da lição

  • Edital nº 01/2026, Anexo II, Engenharia de Software Assistida por IA e Sistemas Agentivos (fontes/edital-01-2026.txt).
  • Ashish Vaswani e outros, “Attention Is All You Need” (2017), origem da arquitetura Transformer.
  • Long Ouyang e outros, “Training language models to follow instructions with human feedback” (2022), ajuste por instruções e RLHF.
  • Documentação da Anthropic sobre os modelos Claude (tokens e janela de contexto).

Claude explica

Tire dúvidas sobre este tema no Claude: o site copia o pedido com a lição e abre uma conversa nova, na sua conta. Confira na fonte qualquer fato de lei ou de norma.

Pratique fora do site

Faça questões da FCC sobre este tópico no QConcursos ou no Gran e registre aqui quantas fez: elas contam na meta da semana e no status do tópico.

Registrar questões feitas lá
Errei uma questão lá: criar flashcard