제퍼넷 로고

Snowflake와 Dask를 사용하여 기계 학습 파이프라인 구축

시간

Snowflake와 Dask를 사용하여 기계 학습 파이프라인 구축

이 게시물에서는 최근에 탐색한 도구 중 일부를 공유하고 이를 어떻게 사용하고 워크플로의 효율성을 개선하는 데 도움이 되었는지 보여드리고자 합니다. 제가 특히 이야기할 두 가지는 Snowflake와 Dask입니다. 두 개의 매우 다른 도구이지만 특히 ML 수명 주기의 일부로 서로를 잘 보완하는 도구입니다.


By 다니엘 폴리, 데이터 과학자

영상

개요

 
최근에 저는 데이터 과학자로서 제 작업 흐름을 개선할 수 있는 더 나은 방법을 찾고 있습니다. 저는 제 직업에서 ETL을 모델링하고 구축하는 데 상당한 시간을 보내는 경향이 있습니다. 이는 대규모 데이터 세트를 안정적이고 효율적으로 처리하기 위해 점점 더 많은 도구에 의존해야 한다는 것을 의미했습니다. 이러한 데이터 세트를 조작하기 위해 팬더를 사용하는 것이 항상 좋은 접근 방식은 아니라는 것을 빨리 깨달았고, 이로 인해 다른 대안을 살펴보게 되었습니다.

이 게시물에서는 제가 최근에 탐색한 몇 가지 도구를 공유하고 이 도구를 사용하는 방법과 워크플로의 효율성을 개선하는 데 도움이 된 방법을 보여 드리고자 합니다. 제가 특히 이야기할 두 가지는 Snowflake와 Dask입니다. 두 개의 매우 다른 도구이지만 특히 ML 수명 주기의 일부로 서로를 잘 보완하는 도구입니다. 이 게시물을 읽은 후 Snowflake와 Dask가 무엇인지, 어떻게 효과적으로 사용하고 자신의 사용 사례를 시작하고 실행할 수 있는지에 대해 잘 이해하게 되기를 바랍니다.

더 구체적으로 말하면 Snowflake와 Python을 사용하여 ETL 파이프라인을 구축하여 기계 학습 작업을 위한 교육 데이터를 생성하는 방법을 보여드리고자 합니다. 그런 다음 Dask를 소개하고 토성 구름 클라우드에서 병렬 처리를 활용하여 ML 교육 프로세스의 속도를 높이는 방법을 보여 주어 데이터 과학자로서의 생산성을 높일 수 있습니다.

Snowflake 및 Python에서 ETL 빌드

 
코딩을 시작하기 전에 Snowflake가 무엇인지 간단히 설명하겠습니다. 이것은 우리 팀이 그것을 사용하기 시작하기로 결정했을 때 최근에 한 질문입니다. 높은 수준에서 클라우드의 데이터 웨어하우스입니다. 얼마 동안 가지고 놀고 난 후에 그것이 얼마나 강력한지 깨달았습니다. 저에게 가장 유용한 기능 중 하나는 사용할 수 있는 가상 창고라고 생각합니다. 가상 웨어하우스는 동일한 데이터에 대한 액세스를 제공하지만 다른 가상 웨어하우스와 완전히 독립적이므로 컴퓨팅 리소스가 팀 간에 공유되지 않습니다. 이는 하루 종일 쿼리를 실행하는 다른 사용자로 인해 발생할 수 있는 성능 문제의 가능성을 제거하므로 매우 유용한 것으로 입증되었습니다. 그 결과 쿼리 실행을 기다리는 데 드는 좌절과 시간 낭비가 줄어들었습니다.

Snowflake를 사용할 것이므로 설정하고 직접 실험을 시작하는 방법을 간략하게 설명하겠습니다. 다음을 수행해야 합니다.

  • Snowflake 계정 설정하기
  • Snowflake로 데이터 가져오기
  • SQL 및 Snowflake UI를 사용하여 쿼리 작성 및 테스트
  • 쿼리를 실행하여 모델링을 위한 최종 데이터 세트를 생성할 수 있는 Python 클래스 작성

