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를 원하는 연구자.
추가 정보
- 공식 사이트 및 문서: 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에서 직접 가져온 것이며, 외부적인 가정은 추가되지 않았습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트