오늘은 마이크로소프트의 허밍버드 라이브러리에 대해 알아보았습니다. 1000배 성능??
2282 단어 machinelearning
My Colab notebook 복제 목적으로.
--- 시작하다
이것은 오늘 MS Ignite 중에 스크롤되었습니다(완전히 시청해야 함).
사실이라기에는 너무 좋아 보였고(스포일러가 손상됨) 최대한 빨리 사용해 보고 싶었습니다.
나는 그들의 샘플 코드를 Github에서 가져와 각 모델의 예측에 대한 시간을 추출하고 행 수를 500만 개로 늘리도록 조정했습니다. Google의 Colab을 사용하고 하드웨어 가속기로 GPU를 선택했습니다. 이것은 모든 계산이 GPU에서 발생하는 것이 아니라 GPU에서 코드를 실행하는 옵션을 제공합니다.
아래 코드 스니펫은 위의 내 노트북 링크에서 전체 코드를 찾을 수 있습니다.
start_time = time.time()
# Use SKLearn to convert the model to PyTorch
skl_model.predict(X)
print("--- %s seconds to predict on CPU w/o HB ---" % (time.time() - start_time))
# Use Hummingbird to convert the model to PyTorch
model = convert(skl_model, 'pytorch')
start_time = time.time()
# Run predictions on CPU
model.predict(X)
print("--- %s seconds to predict on CPU w/ HB ---" % (time.time() - start_time))
start_time = time.time()
# Run predictions on GPU
model.to('cuda')
model.predict(X)
print("--- %s seconds to predict on GPU w/ HB ---" % (time.time() - start_time))
--- 3.707867383956909 seconds to predict on CPU w/o HB ---
--- 8.640001058578491 seconds to predict on CPU w/ HB ---
--- 0.5877633094787598 seconds to predict on GPU w/ HB ---
Hummingbird는 SKLearn의 학습된 RandomForestClassifier 모델을 PyTorch 신경망(NN)으로 변환합니다. CPU에서 500만 예측에 대해 일반 ML 모델을 실행하면 3.7초 안에 실행됩니다. CPU에서 5백만 예측에 대해 NN을 실행하면 8.6초가 걸립니다. GPU에서 NN은 5백만 예측에 0.06초가 걸렸습니다.
내가 어디에서 잘못되었는지 이해하도록 도와줄 사람이 있습니까? 어떤 시나리오에서 CPU에서 5x, GPU에서 1000x를 얻을 수 있습니까?
3.7초에서 0.6초(6x?)로 빨라진 것이 여전히 놀랍지만 1000x와는 거리가 멀다.
몇 가지 데이터 세트를 더 시험해보고 주장을 재현할 수 없는지 확인하겠습니다.
Reference
이 문제에 관하여(오늘은 마이크로소프트의 허밍버드 라이브러리에 대해 알아보았습니다. 1000배 성능??), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/bababrownbear/i-learned-about-microsoft-s-hummingbird-library-today-1000x-performance-4881텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)