Snowflake ML용 Python APIs

snowflake-ml-python Python 패키지는 다양한 Snowflake ML 워크플로 구성 요소에 연결되는 Python APIs를 제공하며, 자체 모델 구축 및 훈련을 위한 APIs도 포함되어 있습니다. 이러한 APIs는 개인 워크스테이션에서 즐겨 사용하는 Python IDE, Snowsight 워크시트 또는 Snowflake Notebook에서 사용할 수 있습니다.

이 라이브러리를 사용한 엔드투엔드 워크플로 예시는 Snowpark ML을 사용한 머신 러닝 소개 섹션을 참조하십시오.

Snowflake Notebooks에서 Snowflake ML 사용하기

Snowflake Notebooks 는 데이터 작업을 위한 사용하기 쉬운 노트북 인터페이스를 제공하며 Python, SQL, Markdown을 혼합합니다. 노트북에서 Snowflake ML 기능을 사용하려면 노트북 상단의 Packages 메뉴를 사용해 Anaconda 패키지 snowflake-ml-python 을 선택합니다.

Notebooks은 CPU 및 GPU 런타임 옵션을 모두 지원합니다. 많은 종류의 모델에 GPU가 필요하거나 GPU의 이점을 누릴 수 있습니다.

중요

snowflake-ml-python 패키지와 해당 종속성은 조직의 패키지 정책 에 의해 허용되어야 합니다.

Snowsight 워크시트에서 Snowflake ML 사용하기

Snowsight Worksheets 는 Python 코드를 실행하기 위한 강력하고 다양한 메서드를 제공합니다. 워크시트에서 Snowflake ML 기능을 사용하려면 워크시트 상단의 Packages 메뉴를 사용해 Anaconda 패키지 snowflake-ml-python 을 선택합니다.

중요

snowflake-ml-python 패키지와 해당 종속성은 조직의 패키지 정책 에 의해 허용되어야 합니다.

로컬에서 Snowflake ML 사용하기

자체 워크스테이션 또는 Snowflake 외부에서 개발하려면 snowflake-ml-python 패키지를 설치해야 합니다. 모든 Snowpark ML 특징은 단일 패키지 snowflake-ml-python 에 제공됩니다. 패키지는 Snowflake conda 채널에서 conda 명령을 사용하여 설치하거나 Python 패키지 인덱스(PyPI)에서 pip 를 사용하여 설치할 수 있습니다. Conda가 기본 설정되어 있습니다.

Snowflake conda 채널에서 설치하기

중요

ARM 기반 Mac(M1 또는 M2 칩 사용)의 conda에서 snowflake-ml-python 을 설치하려면 conda 환경을 생성할 때 시스템 아키텍처를 지정해야 합니다. 이를 수행하려면 conda create 명령 CONDA_SUBDIR=osx-arm64 conda create --name snowpark-mlCONDA_SUBDIR=osx-arm64 를 포함합니다.

  1. Snowpark ML을 설치할 conda 환경을 만듭니다. 기존 환경을 사용하려면 이 단계를 건너뛰십시오.

    conda create --name snowpark-ml
    
    Copy
  2. Conda 환경을 활성화합니다.

    conda activate snowpark-ml
    
    Copy
  3. Snowflake conda 채널에서 snowflake-ml-python 설치:

    conda install --override-channels --channel https://repo.anaconda.com/pkgs/snowflake/ snowflake-ml-python
    
    Copy

가능하면 항상 Snowpark ML에서 검증된 패키지를 받을 수 있도록 Snowflake conda 채널에서 패키지를 설치하십시오.

PyPI에서 설치하기

Python 패키지 인덱스(PyPI)에서 표준 Python 패키지 관리자 pip 를 사용하여 snowflake-ml-python 을 설치할 수 있습니다.

경고

conda 환경을 사용하는 경우 이 설치 프로시저를 사용하지 마십시오. 대신 conda 명령 을 사용하십시오.

  1. 프로젝트 디렉터리로 변경하고 Python 가상 환경을 활성화합니다.

    cd ~/projects/ml
    source .venv/bin/activate
    
    Copy
  2. snowflake-ml-python 패키지 설치:

    python -m pip install snowflake-ml-python
    
    Copy

선택적 모델링 종속성 설치하기

일부 Snowpark Modeling APIs에는 Snowpark snowflake-ml-python 의 종속성으로 설치되지 않은 종속성이 필요합니다. scikit-learn 및 xgboost 패키지는 기본적으로 설치되지만 lightgbm은 선택적 종속성입니다. snowflake.ml.modeling.lightgbm 네임스페이스의 클래스를 사용하려면 lightgbm을 직접 설치하십시오.

