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を求める研究者。

詳細情報


上記のすべての情報は、リポジトリのREADMEから直接引用したものであり、外部からの仮定は一切追加されていません。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト