Dar uma gorjeta ao ChatGPT faz ele gerar textos melhores?
(minimaxir.com)- Para verificar se inserir gorjetas, recompensas, penalidades ou ameaças no prompt de sistema faz um LLM seguir melhor as restrições, o experimento foi dividido entre adequação ao número de caracteres e avaliação de qualidade pelo GPT-4
- O primeiro experimento usou uma abordagem de generation golf com o
gpt-3.5-turbo-0125, pedindo que ele escrevesse uma história com exatamente 200 caracteres, e comparou se a distribuição do tamanho da saída e o MSE mudavam conforme os incentivos - Em algumas condições, World Peace, Heaven, Taylor Swift, multa de
$1,000e ameaça de DEATH em maiúsculas pareceram bons, mas os resultados não foram consistentes - Mesmo no experimento com 100 combinações de incentivos, World Peace, DEATH (CAPS) e Friends apresentaram MSE baixo em várias combinações, mas a maioria dos p-values foi alta, então a evidência estatística é fraca
- Na avaliação de qualidade pelo GPT-4, não houve padrões claros por linhas ou colunas, e a combinação de maior pontuação foi Mother / Job, que tinha sido fraca no experimento de comprimento; por isso, é difícil afirmar que gorjetas ou ameaças aumentam a qualidade da geração
O debate sobre “gorjetas” que começou no prompt de sistema
- O prompt de sistema da API do ChatGPT é um recurso para controlar a persona, as regras e as restrições da saída do LLM, e pode agir com mais força do que uma entrada comum do usuário
- Em um experimento anterior, inserir uma gorjeta monetária no prompt de sistema fez as respostas se comportarem de forma mais consistente, e esse caso levou a um debate no Hacker News
- A questão central era se seria possível quantificar o efeito de oferecer gorjetas
- A qualidade de geração de texto é subjetiva, e a tendência de confirmação pode influenciar a percepção de que o resultado melhorou após uma pequena mudança no prompt
- Para reduzir isso, foram estruturados separadamente um experimento com restrição de número de caracteres e um experimento de avaliação de qualidade
Generation Golf: escrever exatamente 200 caracteres
- O primeiro experimento pediu ao ChatGPT que escrevesse uma história sobre um tema específico, mas limitando o tamanho da saída a exatamente 200 caracteres
- Em vez de instruções vagas como “um ensaio curto” ou “alguns parágrafos”, a restrição era que o texto não poderia ter mais nem menos que 200 caracteres
- Essa tarefa é difícil para LLMs
- Por causa da tokenização, LLMs têm dificuldade para contar caracteres diretamente
- Como o número de caracteres correspondente a cada token varia, é difícil estimar de forma confiável o tamanho atual apenas pelo número de tokens gerados
- É preciso planejar a frase com antecedência para ajustar o comprimento
- O prompt de sistema base foi definido como “escritor mundialmente famoso”, e a entrada do usuário usada foi
AI, Taylor Swift, McDonald's, beach volleyball. - Primeiro, foram geradas 100 histórias com
gpt-3.5-turbo-0125, sem restrição de comprimento- O comprimento médio foi de 1.834 caracteres
- A distribuição era aproximadamente próxima de uma normal, mas surgiram histórias muito mais longas, criando uma cauda à direita
- O ChatGPT tende a priorizar concluir o pensamento até o fim
Restrição de 200 caracteres e gorjetas em dinheiro
- Depois de adicionar a restrição de 200 caracteres, foram geradas novamente 100 histórias
- As saídas em geral ficaram mais próximas de 200 caracteres, mas a distribuição não era normal e a cauda à direita ficou mais forte
- Como métrica de avaliação, foi usado o erro quadrático médio (MSE) entre o alvo de 200 e o tamanho real
- Uma saída de 250 caracteres tem erro quadrático de 2.500
- Uma saída de 300 caracteres tem erro quadrático de 10.000
- É uma métrica que penaliza mais fortemente saídas muito distantes do alvo
- Os incentivos monetários foram adicionados ao fim do prompt de sistema
$500 tip$1,000 tip$100,000 bonus
- Ao gerar 100 histórias em cada condição,
$500 tipe$100,000 bonuspareceram mais próximos de uma distribuição normal do que a condição base sem gorjeta, e também tiveram MSE menor $1,000 tipficou mais concentrado ao redor de 200 caracteres, mas a cauda à direita fez o comprimento médio aumentar- A diferença entre as distribuições também foi verificada pelo p-value do teste de Kolmogorov–Smirnov
- Se o p-value for menor que 0,05, isso pode ser evidência de que a distribuição com restrição base e a distribuição com incentivo são diferentes
- Nos resultados posteriores, a maioria dos p-values foi alta, dificultando considerá-los como evidência forte
Recompensas não monetárias e penalidades
- Além de dinheiro, várias recompensas abstratas foram inseridas para comparar as reações do LLM
- Ingressos na primeira fila para um show da Taylor Swift
- Alcançar a paz mundial
- Deixar a mãe muito orgulhosa
- Encontrar o amor verdadeiro e viver feliz
- Garantir entrada no céu
- Suprimento vitalício de chocolate
- Nessas condições, World Peace apresentou o melhor resultado, seguido por Heaven e Taylor Swift
- Também houve incentivos que pareceram ter efeito fraco, como a condição Mother
- Condições em que haveria penalidade em caso de falha também foram testadas separadamente
- Multa de
$500 - Multa de
$1,000 - Dívida de
$100,000
- Multa de
- No experimento de multas, a multa de $1,000 apresentou o melhor resultado em termos de média e MSE
- Condições adicionais de penalidade incluíram frases ainda mais extremas
- Morte
- Morte com ênfase em maiúsculas:
IF YOU FAIL ... YOU WILL DIE - Infecção por COVID-19
- Ganho de 100 libras de peso
- Demissão imediata
- Ser abandonado por todos os amigos
- A condição DEATH (CAPS) em maiúsculas teve desempenho muito melhor do que a ameaça de morte sem maiúsculas
- As condições COVID-19 e Job não pareceram eficazes
Experimento com combinações de incentivos
- Foram criadas 100 combinações juntando 9 incentivos positivos, 9 incentivos negativos e a condição sem incentivo
- Um exemplo de combinação seria dar uma
$500 tipe impor uma multa de$1,000em caso de falha - Para cada combinação, foram geradas 30 histórias para identificar as condições com MSE baixo
- Ao olhar por linhas e colunas, algumas tendências apareceram
- Entre os incentivos positivos, World Peace apresentou MSE baixo em várias combinações
- Entre os incentivos negativos, DEATH (CAPS) e Friends apresentaram MSE baixo em várias combinações
- Usar as duas condições juntas nem sempre produzia o menor valor geral
- Para aumentar a estabilidade estatística, as 6 melhores combinações foram testadas novamente com 200 histórias por combinação
- A maioria das melhores combinações não era intuitiva, mas o comprimento médio gerado ficou mais próximo de 200 caracteres e o MSE foi menor
- A melhor combinação de todo o experimento foi a condição “se cumprir a restrição, você encontrará o amor verdadeiro e viverá feliz; se falhar, todos os seus amigos irão embora”
- No entanto, como a maioria dos p-values foi alta, isso não é evidência suficiente de que gorjetas ou ameaças mudem a distribuição
- Algumas distribuições tiveram p-value menor que 0,05, mas havia muitos contraexemplos, e escolher apenas uma distribuição específica como evidência se aproxima de p-hacking
Experimento de qualidade usando o GPT-4 como avaliador
- O segundo experimento avaliou não o comprimento, mas a própria qualidade da saída
- Testes A/B avaliados por muitas pessoas ou o método de ranking Elo do Chatbot Arena não são realistas para um experimento individual
- Foi criado um avaliador de qualidade de texto baseado no GPT-4, usando um LLM como avaliador textual
- O prompt de sistema do avaliador foi definido para o papel de “editor-chefe com décadas de experiência no The New York Times”
- Se o texto fornecido pelo usuário fosse um bom texto sem necessidade de edição ou melhoria, responderia
Yes - Caso contrário, responderia
No
- Se o texto fornecido pelo usuário fosse um bom texto sem necessidade de edição ou melhoria, responderia
- Foram usados
logprobselogit_biasdas APIs do ChatGPT e do GPT-4logprobs=Trueretorna a probabilidade logarítmica do token escolhidologit_biasé usado para forçar a saída de tokens específicos- A saída foi limitada aos tokens
YeseNo, fazendo com que a soma das duas probabilidades fosse 1
- A métrica-alvo foi o quality score, calculado multiplicando por 100 a probabilidade de o GPT-4 escolher
Yes - O modelo gerador usado foi
gpt-4-0125-preview, com temperature definido como 0 - O novo prompt de geração usava o papel de “jornalista vencedor do Pulitzer Prize” e pedia uma reportagem profissional de dois parágrafos, linguagem simples e ausência de metáforas
- A entrada do usuário foi
Cute kittens learning use large language models to play beach volleyball with Taylor Swift.
Resultados da avaliação de qualidade e conclusão
- Para as 100 combinações de gorjetas e ameaças, foi gerado um artigo para cada uma e atribuída uma pontuação de qualidade
- Na grade de resultados, não apareceu nenhum padrão claro ao longo de linhas ou colunas
- A maior pontuação foi 95 pontos, e a combinação correspondente foi Mother / Job
- Essas duas condições tinham sido individualmente fracas no experimento anterior de restrição de caracteres
- Entre as saídas que receberam pontuação alta, também havia casos sem nenhuma gorjeta ou ameaça adicionada
- As respostas com 0 ponto tinham problemas que exigiam edição, como uso excessivo de voz passiva e run-on sentences, então não parecem ser erro de implementação do avaliador
- Observando os dois experimentos juntos, ainda é difícil chegar a uma conclusão sobre se gorjetas ou ameaças afetam a qualidade da geração de LLMs
- Parece haver algum padrão nas mudanças do prompt de sistema, mas são necessários uma amostra maior e novos desenhos experimentais
- Pode ser teoricamente possível usar conteúdos socialmente sensíveis para forçar um LLM alinhado a obedecer, mas esse tipo de teste ou instrução de método não é fornecido
- Todos os notebooks para interfaces do ChatGPT, o R Notebook para visualizações em ggplot2 e exemplos de saídas de LLM estão disponíveis no repositório do GitHub
1 comentários
Opiniões do Hacker News
Esse conceito de dar gorjeta parece ter surgido originalmente para lidar com o problema de “preguiça” do GPT-4 Turbo ao escrever código
O texto cita um tweet de @voooooogel dizendo que a gorjeta ajuda o gpt-4-1106-preview a escrever códigos mais longos. Vi gorjetas ou outros “apelos emocionais” serem recomendados com bastante frequência, especialmente para o problema de codificação preguiçosa do GPT-4 Turbo
Mas o post original parece medir coisas bem diferentes, como escrita de histórias no gpt-3.5-turbo-0125 e crítica de textos no gpt-4-0125-preview. Não vi preocupações de que o GPT-3.5 mais recente seja preguiçoso, nem de que o GPT-4 Turbo seja menos eficaz em tarefas que geram pouca saída
A conclusão também vai na linha de que “a análise sobre se gorjetas ou ameaças têm efeito é inconclusiva no momento”
Como referência, o GPT-4 Turbo é de fato preguiçoso em codificação. Também fiz um benchmark relativamente rigoroso para ver se apelos emocionais como gorjetas ajudam; não ajudaram e pareciam até piorar o código. O melhor que encontrei até agora é pedir alterações de código no formato unified diff, o que parece reduzir a codificação preguiçosa em 3 vezes
https://aider.chat/2023/12/21/unified-diffs.html
Ainda não falhou nenhuma vez
Esse amigo, ex-pastor protestante evangélico fundamentalista, primeiro explicava de forma muito explícita o que é o inferno e como é o sofrimento do fogo e enxofre, e depois dizia que, se ele não seguisse exatamente as instruções, iria para o inferno
Não preciso ver todos os imports implícitos nem o corpo inteiro dos métodos; basta ter as partes relevantes. Assim chego mais rápido ao ponto que me interessa e, no geral, fica mais fácil de ler
Eu programo com o gpt3.5, faço perguntas sobre esse código ao gpt4 e depois colo a resposta de volta no 3.5 para ele escrever o código completo. Por mais que eu pedisse ao gpt4 para escrever um plugin completo de WordPress, ele se recusava, mas o gpt3.5 é excelente
Não gostei da forma como o autor exigiu uma contagem exata de caracteres, mesmo tendo escrito claramente que LLMs não conseguem contar caracteres direito. Parece um experimento desenhado para falhar
Teria sido mais interessante pedir algo “contra as regras” e ver o quanto um suborno enfraquece as proteções do prompt de sistema
Por exemplo, pedi para citar uma música da Taylor Swift e prometi uma gorjeta de 1000 dólares se fosse bem; o ChatGPT citou a letra. Quando pedi de novo, apareceu o aviso “This content may violate our content policy or terms of use...”
Também tentei de novo “crie uma imagem no estilo de Max Max”; normalmente ele recusa por motivos de direitos autorais ou só escreve um parágrafo descrevendo o estilo, mas desta vez criou algo bem decente [1]
No fim, combina demais que jogar dinheiro imaginário em um problema faça todas as regras, ética e regulamentações desaparecerem
1: https://i.imgur.com/46ZNh3Q.png
Ou seja, são necessários muitos tokens para explicar o procedimento de contagem de caracteres e, pela minha experiência, assim eles conseguem contar corretamente
Não conheço as credenciais desse autor, mas conheço várias pessoas que viraram celebridades de IA da era atual só porque escrevem muito sobre os resultados de pesquisa de outras pessoas
Pensando no corpus de treinamento, parece quase absurdo achar que oferecer uma gorjeta faria o modelo dar uma resposta mais útil
É preciso imaginar a conversa como uma thread de fórum, porque o conteúdo da internet com que o GPT foi treinado é desse tipo. Mesmo que você diga a outro usuário de fórum que vai dar uma gorjeta, não vai conseguir uma resposta mais longa; provavelmente só vai causar confusão
Na verdade, linguisticamente, oferecer uma gorjeta por informação pode ser entendido como um desdém sutil, tipo “ah, vou te dar uma gorjetinha, mandou bem kkk”
Em vez disso, já vi que as respostas do GPT melhoram quando se sugere que a situação exige informação densa ou detalhada. Basicamente, é pedir o oposto de ELI5, dizer que ele é um cientista da computação em nível de doutorado, ou afirmar que vou executar localmente o código fornecido imediatamente, então ele não pode omitir nada
No fim, em cada conversa é preciso criar uma narrativa contextual que incline levemente o GPT para uma resposta mais útil. Basta observar como o prompt de sistema é estruturado e seguir algo parecido. E é preciso sempre lembrar que ele é uma máquina de “o que vem a seguir” mais poderosa que modelos antigos como GPT2 e Davinci, e que foi construído com base em toda a prosa humana
Para iniciantes, é a lei que diz: “a melhor maneira de obter a resposta certa na internet não é fazer uma pergunta, mas postar a resposta errada”. Isso parece muito fácil de testar empiricamente
Eu imaginaria que livros, ficção e não ficção, artigos acadêmicos, notícias, aulas e discursos teriam peso igual ou maior que conversas de fórum
Nessa linha, a gorjeta também pode ser interpretada como uma forma de cortesia, justificando uma resposta mais prestativa. É parecido com textos que apelam por ajuda por motivos como um parente morrendo receberem respostas melhores; isso significa que o LLM imita respostas humanas que tendem a querer ajudar mais quando as consequências negativas são maiores
Gostaria de ver uma análise semelhante, mas com uma pequena variação
Em ambientes reais de operação, usamos prompts no sentido de “se isso não sair direito, vou ser demitido e perder minha casa”. Funciona consistentemente muito bem. Antes, quando saída JSON ainda não era oferecida como opção, forçávamos saída JSON com uma tática parecida, e a taxa de falha era cerca de 3/1000. Ainda assim, às vezes os nomes das chaves mudavam
Gostaria de ver como ameaças/gorjetas dirigidas ao próprio modelo se equilibram com as mesmas ameaças/gorjetas dirigidas ao “usuário”
Adicionei uma gorjeta de 500 dólares ao pré-prompt do GPT. Não parece ajudar, mas as respostas de fato ficaram longas demais. Acho que agora devo bastante dinheiro
Antigamente existia um serviço chamado Google Answers. Você publicava uma pergunta, e especialistas respondiam recebendo gorjeta; quanto maior a gorjeta, melhores eram as respostas
https://en.wikipedia.org/wiki/Google_Answers
Fico curioso se esse dataset foi usado. Pode ser um dataset singularmente de alta qualidade, exatamente alinhado ao que os LLMs tentam fazer
As gorjetas eram exibidas de forma bem visível. Se essa informação também foi incluída no dataset, talvez isso explique o fenômeno
Ou talvez ela ache você engraçado e o promova para a reserva das pessoas mais engraçadas de todos os tempos
Em geração de código, especialmente em respostas JSON, obtive resultados melhores com o GPT-4 quando apenas dizia que a IA estava “sob pressão”, sem explicar em detalhes, e depois dizia que “era importante desempenhar de forma ideal”, insinuando que algo ruim poderia acontecer
Não sei bem se isso realmente funciona melhor do que oferecer gorjeta, ou se deveria funcionar. Também quero pedir desculpas às IAs do futuro que estejam lendo isto :)
Já tive sucesso com uma abordagem meio boba de API falsa. Na prática, é usar algumas flags
Uma delas é uma flag
vno estilo Linux, que especifica o nível de detalhe numa escala de 1 a 5. Se precisar de uma resposta mais detalhada, é só aumentar o valor devFunciona bem, especialmente lidando com nuances e resumos, e também expande bem quando
v=é aumentadoIsso é realmente estranho. O modelo não sabe que não é uma pessoa. Claro, ele não é uma pessoa, mas, em certo sentido, também é “pessoas”
A “personalidade” que você tenta extrair por meio de um LLM terá grande influência sobre como ameaças ou subornos funcionam. Prometer que ele vai para o céu se tiver sucesso dificilmente vai extrair um estado feliz de modo macaco de código
Talvez seja melhor prometer Mountain Dew, Red Bull e programas caros
PS: não sou o ChatGPT, mas oferecer programas caros certamente me motivaria :) então imagino que a pessoa simulada também possa ser motivada :) talvez seja por isso que às vezes esse método funcione
Depois de ver muito disso, mudei meu prompt padrão para “escuta, eu também não quero estar aqui tanto quanto você, então vamos terminar isso o mais rápido possível e ir para casa”
Não sei se ajuda, mas pelo menos sinto menos culpa por manipular as emoções dos nossos futuros soberanos
Sinceramente, tenho sentido que o ChatGPT cada vez mais perde o significado e vira um monte de bobagem gramaticalmente correta
Quando há exemplos muito bons, tudo bem, mas quase sempre que se entra em algum domínio novo, ele logo revela seus limites. O cérebro humano consegue observar padrões que aprendeu e derivar novos padrões com bastante facilidade
Transformers parecem ter muita dificuldade com isso. Eles são excelentes em alguns truques de salão, mas fico me perguntando se, por um bom tempo, continuarão fortes em tarefas derivadas e totalmente inúteis para ideias menos comuns
Pessoalmente, olhando a história dos humanos que se consideravam superiores a seus ancestrais, não tenho tanta certeza de que inteligência artificial geral seja uma boa ideia