계정 설정은 무료 평가판에 등록하는 것만큼 쉽습니다. 웹 사이트. 완료되면 snowsql CLI를 다운로드할 수 있습니다. 여기에서 지금 확인해 보세요.. 이렇게 하면 Snowflake에 데이터를 쉽게 추가할 수 있습니다. 이 단계를 수행한 후 자격 증명과 명령줄을 사용하여 Snowflake에 연결할 수 있습니다.

snowsql -a <account_name> -u <user_name>

Snowflake UI에 로그인하면 URL에서 계정 이름을 찾을 수 있습니다. 다음과 같아야 합니다. xxxxx.europe-west2.gcp. 자, 다음 단계로 넘어가 데이터를 Snowflake로 가져오겠습니다. 여기에서 따라야 할 몇 가지 단계가 있습니다.

  • 가상 창고 만들기
  • 데이터베이스 만들기
  • 테이블 정의 및 생성
  • CSV 파일을 위한 준비 테이블 생성
  • 데이터를 테이블에 복사

운 좋게도 이것은 그다지 어렵지 않으며 우리는 이 작업을 모두 snowsql CLI를 사용하여 수행할 수 있습니다. 이 프로젝트의 경우 원하는 것보다 작은 데이터 세트를 사용하게 되지만 불행히도 회사 데이터를 사용할 수 없으며 온라인에서 적합한 큰 데이터 세트를 찾는 것이 상당히 어려울 수 있습니다. 그러나 Dunnhumby에서 무료로 사용할 수 있는 일부 거래 데이터를 찾았습니다. 카글. Dask가 sklearn과 비교하여 문제를 얼마나 잘 처리하는지 테스트하기 위해 이 데이터를 사용하여 훨씬 더 큰 합성 데이터 세트를 생성합니다.

먼저 Snowflake UI에서 다음 명령어를 사용하여 가상 웨어하우스와 데이터베이스를 설정해야 합니다.

만들 or 교체 창고 분석_wh 
Warehouse_size="X-SMALL"
자동_일시중단=180
auto_resume=참
initial_suspended=참;

만들 or 교체 데이터베이스 던험비;

우리의 데이터는 6개의 테이블로 변환할 6개의 CSV로 구성됩니다. 이 게시물은 데이터 해석보다 Snowflake와 Dask를 사용하는 것에 관한 것이므로 데이터 세트를 살펴보는 데 너무 많은 시간을 할애하지 않겠습니다.

다음은 테이블을 만드는 데 사용할 수 있는 명령입니다. 작업할 열과 데이터 유형만 미리 알아야 합니다.

create or replace table campaign_desc ( description string, campaign number,
start_day number,
end_day number ); create or replace table campaign_table ( description string, Household_key number, campaign number ); create or replace table coupon ( COUPON_UPC number, product_id number, campaign number ); create or replace table coupon_redempt ( household_key number, day number, coupon_upc number, campaign number ); create or replace table transactions ( household_key number, BASKET_ID number, day number, product_id number, quantity number, sales_value number, store_id number, retail_disc decimal, trans_time number, week_no number, coupon_disc decimal, coupon_match_disc decimal ); create or replace table demographic_data ( age_dec string, marital_status_code string, income_desc string, homeowner_desc string, hh_comp_desc string, household_size_desc string, kid_category_desc string, Household_key number);

이제 테이블이 생성되었으므로 테이블에 데이터를 가져오는 방법에 대해 생각할 수 있습니다. 이를 위해 CSV 파일을 준비해야 합니다. 이것은 기본적으로 Snowflake가 스테이지에서 테이블로 파일을 직접 로드할 수 있도록 하는 중간 단계에 불과합니다. 우리는 사용할 수 있습니다 PUT 우리의 스테이지에 로컬 파일을 넣는 명령 복사 이 데이터를 저장할 위치를 Snowflake에 지시하는 명령입니다.

use database dunnhumby; create or replace stage dunnhumby_stage; PUT file://campaigns_table.csv @dunnhumby.public.dunnhumby_stage; PUT file://campaigns_desc.csv @dunnhumby.public.dunnhumby_stage; PUT file://coupon.csv @dunnhumby.public.dunnhumby_stage; PUT file://coupon_d=redempt.csv @dunnhumby.public.dunnhumby_stage; PUT file://transaction_data.csv @dunnhumby.public.dunnhumby_stage; PUT file://demographics.csv @dunnhumby.public.dunnhumby_stage;

