대규모 언어 모델(LLM) 함수(Snowflake Cortex)

Snowflake Cortex를 사용하면 Snowflake에서 개발한 개방형 엔터프라이즈급 모델인 Snowflake Arctic 을 비롯하여 Mistral, Reka, Meta, Google과 같은 기업의 연구원들이 훈련시킨 업계 최고의 대규모 언어 모델(LLMs)에 즉시 액세스할 수 있습니다.

이러한 LLM은 Snowflake에서 완전히 호스팅하고 관리하므로 이를 사용하려고 따로 설정할 필요가 없습니다. 자신의 데이터가 Snowflake 내에 유지되면서 기대하는 성능, 확장성, 거버넌스를 제공합니다.

사용 가능한 함수

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

COMPLETE 함수

COMPLETE 함수는 양상 기반 감성 분류, 합성 데이터 생성, 사용자 지정 요약 등 다양한 사용자 지정 작업을 수행할 수 있는 범용 함수입니다. Cortex Guard 는 언어 모델에서 발생할 수 있는 안전하지 않거나 유해한 응답을 필터링하도록 설계된 COMPLETE 함수 내에서 사용할 수 있는 안전 매개 변수입니다. 미세 조정된 모델에도 이 함수를 사용할 수 있습니다.

작업별 함수

작업별 함수는 간단한 요약이나 빠른 번역과 같이 사용자 지정이 필요 없는 일상적인 작업을 자동화하는 목적에 맞게 구축되고 관리되는 함수입니다.

  • CLASSIFY_TEXT: 프롬프트가 제공되면 정의한 클래스 중 하나로 분류합니다.

  • EXTRACT_ANSWER: 질문과 비정형 데이터가 주어지면 데이터에서 답변을 찾을 수 있는 경우 질문에 대한 답변을 반환합니다.

  • PARSE_DOCUMENT: 문서가 있는 내부 또는 외부 스테이지가 주어지면 OCR 모드를 사용하여 추출된 텍스트 콘텐츠와 함께 JSON 형식의 문자열을 포함하는 오브젝트를 반환하거나 LAYOUT 모드를 사용하여 추출된 텍스트와 레이아웃 요소를 반환합니다.

  • SENTIMENT: 주어진 텍스트에서 감지된 긍정적 또는 부정적인 감정을 나타내는 감정 점수(-1부터 1까지의 범위)를 반환합니다.

  • SUMMARIZE: 주어진 텍스트의 요약을 반환합니다.

  • TRANSLATE: 지원되는 언어 간에 주어진 텍스트를 번역합니다.

  • EMBED_TEXT_768: 텍스트가 주어지면 해당 텍스트를 나타내는 768개 차원의 벡터 임베딩 을 반환합니다.

  • EMBED_TEXT_1024: 텍스트가 주어지면 해당 텍스트를 나타내는 1024개 차원의 벡터 임베딩 을 반환합니다.

도우미 함수

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

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

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

필수 권한

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

모든 사용자에게 이 권한을 부여하지 않으려면 PUBLIC 역할에 대한 액세스를 취소하고 특정 역할에 대한 액세스 권한을 부여하면 됩니다.

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

REVOKE DATABASE ROLE SNOWFLAKE.CORTEX_USER
  FROM ROLE PUBLIC;

REVOKE IMPORTED PRIVILEGES ON DATABASE SNOWFLAKE
  FROM ROLE PUBLIC;
Copy

그런 다음 특정 역할에 대한 액세스 권한을 선택적으로 제공할 수 있습니다. SNOWFLAKE.CORTEX_USER 데이터베이스 역할을 사용자에게 직접 부여할 수는 없습니다. 자세한 내용은 SNOWFLAKE 데이터베이스 역할 사용하기 섹션을 참조하십시오. ACCOUNTADMIN 역할이 있는 사용자는 사용자 지정 역할에 이 역할을 부여하여 사용자가 Cortex LLM Functions에 액세스할 수 있도록 허용할 수 있습니다. 다음 예제에서는 ACCOUNTADMIN 역할을 사용하고 이를 위해 생성한 계정 역할 cortex_user_role 을 통해 사용자 CORTEX_USER에 some_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 LLM 함수에 대한 액세스 권한을 부여할 수도 있습니다. (사용자 역할 섹션을 참조하십시오.) 예를 들어 조직의 분석가가 기본 역할로 사용하는 analyst 역할을 만든 경우 단일 GRANT 문으로 이러한 사용자에게 Snowflake Cortex LLM 함수에 대한 액세스 권한을 쉽게 부여할 수 있습니다.

