RAPIDS를 사용한 GPU 기반 데이터 과학(딥 러닝 아님)

소스 노드 : 997659

RAPIDS를 사용한 GPU 기반 데이터 과학(딥 러닝 아님)

딥 러닝 작업을 많이 하지 않더라도 일반 데이터 과학 및 머신 러닝에 GPU의 성능을 활용하는 방법.



헤더 이미지
이미지 소스Pixabay (무료 이미지)

"GPU 기반 데이터 과학"을 찾고 계십니까?

 
 
자신이 데이터 과학자, 비즈니스 분석가, 물리학/경제학/신경과학 분야의 학술 연구원이라고 상상해 보세요.

당신은 많은 일을 데이터 랭글링, 정리, 통계 테스트, 시각화 정기적으로. 당신은 또한 많은 것을 만지작 거리고 있습니다. 선형 모델 데이터를 피팅하고 때로는 모험을 시도합니다. 랜덤포레스트. 당신도 푹 빠졌어요 클러스터링 대규모 데이터 세트. 충분히 친숙한 것 같나요?

그러나 작업하는 데이터 세트(주로 표 형식 및 구조화)의 특성을 고려할 때 딥 러닝을 그다지 많이 시도하지는 않습니다. 화려한 딥 러닝 모델에 비용을 지출하는 것보다 실제로 일상적으로 수행하는 작업에 모든 하드웨어 리소스를 투입하는 것이 좋습니다. 또, 친숙한가?

당신은 놀라운 성능과 엄청나게 빠른 계산 능력에 대해 듣게 됩니다. 모든 종류의 산업 및 과학 애플리케이션을 위한 NVidia의 GPU 시스템과 같습니다.

그리고 당신은 계속해서 생각하고 있어요 - "나에게 필요한 것은 무엇입니까? 특정 작업 흐름에서 이러한 강력한 반도체를 어떻게 활용할 수 있습니까?? "

당신은 GPU 기반 데이터 과학을 찾고 있습니다.

이 접근 방식을 평가하는 가장 좋고 가장 빠른 옵션 중 하나는 다음의 조합을 사용하는 것입니다. 토성 구름 + 여울자세히 설명하자면…

AI/ML 민속의 GPU는 주로 딥 러닝에 사용되었습니다.

 
 
핵심 AI/ML 작업(예: 1000층 심층 신경망 이미지 분류를 위해 또는 XNUMX억 매개변수 BERT 음성 합성 모델), 일반 데이터 과학 및 데이터 엔지니어링 작업에 대한 유용성에 관해서는 적용 범위가 적습니다.

그럼에도 불구하고, 데이터 관련 작업은 AI 파이프라인의 모든 ML 워크로드에 대한 필수 전구체입니다. 그리고 그들은 종종 구성 대부분의 시간과 지적 노력 데이터 과학자나 ML 엔지니어가 비용을 지출합니다. 최근에는 유명한 AI 선구자가
앤드류 응 | 이야기 AI에 대한 모델 중심에서 데이터 중심 접근 방식으로 전환 도구 개발. 즉, 실제 AI 워크로드가 파이프라인에서 실행되기 전에 원시 데이터로 훨씬 더 많은 시간을 보내고 사전 처리해야 합니다.

따라서 중요한 질문은 다음과 같습니다. 정기적인 데이터 처리 작업에 GPU 및 분산 컴퓨팅의 성능을 활용할 수 있습니까??



이미지 소스: 작성자가 무료 이미지로 콜라주를 만들었습니다(Pixabay)

 

GPU 및 분산 컴퓨팅의 사용은 핵심 AI/ML 작업에 대한 학계 및 비즈니스계에서 널리 논의되고 있지만, 일반 데이터 과학 및 데이터 엔지니어링 작업에 대한 유틸리티의 적용 범위는 적습니다.

환상적인 RAPIDS 생태계

 
 
XNUMXD덴탈의 소프트웨어 라이브러리 및 API의 RAPIDS 제품군 일반 데이터 과학자(반드시 딥 러닝 전문가일 필요는 없음)에게 실행할 수 있는 옵션과 유연성을 제공합니다. 엔드투엔드 데이터 과학 및 분석 파이프라인은 전적으로 GPU에서 이루어집니다.

