View a markdown version of this page

Menyesuaikan dengan SageMaker Python SDK - Amazon Nova

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menyesuaikan dengan SageMaker Python SDK

SageMaker Python SDK v3.0 memperkenalkan API modular modern untuk pelatihan, penyempurnaan, penerapan, dan pengelolaan model. SageMaker SDK mendukung beberapa metode pelatihan termasuk pra-pelatihan lanjutan (CPT), penyempurnaan yang diawasi (SFT), pengoptimalan preferensi langsung (DPO), penyempurnaan penguatan (RFT), dan pembelajaran penguatan multi-turn (MTRL). Anda dapat menjalankan pekerjaan pelatihan di Pekerjaan SageMaker Pelatihan dan SageMaker HyperPod.

Ikuti langkah-langkah ini untuk beralih dari instalasi ke pekerjaan pelatihan pertama Anda:

Manfaat

  • SDK modular untuk seluruh siklus hidup penyesuaian model mulai dari pelatihan hingga penerapan dan pemantauan.

  • Multi-platform dukungan untuk SageMaker Pekerjaan Pelatihan dan SageMaker HyperPod, dengan manajemen sumber daya otomatis dan konfigurasi infrastruktur.

  • Tidak perlu lagi menemukan resep atau URI wadah yang tepat untuk teknik pelatihan Anda.

  • Bawa resep pelatihan Anda sendiri atau gunakan default dengan penggantian parameter.

  • SDK memvalidasi konfigurasi Anda terhadap kombinasi model dan instance yang didukung, mencegah kesalahan sebelum pelatihan dimulai.

  • Dukungan untuk beberapa metode pelatihan termasuk pra-pelatihan lanjutan (CPT), penyempurnaan yang diawasi (SFT), pengoptimalan preferensi langsung (DPO), penyempurnaan penguatan (RFT), dan pembelajaran penguatan multi-turn (MTRL), dengan pendekatan LoRa dan peringkat penuh.

  • Pem CloudWatch antauan Amazon terintegrasi memungkinkan Anda melacak kemajuan pelatihan secara real-time.

  • MLFlow terintegrasi untuk melacak eksperimen pelatihan dengan server pelacakan SageMaker AI MLFlow.

Persyaratan

Versi Python yang Didukung

SageMaker Python SDK mendukung Python 3.10 dan yang lebih baru.

Penginstalan

Untuk menginstal SageMaker Python SDK, jalankan perintah berikut:

pip install "sagemaker>=3.19.0"

Model dan Teknik yang Didukung

SDK mendukung model dan teknik berikut dalam keluarga Amazon Nova:

Metode Model yang Didukung
Lanjutan Pre-training Semua Model Nova (hanya SMHP)
Fine-tuning LoRa yang diawasi Semua Model Nova
Diawasi Fine-tuning Full-Rank Semua Model Nova
Optimasi Preferensi Langsung LoRa Model Nova 1.0
Pengoptimalan Preferensi Langsung Full-Rank Model Nova 1.0
Penguatan Fine-tuning LoRa Nova Lite 2.0
Penguatan Fine-tuning Full-Rank Nova Lite 2.0
Multi-turn Penguatan Fine-tuning LoRa Nova Lite 2.0
Multi-turn Penguatan Fine-tuning Full-Rank Nova Lite 2.0

Multi-turn Output Pembelajaran Penguatan

Paket Model Terbatas (RMP) adalah Paket Model SageMaker AI yang membungkus artefak model eksklusif dalam penyimpanan escrow yang dikelola platform. RMP memungkinkan Anda untuk mengotorisasi dan mengontrol penggunaan model ini melalui kebijakan IAM tanpa memberikan akses langsung ke artefak yang mendasarinya. Data model tidak dapat diunduh, diekspor, atau dilihat secara langsung. Ini hanya dapat digunakan dalam AWS layanan resmi. RMP ada dalam Grup Paket Model yang ditandai denganStorageType: "Restricted".

