2 pontos por GN⁺ 2023-10-05 | 1 comentários | Compartilhar no WhatsApp
  • Reuniu comentários espalhados em threads de recomendação de livros no HN e usou a Chat Completions API para extrair título, autor e URL dos livros mais recomendados
  • Tomou como base cerca de 200 histórias do HN que, em 2023, continham a palavra “book” como termo separado no título e não apontavam para links externos; o custo para processar 57 mil comentários com gpt-3.5-turbo foi de cerca de US$ 40
  • No topo da contagem aparecem livros repetidamente citados há muito tempo no HN, como Structure and Interpretation of Computer Programs com 376 menções, Gödel, Escher, Bach com 365, e How to Win Friends and Influence People com 292
  • No processamento real, JSON inválido, comentários que mencionavam só o autor, livros diferentes com o mesmo título, leitura incorreta do texto de links e a não determinismo que aparece mesmo com temperature 0 afetaram a qualidade
  • O autor publicou a saída bruta do GPT e o CSV de entrada, e tentou reduzir perdas por divergência de nomes com uma normalização como colocar títulos em minúsculas, remover “the” do início e retirar subtítulos

Como extrair informações de livros dos comentários do HN

  • O trabalho começou ao ler threads de recomendação de livros no HN e querer descobrir quais livros eram mais recomendados ou mencionados com mais frequência
  • Em 2023, havia no HN quase 200 histórias cujo título continha “book” como palavra separada e que não linkavam para outra página
  • Entre os dados obtidos pela API do HN, foi selecionado um subconjunto que parecia ser de threads de recomendação de livros, e o texto dos comentários foi processado
  • Em cada comentário, a Chat Completions API foi usada para extrair as seguintes informações
    • título do livro
    • autor
    • URL

Livros mais mencionados

Erros de agregação e limpeza dos dados

  • A lista inicial tinha alguns erros de correspondência de autor
    • o autor de Dune não é Brian Herbert, mas Frank Herbert
    • Meditations não é de Descartes, mas de Marcus Aurelius
    • Calculus apareceu como sendo o livro de Michael Spivak, mas essa contagem também incluía 14 menções a Calculus, de Apostol
  • A consulta SQL precisava ser alterada para retornar não min(author) para cada título, mas o autor mais frequente
  • Em uma atualização de 12 de outubro de 2023, a lista dos 50 primeiros foi corrigida
    • Javascript e Calculus foram considerados incorretos porque misturavam vários livros com o mesmo nome
    • Javascript: The Good Parts foi renomeado para “javascript” no código de processamento de dados, mas também havia outros livros com esse mesmo título
    • Depois da remoção de duplicatas, esses itens saíram do top 50

Limitações reveladas no uso da API do ChatGPT

  • Os casos em que não era retornado JSON válido geralmente aconteciam quando o comentário do HN era curto, como “thanks”, ou tinha formato de pergunta
    • às vezes a resposta também vinha misturada com frases como “I apologize for the confusion…” ou “You’re welcome!”
  • O prompt foi projetado para descartar respostas com título vazio
    • isso servia para reduzir o problema de o ChatGPT tratar como menção de livro casos em que só o autor era citado, sem um título específico
  • O custo para processar 57 mil comentários com a API gpt-3.5-turbo foi de cerca de US$ 40
  • Mesmo com temperature ajustada para 0, os resultados do GPT variavam entre chamadas
    • casos de não determinismo do GPT-4 já são conhecidos, mas o gpt-3.5-turbo também mostrou variabilidade maior do que modelos anteriores da linha GPT-3
  • Os links podiam ser identificados no texto, mas era preciso remover as tags HTML e deixar apenas a URL
    • caso contrário, o GPT pegava o texto truncado do link em vez da URL real

Formato de saída em JSON e condições do prompt

  • Um exemplo de JSON gerado pelo ChatGPT para um comentário do HN estava no formato certo, mas todos os valores, exceto o link, estavam errados
  • A saída tem formato de array com os campos match, title, author e link
  • O prompt incluía as seguintes condições
    • identificar títulos de livros e autores no documento
    • mostrar as palavras usadas para fazer a correspondência com o título
    • expandir títulos abreviados
    • deixar title vazio se apenas o autor for mencionado e não houver livro
    • retornar um array vazio se houver apenas um pedido de recomendação sem mencionar livro algum
    • não incluir subtítulos

Dados públicos e normalização de títulos

  • Os raw data produced by GPT são os dados brutos de saída do GPT ordenados por título
    • a coluna match contém parte dos comentários em que um livro foi identificado
  • Foi aplicada uma normalização aos títulos dos livros
    • converter para minúsculas
    • remover “the” do início do título
    • remover subtítulos
  • Essa normalização buscou reduzir casos em que itens ficavam de fora da consulta dos livros mais citados por causa de divergências de nomes geradas pelo GPT
  • Os dados de entrada são fornecidos em zipped csv format e, após descompactação, resultam em um arquivo de 24 MB
  • As URLs da Amazon na tabela incluem links de afiliado da Amazon para fins de aprendizado

