Executando verificação de segurança...
8

Prompt em inglês funciona melhor. Esse é o motivo.

Sim, prompts em inglês funcionam melhor. Mas o motivo não é o que a maioria das pessoas pensa.

E talvez você tenha notado que escrevendo em português o resultado já parece ser bom o suficiente. Mas vou te explicar por que em inglês o desempenho de uma LLM é melhor — e quando isso faz diferença.

A primeira explicação, mais genérica e que provavelmente você já ouviu:

Existe no mundo muito mais conteúdo (livros, artigos, blogs, etc) de qualidade em inglês do que em português. LLMs são treinadas em cima desse conteúdo, então é natural assumir que elas sejam mais "inteligentes" quando estão trabalhando com essa língua.

A segunda explicação não é tão trivial.

A primeira coisa que você precisa entender é que uma LLM não enxerga as palavras nem as letras do seu prompt. Ela enxerga apenas "tokens" (tecnicamente, "embeddings" desses tokens, mas essa explicação fica pra outro artigo).

Mas, por que isso? E o que são tokens?

Permita-me ser um pouco mais técnico para explicar: uma LLM é como uma "função" que tem parâmetros de entrada. Um dos parâmetros dessa função é um conjunto de tokens (seu prompt). "Token" aqui é o tipo do que tem dentro do conjunto, e a quantidade de valores que um elemento do tipo token pode assumir é finita. (Assim como é para outros tipos que você conhece, caso seja programador: inteiro, float, char, etc.)

Em outras palavras, tokens são unidades discretas de um vocabulário finito.

Um exemplo concreto do que estou falando: https://github.com/vnglst/gpt4-tokens/blob/main/cl100k_base.txt

Essa é uma lista de todos os tokens possíveis no modelo GPT-4. São exatos 102.761 tokens. Ou seja, tudo que você escreve no seu prompt, ao mandar pro GPT-4, vai ser quebrado em elementos que estão nessa lista. Por exemplo, se você escrever a palavra "programador" a LLM não vai receber essa palavra inteira, mas sim dois tokens: program (15252) + ador (5477).

Você pode descobrir em quantos e em quais tokens seu prompt está sendo quebrado usando essa ferramenta aqui: https://tiktokenizer.vercel.app/?model=cl100k_base

Agora, como essa lista de tokens foi definida? Por que usaram esses 102.761 tokens e não outros pro GPT-4?

A resposta é:

Quando o modelo (mais especificamente, o tokenizador) é treinado, ele aprende a representar padrões frequentes de forma mais compacta, e como o inglês domina os dados de treinamento, essa língua acaba sendo tokenizada de forma mais eficiente.

Para ver um exemplo concreto do que estou falando, veja o que acontece ao tokenizar a exata mesma frase em inglês e em português:

  • "The system automatically processes user requests." → 7 tokens

  • "O sistema processa automaticamente as solicitações dos usuários." → 14 tokens (o dobro!)

Ou seja, na maioria das vezes, em inglês seu prompt é representado com menos símbolos (tokens) porque, durante o treinamento da LLM, ela foi exposta a muito mais conteúdo em inglês e aprendeu um conjunto ótimo de símbolos para representar esses dados de forma mais eficiente.

Isso é relevante porque modelos têm "atenção" limitada. Cada token ocupa espaço na janela de contexto. Menos tokens para representar uma mesma ideia significa mais informação útil por "unidade de contexto". Por isso, cada token que você envia pra dentro da LLM conta para determinar a qualidade do próximo token que ela irá gerar.

Dá pra dizer também que, em português, a LLM precisa "se esforçar" mais, porque precisa "reconstruir" mais padrões estatísticos (sequência de tokens) para entender uma mesma ideia.

Na prática, se estamos falando de um único prompt para o ChatGPT, talvez inglês ou português façam pouca diferença na qualidade da resposta.

Agora, se estamos falando de ferramentas de "agentic coding" (Claude Code, GitHub Copilot, etc), onde serão feitas inúmeras chamadas para o modelo e contextos enormes serão construídos incluindo não só seu prompt mas sua base de código, aí o aproveitamento que você faz da janela de contexto começa a fazer diferença. Não só em termos de custo (menos tokens consomem menos do seu crédito do Claude Code, por exemplo) mas também em termos de qualidade da resposta.

Se você não se sente tão à vontade com o inglês, a boa notícia é que você pode usar qualquer chatbot de IA pra traduzir seu prompt pra inglês, e usar esse prompt em inglês como prompt inicial pra sua ferramenta preferida de agentic coding.

Esse artigo foi originalmente postado no Linkedin: https://www.linkedin.com/pulse/prompt-em-ingl%C3%AAs-funciona-melhor-esse-%C3%A9-o-motivo-marco-souza-pug4f/

Carregando publicação patrocinada...
2

muito bacana o post.
se der, me tira uma dúvida de alguém leigo nesse assunto? por que chat bot de IA pra traduzir?! o google translate teria resultado muito diferente?
parabéns pelo post!!

1

É uma ótima pergunta! A recomendação que fiz de usar LLM para traduzir é experiência empirica mesmo: eu acho a tradução feita por LLM bem mais certeira e natural do que uma feita pelo google translate. Ela parece entender melhor todo o contexto do seu texto, enquanto que o google translate parece que faz tradução localizada. Não sei exatamente que abordagem estão usando atualmente no google translate. Imagino que seja ML e redes neurais, mas não LLM... mas posso estar errado!

1