다음 명령을 사용하여 conda 환경을 활성화하고 Snowflake conda 채널에서 lightgbm을 설치하십시오.

conda activate snowpark-ml
conda install --override-channels --channel https://repo.anaconda.com/pkgs/snowflake/ lightgbm
Copy

다음 명령을 사용하여 가상 환경을 활성화하고 pip 를 사용하여 lightgbm을 설치합니다.

.venv/bin/activate
python -m pip install 'snowflake-ml-python[lightgbm]'
Copy

Snowflake는 수시로 추가 선택적 종속성을 추가할 수 있습니다. pip를 사용하여 모든 선택적 종속성을 설치하려면 다음을 수행하십시오.

.venv/bin/activate
python -m pip install 'snowflake-ml-python[all]'
Copy

Snowpark Python 설정하기

Snowpark Python은 snowflake-ml-python 의 종속성이며 자동으로 함께 설치됩니다. Snowpark Python이 시스템에 아직 설정되어 있지 않은 경우 추가 구성 단계를 수행해야 할 수 있습니다. Snowpark Python 설정 지침은 Snowpark Python을 위한 개발 환경 설정하기 섹션을 참조하십시오.

Snowflake에 연결하기

Python에서 Snowflake ML 기능을 사용하기 전에 Snowpark Session 오브젝트를 사용하여 Snowflake에 연결합니다. 세션을 생성하기 위한 구성 설정을 가져오려면 snowflake.ml.utils.connection_params 모듈에서 SnowflakeLoginOptions 함수를 사용하십시오. 이 함수는 SnowSQL 구성 파일 에 명명된 연결 또는 사용자가 설정한 환경 변수에서 연결 설정을 읽을 수 있습니다. 이 함수는 연결 생성에 사용할 수 있는 이러한 매개 변수가 포함된 사전을 반환합니다.

다음 예에서는 SnowSQL 구성 파일에 있는 명명된 연결 myaccount 에서 연결 매개 변수를 읽습니다. Snowpark Python 세션을 생성하려면 Session 클래스에 대한 빌더를 생성하고 연결 정보를 빌더의 configs 메서드에 전달하십시오.

from snowflake.snowpark import Session
from snowflake.ml.utils import connection_params

params = connection_params.SnowflakeLoginOptions("myaccount")
sp_session = Session.builder.configs(params).create()
Copy

이제 세션을 필요로 하는 모든 사용자에게 세션을 전달할 수 있습니다.

Python용 Snowflake Connector터 연결에서 Snowpark Python 세션을 생성하려면 연결 오브젝트를 세션 빌더에 전달합니다. 여기서 connection 은 Python 연결용 Snowflake 커넥터입니다.

session = Session.builder.configs({"connection": connection}).create()
Copy

웨어하우스 지정하기

모델 훈련이나 추론과 같은 여러 Snowflake ML 기능은 Snowflake 웨어하우스에서 코드를 실행합니다. 이러한 작업은 연결하는 데 사용하는 세션에서 지정한 웨어하우스에서 실행됩니다. 예를 들어, SnowSQL 구성 파일 의 명명된 연결에서 세션을 생성하는 경우 명명된 구성에서 warehousename 매개 변수를 사용하여 웨어하우스를 지정할 수 있습니다.

구성에 아직 존재하지 않는 경우 여기에 표시된 대로 Session 오브젝트를 생성할 때 웨어하우스 설정을 추가할 수 있습니다.

from snowflake.snowpark import Session
from snowflake.ml.utils import connection_params
# Get named connection from SnowQSL configuration file
params = connection_params.SnowflakeLoginOptions("myaccount")
# Add warehouse name for model method calls if it's not already present
if "warehouse" not in params:
    params["warehouse"] = "mlwarehouse"
sp_session = Session.builder.configs(params).create()
Copy

세션에 지정된 웨어하우스가 없거나 다른 웨어하우스를 사용하려면 세션의 use_warehouse 메서드를 호출하여 웨어하우스를 지정합니다.

sp_session.use_warehouse("mlwarehouse")
Copy

API 참조

Snowpark ML API 참조 에는 공개적으로 출시된 모든 기능에 대한 설명서가 포함됩니다. 대화형 Python 세션에서 Python의 help 함수를 사용하여 모든 API에 대한 자세한 API 설명서를 얻을 수도 있습니다. 예:

from snowflake.ml.modeling.preprocessing import OneHotEncoder

help(OneHotEncoder)
Copy