AI

Comment résumer et trouver des articles similaires sur ArXiv pour une recherche efficace

An illustration depicting the process of summarizing arXiv articles and finding similar papers.

Introduction

Le volume d'articles de recherche sur des plateformes comme arXiv peut être écrasant pour les chercheurs qui essaient de rester à jour avec les dernières découvertes. Ce tutoriel vise à vous guider à travers le processus de résumé d'articles longs d'arXiv en points clés et d'identification de documents similaires. Ces actions peuvent aider les chercheurs à saisir rapidement l'essence d'un document et à le contextualiser dans le discours académique plus large, garantissant une compréhension complète et évitant les efforts de recherche redondants.

Ce document est divisé en deux parties :

  • Générer les embeddings et construire l'index Annoy
  • Interroger l'index pour obtenir des articles connexes et générer des résumés

Partie 1 : Construction de l'index Annoy

Conditions préalables

Avant de commencer, assurez-vous d'avoir Python 3.9 et pip installés sur votre système.

Étapes

Installation des paquets Python

Installez les paquets Python nécessaires en utilisant pip :

pip install sentence-transformers annoy flask requests

Alternativement, vous pouvez créer un fichier requirements.txt et installer les paquets en utilisant :
pip install -r requirements.txt
avec les contenus suivants :

sentence-transformers
annoy
flask
requests

Jeu de données Kaggle arXiv

Pour continuer, créez un compte Kaggle et téléchargez le jeu de données arXiv avec des métadonnées limitées. Après avoir téléchargé, décompressez le fichier pour trouver un fichier JSON.

Prétraiter les données

Chargez votre jeu de données et prétraitez-le dans le format souhaité. Ici, nous lisons un fichier JSON contenant des métadonnées d'ArXiv et concaténons les titres et les résumés avec un séparateur '[SEP]' :

Générer des embeddings avec SBERT

Initialisez le modèle SBERT et générez des embeddings pour vos données prétraitées. Nous utilisons le modèle allenai-specter, spécialement entraîné pour les documents scientifiques. Pour environ ~2 millions d'articles d'arXiv jusqu'en décembre 2022, cela a pris :

  • RTX 3080 (16 Go) : 8 heures
  • RTX 4090 (16 Go) : 5 heures
  • A100 (80 Go) (dans le cloud) : 1 heure

Ajustez le batch_size en fonction de votre mémoire GPU pour des performances optimales.

Indexer les embeddings avec Annoy

Une fois que vous avez les embeddings, l'étape suivante consiste à les indexer pour une recherche de similarité rapide. Nous utilisons la bibliothèque Annoy en raison de son efficacité :

En cas de non-disponibilité d'un GPU, vous pouvez également utiliser les URL S3 publiques pour télécharger les jeux de données nécessaires :

  • Index Annoy de 2 millions d'articles d'arXiv : S3 URL: https://arxiv-r-1228.s3.us-west-1.amazonaws.com/annoy_index.ann
  • Jeu de données de 2 millions d'articles d'arXiv : S3 URL: https://arxiv-r-1228.s3.us-west-1.amazonaws.com/arxiv-metadata-oai-snapshot.json
  • Fichier numpy d'embeddings : S3 URL: https://arxiv-r-1228.s3.us-west-1.amazonaws.com/embeddings.npy

Partie 2 : Résumer et rechercher des articles similaires sur Arxiv

Description

Cette partie du tutoriel vous guide dans le résumé d'un article long d'arXiv en points clés et l'identification de documents similaires, en utilisant Sentence Transformers pour les embeddings et l'API OpenAI pour la résumation.

Conditions préalables

Avant de continuer, assurez-vous de disposer des éléments suivants :

  • Python 3+
  • Flask pour créer un point de terminaison
  • Connaissances en JSON, Annoy et Sentence Transformers

Étapes

Étape 1 : Configuration et installation des dépendances

Tout d'abord, installez les paquets requis comme mentionné précédemment.

Étape 2 : Charger et prétraiter les métadonnées d'arXiv

Pour résumer et trouver des articles similaires, nous avons besoin des métadonnées du jeu de données. La fonction de prétraitement le fait en chargeant les données JSON, en extrayant les titres et les résumés, et en les combinant en phrases.

Étape 3 : Générer l'index Annoy

Annoy (Approximate Nearest Neighbors Oh Yeah) est utilisé pour rechercher des vecteurs similaires dans de grands ensembles de données. Chargez un index Annoy donné un nom de fichier.

Étape 4 : Fonction de recherche

La fonction de recherche prend une requête, calcule son embedding en utilisant Sentence Transformers, et trouve les correspondances les plus proches dans notre index Annoy.

Étape 5 : Afficher les résultats

Une fois que nous avons trouvé les correspondances les plus proches, formatez et affichez-les à l'utilisateur.

Étape 6 : Utiliser OpenAI pour la résumation

Nous allons utiliser l'API d'OpenAI pour générer un résumé de l'article d'arXiv sélectionné. Le titre, le résumé et le contenu de l'article seront envoyés au modèle d'OpenAI.

Étape 7 : Point de terminaison Flask

Créez un point de terminaison dans Flask qui traite l'URL d'arXiv, résume l'article, recherche des publications similaires et renvoie une réponse HTML formatée.

Étape 8 : Exécution du serveur Flask

Enfin, exécutez votre application Flask et naviguez vers : http://127.0.0.1:5000/search?q=ARXIV_URL, en remplaçant ARXIV_URL par votre URL d'article d'arXiv spécifique.

Conclusion

Félicitations ! Vous avez maintenant créé un outil précieux qui résume les articles d'arXiv et trouve des travaux similaires en fonction de leur contenu. Cet outil peut être étendu avec des fonctionnalités supplémentaires ou intégré dans des applications plus importantes pour aider les chercheurs et les universitaires.

Découvrez d'autres tutoriels d'IA pour différents niveaux de compétence et mettez vos compétences à l'épreuve lors de hackathons IA au sein de la communauté lablab.ai !

Référence du tutoriel :

Dépôt GitHub

Auteur : [Votre nom ici]

En lire plus

AI assistant app structure using Anthropic's Claude and LangChain tutorial.
A professional creating content for LinkedIn using AutoGPT AI tool.

Laisser un commentaire

Tous les commentaires sont modérés avant d'être publiés.

Ce site est protégé par hCaptcha, et la Politique de confidentialité et les Conditions de service de hCaptcha s’appliquent.