- 카테고리:
문자열 및 이진 함수 (대규모 언어 모델)
CLASSIFY_TEXT(SNOWFLAKE.CORTEX)¶
자유 형식의 텍스트를 공급자가 지정한 카테고리로 분류합니다.
구문¶
SNOWFLAKE.CORTEX.CLASSIFY_TEXT( <input> , <list_of_categories>, [ <options> ] )
인자¶
필수:
input
분류할 문자열입니다. 입력 문자열은 대/소문자를 구분합니다. 동일한 문자열이더라도 대문자를 서로 다르게 사용할 경우 결과가 달라질 수 있습니다.
list_of_categories
카테고리를 나타내는 배열입니다. 최소 2개 이상, 최대 100개의 고유 카테고리를 포함해야 합니다. 카테고리는 대/소문자를 구분합니다. 이러한 요구 사항이 충족되지 않으면 함수는 오류를 반환합니다. 전체 오류 목록은 오류 조건 섹션을 참조하십시오.
카테고리는 단순한 문자열 또는 SQL 오브젝트일 수 있으며, 모든 카테고리는 동일한 유형이어야 합니다. 오브젝트를 사용하면 각 카테고리에 대한 설명과 예제를 제공하여 분류 정확도를 높이는 데 도움이 되는 컨텍스트를 제공할 수 있습니다. 각 카테고리에 대한 설명이나 예제를 반드시 제공해야 하는 것은 아니며, 각 카테고리에 대한 설명 또는 예제를 제공하거나 둘 다 제공하거나 둘 다 제공하지 않을 수 있습니다.
label
: 카테고리의 이름입니다. 이 키는 필수 사항입니다.description
: 카테고리에 대한 설명입니다. 설명은 약 25단어(1~2문장)를 넘지 않아야 합니다. 이 키는 선택 사항입니다.examples
: 카테고리를 대표하는 예제 배열입니다. 일반적으로 5개 이하의 예제가 필요하지만 카테고리당 20개까지로 제한됩니다. 모든 카테고리에 대해 예제 수가 동일할 필요는 없습니다. 이 키는 선택 사항입니다.
참고
설명과 예제는 입력 토큰으로 계산되므로 분류 작업 비용이 증가합니다. 자세한 내용은 비용 고려 사항 섹션을 참조하십시오.
선택 사항:
options
분류 작업을 위한 선택적 구성(키-값 페어)을 포함하는 오브젝트입니다. 현재 사용 가능한 유일한 키는 다음과 같습니다.
task_description
: 텍스트 분류 작업에 대한 간단한 설명이 포함된 문자열입니다. 작업 설명은 약 50단어(3~4문장) 이내로 작성해야 합니다.
반환¶
JSON 오브젝트를 포함하는 문자열을 반환합니다. JSON 오브젝트는 입력 프롬프트가 분류된 카테고리를 포함합니다. 유효하지 않은 인자가 주어지면 오류가 반환됩니다. 오류에 대한 자세한 내용은 오류 조건 섹션을 참조하십시오.
액세스 제어 요구 사항¶
사용자는 SNOWFLAKE.CORTEX_USER 데이터베이스 역할 이 부여된 역할을 사용해야 합니다. 이 권한에 대한 자세한 내용은 필수 권한 섹션을 참조하십시오.
사용법 노트¶
최적의 성능을 위해 다음 지침을 따르십시오.
입력 및 카테고리에는 일반 영어 텍스트를 사용하십시오.
입력 텍스트에서는 일반 영어가 아닌 텍스트의 양을 제한합니다. 예를 들어, 텍스트 입력에서 코드 조각이나 로그와 같은 콘텐츠를 제한해 보십시오.
텍스트에는 오픈 소스가 아닌 코드나 형식(회사 고유의 언어, 독점 형식 등)이 포함되어서는 안 됩니다. 이 함수는 오류를 반환하지 않지만, 결과가 예상한 것과 다를 수 있습니다.
카테고리 레이블에는 약어, 특수 문자 또는 전문 용어를 사용하지 마십시오.
카테고리는 설명적인 내용이어야 합니다. 예를 들어
Xa4s3
또는category 1
과 같은 카테고리를 사용하면 좋은 결과를 얻을 수 없습니다.카테고리는 상호 배타적이어야 합니다.
입력 텍스트와 카테고리 간의 관계가 모호하거나 미묘한 경우 명확한 작업 설명을 추가하면 정확도를 높일 수 있습니다.
라벨 설명을 추가하면 설명이 모호하거나 특정 라벨을 선택할 때 특정 논리를 따라야 하는 경우 정확도를 높일 수 있습니다. 설명을 작성할 때는 특정 레이블을 다른 레이블과 구별하는 핵심적인 측면에 집중하십시오.
예제를 통해 정확도를 높일 수 있습니다.
예¶
필수 인자 사용하기¶
이 예제는 필수 인자만 사용하여 CLASSIFY_TEXT 함수를 사용하는 방법을 설명합니다.
다음 예에서는 프롬프트를 travel
또는 cooking
의 두 카테고리 중 하나로 분류합니다.
SELECT SNOWFLAKE.CORTEX.CLASSIFY_TEXT('One day I will see the world', ['travel', 'cooking']);
{
"label": "travel"
}
다음 예에서는 텍스트를 위한 열과 해당 텍스트에 가능한 카테고리를 위한 열이 포함된 테이블 text_classification_table
을 만듭니다. CLASSIFY_TEXT 함수는 테이블의 각 행에서 호출되어 텍스트 열의 문자열을 분류합니다.
CREATE OR REPLACE TEMPORARY TABLE text_classification_table AS
SELECT 'France' AS input, ['North America', 'Europe', 'Asia'] AS classes
UNION ALL
SELECT 'Singapore', ['North America', 'Europe', 'Asia']
UNION ALL
SELECT 'one day I will see the world', ['travel', 'cooking', 'dancing']
UNION ALL
SELECT 'my lobster bisque is second to none', ['travel', 'cooking', 'dancing'];
SELECT input,
classes,
SNOWFLAKE.CORTEX.CLASSIFY_TEXT(input, classes)['label'] as classification
FROM text_classification_table;
선택적 인자 사용¶
이 예제는 카테고리 설명 및 예제 및/또는 작업 설명과 함께 CLASSIFY_TEXT 함수를 사용하는 방법을 설명합니다.
다음 예제에서는 프롬프트를 세 가지 카테고리(여행, 요리 또는 피트니스) 중 하나로 분류하여 작업 설명만 제공합니다.
SELECT SNOWFLAKE.CORTEX.CLASSIFY_TEXT(
'When I am not at work, I love creating recipes using every day ingredients',
['travel', 'cooking', 'fitness'],
{
'task_description': 'Return a classification of the Hobby identified in the text'
}
);
{
"label": "cooking"
}
다음 예제에서는 모든 옵션을 사용하여 프롬프트를 여행, 요리 또는 피트니스 중 하나의 카테고리로 분류합니다.
SELECT SNOWFLAKE.CORTEX.CLASSIFY_TEXT(
'I love running every morning before the world wakes up',
[{
'label': 'travel',
'description': 'Hobbies related to going from one place to another',
'examples': ['I like flying to Europe', 'Every summer we go to Italy' , 'I love traveling to learn new cultures']
},{
'label': 'cooking',
'description': 'Hobbies related to preparing food',
'examples': ['I like learning about new ingredients', 'You must bring your soul to the recipe' , 'Baking is my therapy']
},{
'label': 'fitness',
'description': 'Hobbies related to being active and healthy',
'examples': ['I cannot live without my Strava app', 'Running is life' , 'I go to the Gym every day']
}],
{'task_description': 'Return a classification of the Hobby identified in the text'})
{
"label": "fitness"
}
다음 예제에서는 모든 옵션을 사용하여 프롬프트를 세 가지 범주(여행, 요리 또는 피트니스) 중 하나로 분류합니다. 단, 일부 카테고리의 경우 설명이나 예제가 생략되어 있으며, 예제의 개수도 다양합니다.
SELECT SNOWFLAKE.CORTEX.CLASSIFY_TEXT(
'I love running every morning before the world wakes up',
[{
'label': 'travel',
'description': 'Hobbies related to going from one place to another',
'examples': ['I like flying to Europe']
},{
'label': 'cooking',
'examples': ['I like learning about new ingredients', 'You must bring your soul to the recipe' , 'Baking is my therapy']
},{
'label': 'fitness',
'description': 'Hobbies related to being active and healthy'
}],
{'task_description': 'Return a classification of the Hobby identified in the text'})
{
"label": "fitness"
}