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(model_name)!method_name(...)
구문을 사용하여 모델의 메서드를 호출하거나 불러옵니다. 모델에서 사용할 수 있는 메서드는 기본 Python 모델 클래스에 따라 결정됩니다. 예를 들면, 많은 타입의 모델에서 추론 시 predict 라는 메서드를 사용합니다.
기본 모델의 메서드를 호출하려면 다음 구문을 사용합니다. 괄호 안에 메서드 인자를 포함시키고 FROM
절에 추론 데이터가 포함된 테이블을 지정합니다.
SELECT MODEL(<model_name>)!<method_name>(...) FROM <table_name>;
모델의 특정 버전에서 메서드를 호출하려면 모델의 특정 버전에 대한 별칭을 만들고 그 별칭을 통해 메서드를 호출합니다.
특정 버전의 모델에서 메서드를 호출하려면 다음 구문을 사용합니다.
SELECT MODEL(<model_name>,<version_or_alias_name>)!<method_name>(...) FROM <table_name>;
다음 예에서는 LAST
별칭을 사용하여 최신 버전의 모델을 호출합니다.
SELECT MODEL(my_model,LAST)!predict(...) FROM my_table;
팁
전체 모델 SQL API 참조는 여기 를 확인하십시오.