5 pontos por GN⁺ 2024-08-19 | 1 comentários | Compartilhar no WhatsApp
  • Cadeias de Markov são modelos estatísticos simples que escolhem a próxima palavra, mas podem produzir saídas mais engraçadas que LLMs por causa das distorções geradas quando não conseguem capturar totalmente o significado
  • O humor vem de uma surpresa leve e inesperada, e o “snap” que fortalece a piada surge ao estabelecer um padrão familiar e depois quebrar a expectativa
  • Como LLMs procuram o próximo token mais plausível com muito contexto e cálculo probabilístico, quanto melhores ficam, mais se aproximam de frases medianas e previsíveis
  • Na comparação entre o ChatGPT 3.5 e uma cadeia de Markov treinada com a King James Bible e um livro-texto de ciência da computação, a cadeia de Markov quase faz sentido, mas no final provoca uma mudança de significado absurda
  • Os LLMs atuais não são muito adequados para escrita criativa ou geração de piadas, e um modelo de linguagem para esse tipo de tarefa teria de ser categoricamente diferente dos LLMs atuais

Por que a cadeia de Markov parece mais engraçada

  • O exemplo de cadeia de Markov treinada com um conjunto de dados da King James Bible e de um livro-texto de ciência da computação mistura estilo bíblico e termos de programação para criar frases que “quase fazem sentido, mas desmoronam no final”
  • O ChatGPT 3.5 recebeu a instrução de produzir algo parecido, mas o resultado ficou mais organizado e próximo de frases com significado estável
  • Os dois exemplos são casos selecionados, mas a comparação escolhe bons candidatos de ambos os lados
  • As frases da cadeia de Markov carregam significados estranhos e, quanto mais se aproximam do fim, mais provocam mudanças sem sentido de direção

A cadeia de Markov se parece mais com “um LLM muito burro”

  • Quando os LLMs começaram a ser explicados em larga escala, às vezes eram comparados a “cadeias de Markov muito inteligentes”, mas hoje dá para ver a cadeia de Markov como “um LLM muito burro”
  • O ChatGPT é um tipo de LLM, ou seja, Large Language Model
    • Existem modelos muito grandes, com mais de 300 GB, e também modelos menores, com menos de 10 GB
    • Mesmo os menores normalmente não são chamados de “small language model”, mas de LLM pequeno
  • A cadeia de Markov também prevê a próxima palavra com base no contexto atual, mas é um modelo estatístico simples que não considera semântica, dimensionalidade nem matemática vetorial especializada
  • O recurso de sugestão da próxima palavra no topo do teclado do celular em geral é feito com cadeias de Markov, pois tem baixo custo de execução e pode ser atualizado facilmente para combinar com o estilo de mensagens do usuário
  • Se for preciso gerar uma frase com um objetivo específico, o LLM muitas vezes vai se sair melhor, mas precisão não leva necessariamente à graça

Humor é “surpresa leve e inesperada”

  • O humor é resumido como unserious surprise, isto é, uma surpresa sem gravidade
  • Uma boa piada tem um “snap” agradável e nítido
    • “snap” é o termo usado para evitar a carga semântica da expressão punchline
    • Quanto menor a surpresa, menos engraçada a piada tende a ser
  • Uma piada ouvida várias vezes perde a graça porque a surpresa diminui
  • O motivo de o humor “aleatório” poder parecer sem graça é que, embora as palavras em si sejam imprevisíveis, a expectativa de imprevisibilidade já é previsível
  • Reutilizar um padrão familiar e depois quebrar a expectativa fortalece o snap
    • “banana, apple, orange, vehicular manslaughter” cria o padrão de uma lista de frutas de uma palavra e o rompe com a expressão de um crime
  • Escrever piadas em geral está mais próximo de violar padrões

Quanto mais nítida a cena, mais forte o snap

  • Uma linguagem mais original ou mais descritiva pode fazer a cena parecer mais real e deixar o snap mais forte
  • Em vez de escrever simplesmente “he was shot”, escrever “he was pierced by a 35mm” torna a cena mais concreta
  • Em vez de “he fell”, uma formulação como “his face met the ground” deixa a cena mais vívida
  • Começar no meio da cena também pode funcionar
    • “a urinal cake? I’m not falling for that one again” faz a pessoa imaginar o que aconteceu antes e aumenta a sensação de realidade da cena
  • Escrever boas piadas e escrever bem compartilham parte do mesmo objetivo
    • Clichês desperdiçam palavras porque deixam a cena em um estado não realizado