빠른 확인으로 이 명령을 실행하여 스테이징 영역에 무엇이 있는지 확인할 수 있습니다.

ls @dunnhumby.public.dunnhumby_stage;

이제 아래 쿼리를 사용하여 데이터를 테이블에 복사하기만 하면 됩니다. Snowflake에 로그인한 후 Snowflake UI 또는 명령줄에서 실행할 수 있습니다.

copy into campaign_table from @dunnhumby.public.dunnhumby_stage/campaigns_table.csv.gz file_format = ( type = csv
skip_header=1 error_on_column_count_mismatch = false field_optionally_enclosed_by=’”’); copy into campaign_desc from @dunnhumby.public.dunnhumby_stage/campaign_desc.csv.gz file_format = ( type = csv
skip_header=1 error_on_column_count_mismatch = false field_optionally_enclosed_by=’”’); copy into coupon from @dunnhumby.public.dunnhumby_stage/coupon.csv.gz file_format = ( type = csv
skip_header=1 error_on_column_count_mismatch = false field_optionally_enclosed_by=’”’); copy into coupon_redempt from @dunnhumby.public.dunnhumby_stage/coupon_redempt.csv.gz file_format = ( type = csv
skip_header=1 error_on_column_count_mismatch = false field_optionally_enclosed_by=’”’); copy into transactions from @dunnhumby.public.dunnhumby_stage/transaction_data.csv.gz file_format = ( type = csv
skip_header=1 error_on_column_count_mismatch = false field_optionally_enclosed_by=’”’); copy into demographic_data from @dunnhumby.public.dunnhumby_stage/demographics.csv.gz file_format = ( type = csv skip_header=1 error_on_column_count_mismatch = false field_optionally_enclosed_by=’”’);

좋습니다. 운이 좋으면 먼저 테이블에 데이터가 있습니다. 오, 그것이 그렇게 간단하다면, 이 전체 과정을 올바르게 맞추는 데 몇 번의 시도가 필요했습니다(철자가 틀린 것에 주의하십시오). 바라건대, 당신은 이것을 따르고 잘 갈 수 있습니다. 흥미로운 내용에 점점 더 가까워지고 있지만 위의 단계는 프로세스의 중요한 부분이므로 이러한 각 단계를 이해해야 합니다.

SQL로 파이프라인 작성

 
이 다음 단계에서는 대상과 기능을 생성하고 마지막으로 훈련 데이터 세트를 생성하는 쿼리를 작성합니다. 모델링을 위한 데이터셋을 생성하는 한 가지 접근 방식은 이 데이터를 메모리로 읽어들이고 팬더를 사용하여 새로운 기능을 생성하고 모든 데이터 프레임을 함께 결합하는 것입니다. 이것은 일반적으로 Kaggle 및 기타 온라인 자습서에서 볼 수 있는 접근 방식입니다. 이것의 문제는 특히 합리적인 크기의 데이터 세트로 작업할 때 매우 효율적이지 않다는 것입니다. 이러한 이유로 대규모 데이터 세트를 매우 잘 처리하고 엄청난 시간을 절약할 수 있는 Snowflake와 같은 제품에 무거운 작업을 아웃소싱하는 것이 훨씬 더 좋습니다. 내가 보여주려고 하는 것에 정말 중요하지 않기 때문에 여기에서 데이터 세트의 세부 사항에 대해 자세히 알아보는 데 많은 시간을 할애하지 않을 것입니다. 그러나 일반적으로 모델링을 시작하기 전에 데이터를 탐색하고 이해하는 데 상당한 시간을 할애해야 합니다. 이러한 쿼리의 목표는 데이터를 사전 처리하고 나중에 모델에서 사용할 수 있는 몇 가지 간단한 기능을 만드는 것입니다.

