View a markdown version of this page

Nova Forge SDK - Amazon Nova

Nova Forge SDK

Nova Forge SDK는 Amazon Nova 모델을 사용자 지정하기 위한 포괄적인 Python SDK입니다. 이 SDK에서는 SageMaker AI 및 Amazon Bedrock을 비롯한 다양한 플랫폼에서 Amazon Nova 모델의 훈련, 평가, 모니터링, 배포 및 추론을 위한 통합 인터페이스를 제공합니다. 모델을 도메인별 작업에 맞게 적응하든 사용 사례에 맞게 성능을 최적화하든 관계없이 이 SDK는 하나의 통합 인터페이스에서 필요한 모든 기능을 제공합니다.

다음 단계에 따라 설치에서 첫 번째 훈련 작업으로 이동합니다.

이점

  • 데이터 준비부터 배포 및 모니터링에 이르기까지 전체 모델 사용자 지정 수명 주기를 위한 단일 SDK입니다.

  • 지속적인 사전 훈련(CPT), 지도 미세 조정(SFT), 직접 선호 최적화(DPO), 강화 미세 조정(RFT), 싱글턴 및 멀티턴 모두를 포함하여 LoRA 및 전체 순위 접근 방식을 함께 여러 훈련 방법에 대한 지원.

  • 자동 리소스 관리를 통해 SageMaker 훈련 작업 및 SageMaker HyperPod, Amazon Bedrock에 대한 기본 제공 지원.

  • 훈련 기법에 적합한 레시피 또는 컨테이너 URI를 더 이상 찾을 필요 없음.

  • 자체 훈련 레시피를 가져오거나 파라미터 재정의와 함께 SDK의 지능형 기본값을 사용합니다.

  • 이 SDK는 지원되는 모델 및 인스턴스 조합에 대해 구성을 검증하고 검증 지원을 제공하여 훈련이 시작되기 전에 오류를 방지합니다.

  • 통합 Amazon CloudWatch 모니터링을 사용하면 훈련 진행 상황을 실시간으로 추적할 수 있습니다.

  • MLFlow를 통합하여 SageMaker AI MLFlow 추적 서버로 훈련 실험을 추적합니다.

요구 사항

지원되는 Python 버전

Nova Forge SDK는 다음에서 테스트됩니다.

  • Python 3.12

설치

이 SDK를 설치하려면 아래 명령을 따르세요.

pip install amzn-nova-forge

지원되는 모델 및 기법

이 SDK는 Amazon Nova 패밀리 내에서 다음과 같은 모델과 기법을 지원합니다.

방법 지원되는 모델
지속적인 사전 훈련 모든 Nova 모델(SMHP만 해당)
지도 미세 조정 LoRA 모든 Nova 모델
지도 미세 조정 전체 순위 모든 Nova 모델(SMHP 및 SMTJ만 해당)
직접 선호 최적화 LoRA Nova 1.0 모델(SMHP 및 SMTJ만 해당)
직접 선호 최적화 전체 순위 Nova 1.0 모델(SMHP 및 SMTJ만 해당)
강화 미세 조정 LoRA Nova Lite 2.0
강화 미세 조정 전체 순위 Nova Lite 2.0(SMHP 및 SMTJ만 해당)
멀티턴 강화 미세 조정 LoRA Nova Lite 2.0
멀티턴 강화 미세 조정 전체 순위 Nova Lite 2.0

멀티턴 강화 학습 출력

제한된 모델 패키지(RMP)는 플랫폼 관리형 에스크로 스토리지에서 독점 모델 아티팩트를 래핑하는 SageMaker AI 모델 패키지입니다. RMP 사용하면 기본 아티팩트에 대한 직접 액세스 권한을 부여하지 않고도 IAM 정책을 통해 이러한 모델의 사용을 승인하고 제어할 수 있습니다. 모델 데이터는 직접 다운로드, 내보내거나 볼 수 없습니다. 승인된 AWS 서비스 내에서만 사용할 수 있습니다. RMP는 StorageType: "Restricted"으로 표시된 모델 패키지 그룹 내에 존재합니다.

