Como obter resultados consistentes de modelos locais

Os modelos locais parecem imprevisíveis quando o mesmo prompt dá uma forma diferente de cada vez: às vezes pontos, às vezes um ensaio, às vezes um pedido de desculpa mais o ensaio. Quase tudo isso são definições e restrições em falta, não uma instalação avariada. Pode tornar resumos, extração e pequenas tarefas de código repetíveis o suficiente para uma rotina diária.

Esta página parte do princípio de que você já escreve um prompt claro. Se a formulação ainda estiver solta, leia primeiro Como escrever melhores Prompts para modelos de IA locais. Os métodos que sobrevivem aos testes estão resumidos em O que funciona de facto.

Porque é que a resposta muda

A amostragem escolhe o token seguinte com alguma aleatoriedade. Uma temperatura (temperature) mais alta significa mais aleatoriedade. Uma conversa longa significa que as regras anteriores estão mais longe da última pergunta. Um prompt aberto («escreva algo útil») tem muitas conclusões válidas, por isso o amostrador tem espaço para vaguear. Você reduz a variação ao encolher esse espaço: temperatura mais baixa, um Seed quando precisa de uma repetição verdadeira, um formato com pouco espaço, um contexto curto e um modelo a quem não se pede que faça cinco trabalhos.

1. Baixe a temperatura antes de reescrever o prompt

Para uma tarefa que quer repetir, defina a temperatura entre 0.1 e 0.3. Deixe o top-p no valor predefinido da aplicação, a menos que saiba porque o está a mudar. Depois execute o mesmo prompt três vezes.

O mesmo prompt, três intenções:

Liste exatamente 4 regras para nomear ficheiros numa pasta partilhada. Uma frase cada. Sem introdução.
A lista parece aleatória, por isso reescrevi o prompt inteiro, acrescentei uma persona longa e deixei a temperatura em 1.0.

Mudou demasiadas coisas e deixou a definição que causa a variação. Congele o prompt, baixe a temperatura e só então edite uma linha se o formato ainda estiver errado.

2. Use um Seed quando estiver a comparar prompts

Ollama, LM Studio e alguns outros programas deixam definir um Seed. O mesmo modelo, o mesmo prompt, o mesmo Seed e as mesmas definições de amostragem devem voltar quase idênticos. É assim que percebe se uma mudança de formulação ajudou.

Uma comparação prática:

  1. Defina a temperatura em 0.2 e o Seed em 42.
  2. Guarde a saída do prompt A.
  3. Mude uma linha para fazer o prompt B. Mantenha o Seed.
  4. Compare A e B. Se B for melhor, fique com ele e depois experimente o Seed 43 uma vez, para ver se o formato se mantém.

Se a aplicação não tiver controlo de Seed, não consegue repetições bit a bit. Ainda pode exigir um formato e uma temperatura baixa, que é o que precisa para o uso diário. Um Seed serve para testar, não para quem lê um resumo.

3. Torne o formato difícil de abandonar

Quanto mais fechada for a forma, menos o amostrador pode fazer. Etiquetas são melhores do que «organize isto».

Pode organizar este e-mail de cliente em algo que a nossa equipa possa usar?
Reescreva o e-mail apenas com estas etiquetas: Pedido: Produto: Prazo: Em falta: Regras: - Uma linha por etiqueta - Se for desconhecido, escreva «não indicado» - Não acrescente uma resposta recomendada E-mail: [cole]

Se o modelo ainda acrescentar uma resposta recomendada, ponha a proibição na última linha, sozinha: «Não escreva uma resposta.» As regras da última linha são seguidas mais vezes do que as regras enterradas no meio.

4. Acrescente uma verificação de uma linha para formatos frágeis

Use isto para JSON, tabelas e contagens exatas. Não use para prosa normal.

Devolva JSON com as chaves sku e qty. qty é um inteiro. Os valores em falta são null. Se faltar uma chave, corrija o JSON antes de responder. Não explique a correção. Texto: [cole]

Leia a saída. Se vir um parágrafo que começa por «Verifiquei o JSON», o modelo está a mostrar a verificação. Acrescente «Devolva apenas o JSON» ou retire a verificação e fique com a lista de chaves. Alguns modelos pequenos não conseguem fazer uma verificação silenciosa. Nesse caso, a lista de chaves sozinha é o melhor prompt.

Verifique o seu trabalho com muito cuidado, considere casos limite e garanta que uma pessoa ponderada teria orgulho nesta mensagem de aniversário.

Não há nada para verificar. Vai receber uma mensagem rígida e, por vezes, um parágrafo sobre qualidade. Limite as palavras em vez disso.

5. Mantenha o contexto curto

Regras de dez mensagens atrás são fáceis de um modelo pequeno largar. Para um trabalho repetível, não continue a conversa. Comece uma sessão nova ou cole outra vez as regras no topo da mensagem mais recente.

Um padrão que se mantém estável:

[depois de 15 voltas de perguntas misturadas] O mesmo formato de antes, você sabe o que quero dizer.

Muitas vezes não sabe. Cole o formato outra vez. «O mesmo de antes» não é um formato.

6. Faça corresponder o tamanho do modelo ao trabalho

Um modelo mais pequeno com um prompt estreito é muitas vezes mais consistente do que um modelo geral maior com um prompt descuidado, mas não é magia. Use um modelo pequeno para reescrever, extrair e fazer resumos curtos de texto que você fornece. Use um modelo local maior quando a tarefa precisar de código mais longo ou de raciocínio em vários passos. Não peça a um modelo de 3B que reveja um ficheiro de 400 linhas e espere uma revisão estável.

Se o formato se mantém num modelo de 7B e se desfaz num modelo de 3B, fique com o prompt e mude de modelo. Não continue a acrescentar regras até o modelo pequeno ficar soterrado.

Uma lista de controlo repetível

  1. Escreva o formato como etiquetas, uma contagem ou chaves JSON.
  2. Ponha o texto de origem depois das regras, atrás de uma etiqueta clara.
  3. Defina a temperatura em 0.2 para tudo em que queira confiar.
  4. Defina um limite máximo de tokens um pouco acima da resposta que pediu.
  5. Execute duas vezes. Se a forma diferir, aperte a última linha antes de acrescentar regras novas.
  6. Se estiver a comparar duas formulações, defina um Seed.
  7. Se a conversa for longa, comece de novo e cole outra vez as regras.

O que a consistência não é

Quando o prompt estiver estável, guarde-o. A Biblioteca de Prompts é um conjunto de pontos de partida que pode guardar ao lado dos seus. Se não tiver a certeza de que um prompt guardado é demasiado longo para a janela de contexto, estime-o com o Contador de Tokens antes de anexar um ficheiro grande.

Guias e ferramentas relacionadas