대상 정의

 
분명히 지도 머신 러닝의 핵심 구성 요소는 예측할 적절한 대상을 정의하는 것입니다. 우리의 사용 사례에서는 사용자가 마감 주 후 2주 이내에 다시 방문하는지 여부를 계산하여 이탈을 예측할 것입니다. XNUMX주의 선택은 매우 임의적이며 해결하려는 특정 문제에 따라 다르지만 이 프로젝트에서는 괜찮다고 가정하겠습니다. 일반적으로 고객을 주의 깊게 분석하여 이탈에 대한 적절한 정의에 도달하기 위해 방문 간 격차의 분포를 이해하려고 합니다.

여기서 주요 아이디어는 각 테이블에 대해 각 기능에 대한 값을 포함하는 family_key당 하나의 행을 갖기를 원한다는 것입니다.

캠페인 기능

 

거래 기능

 
아래에서는 평균, 최대값 및 표준 편차와 같은 집계 통계를 기반으로 몇 가지 간단한 메트릭을 만듭니다.

인구 통계 학적 특징

 
이 데이터 세트에는 누락된 데이터가 많이 있으므로 여기에서 전가를 사용하기로 결정했습니다. 누락 데이터 삭제에서 고급 전가 방법에 이르기까지 누락 데이터에 대한 많은 기술이 있습니다. 나는 여기에서 삶을 편하게 만들고 결측값을 모드로 대체했습니다. 이 데이터가 누락된 이유를 이해하는 것이 데이터 처리 방법을 결정하는 데 정말 중요하기 때문에 일반적으로 이 접근 방식을 사용하는 것이 좋습니다. 먼저 각 기능에 대한 모드를 계산한 다음 데이터가 누락된 경우 병합을 사용하여 각 행을 모드로 대체합니다.

훈련 데이터

 
마지막으로 기본 테이블을 함께 조인하여 교육 데이터에 대한 쿼리를 작성하고 모델을 작성하는 데 사용할 수 있는 대상, 캠페인, 트랜잭션 및 인구 통계학적 기능이 포함된 테이블로 끝납니다.

간단히 말해서 Snowflake의 기능과 뉘앙스에 대해 더 알고 싶은 분들을 위해 다음 책을 추천합니다. 눈송이 요리책. 나는 이 책을 읽기 시작했고 Snowflake를 사용하는 방법에 대한 정말 유용한 정보로 가득 차 있으며 여기보다 훨씬 더 자세히 설명되어 있습니다.

ETL용 파이썬 코드

 
이 ETL에 필요한 마지막 부분은 이를 실행하는 스크립트를 작성하는 것입니다. 이제 이것은 정기적으로 이와 같은 ETL을 실행할 계획인 경우에만 실제로 필요하지만 이는 좋은 습관이며 필요할 때 ETL을 훨씬 쉽게 실행할 수 있습니다.

EtlTraining 클래스의 주요 구성 요소에 대해 간단히 논의해 보겠습니다. 우리 수업은 마감 주인 하나의 입력을 받습니다. 이는 데이터가 데이터 세트에서 정의되는 방식 때문이지만 일반적으로 훈련 데이터 생성을 위해 선택하려는 마감 날짜에 해당하는 날짜 형식입니다.

쿼리 목록을 초기화하여 쿼리를 쉽게 반복하고 실행할 수 있습니다. 또한 Snowflake 연결에 전달하는 매개변수가 포함된 사전을 만듭니다. 여기서는 Saturn Cloud에서 설정한 환경 변수를 사용합니다. 여기에 이 작업을 수행하는 방법에 대한 가이드입니다. Snowflake에 연결하는 것은 그리 어렵지 않습니다. Snowflake 커넥터를 사용하고 자격 증명 사전을 전달하기만 하면 됩니다. Snowflake 연결 메서드에서 이를 구현하고 이 연결을 속성으로 반환합니다.

이러한 쿼리를 조금 더 쉽게 실행할 수 있도록 ml_query_pipeline.py 파일에 각 쿼리를 파이썬 문자열 변수로 저장합니다. execute_etl 메소드는 주석에 표시된 대로 정확히 수행합니다. 각 쿼리를 반복하고 형식을 지정하고 실행하고 Snowflake 연결을 닫음으로써 마무리합니다.

