JohnSnowLabs/spark-nlp
State of the Art Natural Language Processing
Spark NLP (JohnSnowLabs/spark-nlp)
概要 – Apache Sparkに最先端の自然言語処理 (NLP) および大規模言語モデル (LLM) 機能をもたらすオープンソースライブラリです。最新のNLPパイプライン(トークン化、NER、感情分析、翻訳、要約、質問応答、画像からテキストへの変換、音声からテキストへの変換など)をSparkクラスター上で大規模に実行でき、GPUやApple-siliconによる高速化も可能です。
READMEの主なポイント
- スケーラビリティ重視の設計 – Sparkベースであるため、単一のノートPCから大規模な分散クラスターまで同じコードで動作します。
- 膨大なモデルZoo – 100,000以上の事前学習済みパイプラインとモデルがあり、BERT、RoBERTa、Llama-2、Whisper、Vision Transformersなど、200以上の言語をカバーしています。
- マルチフレームワークインポート – TensorFlow、ONNX、OpenVINO、Llama.cpp (GGUF) からモデルを取り込めます。
- クロス言語サポート – Python、R、Java、Scala、Kotlinから利用可能。パッケージはPyPI、Conda、Maven Centralで公開されています。
- ハードウェアの柔軟性 – CPU、GPU、AArch64、Apple-silicon向けに個別のMaven/pipアーティファクトを提供。
sparknlp.start(gpu=True)やapple_silicon=Trueでランタイムを切り替え可能です。 - 幅広いエコシステムとの互換性 – Databricks、Amazon EMR (Serverlessを含む)、Google Dataproc、Zeppelin、Jupyter、Colab、Kaggleなどで動作します。
- オフライン機能 – モデルやパイプラインをローカルにキャッシュしたり、S3に保存したりすることで、完全にオフラインでの推論が可能です。
- オープンソースライセンス – Apache 2.0。
典型的なワークフロー (Pythonの例)
import sparknlp
from sparknlp.base import *
from sparknlp.annotator import *
from sparknlp.pretrained import PretrainedPipeline
spark = sparknlp.start(gpu=True) # GPUサポート付きでSparkセッションを開始
pipeline = PretrainedPipeline('explain_document_dl', lang='en')
result = pipeline.annotate("The Mona Lisa is a 16th-century painting …")
print(result['entities']) # → ['Mona Lisa', 'Leonardo', 'Louvre', 'Paris']
この例では、1行のコードで既製のパイプラインを読み込み、エンティティ、品詞タグ、埋め込みなどのトークンレベルの注釈を返す方法を示しています。
インストール
- 使用するSparkバージョンに一致するアーティファクトを選択してください(例:Spark 3.xの場合は
pip install spark-nlp==7.0.0 pyspark==3.5.1、Spark 4.0の場合はspark-nlp-spark400)。 - Scala/Javaプロジェクトの場合は、適切なMaven座標 (
spark-nlp_2.12,spark-nlp-spark400_2.13など) を追加してください。 - GPU、AArch64、Apple-siliconのバリエーションは、個別のパッケージ名 (
spark-nlp-gpu,spark-nlp-aarch64,spark-nlp-silicon) で公開されています。
対象ユーザー
- Sparkパイプライン内でペタバイト規模のNLP処理を必要とするデータエンジニア。
- Sparkエコシステムを離れることなく、事前学習済みLLMの微調整や実行を行いたいML実務者。
- Databricks、EMR、その他のマネージドSparkサービスを利用しており、多言語・マルチモーダル(テキスト + 画像 + 音声)処理を必要とする企業。
- 従来のNLPタスク(品詞タグ、NER)と最新のTransformerベースのモデルの両方に統一されたAPIを求める研究者。
詳細情報
- 公式サイトとドキュメント: https://sparknlp.org/
- ベンチマーク付きモデルハブ: https://sparknlp.org/models
- サンプルノートブック: https://github.com/JohnSnowLabs/spark-nlp/tree/master/examples
- 学術的引用: Spark NLP: Natural language understanding at scale (Software Impacts, 2021)。
上記のすべての情報は、リポジトリのREADMEから直接引用したものであり、外部からの仮定は一切追加されていません。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト