Об этом проекте

Spark NLP — это библиотека обработки естественного языка, построенная на основе Apache Spark, предназначенная для предоставления NLP-аннотаций для конвейеров машинного обучения, которые масштабируются в распределенных средах. Она разработана John Snow Labs и выпущена под лицензией Apache 2.0. Основные возможности Библиотека охватывает широкий спектр задач NLP, включая токенизацию, сегментацию слов, разметку частей речи, эмбеддинги слов и предложений, распознавание именованных сущностей, синтаксический анализ зависимостей, проверку орфографии, классификацию текста, анализ тональности, классификацию токенов, машинный перевод (180+ языков), суммаризацию, ответы на вопросы, ответы на вопросы по таблицам, генерацию текста, классификацию изображений, создание подписей к изображениям, автоматическое распознавание речи и обучение с нулевым количеством примеров. Поддерживаются архитектуры трансформеров, такие как 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 и Qwen2. Они доступны не только для Python и R, но и для экосистемы JVM (Java, Scala, Kotlin) благодаря нативному расширению Apache Spark. Модели и пайплайны Проект заявляет, что включает 100 000+ предобученных пайплайнов и моделей на более чем 200 языках, с Models Hub для их просмотра. Поддержка импорта моделей включает TensorFlow, ONNX, OpenVINO и Llama.cpp (GGUF), что позволяет интегрировать модели из других фреймворков. Поддержка платформ Spark NLP 7.0.0 поддерживает Apache Spark 3.x (Scala 2.12) и проверенные версии Apache Spark 4 (Scala 2.13). Поскольку Apache Spark 4.0.0 ввел бинарно-несовместимое изменение Param, существуют отдельные артефакты: spark-nlp_2.12 для Spark 3.0.x-3.5.x, spark-nlp-spark400_2.13 для Spark 4.0.0 и spark-nlp_2.13 для Spark 4.0.1 и более поздних проверенных версий Spark. Существуют варианты для CPU, GPU, AArch64 (Linux) и Apple Silicon, при этом M1/M2 и AArch64 описываются как экспериментальные. Поддержка Python охватывает версии 3.7–3.10 для ветки Spark 3.x и 3.9–3.12 для ветки Spark 4.x. В README также указана совместимость с средами выполнения Databricks (14.x–16.4, CPU и GPU), Amazon EMR 6.13–7.8 и веткой EMR Serverless на emr-spark-8.0.0 с Spark 4.0.2, Scala 2.13 и Java 17. Установка и использование Установка доступна через pip, conda и Maven Central, с примером быстрого старта, показывающим sparknlp.start(), загрузку PretrainedPipeline, такого как explain_document_dl, и аннотирование текста для получения сущностей, лемм, частей речи, токенов и других аннотаций. Библиотека может работать полностью офлайн, а конфигурация настраивается через свойства Spark. Доступна интеграция с S3 для экспорта журналов обучения и хранения графов TensorFlow, используемых NerDLApproach. Документация и сообщество Официальная документация, примеры, демо и хаб моделей размещены на sparknlp.org. Каналы сообщества включают Slack, GitHub issues и discussions, Medium и YouTube. Проект имеет опубликованную статью в Software Impacts и приветствует вклад, такой как идеи, отзывы, документация, отчеты об ошибках, корпусы и тестирование.