GRANT DATABASE ROLE SNOWFLAKE.CORTEX_USER TO ROLE analyst;
Copy

가용성

Snowflake Cortex LLM 함수는 현재 다음 리전에서 사용할 수 있습니다. 목록에 없는 리전에서 LLMs에 액세스하려면 리전 간 추론 매개 변수 를 사용하십시오.

참고

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

  • COUNT_TOKENS 함수는 모든 리전에서 사용할 수 있지만, 모델 추론은 테이블에 따라 리전별로 다릅니다.

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

COMPLETE
(llama3.2-3b)

COMPLETE
(llama3.1-8b)

COMPLETE
(llama3.1-70b)

COMPLETE
(llama3.1-405b)

COMPLETE
(snowflake-arctic)

COMPLETE
(reka-core)

COMPLETE
(reka-flash)

COMPLETE
(mistral-large2)

COMPLETE
(mixtral-8x7b)

COMPLETE
(mistral-7b)

COMPLETE
(jamba-instruct)

COMPLETE
(jamba-1.5-mini)

COMPLETE
(jamba-1.5-large)

COMPLETE
(gemma-7b)

EMBED_TEXT_768
(e5-base-v2)

EMBED_TEXT_768
(snowflake-arctic-embed-m)

EMBED_TEXT_1024
(nv-embed-qa-4)

EMBED_TEXT_1024
(multilingual-e5-large)

EMBED_TEXT_1024
(voyage-multilingual-2)

CLASSIFY_TEXT

EXTRACT_ANSWER

SENTIMENT

SUMMARIZE

TRANSLATE

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

함수
(모델)
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 UK 남부
(런던)
Azure 북유럽
(아일랜드)
Azure 스위스 북부
(취리히)
Azure 인도 중부
(푸네)
Azure 일본 동부
(도쿄, 사이타마)
Azure 동남아시아
(싱가포르)
Azure 호주 동부
(뉴사우스웨일즈)
GCP 유럽 서부 2
(런던)
GCP 유럽 서부 4
(네덜란드)
GCP US 중부 1
(아이오와)
GCP US 동부 4
(북부 버지니아)
EMBED_TEXT_768
(snowflake-arctic-embed-m)

EMBED_TEXT_1024
(multilingual-e5-large)

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

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

COMPLETE
(llama3-8b)

COMPLETE
(llama3-70b)

COMPLETE
(mistral-large)

비용 고려 사항

참고

처리된 페이지 수에 따라 과금되는 PARSE_DOCUMENT 청구가 곧 제공될 예정입니다.

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

토큰은 Snowflake Cortex LLM 함수가 처리하는 가장 작은 텍스트 단위로, 대략 4자에 해당합니다. 원시 입력 또는 출력 텍스트와 토큰의 동등성은 모델에 따라 다를 수 있습니다.

  • 응답(COMPLETE, CLASSIFY_TEXT, SUMMARIZE, TRANSLATE)에서 새 텍스트를 생성하는 함수의 경우 입력 및 출력 토큰이 모두 계산됩니다.

  • CORTEX GUARD의 경우 입력 토큰만 계산됩니다. 입력 토큰의 수는 COMPLETE 함수에 사용된 LLM 모델당 출력 토큰의 수를 기준으로 합니다.

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

  • 입력(EXTRACT_ANSWER 및 SENTIMENT)에서 정보만 추출하는 함수의 경우 입력 토큰만 계산됩니다.

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

  • SUMMARIZE, TRANSLATE, EXTRACT_ANSWER, CLASSIFY_TEXT 및 SENTIMENT는 응답을 생성하기 위해 입력 텍스트에 프롬프트를 추가합니다. 결과적으로 입력 토큰 수는 제공한 텍스트의 토큰 수보다 약간 많습니다.

  • TRY_COMPLETE에서는 오류 처리를 위한 비용이 발생하지 않습니다. 즉, TRY_COMPLETE 함수가 NULL을 반환하면 비용이 발생하지 않습니다.

  • COUNT_TOKENS에서는 함수를 실행하기 위한 컴퓨팅 비용만 발생합니다. 추가적인 토큰 기반 비용은 발생하지 않습니다.

