Nova 사용자 지정 SDK
Nova 사용자 지정 SDK는 Amazon Nova 모델을 사용자 지정하기 위한 포괄적인 Python SDK입니다. 이 SDK에서는 SageMaker AI 및 Amazon Bedrock을 비롯한 다양한 플랫폼에서 Amazon Nova 모델의 훈련, 평가, 모니터링, 배포 및 추론을 위한 통합 인터페이스를 제공합니다. 모델을 도메인별 태스크에 맞게 적응하든 사용 사례에 맞게 성능을 최적화하든 관계없이 이 SDK는 하나의 통합 인터페이스에서 필요한 모든 기능을 제공합니다.
이점
-
데이터 준비부터 배포 및 모니터링에 이르기까지 전체 모델 사용자 지정 수명 주기를 위한 단일 SDK.
-
지속적인 사전 훈련(CPT), 지도 미세 조정(SFT), 직접 선호 최적화(DPO), 강화 미세 조정(RFT), 싱글턴 및 멀티턴 모두를 포함하여 LoRA 및 전체 순위 접근 방식을 함께 여러 훈련 방법에 대한 지원.
-
자동 리소스 관리를 통해 SageMaker 훈련 작업 및 SageMaker HyperPod에 대한 기본 제공 지원.
-
훈련 기법에 적합한 레시피 또는 컨테이너 URI를 더 이상 찾을 필요 없음.
-
자체 훈련 레시피를 가져오거나 파라미터 재정의와 함께 SDK의 지능형 기본값을 사용합니다.
-
이 SDK는 지원되는 모델 및 인스턴스 조합에 대해 구성을 검증하고 검증 지원을 제공하여 훈련이 시작되기 전에 오류를 방지합니다.
-
통합 Amazon CloudWatch 모니터링을 사용하면 훈련 진행 상황을 실시간으로 추적할 수 있습니다.
-
MLFlow를 통합하여 SageMaker AI MLFlow 추적 서버로 훈련 실험을 추적합니다.
요구 사항
SDK에는 Python 3.12 이상이 필요합니다.
설치
이 SDK를 설치하려면 아래 명령을 따르세요.
pip install amzn-nova-customization-sdk
지원되는 모델 및 기법
이 SDK는 Amazon Nova 패밀리 내에서 다음과 같은 모델과 기법을 지원합니다.
| 방법 | 지원되는 모델 |
|---|---|
| 지속적인 사전 훈련 | 모든 Nova 모델(SMHP만 해당) |
| 지도 미세 조정 LoRA | 모든 Nova 모델 |
| 지도 미세 조정 전체 순위 | 모든 Nova 모델 |
| 직접 선호 최적화 LoRA | Nova 1.0 모델 |
| 직접 선호 최적화 전체 순위 | Nova 1.0 모델 |
| 강화 미세 조정 LoRA | Nova Lite 2.0 |
| 강화 미세 조정 전체 순위 | Nova Lite 2.0 |
| 멀티턴 강화 미세 조정 LoRA | Nova Lite 2.0(SMHP만 해당) |
| 멀티턴 강화 미세 조정 전체 순위 | Nova Lite 2.0(SMHP만 해당) |
시작하기
1. 데이터 준비
로컬 파일 또는 S3에서 데이터세트를 로드하고 SDK가 선택한 훈련 방법에 맞는 올바른 형식으로 변환을 처리하게 합니다. 또는 형식이 지정된 데이터를 제공하고 즉시 시작합니다.
from amzn_nova_customization_sdk.dataset.dataset_loader import JSONLDatasetLoader from amzn_nova_customization_sdk.model.model_enums import Model, TrainingMethod loader = JSONLDatasetLoader(question="input", answer="output") loader.load("s3://your-bucket/training-data.jsonl") loader.transform(method=TrainingMethod.SFT_LORA, model=Model.NOVA_LITE)
2. 인프라 구성
컴퓨팅 리소스를 선택합니다. SDK에서 구성을 검증하고 최적의 설정을 보장합니다.
from amzn_nova_customization_sdk.manager.runtime_manager import SMTJRuntimeManager, SMHPRuntimeManager # SageMaker Training Jobs runtime = SMTJRuntimeManager( instance_type="ml.p5.48xlarge", instance_count=4 ) # SageMaker HyperPod runtime = SMHPRuntimeManager( instance_type="ml.p5.48xlarge", instance_count=4, cluster_name="my-hyperpod-cluster", namespace="kubeflow" )
3. 훈련
몇 줄의 코드만으로 훈련을 시작합니다.
from amzn_nova_customization_sdk.model import NovaModelCustomizer from amzn_nova_customization_sdk.model.model_enums import Model, TrainingMethod customizer = NovaModelCustomizer( model=Model.NOVA_LITE_2, method=TrainingMethod.SFT_LORA, infra=runtime, data_s3_path="s3://your-bucket/prepared-data.jsonl" ) result = customizer.train(job_name="my-training-job")
4. 모니터링
SDK에서 훈련 진행 상황을 직접 추적합니다.
from amzn_nova_customization_sdk.monitor.log_monitor import CloudWatchLogMonitor # Monitor training logs customizer.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_customization_sdk.recipe_config.eval_config import EvaluationTask # Evaluate on benchmark tasks eval_result = customizer.evaluate( job_name="model-eval", eval_task=EvaluationTask.MMLU, model_path=result.model_artifacts.checkpoint_s3_path )
6. 배포
Amazon Bedrock 또는 SageMaker에 대한 기본 지원을 통해 사용자 지정 모델을 프로덕션에 배포합니다.
from amzn_nova_customization_sdk.model.model_enums import DeployPlatform # Bedrock provisioned throughput deployment = customizer.deploy( model_artifact_path=result.model_artifacts.checkpoint_s3_path, deploy_platform=DeployPlatform.BEDROCK_PT, unit_count=10 ) # Bedrock On-Demand deployment = customizer.deploy( model_artifact_path=result.model_artifacts.checkpoint_s3_path, deploy_platform=DeployPlatform.BEDROCK_OD ) # Sagemaker Real-time Inference deployment = customizer.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 모두에서 작동하며 다음을 자동으로 관리합니다.
-
인스턴스 유형 검증
-
레시피 검증
-
데이터세트 검증
-
작업 오케스트레이션 및 모니터링
포괄적인 평가
다음을 포함한 표준 벤치마크를 기준으로 사용자 지정된 모델을 평가합니다.
-
Massive Multitask Language Understanding(MMLU)
-
고급 추론 작업(BBH)
-
Graduate-Level Google-Proof Q&A(GPQA)
벤치마크 기본값을 사용하거나 필요에 맞게 수정합니다.
-
자체 지표 가져오기(BYOM)
-
자체 데이터세트 가져오기(BYOD)
프로덕션 배포
다음 옵션을 사용하여 Amazon Bedrock 또는 SageMaker에 모델을 배포합니다.
-
Bedrock 프로비저닝된 처리량 - 일관된 성능을 위한 전용 용량
-
Bedrock 온디맨드(LoRA 기반 사용자 지정에만 해당) - 종량제 요금
-
Sagemaker 실시간 추론 - 일관된 성능을 위한 전용 용량
배치 추론
대규모 추론 작업을 효율적으로 실행합니다.
-
수천 개의 요청을 병렬로 처리
-
자동 결과 집계
-
비용 효율적인 배치 처리
Nova Forge
Nova Forge 구독자의 경우 SDK는 데이터 혼합 레시피를 지원합니다.
자세히 알아보기
Nova 사용자 지정 SDK를 사용하여 Nova 모델 사용자 지정을 시작할 준비가 되셨나요? 자세한 가이드, API 참조 및 추가 예제는 GitHub 리포지토리(https://github.com/aws/nova-customization-sdk