Einführung
Das Volumen an Forschungsartikeln auf Plattformen wie arXiv kann überwältigend sein für Wissenschaftler, die versuchen, mit den neuesten Ergebnissen Schritt zu halten. Dieses Tutorial soll Ihnen den Prozess des Zusammenfassens von langen arXiv-Artikeln in zentrale Punkte und die Identifizierung ähnlicher Arbeiten näherbringen. Diese Maßnahmen können Forschern helfen, die Essenz eines Papiers schnell zu erfassen und es im Kontext der breiteren akademischen Diskussion zu verorten, um ein umfassendes Verständnis sicherzustellen und redundante Forschungsanstrengungen zu vermeiden.
Dieser Artikel ist in zwei Teile gegliedert:
- Erzeugen der Embeddings und Erstellen des Annoy-Index
- Abfragen des Index zur Auffindung verwandter Artikel und Erzeugen von Zusammenfassungen
Teil 1: Erstellen des Annoy-Index
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Sie Python 3.9 und pip auf Ihrem System installiert haben.
Schritte
Installation der Python-Pakete
Installieren Sie die erforderlichen Python-Pakete mit pip:
pip install sentence-transformers annoy flask requests
Alternativ können Sie eine requirements.txt
-Datei erstellen und die Pakete mit:
pip install -r requirements.txt
und den folgenden Inhalten installieren:
sentence-transformers
annoy
flask
requests
Kaggle arXiv-Datensatz
Um fortzufahren, erstellen Sie ein Kaggle-Konto und laden Sie den arXiv-Datensatz mit begrenzten Metadaten herunter. Nach dem Herunterladen entpacken Sie die Datei, um eine JSON-Datei zu finden.
Daten vorverarbeiten
Laden Sie Ihren Datensatz und verarbeiten Sie ihn in das gewünschte Format vor. Hier lesen wir eine JSON-Datei mit ArXiv-Metadaten und verketten die Titel und Abstracts mit einem '[SEP]'-Trennzeichen:
Embeddings mit SBERT erzeugen
Initialisieren Sie das SBERT-Modell und erzeugen Sie Embeddings für Ihre vorverarbeiteten Daten. Wir verwenden das allenai-specter-Modell, das speziell für wissenschaftliche Arbeiten trainiert wurde. Für etwa ~2 Millionen Artikel von arXiv bis Dezember 2022 benötigte es:
- RTX 3080 (16GB): 8 Stunden
- RTX 4090 (16 GB): 5 Stunden
- A100 (80 GB) (in der Cloud): 1 Stunde
Passen Sie die batch_size
basierend auf dem GPU-Speicher für optimale Leistung an.
Index-Embeddings mit Annoy
Sobald Sie die Embeddings haben, ist der nächste Schritt, sie für eine schnelle Ähnlichkeitssuche zu indizieren. Wir verwenden die Annoy-Bibliothek wegen ihrer Effizienz:
Falls Sie keine GPU haben, können Sie auch öffentliche S3-URLs verwenden, um die notwendigen Datensätze herunterzuladen:
-
Annoy-Index von 2 Millionen arXiv-Artikeln:
S3 URL: https://arxiv-r-1228.s3.us-west-1.amazonaws.com/annoy_index.ann
-
Datensatz von 2 Millionen arXiv-Artikeln:
S3 URL: https://arxiv-r-1228.s3.us-west-1.amazonaws.com/arxiv-metadata-oai-snapshot.json
-
Embedding-Numpy-Datei:
S3 URL: https://arxiv-r-1228.s3.us-west-1.amazonaws.com/embeddings.npy
Teil 2: Zusammenfassen und Suchen nach ähnlichen Artikeln auf Arxiv
Beschreibung
Dieser Teil des Tutorials führt Sie durch das Zusammenfassen eines langen arXiv-Artikels in zentrale Punkte und die Identifizierung ähnlicher Arbeiten, unter Verwendung von Sentence Transformers für Embeddings und der OpenAI-API für die Zusammenfassung.
Voraussetzungen
Bevor Sie fortfahren, stellen Sie sicher, dass Sie Folgendes haben:
- Python 3+
- Flask zum Erstellen eines Endpunkts
- Kenntnisse in JSON, Annoy und Sentence Transformers
Schritte
Schritt 1: Einrichten und Installieren der Abhängigkeiten
Zuerst installieren Sie die erforderlichen Pakete, wie bereits erwähnt.
Schritt 2: Laden und Vorverarbeiten der arXiv-Metadaten
Um ähnliche Artikel zusammenzufassen und zu finden, benötigen wir die Metadaten des Datensatzes. Die Vorverarbeitungsfunktion erledigt dies, indem sie die JSON-Daten lädt, Titel und Abstracts extrahiert und sie zu Sätzen kombiniert.
Schritt 3: Annoy-Index erzeugen
Annoy (Approximate Nearest Neighbors Oh Yeah) wird verwendet, um ähnliche Vektoren in großen Datensätzen zu suchen. Laden Sie einen Annoy-Index mit einem Dateinamen.
Schritt 4: Suchfunktion
Die Suchfunktion nimmt eine Abfrage entgegen, berechnet deren Embedding mit Sentence Transformers und findet die nächstgelegenen Übereinstimmungen in unserem Annoy-Index.
Schritt 5: Ergebnisse anzeigen
Sobald wir die nächstgelegenen Übereinstimmungen gefunden haben, formatieren und zeigen wir diese dem Benutzer an.
Schritt 6: Verwendung von OpenAI zur Zusammenfassung
Wir werden die API von OpenAI verwenden, um eine Zusammenfassung des ausgewählten arXiv-Artikels zu erstellen. Der Titel, der Abstract und der Inhalt des Artikels werden an das Modell von OpenAI gesendet.
Schritt 7: Flask-Endpunkt
Erstellen Sie einen Endpunkt in Flask, der die arXiv-URL verarbeitet, den Artikel zusammenfasst, nach ähnlichen Publikationen sucht und eine formatierte HTML-Antwort zurückgibt.
Schritt 8: Flask-Server ausführen
Führen Sie schließlich Ihre Flask-Anwendung aus und navigieren Sie zu: http://127.0.0.1:5000/search?q=ARXIV_URL
, wobei ARXIV_URL
durch Ihre spezifische arXiv-Artikel-URL ersetzt wird.
Fazit
Herzlichen Glückwunsch! Sie haben nun ein wertvolles Werkzeug erstellt, das arXiv-Artikel zusammenfasst und ähnliche Arbeiten basierend auf deren Inhalt findet. Dieses Werkzeug kann mit zusätzlichen Funktionen erweitert oder in größere Anwendungen integriert werden, um Forschern und Akademikern zu helfen.
Entdecken Sie weitere KI-Tutorials für verschiedene Fähigkeitsstufen und stellen Sie Ihre Fähigkeiten bei KI-Hackathons innerhalb der lablab.ai-Community auf die Probe!
Tutorial-Referenz:
Autor: [Ihr Name hier]
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.