As condições para o humor funcionar

  • O que conta como “surpresa leve e inesperada” não é universal, então o humor é subjetivo
  • Humor vulgar pode não ser engraçado por ser levado a sério demais, ou pode fracassar por ser previsível demais
  • Uma anti-piada só pode ser engraçada quando a própria estrutura da piada já é previsível
  • O absurdismo precisa de uma predisposição do público para funcionar
  • É possível violar normas culturais, mas a violação precisa ser entendida como algo sem gravidade
  • Mesmo sendo um americano monolíngue em inglês, o autor conseguiu criar uma piada bem-sucedida usando “no” de uma forma culturalmente inesperada em um ambiente não anglófono

LLMs são otimizados em direção à previsibilidade

  • Para prever uma frase com sucesso, é preciso muito contexto, e os LLMs aproveitam esse contexto
  • O funcionamento básico de um LLM é encontrar o próximo token mais provável por meio de cálculos complexos
  • Se o corpus for composto de fala razoável, então quanto melhor for o LLM, mais previsível será sua saída
  • Por causa dessa característica, LLMs podem ser uma escolha ruim para escrita criativa
    • Sem muito prompt engineering, um parágrafo gerado pode parecer facilmente algo escrito por um LLM
    • O resultado soa como a frase mais mediana possível dentro do contexto
  • Pedir a um LLM um “pensamento original” é quase uma contradição, e esse não é o tipo de coisa para o qual ele foi feito

Os LLMs atuais não servem bem para gerar piadas

  • Para criar piadas, é preciso distorcer expressões comuns de maneiras inesperadas para mudar seu significado
  • Um bom LLM é justamente otimizado para evitar esse tipo de desvio
  • O autor não concorda com a ideia de que comédia não possa ser gerada por algoritmo
    • A comédia pode ser analisada e medida
    • Com apoio suficiente, talvez seja possível gerar comédia sob demanda
    • O fato de ser possível não quer dizer que deva ser feito
  • Os LLMs atuais não são a ferramenta certa para essa tarefa
  • Os LLMs em estágio inicial eram mais engraçados, e a geração de imagens também era mais engraçada no começo
    • Há casos como a imagem “trail cam” do Dall-e mini
    • À medida que os sistemas melhoraram, o humor desapareceu

A tensão entre máquinas de previsão melhores e expressão artística

  • Uma máquina de previsão extremamente boa pode não ajudar muito na expressão artística
  • Os LLMs ainda têm muitos usos, mas não são a ferramenta perfeita para trabalhos criativos
  • Às vezes os LLMs deixam passar conceitos interessantes que uma criança pequena poderia propor com facilidade
  • Levando esse quadro em conta, até dá para imaginar outro tipo de modelo de linguagem
    • Esse modelo teria de ser categoricamente diferente dos LLMs atuais
    • Talvez diferente o bastante para nem ser chamado de LLM

O vazamento de abstração revelado nas saídas de LLMs

  • Esse argumento não é um debate de “humanos espirituais versus máquinas”
  • Mesmo com o avanço dos LLMs, certos defeitos continuam aparecendo, e isso se parece mais com uma abstração com vazamento na qual a estrutura interna fica visível enquanto o sistema tenta soar humano
  • O motivo de toda mensagem do ChatGPT parecer uma redação de ensino médio é que ele reproduz a saída mais mediana possível
  • A saída de LLM pode parecer uma prosa corporativa sem graça, sem personalidade e endurecida por um rigor acadêmico artificial
  • Avaliações falsas da Amazon podem ser fáceis de perceber se você pensar “eu escreveria assim?”
    • Surge a dúvida se alguém realmente colocaria introdução e conclusão ao falar da própria experiência usando lenços de limpeza para louça Oxiclean
    • Frases agradecendo ao fabricante e reconhecendo seu compromisso com o atendimento ao cliente podem não soar como experiência real de usuário
  • Modelos de detecção de LLM talvez acabem tendo de identificar personalidade, como um CAPTCHA de tela

Links de referência

  • famous tumblr blog: fonte dos exemplos de cadeia de Markov que misturam a King James Bible com estilo de programação e que voltou a ser atualizado recentemente

