모델 미세 조정
지정된 훈련 데이터 세트로 모델을 미세 조정합니다.
다음도 참조하십시오.
옵션
-
계정 이름은 사용할 AI 계정 이름의 텍스트 표현식입니다. 현재 파일에서 AI 계정 구성 스크립트 단계를 사용하여 계정을 설정하고 이 스크립트 단계가 실행되기 전에 언제든지 이 이름을 할당하십시오.
-
기본 모델은 텍스트 생성 모델을 미세 조정하기 위한 텍스트 표현식입니다. 지원되는 모델은 FileMaker 기술 사양을 참조하십시오.
-
훈련 데이터는 미세 조정을 위한 훈련 데이터의 소스를 지정합니다.
-
테이블: 레코드의 현재 찾기 세트를 기반으로 지정된 테이블 발생의 데이터를 사용합니다. 훈련의 경우, 완료 필드의 데이터가 어시스턴 응답으로 사용되며, 다른 모든 필드의 데이터는 해당 사용자 프롬프트로 사용됩니다.
-
파일: 훈련 데이터가 포함된 JSONL 파일을 사용합니다. 각 줄은 사용자 프롬프트와 해당 어시스턴트 응답을 포함하는 유효한 JSON 대상체여야 합니다.
-
-
응답 대상은 모델 제공자가 이 스크립트 단계에서 시작한 미세 조정 작업에 대한 정보가 포함된 JSON 대상체를 반환하는 필드 또는 변수를 지정합니다.
-
매개 변수 미세 조정은 모델 제공자가 지원하는 미세 조정 옵션에 대한 키-값 쌍으로 구성된 JSON 대상체의 텍스트 표현식입니다.
훈련 데이터가 테이블인 경우에만 사용 가능한 옵션:
-
테이블의 값은 훈련 데이터에 사용할 테이블 발생을 지정합니다.
-
완료 필드는 훈련에 대해 예상된 어시스턴트 응답 또는 답변이 포함된 테이블의 필드를 지정합니다.
훈련 데이터가 파일인 경우에만 사용 가능한 옵션:
-
파일의 값은 훈련 데이터가 포함된 JSONL 파일에 대한 하나 이상의 경로 목록을 지정합니다. 경로는
file
경로 접두사 중 하나를 사용해야 합니다. 스크립트 단계는 목록을 검색하여 찾은 첫 번째 JSONL 파일을 추가합니다. 파일 경로 생성하기를 참조하십시오.
호환성
제품 | 지원 |
FileMaker Pro | 예 |
FileMaker Go | 예 |
FileMaker WebDirect | 예 |
FileMaker Server | 예 |
FileMaker Cloud | 예 |
FileMaker Data API | 예 |
사용자 설정 웹 발행 | 예 |
다음 버전에서 시작됨
22.0
설명
이 스크립트 단계는 Low-Rank Adaptation(LoRA) 기술을 사용하여 기본 AI 모델의 미세 조정된 버전을 만들기 위해 지원되는 모델 제공자에게 훈련 데이터를 보냅니다. 미세 조정을 통해 기본 모델의 일반적인 기능을 유지하면서 자체 데이터로 모델을 훈련하여 특정 작업, 도메인 또는 응답 스타일에 대한 모델의 동작을 사용자화할 수 있습니다. 예를 들어, 회사의 특정 용어, 작성 스타일 또는 도메인 전문 지식을 활용하여 더욱 적절하게 응답하도록 모델을 미세 조정할 수 있습니다. LoRA는 원래 가중치를 수정하지 않고 모델에 훈련 가능한 작은 매개 변수를 추가하는 효율적인 방법입니다. 이 접근 방식은 전체 모델을 미세 조정할 때보다 계산 리소스와 메모리가 훨씬 적게 필요하지만 성능 개선 결과에서는 큰 차이가 없습니다.
계정 이름으로 지정한 AI 계정은 다음 모델 제공자 중 하나에 대해 구성해야 합니다.
-
OpenAI
-
Apple Silicon이 장착된 Mac에서 FileMaker Server와 함께 제공되는 AI 모델 서버
다른 모델 제공자 및 운영 체제는 미세 조정을 지원하지 않습니다. FileMaker 기술 사양을 참조하십시오.
훈련 데이터
훈련 데이터는 FileMaker 테이블 또는 JSON Lines(JSONL) 파일에서 제공할 수 있습니다. 각 훈련 예제는 사용자 프롬프트와 원하는 어시스턴트 응답으로 구성됩니다. 그러면 모델은 유사한 프롬프트가 주어졌을 때 훈련 예제와 유사한 응답을 생성할 수 있습니다.
훈련 데이터 소스 | 방법 |
---|---|
테이블 |
지정된 테이블 발생에 대해 완료 필드의 데이터를 어시스턴트 응답으로 보내고 모든 다른 필드의 데이터를 해당 사용자 프롬프트로 보냅니다. 현재 찾기 세트의 각 레코드(관련 테이블을 지정하는 경우 각 관련 레코드)에 대해 스크립트 단계는 다음 포맷의 JSON 대상체를 생성한 다음 모두 JSONL 파일로 모델 제공자에게 보냅니다. 복사
참고 이 옵션은 사용자 프롬프트에서 보낼 필드를 지정할 수 없습니다. 사용자 프롬프트에 포함할 필드를 지정하려면 레코드를 JSONL로 저장 스크립트 단계를 사용하여 JSONL 파일을 생성한 다음 이 스크립트 단계에서 파일 옵션을 사용하여 해당 파일을 훈련 데이터로 보냅니다. |
파일 |
파일로 지정된 경로 목록에서 찾은 첫 번째 JSONL 파일을 보냅니다. JSONL 파일의 각 줄은 최소한 사용자 프롬프트와 해당 어시스턴트 응답을 이 포맷으로 생성한 JSON 대상체를 포함해야 합니다. 복사
참고 이 예제에서는 명확성을 위해 여러 줄로 표시했지만 실제로 JSONL 파일에서 각 JSON 대상체는 한 줄에 있어야 합니다. 미세 조정 포맷 옵션을 켜면 레코드를 JSONL로 저장 스크립트 단계를 사용하여 레코드 데이터에서 이 파일을 생성할 수 있습니다. |
응답 대상
이 스크립트 단계에서 시작하는 미세 조정 작업에 대한 정보를 얻으려면 응답 대상 옵션에 대한 변수 또는 필드를 지정하십시오. 미세 조정은 상당한 시간이 걸릴 수 있으므로 모델 제공자에게 문의하여 프로세스가 완료되고 미세 조정된 모델을 사용할 준비가 되었는지 확인해야 합니다.
예를 들어, AI 모델 서버는 다음의 경우에 아래와 같은 응답을 보냅니다.
-
파일로 지정된 JSONL 파일은 my-training-data.jsonl입니다.
-
기본 모델은 google/codegemma-7b-it입니다.
-
매개 변수 미세 조정으로 지정된
fine_tuned_model_name
키의 값은 my-fine-tuned-model-name입니다. 응답 대상에서fine_tuned_model
키의 값은 AI 모델 서버에서 할당한 전체 이름입니다.
{
"result": {
"object": "fine_tuning.job",
"id": "fm-ftjob-1753297022103",
"file_id": "fm-ft-train-1753297022070",
"model": "google/codegemma-7b-it",
"created_at": 1753297022103,
"fine_tuned_model": "fm-mlx-my-fine-tuned-model-name",
"status": "queued",
"training_file": "my-training-data.jsonl",
"tags": [
"fine-tune"
]
}
}
AI 모델 서버가 언제 미세 조정을 완료했는지 확인하려면 FileMaker Server Admin Console에 로그인합니다. 메모를 참조하십시오.
매개 변수 미세 조정
매개 변수 미세 조정 옵션을 사용하여 모델 제공자가 지원하는 미세 조정 매개변수를 지정할 수 있습니다. 지원되는 매개 변수의 키 이름과 유효한 범위는 모델 공급자의 문서를 참조하십시오.
FileMaker Server와 함께 제공되는 AI 모델 서버의 경우 필요에 따라 다음 키와 값을 사용하여 미세 조정을 조절할 수 있습니다. 키가 지정되지 않거나 매개 변수 미세 조정 옵션이 사용되지 않는 경우 스크립트 단계는 기본값을 사용합니다.
매개 변수 | 설명 | 기본값 |
|
총 훈련 단계(또는 반복 횟수)입니다. 반복 횟수가 많을수록 시스템 메모리와 시간이 더 많이 필요하며 과적합이 발생할 위험이 있습니다. |
1000 |
|
각 훈련 단계에서 모델을 어느 정도로 조정할지 제어하는 숫자입니다. 값이 높을수록 훈련 속도는 더 빠르지만 최적의 성능에서 더 벗어날 위험이 있습니다. 값이 낮을수록 훈련 속도는 더 안정적이지만 수렴 속도가 늦어집니다. |
2e-4(0.0002) |
|
미세 조정 중에 LoRA 어댑터가 적용될 모델의 레이어 수입니다. 값이 낮을수록 메모리 사용량이 적어지면서 훈련 속도가 빨라지므로 간단한 모델 변경에 적합합니다. 값이 높을수록 메모리 사용량이 많아지면서 훈련 속도가 느려지므로 보다 복잡한 모델 변경에 더 적합합니다. |
4 |
|
미세 조정 중에 모델 가중치를 업데이트하기 전에 함께 처리되는 훈련 예제의 수입니다. 값이 낮을수록 메모리 사용량이 적어지면서 훈련 속도가 느려집니다. 값이 높을수록 메모리 사용량이 많아지면서 훈련 속도가 빨라집니다. |
1 |
|
훈련 후 미세 조정된 모델의 사용자 설정 이름을 제어합니다. 이 매개 변수에 루트 이름을 지정하면 AI 모델 서버는 공백을 하이픈으로 변환하고 미세 조정된 모델의 전체 이름은 응답 대상에 반환됩니다. 경고 전체 이름이 기존 미세 조정 모델의 이름과 일치하면 새 미세 조정 모델에 대한 훈련을 시작하기 전에 기존 미세 조정 모델이 삭제됩니다. |
|
예를 들어, 이 JSON 대상체는 매개 변수 미세 조정 옵션에 키를 설정합니다.
{
"max_steps": 2000,
"learning_rate": 1e-4,
"batch_size": 2,
"lora_layers": 6,
"fine_tuned_model_name": "customer-support-v1"
}
참고
-
미세 조정에는 상당한 계산 리소스가 필요합니다. AI 모델 서버에서 한 번에 두 개 이상의 미세 조정 작업을 실행하면 시스템 성능에 부정적인 영향을 미칠 수 있습니다.
-
AI 모델 서버에서 미세 조정된 모델의 상태를 모니터링(예: 훈련이 완료된 시점 확인)하려면 FileMaker Server Admin Console을 엽니다. 또한 JSONL 파일을 업로드하여 미세 조정 모델을 직접 생성할 수 있습니다. FileMaker Server 도움말에서 AI 미세 조정 모델 생성을 참조하십시오.
예제 1- 테이블 데이터를 사용한 기본 미세 조정
테이블의 데이터로 OpenAI 모델을 미세 조정합니다. 스크립트는 OpenAI용 AI 계정을 구성하고 Support_QA 레이아웃으로 이동합니다. Support_QA 테이블에는 질문 및 답변 필드가 있습니다. 스크립트는 원하는 찾기 세트를 얻기 위해 찾기를 수행한 다음, 해당 레코드에서 데이터를 전송하여 GPT-4.1 모델을 미세 조정하고 완료 필드에 대한 답변 필드를 지정합니다(다른 모든 필드의 데이터는 사용자 프롬프트로 전송됨).
AI 계정 구성[ 계정 이름: "my-account" ; 모델 제공자: OpenAI ; API 키: Global::OpenAI_API_Key ]
레이아웃으로 이동 [ "Support_QA" (Support_QA) ]
찾기 수행 [ 복원 ]
모델 미세 조정 [ 계정 이름: "my-account" ; 기본 모델: "gpt-4.1-2025-04-14" ; 훈련 데이터: 테이블 ; "Support_QA" ; 완료 필드: Support_QA::답변 ; 응답 대상: $$responseTarget ]
OpenAI에서 훈련을 완료했음을 알리고 미세 조정 모델 이름을 제공하면 모델에서 응답 생성과 같은 스크립트 단계에서 모델을 사용할 수 있습니다.
모델에서 응답 생성 [ 계정 이름: "my-account" ; 모델: "ft:gpt-4o-mini-2024-07-18:my-org::LBNO71Qq" ; 사용자 프롬프트: $question ; 에이전트 모드 ; 응답: $$response ]
예제 2- JSONL 파일을 사용한 미세 조정
레코드를 JSONL로 저장 스크립트 단계의 예제 2에서 생성된 JSONL 파일을 전송하여 AI 모델 서버에서 모델을 미세 조정합니다. 스크립트는 AI 계정을 구성하고 $trainingFile 변수를 도큐멘트 폴더에 있는 JSONL 파일의 경로로 설정합니다.
그런 다음 스크립트는 $parameters 변수를 미세 조정 모델 매개 변수에 사용할 키-값 쌍을 포함하는 JSON 대상체로 설정합니다. 여기에는 미세 조정 모델을 제공하기 위한 루트 이름을 설정하는 것도 포함됩니다.
마지막으로, 스크립트는 $trainingFile로 지정된 JSONL 파일을 AI 모델 서버로 전송하여 미세 조정할 기본 모델, 사용할 매개 변수 및 응답을 저장할 $response 변수를 표시합니다. 나중에 전체 미세 조정 모델 이름을 사용할 수 있도록 하기 위해 스크립트가 $response에서 이름을 가져와 글로벌 필드에 저장합니다.
AI 계정 구성 [ 계정 이름: "AI_Model_Server" ; 모델 제공자: 사용자 설정 ; 엔드포인트: "https://myserver.example.com/llm/v1/" ; API 키: Global::Fine_Tuning_API_Key ; SSL 인증서 확인 ]
변수 설정 [ $trainingFile ; 값: Get(DocumentsPath) & "training_data.jsonl" ]
변수 설정 [ $parameters ; 값:
Let ( [
json = "{}" ;
json = JSONSetElement ( json; "max_steps"; 1500; JSONString ) ;
json = JSONSetElement ( json; "learning_rate"; 1e-4; JSONString ) ;
json = JSONSetElement ( json; "batch_size"; 2; JSONString ) ;
json = JSONSetElement ( json; "fine_tuned_model_name"; "product-expert-v2" ; JSONString )
] ;
json
)
]
모델 미세 조정 [ 계정 이름: "AI_Model_Server" ; 기본 모델: "google/codegemma-7b-it" ; 훈련 데이터: 파일 ; "$trainingFile" ; 응답 대상: $responseTarget ; 매개 변수 미세 조정: $parameters ]
필드 설정 [ 글로벌::Fine_Tuned_Model ; JSONGetElement ( $responseTarget ; "result.fine_tuned_model" ) ]