웨어하우스가 더 크다고 해서 성능이 향상되는 것은 아니므로 Snowflake에서는 (MEDIUM 이하의) 작은 웨어하우스로 Snowflake Cortex LLM 함수 또는 Cortex PARSE_DOCUMENT 함수를 호출하는 쿼리를 실행할 것을 권장합니다. Snowflake Cortex LLM 함수를 호출하는 쿼리를 실행할 때 웨어하우스를 활성 상태로 유지하는 것과 관련된 비용이 계속 적용됩니다. 컴퓨팅 비용에 대한 일반적인 정보는 컴퓨팅 비용 이해하기 섹션을 참조하십시오.

AI 서비스 비용 추적

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

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

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

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

SELECT *
  FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_FUNCTIONS_USAGE_HISTORY;
Copy

사용 할당량

모든 Snowflake 고객이 LLM 기능에 액세스할 수 있도록 하기 위해 사용량이 많은 기간에는 Snowflake Cortex LLM 함수에 대한 액세스가 제한될 수 있습니다. 사용 할당량은 계정 수준에는 적용되지 않습니다.

제한 요청은 오류 응답 을 받게 되며 나중에 다시 시도해야 합니다.

참고

유효한 결제 방법이 없는 주문형 Snowflake 계정(예: 평가판 계정)은 Snowflake Cortex LLM 함수 사용 시 하루에 대략 1크레딧으로 제한됩니다. 이 제한을 제거하려면 평가판 계정을 유료 계정으로 전환하십시오.

비용 관리 및 제한하기

Snowflake는 Snowflake Cortex LLM 함수를 호출하는 경우에는 MEDIUM을 초과하는 웨어하우스 크기를 사용하지 않는 것이 좋습니다. 필요한 것보다 더 큰 웨어하우스를 사용해도 성능은 향상되지 않지만 불필요한 비용이 발생하고 제한 위험이 더 높아질 수 있습니다. 이 권장 사항은 향후 제품 업데이트로 인해 향후에 적용되지 않을 수 있습니다.

모델 제한 사항

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

중요

AWS AP 남동부 2(시드니) 리전에서는 다음 모델의 컨텍스트 윈도우가 4K입니다.

  • COMPLETE 함수에 대한 llama3-8bmistral-7b.

  • SUMMARIZE 함수의 Snowflake 관리 모델.

AWS 아일랜드 리전에서 llama3.1-8b 의 컨텍스트 윈도우는 16,384입니다.

함수

모델

컨텍스트 윈도우(토큰)

COMPLETE

snowflake-arctic

4,096

mistral-large

32,000

mistral-large2

128,000

reka-flash

100,000

reka-core

32,000

jamba-instruct

256,000

jamba-1.5-mini

256,000

jamba-1.5-large

256,000

mixtral-8x7b

32,000

llama2-70b-chat

4,096

llama3-8b

8,000

llama3-70b

8,000

llama3.1-8b

128,000

llama3.1-70b

128,000

llama3.1-405b

128,000

llama3.2-1b

128,000

llama3.2-3b

128,000

mistral-7b

32,000

gemma-7b

8,000

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

CLASSIFY_TEXT

Snowflake 관리형 모델

128,000

EXTRACT_ANSWER

Snowflake 관리형 모델

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

SENTIMENT

Snowflake 관리형 모델

512

SUMMARIZE

Snowflake 관리형 모델

32,000

TRANSLATE

Snowflake 관리형 모델

1,024

모델 선택하기

Snowflake Cortex COMPLETE 함수는 다양한 기능, 대기 시간, 비용의 여러 모델을 지원합니다. 이러한 모델은 일반적인 고객 사용 사례에 맞게 신중하게 선택되었습니다. 최고의 크레딧당 성능 을 달성하려면 콘텐츠 크기와 작업의 복잡성에 잘 맞는 모델을 선택하십시오. 사용 가능한 모델에 대한 간략한 개요는 다음과 같습니다.

Large 모델

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

  • reka-core 는 강력한 추론 능력, 코드 생성, 다국어 유창성을 갖춘 Reka AI의 가장 진보된 대규모 언어 모델입니다.

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

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

Medium 모델

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

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

  • reka-flash 는 제품 설명이나 블로그 게시물 작성, 코딩, 수백 페이지에 달하는 문서에서 답변 추출 등 고품질을 요구하는 빠른 워크로드에 최적화된 고기능 다국어 언어 모델입니다.

  • 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 COMPLETE에서 제공하는 모델과 기타 인기 모델 등 다양한 벤치마크에서 인기 모델의 성능에 대한 정보를 제공합니다.

모델

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

GPT 4.o *

128,000

88.7

90.2

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

