- Des commentaires éparpillés dans des fils de recommandations de livres sur HN ont été regroupés, puis les titres, auteurs et URL ont été extraits avec la Chat Completions API afin d’identifier les livres souvent recommandés
- En 2023, l’analyse a porté sur environ 200 stories HN dont le titre contenait « book » comme mot distinct et qui ne pointaient pas vers un lien externe, en ciblant celles qui semblaient être des recommandations de livres ; le traitement de 57k commentaires a coûté environ 40 $ avec gpt-3.5-turbo
- Le haut du classement est occupé par des livres mentionnés depuis longtemps et de manière répétée sur HN, comme Structure and Interpretation of Computer Programs avec 376 mentions, Gödel, Escher, Bach avec 365 mentions, et How to Win Friends and Influence People avec 292 mentions
- Dans le traitement réel, la qualité a été affectée par du JSON invalide, des commentaires ne mentionnant que l’auteur, des livres différents portant le même titre, une mauvaise interprétation du texte des liens, et la non-déterminisme observable même avec une temperature à 0
- Les sorties GPT brutes et les CSV d’entrée sont publiés, et une normalisation comme la mise en minuscules des titres, la suppression du « the » initial et des sous-titres vise à réduire les omissions dues aux divergences de noms
Méthode d’extraction des informations de livres depuis les commentaires HN
- Le projet est parti de l’idée de lire des fils de recommandations de livres sur HN afin de vérifier quels livres étaient le plus souvent recommandés ou mentionnés
- En 2023, HN comptait près de 200 stories dont le titre contenait « book » comme mot distinct et qui ne renvoyaient pas vers une autre page
- Parmi les données récupérées via l’API HN, un sous-ensemble semblant correspondre à des fils de recommandations de livres a été sélectionné, puis le texte des commentaires a été traité
- Pour chaque commentaire, les informations suivantes ont été extraites avec la Chat Completions API
- titre du livre
- auteur
- URL
Les livres les plus mentionnés
- Dans la liste des 50 premiers, les livres les plus mentionnés sont les suivants
- Structure and Interpretation of Computer Programs : Abelson and Sussman, 376 fois
- Gödel, Escher, Bach : Douglas Hofstadter, 365 fois
- How to Win Friends and Influence People : Dale Carnegie, 292 fois
- The C Programming Language : Brian Kernighan, Dennis Ritchie, 284 fois
- Dune : Frank Herbert, 261 fois
- Le haut du classement ne comprend pas seulement des livres techniques, mais aussi des romans et des ouvrages liés à la philosophie, à la psychologie, à l’histoire et à l’entrepreneuriat
- Thinking, Fast and Slow : 244 fois
- The Pragmatic Programmer : 203 fois
- Designing Data-Intensive Applications : 153 fois
- Clean Code : 106 fois
- The Elements of Computing Systems : 104 fois
Erreurs d’agrégation et nettoyage des données
- La liste initiale contenait quelques erreurs d’association d’auteurs
- L’auteur de Dune n’est pas Brian Herbert, mais Frank Herbert
- Meditations n’est pas de Descartes, mais de Marcus Aurelius
- Calculus avait été associé au livre de Michael Spivak, mais l’agrégation incluait aussi 14 mentions du Calculus d’Apostol
- La requête SQL devait être modifiée pour renvoyer l’auteur le plus courant de chaque titre, et non
min(author) - Dans la mise à jour du 12 octobre 2023, la liste du top 50 a été corrigée
- Javascript et Calculus ont été considérés comme des erreurs, car ils mélangeaient plusieurs livres portant le même nom
- Javascript: The Good Parts avait été renommé en « javascript » dans le code de traitement des données, mais d’autres livres portant le même titre existaient aussi
- Après déduplication, ces entrées ont été retirées du top 50
Limites apparues lors de l’utilisation de l’API ChatGPT
- Les cas où aucun JSON valide n’était renvoyé concernaient souvent des commentaires HN très courts, comme « thanks », ou formulés sous forme de question
- Des phrases comme « I apologize for the confusion… » ou « You’re welcome! » se retrouvaient parfois mêlées à la réponse
- Le prompt était conçu pour permettre de rejeter les réponses dont le titre était vide
- Il s’agissait d’un mécanisme visant à réduire le problème où ChatGPT incluait comme mention de livre des cas où seul l’auteur était cité, sans titre de livre précis
- Le traitement de 57k commentaires a coûté environ 40 $ avec l’API gpt-3.5-turbo
- Même avec une temperature réglée à 0, les résultats de GPT variaient d’un appel à l’autre
- Des cas de non-déterminisme avec GPT-4 sont connus, mais gpt-3.5-turbo montrait aussi une variabilité plus importante que les anciens modèles GPT-3
- Les liens pouvaient être identifiés dans le texte, mais il fallait supprimer les balises HTML et ne conserver que les URL
- Sinon, GPT récupérait du texte de lien tronqué au lieu de la véritable URL
Format de sortie JSON et conditions du prompt
- Pour un commentaire HN, l’exemple de JSON produit par ChatGPT avait le bon format, mais toutes les valeurs sauf le lien étaient incorrectes
- La sortie est un tableau contenant les champs
match,title,authoretlink - Le prompt inclut les conditions suivantes
- identifier les titres de livres et les auteurs dans le document
- montrer les mots qui ont servi à faire correspondre le titre
- développer les titres abrégés
- laisser
titlevide si seul l’auteur est mentionné et qu’aucun livre ne l’est - renvoyer un tableau vide si le commentaire demande seulement des recommandations sans mentionner de livre
- ne pas inclure les sous-titres
Données publiées et normalisation des titres
- Les données brutes produites par GPT correspondent aux sorties GPT brutes triées par titre
- La colonne
matchcontient un extrait du commentaire où le livre a été identifié
- La colonne
- Les titres de livres font l’objet d’une normalisation
- mise en minuscules
- suppression du « the » au début du titre
- suppression des sous-titres
- Cette normalisation vise à réduire les cas où des entrées disparaissent de la requête des livres les plus populaires à cause d’incohérences de noms produites par GPT
- Les données d’entrée sont fournies au format CSV compressé ; une fois décompressées, elles donnent un fichier de 24 Mo
- Les URL Amazon du tableau incluent un lien d’affiliation Amazon à des fins d’apprentissage
1 commentaires
Avis de Hacker News
ChatGPT en a manqué quelques-uns, et probablement davantage : https://hn.algolia.com/?q=A+non-standard+book+list+for+softw...
Il y en a aussi d’autres dans les commentaires : https://news.ycombinator.com/item?id=30651273
Ce site Web ressemble à une façon astucieuse de générer beaucoup de clics avec des liens d’affiliation Amazon
J’ai découvert Hacker Recommended Books [0a] via HN [0b], puis j’ai commencé à lire les livres qui y figuraient, j’en ai essayé plusieurs et j’en ai lu environ 20. L’expérience a été excellente, j’ai appris beaucoup de choses nouvelles, et certains livres ont élargi ma façon de penser
Si vous aimez les livres, je recommande vivement de chercher simplement books sur HN et de filtrer avec le tag « Ask HN » [1], ou simplement avec « books ». C’est désormais quasiment comme ça que je choisis mes livres en anglais, y compris ceux qui ne sont pas techniques. Je fais ça depuis plus de deux ans, et j’aime vraiment les recommandations de livres de HN
Les fils HN consacrés aux livres accumulent au fil des ans des lectures de grande qualité proposées par de nombreux hackers ; c’est presque une mine d’or. Il y a aussi Hacker News Books [2], et la section Top Books of All Time [3] vaut le détour
[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
J’ai donc choisi une page avec un dé à 15 faces, puis je l’ai relancé pour choisir un livre sur cette page. Le livre que je vais lire est The Very Hungry Caterpillar
Ce n’est pas une critique du site ; c’est plutôt une lamentation sur moi-même, capable d’enregistrer avec de bonnes intentions l’existence de ce genre de service puis de l’oublier
Comment éloigner encore plus un spam de liens d’affiliation Amazon bon marché de la qualité : le générer avec de l’« IA »
Je suis surpris que Code de Charles Petzold ne soit pas dans le top 50. C’est l’un des livres les plus accessibles pour comprendre comment les ordinateurs fonctionnent réellement
J’ai vu beaucoup de mentions de Code sur HN, mais mon échantillon est peut-être biaisé par les liens dont j’ai lu les commentaires
Je suis en train de le lire, et ça prend un temps fou parce que les lumières s’éteignent avant que je dépasse 3 ou 4 pages
La seconde moitié a franchement été difficile. Même si je « comprenais », je n’avais pas correctement mémorisé la première moitié
Cela dit, j’aime l’approche qui consiste à enseigner comme si l’on expliquait à un enfant de 5 ans. De nos jours, les gens ont tendance à expédier les bases sans les voir comme intrinsèquement suffisamment complexes
Il est surprenant que les livres de Knuth ne soient pas dans le top 5, et très surprenant d’y voir les Meditations de Descartes. C’est un livre que plus personne ne lit même en France, donc c’est probablement un résultat mêlé aux posts de HN sur la méditation.
Et Dune a été écrit par Frank Herbert, pas Franck Herbert. Difficile de faire confiance à cet article ; depuis que les LLM se sont généralisés, il est devenu pratiquement impossible de croire quoi que ce soit publié sur Internet
Quel que soit le média ou la publication, il a toujours fallu vérifier l’intégrité des données et des méthodes. La responsabilité de l’auteur et du lecteur n’a pas changé avec l’arrivée des LLM. Si, avant les LLM, on croyait les choses par défaut, il ne fallait pas ; et si, après les LLM, on ne fait plus confiance à des auteurs fiables, c’est aussi un problème
J’en possède quelques volumes, mais on me les a offerts et je ne les ai jamais lus. Donc leur absence du top 5 ne me surprend pas vraiment
Je ne vois pas pourquoi ChatGPT était nécessaire. Algolia et de l’analyse de données auraient suffi ; qu’y avait-il ici de nouveau et de difficile ?
La raison pour laquelle les recommandations de livres de HN sont utiles est plutôt l’inverse. Dans les commentaires qui n’ont pas reçu de tableau de recommandations en dessous, on trouve des livres dont je n’ai jamais entendu parler, et c’est là que réside la valeur. Cette liste des choix populaires est en grande partie prévisible.
Quand on fouille les posts du type « recommandez-moi un livre », on trouve souvent d’excellentes recommandations tout en bas
Suis-je le seul à considérer comme un signal d’alerte le fait que quelqu’un cite How to Win Friends and Influence People parmi ses livres préférés ou les plus influents pour lui ?
Si vous avez déjà un groupe d’amis et que vous ne vous inquiétez pas de le conserver, vous connaissez probablement déjà presque tout ce qui est dans le livre. Ayant grandi en étant toujours isolé, ses conseils m’ont été vraiment utiles. C’était comme un résumé de compétences sociales que j’aurais dû apprendre à 10 ans, mais que je n’avais pas apprises.
Le seul « signal d’alerte » que je vois chez quelqu’un qui mentionne ce livre, c’est qu’il a très probablement été, comme moi, très maladroit socialement à un moment donné. Il l’est peut-être encore, mais au moins il essaie de s’améliorer
La plupart des gens autour de moi n’en ont probablement pas besoin, et peuvent même le trouver un peu idiot. Mais pour moi, cela a été un tournant, et je pense qu’il y a beaucoup de personnes sur HN qui ont vécu quelque chose de similaire
Dans la liste, Meditations semble renvoyer, d’après les données brutes en bas de page, à l’ouvrage de Marcus Aurelius plutôt qu’aux Meditations on First Philosophy de Descartes.
Ce n’est qu’une vérification partielle, pas un audit exhaustif. Dans les données brutes, Descartes est souvent mentionné, mais généralement à propos d’autres œuvres. Je trouve l’erreur intéressante
Une question de plus en plus pertinente à se poser ces temps-ci est la suivante : comment faire cela sans utiliser directement de LLM, voire sans machine learning du tout ? Ensuite, dans un second temps, on peut se demander comment l’aide potentielle d’outils génératifs ou du machine learning pourrait améliorer cette solution
La réalité, c’est qu’il est difficile de susciter intérêt et engagement avec des technologies ennuyeuses
Apprendre à appliquer de nouveaux outils à d’anciens types de tâches est aussi utile et instructif