Snowflake Cortex AISQL (LLM 함수 포함)

Snowflake의 Cortex AISQL 를 사용하여 업계 최고의 LLMs, OpenAI, Anthropic, Meta, Mistral AI, DeepSeek 에서 텍스트 및 이미지에 대한 비정형 분석을 실행할 수 있습니다. Cortex AISQL 은 다음과 같은 사용 사례를 지원합니다.

  • 엔터티 추출을 통한 메타데이터 보강 및 유효성 검사 간소화

  • 고객 티켓 전반에서 인사이트 집계하기

  • 자연어로 내용 필터링 및 분류하기

  • 서비스 개선을 위한 감성 및 양상 기반 분석

  • 다국어 내용 변환 및 로컬라이제이션

  • 분석 및 RAG 파이프라인을 위한 문서 구문 분석하기

모든 모델은 Snowflake에서 완전히 호스팅되어 성능, 확장성, 거버넌스를 보장하는 동시에 데이터 보안을 유지합니다.

사용 가능한 함수

Snowflake Cortex 기능은 SQL 함수로 제공되며 Python 에서도 사용할 수 있습니다. Cortex AISQL 함수는 다음 카테고리로 그룹화할 수 있습니다.

AISQL 함수

이러한 작업별 함수는 사용자 지정이 필요 없는 간단한 요약 및 빠른 번역과 같은 일상적인 작업을 자동화하기 위해 특별히 구축된 관리형 함수입니다.

  • AI_COMPLETE: 선택한 LLM 을 사용하여 지정된 텍스트 문자열 또는 이미지에 대한 완성을 생성합니다. 대부분의 생성형 AI 작업에 이 함수를 사용합니다.

    • AI_COMPLETE는 :doc:`/sql-reference/functions/complete-snowflake-cortex`의 업데이트된 버전입니다.

  • AI_CLASSIFY: 텍스트 또는 이미지를 사용자 정의 카테고리로 분류합니다.

    • AI_CLASSIFY는 :doc:`/sql-reference/functions/classify_text-snowflake-cortex`의 업데이트된 버전으로, 다중 레이블 및 이미지 분류를 지원합니다.

  • AI_FILTER: 주어진 텍스트 또는 이미지 입력에 대해 true 또는 false을 반환하여 SELECT, WHERE 또는 JOIN ... ON 절에서 결과를 필터링할 수 있습니다.

  • AI_AGG: 텍스트 열을 집계하고 사용자 정의 프롬프트에 따라 여러 행에 걸쳐 인사이트를 반환합니다. 이 함수는 컨텍스트 윈도우 제한이 적용되지 않습니다.

  • AI_EMBED: 텍스트 또는 이미지 입력에 대한 임베딩 벡터를 생성하며, 이는 유사성 검색, 클러스터링, 분류 작업에 활용될 수 있습니다.

    • AI_EMBED는 :doc:`/sql-reference/functions/embed_text_1024-snowflake-cortex`의 업데이트된 버전입니다.

  • AI_EXTRACT: 입력 문자열 또는 파일(예: 텍스트, 이미지, 문서)에서 정보를 추출합니다. 여러 언어를 지원합니다.

    • AI_EXTRACT는 :doc:`/sql-reference/functions/extract_answer-snowflake-cortex`의 업데이트된 버전입니다.

  • AI_SENTIMENT: 텍스트에서 감정 점수를 추출합니다.

    • AI_SENTIMENT는 :doc:`/sql-reference/functions/sentiment-snowflake-cortex`의 업데이트된 버전입니다.

  • AI_SUMMARIZE_AGG: 텍스트 열을 집계하여 여러 행에 걸친 요약을 반환합니다. 이 함수는 컨텍스트 윈도우 제한이 적용되지 않습니다.

  • AI_SIMILARITY: 두 입력 사이의 임베딩 유사도를 계산합니다.

  • AI_TRANSCRIBE: 스테이지에 저장된 오디오 파일을 전사하여 텍스트, 타임스탬프, 화자 정보를 추출합니다.

  • AI_PARSE_DOCUMENT: 내부 또는 외부 스테이지의 문서에서 텍스트(OCR 모드 사용) 또는 레이아웃 정보가 포함된 텍스트(LAYOUT 모드 사용)를 추출합니다.

    • AI_PARSE_DOCUMENT는 :doc:`/sql-reference/functions/parse_document-snowflake-cortex`의 업데이트된 버전입니다.

  • TRANSLATE (SNOWFLAKE.CORTEX): 지원되는 언어 간에 텍스트를 번역합니다.

  • SUMMARIZE (SNOWFLAKE.CORTEX): 지정한 텍스트의 요약을 반환합니다.

도우미 함수

헬퍼 함수는 다른 AISQL 함수를 실행할 때 실패 사례를 줄이기 위해 특별히 제작된 관리형 함수로, 예를 들어 입력 프롬프트에서 토큰 수를 가져와 호출이 모델 한도를 초과하지 않도록 하는 등의 역할을 합니다.

  • TO_FILE: AI_COMPLETE 및 파일을 허용하는 기타 함수와 함께 사용할 내부 또는 외부 스테이지의 파일에 대한 참조를 생성합니다.

  • COUNT_TOKENS(SNOWFLAKE.CORTEX): 입력 텍스트가 주어지면 지정된 모델 또는 Cortex 함수에 따라 토큰 수를 반환합니다.

  • PROMPT: AI_COMPLETE 및 기타 함수와 함께 사용할 프롬프트 오브젝트를 생성하는 데 도움을 줍니다.

  • TRY_COMPLETE(SNOWFLAKE.CORTEX): COMPLETE 함수와 비슷하게 동작하지만, 함수를 실행할 수 없는 경우 오류 코드 대신 NULL 을 반환합니다.

Cortex Guard

Cortex Guard는 언어 모델에서 발생할 수 있는 안전하지 않고 유해한 응답을 필터링하도록 설계된 AI_COMPLETE(또는 SNOWFLAKE.CORTEX.COMPLETE) 함수의 선택 사항입니다. Cortex Guard는 현재 Meta의 Llama Guard 3를 사용하여 빌드되었습니다. Cortex Guard는 언어 모델의 응답을 평가한 후 해당 출력을 애플리케이션으로 반환하여 작동합니다. Cortex Guard를 활성화하면 폭력 범죄, 증오, 성적 내용, 자해 등과 연관이 있는 언어 모델 응답이 자동으로 필터링됩니다. 구문과 예시는 :ref:`COMPLETE 인자<label-cortex_complete_arguments>`를 참조하세요.

참고

Cortex Guard를 사용하면 AI_COMPLETE 함수 요금에 더해 처리된 입력 토큰 수에 따라 컴퓨팅 요금이 발생합니다.

성능 고려 사항

Cortex AISQL 함수는 처리량에 최적화되어 있습니다. 이러한 함수를 사용하여 대규모 SQL 테이블의 텍스트와 같은 수많은 입력을 처리하는 것이 좋습니다. 배치 처리는 일반적으로 AISQL 함수에 더 적합합니다. 지연 시간이 중요한 대화형 사용 사례의 경우 REST API 를 사용하십시오. 단순 추론(Complete API), 임베딩(Embed API) 및 Agent 애플리케이션(Agents API)에 사용할 수 있습니다.

필수 권한

