Sobre el proyecto
Spark NLP es una biblioteca de procesamiento de lenguaje natural construida sobre Apache Spark, diseñada para proporcionar anotaciones de NLP para pipelines de aprendizaje automático que escalan en entornos distribuidos. Es desarrollada por John Snow Labs y publicada bajo Apache 2.0.
Capacidades principales
La biblioteca cubre una amplia gama de tareas de NLP, incluyendo tokenización, segmentación de palabras, etiquetado de partes del discurso, embeddings de palabras y oraciones, reconocimiento de entidades nombradas, análisis de dependencias, corrección ortográfica, clasificación de texto, análisis de sentimientos, clasificación de tokens, traducción automática (más de 180 idiomas), resumen, respuesta a preguntas, respuesta a preguntas sobre tablas, generación de texto, clasificación de imágenes, subtitulado de imágenes a texto, reconocimiento automático del habla y aprendizaje de cero disparos.
Soporta arquitecturas de transformers 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 y Qwen2. Estos se exponen no solo a Python y R, sino también al ecosistema JVM (Java, Scala, Kotlin) al extender Apache Spark de forma nativa.
Modelos y pipelines
El proyecto afirma que incluye más de 100,000 pipelines y modelos preentrenados en más de 200 idiomas, con un Models Hub para explorarlos. El soporte de importación de modelos incluye TensorFlow, ONNX, OpenVINO y Llama.cpp (GGUF), lo que permite la integración de modelos de otros frameworks.
Soporte de plataformas
Spark NLP 7.0.0 soporta Apache Spark 3.x (Scala 2.12) y versiones validadas de Apache Spark 4 (Scala 2.13). Debido a que Apache Spark 4.0.0 introdujo un cambio de Param incompatible a nivel binario, existen artefactos separados: spark-nlp_2.12 para Spark 3.0.x-3.5.x, spark-nlp-spark400_2.13 para Spark 4.0.0, y spark-nlp_2.13 para Spark 4.0.1 y versiones validadas posteriores de Spark 4. Existen variantes para CPU, GPU, AArch64 (Linux) y Apple Silicon, con M1/M2 y AArch64 descritas como experimentales.
El soporte de Python abarca desde 3.7 hasta 3.10 en la línea de Spark 3.x y desde 3.9 hasta 3.12 en la línea de Spark 4.x. El README también lista compatibilidad con runtimes de Databricks (14.x hasta 16.4, CPU y GPU), Amazon EMR 6.13 hasta 7.8, y una línea de EMR Serverless en emr-spark-8.0.0 con Spark 4.0.2, Scala 2.13 y Java 17.
Instalación y uso
La instalación está disponible a través de pip, conda y Maven Central, con un ejemplo de inicio rápido que muestra sparknlp.start(), la carga de un PretrainedPipeline como explain_document_dl, y la anotación de texto para obtener entidades, lemas, etiquetas POS, tokens y otras anotaciones. La biblioteca puede funcionar completamente sin conexión, y la configuración se puede ajustar mediante propiedades de Spark. La integración con S3 está disponible para exportar registros de entrenamiento y almacenar gráficos de TensorFlow utilizados por NerDLApproach.
Documentación y comunidad
La documentación oficial, ejemplos, demos y un hub de modelos están alojados en sparknlp.org. Los canales de la comunidad incluyen Slack, problemas y discusiones de GitHub, Medium y YouTube. El proyecto tiene un artículo publicado en Software Impacts y acepta contribuciones como ideas, comentarios, documentación, informes de errores, corpus y pruebas.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.