Terceira Etapa: Dados e Engenharia de Atributos
Plataforma de gerenciamento e anotação de dados de linguagem natural de código aberto, focada em métodos de construção de modelos de PNL centrados em dados.
Refinery - Ferramenta de Gerenciamento de Dados de Linguagem Natural de Código Aberto para Cientistas de Dados
Visão Geral do Projeto
Refinery é uma plataforma de gerenciamento de dados de treinamento e rotulagem de dados de código aberto desenvolvida pela Kern AI, especificamente para tarefas de Processamento de Linguagem Natural (PLN). O projeto visa ajudar os cientistas de dados a "construir melhores modelos de PLN, adotando uma abordagem centrada em dados" e a "tratar os dados de treinamento como artefatos de software".
Principais Recursos
1. Funcionalidades de Rotulagem de Dados
- Rotulagem manual e programática: Suporta tarefas de classificação e rotulagem de extensão (span labeling)
- Rotulagem semiautomática: Automatiza parte do trabalho de rotulagem por meio de métodos heurísticos
- Suporte a múltiplas tarefas: Um único projeto pode lidar com várias tarefas de rotulagem
2. Capacidades de Gerenciamento de Dados
- Navegador de dados inteligente: Permite filtrar, classificar e pesquisar dados por confiança, sobreposição heurística, usuário, anotação, etc.
- Monitoramento da qualidade dos dados: Identifica subconjuntos de baixa qualidade nos dados de treinamento
- Visão geral das métricas do projeto: Fornece distribuição de confiança, distribuição de rótulos e matriz de confusão
3. Integração de Machine Learning
- Integração 🤗 Hugging Face: Cria automaticamente embeddings em nível de documento e token
- Integração spaCy: Utiliza modelos de linguagem pré-treinados
- Busca neural: Recuperação de registros semelhantes e detecção de anomalias baseada em Qdrant
4. Heurísticas e Supervisão Fraca
- Funções de rotulagem: Cria e gerencia lógica de rotulagem automática baseada em regras
- Aprendizado por supervisão fraca: Integra múltiplas heurísticas ruidosas e imperfeitas
- Gerenciamento de base de conhecimento: Cria e gerencia listas de consulta para apoiar o processo de rotulagem
5. Funcionalidades de Colaboração
- Espaço de trabalho em equipe: Ambiente multiusuário (versão comercial)
- Controle de acesso baseado em função: Gerencia permissões de usuário
- Integração de rotulagem por crowdsourcing: Suporta fluxos de trabalho de rotulagem externos
Arquitetura Técnica
Serviços Principais
- embedder: Serviço de geração de embeddings
- weak-supervisor: Serviço de aprendizado por supervisão fraca
- tokenizer: Serviço de tokenização
- neural-search: Serviço de busca neural
- ui: Interface de usuário
- gateway: Gateway de API
Integrações de Terceiros
- PostgreSQL: Armazenamento de dados
- Minio: Armazenamento de objetos
- MailHog: Serviço de e-mail
- Ory Kratos: Gerenciamento de identidade
- Ory Oathkeeper: Controle de acesso
Bibliotecas de Machine Learning
- scikit-learn: Machine learning tradicional
- spaCy: Processamento de Linguagem Natural
- Hugging Face Transformers: Modelos pré-treinados
- Qdrant: Banco de dados vetorial
Instalação e Uso
Instalação Rápida
# Instalar usando pip
pip install kern-refinery
# Iniciar o serviço
cd your-project-directory
refinery start
# Acessar o aplicativo
# Abrir no navegador http://localhost:4455
Instalação Manual
# Clonar o repositório
git clone https://github.com/code-kern-ai/refinery.git
cd refinery
# Iniciar o serviço (Mac/Linux)
./start
# Iniciar o serviço (Windows)
start.bat
# Parar o serviço
./stop # Ou stop.bat (Windows)
Suporte a Formatos de Dados
Formatos de Entrada
- Arquivos JSON
- Arquivos CSV
- Planilhas eletrônicas
- Arquivos de texto
- Formato JSON genérico
Formatos de Saída
[
{
"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
O projeto oferece um SDK Python completo, que suporta:
- Upload e download de dados
- Gerenciamento de projetos
- Exportação de dados rotulados
- Adaptadores para frameworks como Rasa
# Puxar dados
rsdk pull
# Enviar dados
rsdk push <file_name>
Biblioteca bricks de Código Aberto
Refinery integra a biblioteca de código aberto bricks, que oferece:
- Funcionalidades de rotulagem automática prontas para uso
- Extração de metadados de texto (detecção de idioma, complexidade de frase, etc.)
- Modelos de função de rotulagem pré-construídos
Cenários de Aplicação
Grupos de Usuários Ideais
- Desenvolvedores de projetos de PLN individuais: Pesquisadores que carecem de dados rotulados suficientes
- Projetos de colaboração em equipe: Equipes que precisam gerenciar e avaliar a qualidade dos dados de treinamento
- Projetos com recursos limitados: Projetos que precisam otimizar recursos de rotulagem (mão de obra, orçamento, tempo)
Principais Casos de Uso
- Análise de sentimento
- Reconhecimento de entidades nomeadas
- Classificação de texto
- Extração de informações
- Processamento de texto multilíngue
Modelo de Negócios
- Versão de código aberto: Versão de usuário único, totalmente gratuita
- Versão comercial: Ambiente multiusuário, oferece funcionalidades de colaboração em equipe
- Soluções de nível empresarial: Implantação local e serviços personalizados
Comunidade e Suporte
- Comunidade Discord: Discussão técnica e suporte
- GitHub Issues: Relatório de problemas e solicitações de recursos
- Centro de documentação: Guias de uso detalhados e tutoriais
- Canal do YouTube: Tutoriais em vídeo e demonstrações
Vantagens do Projeto
- Abordagem centrada em dados: Foca em melhorar a qualidade dos dados de treinamento em vez de apenas aumentar a quantidade de dados
- Rotulagem semiautomática: Reduz significativamente a carga de trabalho de rotulagem manual
- Arquitetura escalável: Arquitetura de microsserviços suporta implantação flexível
- Transparência de código aberto: Totalmente de código aberto, desenvolvimento impulsionado pela comunidade
- Funcionalidades de nível empresarial: Suporta implantação em larga escala e colaboração em equipe
Recursos de Aprendizagem
- Documentação oficial
- Guia de início rápido
- Projetos de exemplo
- Tutoriais em vídeo
- Demonstração online
Refinery representa as melhores práticas modernas de gerenciamento de dados de PLN, fornecendo aos cientistas de dados uma ferramenta poderosa e flexível para construir conjuntos de dados de treinamento de alta qualidade.