SNOWFLAKE 데이터베이스의 CORTEX_USER 데이터베이스 역할은 사용자가 Snowflake Cortex AI 함수를 호출할 수 있는 권한을 포함합니다. 기본적으로 CORTEX_USER 역할은 PUBLIC 역할에 부여됩니다. PUBLIC 역할은 모든 사용자 및 역할에 자동으로 부여되므로 계정의 모든 사용자가 Snowflake Cortex AI 함수를 사용할 수 있습니다.

이 권한을 모든 사용자에게 부여하지 않으려면 PUBLIC 역할에 대한 액세스를 취소하고 다른 역할에 액세스를 부여할 수 있습니다. SNOWFLAKE.CORTEX_USER 데이터베이스 역할은 사용자에게 직접 부여할 수 없습니다. 자세한 내용은 SNOWFLAKE 데이터베이스 역할 사용하기 섹션을 참조하세요.

PUBLIC 역할에서 CORTEX_USER 데이터베이스 역할을 취소하려면 ACCOUNTADMIN 역할을 사용하여 다음 명령을 실행합니다.

REVOKE DATABASE ROLE SNOWFLAKE.CORTEX_USER
  FROM ROLE PUBLIC;

REVOKE IMPORTED PRIVILEGES ON DATABASE SNOWFLAKE
  FROM ROLE PUBLIC;
Copy

그런 다음, 특정 역할에 대한 액세스 권한을 선택적으로 부여할 수 있습니다. ACCOUNTADMIN 역할이 있는 사용자는 사용자 지정 역할에 이 역할을 부여하여 사용자가 Cortex AI 함수에 액세스할 수 있도록 허용할 수 있습니다. 다음 예시에서는 ACCOUNTADMIN 역할을 사용하고, 이 목적을 위해 생성한 계정 역할 ``cortex_user_role``을 통해 사용자 ``some_user``에게 CORTEX_USER 데이터베이스 역할을 부여합니다.

USE ROLE ACCOUNTADMIN;

CREATE ROLE cortex_user_role;
GRANT DATABASE ROLE SNOWFLAKE.CORTEX_USER TO ROLE cortex_user_role;

GRANT ROLE cortex_user_role TO USER some_user;
Copy

특정 사용자 그룹에서 일반적으로 사용하는 기존 역할을 통해 Snowflake Cortex AI 함수에 대한 액세스 권한을 부여할 수도 있습니다. (사용자 역할 섹션을 참조하십시오.) 예를 들어 조직의 분석가가 기본 역할로 사용하는 analyst 역할을 만든 경우 단일 GRANT 문으로 이러한 사용자에게 Snowflake Cortex AISQL 함수에 대한 액세스 권한을 쉽게 부여할 수 있습니다.

GRANT DATABASE ROLE SNOWFLAKE.CORTEX_USER TO ROLE analyst;
Copy

모델 액세스 제어

Snowflake Cortex는 모델 액세스를 강제하는 두 가지 독립적인 메커니즘을 제공합니다.

  • :ref:`계정 수준 허용 목록 매개 변수<label-cortex_llm_allowlist>`(간단하고 광범위한 제어)

  • :ref:`역할 기반 액세스 제어(RBAC)<label-cortex_llm_rbac>`(세부적인 제어)

계정 수준 허용 목록을 사용하여 전체 계정에서 모델 액세스를 제어하거나, 역할별 모델 액세스 제어를 위해 RBAC를 사용할 수 있습니다. 최대한의 유연성을 위해, 추가적인 복잡성을 감수할 수 있다면 :ref:`두 메커니즘을 함께 사용<label-cortex_llm_rbac_with_account_allowlist>`할 수도 있습니다.

계정 수준 허용 목록 매개 변수

CORTEX_MODELS_ALLOWLIST 매개 변수를 사용하여 전체 계정에서 모델 액세스를 제어할 수 있습니다. :ref:`지원되는 기능<label-cortex_llm_model_access_supported_features>`은 이 매개 변수의 값을 준수하며 허용 목록에 없는 모델의 사용을 방지합니다.

CORTEX_MODELS_ALLOWLIST 매개 변수는 'All', 'None' 또는 모델 이름의 쉼표로 구분된 목록으로 설정할 수 있습니다. 이 매개 변수는 계정 수준에서만 설정할 수 있으며, 사용자 또는 세션 수준에서는 설정할 수 없습니다. ACCOUNTADMIN 역할만 ALTER ACCOUNT 명령을 사용하여 매개 변수를 설정할 수 있습니다.

예:

  • 모든 모델에 대한 접근을 허용하려면 다음을 수행하세요.

    ALTER ACCOUNT SET CORTEX_MODELS_ALLOWLIST = 'All';
    
    Copy
  • mistral-large2llama3.1-70b 모델에 대한 액세스를 허용하려면 다음을 수행하세요.

    ALTER ACCOUNT SET CORTEX_MODELS_ALLOWLIST = 'mistral-large2,llama3.1-70b';
    
    Copy
  • 모든 모델에 대한 액세스를 차단하려면 다음을 수행하세요.

    ALTER ACCOUNT SET CORTEX_MODELS_ALLOWLIST = 'None';
    
    Copy

다음 섹션에 설명된 대로 RBAC를 사용하여 허용 목록에서 지정한 것 이상의 액세스 권한을 특정 역할에 부여하세요.

역할 기반 액세스 제어(RBAC)

Cortex 모델 자체는 Snowflake 오브젝트가 아니지만, Snowflake에서는 Cortex 모델을 *대표*하는 모델 오브젝트를 SNOWFLAKE.MODELS 스키마에 생성할 수 있습니다. 이러한 오브젝트에 RBAC를 적용함으로써, 다른 Snowflake 오브젝트와 동일한 방식으로 모델에 대한 액세스를 제어할 수 있습니다. :ref:`지원되는 기능<label-cortex_llm_model_access_supported_features>`은 SNOWFLAKE.MODELS 내 오브젝트의 식별자를 허용하며, 모델을 지정할 수 있는 모든 위치에서 사용 가능합니다.

RBAC를 독점적으로 사용하려면 CORTEX_MODELS_ALLOWLIST를 ``’None’``으로 설정하세요.

모델 오브젝트 및 애플리케이션 역할 새로 고침

SNOWFLAKE.MODELS에는 Cortex 모델을 나타내는 오브젝트가 자동으로 채워지지 않습니다. 모델 RBAC를 처음 설정할 때 이러한 오브젝트를 생성해야 합니다. 새 모델에 RBAC를 적용하려면 이를 새로 고쳐야 합니다.

ACCOUNTADMIN으로 로그인한 상태에서 SNOWFLAKE.MODELS.CORTEX_BASE_MODELS_REFRESH 저장 프로시저를 실행하여 SNOWFLAKE.MODELS 스키마에 현재 사용 가능한 Cortex 모델을 나타내는 오브젝트를 채우고, 해당 모델에 대응하는 애플리케이션 역할을 생성하세요. 이 절차는 모든 모델을 포괄하는 역할인 CORTEX-MODEL-ROLE-ALL도 생성합니다.

CORTEX_BASE_MODELS_REFRESH는 언제든지 안전하게 호출할 수 있습니다. 중복 오브젝트나 역할이 생성되지 않습니다.

CALL SNOWFLAKE.MODELS.CORTEX_BASE_MODELS_REFRESH();
Copy

모델 오브젝트를 새로 고친 후, 모델이 다음과 같이 SNOWFLAKE.MODELS 스키마에 표시되는지 확인할 수 있습니다.

SHOW MODELS IN SNOWFLAKE.MODELS;
Copy

반환된 모델 목록은 다음과 같습니다.