-

mistral-large

32,000

81.2

45.1

81

81

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

-

llama-2-70b-chat

4,096

68.9

30.5

57.5

-

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 COMPLETE에서는 사용할 수 없습니다.

LLM 함수 개요

Cortex LLM 함수는 다음 카테고리로 그룹화할 수 있습니다.

  • COMPLETE 함수: 측면 기반 감성 분류, 합성 데이터 생성, 사용자 지정 요약 등 다양한 사용자 지정 작업을 수행할 수 있는 범용 함수입니다. 미세 조정된 모델 에도 이 함수를 사용할 수 있습니다.

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

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

COMPLETE

프롬프트가 나타나면 명령을 따르는 COMPLETE 함수는 선택한 언어 모델을 사용하여 응답을 생성합니다. 가장 간단한 사용 사례에서 프롬프트는 단일 문자열입니다. 또한 대화형 채팅 스타일 사용을 위한 여러 프롬프트와 응답을 포함하는 대화를 제공할 수도 있으며, 이 함수 형식에서는 하이퍼 매개 변수 옵션을 지정하여 출력의 스타일과 크기를 사용자 지정할 수도 있습니다. 안전 장치를 구현하기 위해 LLM에서 잠재적으로 안전하지 않고 유해한 응답을 필터링하는 Cortex Guard 매개 변수를 활성화할 수도 있습니다.

안전 장치를 구현하려면 LLM에서 안전하지 않고 유해한 응답을 필터링하는 Cortex Guard 매개 변수를 활성화하면 됩니다.

COMPLETE 함수는 다음 모델을 지원합니다. 모델마다 비용 이 다를 수 있습니다.

  • gemma-7b

  • jamba-1.5-mini

  • jamba-1.5-large

  • jamba-instruct

  • llama2-70b-chat

  • llama3-8b

  • llama3-70b

  • llama3.1-8b

  • llama3.1-70b

  • llama3.1-405b

  • llama3.2-1b

  • llama3.2-3b

  • mistral-large

  • mistral-large2

  • mistral-7b

  • mixtral-8x7b

  • reka-core

  • reka-flash

  • snowflake-arctic

구문과 예는 COMPLETE (SNOWFLAKE.CORTEX) 섹션을 참조하십시오.

Cortex Guard

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

참고

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

작업별 함수

입력 텍스트가 주어지면, 작업별 함수는 프롬프트를 지정하지 않고도 설계된 작업을 실행합니다. 작업별 함수는 사용자 지정이 필요 없는 일상적인 작업을 빠르고 비용 효율적으로 실행합니다.

CLASSIFY_TEXT

CLASSIFY_TEXT 함수는 자유 형식 텍스트를 사용자가 제공한 카테고리로 분류합니다. 텍스트는 일반 영어 문자열일 수 있습니다.

구문과 예제는 CLASSIFY_TEXT(SNOWFLAKE.CORTEX) 섹션을 참조하십시오.

EMBED_TEXT_768

EMBED_TEXT_768 함수는 주어진 영어 텍스트에 대해 768개 차원의 벡터 임베딩을 생성합니다. 임베딩 및 벡터 비교 함수에 대해 자세히 알아보려면 벡터 임베딩 섹션을 참조하십시오.

구문과 예제는 EMBED_TEXT_768(SNOWFLAKE.CORTEX) 섹션을 참조하십시오.

EMBED_TEXT_1024

EMBED_TEXT_1024 함수는 주어진 텍스트에 대해 1024개 차원의 벡터 임베딩을 생성합니다. 임베딩 및 벡터 비교 함수에 대해 자세히 알아보려면 벡터 임베딩 섹션을 참조하십시오.

구문과 예제는 EMBED_TEXT_1024(SNOWFLAKE.CORTEX) 섹션을 참조하십시오.

EXTRACT_ANSWER

EXTRACT_ANSWER 함수는 텍스트 문서에서 주어진 질문에 대한 답변을 추출합니다. 문서는 일반 영어 문서이거나 반정형(JSON) 데이터 오브젝트의 문자열 표현일 수 있습니다.

구문과 예제는 EXTRACT_ANSWER (SNOWFLAKE.CORTEX) 섹션을 참조하십시오.

PARSE_DOCUMENT

PARSE_DOCUMENT 함수는 내부 스테이지 또는 외부 스테이지에 저장된 문서에서 텍스트 또는 레이아웃을 추출합니다.

