Snowpark Python으로 머신 러닝 모델 학습시키기¶
이 항목에서는 Snowpark로 머신 러닝(ML) 모델을 학습시키는 방법을 설명합니다.
참고
Snowpark ML 은 Snowflake에서 머신 러닝을 위해 특별히 개발된 Snowpark Python의 동반자입니다. 이 항목에는 여전히 Snowpark Python을 사용한 머신 러닝에 대한 유용한 일반 정보가 포함되어 있으며, 특히 머신 러닝을 위한 자체 저장 프로시저를 작성하려는 경우 더욱 유용하게 활용할 수 있습니다.
Snowpark에 최적화된 웨어하우스¶
머신 러닝(Z) 모델 학습은 때로는 리소스를 매우 많이 사용할 수 있습니다. Snowpark에 최적화된 웨어하우스는 대량의 메모리와 컴퓨팅 리소스가 필요한 워크로드에 사용할 수 있는 일종의 Snowflake 가상 웨어하우스입니다. 예를 들어, 단일 노드에서 사용자 지정 코드를 사용하여 ML 모델을 학습하는 데 이런 웨어하우스를 사용할 수 있습니다.
이러한 최적화된 웨어하우스는 몇몇 UDF 및 UDTF 시나리오에도 도움이 될 수 있습니다.
Snowpark에 최적화된 웨어하우스를 만드는 방법에 대한 자세한 내용은 Snowpark에 최적화된 웨어하우스 섹션을 참조하십시오.
ML 학습에 Snowpark Python 저장 프로시저 사용하기¶
Snowpark Python 저장 프로시저 를 사용해 Snowflake 웨어하우스로 사용자 지정 코드를 실행할 수 있습니다. Snowpark에 최적화된 웨어하우스를 사용하면 Snowpark 저장 프로시저를 사용하여 Snowflake에서 직접 단일 노드 ML 학습 워크로드를 실행할 수 있습니다.
Python 저장 프로시저는 Python용 Snowpark API 를 사용해 중첩 쿼리를 실행하여 데이터 세트를 로딩하고 변환할 수 있으며, 그러면 데이터 세트가 저장 프로시저 메모리에 로드되어 전처리 및 ML 학습을 수행하게 됩니다. 학습된 모델은 Snowflake 스테이지에 업로드할 수 있으며 추론을 수행하는 UDF를 만드는 데 사용할 수 있습니다.
Snowpark에 최적화된 웨어하우스를 사용하여 전처리 및 학습 논리를 실행할 수 있지만, 더 나은 성능과 리소스 활용도를 달성하기 위해 별도의 웨어하우스에서 중첩된 쿼리를 실행해야 할 수도 있습니다. 데이터 세트 크기에 따라 별도의 쿼리 웨어하우스를 독립적으로 조정하고 확장할 수 있습니다.
지침¶
단일 노드 ML 학습 워크로드를 수행하려면 다음 지침을 따르십시오.
Snowpark에 최적화된 웨어하우스가 Snowpark에 최적화된 노드 1개로 구성되도록 하려면 WAREHOUSE_SIZE = MEDIUM으로 설정하십시오.
필요한 경우 원하는 동시성을 지원하려면 웨어하우스를 멀티 클러스터 웨어하우스 로 설정해 보십시오.
저장 프로시저에서 중첩된 쿼리를 실행하기 위해 별도의 웨어하우스를 사용해 보십시오.
session.use_warehouse() API를 사용하여 저장 프로시저 내부의 쿼리에 대한 웨어하우스를 선택합니다.
ML 학습 저장 프로시저를 실행하는 데 사용되는 Snowpark에 최적화된 웨어하우스에서 다른 워크로드를 혼합하지 마십시오.
예¶
다음 예제에서는 Snowpark에 최적화된 웨어하우스를 만들고 사용합니다. 그런 다음 이 예제에서는 선형 회귀 모델을 학습시키는 저장 프로시저를 만듭니다. 저장 프로시저는 MARKETING_BUDGETS_FEATURES 라는 테이블(여기에는 표시되지 않음)의 데이터를 사용합니다.
저장 프로시저를 호출하려면 다음 명령을 실행하십시오.
참고
다른 다양한 Snowpark Python 데모는 Snowflake-Labs GitHub 리포지토리 에서 사용할 수 있습니다. 광고 지출 및 ROI 예측 예제에서는 선형 회귀 모델을 학습시키는 저장 프로시저를 만드는 방법을 보여줍니다.