uxlfoundation/scikit-learn-intelex

Extension for Scikit-learn is a seamless way to speed up your Scikit-learn application

scikit‑learn‑intelex – CPU 및 GPU에서 더 빠른 scikit‑learn

개요

  • 지원되는 하드웨어에서 인기 있는 Python 라이브러리 scikit‑learn의 속도를 최대 약 100배까지 높이는 오픈소스 확장 프로그램입니다. scikit‑learn의 핵심 알고리즘을 Intel의 oneAPI 데이터 분석 라이브러리(oneDAL)의 고도로 최적화된 구현으로 교체하는 방식으로 작동합니다.

중요성

  • Scikit‑learn은 테이블 형 기계 학습(로지스틱 회귀, 랜덤 포레스트, SVM, 클러스터링 등)을 위한 표준 도구입니다. 많은 프로덕션 파이프라인에서 사용되지만, 이 라이브러리는 하드웨어를 인식하지 못합니다. scikit‑learn‑intelex는 코드 변경 없이 SIMD, 멀티스레딩, 캐시 인식 및 GPU 오프로드 최적화를 추가합니다.

주요 기능

  • CPU 가속 – SIMD 및 멀티코어 최적화로 훈련 및 추론에서 평균 8.5배 속도 향상을 제공하면서 수치 결과를 유지합니다.
  • GPU 및 멀티 GPU 지원 – 추가 성능 향상을 위한 선택적 oneAPI 기반 오프로드(Intel oneAPI 런타임 필요).
  • 코드 변경 불필요 – 기존 sklearn import를 패치하거나(from sklearnex import patch_sklearn; patch_sklearn()) 드롭인 모듈 sklearnex를 직접 import할 수 있습니다.
  • 호환성 – scikit‑learn 1.6‑1.9 및 Python 3.10‑3.14와 호환되며 PyPI 및 conda‑forge에서 사용할 수 있습니다.
  • 모델 빌더 호환성 – XGBoost 또는 LightGBM에서 생성된 결정 트리 모델을 가속화할 수 있습니다.

일반적인 사용 사례

  • 훈련 또는 점수 계산 시간이 병목인 대규모 테이블 형 데이터 파이프라인.
  • 낮은 지연 시간 예측이 필요한 실시간 추론 서비스.
  • 멀티 노드 클러스터 또는 GPU 지원 워크스테이션에서의 분산 훈련.

시작하기

# PyPI에서 설치 (또는 conda‑forge 사용)
pip install scikit-learn-intelex
# CPU 예제 – scikit‑learn 패치
from sklearnex import patch_sklearn
patch_sklearn()
from sklearn.cluster import DBSCAN
clustering = DBSCAN(eps=3, min_samples=2).fit(X)
# GPU 예제 – config_context 사용
from sklearnex import patch_sklearn, config_context
patch_sklearn()
with config_context(target_offload="gpu:0"):
    clustering = DBSCAN(eps=3, min_samples=2).fit(X)

문서 및 리소스

결론 scikit-learn-intelex는 익숙한 scikit‑learn API를 유지하면서 Intel oneDAL의 성능을 활용할 수 있게 하여, 테이블 형 데이터로 기계 학습 모델을 구축하는 모든 사람에게 실용적인 가속기를 제공합니다.

관련

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