このプロジェクトについて
Spark NLPは、Apache Spark上に構築された自然言語処理ライブラリであり、分散環境でスケールする機械学習パイプライン向けのNLPアノテーションを提供するように設計されています。John Snow Labsによって開発され、Apache 2.0の下でリリースされています。
中核機能
このライブラリは、トークン化、単語分割、品詞タグ付け、単語および文の埋め込み、固有表現認識、依存構造解析、スペルチェック、テキスト分類、感情分析、トークン分類、機械翻訳(180以上の言語)、要約、質問応答、テーブル質問応答、テキスト生成、画像分類、画像からテキストへのキャプション生成、自動音声認識、ゼロショット学習など、幅広いNLPタスクをカバーしています。
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だけでなく、Apache Sparkをネイティブに拡張することでJVMエコシステム(Java、Scala、Kotlin)にも公開されています。
モデルとパイプライン
このプロジェクトは、200以上の言語にわたる10万以上の事前学習済みパイプラインとモデルを提供しており、それらを閲覧するための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 3.0.x-3.5.x用のspark-nlp_2.12、Spark 4.0.0用のspark-nlp-spark400_2.13、Spark 4.0.1以降の検証済みSpark 4バージョン用のspark-nlp_2.13です。CPU、GPU、AArch64(Linux)、Apple Siliconのバリアントが存在し、M1/M2とAArch64は実験的と説明されています。
Pythonサポートは、Spark 3.xレーンでは3.7から3.10、Spark 4.xレーンでは3.9から3.12に及びます。READMEには、Databricksランタイム(14.xから16.4、CPUおよびGPU)、Amazon EMR 6.13から7.8、およびemr-spark-8.0.0上のEMR Serverlessレーン(Spark 4.0.2、Scala 2.13、Java 17)との互換性も記載されています。
インストールと使用方法
インストールはpip、conda、Maven Centralから利用可能で、クイックスタート例ではsparknlp.start()、explain_document_dlなどのPretrainedPipelineの読み込み、テキストをアノテーションしてエンティティ、レンマ、POSタグ、トークン、その他のアノテーションを取得する方法を示しています。このライブラリは完全にオフラインで実行でき、設定はSparkプロパティを通じて調整可能です。S3統合は、トレーニングログのエクスポートとNerDLApproachで使用されるTensorFlowグラフの保存に利用できます。
ドキュメントとコミュニティ
公式ドキュメント、例、デモ、モデルハブはsparknlp.orgでホストされています。コミュニティチャネルにはSlack、GitHub issuesとdiscussions、Medium、YouTubeがあります。このプロジェクトはSoftware Impactsに論文を発表しており、アイデア、フィードバック、ドキュメント、バグ報告、コーパス、テストなどの貢献を歓迎しています。
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.