Phase 3: Daten- und Feature-Engineering
Eine Open-Source-Plattform für Datenmanagement und -annotation in der natürlichen Sprachverarbeitung, die sich auf datenzentrierte Methoden zur Erstellung von NLP-Modellen konzentriert.
Refinery – Das Open-Source-Tool für natürliches Sprachdatenmanagement für Datenwissenschaftler
Projektübersicht
Refinery ist eine von Kern AI entwickelte Open-Source-Plattform für Datenannotation und Trainingsdatenmanagement, die speziell auf Aufgaben der natürlichen Sprachverarbeitung (NLP) zugeschnitten ist. Das Projekt zielt darauf ab, Datenwissenschaftlern zu helfen, "bessere NLP-Modelle zu erstellen, indem sie einen datenzentrierten Ansatz verfolgen" und "Trainingsdaten als Software-Artefakte betrachten".
Kernfunktionen
1. Datenannotierungsfunktionen
- Manuelle und programmatische Annotation: Unterstützt Klassifikations- und Span-Annotierungsaufgaben
- Halbautomatische Annotation: Automatisiert Teile der Annotierungsarbeit durch heuristische Methoden
- Unterstützung für mehrere Aufgaben: Ein einzelnes Projekt kann mehrere Annotierungsaufgaben verarbeiten
2. Datenmanagementfunktionen
- Intelligenter Datenbrowser: Ermöglicht das Filtern, Sortieren und Suchen von Daten nach Konfidenz, heuristischer Überlappung, Benutzer, Annotationen und weiteren Dimensionen
- Datenqualitätsüberwachung: Identifiziert minderwertige Teilmengen in Trainingsdaten
- Projektmetriken-Übersicht: Bietet Konfidenzverteilung, Label-Verteilung und Konfusionsmatrix
3. Integration von maschinellem Lernen
- 🤗 Hugging Face-Integration: Automatische Erstellung von Dokument- und Token-Level-Embeddings
- spaCy-Integration: Nutzung vortrainierter Sprachmodelle
- Neuronale Suche: Abruf ähnlicher Datensätze und Anomalieerkennung basierend auf Qdrant
4. Heuristiken und schwache Supervision
- Annotierungsfunktionen: Erstellung und Verwaltung regelbasierter automatischer Annotierungslogik
- Schwache Supervision: Integration mehrerer verrauschter und unvollkommener Heuristiken
- Wissensdatenbankverwaltung: Erstellung und Verwaltung von Nachschlagetabellen zur Unterstützung des Annotierungsprozesses
5. Kollaborationsfunktionen
- Team-Arbeitsbereich: Mehrbenutzerumgebung (kommerzielle Version)
- Rollenbasierte Zugriffskontrolle: Verwaltung von Benutzerberechtigungen
- Integration von Crowdsourcing-Annotation: Unterstützung externer Annotierungs-Workflows
Technische Architektur
Kerndienste
- embedder: Dienst zur Embedding-Generierung
- weak-supervisor: Dienst für schwache Supervision
- tokenizer: Tokenisierungsdienst
- neural-search: Dienst für neuronale Suche
- ui: Benutzeroberfläche
- gateway: API-Gateway
Drittanbieter-Integrationen
- PostgreSQL: Datenspeicherung
- Minio: Objektspeicher
- MailHog: E-Mail-Dienst
- Ory Kratos: Identitätsmanagement
- Ory Oathkeeper: Zugriffskontrolle
Bibliotheken für maschinelles Lernen
- scikit-learn: Traditionelles maschinelles Lernen
- spaCy: Natürliche Sprachverarbeitung
- Hugging Face Transformers: Vortrainierte Modelle
- Qdrant: Vektordatenbank
Installation und Nutzung
Schnelle Installation
# Installation mit pip
pip install kern-refinery
# Dienste starten
cd your-project-directory
refinery start
# Anwendung aufrufen
# Browser öffnen http://localhost:4455
Manuelle Installation
# Repository klonen
git clone https://github.com/code-kern-ai/refinery.git
cd refinery
# Dienste starten (Mac/Linux)
./start
# Dienste starten (Windows)
start.bat
# Dienste stoppen
./stop # oder stop.bat (Windows)
Unterstützung von Datenformaten
Eingabeformate
- JSON-Dateien
- CSV-Dateien
- Tabellenkalkulationen
- Textdateien
- Generisches JSON-Format
Ausgabeformat
[
{
"running_id": "0",
"headline": "T. Rowe Price (TROW) Dips More Than Broader Markets",
"date": "Jun-30-22 06:00PM ",
"headline__sentiment__MANUAL": null,
"headline__sentiment__WEAK_SUPERVISION": "NEGATIVE",
"headline__sentiment__WEAK_SUPERVISION__confidence": 0.62,
"headline__entities__MANUAL": null,
"headline__entities__WEAK_SUPERVISION": [
"STOCK", "STOCK", "STOCK", "STOCK", "STOCK", "STOCK", "O", "O", "O", "O", "O"
],
"headline__entities__WEAK_SUPERVISION__confidence": [
0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.00, 0.00, 0.00, 0.00, 0.00
]
}
]
Python SDK
Das Projekt bietet ein vollständiges Python SDK, das Folgendes unterstützt:
- Daten-Upload und -Download
- Projektmanagement
- Export von Annotationsdaten
- Adapter für Frameworks wie Rasa
# Daten abrufen
rsdk pull
# Daten pushen
rsdk push <file_name>
Open-Source-Bibliothek bricks
Refinery integriert die Open-Source-bricks-Bibliothek, die Folgendes bietet:
- Vorgefertigte Funktionen zur automatisierten Annotation
- Extraktion von Textmetadaten (Spracherkennung, Satzkomplexität usw.)
- Vorgefertigte Vorlagen für Annotierungsfunktionen
Anwendungsbereiche
Ideale Benutzergruppe
- Entwickler von individuellen NLP-Projekten: Forscher, denen es an ausreichenden Annotationsdaten mangelt
- Team-Kollaborationsprojekte: Teams, die die Qualität von Trainingsdaten verwalten und bewerten müssen
- Ressourcenbeschränkte Projekte: Projekte, die Annotationsressourcen (Personal, Budget, Zeit) optimieren müssen
Hauptanwendungsfälle
- Sentimentanalyse
- Named Entity Recognition
- Textklassifikation
- Informationsextraktion
- Mehrsprachige Textverarbeitung
Geschäftsmodell
- Open-Source-Version: Einzelbenutzerversion, vollständig kostenlos
- Kommerzielle Version: Mehrbenutzerumgebung, bietet Team-Kollaborationsfunktionen
- Unternehmenslösung: On-Premise-Bereitstellung und maßgeschneiderte Dienstleistungen
Community und Support
- Discord-Community: Technische Diskussionen und Support
- GitHub Issues: Problemberichte und Funktionsanfragen
- Dokumentationszentrum: Detaillierte Benutzerhandbücher und Tutorials
- YouTube-Kanal: Video-Tutorials und Demos
Projektvorteile
- Datenzentrierter Ansatz: Fokus auf die Verbesserung der Trainingsdatenqualität statt nur auf die Erhöhung der Datenmenge
- Halbautomatische Annotation: Reduziert den manuellen Annotationsaufwand erheblich
- Skalierbare Architektur: Microservices-Architektur unterstützt flexible Bereitstellung
- Open-Source-Transparenz: Vollständig Open-Source, Community-gesteuerte Entwicklung
- Funktionen auf Unternehmensebene: Unterstützt groß angelegte Bereitstellung und Team-Kollaboration
Lernressourcen
Refinery repräsentiert die Best Practices des modernen NLP-Datenmanagements und bietet Datenwissenschaftlern ein leistungsstarkes und flexibles Tool zur Erstellung hochwertiger Trainingsdatensätze.