C’est toujours un plaisir de voir ce genre de projet. Si vous l’étendez au-delà d’arXiv, il faut garder à l’esprit que la couverture est importante pour les revues de littérature.
Malheureusement, de grands éditeurs comme Elsevier et Springer font pression pour que les résumés soient retirés d’autres index comme OpenAlex, ce qui rend l’accès plus difficile.
Je me demande si vous avez aussi regardé des outils comme undermind.ai, scite.ai et elicit.org.
Au-delà de la recherche, il vaut aussi la peine de réfléchir à ce qu’inclurait un flux produit dédié à la revue de littérature. J’ai travaillé chez scite.ai par le passé.
Il existe PaperMatchBio pour bioRxiv (https://papermatchbio.mitanshu.tech/) et PaperMatchMed pour medRxiv (https://papermatchmed.mitanshu.tech/), mais je suis d’accord pour dire que multiplier les sites par domaine n’est pas idéal.
Je n’ai pas encore mis en place de pipeline de synchronisation pour ces deux-là, donc les résultats peuvent être un peu anciens.
Le fait que de grands éditeurs fassent retirer les résumés risque effectivement de poser un vrai problème pour élargir la couverture.
J’ai regardé undermind.ai, scite.ai et elicit.org, mais peut-être pas assez en profondeur ; je vais les réexaminer et ajouter des fonctionnalités complémentaires.
Je me demande si, par flux de revue de littérature au-delà de la recherche, vous entendez un système de gestion bibliographique comme Mendeley/Zotero.
L’écran de challenge Cloudflare qui apparaît au début est rédhibitoire.
Je me demande pourquoi autant d’articles manquent sur arXiv. Est-ce que les auteurs doivent les soumettre eux-mêmes ? Je trouve souvent des articles de maths, de physique et d’informatique, mais généralement pas ceux de biologie, de chimie ou de médecine.
Une base de données contenant tous les identifiants d’articles existants, avec l’endroit où ils sont disponibles et ceux où ils manquent, serait tout aussi utile. Aucun article ayant bénéficié du moindre financement public ne devrait manquer.
Je me demande pourquoi vous avez utilisé le modèle mixbread.
Je me demande quel gain d’efficacité vous avez obtenu en binarisant les embeddings et en utilisant la distance de Hamming.
Je me demande pourquoi vous avez choisi Milvus plutôt qu’une autre base vectorielle.
Je me demande si la récupération hebdomadaire des métadonnées est automatisée, s’il s’agit simplement d’une tâche cron, ou s’il y a d’autres éléments à coordonner.
En cherchant “transformers on byte level not token level”, les résultats étaient corrects, mais l’article plus récent https://arxiv.org/abs/2412.09871 n’est pas ressorti, alors que beaucoup de personnes pourraient vouloir le trouver.
Il serait aussi utile d’augmenter la densité des résultats. Par exemple, une option d’interface permettant de replier les résumés pour en afficher davantage sur le premier écran serait appréciable.
Avec mes ressources limitées, la taille du modèle était suffisamment réduite pour traiter le corpus assez rapidement. Il prend aussi en charge MRL et les embeddings binaires, ce qui peut aider s’il faut réduire la taille de la VM.
J’ai choisi Milvus à cause de https://benchmark.vectorview.ai/vectordbs.html. J’ai supposé qu’un grand nombre d’étoiles impliquait une communauté plus large, une découverte et une correction plus rapides des bugs, ainsi qu’un meilleur support des fonctionnalités.
La récupération hebdomadaire est automatisée ici : https://huggingface.co/spaces/bluuebunny/update_arxiv_embeddings. Les ressources disponibles étant limitées, j’ai laissé HuggingFace Spaces s’en charger.
Cela dit, comme le Space s’endort sans cesse, je prévois de l’appeler régulièrement via api/gradio_client pour éviter cela.
Vous avez raison sur la fraîcheur des résultats ; je compte ajouter une option de tri par récence. Il faudra trouver un équilibre entre similarité et date de publication.
Je vais aussi regarder le repli des résumés et l’amélioration de la densité des résultats.
Excellent. J’ai essayé quelques requêtes et les résultats sémantiques étaient plutôt bons.
Cela dit, si cela doit faire partie de mon flux de travail quotidien à la place d’outils comme Google Scholar, j’aimerais pouvoir voir comment les articles ont été évalués et cités. Il existe des choses comme OpenReview, avec cet exemple : https://openreview.net/forum?id=jhKbnNhwhc.
Il serait aussi utile d’avoir une fonction du type « raconte-moi ça pour que je puisse rattraper rapidement mon retard » sur un ensemble d’articles. Les modèles génératifs peuvent aider ; en gros, j’aimerais qu’ils rédigent un paragraphe avec citations, du genre de ceux qu’on mettrait dans une revue de littérature ou une section travaux connexes.
Je ne connaissais pas OpenReview. J’aime bien la transparence que cela apporte, donc je vais clairement envisager son intégration.
Faire écrire par un modèle la section d’introduction est aussi un bon retour. J’essayais de garder ce moteur de recherche un peu plus traditionnel, mais si les résultats sont bons, c’est peut-être la direction à prendre.
Il y a quelques années, avant le boom des LLM, quand j’ai utilisé une base de données vectorielle de taille comparable (gensim/doc2vec), il était possible de faire de la recherche vectorielle par simple force brute avec des instructions comme SSE ou AVX.
Il suffit de l’écrire en C et d’y ajouter une API Python. Si les données font quelques Go, la force brute en CPU en temps réel reste possible et peut passer sous les 200 ms.
C’est un problème intéressant, je l’ai ajouté à ma liste de TODO.
Excellent projet.
J’ai récemment créé une base de données d’embeddings avec le jeu de données arXiv : https://huggingface.co/NeuML/txtai-arxiv
Si la recherche bibliographique vous intéresse, il existe aussi quelques projets connexes.
annotateai(https://github.com/neuml/annotateai) annote les articles avec un LLM et prend en charge la recherche dans la base arXiv ci-dessus.
paperai(https://github.com/neuml/paperai) fournit une recherche sémantique et des workflows pour les articles médicaux et scientifiques, et repose sur txtai(https://github.com/neuml/txtai).
paperetl(https://github.com/neuml/paperetl) est un processus ETL pour les articles médicaux et scientifiques, avec prise en charge des documents PDF complets.
Ils ont l’air d’être de bons projets, je vais clairement y jeter un œil.
paperetl est chouette. Je l’ai mis de côté pour plus tard. J’avais fait quelque chose de similaire en interne avec grobid il y a quelque temps, un excellent projet créé par patrice.
Chaque fois que la recherche sémantique est appliquée, j’aimerais voir quels avantages elle apporte par rapport à la recherche textuelle.
Je me demande s’il existe des benchmarks permettant de vérifier si la recherche s’améliore réellement. Je me demande aussi, de façon subjective, si elle a mieux fait émerger de nouveaux articles, ou si elle est plus utile dans certains domaines.
L’avantage dépend entièrement des capacités du modèle d’embedding. Les embeddings sémantiques comprennent les nuances, ce qui permet de trouver des résumés conceptuellement pertinents même s’ils ne contiennent pas exactement les mêmes mots-clés.
Par exemple, « neural networks » et « deep learning » peuvent, et devraient, ramener des articles similaires.
Subjectivement, je dirais que oui. Je l’ai partagé avec des collègues, qui m’ont dit que cela les avait aidés à trouver de nouveaux auteurs et articles dans leur domaine pendant la préparation de leurs manuscrits.
Quant à savoir si c’est plus utile dans certains domaines, je ne pense pas être en mesure d’y répondre.
Un facteur est la manière dont l’utilisateur formule sa requête. Les gens sont dans une certaine mesure habitués à la recherche experte, mais la recherche sémantique brille lorsqu’on pose des questions littérales dont les termes ne correspondent pas forcément à ceux de la réponse.
Je me demande quels autres bons domaines pourraient bénéficier de la recherche sémantique. Cela fait longtemps que j’ai envie de créer une webapp de ce type.
L’idée qui me vient pour l’instant est un moteur de recherche de publicités en ligne pour marketeurs : intégrer et indexer des pubs vidéo et image afin de trouver de l’inspiration marketing via une recherche en langage naturel.
Il y a aussi la recherche shopping couvrant plusieurs plateformes d’e-commerce comme Sephora, Zara ou H&M.
Mais je ne sais pas si l’un ou l’autre constitue un problème business suffisamment intéressant à résoudre.
Recherche rapide dans la documentation interne. Presque toutes les entreprises en ont besoin. Parcourir une hiérarchie de type système de fichiers est lent, limité et dépassé.
Recherche rapide dans le code, capable de trouver les passages pertinents même si les commentaires sont formulés différemment.
J’aimerais qu’on arrête d’améliorer l’ad tech. Quelqu’un d’autre le fera peut-être, mais vous n’êtes pas obligé de le faire.
C’est plus proche de ce qu’a commenté triilman, mais tous les composants sont open source. Je prévois d’ajouter bientôt la prise en charge des filtres et des mots-clés. En fait, j’attends Milvus.
Super idée.
En retour, j’ai recherché « wave function collapse algorithm », « gumin wave function collapse », « wfc » et « model synthesis », mais je n’ai pas obtenu de résultats pertinents pour le domaine de recherche qui m’intéressait. Beaucoup d’articles sur l’informatique quantique et d’autres articles de physique sont apparus. WFC algorithm est peut-être un mauvais exemple pour ce type de recherche, car le terme est utilisé avec plusieurs sens et n’a rien à voir avec la mécanique quantique. Model synthesis est peut-être aussi un mauvais exemple, car c’est trop général.
Sur arXiv lui-même, la première page de recherche pour « wave function collapse algorithm » affiche des résultats pertinents.
arXiv est un moteur de recherche basé sur les mots-clés, il cherche donc littéralement les mots dans le texte. PaperMatch essaie de trouver des articles similaires qui sont plus proches sur le plan sémantique.
Une autre approche consiste à prendre un article que vous aimez, à copier son résumé ou son identifiant arXiv depuis arXiv, puis à le coller dans PaperMatch ; cela devrait aider à trouver des articles similaires.
1 commentaires
Avis sur Hacker News
C’est toujours un plaisir de voir ce genre de projet. Si vous l’étendez au-delà d’arXiv, il faut garder à l’esprit que la couverture est importante pour les revues de littérature.
Malheureusement, de grands éditeurs comme Elsevier et Springer font pression pour que les résumés soient retirés d’autres index comme OpenAlex, ce qui rend l’accès plus difficile.
Je me demande si vous avez aussi regardé des outils comme undermind.ai, scite.ai et elicit.org.
Au-delà de la recherche, il vaut aussi la peine de réfléchir à ce qu’inclurait un flux produit dédié à la revue de littérature. J’ai travaillé chez scite.ai par le passé.
Je n’ai pas encore mis en place de pipeline de synchronisation pour ces deux-là, donc les résultats peuvent être un peu anciens.
Le fait que de grands éditeurs fassent retirer les résumés risque effectivement de poser un vrai problème pour élargir la couverture.
J’ai regardé undermind.ai, scite.ai et elicit.org, mais peut-être pas assez en profondeur ; je vais les réexaminer et ajouter des fonctionnalités complémentaires.
Je me demande si, par flux de revue de littérature au-delà de la recherche, vous entendez un système de gestion bibliographique comme Mendeley/Zotero.
Je me demande pourquoi autant d’articles manquent sur arXiv. Est-ce que les auteurs doivent les soumettre eux-mêmes ? Je trouve souvent des articles de maths, de physique et d’informatique, mais généralement pas ceux de biologie, de chimie ou de médecine.
Une base de données contenant tous les identifiants d’articles existants, avec l’endroit où ils sont disponibles et ceux où ils manquent, serait tout aussi utile. Aucun article ayant bénéficié du moindre financement public ne devrait manquer.
En cherchant “transformers on byte level not token level”, les résultats étaient corrects, mais l’article plus récent https://arxiv.org/abs/2412.09871 n’est pas ressorti, alors que beaucoup de personnes pourraient vouloir le trouver.
Il serait aussi utile d’augmenter la densité des résultats. Par exemple, une option d’interface permettant de replier les résumés pour en afficher davantage sur le premier écran serait appréciable.
Cela dit, comme le Space s’endort sans cesse, je prévois de l’appeler régulièrement via api/gradio_client pour éviter cela.
Vous avez raison sur la fraîcheur des résultats ; je compte ajouter une option de tri par récence. Il faudra trouver un équilibre entre similarité et date de publication.
Je vais aussi regarder le repli des résumés et l’amélioration de la densité des résultats.
Excellent. J’ai essayé quelques requêtes et les résultats sémantiques étaient plutôt bons.
Cela dit, si cela doit faire partie de mon flux de travail quotidien à la place d’outils comme Google Scholar, j’aimerais pouvoir voir comment les articles ont été évalués et cités. Il existe des choses comme OpenReview, avec cet exemple : https://openreview.net/forum?id=jhKbnNhwhc.
Il serait aussi utile d’avoir une fonction du type « raconte-moi ça pour que je puisse rattraper rapidement mon retard » sur un ensemble d’articles. Les modèles génératifs peuvent aider ; en gros, j’aimerais qu’ils rédigent un paragraphe avec citations, du genre de ceux qu’on mettrait dans une revue de littérature ou une section travaux connexes.
Faire écrire par un modèle la section d’introduction est aussi un bon retour. J’essayais de garder ce moteur de recherche un peu plus traditionnel, mais si les résultats sont bons, c’est peut-être la direction à prendre.
Il y a quelques années, avant le boom des LLM, quand j’ai utilisé une base de données vectorielle de taille comparable (gensim/doc2vec), il était possible de faire de la recherche vectorielle par simple force brute avec des instructions comme SSE ou AVX.
Il suffit de l’écrire en C et d’y ajouter une API Python. Si les données font quelques Go, la force brute en CPU en temps réel reste possible et peut passer sous les 200 ms.
Excellent projet.
J’ai récemment créé une base de données d’embeddings avec le jeu de données arXiv : https://huggingface.co/NeuML/txtai-arxiv
Si la recherche bibliographique vous intéresse, il existe aussi quelques projets connexes.
annotateai(https://github.com/neuml/annotateai) annote les articles avec un LLM et prend en charge la recherche dans la base arXiv ci-dessus.
paperai(https://github.com/neuml/paperai) fournit une recherche sémantique et des workflows pour les articles médicaux et scientifiques, et repose sur txtai(https://github.com/neuml/txtai).
paperetl(https://github.com/neuml/paperetl) est un processus ETL pour les articles médicaux et scientifiques, avec prise en charge des documents PDF complets.
Pour info, txtai a publié des embeddings arXiv il y a 8 jours.
https://huggingface.co/NeuML/txtai-arxiv
Chaque fois que la recherche sémantique est appliquée, j’aimerais voir quels avantages elle apporte par rapport à la recherche textuelle.
Je me demande s’il existe des benchmarks permettant de vérifier si la recherche s’améliore réellement. Je me demande aussi, de façon subjective, si elle a mieux fait émerger de nouveaux articles, ou si elle est plus utile dans certains domaines.
Par exemple, « neural networks » et « deep learning » peuvent, et devraient, ramener des articles similaires.
Subjectivement, je dirais que oui. Je l’ai partagé avec des collègues, qui m’ont dit que cela les avait aidés à trouver de nouveaux auteurs et articles dans leur domaine pendant la préparation de leurs manuscrits.
Quant à savoir si c’est plus utile dans certains domaines, je ne pense pas être en mesure d’y répondre.
Je me demande quels autres bons domaines pourraient bénéficier de la recherche sémantique. Cela fait longtemps que j’ai envie de créer une webapp de ce type.
L’idée qui me vient pour l’instant est un moteur de recherche de publicités en ligne pour marketeurs : intégrer et indexer des pubs vidéo et image afin de trouver de l’inspiration marketing via une recherche en langage naturel.
Il y a aussi la recherche shopping couvrant plusieurs plateformes d’e-commerce comme Sephora, Zara ou H&M.
Mais je ne sais pas si l’un ou l’autre constitue un problème business suffisamment intéressant à résoudre.
Je me demande si c’est similaire à https://www.semanticscholar.org de l’Allen Institute for AI.
Super idée.
En retour, j’ai recherché « wave function collapse algorithm », « gumin wave function collapse », « wfc » et « model synthesis », mais je n’ai pas obtenu de résultats pertinents pour le domaine de recherche qui m’intéressait. Beaucoup d’articles sur l’informatique quantique et d’autres articles de physique sont apparus.
WFC algorithm est peut-être un mauvais exemple pour ce type de recherche, car le terme est utilisé avec plusieurs sens et n’a rien à voir avec la mécanique quantique. Model synthesis est peut-être aussi un mauvais exemple, car c’est trop général.
Sur arXiv lui-même, la première page de recherche pour « wave function collapse algorithm » affiche des résultats pertinents.
Une autre approche consiste à prendre un article que vous aimez, à copier son résumé ou son identifiant arXiv depuis arXiv, puis à le coller dans PaperMatch ; cela devrait aider à trouver des articles similaires.