created_on

이름

model_type

데이터베이스_이름

스키마_이름

owner

2025-04-22 09:35:38.558 -0700

CLAUDE-3-5-SONNET

CORTEX_BASE

SNOWFLAKE

MODELS

SNOWFLAKE

2025-04-22 09:36:16.793 -0700

LLAMA3.1-405B

CORTEX_BASE

SNOWFLAKE

MODELS

SNOWFLAKE

2025-04-22 09:37:18.692 -0700

SNOWFLAKE-ARCTIC

CORTEX_BASE

SNOWFLAKE

MODELS

SNOWFLAKE

해당 모델과 연결된 애플리케이션 역할을 볼 수 있는지 확인하려면 다음 예시와 같이 SHOW APPLICATION ROLES 명령을 사용하세요.

SHOW APPLICATION ROLES IN APPLICATION SNOWFLAKE;
Copy

애플리케이션 역할의 목록은 다음과 같습니다.

created_on

이름

owner

comment

owner_role_type

2025-04-22 09:35:38.558 -0700

CORTEX-MODEL-ROLE-ALL

SNOWFLAKE

MODELS

APPLICATION

2025-04-22 09:36:16.793 -0700

CORTEX-MODEL-ROLE-LLAMA3.1-405B

SNOWFLAKE

MODELS

APPLICATION

2025-04-22 09:37:18.692 -0700

CORTEX-MODEL-ROLE-SNOWFLAKE-ARCTIC

SNOWFLAKE

MODELS

APPLICATION

사용자 역할에 애플리케이션 역할 부여

모델 오브젝트와 애플리케이션 역할을 생성한 후, 계정 내 특정 사용자 역할에 애플리케이션 역할을 부여할 수 있습니다.

  • 특정 모델에 대한 역할 액세스 권한을 부여하려면 다음을 수행하세요.

    GRANT APPLICATION ROLE SNOWFLAKE."CORTEX-MODEL-ROLE-LLAMA3.1-70B" TO ROLE MY_ROLE;
    
    Copy
  • 모든 모델(현재 및 향후 모델)에 대한 역할 액세스 권한을 부여하려면 다음을 수행하세요.

    GRANT APPLICATION ROLE SNOWFLAKE."CORTEX-MODEL-ROLE-ALL" TO ROLE MY_ROLE;
    
    Copy

지원되는 기능이 있는 모델 오브젝트 사용

지원되는 Cortex 기능이 있는 모델 오브젝트를 사용하려면, 모델 오브젝트의 식별자를 SNOWFLAKE.MODELS에서 모델 인자로 지정하세요. 현재 데이터베이스 및 스키마 컨텍스트에 따라 정규 식별자 또는 부분 식별자를 사용할 수 있습니다.

  • 완전 정규 식별자 사용:

    SELECT AI_COMPLETE('SNOWFLAKE.MODELS."LLAMA3.1-70B"', 'Hello');
    
    Copy
  • 부분 식별자 사용:

    USE DATABASE SNOWFLAKE;
    USE SCHEMA MODELS;
    SELECT AI_COMPLETE('LLAMA3.1-70B', 'Hello');
    
    Copy

계정 수준 허용 목록과 함께 RBAC 사용

여러 Cortex 기능은 모델 이름을 문자열 인자로 받아들입니다. 예를 들어, :samp:`AI_COMPLETE(‘{model}’, ‘{prompt}’)`입니다. Cortex는 이를 먼저 스키마 수준 모델 오브젝트의 식별자로 처리합니다. 모델 오브젝트가 발견되면, RBAC가 적용되어 사용자가 모델을 사용할 수 있는지 여부를 판단합니다. 모델 오브젝트가 발견되지 않으면, 인자는 일반 모델 이름으로 해석되어 계정 수준 허용 목록과 일치됩니다.

다음 예시에서는 허용 목록과 RBAC를 함께 사용하는 방법을 보여줍니다. 이 예시에서 허용 목록은 mistral-large2 모델을 허용하도록 설정되어 있으며, 사용자는 RBAC를 통해 LLAMA3.1-70B 모델 오브젝트에 액세스할 수 있습니다.

-- set up access
USE SECONDARY ROLES NONE;
USE ROLE ACCOUNTADMIN;
ALTER ACCOUNT SET CORTEX_MODELS_ALLOWLIST = 'MISTRAL-LARGE2';
CALL SNOWFLAKE.MODELS.CORTEX_BASE_MODELS_REFRESH();
GRANT APPLICATION ROLE SNOWFLAKE."CORTEX-MODEL-ROLE-LLAMA3.1-70B" TO ROLE PUBLIC;

-- test access
USE ROLE PUBLIC;

-- this succeeds because mistral-large2 is in the allowlist
SELECT AI_COMPLETE('MISTRAL-LARGE2', 'Hello');

-- this succeeds because the role has access to the model object
SELECT AI_COMPLETE('SNOWFLAKE.MODELS."LLAMA3.1-70B"', 'Hello');

-- this fails because the first argument is
-- neither an identifier for an accessible model object
-- nor is it a model name in the allowlist
SELECT AI_COMPLETE('SNOWFLAKE-ARCTIC', 'Hello');
Copy

흔히 빠지기 쉬운 함정

  • 모델에 대한 액세스 권한(허용 목록 또는 RBAC를 통한)이 항상 모델을 사용할 수 있다는 것을 의미하지는 않습니다. 여전히 리전 간 이동, 사용 중단 또는 기타 가용성 제한 사항이 적용될 수 있습니다. 이러한 제한 사항으로 인해 모델 액세스 오류와 유사해 보이는 오류 메시지가 발생할 수 있습니다.

  • 모델 액세스 제어는 모델의 사용만을 통제하며, 자체 액세스 제어를 가질 수 있는 기능 자체의 사용은 통제하지 않습니다. 예를 들어, AI_COMPLETE`에 대한 액세스는 :code:`CORTEX_USER 데이터베이스 역할에 의해 통제됩니다. 자세한 내용은 필수 권한 섹션을 참조하십시오.

  • 모든 기능이 모델 액세스 제어를 지원하는 것은 아닙니다. 지원되는 기능 테이블을 참조하여 특정 기능이 어떤 액세스 제어 방법을 지원하는지 확인하세요.

  • 보조 역할은 권한을 숨길 수 있습니다. 예를 들어, 사용자가 보조 역할로 ACCOUNTADMIN을 가진 경우, 모든 모델 오브젝트가 액세스 가능한 것으로 표시될 수 있습니다. 권한 확인 시 보조 역할을 일시적으로 비활성화하세요.

  • 반드시 RBAC와 함께 모델 오브젝트 식별자를 사용해야 하며, 이러한 식별자는 따옴표로 묶인 식별자이므로 대소문자를 구분한다는 점을 명심하세요. 자세한 내용은 QUOTED_IDENTIFIERS_IGNORE_CASE 섹션을 참조하십시오.

지원되는 기능

모델 액세스 제어는 다음 기능들을 통해 지원됩니다.

특징

계정 수준 허용 목록

역할 기반 액세스 제어

참고

AI_COMPLETE

AI_CLASSIFY

이 함수를 구동하는 모델이 허용되지 않은 경우, 오류 메시지에는 허용 목록을 수정하는 방법에 대한 정보가 포함됩니다.

AI_FILTER

이 함수를 구동하는 모델이 허용되지 않은 경우, 오류 메시지에는 허용 목록을 수정하는 방법에 대한 정보가 포함됩니다.

AI_AGG

