Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Anpassen mit dem SageMaker Python-SDK
Das SageMaker Python SDK v3.0 führt eine moderne, modulare API für das Training, die Feinabstimmung, Bereitstellung und Verwaltung von Modellen ein. SageMaker Das SDK unterstützt mehrere Trainingsmethoden, darunter Continued Pre-Training (CPT), Supervised Fine-Tuning (SFT), Direct Preference Optimization (DPO), Reinforcement Fine-Tuning (RFT) und Multi-Turn Reinforcement Learning (MTRL). Sie können Trainingsjobs unter Training Jobs und ausführen. SageMaker SageMaker HyperPod
Quick Links
Gehen Sie wie folgt vor, um von der Installation zu Ihrem ersten Schulungsjob zu gelangen:
-
SDK-Referenz
auf der Read the Docs-Website für SageMaker Python SDK -
Schnellstart-Notizbuch für GitHub
— Interaktives Python-Notizbuch zum praktischen Erkunden
Vorteile
-
Ein modulares SDK für den gesamten Lebenszyklus der Modellanpassung, von der Schulung über die Bereitstellung bis hin zur Überwachung.
-
Multi-platform Unterstützung für SageMaker Trainingsjobs und SageMaker HyperPod mit automatischem Ressourcenmanagement und Infrastrukturkonfiguration.
-
Sie müssen nicht mehr die richtigen Rezepte oder Container-URI für Ihre Trainingstechniken finden.
-
Bringen Sie Ihre eigenen Trainingsrezepte mit oder verwenden Sie die Standardwerte mit Parameter-Overrides.
-
Das SDK validiert Ihre Konfiguration anhand unterstützter Modell- und Instanzkombinationen und verhindert so Fehler, bevor das Training beginnt.
-
Unterstützung mehrerer Trainingsmethoden, darunter kontinuierliches Pre-Training (CPT), überwachte Feinabstimmung (SFT), direkte Präferenzoptimierung (DPO), Reinforcement Fine-Tuning (RFT) und Multi-Turn Reinforcement Learning (MTRL), sowohl mit LoRa- als auch mit Full-Rank-Ansätzen.
-
Dank der integrierten Amazon-Überwachung können Sie den Trainingsfortschritt in Echtzeit verfolgen. CloudWatch
-
Integriertes MLflow zur Verfolgung von Trainingsexperimenten mit SageMaker AI MLFlow-Tracking-Servern.
Voraussetzungen
Unterstützte Python-Versionen
Das SageMaker Python SDK unterstützt Python 3.10 und höher.
Installation
Führen Sie den folgenden Befehl aus, um das SageMaker Python-SDK zu installieren:
pip install "sagemaker>=3.19.0"
Unterstützte Modelle und Techniken
Das SDK unterstützt die folgenden Modelle und Techniken innerhalb der Amazon Nova-Familie:
| Methode | Unterstützte Modelle |
|---|---|
| Fortsetzung Pre-training | Alle Nova-Modelle (nur SMHP) |
| Betreute LoRa Fine-tuning | Alle Nova-Modelle |
| Betreut Fine-tuning Full-Rank | Alle Nova-Modelle |
| Direkte Präferenzoptimierung LoRa | Nova 1.0-Modelle |
| Direkte Präferenzoptimierung Full-Rank | Nova 1.0-Modelle |
| Verstärkung Fine-tuning LoRa | Nova Lite 2.0 |
| Verstärkung Fine-tuning Full-Rank | Nova Lite 2.0 |
| Multi-turn Verstärkung Fine-tuning LoRa | Nova Lite 2.0 |
| Multi-turn Verstärkung Fine-tuning Full-Rank | Nova Lite 2.0 |
Multi-turn Verstärkung des Lernergebnisses
Ein Restricted Model Package (RMP) ist ein SageMaker KI-Modellpaket, das proprietäre Modellartefakte in einem plattformverwalteten Treuhandspeicher verpackt. Mit RMPs können Sie die Nutzung dieser Modelle mithilfe von IAM-Richtlinien autorisieren und kontrollieren, ohne direkten Zugriff auf die zugrunde liegenden Artefakte zu gewähren. Modelldaten können nicht heruntergeladen, exportiert oder direkt angezeigt werden. Es kann nur innerhalb autorisierter AWS Dienste verwendet werden. RMPs existieren in Modellpaketgruppen, die mit StorageType: "Restricted" gekennzeichnet sind.
Wenn Sie ein Modell mithilfe von Multi-Turn Reinforcement Learning (MTRL) auf SageMaker Training Jobs Serverless trainieren, wird die Ausgabe als RMP-ARN innerhalb einer Modellpaketgruppe und nicht als S3-Pfad bereitgestellt. Dies unterscheidet sich von anderen Trainingsmethoden (wie SFT, DPO oder RFT), bei denen die Ausgabe ein S3-Pfad zum Modell-Checkpoint ist.
Um MTRL zu verwenden, verwenden Sie die Klasse. MultiTurnRLTrainer Wenn Sie mit SageMaker Training Jobs Serverless trainieren, können Sie optional eine angeben, output_model_package_group um zu steuern, wo der Ausgabe-RMP registriert wird. Wenn nicht angegeben, erstellt das SDK automatisch eine Modellpaketgruppe für Sie. Weitere Informationen und Codebeispiele finden Sie unter Eingeschränkte Modellpakete.
Erste Schritte
Themen
1. Konfigurieren Sie Ihre Infrastruktur
Das SDK unterstützt drei Rechenplattformen. Übergeben Sie die entsprechende Konfiguration an den compute Parameter Ihres Trainers.
SageMaker HyperPod
from sagemaker.core.training.configs import HyperPodCompute compute = HyperPodCompute( cluster_name="my-hyperpod-cluster", instance_type="ml.p5.48xlarge", node_count=4, )
SageMaker Ausbildungsjobs (Serverful)
from sagemaker.core.training.configs import TrainingJobCompute compute = TrainingJobCompute( instance_type="ml.p5.48xlarge", instance_count=2, )
SageMaker Ausbildungsjobs (serverlos)
Vollständig verwaltet und keine Rechenkonfiguration erforderlich. Lassen Sie den compute Parameter weg und das SDK verwendet standardmäßig Serverless:
# No compute parameter needed as serverless is the default trainer = SFTTrainer( model="nova-textgeneration-lite", training_dataset="s3://my-bucket/sft-data.jsonl", s3_output_path="s3://my-bucket/output/", )
2. Trainieren
Beginnen Sie mit der überwachten Feinabstimmung mit der Klasse. SFTTrainer Geben Sie Ihr Modell, Ihre Berechnungskonfiguration, Ihren Trainingsdatensatz und Ihren Ausgabepfad an.
from sagemaker.train import SFTTrainer from sagemaker.core.training.configs import HyperPodCompute compute = HyperPodCompute( cluster_name="my-hyperpod-cluster", instance_type="ml.p5.48xlarge", node_count=4, ) trainer = SFTTrainer( model="nova-textgeneration-lite", compute=compute, training_dataset="s3://my-bucket/sft-data.jsonl", s3_output_path="s3://my-bucket/output/", ) job = trainer.train(wait=False)
Das SDK ermöglicht außerdem CPTTrainer kontinuierliches Training vor dem Training, DPOTrainer die direkte Präferenzoptimierung, RLVRTrainer die Feinabstimmung der Verstärkung und MultiTurnRLTrainer das mehrstufige Reinforcement Learning. Jedes folgt demselben Muster: Bereitstellung eines Modells, einer Berechnungskonfiguration, eines Trainingsdatensatzes und eines Ausgabepfads.
3. Überwachen
Verfolgen Sie Ihren Trainingsfortschritt direkt vom SDK aus. Verwenden Sie stream_logs() es, um CloudWatch Amazon-Logs in Echtzeit zu streamen oder show_metrics() um Trainingsmetriken wie den Verlust und die Lernrate nach Abschluss der Aufgabe aufzuzeichnen.
# Stream CloudWatch logs in real-time (blocks until job completes) trainer.stream_logs(poll=5) # Or stream only the last N lines trainer.stream_logs(tail_lines=50) # Plot training metrics (training_loss, lr, reward_score) df = trainer.show_metrics()
4. Evaluieren
Bewerten Sie Ihr trainiertes Modell anhand der integrierten Benchmark-Aufgaben mithilfe der BenchMarkEvaluator Klasse. Zu den unterstützten Benchmarks gehören MMLU (Massive Multitask Language Understanding), BBH (Advanced Reasoning Tasks) und GPQA (Q & A). Graduate-Level Google-Proof Weitere Bewertungsoptionen finden Sie unter Evaluatoren. Umfassende Bewertung
from sagemaker.train.evaluate import BenchMarkEvaluator, get_benchmarks # Get the trained model s3 path from the completed training job s3_path = job.model_artifacts.s3_model_artifacts Benchmark = get_benchmarks() evaluator = BenchMarkEvaluator( benchmark=Benchmark.MMLU, model=s3_path, s3_output_path="s3://my-bucket/eval-output/", ) execution = evaluator.evaluate()
5. Bereitstellen
Nach dem Training können Sie Ihr maßgeschneidertes Modell in der Produktion einsetzen. Mit dem SageMaker Python-SDK können Sie es auf SageMaker Real-time Inference-Endpunkten und Amazon Bedrock bereitstellen. On-Demand Wählen Sie die Bereitstellungsoption, die Ihren Anforderungen an Latenz, Durchsatz und Kosten am besten entspricht.
SageMaker Real-time Inferenz
Stellen Sie die Bereitstellung auf einem SageMaker Real-time Inference-Endpunkt bereit, um die volle Kontrolle über Instanztypen, Skalierungsrichtlinien und Endpunktkonfiguration zu haben. Verwenden SieModelBuilder, um einen SageMaker Endpunkt zu erstellen und bereitzustellen:
from sagemaker.serve import ModelBuilder # Get the trained model checkpoint path s3_path = job.model_artifacts.s3_model_artifacts # Deploy to SageMaker Real-time Inference endpoint builder = ModelBuilder( model=s3_path, instance_type="ml.p5.48xlarge", env_vars={ "CONTEXT_LENGTH": "8000", "MAX_CONCURRENCY": "2", }, ) builder.build().deploy() # Build the model and deploy to an endpoint
Bedrock On-Demand
On-Demand Inference bietet nutzungsabhängige Preise ohne bereitgestellte Kapazität. Diese Option gilt für Anpassungen. LoRA-based Verwenden Sie diese On-Demand Option, wenn Sie variable oder unvorhersehbare Verkehrsmuster haben:
from sagemaker.serve import BedrockModelBuilder # Deploy with Bedrock On-Demand builder = BedrockModelBuilder( model=s3_path, throughput_type="on-demand", ) deployment = builder.deploy()
Die wichtigsten Funktionen
Rangfolge beim Überschreiben von Rezepten
Das SageMaker Python SDK verwendet ein mehrschichtiges Konfigurationssystem für das Training von Rezepten. Wenn Sie einen Trainingsjob starten, werden die Parameter in der folgenden Rangfolge (vom höchsten zum niedrigsten Wert) aufgelöst:
-
Parameterüberschreibungen — Werte, die direkt über das
overridesWörterbuch im Trainer-Konstruktor übergeben werden. Diese haben die höchste Priorität und überschreiben alle widersprüchlichen Werte aus den YAML- oder Hub-Standardwerten des Rezepts. -
Rezept-YAML — Eine von Ihnen bereitgestellte YAML-Rezeptdatei (entweder ein S3-Pfad oder eine lokale Datei). Dies definiert die vollständige Trainingskonfiguration, kann aber durch das Wörterbuch selektiv außer Kraft gesetzt werden.
overrides -
Hub-Standardeinstellungen — Das Standardrezept, das auf Grundlage Ihres Modells und Ihrer Trainingsmethode automatisch aus dem SageMaker Model Hub aufgelöst wird. Diese bieten sinnvolle Startkonfigurationen, wenn keine benutzerdefinierten Rezepte oder Überschreibungen angegeben sind.
Um beispielsweise die maximalen Trainingsschritte und die maximale Lernrate außer Kraft zu setzen und gleichzeitig die Hub-Standardwerte für alle anderen Parameter zu verwenden:
from sagemaker.train import SFTTrainer from sagemaker.core.training.configs import HyperPodCompute compute = HyperPodCompute( cluster_name="my-hyperpod-cluster", instance_type="ml.p5.48xlarge", node_count=2, ) trainer = SFTTrainer( model="nova-textgeneration-lite", training_dataset="s3://my-bucket/sft-data.jsonl", s3_output_path="s3://my-bucket/output/", base_job_name="my-sft-training-job", overrides={ "training_config.trainer.max_epochs": 1, "training_config.model.optim.lr": 1e-5, }, ) job = trainer.train(wait=False)
In diesem Beispiel optim.lr werden max_epochs und explizit über Overrides festgelegt. Alle anderen Trainingsparameter (Batchgröße, Aufwärmschritte, Modellparallelität usw.) entsprechen dem Hub-Standardrezept für das Modell. nova-textgeneration-lite
Unterstützung der Unternehmensinfrastruktur
Das SDK unterstützt mehrere Rechenplattformen und verwaltet automatisch die Konfiguration, Validierung und Auftragsorchestrierung der Infrastruktur:
-
SageMaker Schulungsaufträge — Vollständig verwaltete Schulungen mit automatischer Instanzbereitstellung und -abbau. Unterstützt sowohl den On-Demand-Modus als auch den serverlosen Modus.
-
SageMaker HyperPod— Persistente Cluster für groß angelegtes verteiltes Training mit integrierter Fehlertoleranz und automatischer Knotenwiederherstellung.
Auf allen Plattformen validiert das SDK Instanztypen, Rezeptkonfigurationen und Datensatzformate, bevor Jobs eingereicht werden, und verhindert so Fehler in einer frühen Phase des Workflows.
Umfassende Bewertung
Bewerten Sie Ihre maßgeschneiderten Modelle anhand von Standard-Benchmarks. Das SDK bietet die folgenden Evaluatoren:
-
BenchMarkEvaluator— Führen Sie standardisierte Leistungsbenchmarks wie MMLU, BBH und GPQA durch -
LLMAsJudgeEvaluator— Verwenden Sie umfangreiche Sprachmodelle, um die Modellergebnisse zu bewerten -
InspectAIEvaluator— Führen Sie inspectAI oder benutzerdefinierte Benchmark-Aufgaben aus -
CustomScorerEvaluator— Wenden Sie benutzerdefinierte Evaluatorfunktionen an -
MultiTurnRLEvaluator— Evaluieren Sie Agentenmodelle mit Multi-Turn-Agenten anhand von Kennzahlen, die auf der Einführung basieren
Bereitstellung in der Produktion
Mit dem SageMaker Python SDK können Sie Ihre benutzerdefinierten Modelle mithilfe mehrerer Bereitstellungsoptionen bereitstellen:
-
SageMaker Real-time Inferenz — Volle Kontrolle über Instanztypen, Skalierungsrichtlinien und Endpunktkonfiguration für benutzerdefinierte Hosting-Anforderungen.
-
Bedrock On-Demand — Pay-per-use Preisgestaltung ohne bereitgestellte Kapazität. Gilt für Anpassungen. LoRA-based
Verwenden Sie ModelBuilder unsere BedrockModelBuilder Klassen, um trainierte Modelle bereitzustellen.
Mischen von Daten
Anmerkung
Das Mischen von Daten ist exklusiv für Nova Forge-Abonnenten verfügbar.
Das SageMaker Python-SDK stellt die DataMixingConfig Klasse zur Konfiguration der Datenmischung bereit.
Geben Sie in Zusammenarbeit DataMixingConfig mit Ihrem Trainer den Prozentsatz der Kundendaten und die Verteilung auf die Nova-Datenkategorien an:
from sagemaker.train import SFTTrainer from sagemaker.train.data_mixing_config import DataMixingConfig from sagemaker.core.training.configs import HyperPodCompute data_mixing = DataMixingConfig( customer_data_percent=70.0, nova_data_percentages={ "code": 40.0, "reasoning": 30.0, "instruction-following": 30.0, }, ) trainer = SFTTrainer( model="nova-textgeneration-lite", compute=HyperPodCompute( cluster_name="my-cluster", instance_type="ml.p5.48xlarge", node_count=4, ), training_dataset="s3://my-bucket/sft-data.jsonl", s3_output_path="s3://my-bucket/output/", data_mixing_config=data_mixing, ) job = trainer.train(wait=False)
Weitere Informationen
Sind Sie bereit, mit der Anpassung von Nova-Modellen mit dem SageMaker Python SDK zu beginnen? Detaillierte Anleitungen, API-Referenzen und weitere Beispiele finden Sie unter https://github.com/aws/sagemaker-python-sdk