Saat Anda melatih model menggunakan multi-turn penguatan pembelajaran (MTRL) pada Tra SageMaker ining Jobs Serverless, output dikirimkan sebagai ARN RMP dalam Grup Paket Model, bukan jalur S3. Ini berbeda dari metode pelatihan lainnya (seperti SFT, DPO, atau RFT) di mana output adalah jalur S3 ke pos pemeriksaan model.

Untuk menggunakan MTRL, gunakan kelas. MultiTurnRLTrainer Saat melatih tentang SageMaker Pekerjaan Pelatihan Tanpa Server, Anda dapat secara opsional menentukan output_model_package_group untuk mengontrol di mana RMP keluaran terdaftar. Jika dihilangkan, SDK secara otomatis membuat Grup Paket Model untuk Anda. Untuk informasi selengkapnya dan contoh kode, lihat Paket Model Terbatas.

Memulai

1. Konfigurasikan Infrastruktur Anda

SDK mendukung tiga platform komputasi. Berikan konfigurasi yang sesuai ke compute parameter pelatih Anda.

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 Lowongan Pelatihan (Serverful)

from sagemaker.core.training.configs import TrainingJobCompute compute = TrainingJobCompute( instance_type="ml.p5.48xlarge", instance_count=2, )

SageMaker Pekerjaan Pelatihan (Tanpa Server)

Dikelola sepenuhnya dan tidak diperlukan konfigurasi komputasi. Hilangkan compute parameter dan SDK menggunakan serverless secara default:

# 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. Kereta

Mulai penyetelan halus yang diawasi dengan SFTTrainer kelas. Berikan model, konfigurasi komputasi, dataset pelatihan, dan jalur keluaran Anda.

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)

SDK juga menyediakan pra-pelatihan lanjutan, CPTTrainer untuk pengoptimalan preferensi langsung, DPOTrainer untuk penyetelan penguatan, dan MultiTurnRLTrainer untuk pembelajaran penguatan multi-putaran. RLVRTrainer Masing-masing mengikuti pola yang sama: menyediakan model, konfigurasi komputasi, dataset pelatihan, dan jalur keluaran.

3. Memantau

Lacak kemajuan pelatihan Anda langsung dari SDK. Gunakan stream_logs() untuk melakukan streaming CloudWatch log Amazon secara real-time, atau show_metrics() untuk memplot metrik pelatihan seperti kehilangan dan tingkat pembelajaran setelah pekerjaan selesai.

# 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. Mengevaluasi

Evaluasi model terlatih Anda terhadap tugas benchmark bawaan menggunakan BenchMarkEvaluator kelas. Tolok ukur yang didukung termasuk MMLU (Massive Multitask Language Understanding), BBH (Advanced Reasoning Tasks), dan GPQA (Tanya Jawab). Graduate-Level Google-Proof Untuk opsi evaluasi lainnya, lihat Evaluator.

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. Deploy

Setelah pelatihan, gunakan model khusus Anda ke produksi. Dengan SageMaker Python SDK, Anda dapat menerapkan ke titik akhir SageMaker Real-time Inference dan Amazon Bedrock. On-Demand Pilih opsi penerapan yang paling sesuai dengan persyaratan latensi, throughput, dan biaya Anda.

SageMaker Real-time Inferensi

Terapkan ke titik akhir SageMaker Real-time Inferensi untuk kontrol penuh atas jenis instans, kebijakan penskalaan, dan konfigurasi titik akhir. Gunakan ModelBuilder untuk membuat dan menerapkan SageMaker titik akhir:

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

Batu Dasar On-Demand

On-Demand inferensi memberikan harga bayar per penggunaan tanpa kapasitas yang disediakan. Opsi ini berlaku untuk LoRA-based penyesuaian. Gunakan On-Demand bila Anda memiliki pola lalu lintas yang bervariasi atau tidak dapat diprediksi:

from sagemaker.serve import BedrockModelBuilder # Deploy with Bedrock On-Demand builder = BedrockModelBuilder( model=s3_path, throughput_type="on-demand", ) deployment = builder.deploy()

Kemampuan Utama

Resep Mengganti Prioritas