이 함수를 구동하는 모델이 허용되지 않은 경우, 오류 메시지에는 허용 목록을 수정하는 방법에 대한 정보가 포함됩니다.

AI_SUMMARIZE_AGG

이 함수를 구동하는 모델이 허용되지 않은 경우, 오류 메시지에는 허용 목록을 수정하는 방법에 대한 정보가 포함됩니다.

COMPLETE (SNOWFLAKE.CORTEX)

TRY_COMPLETE(SNOWFLAKE.CORTEX)

Cortex REST API

Cortex Playground

리전 가용성

Snowflake Cortex AI 함수는 다음 리전에서 기본적으로 사용할 수 있습니다. 특정 함수에 대해 귀하의 리전이 목록에 없는 경우, :ref:`리전 간 추론<label-use-cross-region-inference>`을 사용하세요.

참고

  • TRY_COMPLETE 함수는 COMPLETE와 동일한 리전에서 사용할 수 있습니다.

  • COUNT_TOKENS 함수는 모든 지역에서 모든 모델에 대해 사용할 수 있지만, 모델 자체는 아래 테이블에 명시된 리전에서만 이용 가능합니다.

다음 모델들은 :ref:`리전 간 추론 <label-use-cross-region-inference>`를 통해 모든 리전에서 이용 가능합니다.

함수
(모델)
클라우드 간(모든 리전)
AWS US
(리전 간)
AWS EU
(리전 간)
AWS APJ
(리전 간)
Azure US
(리전 간)
AI_COMPLETE
(claude-4-sonnet)

AI_COMPLETE
(claude-4-opus)

미리 보기에서

미리 보기에서

AI_COMPLETE
(claude-3-7-sonnet)

AI_COMPLETE
(claude-3-5-sonnet)

AI_COMPLETE
(llama4-maverick)

AI_COMPLETE
(llama4-scout)

AI_COMPLETE
(llama3.2-1b)

AI_COMPLETE
(llama3.2-3b)

AI_COMPLETE
(llama3.1-8b)

AI_COMPLETE
(llama3.1-70b)

AI_COMPLETE
(llama3.3-70b)

AI_COMPLETE
(snowflake-llama-3.3-70b)

AI_COMPLETE
(llama3.1-405b)

AI_COMPLETE
(openai-gpt-4.1)

미리 보기에서

미리 보기에서

AI_COMPLETE
(openai-o4-mini)

미리 보기에서

미리 보기에서

AI_COMPLETE
(openai-gpt-5)

미리 보기에서

미리 보기에서

AI_COMPLETE
(openai-gpt-5-mini)

미리 보기에서

미리 보기에서

AI_COMPLETE
(openai-gpt-5-nano)

미리 보기에서

미리 보기에서

AI_COMPLETE
(openai-gpt-5-chat)

미리 보기에서

AI_COMPLETE
(openai-gpt-oss-120b)

미리 보기에서

AI_COMPLETE
(openai-gpt-oss-20b)

미리 보기에서

AI_COMPLETE
(snowflake-llama-3.1-405b)

AI_COMPLETE
(snowflake-arctic)

AI_COMPLETE
(deepseek-r1)

AI_COMPLETE
(reka-core)

AI_COMPLETE
(reka-flash)

AI_COMPLETE
(mistral-large2)

AI_COMPLETE
(mixtral-8x7b)

AI_COMPLETE
(mistral-7b)

AI_COMPLETE
(jamba-instruct)

AI_COMPLETE
(jamba-1.5-mini)

AI_COMPLETE
(jamba-1.5-large)

AI_COMPLETE
(gemma-7b)

EMBED_TEXT_768
(e5-base-v2)

EMBED_TEXT_768
(snowflake-arctic-embed-m)

EMBED_TEXT_768
(snowflake-arctic-embed-m-v1.5)

EMBED_TEXT_1024
(snowflake-arctic-embed-l-v2.0)

EMBED_TEXT_1024
(snowflake-arctic-embed-l-v2.0-8k)

EMBED_TEXT_1024
(nv-embed-qa-4)

EMBED_TEXT_1024
(multilingual-e5-large)

EMBED_TEXT_1024
(voyage-multilingual-2)

AI_CLASSIFY TEXT

AI_CLASSIFY IMAGE

AI_EXTRACT

AI_FILTER TEXT

AI_FILTER IMAGE

AI_AGG

AI_SENTIMENT

AI_SIMILARITY TEXT

AI_SIMILARITY IMAGE

AI_SUMMARIZE_AGG

EXTRACT_ANSWER

SENTIMENT

ENTITY_SENTIMENT

SUMMARIZE

TRANSLATE

현재 다음 확장 리전에서는 다음과 같은 Snowflake Cortex AI 함수를 사용할 수 있습니다.

함수
(모델)
AWS US 동부 2
(오하이오)
AWS CA 중부 1
(중부)
AWS SA 동부 1
(상파울루)
AWS 유럽 서부 2
(런던)
AWS 유럽 중부 1
(프랑크푸르트)
AWS 유럽 북부 1
(스톡홀름)
AWS AP 북동부 1
(도쿄)
AWS AP 남부 1
(뭄바이)
AWS AP 동남부 2
(시드니)
AWS AP 동남부 3
(자카르타)
Azure 중남부 US
(텍사스)
Azure 서부 US 2
(워싱턴)
Azure UK 남부
(런던)
Azure 북유럽
(아일랜드)
Azure 스위스 북부
(취리히)
Azure 인도 중부
(푸네)
Azure 일본 동부
(도쿄, 사이타마)
Azure 동남아시아
(싱가포르)
Azure 호주 동부
(뉴사우스웨일즈)
GCP 유럽 서부 2
(런던)
GCP 유럽 서부 4
(네덜란드)
GCP US 중부 1
(아이오와)
GCP US 동부 4
(북부 버지니아)
EMBED_TEXT_768
(snowflake-arctic-embed-m-v1.5)

EMBED_TEXT_768
(snowflake-arctic-embed-m)

EMBED_TEXT_1024
(multilingual-e5-large)

AI_EXTRACT

리전 간 전용

리전 간 전용

리전 간 전용

리전 간 전용

다음 테이블에는 레거시 모델이 나열되어 있습니다. 이제 막 시작하는 경우 이전 테이블의 모델부터 시작하세요.

레거시
함수
(모델)
AWS US 서부 2
(오리건)
AWS US 동부 1
(북부 버지니아)
AWS 유럽 중부 1
(프랑크푸르트)
AWS 유럽 서부 1
(아일랜드)
AWS AP 동남부 2
(시드니)
AWS AP 북동부 1
(도쿄)
Azure 동부 US 2
(버지니아)
Azure 서유럽
(네덜란드)
AI_COMPLETE
(llama2-70b-chat)

AI_COMPLETE
(llama3-8b)

AI_COMPLETE
(llama3-70b)

AI_COMPLETE
(mistral-large)

비용 고려 사항

Snowflake Cortex AI 함수는 처리된 토큰 수를 기준으로 컴퓨팅 비용이 발생합니다. 백만 토큰당 크레딧으로 표시되는 각 함수의 비용은 Snowflake 서비스 사용 테이블 을 참조하십시오.

