scikit-learn-intelex

2023. 11. 24. 10:33·알쓸신잡

오늘은 scikit-learn-intelex를 설명해 볼 것이다.

부트캠프 강의를 수강하던 도중에 강사님이 지나가면서 슬쩍 말해주셔서 찾아봤는데, 한글로 되어 있는 설명이 하나도 없었다.

그래서 아직 실험해보진않아서 우선 가이드만 작성하고 나중에 써보고 후기를 추가하려고 한다. 

우선 아래 공식github도 있으며, 공식 doc도 있으니, 자세한 것은 여기서 살펴보면 된다.

 

GitHub - intel/scikit-learn-intelex: Intel(R) Extension for Scikit-learn is a seamless way to speed up your Scikit-learn applica

Intel(R) Extension for Scikit-learn is a seamless way to speed up your Scikit-learn application - GitHub - intel/scikit-learn-intelex: Intel(R) Extension for Scikit-learn is a seamless way to speed...

github.com

 

Intel® Extension for Scikit-learn* — Intel(R) Extension for Scikit-learn* 2023.2 documentation

Important You have to import scikit-learn after these lines. Otherwise, the patching will not affect the original scikit-learn estimators. In the example above, you can see that the use of the original Scikit-learn has not changed. This behavior is achieve

intel.github.io

1. Scikit-learn-intelex란?

intel cpu를 사용하는 pc에서 사용할 수 있는데, Scikit-learn api 및 알고리즘을 매우 빠른 속도로 돌아가게 만들어주는 가속기라고 한다. 아래 사진의 수치값들이 원본 scikit-learn대비 속도 향상률이라고 한다.

또한 기존 코드를 변경할 것 없이 간단하게 사용할 수 있다.

사용법이 매우 간단해서 놀랐는데, 단순하게 아래 코드 2줄만 적고 기존하던대로 사용하면 된다.

pip install scikit-learn-intelex

from sklearnex import patch_sklearn
patch_sklearn()

 

 

cpu에서 지원되는 알고리즘들이 나와있는데, 몇가지 제한사항들이 있긴 하나 거의 지장이 없다.

아래 모델별 파라미터 제한사항들이 나와있는데, 공식 doc에도 적혀있으니 확인해 보길 바란다. 

그리고 아래 링크에 다양한 캐글대회에서 사용된 예시들 링크를 포함하고 있다.

 

Kaggle Kernels — Intel(R) Extension for Scikit-learn* 2023.2 documentation

2023.2 ▼ Click link above to switch version

intel.github.io

 

그리고 가이드에 대표로 설명되어 있는 캐글의 Introduction to scikit-learn-intelelx 를 보면 다양한 실험결과 등을 볼 수 있다.

실제로 사용해본 결과 아래를 보면 알 수 있듯이 Randomforest 모델로 테스트를 해봤는데 엄청나게 빠른 속도를 보였다!!! 

 

2024.01.17 추가

평소와 같이 skleanex를 이용하여 다양한 모델을 실험 중이었는데, 갑자기 이상한 버그가 발생했다.

원인이 sklearnex 인지는 꿈에도 상상 못했기 때문에 원인을 찾는데 엄청난 시간이 걸렸다.

우선 버그 발생 상황은, `train-test-split`을 이용하여 train 셋과 valid 셋을 분리하고 모델을 평가하던 도중 X_train과 y_train 그리고 X_valid와 y_valid가 인덱스가 맞지 않는 말도 안 되는 일이 벌어졌다. 지금껏 한 번도 검토해보지 않았고 생각하지도 않았는데 서로 다른 값을 이용해 학습이 진행되고 있던 것이다.

단순 버그일까 싶어서 새로운 가상환경에서도 해보고, 커널을 다시 시작해서도 해봤지만 계속하여 오류가 발생했고 원인을 찾기 위해 reset_index 등 인덱스 관련된 것은 모두 실행했지만 계속 오류가 났다.

-> google을 뒤적거리던중 github issue에 올라와있는 한 글을 발견했고 그게 나를 살렸다.

바로 sklearnex 때문이라는 어떤 유저의 말이 있었다. 이게 매번 발생하는 것은 아닌 것 같고, 뭐 작성자 말로는 하드웨어에 따라 다르다고 하는데 공식답변이 없어서 잘 모르겠다.. 하지만 sklearnex를 지우고 나니 바로 해결돼버렸다......

감사합니다..

결론: `train_test_split`썼는데 인덱스 관련해서 오류가 발생했고, `sklearnex` 때문이었다. 지우면 해결!

 

Bug in train_test_split · Issue #22979 · scikit-learn/scikit-learn

Describe the bug I am pretty confident I found a bug in train_test_split. When using train_test_split multiple times in a row it produces wrong indexes in X_train and y_train. Steps/Code to Reprodu...

github.com

 

이것 말고도 intel에서 제공하는 머신러닝, 딥러닝을 위한 다양한 패치들이 존재하는 것 같다.

 

AI Tools from Intel for Data Science

Speed end-to-end data science and AI pipelines with deep-learning and machine-learning tools that maximize model training and inference performance.

www.intel.com

 

728x90

'알쓸신잡' 카테고리의 다른 글

Github 2FA 이중인증 등록하기  (1) 2023.12.07
딥러닝 NVIDIA GPU / cuda 사용하기  (3) 2023.11.27
git repository 안에 repository 관리  (1) 2023.11.23
[Github README 꾸미기]  (0) 2023.11.23
Git pull request 및 협업  (1) 2023.11.20
'알쓸신잡' 카테고리의 다른 글
  • Github 2FA 이중인증 등록하기
  • 딥러닝 NVIDIA GPU / cuda 사용하기
  • git repository 안에 repository 관리
  • [Github README 꾸미기]
창빵맨
창빵맨
  • 창빵맨
    Let's be Developers
    창빵맨
    로그인/로그아웃
  • 전체
    오늘
    어제
    • 분류 전체보기 (481)
      • 알쓸신잡 (88)
      • ML & DL (85)
        • Computer v.. (22)
        • NLP (22)
        • 파이썬 머신러닝 완.. (3)
        • 개념정리 (38)
      • 리눅스 (21)
      • 프로젝트 (29)
        • 산불 발생 예측 (6)
        • 음성비서 (12)
        • pdf 병합 프로그.. (0)
        • 수위 예측 (5)
        • 가짜 뉴스 분류 (5)
        • 전력사용량 예측 (1)
      • 코딩테스트 (217)
        • 프로그래머스[Pyt.. (17)
        • 프로그래머스[Fai.. (3)
        • 백준[Python] (160)
        • 이것이취업을위한코딩.. (18)
        • 파이썬 알고리즘 (19)
      • 데이터분석실습 (25)
        • 데이터 과학 기반의.. (18)
        • 헬로 데이터 과학 (7)
      • 메모장 (0)
      • 잡담 (4)
  • Blog

    • 🏠 Home

    ✏️글쓰기
    💻 관리

    Personal

    GITHUB
    Instagram
  • 공지사항

  • 인기 글

  • 태그

    이코테
    백준
    나동빈
    DFS
    이분탐색
    이것이취업을위한코딩테스트다
    그리디
    BFS
    파이썬
    dp
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
상단으로

티스토리툴바