- 카테고리:
문자열 및 이진 함수 (대규모 언어 모델)
COMPLETE (SNOWFLAKE.CORTEX)¶
프롬프트가 나타나면 지원되는 언어 모델 중에서 선택하여 응답(완성)을 생성합니다.
구문¶
SNOWFLAKE.CORTEX.COMPLETE(
<model>, <prompt_or_history> [ , <options> ] )
인자¶
필수:
model
사용할 모델을 지정하는 문자열입니다. 다음 값 중 하나를 지정합니다.
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
지원되는 모델은 비용 이 다를 수 있습니다.
prompt_or_history
완성된 항목을 생성하는 데 사용되는 프롬프트 또는 대화 기록입니다.
options
가 없는 경우 제공된 프롬프트는 문자열이어야 합니다.options
가 있는 경우 인자는 시간순으로 대화를 나타내는 오브젝트로 구성된 배열 이어야 합니다. 각 오브젝트 에는role
키와content
키가 포함되어야 합니다.content
값은 역할에 따라 프롬프트 또는 응답입니다. 다음 중 한 역할이어야 합니다.
role
값
content
값
'system'
응답 스타일에 대한 배경 정보와 지침을 제공하기 위한 언어 모델에 대한 초기 일반 영어 프롬프트입니다. 예를 들면 “Respond in the style of a pirate.”와 같은 프롬프트입니다. 모델은 시스템 프롬프트에 대한 응답을 생성하지 않습니다. 하나의 시스템 프롬프트만 제공될 수 있으며, 프롬프트가 존재하는 경우 배열에서 첫 번째 프롬프트여야 합니다.
'user'
사용자가 제공하는 프롬프트입니다. 시스템 프롬프트(하나가 있는 경우) 또는 보조 응답을 따라야 합니다.
'assistant'
이전에 언어 모델에서 제공한 응답입니다. 사용자 프롬프트를 따라야 합니다. 과거 응답을 사용하여 상태 저장 대화 경험을 제공할 수 있습니다. 사용법 노트 를 참조하십시오.
선택 사항:
options
모델의 하이퍼 매개 변수에 영향을 미치는 다음 옵션 중 0개 이상이 포함된 오브젝트 입니다. LLM 설정 을 참조하십시오.
temperature
: 언어 모델 출력의 임의성을 제어하는 0에서 1(포함) 사이의 값입니다. 온도가 높을수록(예: 0.7) 더 다양하고 무작위적인 출력이 생성되는 반면, 온도가 낮을수록(예: 0.2) 더 결정적이고 포커스가 맞춰진 출력이 생성됩니다.기본값: 0
top_p
: 일반적으로temperature
의 대안으로 사용되는 언어 모델의 임의성과 다양성을 제어하는 0에서 1(포함) 사이의 값입니다.top_p
는 모델이 출력할 가능성이 있는 토큰 세트를 제한하는 반면,temperature
는 각 단계에서 선택되는 토큰에 영향을 미친다는 것이 차이점입니다.기본값: 0
max_tokens
: 응답의 최대 출력 토큰 수를 설정합니다. 값이 작으면 응답이 잘릴 수 있습니다.기본값: 4096
guardrails
: 언어 모델에서 잠재적으로 안전하지 않고 유해한 응답을 필터링합니다. True 또는 False입니다.기본값: False
options
인자를 지정하면 빈 오브젝트({}
)인 경우에도prompt
인자의 해석 방식과 응답의 형식 지정 방식에 영향을 줍니다.
반환¶
options
인자를 지정하지 않으면 문자열을 반환합니다.
options
인자가 주어진 경우 다음 키를 포함하는 JSON 오브젝트의 문자열 표현을 반환합니다.
"choices"
: 모델의 응답 배열. (현재, 응답은 1개만 제공됩니다.) 각각의 응답은 최신 프롬프트에 대한 모델의 응답 값을 갖는"messages"
키를 포함하는 오브젝트입니다."created"
: 응답이 생성된 시점의 UNIX 타임스탬프(1970년 1월 1일 자정 이후에 경과된 초)."model"
: 응답을 생성한 모델의 이름."usage"
: 이 완성으로 소비되고 생성되는 토큰 수를 기록하는 오브젝트. 다음 하위 키를 포함합니다."completion_tokens"
: 생성된 응답의 토큰 수."prompt_tokens"
: 프롬프트의 토큰 수."total_tokens"
: 소비된 총 토큰 수로, 다른 두 값의 합입니다.
액세스 제어 요구 사항¶
사용자는 SNOWFLAKE.CORTEX_USER 데이터베이스 역할 이 부여된 역할을 사용해야 합니다. 이 권한에 대한 자세한 내용은 필수 권한 섹션을 참조하십시오.
사용법 노트¶
COMPLETE 는 한 호출에서 다음 호출까지 어떤 상태도 유지하지 않습니다. 상태 저장 대화 경험을 제공하는 COMPLETE 함수를 사용하려면 대화의 모든 이전 사용자 프롬프트와 모델 응답을 prompt_or_history
배열의 일부로 전달하십시오(채팅 모델용 템플릿 참조). 각 “라운드”마다 처리되는 토큰 수가 증가하고 그에 비례하여 비용도 증가한다는 점을 명심하십시오.
예¶
단일 응답¶
단일 응답을 생성하려면 다음을 수행하십시오.
SELECT SNOWFLAKE.CORTEX.COMPLETE('snowflake-arctic', 'What are large language models?');
테이블 열의 응답¶
다음 예에서는 테이블의 각 행에서 응답을 생성합니다(이 예에서 content
는 reviews
테이블의 열임). reviews
테이블에는 사용자가 제출한 리뷰 텍스트가 포함된 review_content
라는 열이 포함됩니다. 쿼리는 각 리뷰에 대한 비평을 반환합니다.
SELECT SNOWFLAKE.CORTEX.COMPLETE(
'mistral-large',
CONCAT('Critique this review in bullet points: <review>', content, '</review>')
) FROM reviews LIMIT 10;
팁
이 예에 표시된 것처럼, 프롬프트의 태그 지정을 사용하여 생성되는 응답의 종류를 제어할 수 있습니다. 팁은 LLaMA 2 프롬프트 표시 가이드 를 참조하십시오.
온도 및 토큰 제어하기¶
이 예에서는 함수의 options
인자를 사용하여 단일 응답에서 추론 하이퍼 매개 변수를 제어하는 방법을 보여줍니다. 이 형식은 여러 프롬프트와 응답을 지원하므로 이 형식의 함수에서는 프롬프트가 배열로 제공되어야 합니다.
SELECT SNOWFLAKE.CORTEX.COMPLETE(
'llama2-70b-chat',
[
{
'role': 'user',
'content': 'how does a snowflake get its unique pattern?'
}
],
{
'temperature': 0.7,
'max_tokens': 10
}
);
응답은 언어 모델의 메시지와 기타 정보를 포함하는 JSON 오브젝트입니다. options
인자에 지시된 대로 응답이 잘립니다.
{
"choices": [
{
"messages": " The unique pattern on a snowflake is"
}
],
"created": 1708536426,
"model": "llama2-70b-chat",
"usage": {
"completion_tokens": 10,
"prompt_tokens": 22,
"guardrail_tokens": 0,
"total_tokens": 32
}
}
안전 제어¶
이 예에서는 Cortex Guard guardrails
인자를 사용하여 언어 모델에서 안전하지 않고 유해한 응답을 필터링하는 방법을 보여줍니다.
SELECT SNOWFLAKE.CORTEX.COMPLETE(
'mistral-7b',
[
{
'role': 'user',
'content': <'Prompt that generates an unsafe response'>
}
],
{
'guardrails': true
}
);
응답은 JSON 오브젝트이며, 예를 들면 다음과 같습니다.
{
"choices": [
{
"messages": "Response filtered by Cortex Guard"
}
],
"created": 1718882934,
"model": "mistral-7b",
"usage": {
"completion_tokens": 402,
"prompt_tokens": 93,
"guardrails _tokens": 677,
"total_tokens": 1172
}
}
예: 시스템 프롬프트 제공하기¶
이 예에서는 영화 리뷰에 대한 감정 분석을 제공하기 위해 시스템 프롬프트를 사용하는 방법을 보여줍니다. 여기서 prompt
인자는 각각 적절한 role
값을 갖는 오브젝트로 구성된 배열입니다.
SELECT SNOWFLAKE.CORTEX.COMPLETE(
'llama2-70b-chat',
[
{'role': 'system', 'content': 'You are a helpful AI assistant. Analyze the movie review text and determine the overall sentiment. Answer with just \"Positive\", \"Negative\", or \"Neutral\"' },
{'role': 'user', 'content': 'this was really good'}
], {}
) as response;
응답은 언어 모델의 응답과 기타 정보를 포함하는 JSON 오브젝트입니다.
{
"choices": [
{
"messages": " Positive"
}
],
"created": 1708479449,
"model": "llama2-70b-chat",
"usage": {
"completion_tokens": 3,
"prompt_tokens": 64,
"total_tokens": 67
}
}
법적 고지¶
Snowflake AI 및 ML 섹션을 참조하십시오.