토큰은 Snowflake Cortex AI 함수가 처리하는 텍스트의 최소 단위입니다. 텍스트에 대한 업계 관례상 토큰은 대략 4자에 해당하지만 이는 모델에 따라 다를 수 있으며, 미디어 파일의 토큰 동등성도 마찬가지입니다.

  • 응답에 새 텍스트를 생성하는 함수(AI_COMPLETE, AI_CLASSIFY, AI_FILTER, AI_AGG, AI_SUMMARIZE, TRANSLATE 및 SNOWFLAKE.CORTEX 스키마의 이전 버전)의 경우 입력 토큰과 출력 토큰 모두 청구 가능합니다.

  • Cortex Guard의 경우 입력 토큰만 계산됩니다. 입력 토큰 수는 AI_COMPLETE(또는 COMPLETE)에서 출력되는 토큰 수를 기준으로 합니다. Cortex Guard 사용량은 AI_COMPLETE(또는 COMPLETE) 함수 비용에 추가로 청구됩니다.

  • AI_SIMILARITY 및 EMBED_* 함수의 경우, 입력 토큰만 계산됩니다.

  • EXTRACT_ANSWER의 경우 청구 가능한 토큰 수는 from_textquestion 필드에 있는 토큰 수의 합계입니다.

  • AI_CLASSIFY, AI_FILTER, AI_AGG, AI_SENTIMENT, AI_SUMMARIZE_AGG, SUMMARIZE, TRANSLATE, EXTRACT_ANSWER, ENTITY_SENTIMENT, SENTIMENT는 응답을 생성하기 위해 입력 텍스트에 프롬프트를 추가합니다. 결과적으로, 입력 토큰 수는 제공한 텍스트의 토큰 수보다 많아집니다.

  • AI_CLASSIFY 레이블, 설명 및 예제는 AI_CLASSIFY 호출마다 한 번씩이 아니라 처리된 각 레코드에 대한 입력 토큰으로 계산됩니다.

  • AI_PARSE_DOCUMENT(또는 SNOWFLAKE.CORTEX.PARSE_DOCUMENT)의 경우 청구는 처리된 문서 페이지 수를 기준으로 합니다.

  • TRY_COMPLETE(SNOWFLAKE.CORTEX)는 오류 처리에 비용을 발생시키지 않습니다. TRY_COMPLETE(SNOWFLAKE.CORTEX) 함수가 NULL을 반환하면 비용이 발생하지 않습니다.

  • AI_EXTRACT의 경우, 입력 토큰과 출력 토큰 모두 계산됩니다. responseFormat 인자는 입력 토큰으로 계산됩니다. 페이지로 구성된 문서 형식의 경우, 처리된 페이지 수가 입력 토큰으로 계산됩니다. 문서 내 각 페이지는 970개의 토큰으로 계산됩니다.

  • COUNT_TOKENS(SNOWFLAKE.CORTEX)는 함수 실행에 컴퓨팅 비용만 발생시킵니다. 추가적인 토큰 기반 비용은 발생하지 않습니다.

이미지나 오디오와 같은 미디어 파일을 지원하는 모델의 경우, 다음과 같습니다.

  • 오디오 파일은 초당 50개의 토큰으로 청구됩니다.

  • 이미지의 토큰 동등성은 사용된 모델에 의해 결정됩니다. 자세한 내용은 :ref:`AI 이미지 비용 고려 사항 <label-ai_images_cost_considerations>`를 참조하세요.

Snowflake는 더 작은 웨어하우스(MEDIUM보다 크지 않음)로 Snowflake Cortex AISQL 함수를 호출하는 쿼리를 실행할 것을 권장합니다. 웨어하우스가 크다고 성능이 향상되는 것은 아닙니다. Snowflake Cortex LLM 함수를 호출하는 쿼리를 실행할 때에도 웨어하우스를 활성화 상태로 유지하는 데 드는 비용은 계속 적용됩니다. 컴퓨팅 비용에 대한 일반적인 정보는 :doc:`컴퓨팅 비용 이해하기</user-guide/cost-understanding-compute>`를 참조하세요.

AI 서비스 비용 추적

계정에서 LLM Functions를 포함한 AI 서비스에 사용된 크레딧을 추적하려면 METERING_HISTORY 뷰 를 사용합니다.

SELECT *
  FROM SNOWFLAKE.ACCOUNT_USAGE.METERING_DAILY_HISTORY
  WHERE SERVICE_TYPE='AI_SERVICES';
Copy

AISQL 함수에 대한 크레딧 소비 추적

각 AISQL 함수 호출에 대한 크레딧과 토큰 소비를 뷰로 보려면 CORTEX_FUNCTIONS_USAGE_HISTORY 뷰 를 사용하십시오.

SELECT *
  FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_FUNCTIONS_USAGE_HISTORY;
Copy

또한 Snowflake 계정 내에서 각 쿼리의 크레딧과 토큰 소비량을 볼 수 있습니다. 각 쿼리의 크레딧 및 토큰 소비량을 뷰로 확인하면 가장 많은 크레딧과 토큰을 소비하는 쿼리를 식별하는 데 도움이 됩니다.

다음 예제 쿼리는 CORTEX_FUNCTIONS_QUERY_USAGE_HISTORY 뷰 를 사용하여 계정 내 모든 쿼리에 대한 크레딧과 토큰 소비량을 표시합니다.

SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_FUNCTIONS_QUERY_USAGE_HISTORY;
Copy

동일한 뷰를 사용하여 특정 쿼리에 대한 크레딧 및 토큰 소비량을 확인할 수도 있습니다.

SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_FUNCTIONS_QUERY_USAGE_HISTORY
WHERE query_id='<query-id>';
Copy

참고

REST API 를 통한 요청에 대해서는 세분화된 사용량 정보를 얻을 수 없습니다.

쿼리 사용 기록은 쿼리에 사용된 모델별로 그룹화됩니다. 예를 들어, 달리는 경우

SELECT AI_COMPLETE('mistral-7b', 'Is a hot dog a sandwich'), AI_COMPLETE('mistral-large', 'Is a hot dog a sandwich');
Copy

쿼리 사용 기록에는 mistral-7bmistral-large 에 대한 두 행이 표시됩니다.

사용 할당량

유효한 결제 방법이 없는 온디맨드 Snowflake 계정(예: 평가판 계정)은 Snowflake Cortex AISQL 사용량에 대해 일일 10크레딧으로 제한됩니다. 이 제한을 해제하려면 :ref:`평가판 계정을 유료 계정으로 전환<label-trial_account_convert>`하세요.

비용 관리

Snowflake는 Snowflake Cortex AISQL 함수를 호출할 때 MEDIUM보다 크지 않은 웨어하우스를 사용할 것을 권장합니다. 필요 이상으로 큰 웨어하우스를 사용해도 성능이 향상되는 것은 아니며, 오히려 불필요한 비용이 발생할 수 있습니다. Cortex AISQL 함수의 지속적인 발전에 따라 향후 이 권장 사항은 변경될 수 있습니다.

모델 제한 사항

Snowflake Cortex에서 사용하는 모델에는 아래 테이블에 설명된 대로 크기 제한이 있습니다. 크기는 토큰 단위로 주어집니다. 토큰은 일반적으로 4자 정도의 텍스트를 나타내므로, 한계에 해당하는 단어의 개수는 토큰의 개수보다 적습니다. 제한을 초과하는 값을 입력하면 오류가 발생합니다.

모델이 생성할 수 있는 출력의 최대 크기는 다음에 의해 제한됩니다.

  • 모델의 출력 토큰 제한입니다.

  • 모델이 입력 토큰을 소비한 후 컨텍스트 윈도우에서 사용 가능한 공간입니다.