SageMaker 훈련 작업 서버리스에서 멀티턴 강화 학습(MTRL)을 사용하여 모델을 훈련하면 출력이 S3 경로가 아닌 모델 패키지 그룹 내의 RMP ARN으로 제공됩니다. 이는 모델 체크포인트의 S3 경로를 출력으로 제공하는 다른 훈련 방법(예: SFT, DPO 또는 RFT)과 다릅니다.

MTRL을 사용하려면 훈련 출력을 수신하도록 런타임 구성에서 model_package_group_name을 지정합니다. 작업이 완료되면 출력 RMP ARN을 참조하여 훈련된 모델을 평가할 수 있습니다. 예를 들어 MTRL 실행을 반복 훈련 워크플로로 연결하기 위해 RMP를 후속 훈련 작업의 입력으로 사용하는 기능은 2026년 3분기에 제공될 예정입니다. 자세한 내용과 코드 예제는 제한된 모델 패키지를 참조하세요.

시작하기

1. 데이터 준비

로컬 파일 또는 S3에서 데이터세트를 로드하고 SDK가 선택한 훈련 방법에 맞는 올바른 형식으로 변환을 처리하게 합니다. 또는 형식이 지정된 데이터를 제공하고 즉시 시작합니다.

from amzn_nova_forge.dataset.dataset_loader import JSONLDatasetLoader from amzn_nova_forge.model.model_enums import Model, TrainingMethod, TransformMethod loader = JSONLDatasetLoader() loader.load("s3://your-bucket/training-data.jsonl") loader.transform( method=TransformMethod.SCHEMA, training_method=TrainingMethod.SFT_LORA, model=Model.NOVA_LITE_2, column_mappings={"question": "input", "answer": "output"}, )

2. 인프라 구성

컴퓨팅 리소스를 선택합니다. SDK에서 구성을 검증하고 최적의 설정을 보장합니다.

from amzn_nova_forge.manager.runtime_manager import BedrockRuntimeManager, SMTJRuntimeManager, SMTJServerlessRuntimeManager, SMHPRuntimeManager # Bedrock runtime = BedrockRuntimeManager( execution_role="arn:aws:iam::123456789012:role/ExampleRole" ) # SageMaker Training Jobs runtime = SMTJRuntimeManager( instance_type="ml.p5.48xlarge", instance_count=4 ) # SageMaker Training Jobs Serverless runtime = SMTJServerlessRuntimeManager( model_package_group_name = "my-package" ) # SageMaker HyperPod runtime = SMHPRuntimeManager( instance_type="ml.p5.48xlarge", instance_count=4, cluster_name="my-hyperpod-cluster", namespace="kubeflow" )

3. 훈련

몇 줄의 코드만으로 훈련을 시작합니다.

