반복 훈련 - Amazon SageMaker AI

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

반복 훈련

개요

반복 훈련은 훈련, 평가, 오류 분석, data/objectives/hyperparameters 조정 등 다양한 훈련 방법에 걸쳐 여러 훈련 주기를 통해 모델을 반복적으로 미세 조정하는 프로세스로, 각 라운드는 이전 체크포인트에서 시작됩니다. 이 접근 방식을 사용하면 모델 장애 모드를 체계적으로 대상으로 지정하고, 특정 약점을 해결하는 선별된 예제를 통합하고, 시간이 지남에 따라 변화하는 요구 사항에 적응할 수 있습니다.

단일 패스 훈련의 이점:

  • 목표 개선: 평가를 통해 발견된 특정 장애 패턴 해결

  • 적응형 개선: 배포 전환 또는 진화하는 제품 요구 사항에 대응

  • 위험 완화: 긴 단일 훈련 실행을 커밋하지 않고 점진적으로 개선 사항 검증

  • 데이터 효율성: 모델 성능이 낮은 영역에 데이터 수집 노력 집중

  • 커리큘럼 훈련: 점점 더 높은 품질의 데이터가 포함된 여러 차례의 훈련

작동 방식

체크포인트 위치 및 액세스

각 훈련 작업이 완료되면 훈련 구성의 output_path 파라미터로 지정된 출력 위치에 매니페스트 파일이 생성됩니다.

체크포인트에 액세스하려면

  • S3output_path에 지정된 로 이동합니다.

  • output.tar.gz 파일 다운로드 및 추출

  • 내부에서 manifest.json 파일 열기

  • 훈련된 모델의 S3 URI가 포함된 checkpoint_s3_bucket 파라미터를 찾습니다.

manifest.json 구조의 예

{ "checkpoint_s3_bucket": "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<job-name>/stepID", ... }

에스크로 버킷 이해

Amazon Nova 가중치는 독점이므로 훈련된 모델 체크포인트는 계정에 복사되지 않고 AWS관리형 계정 내의에스크로 S3 버킷에 저장됩니다. 이러한 에스크로 버킷은 다음과 같습니다.

  • 사용자 지정 모델 가중치를 안전하게 포함

  • 다른 AWS서비스(추론, 평가 및 후속 훈련 작업)에서 참조할 수 있음

  • IAM 권한을 통해서만 AWS계정에 액세스할 수 있습니다.

  • 계정에 표준 S3 스토리지 요금이 발생합니다(비용 고려 사항 참조).

다음 훈련 실행model_name_or_path에서 에스크로 버킷 경로를 로 사용하여 반복 훈련을 계속할 수 있습니다.

반복 훈련에 체크포인트 사용

이전 체크포인트를 기본 모델로 사용하도록 다음 훈련 작업을 구성합니다.

run: name: "my-iterative-training-job" model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<previous-job-name>" data_s3_path: s3://<bucket>/<data-file>.jsonl replicas: 4

반복 훈련을 사용해야 하는 경우

이상적인 사용 사례

다음과 같은 경우 반복 훈련을 사용합니다.

  • 피드백 루프 - 실제 장애 사례를 수집하고 체계적으로 해결하는 기능

  • 동적 환경 - 정기적인 모델 업데이트가 필요한 문서, APIs 또는 지원 주제 개선

  • 강력한 평가 - 개선 사항을 자신 있게 측정하기 위한 강력한 벤치마크 및 평가 프레임워크(아래 예제 참조)

  • ML 운영 기능 - 여러 훈련 주기 및 버전 관리를 관리하는 리소스

강력한 평가 프레임워크의 예

  • 통과/실패 임계값이 있는 자동화된 벤치마크 제품군

  • 평가자 간 신뢰성 지표가 포함된 인적 평가 프로토콜

  • 엣지 케이스 및 공격자 입력을 다루는 레드 팀 테스트 시나리오

  • 프로덕션 영향을 측정하기 위한 A/B 테스트 인프라

일반적인 패턴

SFT → RFT 파이프라인: 자주 사용되는 반복 패턴에는 다음이 포함됩니다.

  • SFT 우선 - 데모 예제를 통해 문제를 해결하는 방법을 모델에 교육합니다.

  • RFT 초 - 보상 신호를 사용하여 광범위한 문제 공간에서 성능 최적화

이 시퀀스는 모델이 처음에는 성능이 좋지 않을 때 필수적입니다. 정확도가 거의 0에 가까운 모델의 RFT는 먼저 SFT를 통해 기본적인 문제 해결 기능을 설정하지 않으면 성능을 개선하지 못합니다.