1 comentários

 
GN⁺ 2023-10-05
Opiniões no Hacker News
  • O ChatGPT deixou passar alguns, e provavelmente muitos mais: https://hn.algolia.com/?q=A+non-standard+book+list+for+softw...
    Há mais nos comentários também: https://news.ycombinator.com/item?id=30651273
    Este site parece uma forma esperta de gerar muitos cliques com links de afiliado da Amazon

    • Ainda tem gente ganhando dinheiro com o programa de afiliados da Amazon? Achei que isso já tinha acabado há uns 10 anos
  • Descobri o Hacker Recommended Books [0a] no HN por meio de [0b], comecei a ler os livros de lá, testei vários e li cerca de 20. A experiência foi muito boa, aprendi muita coisa nova, e alguns livros ampliaram meus horizontes
    Se você gosta de livros, recomendo fortemente pesquisar simplesmente por books no HN e filtrar pela tag "Ask HN" [1], ou só por "books". Hoje escolho quase todos os livros em inglês assim, inclusive os que não são técnicos. Faço isso há mais de 2 anos e gosto muito das recomendações de livros do HN
    As threads do HN sobre livros acumulam leituras de alta qualidade de vários hackers ao longo dos anos, então são quase uma mina de ouro. Também existe o Hacker News Books [2], e vale a pena ver a seção Top Books of All Time [3]
    [0a]: https://hacker-recommended-books.vercel.app/category/0/all-t...
    [0b]: https://news.ycombinator.com/item?id=28595967
    [1]: https://hn.algolia.com/?q=Ask+HN+books
    [2]:https://hackernewsbooks.com
    [3]: https://hackernewsbooks.com/top-books-on-hacker-news

    • Hoje decidi começar a ler um livro recomendado pelo HN. No link [0a], escolhi os últimos 6 meses, e havia 58 páginas de recomendações, com 15 livros por página
      Então usei um dado de 15 faces para escolher a página e rolei de novo para escolher o livro daquela página. O livro que vou ler é The Very Hungry Caterpillar
    • https://news.ycombinator.com/item?id=28595967 ("Show HN: 40k HN comments mentioning books, extracted using deep learning") é excelente, e ainda uso regularmente
    • “Hacker Recommended Books” parecia extremamente útil, então tentei salvar como favorito na minha conta do Pinboard, mas apareceu “já salvo há 2 anos
      Não é uma crítica ao site; é mais um lamento sobre mim mesmo, por salvar esse tipo de serviço com boas intenções e depois esquecer que ele existe
  • Como deixar spam barato de links de afiliado da Amazon ainda mais distante da qualidade: é só gerar com “AI”

  • É surpreendente que Code, de Charles Petzold, não tenha entrado no top 50. É um dos livros mais acessíveis para aprender como computadores realmente funcionam
    Vi muitas menções a Code no HN, mas talvez minha amostra esteja enviesada para links com comentários que eu li

    • É um livro fantástico para quem tem dificuldade para dormir. Eu não sabia que dava para tornar um assunto interessante como os fundamentos do funcionamento de computadores tão sem vida e tedioso, nem que fossem necessárias tantas palavras para isso
      Estou lendo agora, mas a luz se apaga antes de eu passar de 3 ou 4 páginas, então está demorando uma eternidade
    • Esse livro tem algo parecido com “desenhe o resto do cavalo”. É um ótimo livro, mas na segunda metade o autor pressupõe que você não só entendeu a primeira metade como também decorou os componentes, de modo que o restante da explicação precisa caber na memória de trabalho para fazer sentido
      A segunda metade foi difícil, sinceramente. Mesmo “tendo entendido”, eu não tinha memorizado direito a primeira metade
      Ainda assim, gosto da abordagem de ensinar como se estivesse explicando para uma criança de 5 anos. Hoje em dia as pessoas tendem a pular os fundamentos, sem vê-los como algo essencialmente complexo o suficiente por si só
    • Gosto muito desse livro. É o livro que recomendo para pessoas não técnicas que querem entender a teoria de como tudo funciona
    • Pelo meu site HNLikes.com, este é o segundo link da Amazon mais citado em comentários do HN
    • Está no topo da lista Hacker News All Time Top Books referenciada acima por rito
  • É surpreendente que os livros de Knuth não estejam no top 5, e é muito surpreendente que as Meditations de Descartes estejam lá. É um livro que nem na França quase ninguém lê mais, então talvez seja resultado de mistura com posts do HN relacionados a meditação.
    E Dune foi escrito por Frank Herbert, não Franck Herbert. É difícil acreditar neste artigo e, depois da popularização dos LLMs, ficou praticamente difícil acreditar em qualquer coisa publicada na internet.

    • Este artigo acrescentou os dados brutos fornecidos pelo GPT, permitindo verificar a integridade dos dados. Do ponto de vista da metodologia, por isso ele é confiável.
      Independentemente do meio, em qualquer publicação sempre foi necessário verificar a integridade dos dados e dos métodos. A responsabilidade de autores e leitores não mudou antes ou depois dos LLMs. Se antes dos LLMs você simplesmente acreditava, não deveria; e, se depois dos LLMs você não consegue confiar em autores confiáveis, isso também é um problema.
    • Meditations on First Philosophy, de Descartes, é um dos livros mais importantes da história do pensamento ocidental. Dizer que “nem na França ninguém lê mais” é parecido com dizer que The Origin of Species é irrelevante porque você não viu ninguém lendo no metrô de Londres.
    • As obras de Knuth são como The Power Broker no campo do urbanismo: cânones setoriais, mas próximos daqueles livros que pouca gente de fato leu.
      Tenho alguns volumes, mas foram presentes, e nunca os li. Então não acho tão surpreendente que não apareçam no top 5.
    • O nome do autor de Meditations está errado. O link leva ao livro certo, mas é Meditations, de Marcus Aurelius.
    • Parece errado estar marcado como Descartes. O link vai para Marcus Aurelius.
  • Não entendo por que o ChatGPT era necessário. Algolia e análise de dados teriam sido suficientes; qual foi a tarefa nova e difícil aqui?

    • Seria incrível analisar, com base nos comentários, que perfil têm os usuários que recomendaram cada livro. Por exemplo, mostrar proporções como “80% das pessoas que recomendaram Ayn Rand têm inclinação de direita”.
  • O motivo pelo qual recomendações de livros do HN são úteis é justamente o oposto. Nos comentários lá embaixo, que não entraram na tabela de recomendações, há indicações de livros dos quais nunca ouvi falar, e isso tem valor. Esta lista reunindo as escolhas populares é, em grande parte, previsível.
    Se você vasculhar posts do tipo “me recomendem livros”, pode encontrar recomendações realmente excelentes perto do fim.

    • Com música é a mesma coisa. Vá a um lugar onde as pessoas falam sobre uma banda de que você gosta e role para baixo até começarem a aparecer nomes que você nunca ouviu.
  • Mais alguém sente que é um sinal de alerta quando alguém cita How to Win Friends and Influence People como um de seus livros favoritos ou um dos que mais o influenciaram?

    • Não penso assim. Vejo muito esse tipo de reação em pessoas que não leram o livro de fato. As pessoas acham que o livro é sobre técnicas de manipulação, mas na verdade é um guia muito básico para fazer e manter amigos.
      Se você já tem um grupo de amigos e não se preocupa em mantê-lo, é bem provável que já saiba quase tudo que está no livro. Para alguém que cresceu sempre isolado, os conselhos desse livro foram realmente úteis. Era como um resumo de habilidades sociais que eu deveria ter aprendido aos 10 anos, mas não aprendi.
      O único “sinal de alerta” que vejo em quem menciona esse livro é a alta probabilidade de que, como eu, tenha sido socialmente muito desajeitado em algum momento no passado. Talvez ainda seja, mas ao menos está tentando melhorar.
    • Para pessoas com ansiedade social, no espectro autista, ou uma mistura dos dois, ele tem grande impacto. Este livro me ensinou a conversar com pessoas e me ajudou a sair de uma vida de forte ansiedade social e isolamento para uma vida em que consigo falar com outros seres humanos e conhecê-los.
      A maioria das pessoas ao meu redor provavelmente não precisa deste livro e talvez até o ache meio bobo. Mas, para mim, foi um ponto de virada, e imagino que muita gente no HN tenha tido experiências parecidas.
    • Não. É uma leitura sólida sobre comportamento humano.
  • A Meditations da lista, olhando os dados brutos no fim da página, parece se referir à obra de Marcus Aurelius, não a “Meditations on First Philosophy”, de Descartes.
    É apenas uma verificação parcial, não uma auditoria completa. Nos dados brutos também há muitas menções a Descartes, mas em geral são sobre outra obra. Acho um erro interessante.

  • Uma pergunta cada vez melhor para nos fazermos hoje em dia é esta: como fazer isso sem usar LLM diretamente e, mais ainda, sem aprendizado de máquina? Depois, como segunda etapa, podemos perguntar como o potencial auxílio de ferramentas generativas ou de aprendizado de máquina poderia melhorar essa solução.

    • Fiz uma versão disso com tecnologia sem graça (Postgres, Django, Python). O método contava quantas vezes apareciam em comentários do HN não só links para livros, mas também vídeos do YouTube, artigos do arXiv etc., e fazia vários cálculos também sobre quem postou o link e as respostas ao link.
      A realidade é que é difícil conseguir atenção e engajamento com tecnologia sem graça.
    • Acho que uma parte considerável das tarefas básicas feitas com LLMs também é possível sem aprendizado de máquina. Ainda assim, o interessante é aprender a fazer coisas divertidas com LLMs, e o teto é muito mais alto do que com métodos tradicionais.
      Aprender a aplicar ferramentas novas a tipos antigos de tarefa também é útil e esclarecedor.