View a markdown version of this page

Nova 2.0에서 SFT - Amazon Nova

Nova 2.0에서 SFT

RFT 훈련 데이터는 OpenAI 대화 형식을 따릅니다. 각 훈련 예제는 메시지, 참조 답변 및 선택적 도구 정의를 포함하는 JSON 객체입니다. 이 섹션에서는 Nova 2.0에서 RFT에 대한 효과적인 훈련 데이터를 준비하는 방법에 대한 지침을 제공합니다.

데이터 형식 및 구조

각 훈련 예제는 다음을 포함하는 JSON 객체입니다.

  • messages: 시스템, 사용자 및 선택적으로 어시스턴트 역할을 사용하는 대화 턴 배열

  • reference_answer: 보상 계산에 대한 평가 기준 또는 예상 출력

  • tools(선택 사항): 모델에서 사용할 수 있는 함수 정의 배열

  • id(선택 사항): 추적 및 중복 제거를 위한 고유 식별자

각 예제는 JSONL 파일에서 한 줄에 있어야 하며 한 줄에 하나의 JSON 객체가 있어야 합니다.

다음 예제에서는 실측 정보 값을 포함하는 참조 답변을 사용하는 화학 문제를 보여줍니다.

{ "id": "chem-001", "messages": [ { "role": "system", "content": "You are a helpful chemistry assistant" }, { "role": "user", "content": "Predict hydrogen bond donors and acceptors for this SMILES: CCN(CC)CCC(=O)c1sc(N)nc1C" } ], "reference_answer": { "donor_bond_counts": 2, "acceptor_bond_counts": 4, "explanation": "Calculated using Lipinski's rule of five: N-H groups (2 donors), N and O atoms with lone pairs (4 acceptors)" } }
참고

reference_answer에는 도메인별 규칙을 사용하여 계산된 실측 정보 값이 포함되어 있습니다. 보상 함수는 모델 예측 값을 이러한 참조 값과 비교하여 보상 점수를 계산합니다.

다음 예제에서는 해법 단계를 포함하는 수학 문제를 보여줍니다.

{ "id": "math-001", "messages": [ { "role": "system", "content": "You are a math tutor" }, { "role": "user", "content": "Solve: 2x + 5 = 13" } ], "reference_answer": { "solution": "x = 4", "steps": ["2x = 13 - 5", "2x = 8", "x = 4"] } }

다음 예제에서는 예상 동작이 있는 도구 사용을 보여줍니다.

{ "id": "tool-001", "messages": [ { "role": "system", "content": "You are a helpful game master assistant" }, { "role": "user", "content": "Generate a strength stat for a warrior character. Apply a +2 racial bonus modifier." } ], "tools": [ { "type": "function", "function": { "name": "StatRollAPI", "description": "Generates character stats by rolling 4d6, dropping the lowest die result, and applying a modifier.", "parameters": { "type": "object", "properties": { "modifier": { "description": "An integer representing the modifier to apply to the total of the stat roll.", "type": "integer" } }, "required": ["modifier"] } } } ], "reference_answer": { "tool_called": "StatRollAPI", "tool_parameters": { "modifier": 2 }, "expected_behavior": "Call StatRollAPI with modifier=2 and return the calculated stat value" } }

필드 설명

필드

설명

추가 참고 사항

필수

id

이 RFT 예제의 고유 식별자

문자열(예: 'sample-001'). 추적 및 중복 제거에 유용합니다.

아니요

messages

프롬프트 및 컨텍스트를 정의하는 채팅 메시지의 정렬된 목록

객체의 배열입니다. 모델은 이를 순서대로 확인합니다. 일반적으로 시스템 메시지로 시작한 다음 사용자로 진행합니다.

messages[].role

메시지에서 화자

공통 값: 'system', 'user'(다른 컨텍스트에서 때때로 'assistant')

아니요

messages[].content

메시지의 텍스트 콘텐츠

일반 문자열. 시스템의 경우 지침, 사용자의 경우 태스크 또는 입력에 해당합니다.

아니요

도구

이 예제에서 모델에 사용할 수 있는 도구 사양

배열. 각 항목은 도구의 인터페이스와 메타데이터를 정의합니다. 유형으로 'function' 또는 'internal'이 포함될 수 있습니다.

아니요

reference_answer

이 예제의 예상 모델 출력

태스크에 따라 문자열 또는 객체에 해당합니다. 평가 또는 훈련의 대상으로 사용됩니다.

아니요

참고

추가 사용자 지정 필드(예: task_id, difficulty_level, context_data)는 검증되지 않으며 보상 함수에 메타데이터로 전달됩니다.

하이퍼파라미터 지침

훈련 접근 방식을 기반으로 다음과 같은 권장 하이퍼파라미터를 사용합니다.

