arctic-extract 모델 미세 조정¶
이제 Snowflake Cortex Fine-tuning 함수 및 /developer-guide/snowflake-ml/dataset`를 사용하여 ``arctic-extract` 모델을 미세 조정할 수 있습니다. 그런 다음 미세 조정된 모델을 AI_EXTRACT 함수로 추론하는 데 사용할 수 있습니다.
구문¶
특정 구문, 사용법 노트, 예제는 다음을 참조하십시오.
FINETUNE ('CREATE') (SNOWFLAKE.CORTEX)¶
미세 조정 작업을 만듭니다.
구문¶
SNOWFLAKE.CORTEX.FINETUNE(
'CREATE',
'@<database>.<schema>.<model_name>',
'arctic-extract',
'<training_dataset>'
[
, '<validation_dataset>'
]
)
필수 매개 변수¶
'CREATE'미세 조정 작업을 생성할 것임을 지정합니다.
'training_dataset'학습에 사용할 데이터 세트 오브젝트입니다. 자세한 내용은 데이터 세트 요구 사항 섹션을 참조하십시오.
선택적 매개 변수¶
'validation_dataset'유효성 검사에 사용할 데이터 세트 오브젝트입니다. 자세한 내용은 데이터 세트 요구 사항 섹션을 참조하십시오.
참고
options 매개 변수는 arctic-extract 모델 미세 조정에 대해 지원되지 않습니다. 에포크 수는 시스템에서 자동으로 결정됩니다.
액세스 제어 요구 사항¶
권한 |
오브젝트 |
참고 |
|---|---|---|
USAGE 또는 OWNERSHIP |
DATABASE |
데이터 세트 오브젝트가 저장되는 데이터베이스입니다. |
USAGE 또는 OWNERSHIP |
SCHEMA |
데이터 세트 오브젝트가 저장되는 스키마입니다. |
READ 또는 OWNERSHIP |
STAGE |
문서 파일이 저장되는 스테이지입니다. |
USAGE 또는 OWNERSHIP |
SCHEMA |
미세 조정된 모델이 저장되는 스키마입니다. |
CREATE MODEL |
SCHEMA |
미세 조정된 모델이 저장되는 스키마입니다. |
또한 FINETUNE 함수를 사용하려면 함수를 호출할 사용자에게 ACCOUNTADMIN 역할이 SNOWFLAKE.CORTEX_USER 데이터베이스 역할을 부여해야 합니다. 자세한 내용은 LLM 함수 필수 권한 항목을 참조하십시오.
예¶
SELECT SNOWFLAKE.CORTEX.FINETUNE(
'CREATE',
'@database.schema.model_name',
'arctic-extract`,
'snow://dataset/training_ds/versions/2',
'snow://dataset/validation_ds/versions/4'
);
FINETUNE ('DESCRIBE') (SNOWFLAKE.CORTEX)¶
미세 조정 작업의 속성을 설명합니다.
구문 및 매개 변수는 FINETUNE ('DESCRIBE') (SNOWFLAKE.CORTEX) 섹션을 참조하세요.
arctic-extract 모델을 미세 조정할 때 성공적인 작업의 출력 예제입니다.
{
"base_model":"arctic-extract",
"created_on":1717004388348,
"finished_on":1717004691577,
"id":"ft_6556e15c-8f12-4d94-8cb0-87e6f2fd2299",
"model":"mydb.myschema.my_tuned_model",
"progress":1.0,
"status":"SUCCESS",
"training_data":"snow://dataset/training_ds/versions/2",
"trained_tokens":2670734,
"training_result":{"validation_loss":1.0138969421386719,"training_loss":0.6477728401547047},
"validation_data":"snow://dataset/validation_ds/versions/4",
}
데이터 세트 요구 사항¶
학습 및 검증에 사용되는 :doc:`데이터 세트</developer-guide/snowflake-ml/dataset>`에는 다음 열이 포함되어야 합니다.
- 파일:
추출할 문서의 파일 경로가 포함된 문자열입니다. 예:
@db.schema.stage/file.pdf- 프롬프트:
AI_EXTRACT 함수의
responseFormat인자에서 지원하는 형식 중 하나로 추출하기 위한 키 및 질문 페어입니다.자세한 내용은 AI_EXTRACT 섹션을 참조하십시오.
- 응답:
키 및 응답 페어가 포함된 JSON 오브젝트입니다.
참고
열 이름은 대/소문자를 구분하지 않으며 데이터 세트에서 임의의 순서로 지정할 수 있습니다. 그러나 데이터 세트가 유효하려면 모든 필수 열(File, Prompt 및 Response)이 있어야 합니다. 데이터 세트의 추가 열은 무시됩니다.
데이터 세트를 준비할 때 다음 사항에 유의하세요.
미세 조정된 모델의 스키마는 데이터 세트에 있는 모든 질문의 고유한 세트입니다.
Response열의 답변은Prompt및Response열의 키를 일치시켜Prompt열의 질문과 일치해야 합니다.모든 문서에 대해 동일한 질문 세트를 지정할 필요는 없습니다.
모델 정확도를 높이려면 모델의 기본 응답이 올바른 경우에도 각 질문에 대한 프롬프트 및 응답 행을 추가합니다. 이 작업을 통해 기본 답변이 정확한지 확인합니다.
데이터 세트에 대한 자세한 내용은 Snowflake 데이터 세트 섹션을 참조하세요.
데이터 세트 예제¶
파일 |
프롬프트 |
응답 |
|---|---|---|
|
|
|
|
|
|
|
{
"schema":
{
"type": "object",
"properties": {
"deductions": {
"description": "Deductions",
"type": "object",
"properties": {
"deductions_name": {
"type": "array"
},
"current": {
"type": "array"
}
}
}
}
}
}
|
{
"deductions": {
"deductions_name": [
"Federal Tax",
"Wyoming State Tax",
"SDI",
"Soc Sec / OASDI",
"Health Insurance Tax",
"None"
],
"current": [
"82.50",
"64.08",
"None",
"13.32",
"91.74",
"21.46"
]
}
}
|
참고
데이터 세트를 생성할 때 질문에 대한 답변이 문서에 포함되어 있지 않은 경우 응답을 ``None``으로 설정합니다.
사용법 노트¶
미세 조정을 위해 20개 이상의 문서를 사용하는 것이 좋습니다.
문서에 지원되는 파일 형식은 다음과 같습니다.
PDF
PNG
JPG, JPEG
TIFF, TIF
문서당 최대 페이지 수:
AWS US 서부 2(오레곤) 및 AWS 유럽 중부 1(프랑크푸르트)의 경우 64페이지
AWS US 동부 1(북부 버지니아) 및 Azure 동부 US 2(버지니아)의 경우 125페이지
데이터 세트의 최대 고유 문서 파일 수는 1,000개입니다. 동일한 문서 파일을 여러 번 참조할 수 있습니다.
미세 조정 작업에 포함될 수 있는 질문과 문서 수에는 제한이 있습니다. 질문 수에 데이터 세트의 모든 문서 파일에 있는 총 페이지 수를 곱한 값은 50,000보다 작거나 같아야 합니다.
예를 들어, 몇 가지 유효한 조합은 다음과 같습니다.
질문 수
페이지 수
문서 파일 참조 수 [1]
10
1
5,000
100
1
500
10
10
500
25
10
200
미세 조정 작업을 생성합니다.¶
미세 조정 작업을 생성하려면 학습 데이터가 포함된 데이터 세트 오브젝트를 생성해야 합니다. 다음 예제에서는 데이터 세트 오브젝트를 생성하고 데이터 세트를 사용하여 arctic-extract 모델에 대한 미세 조정 작업을 생성하는 방법을 보여줍니다.
학습 데이터를 포함할 테이블을 생성합니다.
CREATE OR REPLACE TABLE my_data_table (f FILE, p VARCHAR, r VARCHAR);
학습 데이터로 테이블을 채웁니다.
INSERT INTO my_data_table (f, p, r) SELECT TO_FILE('@db.schema.stage', '1.pdf'), '{"net": "What is the net value?"}', '{"net": "3,762.56"}';
데이터 세트 오브젝트를 생성합니다.
CREATE OR REPLACE DATASET my_dataset;
FL_GET_STAGE 및 FL_GET_RELATIVE_PATH 함수를 사용하여 파일 경로를 가져와 학습 데이터를 추가하는 데이터 세트의 새 버전을 생성합니다.
ALTER DATASET my_dataset ADD VERSION 'v1' FROM ( SELECT FL_GET_STAGE(f) || '/' || FL_GET_RELATIVE_PATH(f) AS "file", p AS "prompt", r AS "response" FROM my_data_table );
미세 조정 작업을 생성합니다.
SELECT SNOWFLAKE.CORTEX.FINETUNE( 'CREATE', 'my_tuned_model', 'arctic-extract', 'snow://dataset/db.schema.my_dataset/versions/v1' );
추론에 미세 조정된 arctic-extract 모델 사용¶
추론에 미세 조정된 arctic-extract 모델을 사용하려면 모델 오브젝트에 대한 다음 권한이 있어야 합니다.
OWNERSHIP
USAGE
READ
AI_EXTRACT 함수를 사용한 추론에 미세 조정된 arctic-extract 모델을 사용하려면 다음 예제에서와 같이 model 매개 변수를 사용하여 모델을 지정합니다.
SELECT AI_EXTRACT(
model => 'db.schema.my_tuned_model',
file => TO_FILE('@db.schema.files','document.pdf')
);
다음 예제에서와 같이 responseFormat 매개 변수를 사용하여 미세 조정에 사용되는 질문을 재정의할 수 있습니다.
SELECT AI_EXTRACT(
model => 'db.schema.my_tuned_model',
file => TO_FILE('@db.schema.files','document.pdf'),
responseFormat => [['name', 'What is the first name of the employee?'], ['city', 'Where does the employee live?']]
);
자세한 내용은 AI_EXTRACT 섹션을 참조하십시오.