이 ETL을 실행하려면 터미널에 아래 명령을 입력하기만 하면 됩니다. (여기서 ml_pipeline은 위의 스크립트 이름입니다.)

python -m ml_pipeline -w 102 -j ‘train’

간단히 말해서, 정기적으로 이와 같은 ETL을 실행하고 싶을 것입니다. 예를 들어, 일일 예측을 하려면 고객 중 이탈할 가능성이 있는 고객을 식별할 수 있도록 매일 이와 같은 데이터 세트를 생성하여 모델에 전달해야 합니다. 여기서 자세히 다루지는 않겠지만 제 직업에서는 Airflow를 사용하여 ETL을 조정하므로 관심이 있는 경우 확인하는 것이 좋습니다. 사실 최근에 책 'Apache Airflow를 사용한 데이터 파이프라인'는 훌륭하고 실제로 공기 흐름을 사용하는 방법에 대한 몇 가지 확실한 예와 조언을 제공합니다.

Dask 및 모델링

 
이제 데이터 파이프라인이 구축되었으므로 모델링에 대해 생각할 수 있습니다. 이 게시물의 또 다른 주요 목표는 ML 개발 프로세스의 일부로 Dask를 사용할 때의 이점을 강조하고 사용하기가 얼마나 쉬운지 보여주는 것입니다.

프로젝트의 이 부분에서 나는 또한 다음을 사용했습니다. 토성 구름 이것은 클라우드의 컴퓨터 클러스터에서 Dask의 기능을 활용할 수 있게 해주는 정말 좋은 도구입니다. 저를 위해 Saturn을 사용하는 주요 이점은 작업을 공유하기가 정말 쉽고 필요할 때 컴퓨팅을 확장하는 것이 매우 간단하며 무료 계층 옵션이 있다는 것입니다. 일반적으로 모델 개발은 Dask의 정말 좋은 사용 사례입니다. 우리는 일반적으로 다양한 모델을 훈련하고 무엇이 가장 잘 작동하는지 확인하기를 원하기 때문입니다. 모델 개발의 다른 중요한 측면에 더 많은 시간을 할애할 수 있으므로 이 작업을 더 빠르게 수행할 수 있습니다. Snowflake와 유사하게 가입만 하면 됩니다. 여기에서 지금 확인해 보세요. Jupyter 랩의 인스턴스를 매우 빠르게 스핀업하고 직접 실험을 시작할 수 있습니다.

이제 나는 이 시점에서 Dask에 대해 몇 번 언급했지만 그것이 무엇인지 제대로 설명하지 못했다는 것을 깨달았습니다. 따라서 잠시 시간을 내어 Dask에 대한 매우 높은 수준의 개요와 Dask가 훌륭하다고 생각하는 이유를 알려 드리겠습니다. 아주 간단히 말해서, Dask는 병렬 컴퓨팅을 활용하여 매우 큰 데이터 세트에 대한 작업을 처리하고 수행할 수 있는 파이썬 라이브러리입니다. 그리고 가장 좋은 점은 이미 Python에 익숙하다면 구문이 매우 유사하기 때문에 Dask가 매우 간단해야 한다는 것입니다.

아래 그래프는 Dask의 주요 구성 요소를 강조 표시합니다.



출처: 다스크 문서

컬렉션을 사용하면 여러 컴퓨터에서 실행할 수 있는 작업 그래프를 만들 수 있습니다. 이러한 데이터 구조 중 일부는 배열 및 데이터 프레임과 같이 매우 친숙하게 들릴 수 있으며 파이썬에서 찾을 수 있는 것과 유사하지만 몇 가지 중요한 차이점이 있습니다. 예를 들어, Dask 데이터 프레임은 병렬로 작업을 수행할 수 있는 방식으로 구축된 팬더 데이터 프레임 묶음으로 생각할 수 있습니다.

컬렉션에서 계속해서 스케줄러가 있습니다. 작업 그래프를 생성하면 스케줄러가 나머지를 처리합니다. 워크플로를 관리하고 이러한 작업을 단일 시스템으로 보내거나 클러스터 전체에 배포합니다. Dask가 작동하는 방식에 대한 간략한 개요를 제공하기를 바랍니다. 자세한 내용은 다음을 확인하는 것이 좋습니다. 선적 서류 비치 또는이 . 둘 다 이 주제를 더 깊이 파헤칠 수 있는 매우 좋은 리소스입니다.

