Tercera etapa: Datos e ingeniería de características
Plataforma de gestión y etiquetado de datos de lenguaje natural de código abierto, centrada en métodos de construcción de modelos NLP centrados en datos.
Refinery - Herramienta de gestión de datos de lenguaje natural de código abierto para científicos de datos
Resumen del Proyecto
Refinery es una plataforma de gestión de datos de anotación y entrenamiento de código abierto desarrollada por Kern AI, especializada en tareas de Procesamiento de Lenguaje Natural (PLN). El proyecto tiene como objetivo ayudar a los científicos de datos a "construir mejores modelos de PLN adoptando un enfoque centrado en los datos" y a "tratar los datos de entrenamiento como artefactos de software".
Características Principales
1. Funcionalidades de Anotación de Datos
- Anotación manual y programática: Soporta tareas de anotación de clasificación y de tramos (span).
- Anotación semiautomática: Automatiza parte del trabajo de anotación mediante heurísticas.
- Soporte multitarea: Un solo proyecto puede manejar múltiples tareas de anotación.
2. Capacidades de Gestión de Datos
- Explorador de datos inteligente: Permite filtrar, ordenar y buscar datos por dimensiones como confianza, superposición heurística, usuario, anotaciones, etc.
- Monitoreo de calidad de datos: Identifica subconjuntos de baja calidad en los datos de entrenamiento.
- Resumen de métricas del proyecto: Proporciona distribución de confianza, distribución de etiquetas y matriz de confusión.
3. Integración de Aprendizaje Automático
- Integración con 🤗 Hugging Face: Creación automática de incrustaciones (embeddings) a nivel de documento y de token.
- Integración con spaCy: Utiliza modelos de lenguaje preentrenados.
- Búsqueda neuronal: Recuperación de registros similares y detección de anomalías basada en Qdrant.
4. Heurísticas y Supervisión Débil
- Funciones de anotación: Creación y gestión de lógica de anotación automática basada en reglas.
- Aprendizaje por supervisión débil: Integra múltiples heurísticas ruidosas e imperfectas.
- Gestión de bases de conocimiento: Creación y gestión de listas de búsqueda para apoyar el proceso de anotación.
5. Funcionalidades de Colaboración
- Espacio de trabajo en equipo: Entorno multiusuario (versión comercial).
- Control de acceso basado en roles: Gestión de permisos de usuario.
- Integración de anotación colaborativa (crowdsourcing): Soporta flujos de trabajo de anotación externos.
Arquitectura Técnica
Servicios Principales
- embedder: Servicio de generación de incrustaciones
- weak-supervisor: Servicio de aprendizaje por supervisión débil
- tokenizer: Servicio de tokenización
- neural-search: Servicio de búsqueda neuronal
- ui: Interfaz de usuario
- gateway: Pasarela API
Integraciones de Terceros
- PostgreSQL: Almacenamiento de datos
- Minio: Almacenamiento de objetos
- MailHog: Servicio de correo
- Ory Kratos: Gestión de identidad
- Ory Oathkeeper: Control de acceso
Librerías de Aprendizaje Automático
- scikit-learn: Aprendizaje automático tradicional
- spaCy: Procesamiento de lenguaje natural
- Hugging Face Transformers: Modelos preentrenados
- Qdrant: Base de datos vectorial
Instalación y Uso
Instalación Rápida
# Instalar con pip
pip install kern-refinery
# Iniciar el servicio
cd your-project-directory
refinery start
# Acceder a la aplicación
# Abrir en el navegador http://localhost:4455
Instalación Manual
# Clonar el repositorio
git clone https://github.com/code-kern-ai/refinery.git
cd refinery
# Iniciar el servicio (Mac/Linux)
./start
# Iniciar el servicio (Windows)
start.bat
# Detener el servicio
./stop # o stop.bat (Windows)
Soporte de Formatos de Datos
Formatos de Entrada
- Archivos JSON
- Archivos CSV
- Hojas de cálculo
- Archivos de texto
- Formato JSON genérico
Formato de Salida
[
{
"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 de Python
El proyecto proporciona un SDK de Python completo que soporta:
- Carga y descarga de datos
- Gestión de proyectos
- Exportación de datos anotados
- Adaptadores para frameworks como Rasa
# Obtener datos
rsdk pull
# Enviar datos
rsdk push <file_name>
Librería de código abierto bricks
Refinery integra la librería de código abierto bricks, que ofrece:
- Funcionalidades de anotación automática listas para usar
- Extracción de metadatos de texto (detección de idioma, complejidad de la oración, etc.)
- Plantillas de funciones de anotación preconstruidas
Casos de Uso
Grupo de Usuarios Ideal
- Desarrolladores de proyectos de PLN individuales: Investigadores que carecen de suficientes datos anotados.
- Proyectos de colaboración en equipo: Equipos que necesitan gestionar y evaluar la calidad de los datos de entrenamiento.
- Proyectos con recursos limitados: Proyectos que necesitan optimizar los recursos de anotación (mano de obra, presupuesto, tiempo).
Casos de Uso Principales
- Análisis de sentimientos
- Reconocimiento de entidades nombradas
- Clasificación de texto
- Extracción de información
- Procesamiento de texto multilingüe
Modelo de Negocio
- Versión de código abierto: Versión para un solo usuario, completamente gratuita.
- Versión comercial: Entorno multiusuario, ofrece funcionalidades de colaboración en equipo.
- Soluciones empresariales: Despliegue local y servicios personalizados.
Comunidad y Soporte
- Comunidad de Discord: Discusión técnica y soporte.
- GitHub Issues: Informes de problemas y solicitudes de funciones.
- Centro de documentación: Guías de uso detalladas y tutoriales.
- Canal de YouTube: Tutoriales en video y demostraciones.
Ventajas del Proyecto
- Enfoque centrado en los datos: Se centra en mejorar la calidad de los datos de entrenamiento en lugar de solo aumentar la cantidad de datos.
- Anotación semiautomática: Reduce significativamente la carga de trabajo de anotación manual.
- Arquitectura escalable: La arquitectura de microservicios soporta un despliegue flexible.
- Transparencia de código abierto: Completamente de código abierto, desarrollo impulsado por la comunidad.
- Funcionalidades de nivel empresarial: Soporta despliegues a gran escala y colaboración en equipo.
Recursos de Aprendizaje
- Documentación oficial
- Guía de inicio rápido
- Proyectos de ejemplo
- Tutoriales en video
- Demostración en línea
Refinery representa las mejores prácticas en la gestión moderna de datos de PLN, proporcionando a los científicos de datos una herramienta potente y flexible para construir conjuntos de datos de entrenamiento de alta calidad.