from amzn_nova_forge.trainer.forge_trainer import ForgeTrainer from amzn_nova_forge.model.model_enums import Model, TrainingMethod from amzn_nova_forge.core import ForgeConfig trainer = ForgeTrainer( model=Model.NOVA_LITE_2, method=TrainingMethod.SFT_LORA, infra=runtime, training_data_s3_path="s3://your-bucket/sft/prepared-data.jsonl", # Training data path config=ForgeConfig( output_s3_path="s3://your-bucket/output", ), ) result = trainer.train(job_name="my-training-job")

4. 모니터링

SDK에서 훈련 진행 상황을 직접 추적합니다.

from amzn_nova_forge.monitor.log_monitor import CloudWatchLogMonitor # Monitor training logs trainer.get_logs() # Or monitor directly via CloudWatchLogMonitor monitor = CloudWatchLogMonitor.from_job_result(result) monitor.show_logs(limit=10) # Check job status result.get_job_status() # InProgress, Completed, Failed

5. 평가

다양한 기본 제공 벤치마크를 사용하여 모델 성능을 평가하거나 자체 평가를 설계합니다.

from amzn_nova_forge.evaluator import ForgeEvaluator from amzn_nova_forge.recipe_config.eval_config import EvaluationTask evaluator = ForgeEvaluator( model=Model.NOVA_LITE_2, infra=runtime, config=ForgeConfig( output_s3_path="s3://your-bucket/output", ), data_s3_path="s3://your-bucket/eval-data/data.jsonl" ) # Evaluate on benchmark tasks eval_result = evaluator.evaluate( job_name="model-eval", eval_task=EvaluationTask.MMLU, model_path=result.model_artifacts.checkpoint_s3_path )

6. 배포

Amazon Bedrock 또는 SageMaker에 대한 기본 지원을 통해 사용자 지정 모델을 프로덕션에 배포합니다.

from amzn_nova_forge.deployer import ForgeDeployer from amzn_nova_forge.model.model_enums import DeployPlatform, Model deployer = ForgeDeployer( region="us-east-1", model=Model.NOVA_LITE_2, ) # Bedrock provisioned throughput deployment = deployer.deploy( model_artifact_path=result.model_artifacts.checkpoint_s3_path, deploy_platform=DeployPlatform.BEDROCK_PT, unit_count=10 ) # Bedrock On-Demand deployment = deployer.deploy( model_artifact_path=result.model_artifacts.checkpoint_s3_path, deploy_platform=DeployPlatform.BEDROCK_OD ) # Sagemaker Real-time Inference deployment = deployer.deploy( model_artifact_path=result.model_artifacts.checkpoint_s3_path, deploy_platform=DeployPlatform.SAGEMAKER, unit_count=10, sagemaker_instance_type="ml.p5.48xlarge", sagemaker_environment_variables={ "CONTEXT_LENGTH": "12000", "MAX_CONCURRENCY": "16", } )

주요 기능

즉시 레시피 생성

이 SDK를 사용하면 특정 기법에 적절한 레시피 또는 컨테이너 URI를 검색할 필요가 없습니다.

지능형 데이터 처리

SDK에서 훈련을 위한 올바른 형식으로 데이터를 자동 변환합니다. JSON, JSONL 또는 CSV 파일로 작업하는 경우 데이터 로더에서 변환을 원활하게 처리합니다. 데이터 로더는 텍스트와 멀티모달 데이터(이미지 및 비디오)를 지원합니다.

엔터프라이즈 인프라 지원

이 SDK는 SageMaker 훈련 작업과 SageMaker HyperPod 모두에서 작동하며 다음을 자동으로 관리합니다.

  • 인스턴스 유형 검증

  • 레시피 검증

  • 데이터세트 검증

  • 작업 오케스트레이션 및 모니터링

SDK는 SageMaker 훈련 작업 서버리스 및 Bedrock 사용자 지정도 지원합니다.

포괄적인 평가

다음을 포함한 표준 벤치마크를 기준으로 사용자 지정 모델을 평가합니다.

  • Massive Multitask Language Understanding(MMLU)

  • 고급 추론 작업(BBH)

  • Graduate-Level Google-Proof Q&A(GPQA)

벤치마크 기본값을 사용하거나 필요에 맞게 수정합니다.

  • 자체 지표 가져오기(BYOM)

  • 자체 데이터세트 가져오기(BYOD)

프로덕션 배포

다음에 대한 옵션을 사용하여 Amazon Bedrock 또는 SageMaker AI에 모델을 배포합니다.

  • Bedrock 프로비저닝된 처리량 - 일관된 성능을 위한 전용 용량

  • Bedrock 온디맨드(LoRA 기반 사용자 지정에만 해당) - 종량제 요금

  • Sagemaker AI 실시간 추론 - 일관된 성능을 위한 전용 용량

배치 추론

대규모 추론 작업을 효율적으로 실행합니다.

  • 수천 개의 요청을 병렬로 처리

  • 자동 결과 집계

  • 비용 효율적인 배치 처리

Nova Forge

Nova Forge 구독자의 경우 SDK는 데이터 혼합 레시피를 지원합니다.

자세히 알아보기

Nova Forge SDK를 사용하여 Nova 모델 사용자 지정을 시작할 준비가 되셨나요? 자세한 가이드, API 참조 및 추가 예제는 GitHub 리포지토리(https://github.com/aws/nova-forge-sdk)를 참조하세요.