Sobre o projeto

O Spark NLP é uma biblioteca de processamento de linguagem natural construída sobre o Apache Spark, projetada para fornecer anotações de NLP para pipelines de aprendizado de máquina que escalam em ambientes distribuídos. É desenvolvida pela John Snow Labs e lançada sob a licença Apache 2.0. Capacidades principais A biblioteca cobre uma ampla gama de tarefas de NLP, incluindo tokenização, segmentação de palavras, etiquetagem de classes gramaticais, embeddings de palavras e frases, reconhecimento de entidades nomeadas, análise de dependências, verificação ortográfica, classificação de texto, análise de sentimento, classificação de tokens, tradução automática (mais de 180 idiomas), sumarização, resposta a perguntas, resposta a perguntas em tabelas, geração de texto, classificação de imagens, legendagem de imagem para texto, reconhecimento automático de fala e aprendizado zero-shot. Ela suporta arquiteturas transformer como BERT, CamemBERT, ALBERT, ELECTRA, XLNet, DistilBERT, RoBERTa, DeBERTa, XLM-RoBERTa, Longformer, ELMo, Universal Sentence Encoder, Llama-2, M2M100, BART, Instructor, E5, Google T5, MarianMT, OpenAI GPT2, Vision Transformers, OpenAI Whisper, Llama, Mistral, Phi e Qwen2. Essas arquiteturas são expostas não apenas a Python e R, mas também ao ecossistema JVM (Java, Scala, Kotlin), estendendo o Apache Spark nativamente. Modelos e pipelines O projeto afirma disponibilizar mais de 100.000 pipelines e modelos pré-treinados em mais de 200 idiomas, com um Models Hub para navegar por eles. O suporte à importação de modelos inclui TensorFlow, ONNX, OpenVINO e Llama.cpp (GGUF), permitindo a integração de modelos de outros frameworks. Suporte de plataforma O Spark NLP 7.0.0 suporta Apache Spark 3.x (Scala 2.12) e versões validadas do Apache Spark 4 (Scala 2.13). Como o Apache Spark 4.0.0 introduziu uma mudança de Param binariamente incompatível, existem artefatos separados: spark-nlp_2.12 para Spark 3.0.x-3.5.x, spark-nlp-spark400_2.13 para Spark 4.0.0 e spark-nlp_2.13 para Spark 4.0.1 e versões validadas posteriores do Spark 4. Existem variantes para CPU, GPU, AArch64 (Linux) e Apple Silicon, com M1/M2 e AArch64 descritos como experimentais. O suporte a Python abrange da versão 3.7 à 3.10 na linha Spark 3.x e da 3.9 à 3.12 na linha Spark 4.x. O README também lista compatibilidade com runtimes do Databricks (14.x a 16.4, CPU e GPU), Amazon EMR 6.13 a 7.8 e uma linha EMR Serverless em emr-spark-8.0.0 com Spark 4.0.2, Scala 2.13 e Java 17. Instalação e uso A instalação está disponível via pip, conda e Maven Central, com um exemplo de início rápido mostrando sparknlp.start(), carregando um PretrainedPipeline como explain_document_dl e anotando texto para obter entidades, lemas, etiquetas POS, tokens e outras anotações. A biblioteca pode ser executada totalmente offline, e a configuração é ajustável por meio de propriedades do Spark. A integração com S3 está disponível para exportar logs de treinamento e armazenar grafos do TensorFlow usados pelo NerDLApproach. Documentação e comunidade A documentação oficial, exemplos, demonstrações e um hub de modelos estão hospedados em sparknlp.org. Os canais da comunidade incluem Slack, issues e discussões no GitHub, Medium e YouTube. O projeto tem um artigo publicado na Software Impacts e aceita contribuições como ideias, feedback, documentação, relatórios de bugs, corpora e testes.