반복 훈련을 사용하지 않는 경우

다음에 대한 반복 훈련을 피합니다.

  • 안정적이고 잘 정의된 작업 - 일관된 요구 사항이 이미 천장에 가까운 성능을 달성하는 고정 데이터

  • 간단한 분류 문제 - 단일 패스 훈련으로 충분한 좁은 작업

  • 리소스 제약 - 여러 훈련 주기를 관리할 수 있는 전용 ML 운영 기능 부족

  • 마진 이득 - 오버헤드로 최소 성능 개선이 정당화되지 않는 경우

워크플로 예제: SFT → RFT

이 예제에서는 추론 모델에 대한 일반적인 반복 훈련 패턴을 보여줍니다.

1단계: 초기 SFT 훈련

데이터 세트를 사용하여 SFT 훈련 작업을 구성하고 시작합니다.

run: name: "initial-sft-training" model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: "nova-lite-2/prod" data_s3_path: s3://<bucket>/sft-training-data.jsonl validation_data_s3_path: s3://<bucket>/sft-validation-data.jsonl

근거: SFT는 모델 출력을 원하는 형식과 음성으로 형성하여 기본 기능을 설정하는 추가 데모를 제공합니다.

훈련이 완료된 후

  • 훈련 작업에 output_path 구성된을 기록해 둡니다.

  • output.tar.gz 해당 위치에서 다운로드

  • 추출 및 찾기 manifest.json

  • checkpoint_s3_bucket 값 복사

2단계: SFT 체크포인트에 대한 RFT 훈련

SFT 체크포인트를 사용하여 새 RFT 훈련 작업을 생성합니다.

run: name: "rft-on-sft-checkpoint" model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<initial-sft-training>" data_s3_path: s3://<bucket>/rft-training-data.jsonl reward_lambda_arn: <your-reward-function-arn>

근거: RFT 훈련은 SFT 기반을 기반으로 구축되므로 모델은 보상 함수에 최적화된 보다 복잡한 추론 패턴을 개발할 수 있습니다.

3단계: 평가 및 반복

RFT 체크포인트에서 평가를 실행하여 성능을 평가합니다.

run: name: "evaluate-rft-checkpoint" model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<rft-on-sft-checkpoint>" data_s3_path: s3://<bucket>/evaluation-data.jsonl

대상 지표가 충족되지 않으면 조정된 데이터 또는 하이퍼파라미터로 계속 반복합니다.

중요

⚠️ 중요: 훈련 기법(LoRA 대 전체 순위)은 모든 반복에서 일관성을 유지해야 합니다.

  • SFT를 LoRA와 함께 사용하는 경우 RFT를 LoRA와 함께 사용해야 합니다.

  • 전체 순위와 함께 SFT를 사용하는 경우 전체 순위와 함께 RFT를 사용해야 합니다.

  • LoRA와 전체 순위 중간 파이프라인 간에 전환할 수 없습니다.

반복 전반의 진행 상황 모니터링

MLFlow를 통해 지표를 추적할 수 있습니다.

MLflow 앱 생성

Studio UI 사용: Studio UI를 통해 훈련 작업을 생성하는 경우 기본 MLflow 앱이 자동으로 생성되고 고급 옵션에서 기본적으로 선택됩니다.

CLI 사용: CLI를 사용하는 경우 MLflow 앱을 생성하고 이를 훈련 작업 API 요청에 대한 입력으로 전달해야 합니다.

mlflow_app_name="<enter your MLflow app name>" role_arn="<enter your role ARN>" bucket_name="<enter your bucket name>" region="<enter your region>" mlflow_app_arn=$(aws sagemaker create-mlflow-app \ --name $mlflow_app_name \ --artifact-store-uri "s3://$bucket_name" \ --role-arn $role_arn \ --region $region)

MLflow 앱에 액세스

CLI 사용: 미리 서명된 URL을 생성하여 MLflow 앱 UI에 액세스합니다.

aws sagemaker create-presigned-mlflow-app-url \ --arn $mlflow_app_arn \ --region $region \ --output text

Studio UI 사용: Studio UI는 MLflow에 저장된 주요 지표를 표시하고 MLflow 앱 UI에 대한 링크를 제공합니다.

추적할 주요 지표

반복 전반에 걸쳐 이러한 지표를 모니터링하여 개선을 평가하고 작업 진행 상황을 추적합니다.

