- 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-turbofoi 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
- Na lista dos 50 primeiros, os livros mais mencionados foram os seguintes
- Structure and Interpretation of Computer Programs: Abelson and Sussman, 376 menções
- Gödel, Escher, Bach: Douglas Hofstadter, 365 menções
- How to Win Friends and Influence People: Dale Carnegie, 292 menções
- The C Programming Language: Brian Kernighan, Dennis Ritchie, 284 menções
- Dune: Frank Herbert, 261 menções
- Entre os mais citados havia não só livros técnicos, mas também romances, filosofia, psicologia, história e livros ligados a empreendedorismo
- Thinking, Fast and Slow: 244 menções
- The Pragmatic Programmer: 203 menções
- Designing Data-Intensive Applications: 153 menções
- Clean Code: 106 menções
- The Elements of Computing Systems: 104 menções
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-turbofoi 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-turbotambém mostrou variabilidade maior do que modelos anteriores da linha GPT-3
- casos de não determinismo do GPT-4 já são conhecidos, mas o
- 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,authorelink - 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
titlevazio 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
matchcontém parte dos comentários em que um livro foi identificado
- a coluna
- 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
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
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
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
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
Estou lendo agora, mas a luz se apaga antes de eu passar de 3 ou 4 páginas, então está demorando uma eternidade
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ó
É 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.
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.
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.
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?
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.
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?
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.
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.
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.
A realidade é que é difícil conseguir atenção e engajamento com tecnologia sem graça.
Aprender a aplicar ferramentas novas a tipos antigos de tarefa também é útil e esclarecedor.