모델링을 위한 Python 코드

 
모델링할 때 항상 먼저 시도할 소수의 이동 알고리즘을 사용하는 경향이 있습니다. 이것은 일반적으로 내가 가지고 있는 특정 문제에 적합한 것이 무엇인지에 대한 좋은 아이디어를 줄 것입니다. 이러한 모델은 Logistic Regression, Random Forest 및 GradientBoosting입니다. 내 경험상 표 형식 데이터로 작업할 때 이러한 알고리즘은 일반적으로 꽤 좋은 결과를 제공합니다. 아래에서 이 3가지 모델을 사용하여 sklearn 모델링 파이프라인을 구축합니다. 파이프라인이 모든 sklearn 분류 모델에서 작동해야 하므로 여기에서 사용하는 정확한 모델은 그다지 중요하지 않습니다.

더 이상 고민하지 않고 코드를 살펴보겠습니다. 운 좋게도 대부분의 전처리를 Snowflake에 아웃소싱했으므로 여기에서 교육 데이터를 너무 많이 엉망으로 만들 필요가 없지만 sklearn 파이프라인을 사용하여 몇 가지 추가 단계를 추가할 것입니다.

아래의 첫 번째 코드 스니펫은 sklearn을 사용할 때의 파이프라인을 보여줍니다. 우리의 데이터 세트는 평범한 오래된 pandas 데이터 프레임이고 전처리 단계는 모두 sklearn 방법을 사용하여 수행됩니다. 여기에는 특별히 이상할 것이 없습니다. Snowflake ETL에서 생성된 테이블에서 데이터를 읽고 이를 sklearn 파이프라인으로 전달합니다. 일반적인 모델링 단계가 여기에 적용됩니다. 데이터 세트를 훈련 및 테스트로 분할하고 일부 전처리를 수행합니다. 즉, 중앙값을 사용하여 누락된 값을 대치하고, 데이터를 확장하고, 범주형 데이터를 원-핫 인코딩합니다. 저는 sklearn 파이프라인의 열렬한 팬이며 기본적으로 요즘 모델을 개발할 때마다 사용합니다. 정말 깨끗하고 간결한 코드를 용이하게 해줍니다.

이 파이프라인은 약 2백만 개의 행이 있는 데이터 세트에서 어떻게 수행됩니까? 초매개변수 조정 없이 이 모델을 실행하는 데 약 34분이 걸립니다. 아, 좀 느립니다. 모든 유형의 초매개변수 조정을 수행하려는 경우 이것이 얼마나 오래 걸릴지 상상할 수 있습니다. 좋습니다. 이상적이지는 않지만 Dask가 문제를 처리하는 방법을 살펴보겠습니다.

Dask ML Python 코드

 
여기서 우리의 목표는 위의 sklearn 파이프라인을 이길 수 있는지 확인하는 것입니다. 스포일러 경고, 우리는 확실히 할 수 있습니다. Dask의 멋진 점은 이미 파이썬에 익숙할 때 진입 장벽이 상당히 낮다는 것입니다. 우리는 이 파이프라인을 약간의 변경만으로 Dask에서 시작하고 실행할 수 있습니다.

첫 번째 변경 사항은 수입품이 다르다는 것입니다. 이 파이프라인과 이전 파이프라인의 주요 차이점 중 하나는 pandas 데이터 프레임 대신 Dask 데이터 프레임을 사용하여 모델을 훈련한다는 것입니다. Dask 데이터 프레임은 동시에 각각에 대해 계산을 수행할 수 있는 팬더 데이터 프레임 묶음으로 생각할 수 있습니다. 이것이 Dask 병렬 처리의 핵심이며 이 파이프라인의 교육 시간을 단축할 것입니다.

우리가 사용하는 알림 @dask.지연 우리의 데코레이터로 load_training_data 함수. 이것은 Dask가 우리를 위해 이 기능을 병렬화하도록 지시합니다.

