Einführung
Das Volumen an Forschungsartikeln auf Plattformen wie arXiv kann überwältigend sein für Wissenschaftler, die versuchen, mit den neuesten Erkenntnissen Schritt zu halten. Dieses Tutorial wird Sie durch den Prozess führen, lange arXiv-Artikel in wichtige Punkte zusammenzufassen und ähnliche Arbeiten zu identifizieren. Diese Maßnahmen können Forschern helfen, das Wesentliche eines Artikels schnell zu erfassen und ihn im Rahmen des breiteren akademischen Diskurses zu kontextualisieren, um ein umfassendes Verständnis zu gewährleisten und redundante Forschungsanstrengungen zu vermeiden.
Dieser Artikel ist in zwei Teile unterteilt:
- Generierung der Embeddings und Erstellung des Annoy-Index
- Abfragen des Index zur Ermittlung verwandter Arbeiten und Erstellung von Zusammenfassungen
Teil 1: Annoy-Index erstellen
Voraussetzungen
Stellen Sie vor Beginn sicher, dass Sie Python 3.9 und pip auf Ihrem System installiert haben.
Schritte
1. Installation der Python-Pakete
Installieren Sie die erforderlichen Python-Pakete mit pip: pip install sentence-transformers annoy
. Alternativ können Sie eine requirements.txt
-Datei erstellen und die Pakete mit dem Befehl pip install -r requirements.txt
installieren.
2. Kaggle arXiv-Datensatz
Um fortzufahren, erstellen Sie ein Kaggle-Konto und laden Sie den arXiv-Datensatz mit eingeschränkten Metadaten herunter. Nach dem Herunterladen entpacken Sie die Datei, um eine JSON-Datei zu finden.
3. Daten vorverarbeiten
Laden Sie Ihren Datensatz und verarbeiten Sie ihn mit Python in das gewünschte Format vor. Lesen Sie die JSON-Datei mit arXiv-Metadaten und verketten Sie Titel und Abstracts mit einem '[SEP]'-Separator:
4. Embeddings mit SBERT generieren
Initialisieren Sie das SBERT-Modell (in diesem Fall das allenai-specter
-Modell) und generieren Sie Embeddings für Ihre vorverarbeiteten Daten. Für ca. ~2 Millionen Artikel von arXiv bis Dezember 2022 dauerte dies:
- 8+ Stunden auf RTX3080
- 6 Stunden auf RTX4090
- 1.5 Stunden auf A100 (Cloud)
5. Embeddings mit Annoy indexieren
Sobald Sie die Embeddings haben, können Sie sie mithilfe der Annoy-Bibliothek für eine schnelle Ähnlichkeitssuche indexieren. Wenn Sie keine GPU haben und mit der Verwendung des arXiv-Schnappschusses bis Dezember 2022 einverstanden sind, können Sie die erforderlichen Datensätze von den folgenden öffentlichen S3-URLs herunterladen:
- annoy_index.ann: Annoy-Index von 2M arXiv-Artikeln
- arxiv-metadata-oai-snapshot.json: Datensatz von 2M arXiv-Artikeln
- embeddings.npy: Numpy-Datei mit Embeddings, die alle 2M Artikel enthalten
Teil 2: Zusammenfassen und nach ähnlichen Artikeln auf arXiv suchen
Beschreibung
Dieses Tutorial wird Sie durch den Prozess führen, einen langen arXiv-Artikel in Schlüsselstellen zusammenzufassen, eine Idee basierend darauf zu generieren und ähnliche Arbeiten zu identifizieren. Wir werden Sentence Transformers für Embeddings, Annoy für die Indexierung und die OpenAI-API zur Erstellung der Zusammenfassung nutzen.
Voraussetzungen
Stellen Sie vor dem Fortfahren sicher, dass Sie:
- Python 3+
- Flask zum Erstellen eines Endpunkts
- Kenntnisse über JSON, Annoy und Sentence Transformers
Schritte
Schritt 1: Einrichten und Abhängigkeiten installieren
Installieren Sie zunächst die erforderlichen Pakete mit pip:
pip install Flask requests
Schritt 2: Laden und Vorverarbeiten von arXiv-Metadaten
Um Artikel zusammenzufassen und ähnliche Artikel zu finden, benötigen wir die Metadaten des Datensatzes. Verwenden Sie eine Vorverarbeitungsfunktion, um die JSON-Daten zu laden, Titel und Abstracts zu extrahieren und sie in Sätze zu kombinieren.
Schritt 3: Annoy-Index generieren
Verwenden Sie Annoy (Approximate Nearest Neighbors Oh Yeah), um einen Index zu laden, um in großen Datensätzen nach ähnlichen Vektoren zu suchen.
Schritt 4: Suchfunktion
Erstellen Sie eine Suchfunktion, die eine Abfrage entgegennimmt, deren Embedding mit Sentence Transformers berechnet und die nächstgelegenen Übereinstimmungen im Annoy-Index findet.
Schritt 5: Ergebnisse anzeigen
Sobald Sie die nächsten Übereinstimmungen gefunden haben, stellen Sie sicher, dass sie ordnungsgemäß formatiert und angezeigt werden.
Schritt 6: Verwendung von OpenAI für die Zusammenfassung
Verwenden Sie die OpenAI-API, um eine Zusammenfassung des arXiv-Artikels zu erstellen. Senden Sie den Titel, den Abstract und andere relevante Inhalte des Artikels an das OpenAI-Modell.
Schritt 7: Flask-Endpunkt
Erstellen Sie einen Flask-Endpunkt, der die arXiv-URL verarbeitet, den Artikel zusammenfasst, nach ähnlichen Artikeln sucht und die Antwort zurückgibt.
Schritt 8: Flask-Server ausführen
Führen Sie Ihre Flask-Anwendung aus und navigieren Sie zu: http://127.0.0.1:5000/search?q=ARXIV_URL
(ersetzen Sie ARXIV_URL durch die gewünschte arXiv-Artikelseite).
Fazit
Sie haben jetzt ein Tool erstellt, das arXiv-Artikel zusammenfasst und ähnliche Artikel basierend auf ihrem Inhalt findet. Dieses Tool kann mit zusätzlichen Funktionen erweitert oder in größere Anwendungen integriert werden, um Forschern und Akademikern zu helfen.
Erforschen Sie weitere AI-Tutorials für alle Erfahrungsstufen und testen Sie Ihre Fähigkeiten bei AI-Hackathons in der lablab.ai-Community!
Hinterlasse einen Kommentar
Alle Kommentare werden vor der Veröffentlichung geprüft.
Diese Website ist durch hCaptcha geschützt und es gelten die allgemeinen Geschäftsbedingungen und Datenschutzbestimmungen von hCaptcha.