2 points par GN⁺ 2023-10-05 | 1 commentaires | Partager sur WhatsApp
  • 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

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, author et link
  • 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 title vide 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 match contient un extrait du commentaire où le livre a été identifié
  • 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

 
GN⁺ 2023-10-05
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

    • Il y a encore des gens qui gagnent de l’argent avec le programme d’affiliation Amazon ? Je pensais que c’était déjà fini il y a une dizaine d’années
  • 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

    • Aujourd’hui, j’ai décidé de commencer à lire un livre recommandé par HN. Sur le lien [0a], j’ai choisi les six derniers mois : il y avait 58 pages de recommandations, avec 15 livres par page
      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
    • https://news.ycombinator.com/item?id=28595967 (« Show HN: 40k HN comments mentioning books, extracted using deep learning ») est excellent, et je l’utilise encore régulièrement
    • « Hacker Recommended Books » avait l’air extrêmement utile, alors j’ai voulu l’ajouter en favori dans mon compte pinboard, et il m’a répondu : « déjà enregistré il y a 2 ans »
      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

    • C’est un livre fantastique pour les gens qui ont du mal à dormir. Je ne savais pas qu’on pouvait rendre un sujet aussi intéressant que les bases du fonctionnement des ordinateurs aussi terne et ennuyeux, ni qu’il fallait autant de mots pour y parvenir
      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
    • Ce livre a un côté « dessinez le reste du cheval ». C’est un excellent livre, mais dans la seconde moitié, l’auteur suppose non seulement qu’on a compris la première, mais aussi qu’on en a mémorisé les composants, de sorte que le reste de l’explication doit tenir dans la mémoire de travail pour avoir du sens
      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
    • J’aime vraiment ce livre. C’est celui que je recommande aux non-techniciens qui veulent comprendre la théorie du fonctionnement de l’ensemble
    • D’après mon site HNLikes.com, c’est le deuxième lien Amazon le plus fréquemment cité dans les commentaires HN
    • Il figure tout en haut de la liste Hacker News All Time Top Books citée plus haut par rito
  • 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

    • Cet article a ajouté les données brutes fournies par GPT, ce qui permet de vérifier l’intégrité des données. Du point de vue de la méthodologie, il est donc fiable.
      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
    • Meditations on First Philosophy de Descartes est l’un des livres les plus importants de l’histoire de la pensée occidentale. Dire que « plus personne ne le lit même en France », c’est un peu comme dire que The Origin of Species n’a aucune importance parce qu’on ne voit personne le lire dans le métro londonien
    • Les ouvrages de Knuth ressemblent, pour l’informatique, à The Power Broker dans le domaine de l’urbanisme : des canons propres à leur secteur, mais des livres que peu de gens ont réellement lus.
      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
    • Le nom de l’auteur de Meditations est incorrect. Le lien mène bien au bon livre, mais il s’agit des Meditations de Marcus Aurelius
    • L’attribution à Descartes semble erronée. Le lien mène vers Marcus Aurelius
  • 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 ?

    • Ce serait formidable d’analyser, à partir des commentaires, les tendances des utilisateurs qui ont recommandé chaque livre. Par exemple, montrer des proportions du type « 80 % des personnes ayant recommandé Ayn Rand sont de droite »
  • 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

    • C’est pareil pour la musique. Il suffit d’aller là où les gens parlent d’un groupe qu’on aime, puis de faire défiler jusqu’à voir des noms qu’on n’a jamais entendus
  • 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 ?

    • Je ne pense pas. Je vois souvent ce genre de réaction chez des gens qui n’ont pas vraiment lu le livre. Ils imaginent que c’est un manuel de manipulation, alors qu’en réalité c’est un guide très basique pour se faire des amis et les garder.
      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
    • Il a un impact énorme pour les personnes souffrant d’anxiété sociale, appartenant au spectre autistique, ou un mélange des deux. Ce livre m’a appris à parler aux gens et m’a fait passer d’une vie marquée par une forte anxiété sociale et l’isolement à une vie où je pouvais parler à d’autres humains et apprendre à les connaître.
      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
    • Non. C’est une lecture solide sur le comportement humain
  • 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

    • J’avais créé une version de ce genre avec des technologies ennuyeuses (Postgres, Django, Python). Elle comptait combien de fois des liens vers des livres, mais aussi des vidéos YouTube, des articles arXiv, etc., apparaissaient dans les commentaires HN, et effectuait aussi divers calculs sur les personnes ayant posté les liens et sur les réponses à ces liens.
      La réalité, c’est qu’il est difficile de susciter intérêt et engagement avec des technologies ennuyeuses
    • Je pense qu’une grande partie des tâches de base réalisées avec les LLM pourraient l’être sans machine learning. Mais ce qui est intéressant, c’est d’apprendre à faire des choses amusantes avec les LLM, et le fait que leur plafond est beaucoup plus élevé que celui des méthodes traditionnelles.
      Apprendre à appliquer de nouveaux outils à d’anciens types de tâches est aussi utile et instructif