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.

DataLabelingNLPWeakSupervisionGitHubTextFreeEnglish

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

  1. Entwickler von individuellen NLP-Projekten: Forscher, denen es an ausreichenden Annotationsdaten mangelt
  2. Team-Kollaborationsprojekte: Teams, die die Qualität von Trainingsdaten verwalten und bewerten müssen
  3. 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

  1. Datenzentrierter Ansatz: Fokus auf die Verbesserung der Trainingsdatenqualität statt nur auf die Erhöhung der Datenmenge
  2. Halbautomatische Annotation: Reduziert den manuellen Annotationsaufwand erheblich
  3. Skalierbare Architektur: Microservices-Architektur unterstützt flexible Bereitstellung
  4. Open-Source-Transparenz: Vollständig Open-Source, Community-gesteuerte Entwicklung
  5. 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.