SFT의 경우

  • 훈련 손실 곡선

  • 사용된 샘플 수 및 샘플 처리 시간

  • 홀드아웃 테스트 세트의 성능 정확도

  • 형식 규정 준수(예: 유효한 JSON 출력 속도)

  • 도메인별 평가 데이터의 복잡성

RFT의 경우

  • 훈련 대비 평균 보상 점수

  • 보상 분포(높은 보상 응답의 백분율)

  • 검증 보상 추세(과적합 여부 확인)

  • 작업별 성공률(예: 코드 실행 패스율, 수학 문제 정확도)

일반

  • 반복 간 성능 델타 벤치마크

  • 대표 샘플에 대한 인적 평가 점수

  • 프로덕션 지표(반복적으로 배포하는 경우)

중지 시기 결정

다음과 같은 경우 반복을 중지합니다.

  • 성능 고원 - 추가 훈련으로 대상 지표가 더 이상 의미 있게 개선되지 않음

  • 기법 전환이 도움이 됨 - 한 기법이 정체된 경우 성능 상한을 깨뜨리려면 전환(예: SFT → RFT → SFT)을 시도하세요.

  • 목표 지표 달성 - 성공 기준이 충족됨

  • 회귀 감지 - 새 반복은 성능을 저하시킵니다(아래 롤백 절차 참조).

자세한 평가 절차는 평가 섹션을 참조하세요.

모범 사례

작게 시작하고 점진적으로 확장

확장하기 전에 최소 데이터 세트와 단일 훈련 에포크로 시작하여 접근 방식을 검증합니다. 이렇게 하면 신뢰도가 높아지고 문제를 조기에 식별하는 데 도움이 됩니다.

명확한 성공 지표 설정

시작하기 전에 정량적 및 정성적 지표를 정의합니다.

사용 사례별 성공 지표 예

  • 질문 답변 - 정확한 일치 정확도, F1 점수, 인적 선호도 등급

  • 코드 생성 - 단위 테스트 통과율, 컴파일 성공, 실행 시간

  • 추론 작업 - 단계 정확도, 최종 답변 정확성, 보상 점수

  • 콘텐츠 생성 - 일관성 점수, 사실적 정확도, 스타일 준수

자동 평가 구현

자동 평가 파이프라인을 설정하여 각 라운드 후 성능을 추적하여 빠른 반복 및 목표 비교를 지원합니다.

엄격한 버전 관리 유지

각 반복에 대한 문서:

  • 데이터 세트 버전 및 수정 사항

  • 모델 체크포인트 위치

  • 하이퍼파라미터 변경 사항

  • 성능 지표 및 델타

  • 정성적 관찰

이렇게 하면 제도적 지식이 구축되고 디버깅이 활성화됩니다.

수량보다 데이터 품질에 집중

데이터 세트 크기를 늘리는 대신 이전 라운드의 실패 사례를 분석하고 대상에 맞는 고품질 예제를 추가합니다.

반복 예산 계획

일반적인 범위로 3~5회 반복을 계획합니다.

  • 1~2회 반복 - 간단한 개선 또는 최종 폴리싱에 충분한 경우가 많습니다.

  • 3~5회 반복 - 여러 개선 주기가 필요한 복잡한 작업에 적합

  • 5회 이상의 반복 - 수익률 감소 또는 다양한 접근 방식의 필요성을 나타낼 수 있습니다.

컴퓨팅 예산 및 성능 개선률에 따라 조정합니다.

롤백 기능 구현

반복 시 회귀가 발생하는 경우:

  • 회귀 식별 - 체크포인트 간 평가 지표 비교

  • 이전 체크포인트로 돌아가기 - 이전 체크포인트의 S3 경로를 로 사용 model_name_or_path

  • 훈련 접근 방식 조정 - 재시도하기 전에 데이터, 하이퍼파라미터 또는 기술을 수정합니다.

  • 실패 문서화 - 반복을 방지하기 위해 회귀의 원인을 기록합니다.

롤백 예제

run: name: "rollback-to-iteration-2" model_type: amazon.nova-2-lite-v1:0:256k # Use iteration 2 checkpoint instead of failed iteration 3 model_name_or_path: "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<iteration-2-job-name>"

비용 고려 사항