SageMaker Python SDK menggunakan sistem konfigurasi berlapis untuk resep pelatihan. Saat Anda meluncurkan pekerjaan pelatihan, parameter diselesaikan dalam urutan prioritas berikut (tertinggi ke terendah):

  1. Penggantian parameter — Nilai diteruskan langsung melalui kam overrides us di konstruktor pelatih. Ini mengambil prioritas tertinggi dan mengganti nilai yang saling bertentangan dari resep YAML atau default Hub.

  2. Resep YAML — File YAML resep yang Anda berikan (baik jalur S3 atau file lokal). Ini mendefinisikan konfigurasi pelatihan penuh tetapi dapat diganti secara selektif oleh kamus. overrides

  3. Default hub — Resep default diselesaikan secara otomatis dari SageMaker Model Hub berdasarkan model dan metode pelatihan Anda. Ini memberikan konfigurasi awal yang masuk akal ketika tidak ada resep khusus atau penggantian yang ditentukan.

Misalnya, untuk mengganti langkah pelatihan maksimum dan tingkat pembelajaran saat menggunakan default Hub untuk semua parameter lainnya:

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)

Dalam contoh ini, max_epochs dan optim.lr diatur secara eksplisit melalui penggantian. Semua parameter pelatihan lainnya (ukuran batch, langkah pemanasan, model-paralel, dan sebagainya) jatuh ke resep default Hub untuk model tersebut. nova-textgeneration-lite

Dukungan Infrastruktur Perusahaan

SDK mendukung beberapa platform komputasi, secara otomatis mengelola konfigurasi infrastruktur, validasi, dan orkestrasi pekerjaan:

  • SageMaker Pekerjaan Pelatihan — Pelatihan yang dikelola sepenuhnya dengan penyediaan instans otomatis dan pembongkaran. Mendukung mode on-demand dan serverless.

  • SageMaker HyperPod— Cluster persisten untuk pelatihan terdistribusi skala besar dengan toleransi kesalahan bawaan dan pemulihan node otomatis.

Di semua platform, SDK memvalidasi jenis instans, konfigurasi resep, dan format dataset sebelum mengirimkan pekerjaan, mencegah kesalahan di awal alur kerja.

Evaluasi komprehensif

Evaluasi model khusus Anda terhadap tolok ukur standar. SDK menyediakan evaluator berikut:

  • BenchMarkEvaluator— Jalankan tolok ukur kinerja standar seperti MMLU, BBH, dan GPQA

  • LLMAsJudgeEvaluator- Gunakan model bahasa besar untuk menilai keluaran model

  • InspectAIEvaluator— Jalankan InspectAI atau tugas benchmark khusus

  • CustomScorerEvaluator- Terapkan fungsi evaluator yang ditentukan khusus

  • MultiTurnRLEvaluator— Mengevaluasi model agen multi-turn dengan metrik berbasis peluncuran

Penyebaran Produksi

Dengan SageMaker Python SDK, Anda dapat menerapkan model yang disesuaikan menggunakan beberapa opsi penerapan:

  • SageMaker Real-time Inferensi — Kontrol penuh atas jenis instans, kebijakan penskalaan, dan konfigurasi titik akhir untuk persyaratan hosting khusus.

  • Bedrock On-Demand — Pay-per-use harga tanpa kapasitas yang disediakan. Berlaku untuk LoRA-based penyesuaian.

Gunakan ModelBuilder atau BedrockModelBuilder kelas untuk menerapkan model terlatih.

Pencampuran Data

catatan

Pencampuran data tersedia secara eksklusif untuk pelanggan Nova Forge.

SageMaker Python SDK menyediakan DataMixingConfig kelas untuk mengkonfigurasi pencampuran data.

Gunakan DataMixingConfig dengan pelatih Anda untuk menentukan persentase data pelanggan dan distribusi di seluruh kategori data Nova:

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)

Pelajari Lebih Lanjut

Siap untuk mulai menyesuaikan model Nova dengan SageMaker Python SDK? Untuk panduan terperinci, referensi API, dan contoh tambahan, lihat sagemak er-python-sdk on. GitHub