구문과 예제는 PARSE_DOCUMENT(SNOWFLAKE.CORTEX) 섹션을 참조하십시오.

SENTIMENT

SENTIMENT 함수는 주어진 영어 입력 텍스트에 대해 -1에서 1 사이의 점수로 감정을 반환합니다(중립적인 감정을 나타내는 값인 0을 중심으로 -1은 가장 부정적인 감정, 1은 가장 긍정적인 감정을 나타냄).

구문과 예제는 SENTIMENT (SNOWFLAKE.CORTEX) 섹션을 참조하십시오.

SUMMARIZE

SUMMARIZE 함수는 주어진 영어 텍스트의 요약을 반환합니다.

구문과 예제는 SUMMARIZE (SNOWFLAKE.CORTEX) 섹션을 참조하십시오.

TRANSLATE

TRANSLATE 함수는 표시되거나 감지된 원본 언어의 텍스트를 대상 언어로 번역합니다.

구문과 예제는 TRANSLATE (SNOWFLAKE.CORTEX) 섹션을 참조하십시오.

도우미 함수

도우미 함수는 다른 Cortex LLM 함수를 실행할 때 오류를 줄이기 위해 만들어진 관리 함수입니다.

COUNT_TOKENS

COUNT_TOKENS 함수는 COMPLETE에 사양이 지정된 대형 언어 모델에 대한 프롬프트의 토큰 수와 작업별 함수에 대한 입력 텍스트를 계산합니다.

구문과 예제는 COUNT_TOKENS(SNOWFLAKE.CORTEX) 섹션을 참조하십시오.

TRY_COMPLETE

TRY_COMPLETE 함수는 COMPLETE 함수와 동일한 연산을 수행하지만, 연산을 수행할 수 없는 경우 오류를 발생시키는 대신 NULL을 반환합니다.

구문과 예제는 TRY_COMPLETE(SNOWFLAKE.CORTEX) 섹션을 참조하십시오.

오류 조건

Snowflake Cortex LLM 함수는 다음과 같은 오류 메시지를 생성할 수 있습니다.

메시지

설명

too many requests

과도한 시스템 부하로 인해 요청이 거부되었습니다. 요청을 다시 시도해 주십시오.

invalid options object

함수에 전달된 options 오브젝트에 유효하지 않은 옵션이나 값이 포함되어 있습니다.

budget exceeded

모델 소비 예산이 초과되었습니다.

unknown model "<model name>"

지정한 모델이 존재하지 않습니다.

invalid language "<언어>"

지정된 언어는 TRANSLATE 함수에서 지원되지 않습니다.

max tokens of <count> exceeded

요청이 모델에서 지원하는 최대 토큰 수를 초과했습니다(모델 제한 사항 참조).

all requests were throttled by remote service

사용률이 높아 요청이 제한되었습니다. 나중에 다시 시도하십시오.

invalid number of categories: <num_categories>

지정된 카테고리 수가 CLASSIFY_TEXT의 한도를 초과합니다.

invalid category input type

지정된 카테고리 유형은 CLASSIFY_TEXT에서 지원되지 않습니다.

empty classification input

CLASSIFY_TEXT에 대한 입력은 빈 문자열 또는 null입니다.

Python에서 Snowflake Cortex LLM 함수 사용하기

Snowflake Cortex LLM 함수는 Snowpark ML 버전1.1.2 이상에서 사용할 수 있습니다. Snowpark ML 설정에 대한 지침은 로컬에서 Snowflake ML 사용하기 섹션을 참조하십시오.

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

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

from snowflake.cortex import Complete, ExtractAnswer, Sentiment, Summarize, Translate, ClassifyText

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(ExtractAnswer(text, "When was snowflake founded?"))
print(Sentiment("I really enjoyed this restaurant. Fantastic service!"))
print(Summarize(text))
print(Translate(text, "en", "fr"))
print(ClassifyText("France", ["Europe", "Asia"]))
Copy

아래와 같이 테이블 열에서 LLM 함수를 호출할 수도 있습니다. 이 예에서는 세션 오브젝트(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의 고급 채팅 스타일(다중 메시지) 형식은 현재 Python에서 지원되지 않습니다.

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

Snowflake Cortex LLM 함수는 Snowflake CLI 버전 2.4.0 이상에서 사용할 수 있습니다. Snowflake CLI 사용에 대한 자세한 내용은 Snowflake CLI 소개 섹션을 참조하십시오.

다음 예제에서는 단일 값에 대해 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 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 명령 섹션을 참조하십시오.