Snowflake ML 모델 개발¶
Snowflake ML 은 오픈 소스(OSS) 코드를 사용하여 데이터에서 직접 머신 러닝 모델을 학습할 수 있는 매우 유연한 플랫폼입니다. 이 접근 방식을 사용하면 복잡한 데이터 이동이 필요 없으며 선호하는 ML 라이브러리, 도구 및 개발 프로세스를 사용할 수 있습니다.
Snowflake ML 은 최적화된 데이터 수집 파이프라인을 사용하여 ML 워크플로를 가속화하기 위해 Snowflake 호환 데이터 원본과 통합됩니다. 고급 분산형 API를 사용하면 모델 학습 및 튜닝을 효율적으로 확장할 수 있습니다. ML 런타임 이미지가 있는 노트북 환경에서 모든 Snowflake ML 기능에 액세스할 수 있으므로 패키지와 인프라를 관리할 필요가 없습니다.
모델 학습 및 튜닝하기¶
Container Runtime에서 Notebooks로 빌드하기¶
Container Runtime for ML 은 인기 패키지가 포함된 사전 구축된 ML 환경을 제공합니다. 공개 또는 비공개 PyPI 리포지토리에서 라이브러리를 안전하게 추가하여 환경을 사용자 지정할 수 있습니다. 분산된 API를 통해 데이터를 변환하고 AI/ML 워크플로를 대규모로 실행할 수 있습니다.
Snowflake의 배포된 API를 사용하여 워크플로를 확장하는 것 외에도 Ray를 사용할 수도 있습니다. Ray는 Python 애플리케이션을 확장할 수 있는 간단하고 유연한 방법을 제공하는 오픈 소스 프레임워크입니다. 여러 노드에서 코드를 병렬로 실행할 수 있습니다. Snowflake ML 과 함께 Ray를 사용하는 방법에 대한 자세한 내용은 Ray 시작하기 가이드 를 참조하십시오.

Container Runtime Notebooks 는 Container Runtime과 통합된 Snowflake Notebooks입니다. 사전 빌드된 ML 런타임 이미지, 분산 처리, CPU 컴퓨팅 풀, GPU 컴퓨팅 풀과 같은 기능을 제공합니다. 데이터 과학자 또는 ML 엔지니어인 경우, Container Runtime Notebooks는 ML 개발 작업에 특히 유용할 수 있습니다.
모든 외부 IDE 에서 원격 실행¶
또한 선호하는 외부 IDE (예: Visual Studio Code 또는 클라우드 기반 Jupyter Notebook)를 사용하여 Container Runtime에서 ML 워크플로를 원격으로 실행할 수도 있습니다. 워크플로를 원격으로 실행하려면 Python 코드, 함수 또는 파일에 주석을 달고 Container Runtime 인스턴스에서 실행하십시오. 자세한 내용은 Python 함수를 Snowflake ML Job으로 실행하기 섹션을 참조하십시오.
코드 개발하기¶
오픈 소스 오브젝트로 직접 데이터 수집하기¶
Snowflake 테이블과 스테이지에서 pandas 데이터프레임, PyTorch 데이터세트, TensorFlow 데이터세트와 같은 오픈 소스 오브젝트로의 최적화된 데이터 로딩을 위해 Data Connector 를 사용하십시오. Data Connector는 Container Runtime의 분산 처리를 사용하여 수집 속도를 높입니다. 데이터 로딩 후에는 모든 오픈 소스 라이브러리와 함께 데이터를 사용할 수 있습니다.
Data Connector를 사용하면 여러 원본에서 구조화된 데이터와 비정형 데이터를 로딩할 수 있습니다. 다용도로 사용할 수 있을 뿐만 아니라 대용량 데이터 세트를 로딩할 때 to_pandas
보다 향상된 성능을 제공합니다.
OSS 프레임워크로 학습하기¶
기존 오픈 소스 코드 또는 학습 모델을 오픈 소스 라이브러리와 함께 Snowflake에서 직접 사용하는 것을 권장합니다.
Snowflake ML 워크플로에 다음 특성을 사용할 수 있습니다.
Snowflake 기능 스토어 에서 빌드 및 관리되는 특성을 가져옵니다.
Snowpark를 사용하여 데이터 전처리 및 변환을 확장합니다.
Data Connector API 를 사용하여 데이터를 메모리로 가져옵니다.
최신 OSS 프레임워크를 활용하여 특성을 엔지니어링하고 모델을 학습시키고 평가하십시오.
분산형 API를 사용하여 워크로드 확장하기¶
대규모 데이터 세트에 대한 ML 모델 학습은 단일 노드의 리소스를 초과할 수 있습니다. Snowflake의 분산형 API를 사용하면 여러 노드에 걸쳐 특성 공학 및 학습 워크플로를 확장하여 성능을 향상시킬 수 있습니다. 배포된 API를 사용하여 다음을 수행할 수 있습니다.
snowflake.ml.modeling.preprocessing 에서 분산 전처리 함수를 활용하십시오.
Container Runtime for ML 에서 최적화된 학습 API를 사용하여 하나 이상의 노드에 걸쳐 모델 학습을 확장하십시오.
분산된 HPO 로 하이퍼 매개 변수로 튜닝하기¶
Snowflake ML 의 배포된 HPO 로 하이퍼 매개 변수 튜닝을 가속화하여 Snowflake에 저장된 데이터에 최적화하십시오. hyperopt 또는 optuna와 같은 오픈 소스 라이브러리를 사용할 수도 있습니다.
학습 워크플로 운영하기¶
Snowflake ML 작업 를 사용하면 Python 기반 ML 워크로드를 원격으로 실행할 수 있으므로 Snowflake Notebooks와 같은 환경에서 대화형으로 개발된 작업을 쉽게 작업할 수 있습니다. 이를 통해 안전하고 재현 가능한 ML 학습 및 채점을 보장하며 CI/CD 파이프라인과 원활하게 통합됩니다.
ML 작업 및 파이프라인을 주기적으로 실행하도록 예약하기¶
작업 소개 를 사용하여 복잡한 DAG를 빌드하여 ML 학습 파이프라인을 표현하며, 여기서 각 작업은 워크플로의 단계에 해당합니다. 이러한 파이프라인은 예약에 따라 실행되거나 이벤트에 의해 트리거될 수 있습니다. 필요에 따라 각 단계에 리소스를 할당하여 파이프라인을 최적화할 수 있습니다. Snowsight는 이러한 파이프라인을 보고 관리하며 수정할 수 있는 기본 제공 도구를 제공합니다.
Snowflake에 내장된 git 통합 기능을 사용하면 CI/CD 구성에 가장 적합한 ML 파이프라인을 구성하고 트리거하도록 git 훅을 구성할 수도 있습니다.