이 오픈 소스 프로젝트는 Nvidia에서 CUDA 기본 요소를 활용하는 도구를 구축하여 인큐베이션되었습니다. 특히 다음 사항에 중점을 두고 있습니다. 데이터 과학 친화적인 Python 언어를 통해 GPU 병렬성과 고대역폭 메모리 속도 기능을 노출합니다..

일반적인 데이터 준비 및 랭글링 작업 RAPIDS 생태계에서 높은 평가를 받고 있습니다. 또 상당한 금액을 빌려준다. 다중 노드, 다중 GPU 배포 및 분산 처리 지원. 가능한 한 다른 라이브러리와 통합되어 메모리 부족 (즉, 개별 컴퓨터 RAM보다 큰 데이터 세트 크기) 개별 데이터 과학자가 데이터 처리를 쉽고 액세스할 수 있습니다.



이미지 소스: 작성자가 만든 콜라주

 

일반 데이터 과학자들이 특히 관심을 갖는 세 가지 가장 눈에 띄는(그리고 Pythonic) 구성 요소는 다음과 같습니다.

  • 큐파이: cuBLAS, cuDNN, cuRand, cuSolver, cuSPARSE, cuFFT 및 NCCL과 같은 다양한 CUDA 라이브러리를 사용하여 기본 GPU 아키텍처를 최대한 활용하면서 Numpy와 모양과 느낌이 똑같은 CUDA 기반 배열 라이브러리입니다.
  • CuDF: 이것은 데이터를 로드, 집계, 결합, 필터링 및 조작하기 위한 GPU DataFrame 라이브러리입니다. 팬더와 유사한 API. 데이터 엔지니어와 데이터 과학자는 CUDA 프로그래밍의 기본 사항을 배우지 않고도 강력한 GPU를 사용하여 작업 흐름을 쉽게 가속화할 수 있습니다.
  • CuML: 이 라이브러리를 사용하면 데이터 과학자, 분석가 및 연구자가 GPU의 성능을 최대한 활용하여 기존/클래식 ML 알고리즘 및 관련 처리 작업을 실행할 수 있습니다. 당연히 이는 주로 표 형식 데이터 세트에 사용됩니다. Scikit-learn이 GPU 카드에 있는 수백 개의 Cuda 및 Tensor 코어로 무엇을 할 수 있는지 생각해 보세요! 그에 따라 대부분의 경우 cuML의 Python API는 Scikit-learn의 API와 일치합니다. 게다가, 그것은 제공하려고합니다 다중 GPU 및 다중 노드 GPU 지원 by 우아하게 통합 다 스크, 진정한 분산 처리/클러스터 컴퓨팅을 활용하기 위한 것입니다.


정기적인 데이터 처리 작업과 구조화된 데이터를 사용한 기계 학습을 위해 GPU 및 분산 컴퓨팅의 성능을 활용할 수 있습니까?

Apache Spark를 사용하는 것과 다른가요?

 
 
이 GPU 기반 데이터 처리가 Apache Spark를 사용하는 것과 어떻게 다른지 질문하실 수 있습니다. 실제로는 약간의 미묘한 차이가 있으며, 최근에는 Spark 3.0을 통해 GPU가 Spark 워크로드의 주류 리소스가 되었습니다.

GPU 및 RAPIDS로 Apache Spark 3.0 가속화 | NVIDIA 개발자 블로그
 

GPU 기반 데이터 과학 접근 방식과 특히 Apache Spark에 적합한 빅 데이터 작업의 고유한 차이점을 논의할 시간이나 공간이 없습니다. 하지만 스스로에게 이러한 질문을 던져보면 미묘한 차이를 이해할 수 있을 것입니다.

"경제 거래와 포트폴리오 관리를 모델링하는 데이터 과학자로서 저는 다음과 같은 문제를 해결하고 싶습니다. 선형 방정식 시스템 100,000개의 변수가 있습니다. 순수 선형 대수학 라이브러리를 사용합니까, 아니면 Apache Spark를 사용합니까?? "

"이미지 압축 파이프라인의 일부로 다음을 사용하고 싶습니다. 특이 값 분해 수백만 개의 항목으로 구성된 대규모 매트릭스에서. Apache Spark가 이에 대한 좋은 선택입니까?? "