체크포인트 스토리지

  • 위치 - 에스크로 버킷에 저장된 체크포인트에는 AWS계정에 청구되는 표준 S3 스토리지 요금이 발생합니다.

  • 보존 - 명시적으로 삭제되지 않는 한 체크포인트는 무기한 보존됩니다.

  • 관리 - 수명 주기 정책을 구현하여 더 이상 필요하지 않은 이전 체크포인트를 아카이브하거나 삭제합니다.

비용 최적화 팁

  • 최신 반복을 검증한 후 중간 체크포인트 삭제

  • 더 저렴한 비용으로 장기 보존을 위해 S3 Glacier에 체크포인트 보관

  • 규정 준수 및 실험 요구 사항에 따라 보존 정책 설정

제한 사항

모델 패밀리 일관성

반복적으로 훈련할 때는 모든 반복에서 동일한 모델 유형을 사용해야 합니다.

초기 훈련

run: model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: "nova-lite-2/prod"

후속 반복은 동일한 model_type을 사용해야 합니다.

run: model_type: amazon.nova-2-lite-v1:0:256k # Must match original model_name_or_path: "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<job-name>"

훈련 기법 일관성

훈련 기법은 반복 전반에 걸쳐 일관성을 유지해야 합니다.

  • LoRA 훈련 모델은 LoRA로만 반복적으로 훈련할 수 있습니다.

  • Full-Rank-trained 모델은 전체 순위로만 반복적으로 훈련할 수 있습니다.

반복 훈련에서 LoRA 어댑터의 작동 방식

  • 각 LoRA 훈련 반복은 새 어댑터 가중치를 생성합니다.

  • 새 어댑터는 이전 어댑터를 대체(스택 아님)합니다.

  • 기본 모델은 고정 상태로 유지되며 어댑터만 업데이트됩니다.

기법 호환성 매트릭스

초기 훈련 를 사용하여 반복할 수 있음
SFT(전체 순위) SFT(전체 순위), RFT(전체 순위)
SFT(LoRA) SFT(LoRA), RFT(LoRA)
RFT(전체 순위) RFT(전체 순위)
RFT(LoRA) RFT(LoRA)

작업을 시작하기 전에 호환성 확인

  • 이전 훈련 레시피를 확인하여 모델 유형 및 훈련 기법(LoRA 대 전체 순위)을 식별합니다.

  • 새 레시피가 모델 유형과 기술 모두와 일치하는지 확인합니다.

  • manifest.json을 검토하여 체크포인트 경로가 올바른지 확인합니다.

문제 해결

오류: "비호환 모델 훈련 기법이 감지됨"

원인: 훈련 기법(LoRA 대 전체 순위)이 체크포인트의 기법과 일치하지 않습니다.

해결 방법: 레시피가 원래 모델과 동일한 훈련 기술을 사용하는지 확인합니다.

  • 체크포인트가 LoRA로 훈련된 경우 새 레시피에서 LoRA를 사용합니다.

  • 체크포인트가 전체 순위로 훈련된 경우 새 레시피에서 전체 순위 사용

오류: “ model_name_or_path에서 추출한 작업의 기본 모델이 model_type과 일치하지 않습니다.”

원인:에 지정된 모델 유형이 체크포인트의 실제 모델과 model_type 일치하지 않습니다.

해결 방법: 다음을 확인합니다.

  • 레시피model_type의가 원래 모델 유형과 일치

  • 의 체크포인트 S3 경로model_name_or_path가 올바름

  • 올바른 manifest.json 파일의 경로를 사용하고 있습니다.

올바른 구성의 예

run: model_type: amazon.nova-2-lite-v1:0:256k # Must match checkpoint's model model_name_or_path: "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<job-name>"

오류: "모델 구성을 찾을 수 없음"

원인:의 S3 경로model_name_or_path가 잘못되었거나 액세스할 수 없습니다.

​해결 방법:

  • S3 경로가 manifest.json 파일에서 올바르게 복사되었는지 확인

  • IAM 역할에 에스크로 버킷에 액세스할 수 있는 권한이 있는지 확인합니다.

  • 이전 훈련 작업이 성공적으로 완료되었는지 확인

  • 경로에 오타가 있는지 확인

반복 후 성능 회귀

증상: 새 훈련 반복 후 평가 지표가 감소합니다.

​해결 방법:

  • 롤백 - 이전 체크포인트를 기본 모델로 사용

  • 분석 - 실패한 반복에 대한 훈련 로그 및 데이터 품질 검토

  • 조정 - 하이퍼파라미터 수정(학습률 감소), 데이터 품질 향상 또는 훈련 에폭 감소

  • 재시도 - 조정을 통해 새 반복 시작