Snowflake 웨어하우스에서의 추론¶
Snowflake Model Registry 는 기본적으로 웨어하우스에서 모델 메서드를 실행합니다. 웨어하우스에서 모델을 실행하는 것은 중소 규모 CPU에 적합하며, Snowflake conda 채널에서 제공되는 패키지로 종속성을 충족할 수 있는 모델에만 해당합니다.
참고
Snowpark Container Services (SPCS) 컴퓨팅 풀에서 모델을 실행할 수도 있습니다. 이 접근 방식은 분산 추론의 이점을 누릴 수 있는 대규모 모델에 더 적합합니다. 자세한 내용은 Snowpark Container Services에서 모델 제공 섹션을 참조하십시오.
시작하려면 Model Registry에 모델을 로그합니다. 레지스트리에 로그된 모델만 추론에 사용할 수 있습니다. 모델을 로그하거나 ` registry.get_model(…).version(…)` 을 통해 레지스트리에서 기존 모델을 로딩하면 run
메서드를 호출할 수 있는 ModelVersion
오브젝트가 반환됩니다.
Python에서의 추론¶
모델 버전의 메서드를 호출하려면 mv.run
을 사용하며, 여기서 mv
는 ModelVersion
오브젝트입니다. 호출할 함수의 이름을 지정하고 필요한 매개 변수와 함께 추론 데이터가 포함된 Snowpark 또는 pandas DataFrame 을 전달합니다. 이 메서드는 Snowflake 웨어하우스에서 실행됩니다.
메서드의 반환값은 전달된 DataFrame 의 유형과 일치하는 Snowpark 또는 pandas DataFrame 입니다. Snowpark DataFrames는 지연 평가되므로 메서드는 DataFrame의 collect
, show
또는 to_pandas
메서드가 호출될 때만 실행됩니다.
참고
메서드를 호출하면 레지스트리에 연결하는 데 사용하는 세션에 지정된 웨어하우스에서 해당 메서드가 실행됩니다. 웨어하우스 지정하기 섹션을 참조하십시오.
다음 예에서는 모델의 predict
메서드를 실행하는 방법을 보여줍니다. 이 모델의 predict
메서드에는 추론 데이터(여기서는 test_features
) 외에 어떤 매개 변수도 필요하지 않습니다. 필요한 경우에는 추론 데이터 뒤에 추가 인자로 전달됩니다.
remote_prediction = mv.run(test_features, function_name="predict")
remote_prediction.show() # assuming test_features is Snowpark DataFrame
특정 모델에서 호출할 수 있는 메서드를 확인하려면 mv.show_functions
를 호출하십시오. 이 메서드의 반환 값은 ModelFunctionInfo
오브젝트의 목록입니다. 이러한 각 오브젝트에는 다음 속성이 포함됩니다.
name
: Python 또는 SQL에서 호출할 수 있는 함수의 이름입니다.target_method
: 원래 로깅된 모델의 Python 메서드 이름입니다.
SQL에서의 추론¶
model_name!method_name(...)
구문을 사용하여 모델의 메서드를 호출하거나 호출할 수 있습니다. 모델에서 사용할 수 있는 메서드는 기본 Python 모델 클래스에 따라 결정됩니다. 예를 들어, 많은 유형의 모델이 추론에 예측이라는 메서드를 사용합니다.
기본 모델의 메서드를 호출하려면 다음 구문을 사용합니다. 괄호 안에 메서드 인자를 포함시키고 FROM
절에 추론 데이터가 포함된 테이블을 지정합니다.
SELECT <model_name>!<method_name>(...) FROM <table_name>;
모델의 특정 버전에서 메서드를 호출하려면 모델의 특정 버전에 대한 별칭을 만들고 그 별칭을 통해 메서드를 호출합니다.
특정 버전의 모델에서 메서드를 호출하려면 다음 구문을 사용합니다.
WITH <model_version_alias> AS MODEL <model_name> VERSION <version_or_alias_name>
SELECT <model_version_alias>!<method_name>(...) FROM <table_name>;
다음 예에서는 LAST
별칭을 사용하여 최신 버전의 모델을 호출합니다.
WITH latest AS MODEL my_model VERSION LAST
SELECT latest!predict(...) FROM my_table;
팁
전체 모델 SQL API 참조는 여기 를 확인하십시오.