Troisième étape : Données et ingénierie des caractéristiques

Plateforme open source de gestion et d'annotation de données en langage naturel, axée sur les méthodes de construction de modèles NLP centrées sur les données.

DataLabelingNLPWeakSupervisionGitHubTextFreeEnglish

Refinery - L'outil open source de gestion de données linguistiques naturelles pour les scientifiques de données

Aperçu du projet

Refinery est une plateforme open source d'annotation et de gestion de données d'entraînement développée par Kern AI, spécifiquement conçue pour les tâches de traitement du langage naturel (TLN). Ce projet vise à aider les scientifiques de données à "construire de meilleurs modèles de TLN en adoptant une approche centrée sur les données" et à "considérer les données d'entraînement comme des artefacts logiciels".

Caractéristiques principales

1. Fonctionnalités d'annotation de données

  • Annotation manuelle et programmatique : Prend en charge les tâches d'annotation de classification et d'étendue.
  • Annotation semi-automatisée : Automatise une partie du travail d'annotation grâce à des méthodes heuristiques.
  • Prise en charge multi-tâches : Un seul projet peut gérer plusieurs tâches d'annotation.

2. Capacités de gestion de données

  • Explorateur de données intelligent : Permet de filtrer, trier et rechercher des données par confiance, chevauchement heuristique, utilisateur, annotation, etc.
  • Surveillance de la qualité des données : Identifie les sous-ensembles de mauvaise qualité dans les données d'entraînement.
  • Aperçu des métriques du projet : Fournit des distributions de confiance, des distributions d'étiquettes et des matrices de confusion.

3. Intégration de l'apprentissage automatique

  • Intégration 🤗 Hugging Face : Crée automatiquement des embeddings au niveau du document et du token.
  • Intégration spaCy : Utilise des modèles de langage pré-entraînés.
  • Recherche neuronale : Récupération d'enregistrements similaires et détection d'anomalies basée sur Qdrant.

4. Heuristiques et supervision faible

  • Fonctions d'annotation : Crée et gère la logique d'annotation automatique basée sur des règles.
  • Apprentissage par supervision faible : Intègre plusieurs heuristiques bruyantes et imparfaites.
  • Gestion de la base de connaissances : Crée et gère des listes de recherche pour soutenir le processus d'annotation.

5. Fonctionnalités collaboratives

  • Espace de travail d'équipe : Environnement multi-utilisateurs (version commerciale).
  • Contrôle d'accès basé sur les rôles : Gère les permissions des utilisateurs.
  • Intégration de l'annotation participative (crowdsourcing) : Prend en charge les flux de travail d'annotation externes.

Architecture technique

Services principaux

- embedder: service de génération d'embeddings
- weak-supervisor: service d'apprentissage par supervision faible
- tokenizer: service de tokenisation
- neural-search: service de recherche neuronale
- ui: interface utilisateur
- gateway: passerelle API

Intégrations tierces

- PostgreSQL: stockage de données
- Minio: stockage d'objets
- MailHog: service de messagerie
- Ory Kratos: gestion d'identité
- Ory Oathkeeper: contrôle d'accès

Bibliothèques d'apprentissage automatique

- scikit-learn: apprentissage automatique traditionnel
- spaCy: traitement du langage naturel
- Hugging Face Transformers: modèles pré-entraînés
- Qdrant: base de données vectorielle

Installation et utilisation

Installation rapide

# Installer avec pip
pip install kern-refinery

# Démarrer le service
cd your-project-directory
refinery start

# Accéder à l'application
# Ouvrir http://localhost:4455 dans votre navigateur

Installation manuelle

# Cloner le dépôt
git clone https://github.com/code-kern-ai/refinery.git
cd refinery

# Démarrer le service (Mac/Linux)
./start

# Démarrer le service (Windows)
start.bat

# Arrêter le service
./stop  # Ou stop.bat (Windows)

Prise en charge des formats de données

Formats d'entrée

  • Fichiers JSON
  • Fichiers CSV
  • Tableurs
  • Fichiers texte
  • Format JSON générique

Format de sortie

[
  {
    "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
    ]
  }
]

SDK Python

Le projet fournit un SDK Python complet, prenant en charge :

  • Le téléchargement et le téléversement de données
  • La gestion de projets
  • L'exportation de données annotées
  • Des adaptateurs pour des frameworks comme Rasa
# Récupérer les données
rsdk pull

# Envoyer les données
rsdk push <file_name>

Bibliothèque open source bricks

Refinery intègre la bibliothèque open source bricks, offrant :

  • Des fonctionnalités d'annotation automatique prêtes à l'emploi
  • L'extraction de métadonnées textuelles (détection de langue, complexité de phrase, etc.)
  • Des modèles de fonctions d'annotation pré-construits

Scénarios d'utilisation

Groupes d'utilisateurs idéaux

  1. Développeurs de projets TLN individuels : Chercheurs manquant de données annotées suffisantes.
  2. Projets de collaboration en équipe : Équipes ayant besoin de gérer et d'évaluer la qualité des données d'entraînement.
  3. Projets à ressources limitées : Projets nécessitant d'optimiser les ressources d'annotation (main-d'œuvre, budget, temps).

Cas d'utilisation principaux

  • Analyse des sentiments
  • Reconnaissance d'entités nommées
  • Classification de texte
  • Extraction d'informations
  • Traitement de texte multilingue

Modèle économique

  • Version open source : Version mono-utilisateur, entièrement gratuite.
  • Version commerciale : Environnement multi-utilisateurs, offrant des fonctionnalités de collaboration d'équipe.
  • Solution d'entreprise : Déploiement sur site et services personnalisés.

Communauté et support

  • Communauté Discord : Discussions techniques et support.
  • GitHub Issues : Rapports de problèmes et demandes de fonctionnalités.
  • Centre de documentation : Guides d'utilisation détaillés et tutoriels.
  • Chaîne YouTube : Tutoriels vidéo et démonstrations.

Avantages du projet

  1. Approche centrée sur les données : Se concentre sur l'amélioration de la qualité des données d'entraînement plutôt que sur la simple augmentation de la quantité.
  2. Annotation semi-automatisée : Réduit considérablement la charge de travail d'annotation manuelle.
  3. Architecture évolutive : L'architecture de microservices prend en charge un déploiement flexible.
  4. Open source et transparent : Entièrement open source, développement piloté par la communauté.
  5. Fonctionnalités de niveau entreprise : Prend en charge le déploiement à grande échelle et la collaboration d'équipe.

Ressources d'apprentissage

Refinery représente les meilleures pratiques modernes en matière de gestion des données TLN, offrant aux scientifiques de données un outil puissant et flexible pour construire des ensembles de données d'entraînement de haute qualité.