큰 문제 크기가 항상 Apache Spark 또는 Hadoop 생태계를 의미하는 것은 아닙니다. 빅컴퓨팅은 빅데이터와 동일하지 않습니다. 다재다능한 데이터 과학자로서 모든 종류의 문제를 해결하려면 두 가지 모두를 알아야 합니다.

RAPIDS는 특히 다음 사항에 중점을 두고 있습니다. Python API를 통해 GPU 병렬성과 고대역폭 메모리 속도 기능을 노출합니다.

이 기사에서는 무엇을 보여주고 있나요?

 
 

CuPy 및 CuML의 명확한 예

 
따라서 이 기사에서는 CuPy 및 CuML의 명확한 예를 보여 드리겠습니다.

  • 해당 Numpy 및 Scikit-learn 함수/추정기와 비교하는 방법(속도)
  • 이 속도 비교에서 데이터/문제 크기가 어떻게 중요한지.

이후 기사의 CuDF 예제

 
Pandas 데이터 처리와 유사한 데이터 엔지니어링 예제는 많은 데이터 과학자의 관심을 끌지만 이후 기사에서 CuDF 예제를 다룰 것입니다.

GPU 기반 하드웨어 플랫폼이란 무엇입니까?

 
나는 토성 구름 Tesla T4 GPU 인스턴스를 가동하는 데 문자 그대로 5분의 작업이 소요됩니다. 클라우드에 모든 기능을 갖추고 로드된(DS 및 AI 라이브러리 포함) 컴퓨팅 리소스 내 모든 데이터 과학 작업에 대한 서비스를 제공합니다. 매월 Jupyter Notebook 사용량이 10시간을 초과하지 않는 한 무료입니다.! 해당 서비스에 대해 더 자세히 알고 싶으시면,

Saturn Cloud Hosted 출시: 모두를 위한 GPU 데이터 과학!

GPU 컴퓨팅은 데이터 과학의 미래입니다. RAPIDS, TensorFlow, PyTorch와 같은 패키지를 사용하면 빛처럼 빠른…

가지고 있는 것 외에도 테슬라 T4 GPU, 4GB RAM과 8259GB 영구 디스크를 갖춘 2.50코어 Intel(R) Xeon(R) Platinum 16CL CPU @ 10GHz 시스템입니다. 따라서 이는 하드웨어 구성 관점(무료 계층으로 인해 하드 드라이브가 제한됨)에서 볼 때 매우 일반적인 설정입니다. 즉, 모든 데이터 과학자가 이러한 종류의 하드웨어를 소유할 수 있습니다. 유일한 구별 요소는 GPU가 있고 RAPIDS 제품군이 아무런 문제 없이 작동할 수 있도록 모든 CUDA 및 Python 라이브러리를 적절한 방식으로 설정한다는 것입니다.


큰 문제 크기가 항상 Apache Spark 또는 Hadoop 생태계를 의미하는 것은 아닙니다. 빅컴퓨팅은 빅데이터와 동일하지 않습니다. 다재다능한 데이터 과학자로서 모든 종류의 문제를 해결하려면 두 가지 모두를 알아야 합니다.

선형 방정식 시스템 풀기

 
다양한 크기의 선형 방정식 시스템을 만들고 Numpy(및 CuPy)를 사용합니다. linalg.solve다음 코드를 사용하여 이 문제를 해결하는 루틴,



그리고 CuPy 구현에 대한 코드는 (여러 호출에서) 단일 문자로 변경됩니다!



또한 Numpy 배열에서 인수로 CuPy 배열을 생성하는 방법을 참고하세요.

결과는 극적이지만. CuPy는 느리거나 Numpy와 비슷한 속도로 시작하지만 큰 문제 크기(방정식 수)에서는 확실히 이깁니다.



특이값 분해

 
다음으로, 다양한 크기의 무작위로 생성된 정사각 행렬(정규 분포에서 추출)을 사용하여 특이값 분해 문제를 해결합니다. 여기서는 코드 블록을 반복하지 않고 간결성을 위해 결과만 표시합니다.