예를 들어, claude-3-5-sonnet 에는 200,000 토큰의 컨텍스트 윈도우를 있습니다. 입력에 100,000개의 토큰을 사용하는 경우 모델은 최대 8,192개의 토큰을 생성할 수 있습니다. 그러나 195,000개의 토큰을 입력으로 사용하는 경우 모델은 총 200,000개의 토큰에 대해 최대 5,000개까지만 토큰을 생성할 수 있습니다.

중요

AWS AP 남동부 2(시드니) 리전:

  • llama3-8bmistral-7b 의 컨텍스트 윈도우는 4,096 토큰입니다.

  • llama3.1-8b 의 컨텍스트 윈도우는 16,384 토큰입니다.

  • SUMMARIZE 함수의 Snowflake 관리 모델에 대한 컨텍스트 윈도우는 4,096 토큰입니다.

AWS 유럽 서부 1(아일랜드) 리전:

  • llama3.1-8b 의 컨텍스트 윈도우는 16,384 토큰입니다.

  • mistral-7b 의 컨텍스트 윈도우는 4,096 토큰입니다.

함수

모델

컨텍스트 윈도우(토큰)

최대 출력 AISQL 함수(토큰)

COMPLETE

llama4-maverick

128,000

8,192

llama4-scout

128,000

8,192

snowflake-arctic

4,096

8,192

deepseek-r1

32,768

8,192

claude-4-opus

200,000

8,192

claude-4-sonnet

200,000

32,000

claude-3-7-sonnet

200,000

32,000

claude-3-5-sonnet

200,000

8,192

mistral-large

32,000

8,192

mistral-large2

128,000

8,192

openai-gpt-4.1

128,000

32,000

openai-o4-mini

200,000

32,000

openai-gpt-5

272,000

8,192

openai-gpt-5-mini

272,000

8,192

openai-gpt-5-nano

272,000

8,192

openai-gpt-5-chat

128,000

8,192

openai-gpt-oss-120b

128,000

8,192

openai-gpt-oss-20b

128,000

8,192

reka-flash

100,000

8,192

reka-core

32,000

8,192

jamba-instruct

256,000

8,192

jamba-1.5-mini

256,000

8,192

jamba-1.5-large

256,000

8,192

mixtral-8x7b

32,000

8,192

llama2-70b-chat

4,096

8,192

llama3-8b

8,000

8,192

llama3-70b

8,000

8,192

llama3.1-8b

128,000

8,192

llama3.1-70b

128,000

8,192

llama3.3-70b

128,000

8,192

snowflake-llama-3.3-70b

128,000

8,192

llama3.1-405b

128,000

8,192

snowflake-llama-3.1-405b

8,000

8,192

llama3.2-1b

128,000

8,192

llama3.2-3b

128,000

8,192

mistral-7b

32,000

8,192

gemma-7b

8,000

8,192

EMBED_TEXT_768

e5-base-v2

512

해당 없음

snowflake-arctic-embed-m

512

해당 없음

EMBED_TEXT_1024

nv-embed-qa-4

512

해당 없음

multilingual-e5-large

512

해당 없음

voyage-multilingual-2

32,000

해당 없음

AI_EXTRACT

arctic-extract

128,000

51,200

AI_FILTER

Snowflake 관리형 모델

128,000

해당 없음

AI_CLASSIFY

Snowflake 관리형 모델

128,000

해당 없음

AI_AGG

Snowflake 관리형 모델

행당 128,000
여러 행에 걸쳐 사용할 수 있습니다

8,192

AI_SENTIMENT

Snowflake 관리형 모델

2,048

해당 없음

AI_SUMMARIZE_AGG

Snowflake 관리형 모델

행당 128,000
여러 행에 걸쳐 사용할 수 있습니다

8,192

ENTITY_SENTIMENT

Snowflake 관리형 모델

2,048

해당 없음

EXTRACT_ANSWER

Snowflake 관리형 모델

텍스트의 경우 2,048
질문의 경우 64

해당 없음

SENTIMENT

Snowflake 관리형 모델

512

해당 없음

SUMMARIZE

Snowflake 관리형 모델

32,000

4,096

TRANSLATE

Snowflake 관리형 모델

4,096

해당 없음

모델 선택하기

Snowflake Cortex AI_COMPLETE 함수는 다양한 기능, 대기 시간, 비용을 가진 여러 모델을 지원합니다. 이러한 모델들은 일반적인 고객 사용 사례에 부합하도록 신중하게 선택되었습니다. :ref:`크레딧당 최고의 성능<label-cortex_llm_cost_considerations>`을 달성하려면 작업의 콘텐츠 규모와 복잡성에 적합한 모델을 선택하세요. 사용 가능한 모델에 대한 간략한 개요는 다음과 같습니다.

Large 모델

어디서부터 시작해야 할지 잘 모르겠다면 가장 성능이 뛰어난 모델을 먼저 사용해 다른 모델을 평가할 수 있는 기준을 설정하십시오. claude-3-7-sonnet, reka-core, mistral-large2 는 Snowflake Cortex에서 제공하는 가장 성능이 뛰어난 모델이며, 최신 모델이 어떤 기능을 제공하는지에 대한 좋은 ID어를 제공합니다.

  • Claude 3-7 Sonnet 은 일반 추론 및 멀티모달 기능의 선두주자입니다. 다양한 영역과 양식에 걸쳐 추론이 필요한 작업에서 이전 버전보다 뛰어난 성능을 발휘합니다. 대용량의 출력 용량을 사용하여 정형 쿼리 또는 비정형 쿼리에서 더 많은 정보를 얻을 수 있습니다. 추론 기능과 큰 컨텍스트 윈도우를 갖추고 있어 에이전트 워크플로에 매우 적합합니다.

  • deepseek-r1 은 감독된 미세 조정(SFT)없이 대규모 강화 학습(RL)을 사용하여 학습된 기초 모델입니다. 수학, 코드, 추론 작업 전반에서 높은 성능을 제공할 수 있습니다. 모델에 액세스하려면 리전 간 추론 매개 변수AWS_US 로 설정합니다.

  • mistral-large2 는 최상위 계층의 추론 기능을 갖춘 Mistral AI의 가장 진보된 대규모 언어 모델입니다. 이는 mistral-large 에 비해 코드 생성, 수학, 추론 능력이 훨씬 뛰어나며 다국어 지원도 훨씬 강력합니다. 합성 텍스트 생성, 코드 생성, 다국어 텍스트 분석과 같이 대규모 추론 기능이 필요하거나 고도로 전문화된 복잡한 작업에 이상적입니다.

  • llama3.1-405b 는 128K의 대형 컨텍스트 윈도우가 있는 Meta의 llama3.1 모델 제품군의 오픈 소스 모델입니다. 긴 문서 처리, 다국어 지원, 합성 데이터 생성 및 모델 증류에 탁월합니다.

  • ``snowflake-llama3.1-405b``는 오픈 소스 llama3.1 모델에서 파생된 모델입니다. 이는 Snowflake AI 연구팀이 개발한 `SwiftKV 최적화<https://www.snowflake.com/en/blog/up-to-75-lower-inference-cost-llama-meta-llm/>`_를 활용하여 최대 75%의 추론 비용 절감을 실현합니다. SwiftKV는 정확도 손실을 최소화하면서 더 높은 처리량 성능을 달성합니다.

