À propos du projet

Spark NLP est une bibliothèque de traitement du langage naturel construite sur Apache Spark, conçue pour fournir des annotations NLP pour des pipelines d'apprentissage automatique qui évoluent dans des environnements distribués. Elle est développée par John Snow Labs et publiée sous licence Apache 2.0. Capacités principales La bibliothèque couvre un large éventail de tâches NLP, notamment la tokenisation, la segmentation des mots, l'étiquetage des parties du discours, les plongements de mots et de phrases, la reconnaissance d'entités nommées, l'analyse de dépendances, la vérification orthographique, la classification de textes, l'analyse de sentiments, la classification de jetons, la traduction automatique (plus de 180 langues), le résumé, la réponse aux questions, la réponse aux questions sur tableaux, la génération de textes, la classification d'images, le sous-titrage d'images en texte, la reconnaissance automatique de la parole et l'apprentissage zero-shot. Elle prend en charge les architectures de transformeurs telles que 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 et Qwen2. Ceux-ci sont exposés non seulement à Python et R, mais aussi à l'écosystème JVM (Java, Scala, Kotlin) en étendant Apache Spark nativement. Modèles et pipelines Le projet indique qu'il fournit plus de 100 000 pipelines et modèles pré-entraînés dans plus de 200 langues, avec un Models Hub pour les parcourir. La prise en charge de l'importation de modèles inclut TensorFlow, ONNX, OpenVINO et Llama.cpp (GGUF), permettant l'intégration de modèles provenant d'autres frameworks. Support de plateformes Spark NLP 7.0.0 prend en charge Apache Spark 3.x (Scala 2.12) et les versions validées d'Apache Spark 4 (Scala 2.13). Étant donné qu'Apache Spark 4.0.0 a introduit un changement de Param incompatible au niveau binaire, il existe des artefacts séparés : spark-nlp_2.12 pour Spark 3.0.x-3.5.x, spark-nlp-spark400_2.13 pour Spark 4.0.0, et spark-nlp_2.13 pour Spark 4.0.1 et les versions Spark 4 validées ultérieures. Des variantes CPU, GPU, AArch64 (Linux) et Apple Silicon existent, avec M1/M2 et AArch64 décrites comme expérimentales. Le support Python s'étend de 3.7 à 3.10 sur la branche Spark 3.x et de 3.9 à 3.12 sur la branche Spark 4.x. Le README répertorie également la compatibilité avec les runtimes Databricks (14.x à 16.4, CPU et GPU), Amazon EMR 6.13 à 7.8, et une branche EMR Serverless sur emr-spark-8.0.0 avec Spark 4.0.2, Scala 2.13 et Java 17. Installation et utilisation L'installation est disponible via pip, conda et Maven Central, avec un exemple de démarrage rapide montrant sparknlp.start(), le chargement d'un PretrainedPipeline tel que explain_document_dl, et l'annotation de texte pour obtenir des entités, des lemmes, des étiquettes POS, des jetons et d'autres annotations. La bibliothèque peut fonctionner entièrement hors ligne, et la configuration est ajustable via les propriétés Spark. L'intégration S3 est disponible pour exporter les journaux d'entraînement et stocker les graphes TensorFlow utilisés par NerDLApproach. Documentation et communauté La documentation officielle, les exemples, les démos et un hub de modèles sont hébergés sur sparknlp.org. Les canaux communautaires incluent Slack, les problèmes et discussions GitHub, Medium et YouTube. Le projet a publié un article dans Software Impacts et accueille favorablement les contributions telles que les idées, les retours, la documentation, les rapports de bogues, les corpus et les tests.