일반:

  • 에포크: 1

  • 학습률(lr): 1e-7

  • 세대 수: 8

  • 최대 새 토큰 수: 8192

  • 배치 크기: 256

저순위 적응(LoRA)

  • LoRA 순위: 32

참고

데이터세트 크기 및 검증 성능에 따라 이러한 값을 조정합니다. 훈련 지표를 모니터링하여 과적합을 방지합니다.

추가 속성

'additionalProperties': true 설정을 사용하면 핵심 스키마 요구 사항 이외의 사용자 지정 필드를 포함할 수 있으므로 적절한 평가를 위해 보상 함수에 필요한 데이터를 유연하게 추가할 수 있습니다.

일반적인 추가 필드

다음과 같은 유형의 추가 필드를 포함할 수 있습니다.

메타데이터:

  • task_id: 추적을 위한 고유 식별자

  • difficulty_level: 문제 복잡성 지표

  • domain: 주제 영역 또는 카테고리

  • expected_reasoning_steps: 해법의 단계 수

평가 기준:

  • evaluation_criteria: 특정 등급 루브릭

  • custom_scoring_weights: 여러 측면의 상대적 중요도

  • context_data: 문제에 대한 배경 정보

  • external_references: 관련 설명서 또는 리소스에 대한 링크

추가 속성이 있는 예제

다음 예제에는 사용자 지정 메타데이터 필드가 포함되어 있습니다.

{ "id": "algebra_001", "messages": [ { "role": "system", "content": "You are a math tutor" }, { "role": "user", "content": "Solve: 2x + 5 = 13" } ], "reference_answer": { "solution": "x = 4", "steps": ["2x = 13 - 5", "2x = 8", "x = 4"] }, "task_id": "algebra_001", "difficulty_level": "easy", "domain": "algebra", "expected_reasoning_steps": 3 }

데이터세트 크기 권장 사항

시작점

다음과 같은 최소 데이터세트 크기로 시작합니다.

  • 최소 100개의 훈련 예제

  • 최소 100개의 평가 예제

모델 응답에서 일관되게 실행되는 신뢰할 수 있는 보상 함수와 고품질 입력 데이터의 우선순위를 지정합니다.

평가 우선 접근 방식

대규모 RFT 훈련에 투자하기 전에 모델의 기준 성능을 평가합니다.

  • 높은 성능(> 95% 보상): RFT가 불필요할 수 있음 - 모델이 이미 잘 작동함

  • 매우 낮은 성능(0% 보상): 먼저 SFT로 전환하여 기본 기능을 설정함

  • 중간 성능: RFT가 적절할 가능성이 큼

이 평가 우선 접근 방식은 보상 함수에 버그가 없도록 보장하고 RFT가 사용 사례에 올바른 방법인지를 결정합니다. 소규모로 시작하여 RFT 워크플로에 익숙해지면서, 문제를 조기에 식별 및 수정하고, 스케일 업하기 전에 접근 방식을 검증하며, 보상 함수 신뢰성을 테스트할 수 있습니다. 검증 후에 더 큰 데이터세트로 확장하여 성능을 더욱 개선할 수 있습니다.

효과적인 훈련 데이터의 특성

명확성 및 일관성

좋은 RFT 예제에는 여러 모델 출력에서 정확한 보상을 계산할 수 있는 명확하고 모호하지 않은 입력 데이터가 필요합니다. 다음을 포함하여 데이터에서 노이즈를 방지합니다.

  • 일관되지 않은 형식 지정

  • 모순되는 레이블 또는 지침

  • 모호한 프롬프트

  • 참조 답변 충돌

모호할 경우 훈련 프로세스에서 오해가 발생하고 모델이 의도하지 않은 동작을 학습하게 됩니다.

다양성

데이터세트는 강력한 실제 성능을 보장하기 위해 프로덕션 사용 사례의 완전한 다양성을 캡처해야 합니다. 포함:

  • 다양한 문제 유형 및 난이도

  • 여러 입력 형식 및 엣지 케이스

  • 모든 예상 시나리오의 대표 샘플

이러한 다양성은 과적합을 방지하는 데 도움이 되고 모델이 익숙하지 않은 입력을 정상적으로 처리하도록 보장합니다.

보상 함수 고려 사항

효율적인 훈련을 위해 보상 함수를 설계합니다.

  • 분이 아닌 초 단위 내 실행

  • Lambda를 사용하여 효과적으로 병렬 처리

  • 일관되고 신뢰할 수 있는 점수 반환

  • 여러 유형의 모델 출력을 정상적으로 처리

빠르고 확장 가능한 보상 함수를 사용하면 대규모로 신속한 반복과 비용 효율적인 실험이 가능합니다.