Medium 모델

  • llama3.1-70b 는 채팅 애플리케이션, 콘텐츠 제작, 엔터프라이즈 애플리케이션에 이상적인 최신 성능을 보여주는 오픈 소스 모델입니다. 이는 128K 컨텍스트 윈도우로 다양한 사용 사례를 지원하는 고성능, 비용 효율적인 모델입니다. llama3-70b 는 계속해서 지원되며 컨텍스트 창은 8K입니다.

  • snowflake-llama3.3-70b 는 오픈 소스 llama3.3 모델에서 파생된 모델입니다. Snowflake AI 연구팀이 개발한 <SwiftKV optimizations https://www.snowflake.com/en/blog/up-to-75-lower-inference-cost-llama-meta-llm/> 을 사용하여 추론 비용을 최대 75%까지 절감할 수 있습니다. SwiftKV 는 정확도 손실을 최소화하면서 더 높은 처리량 성능을 달성합니다.

  • snowflake-arctic 은 엔터프라이즈에 초점을 맞춘 Snowflake의 최고 수준의 LLM입니다. Arctic은 SQL 생성, 코딩, 벤치마크에 따른 지침과 같은 엔터프라이즈 작업에서 탁월한 성능을 발휘합니다.

  • mixtral-8x7b 는 텍스트 생성, 분류, 질문 응답에 이상적입니다. Mistral 모델은 낮은 메모리 요구 사항과 낮은 지연 시간에 최적화되어 있어 엔터프라이즈 사용 사례에서 더 높은 처리량을 제공합니다.

  • jamba-Instruct 모델은 기업의 요구 사항을 효율적으로 충족하기 위해 AI21 Labs에서 개발한 모델입니다. 이는 낮은 비용과 지연 시간으로 256,000개의 토큰 컨텍스트 윈도우를 제공하도록 최적화되어 있어 긴 문서와 광범위한 기술 자료에 대한 요약, Q&A, 엔터티 추출과 같은 작업에 이상적입니다.

  • AI21 Jamba 1.5 모델 제품군은 파운데이션 모델에 이어 최신 하이브리드 SSM 변환기 지침을 따릅니다. 컨텍스트 길이가 256K인 jamba-1.5-minijamba-1.5-large 는 정형 출력(JSON) 및 그라운딩을 사용한 생성과 같은 사용 사례를 지원합니다.

Small 모델

  • llama3.2-1bllama3.2-3b 모델은 128K 토큰의 컨텍스트 길이를 지원하며 요약, 지침 따르기, 재작성 작업과 같은 사용 사례에 적합한 동급 최강의 최신 모델입니다. Llama 3.2 모델은 영어, 독일어, 프랑스어, 이탈리아어, 포르투갈어, 힌디어, 스페인어 및 태국어를 지원하는 다국어 기능을 제공합니다.

  • llama3.1-8b 는 중간 정도의 추론이 필요한 작업에 이상적입니다. 이는 컨텍스트 윈도우가 128K인 초고속 경량 모델입니다. llama3-8bllama2-70b-chat 은 계속해서 지원되는 모델이지만, 컨텍스트 윈도우가 더 작고 정확도가 상대적으로 낮습니다.

  • mistral-7b 는 가장 간단한 요약, 정형화, 질문 답변 등 빠르게 처리해야 하는 작업에 이상적입니다. 32K 컨텍스트 윈도우를 통해 여러 페이지의 텍스트에 대해 낮은 지연 시간과 높은 처리량 처리를 제공합니다.

  • gemma-7b 는 간단한 코드 및 텍스트 완성 작업에 적합합니다. 8,000개 토큰의 컨텍스트 윈도우가 있지만 그 한도 내에서 놀라울 정도로 성능이 뛰어나고 상당히 비용 효율적입니다.

다음 테이블에는 Snowflake Cortex AI_COMPLETE에서 제공하는 모델과 기타 인기 모델 등 다양한 벤치마크에서 인기 모델의 성능에 대한 정보를 제공합니다.

모델

컨텍스트 윈도우
(토큰)
MMLU
(추론)
HumanEval
(코딩)
GSM8K
(산술 추론)
Spider 1.0
(SQL)

GPT 4.o

128,000

88.7

90.2

96.4

-

Claude 3.5 Sonnet

200,000

88.3

92.0

96.4

-

llama3.1-405b

128,000

88.6

89

96.8

-

reka-core

32,000

83.2

76.8

92.2

-

llama3.1-70b

128,000

86

80.5

95.1

-

mistral-large2

128,000

84

92

93

-

reka-flash

100,000

75.9

72

81

-

llama3.1-8b

128,000

73

72.6

84.9

-

mixtral-8x7b

32,000

70.6

40.2

60.4

-

jamba-instruct

256,000

68.2

40

59.9

-

jamba-1.5-mini

256,000

69.7

-

75.8

-

jamba-1.5-large

256,000

81.2

-

87

-

Snowflake Arctic

4,096

67.3

64.3

69.7

79

llama3.2-1b

128,000

49.3

-

44.4

-

llama3.2-3b

128,000

69.4

-

77.7

-

gemma-7b

8,000

64.3

32.3

46.4

-

mistral-7b

32,000

62.5

26.2

52.1

-

GPT 3.5 Turbo*

4,097

70

48.1

57.1

-

이전 모델 버전

Snowflake Cortex AI_COMPLETE 및 COMPLETE 함수는 다음 구형 모델 버전도 지원합니다. 본 테이블에 기재된 버전 대신 최신 모델 버전을 사용하는 것을 권장합니다.

모델

컨텍스트 윈도우
(토큰)
MMLU
(추론)
HumanEval
(코딩)
GSM8K
(산술 추론)
Spider 1.0
(SQL)

mistral-large

32,000

81.2

45.1

81

81

llama-2-70b-chat

4,096

68.9

30.5

57.5

-

Python으로 Snowflake Cortex AISQL 사용하기

Snowpark Python에서 Cortex AISQL 함수 호출

Snowpark Python API에서 Snowflake Cortex AISQL 함수를 사용할 수 있습니다. 이러한 함수에는 다음이 포함됩니다. Snowpark Python의 함수 이름은 Python에서 사용하는 “snake_case” 형식을 따르며, 단어는 밑줄로 구분되고 모든 문자는 소문자로 표기됩니다.

ai_agg 예제

ai_agg 함수는 분석가에게 그룹화되거나 그룹화되지 않은 데이터에서 찾은 결과를 요약하거나 추출해 달라고 요청하는 방식과 유사하게, 자연어 지침을 사용하여 텍스트 열을 집계합니다.

다음 예제에서는 ai_agg 함수를 사용하여 각 제품에 대한 고객 리뷰를 요약합니다. 이 함수는 텍스트 열과 자연어 지침을 받아 리뷰를 요약합니다.

from snowflake.snowpark.functions import ai_agg, col

df = session.create_dataframe([
    [1, "Excellent product!"],
    [1, "Great battery life."],
    [1, "A bit expensive but worth it."],
    [2, "Terrible customer service."],
    [2, "Won’t buy again."],
], schema=["product_id", "review"])

# Summarize reviews per product
summary_df = df.group_by("product_id").agg(
    ai_agg(col("review"), "Summarize the customer reviews in one sentence.")
)
summary_df.show()
Copy

참고

사용 사례를 중심으로 상세하게 작업 설명을 작성하십시오. 예를 들어, “Summarize the customer feedback for an investor report”를 입력합니다.

``ai_classify``로 텍스트 분류

ai_classify 함수는 문자열 또는 이미지를 받아 사용자가 정의한 범주로 분류합니다.