이 문제 클래스에서는 CuPy 알고리즘이 Numpy 알고리즘에 비해 눈에 띄게 우수한 성능을 나타내지 않는다는 점에 유의해야 합니다. 아마도 이는 CuPy 개발자가 개선해야 할 부분일 것입니다.

기본으로 돌아가기: 행렬 반전

 
마지막으로 기본으로 돌아가서 (거의 모든 기계 학습 알고리즘에서 사용되는) 행렬 역산의 근본적인 문제를 고려합니다. 결과는 Numpy 패키지에 비해 CuPy 알고리즘이 매우 유리한 성능 향상을 보여줍니다.



K-평균 클러스터링 문제 해결

 
다음으로 우리는 너무 친숙한 k-평균 알고리즘을 사용한 클러스터링의 비지도 학습 문제를 고려합니다. 여기서는 CuML 함수를 Scikit-learn 패키지의 동등한 추정기와 비교합니다.

참고로 두 추정기 간의 API 비교는 다음과 같습니다.



이미지 소스사이 킷 러닝 및 CuML 웹사이트 (오픈소스 프로젝트)

 

다음은 10개의 특성/차원이 있는 데이터 세트의 결과입니다.



다음은 100개 기능 데이터 세트를 사용한 또 다른 실험 결과입니다.



분명히 샘플 크기(행 수)와 차원(열 수)이 GPU 기반 가속의 성능을 결정하는 데 중요했습니다.

너무나 익숙한 선형 회귀 문제

 
표 형식 데이터 세트를 처리하는 동안 속도 비교를 위해 선형 회귀 문제를 무시할 수 있는 사람은 누구입니까? 이전과 같은 흐름에 따라 문제 크기를 다양하게 변경하고(이번에는 샘플 수와 차원을 동시에 적용) CuML의 성능을 비교합니다. LinearRegression Scikit-learn 마구간에서 얻은 추정값입니다.

다음 그림의 X축은 1,000개 샘플/50개 기능에서 20,000개 샘플/1000개 기능까지 문제 크기를 나타냅니다.

다시 말하지만, CuML 추정기는 문제 복잡성(샘플 크기 및 차원성)이 증가함에 따라 훨씬 더 나은 성능을 발휘합니다.



요약

 
 
우리는 데이터 과학자가 딥 러닝 작업을 수행하지 않는 경우에도 일상적인 데이터 분석 및 기계 학습 작업에 GPU의 성능을 제공하는 것을 목표로 하는 RAPIDS 프레임워크의 가장 기본적인 구성 요소 두 가지에 중점을 두었습니다.



이미지 소스: 작성자가 무료 Pixabay 이미지로 제작함(링크 - 1링크 - 2링크 - 3)

 

우리는 토성 구름 Tesla T4 기반 인스턴스 쉽고 무료이며 빠른 설정 CuPy 및 CuML 라이브러리의 몇 가지 기능과 널리 사용되는 알고리즘의 성능 비교를 보여주었습니다.

  • RAPIDS 라이브러리의 모든 알고리즘이 매우 뛰어난 것은 아니지만 대부분은 그렇습니다.
  • 일반적으로 문제의 복잡성(샘플 크기 및 차원)이 증가함에 따라 성능 향상이 급격히 증가합니다.
  • GPU가 있는 경우 항상 RAPIDS를 사용해 보고 성능을 얻고 있는지 비교 및 ​​테스트하고 이를 데이터 과학 파이프라인의 신뢰할 수 있는 일꾼으로 만드십시오.
  • 코드 변경은 최소화되어 전환이 거의 존재하지 않습니다.

GPU의 강력한 성능으로 분석 및 데이터 과학 워크플로우를 시작하세요.

작가님의 글을 확인할 수 있습니다 GitHub의 저장소 기계 학습 및 데이터 과학의 코드, 아이디어 및 리소스 나와 같은 AI / 머신 러닝 / 데이터 과학에 대한 열정이 있다면 언제든지 링크드 인에 나를 추가하십시오 or 트위터에서 나를 따라와.

멜에게 감사드립니다.

 
실물. 허가를 받아 다시 게시했습니다.

관련 :

출처: https://www.kdnuggets.com/2021/08/gpu-powered-data-science-deep-learning-rapids.html

타임 스탬프 :

더보기 너 겟츠