우리는 또한 Dask에서 일부 전처리 및 파이프라인 방법을 가져올 것이며 가장 중요한 것은 SaturnCluster를 가져와야 모델 교육을 위한 클러스터를 생성할 수 있다는 것입니다. 이 코드의 또 다른 주요 차이점은 dask.지속 우리 기차 테스트 분할 후. 이 시점 이전에는 Dask의 지연 평가로 인해 실제로 계산된 함수가 없었습니다. 일단 우리는 Dask에게 데이터를 작업자에게 보내고 지금까지 생성한 작업을 실행하고 이러한 객체를 클러스터에 남겨두라고 지시하지만 지속 방법을 사용합니다.

마지막으로 지연된 방법을 사용하여 모델을 훈련합니다. 다시 말하지만, 이를 통해 지연 방식으로 파이프라인을 생성할 수 있습니다. 파이프라인은 다음 코드에 도달할 때까지 실행되지 않습니다.

fit_pipelines = dask.compute(*pipelines_)

이번에는 정확히 동일한 데이터 세트에서 이 파이프라인을 실행하는 데 약 10분밖에 걸리지 않았습니다. 너무 초라하지 않은 3.4 배의 속도 향상입니다. 이제 원하는 경우 Saturn의 버튼을 터치하여 컴퓨팅 리소스를 확장하여 이 작업의 속도를 더욱 높일 수 있습니다.

파이프라인 배포

 
앞서 언급했듯이 기류와 같은 것을 사용하여 이와 같은 파이프라인을 매우 정기적으로 실행하고 싶을 것입니다. 공기 흐름을 위해 모든 것을 설정하는 초기 번거로움을 원하지 않는 경우 Saturn Cloud가 Jobs와 함께 간단한 대안을 제공합니다. 작업을 통해 코드를 패키지화하고 정기적으로 또는 필요에 따라 실행할 수 있습니다. 기존 프로젝트로 이동하여 작업 만들기를 클릭하기만 하면 됩니다. 그렇게 하면 다음과 같아야 합니다.



출처: 토성

 

여기에서 위의 python 파일이 이미지의 디렉토리에 있는지 확인하고 위의 python 명령을 입력하기만 하면 됩니다.

python -m ml_pipeline -w 102 -j 'train'

원하는 경우 cron 구문을 사용하여 ETL을 매일 실행하도록 일정을 설정할 수도 있습니다. 관심 있으신 분들은 여기 튜토리얼 그것은 모든 핵심에 들어갑니다.

결론 및 시사점

 
글쎄, 우리는 이 시점에서 우리 프로젝트의 끝에 도달했습니다. 이제 분명히 하이퍼파라미터 조정 및 모델 배포와 같은 ML 개발 주기의 일부 핵심 부분을 생략했지만 다른 날로 미루겠습니다. Dask를 시도해야 한다고 생각합니까? 저는 전문가는 아니지만 지금까지 본 결과로는 확실히 매우 유용해 보이며 데이터 과학자로서 더 많은 실험을 하고 데이터 과학자로서의 일상 업무에 통합할 수 있는 더 많은 기회를 찾게 되어 매우 기쁩니다. 이 기능이 유용하고 Snowflake 및 Dask의 장점 중 일부를 확인하고 직접 실험을 시작할 수 있기를 바랍니다.

자료

내 다른 게시물 중 일부는 흥미롭게 볼 수 있습니다.

 
스트리밍 데이터 파이프라인을 구축하자

 
가우스 혼합 모델링(GMM)
 

시계열 예측에 대한 베이지안 접근 방식
 

참고: 이 게시물의 일부 링크는 제휴사 링크입니다.

 
바이오 : 다니엘 폴리 전 이코노미스트에서 데이터 과학자로 변신하여 모바일 게임 업계에서 일하고 있습니다.

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

관련 :


PlatoAi. Web3 재창조. 데이터 인텔리전스 증폭.
액세스하려면 여기를 클릭하십시오.

출처: https://www.kdnuggets.com/2021/07/building-machine-learning-pipelines-snowflake-dask.html

spot_img

최신 인텔리전스

spot_img

우리와 함께 채팅

안녕하세요! 어떻게 도와 드릴까요?