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 기반으로 구축되어 단일 노트북이나 대규모 분산 클러스터에서 동일한 코드가 작동합니다.
  • 방대한 모델 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']

이 예시는 한 줄의 코드로 준비된 파이프라인을 로드하고 엔티티, 품사 태그, 임베딩 등 토큰 수준의 주석을 반환하는 방법을 보여줍니다.

설치

  • 사용 중인 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에서 직접 가져온 것이며, 외부적인 가정은 추가되지 않았습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트