1 comentários

 
GN⁺ 2024-08-19
Comentários do Hacker News
  • Cheguei à mesma conclusão alguns anos atrás enquanto fazia um projeto paralelo.
    Antes dos LLMs, criei um site que gerava AWS Blog Posts falsos, https://totes-not-amazon.com/, treinei um gerador de cadeia de Markov com todos os posts de anúncio da AWS até então e juntei tudo em Python+JS copiando o HTML/CSS do blog da AWS.
    Era bem engraçado, a ponto de até pessoas familiarizadas com o blog da AWS só perceberem depois de ler algumas frases que aquilo era uma sopa de palavras.
    Quando o GPT tinha acabado de sair, tentei fazer um upgrade gerando posts de blog baseados em conteúdo da AWS com o gpt-2-simple do Minimaxir, mas o resultado era plausível demais e ficou muito menos divertido. Lia-se como um post de blog de verdade, só que com os fatos errados.
    No fim, o humor dos primeiros resultados de Markov estava no absurdo de perceber, depois de algumas palavras ou frases, que tudo era completamente sem sentido; os LLMs de hoje são bons demais para isso. Eles ainda erram, mas raramente de um jeito hilariamente incoerente.
    Conteúdo de cadeia de Markov erra no estilo “crianças dizendo coisas sem pé nem cabeça”, enquanto LLMs modernos erram como “um tio que nem sabe geografia básica”.

    • https://cemulate.github.io/the-mlab/#y3Bt-co-extensional+limit
      https://github.com/cemulate/the-mlab
      Isto é uma paródia do nLab, uma wiki colaborativa sobre teoria das categorias e teoria das categorias superiores. Quem já viu o nLab vai entender: para iniciantes, o jargão é quase indecifrável, e foi daí que surgiu a ideia deste projeto.
      O projeto usa o pacote nearley-generator, que transforma gramáticas Nearley em geradores de texto falso eficientes e controláveis, e o arquivo de gramática fica em /src/grammar/nlab.ne.
    • Cheguei à mesma conclusão de forma parecida. Antigamente, fiz cadeias de Markov com notas de patch de jogos e as enviei à comunidade; os patches falsos de Dota fizeram bastante sucesso, especialmente porque os patches originais já eram muito longos.
      A maior parte era sem sentido ou exageros sem graça (“este herói agora tem 500 de armadura”), mas em geral pelo menos 5 ou 6 linhas eram muito engraçadas, e às vezes havia coisas que pareciam proféticas. Por exemplo, algo como “Fiend's Grip gera 1/2/3 ilusões adicionais”.
      Mas os LLMs estragaram a situação. Os principais subreddits baniram todo conteúdo de IA, porque havia conteúdo chato demais de Midjourney sendo postado por usuários ingênuos e bots. Quando o alcance desapareceu, o interesse também sumiu, então parei de fazer cadeias de Markov.
    • “Um tio que não sabe nada, mas finge ser especialista e dá opinião” parece a melhor analogia para explicar LLMs. Não sabe nada, mas fala qualquer coisa com confiança.
    • Tenho dificuldade em concordar com a ideia de que LLMs modernos erram como “um tio que nem sabe geografia básica”.
      Usei bastante chatbots de LLM nesta semana, e esse tio já teria sido assassinado se não apenas falasse mentiras com confiança, mas também não tivesse capacidade de autoavaliação.
    • Aquele site é muito engraçado. E a analogia da criança versus o tio bate exatamente com a minha experiência, além de mostrar o quanto esses modelos de linguagem evoluíram.
  • Dei ao Claude 3.5 Sonnet o prompt: “com base no ensaio recente e na discussão do Hacker News, escreva 10 piadas curtas e engraçadas no estilo que o autor do ensaio descreveu”.
    O Claude respondeu que faria piadas sobre o tema de cadeias de Markov serem mais engraçadas que LLMs, mirando em “surpresas não sérias” e quebras de padrões esperados.
    Os exemplos eram coisas como: “Um LLM e uma cadeia de Markov entraram num bar. O LLM pediu uma bebida estatisticamente plausível, e a cadeia de Markov pediu um abajur feito de queijo”; “Quantos LLMs são necessários para trocar uma lâmpada? Um só, mas primeiro ele explica por 20 minutos o processo ideal de substituição de lâmpadas”; “Por que uma cadeia de Markov não é uma boa terapeuta? Porque o conselho dela é sempre ‘e então banana os sentimentos até virar um chapéu’”.

    • “Um LLM, uma cadeia de Markov e o GPT-4 entraram num bar. O bartender disse: ‘não atendemos gente do seu tipo’. O GPT-4 foi embora, o LLM ficou para discutir ética, e a cadeia de Markov pediu uma bicicleta feita de espaguete” é bem excelente.
    • As que são mais ou menos boas poderiam ficar mais engraçadas se a bobagem aleatória no núcleo fosse substituída por uma virada no estilo de cadeia de Markov de verdade: “correta como frase, mas errada por uma associação estranha”.
      Não é simplesmente colar qualquer coisa aleatória. Uma cadeia de Markov tem mais probabilidade de produzir algum tipo de significado, só que é o tipo errado de significado.
      Por exemplo, “Um LLM, uma cadeia de Markov e o GPT-4 entraram num bar. O bartender disse: ‘não atendemos gente do seu tipo’. O GPT-4 foi embora, o LLM ficou para discutir ética, e a cadeia de Markov pediu um golpe de Estado” é mais adequado.
    • “Um LLM e uma cadeia de Markov entraram num bar. O LLM pediu uma bebida estatisticamente plausível, e a cadeia de Markov pediu um abajur feito de queijo” é bem decente.
    • “Quantos LLMs são necessários para trocar uma lâmpada? Um só, mas primeiro ele explica por 20 minutos o processo ideal de substituição de lâmpadas” não é engraçada; é dolorosamente precisa.
    • Claude 3.5 Sonnet é o primeiro LLM moderno que usei que realmente é bom em piadas criativas. Os LLMs da família GPT receberam RLHF demais e não conseguem sair pela tangente de um jeito esquisito.
  • Na faculdade, meus amigos rodaram um gerador de cadeia de Markov na seção “relatório policial” do jornal da universidade.
    Entre os resultados do gerador de 3 tokens, os 10% melhores estavam entre os textos gerados por máquina mais engraçados que já vi, com um tipo de absurdo que os LLMs modernos evitam ao tentar produzir coerência semântica de alto nível.
    O fato de haver alguém cometendo atentado ao pudor na biblioteca na época provavelmente também serviu como bom material de origem.
    O jornal era The Daily Utah Chronicle e, pelo que me lembro, meus amigos também rodaram o gerador de cadeia de Markov na seção de anúncios pessoais, com resultados bem bons.

    • LLMs tentam “ser engraçados”, mas não são inteligentes o suficiente para realmente serem engraçados, e os erros também são chatos.
      Já as cadeias de Markov, por causa de conexões como lapsos baseados em homônimos, fazem cada frase ser puxada aleatoriamente e acabam chegando por acaso ao humor absurdo.
  • Se você quer evidências empíricas, /r/SubredditSimulator é uma paródia do Reddit baseada em Markov, e /r/SubSimulatorGPT2 é seu primo baseado em LLM
    A versão Markov recebeu muito mais upvotes e é simplesmente mais engraçada

    1. https://www.reddit.com/r/SubredditSimulator/top/?t=all
    2. https://www.reddit.com/r/SubSimulatorGPT2/top/?t=all
    • Acho que isso é só porque o primeiro é muito mais antigo e mais famoso. Pessoalmente, sempre gostei muito mais do segundo
  • Ao longo de alguns anos, postei algumas vezes no Reddit “XYZ falso escrito por IA”, e o modelo que teve a melhor reação foi o GPT-2
    Cadeias de Markov não bastam para manter o interesse por mais de uma ou duas frases, e tudo depois do GPT-3 é limpo e chato demais
    O GPT-2 é o ponto intermediário perfeito: consegue em geral acertar a gramática e manter ideias coesas, mas ainda não conhece detalhes suficientes sobre vários temas para produzir resultados que façam sentido no contexto

    • Tentei fazer o fine-tuning de um modelo GPT-2 com mais de 15 anos de logs de IRC para ele me imitar
      Eu queria colocar o bot no meu canal de IRC habitual e ver quanto tempo as pessoas levariam para perceber que era um bot. Quando alguém mandasse uma mensagem, eu enviaria as 10 mensagens mais recentes para o LLM e, se o resultado começasse com um prefixo específico, mandaria essa mensagem para o canal
      Infelizmente, o GPT-2 não era bom o suficiente e gerava coisas um pouco coerentes e relacionadas ao assunto, mas sem sentido
      Depois de corrigir o sistema, pretendo tentar fazer fine-tuning de um modelo 7B
    • Dá para compartilhar o melhor exemplo?
  • A evolução do blog AI Weirdness (https://www.aiweirdness.com/) nos últimos anos sustenta um pouco essa ideia
    Dito isso, a autora também conseguiu muitos resultados engraçados com LLMs, principalmente com os modelos iniciais até o GPT-3 e variantes menores do GPT-3
    Por exemplo, os nomes de cereais gerados pela versão Ada do GPT eram muito mais engraçados que os da versão Da Vinci: https://www.aiweirdness.com/new-breakfast-cereals-from-ai/

  • Não bastaria aumentar a temperatura?
    Cadeias de Markov têm uma compreensão de linguagem mais rudimentar. Ao aumentar a temperatura, ou seja, a aleatoriedade, de um LLM, dá para chegar a uma aproximação igualmente rudimentar
    Além disso, o autor usou ChatGPT-3.5. O ChatGPT passou por RLHF para soar o mais genérico possível, e o 3.5 também entende humor pior que o 4
    Não acho convincente a tese deste texto

    • Para quem não conhece as várias siglas de machine learning: RLHF significa aprendizado por reforço com feedback humano (Reinforcement Learning from Human Feedback)
    • Eu gostaria que houvesse uma versão do ChatGPT fixa para pesquisadores
  • Infelizmente a conta não existe mais, mas, quando eu estava na escola cerca de 10 anos atrás, fiz um bot de Twitter com Markov treinado com estas duas fontes
    Uma era todos os e-mails que Linus Torvalds enviou à LKML no ano anterior; a outra eram citações diretas de Jesus na King James Bible
    Era hilário. Como os dois conjuntos de treino quase não se sobrepunham, tive que adicionar uma heurística que, quanto mais tempo a cadeia ficava “presa” em um dos conjuntos, mais peso dava às opções do outro conjunto

  • Opero um bot de cadeia de Markov no IRC há cerca de 20 anos
    Nos últimos anos, também tenho rodado um LLM local junto. Algumas pessoas ainda preferem o bot de cadeia de Markov, mas a maioria chama o LLM
    Talvez isso aconteça porque, em vez de um modelo inteligente, bloqueado e de baixa temperatura como um LLM em formato de serviço tipo ChatGPT, escolhi um modelo mais alucinado, com menos recusas e mais engraçado, como um fine-tuning do Mistral-7B
    Vendo o LLM e o bot de Markov lado a lado, sinto ainda mais fortemente o quanto do “humor” do bot de Markov vem de pessoas atribuindo significado a saídas acidentais. Mesmo assim, a capacidade de “aprendizado” do Markov continua muito superior

    • Operar um bot de cadeia de Markov no IRC por 20 anos é coisa de herói
      Meus bots nunca sobreviveram tanto tempo. Certa vez, gerei textos aleatórios raspando os LiveJournals dos usuários: https://hewgill.com/journal/entries/68-new-lj-toy.html
    • Fico curioso sobre que tipo de prompt você usa para o LLM
      Rodo um bot de cadeia de Markov em um chat da Twitch e às vezes surgem momentos ótimos. Usei LLM por um tempo também e coloquei o chat recente no prompt, mas raramente saíam resultados que parecessem realmente humorísticos
      Também tentei engenharia de prompt instruindo especificamente que tipo de piada criar, mas o LLM sempre tendia a seguir o mesmo formato
    • Por que fazer isso? Fico curioso se é por diversão ou se há algum outro motivo que estou deixando passar
  • Tenho dois bots em um servidor Discord privado
    Um é um bot de cadeia de Markov básico treinado com todo o histórico de chat; o outro é um LLM de verdade treinado apenas com uma certa quantidade de tokens finais. Os dois entram aleatoriamente na conversa de vez em quando
    O bot de cadeia de Markov é sempre muito mais engraçado

    • Fico curioso sobre que janela de contexto você usou. Pelo que sei, janelas curtas, como 1 a 2 palavras, geram fala desconexa, enquanto janelas longas tendem a repetir mensagens antigas literalmente
      Para decidir quando entrar na conversa, foi uma probabilidade simples após outra mensagem (por exemplo, 25%) ou foi por timer?