다음 예제에서는 여행 후기를 “travel” 및 “cooking” 등의 카테고리로 분류합니다. 이 함수는 텍스트 열과 텍스트를 분류할 카테고리 목록을 받습니다.

from snowflake.snowpark.functions import ai_classify, col

df = session.create_dataframe([
    ["I dream of backpacking across South America."],
    ["I made the best pasta yesterday."],
], schema=["sentence"])

df = df.select(
    "sentence",
    ai_classify(col("sentence"), ["travel", "cooking"]).alias("classification")
)
df.show()
Copy

참고

최대 500개의 카테고리를 제공할 수 있습니다. 텍스트와 이미지를 모두 분류할 수 있습니다.

``ai_filter``로 행 필터링

ai_filter 함수는 자연어 조건을 평가하여 True 또는 :code:`False`를 반환합니다. 이를 사용하여 행을 필터링하거나 태그 지정할 수 있습니다.

from snowflake.snowpark.functions import ai_filter, prompt, col

df = session.create_dataframe(["Canada", "Germany", "Japan"], schema=["country"])

filtered_df = df.select(
    "country",
    ai_filter(prompt("Is {0} in Asia?", col("country"))).alias("is_in_asia")
)
filtered_df.show()
Copy

참고

문자열과 파일 모두에 대해 필터링할 수 있습니다. 동적 프롬프트의 경우 :code:prompt 함수를 사용하세요. 자세한 내용은 `Snowpark Python 참조<https://docs.snowflake.com/developer-guide/snowpark/reference/python/latest/snowpark/index>`_를 참조하세요.

Snowflake ML에서 Cortex AISQL 함수 호출

:doc:`Snowflake ML</developer-guide/snowflake-ml/overview>`에는 구형 AISQL 함수, 즉 이름이 “AI”로 시작하지 않는 함수들이 포함되어 있습니다. 이 함수들은 Snowflake ML 버전 1.1.2 이상에서 지원됩니다. 이름들은 Python에서 사용하는 “snake_case” 형식으로 표기되며, 단어는 밑줄로 구분되고 모든 문자는 소문자로 표기됩니다.

Snowflake 외부에서 Python 스크립트를 실행하는 경우 이러한 함수를 사용하려면 Snowpark 세션을 생성해야 합니다. 지침을 Snowflake에 연결하기 섹션을 참조하십시오.

단일 값 처리

다음 Python 예제에서는 단일 값에 대해 Snowflake Cortex AI 함수를 호출하는 방법을 보여줍니다.

from snowflake.cortex import complete, extract_answer, sentiment, summarize, translate

text = """
    The Snowflake company was co-founded by Thierry Cruanes, Marcin Zukowski,
    and Benoit Dageville in 2012 and is headquartered in Bozeman, Montana.
"""

print(complete("llama2-70b-chat", "how do snowflakes get their unique patterns?"))
print(extract_answer(text, "When was snowflake founded?"))
print(sentiment("I really enjoyed this restaurant. Fantastic service!"))
print(summarize(text))
print(translate(text, "en", "fr"))
Copy

하이퍼파라미터 옵션 전달

complete 함수를 사용할 때 모델의 하이퍼파라미터에 영향을 미치는 옵션을 전달할 수 있습니다. 다음 Python 예제는 모델이 생성할 수 있는 최대 출력 토큰 수를 수정하는 방법을 보여줍니다.

from snowflake.cortex import complete, CompleteOptions

model_options1 = CompleteOptions(
    {'max_tokens':30}
)

print(complete("llama3.1-8b", "how do snowflakes get their unique patterns?", options=model_options1))
Copy

테이블 열에 함수 호출

아래와 같이 테이블 열에 AI 함수를 호출할 수 있습니다. 이 예제에서는 세션 오브젝트(``session``에 저장됨)와 텍스트 열 ``abstract_text``를 포함하는 테이블 ``articles``가 필요하며, 초록의 요약본을 포함하는 새 열 ``abstract_summary``를 생성합니다.

from snowflake.cortex import summarize
from snowflake.snowpark.functions import col

article_df = session.table("articles")
article_df = article_df.withColumn(
    "abstract_summary",
    summarize(col("abstract_text"))
)
article_df.collect()
Copy

참고

COMPLETE의 고급 채팅 스타일(다중 메시지) 형식은 현재 Snowflake ML Python에서 지원되지 않습니다.

Snowflake Cortex AI 함수를 Snowflake CLI 와 함께 사용하기

Snowflake Cortex AISQL은 Snowflake CLI 버전 2.4.0 이상에서 사용할 수 있습니다. Snowflake CLI 사용에 대한 자세한 내용은 Snowflake CLI 소개 섹션을 참조하세요. 해당 함수는 구식 AISQL 함수이며, 이름이 “AI”로 시작하지 않는 함수들입니다.

다음 예제에서는 단일 값에 대해 snow cortex 명령을 사용하는 방법을 설명합니다. -c 매개 변수는 사용할 연결을 지정합니다.

참고

COMPLETE의 고급 채팅 스타일(다중 메시지) 형식은 현재 Snowflake CLI 에서 지원되지 않습니다.

snow cortex complete "Is 5 more than 4? Please answer using one word without a period." -c "snowhouse"
Copy
snow cortex extract-answer "what is snowflake?" "snowflake is a company" -c "snowhouse"
Copy
snow cortex sentiment "Mary had a little Lamb" -c "snowhouse"
Copy
snow cortex summarize "John has a car. John's car is blue. John's car is old and John is thinking about buying a new car. There are a lot of cars to choose from and John cannot sleep because it's an important decision for John."
Copy
snow cortex translate herb --to pl
Copy

명령에 사용할 텍스트가 포함된 파일을 사용할 수도 있습니다. 이 예제에서는 about_cortex.txt 파일에 다음과 같은 내용이 포함되어 있다고 가정합니다.

Snowflake Cortex gives you instant access to industry-leading large language models (LLMs) trained by researchers at companies like Anthropic, Mistral, Reka, Meta, and Google, including Snowflake Arctic, an open enterprise-grade model developed by Snowflake.

Since these LLMs are fully hosted and managed by Snowflake, using them requires no setup. Your data stays within Snowflake, giving you the performance, scalability, and governance you expect.

Snowflake Cortex features are provided as SQL functions and are also available in Python. The available functions are summarized below.

COMPLETE: Given a prompt, returns a response that completes the prompt. This function accepts either a single prompt or a conversation with multiple prompts and responses.
EMBED_TEXT_768: Given a piece of text, returns a vector embedding that represents that text.
EXTRACT_ANSWER: Given a question and unstructured data, returns the answer to the question if it can be found in the data.
SENTIMENT: Returns a sentiment score, from -1 to 1, representing the detected positive or negative sentiment of the given text.
SUMMARIZE: Returns a summary of the given text.
TRANSLATE: Translates given text from any supported language to any other.

그런 다음과 같이 --file 매개 변수를 사용해 파일 이름을 전달하여 snow cortex summarize 명령을 실행할 수 있습니다.

snow cortex summarize --file about_cortex.txt
Copy
Snowflake Cortex offers instant access to industry-leading language models, including Snowflake Arctic, with SQL functions for completing prompts (COMPLETE), text embedding (EMBED\_TEXT\_768), extracting answers (EXTRACT\_ANSWER), sentiment analysis (SENTIMENT), summarizing text (SUMMARIZE), and translating text (TRANSLATE).

이러한 명령에 대한 자세한 내용은 snow cortex 명령 섹션을 참조하십시오.