JohnSnowLabs/spark-nlp
State of the Art Natural Language Processing
Spark NLP (JohnSnowLabs/spark-nlp)
是什么 – 这是一个开源库,将最先进的自然语言处理 (NLP) 和大型语言模型 (LLM) 能力引入 Apache Spark。它让您能在 Spark 集群上大规模运行现代 NLP 流水线(分词、NER、情感分析、翻译、摘要、问答、图像转文本、语音转文本等),并可选择使用 GPU 或 Apple-silicon 加速。
README 重点摘要
- 规模优先设计 – 基于 Spark 构建,因此相同的代码可在单台笔记本或大型分布式集群上运行。
- 庞大的模型库 – 超过 100,000 个预训练流水线和模型,涵盖 200 多种语言,包括 BERT、RoBERTa、Llama-2、Whisper、Vision Transformers 等。
- 多框架导入 – 可从 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']
此示例展示了如何通过单行代码加载现成的流水线,并返回实体、词性标注、嵌入等 Token 级别的注释。
安装
- 选择符合您 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 流水线内进行 PB 级规模 NLP 处理的数据工程师。
- 希望在不离开 Spark 生态系统的情况下微调或运行预训练 LLM 的机器学习从业者。
- 在 Databricks、EMR 或其他托管 Spark 服务上运行,且需要多语言、多模态(文本 + 图像 + 音频)处理的企业。
- 需要统一 API 来处理传统 NLP 任务(词性标注、NER)和现代 Transformer 模型的研究人员。
深入了解
- 官方网站与文档: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;未添加任何外部假设。
相关
- 项目
- 项目
- 项目
- 项目
- 项目