View a markdown version of this page

Penyulingan Amazon Nova - Amazon Nova

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

Penyulingan Amazon Nova

Panduan memulai cepat ini membantu Anda memulai penyulingan model Amazon Nova menggunakan fine tuning (SFT) pada SageMaker AI.

Distilasi model adalah metode SageMaker AI yang mentransfer pengetahuan dari model besar dan canggih ke yang lebih kecil dan efisien. Dengan model Amazon Nova, model “guru” yang lebih besar (seperti Amazon Nova Pro atau) meneruskan kemampuannya ke model “siswa” yang lebih kecil (seperti Amazon Nova Lite atau Amazon Nova Micro). Ini menciptakan model khusus yang mempertahankan kinerja tinggi sambil menggunakan lebih sedikit sumber daya.

Komponen utama

Proses distilasi terutama melibatkan dua jenis model:

Model guru berfungsi sebagai sumber pengetahuan dan meliputi:

  • Amazon Nova Pro (amazon.nova-pro-v 1:0)

  • (amazon.nova-premier-v 1:0)

Model siswa menerima dan menerapkan pengetahuan:

  • Amazon Nova Lite (amazon.nova-lite-v 1:0:300k)

  • Amazon Nova Mikro (amazon.nova-mikro-v 1:0:128k)

  • Amazon Nova Pro (amazon.nova-pro-v 1:0:300 k) - Hanya tersedia saat digunakan sebagai guru

Kasus penggunaan

Mode distilasi sangat bermanfaat ketika:

  • Aplikasi Anda memiliki persyaratan latensi, biaya, dan akurasi yang ketat.

  • Anda memerlukan model khusus untuk tugas-tugas tertentu tetapi tidak memiliki data pelatihan berlabel berkualitas tinggi yang cukup.

  • Anda ingin mencocokkan kinerja model canggih sambil mempertahankan efisiensi model yang lebih kecil.

Prasyarat

  • Akun AWS dengan akses ke model Amazon Nova dan kuota layanan yang sesuai (min. 6 instans P5 dan 1 R5).

  • Peran IAM dengan izin untuk Pekerjaan SageMaker Pelatihan.

  • Bucket Amazon S3 untuk menyimpan data dan output pelatihan.

Menyiapkan augmentasi data

Fase augmentasi data menggunakan Pekerjaan SageMaker Pelatihan untuk menghasilkan data pelatihan berkualitas tinggi menggunakan model guru. Bagian ini merinci proses dan persyaratan penyiapan.

IAM Role

Untuk membuat peran IAM dan melampirkan kebijakan, lihat Membuat peran dan melampirkan kebijakan (konsol). Jika Anda menggunakan AWS CLI, ikuti petunjuk di create-role dan lampiran-role-policy. Untuk informasi selengkapnya, lihat Cara menggunakan peran eksekusi SageMaker AI dari Panduan Pengembang SageMaker AI.

Berikut ini adalah contoh perintah untuk referensi Anda.

Buat peran eksekusi SageMaker AI

Peran ini dibuat dengan hubungan kepercayaan yang memungkinkan SageMaker AI, Amazon Bedrock, untuk mengambil peran ini. Ini memungkinkan layanan ini bertindak atas nama Anda saat menjalankan tugas inferensi batch.

aws iam create-role \ --role-name NovaCustomizationRole \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": ["sagemaker.amazonaws.com", "bedrock.amazonaws.com"] }, "Action": "sts:AssumeRole" } ] }'

Lampirkan kebijakan yang diperlukan

# Attach AmazonSageMakerFullAccess aws iam attach-role-policy \ --role-name NovaCustomizationRole \ --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerFullAccess # Attach AmazonBedrockFullAccess aws iam attach-role-policy \ --role-name NovaCustomizationRole \ --policy-arn arn:aws:iam::aws:policy/AmazonBedrockFullAccess # Attach S3 access policy aws iam attach-role-policy \ --role-name NovaCustomizationRole \ --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess # Attach AmazonEC2FullAccess aws iam attach-role-policy \ --role-name NovaCustomizationRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEC2FullAccess # Attach AmazonEC2ContainerRegistryFullAccess aws iam attach-role-policy \ --role-name NovaCustomizationRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryFullAccess # Attach AmazonEC2ContainerRegistryFullAccess aws iam attach-role-policy \ --role-name NovaCustomizationRole \ --policy-arn arn:aws:iam::aws:policy/CloudWatchLogsFullAccess

Lampirkan kebijakan sebaris berikut ke peran eksekusi pelanggan yang diperlukan untuk Wadah Distilasi.

  • AWS KMS izin: Memungkinkan peran berinteraksi dengan Layanan Manajemen K AWS unci, yang diperlukan untuk mengakses sumber daya terenkripsi atau mengelola kunci enkripsi.

  • IAM:PassRole: Izin ini sering diperlukan ketika satu layanan perlu meneruskan peran ini ke layanan lain, pola umum dalam integrasi AWS layanan.

aws iam put-role-policy \ --role-name NovaCustomizationRole \ --policy-name Distillation-Additional-Permissions\ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*" } ] }

Konfigurasi Amazon VPC

Untuk membuat konfigurasi Amazon VPC untuk Pekerjaan SageMaker Pelatihan menggunakan Konsol Manajemen AWS, ikuti petunjuk di Konfigurasikan VPC pribadi Anda untuk pelatihan SageMaker AI (konsol).

Buat Amazon VPC baru

Name: Distillation-VPC IPv4 CIDR: 10.0.0.0/16 (or your preferred range) Availability Zones: 2 Public Subnets: 2 Private Subnets: 2 NAT Gateways: 1 (in one AZ)

Buat grup keamanan

Name: Distillation-SG Description: Security group for data distillation jobs Inbound Rules: Allow all traffic from self Outbound Rules: Allow all traffic (0.0.0.0/0)

Buat titik akhir VPC untuk layanan berikut

com.amazonaws.[region].s3 com.amazonaws.[region].sagemaker.api com.amazonaws.[region].sagemaker.runtime com.amazonaws.[region].bedrock.api com.amazonaws.[region].bedrock.runtime com.amazonaws.[region].sts com.amazonaws.[region].logs com.amazonaws.[region].ecr.api com.amazonaws.[region].ecr.dkr

Untuk setiap titik akhir:

  • Pilih milikmu Distillation-VPC

  • Pilih subnet pribadi

  • Pilih grup Distillation-SG keamanan

AWS KMS keys

Saat bekerja dengan inferensi batch Amazon Bedrock, AWS KMS kunci diperlukan untuk keamanan dan kepatuhan data. Pekerjaan inferensi batch Amazon Bedrock memerlukan input dan output bucket Amazon S3 untuk dienkripsi dengan AWS KMS kunci untuk memastikan perlindungan data saat diam.

Buat kunci KMS menggunakan AWS CLI perintah ini:

# Create KMS key aws kms create-key \ --description "KMS key for Nova distillation"

Perintah akan menampilkan informasi kunci termasuk ARN. Contoh output:

{ "KeyMetadata": { "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Arn": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } }
catatan

Simpan kunci KMS ARN dari output karena Anda akan memerlukannya untuk pembuatan bucket Amazon S3 di bagian berikutnya.

Buket Amazon S3

Anda memerlukan dua jenis penyimpanan Amazon S3. Customer-managed Bucket Amazon S3 menyimpan data input dan manifest.json file output Anda. Anda membuat dan mengelola bucket ini dan dapat menggunakan satu bucket untuk input dan output. Bucket ini harus dikonfigurasi dengan enkripsi KMS karena akan menyimpan data keluaran sensitif dan akan digunakan oleh pekerjaan inferensi batch Amazon Bedrock - Amazon Bedrock memerlukan KMS-encrypted bucket untuk memproses tugas inferensi batch.

Service-managed Bucket Amazon S3 menyimpan bobot model. Bucket Amazon S3 yang dikelola layanan dibuat secara otomatis selama pekerjaan pelatihan pertama Anda. Ini memiliki kontrol akses terbatas dengan jalur tertentu yang dapat diakses melalui file manifes saja.

Untuk membuat bucket di tempat tertentu Wilayah AWS, gunakan perintah create-bucket CLI.

Contoh perintah untuk membuat bucket Amazon S3 dengan AWS KMS enkripsi. Ganti {kms_key_arn} dengan AWS KMS kunci ARN Anda. Anda harus membuat AWS KMS kunci terlebih dahulu jika Anda belum melakukannya.

aws s3api create-bucket \ "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "aws:kms", "KMSMasterKeyID": "{kms_key_arn}" }, "BucketKeyEnabled": true } ] }'

Memulai pekerjaan SageMaker pelatihan

Sebelum Anda memulai pekerjaan pelatihan, siapkan data Anda.

Persyaratan format data - Dataset input Anda harus dalam format JSONL dengan setiap baris berisi sampel dalam format terbalik untuk informasi lebih lanjut ikuti Mempersiapkan data untuk menyuling model pemahaman.

Kendala kumpulan data

  • Minimal petunjuk: 100

  • Ukuran file maksimum: 2GB

  • Panjang garis maksimum: 180KB

  • Format file: Hanya JSONL

Untuk mengunggah data input, jalankan perintah berikut.

aws s3 cp /path/to/input-data/ s3://customer-input-data-bucket/ —recursive

Resep augmentasi data

Anda bisa mendapatkan resep distilasi dari repositori SageMaker HyperPod resep. Resep distilasi ada di bawah direktori:recipes-collection/recipes/fine-tuning/nova. Proses augmentasi data dikendalikan oleh file konfigurasi YAML. Di bawah ini adalah penjelasan rinci dari setiap parameter. Semua bidang wajib diisi.

Parameter Deskripsi
nama

Nama deskriptif untuk pekerjaan pelatihan Anda. Ini membantu mengidentifikasi pekerjaan Anda di Konsol Manajemen AWS.

distilasi_data

Mengaktifkan pekerjaan distilasi data, jangan memodifikasi bidang ini.

maks NumberOfPrompts

Jumlah maksimum prompt dalam dataset.

maks ResponseLength

Panjang respons maksimum per prompt (token).

maks InputFileSizeInGB

Ukuran maksimum file input (dalam GB).

maks LineLengthInKB

Ukuran maksimum satu baris dalam file input (dalam KB).

maks StudentModelFineTuningContextLengthInTokens

Ukuran jendela konteks maksimum (token) untuk model siswa. Nilai is tidak boleh melebihi kapasitas model siswa. Anda dapat mengatur nilai ini ke 32k atau 64k berdasarkan kapasitas model siswa.

guru ModelId

Saat Anda mengatur Id Model Guru, pilih dari dua:

  • Untuk Amazon Nova Premier: “us.amazon.nova-premier-v 1:0" untuk wilayah IAD. Catatan: Ini hanya tersedia di wilayah IAD.

  • Untuk Amazon Nova Pro: “us.amazon.nova-pro-v 1:0" untuk wilayah IAD dan “eu.amazon.nova-pro-v 1:0" untuk wilayah ARN.

suhu

Mengontrol keacakan respons (0,7 direkomendasikan untuk keseimbangan).

top_p

Ambang probabilitas kumulatif untuk pengambilan sampel token (0,9 direkomendasikan).

Customer Bucket

Bucket Amazon S3 untuk input/output data.

kms_key

AWS KMS kunci untuk mengenkripsi output di S3, Ini diperlukan oleh inferensi batch Bedrock untuk menyimpan output yang dikembalikan oleh pekerjaan inferensi.

Batasan

Untuk Model Guru sebagai Nova Premier - Hanya didukung di wilayah IAD (us-east-1) karena inferensi batch Amazon Bedrock tidak tersedia di wilayah ARN (eu-north-1).

Praktik Terbaik

Persiapan data

  • Sertakan 100 contoh berlabel berkualitas tinggi untuk memandu model guru

  • Hapus label berkualitas buruk sebelum pengiriman

  • Ikuti pemahaman teks yang mendorong praktik terbaik

  • Uji petunjuk dengan model guru sebelum memulai distilasi

Pemilihan model

  • Gunakan Nova Pro sebagai guru untuk kasus penggunaan umum

  • Pertimbangkan Nova Premier untuk pengetahuan domain khusus

  • Pilih model siswa berdasarkan latensi dan persyaratan biaya

Optimalisasi kinerja

  • Mulailah dengan suhu yang disarankan (0,7) dan top_p (0,9)

  • Validasi kualitas data yang ditingkatkan sebelum menyempurnakan

  • Ikuti panduan dalam Mem ilih hyperparameter untuk menyesuaikan hyperparameter

Memulai pekerjaan dengan PySDK

Contoh notebook berikut menunjukkan cara menjalankan pekerjaan SageMaker pelatihan untuk distilasi. Untuk informasi selengkapnya, lihat Menggunakan estimator SageMaker AI untuk menjalankan pekerjaan pelatihan.

import os import sagemaker,boto3 from sagemaker.pytorch import PyTorch from sagemaker.inputs import TrainingInput sagemaker_session = sagemaker.Session() role = sagemaker.get_execution_role() # SETUP job_name = <Your_job_name> # Must be unique for every run input_s3_uri = <S3 URI to your input dataset> # Must end in .jsonl file output_s3_uri = <S3 URI to your output bucket> + job_name image_uri = "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-distillation-repo:SM-TJ-DISTILL-LATEST" # Do not change instance_type = "ml.r5.4xlarge" # Recommedation is to use cpu instances instance_count = 1 # Must be 1, do not change role_arn = <IAM role to execute the job with> recipe_path = <Local path to your recipe> # Execution estimator = PyTorch( output_path=output_s3_uri, base_job_name=job_name, role=role_arn, instance_count=instance_count, instance_type=instance_type, training_recipe=recipe_path, max_run=432000, sagemaker_session=sagemaker_session, image_uri=image_uri, subnets= ['subnet-xxxxxxxxxxxxxxxxx','subnet-xxxxxxxxxxxxxxxxx'], # Add subnet groups created in previous steps security_group_ids= ['sg-xxxxxxxxxxxxxxxxx'], # Add security group created in previous steps disable_profiler=True, debugger_hook_config=False ) trainingInput = TrainingInput( s3_data=input_s3_uri, distribution='FullyReplicated', s3_data_type='Converse' ) # The keys must be "train". estimator.fit(inputs={"train": trainingInput})

CloudWatch log

Log tersedia di Amazon CloudWatch di bawah grup /aws/sagemaker/TrainingJobs log di Anda Akun AWS. Anda akan melihat satu file log per host yang digunakan untuk pekerjaan pelatihan Anda.

Pelatihan yang sukses

Untuk pekerjaan pelatihan yang sukses, Anda akan melihat pesan log “Pelatihan selesai” di akhir log.

Bucket keluaran berisi file berikut:

  • distillation_data/manifest.json: Berisi lokasi data yang diperbesar. Anda dapat menggunakan kumpulan data ini untuk memulai pekerjaan penyempurnaan Amazon Nova. Hanya pelatihan SFT yang didukung dengan dataset ini.

    { "distillation_data": "s3://customer_escrow_bucket/job_id/distillation_data/" }
  • distillation_data/sample_training_data.jsonl: File JSONL ini berisi 50 sampel data tambahan untuk pratinjau untuk membantu Anda menentukan kualitas data.

  • distillation_data/training_config.json: File ini berisi hyperparameter yang direkomendasikan untuk pekerjaan penyempurnaan Amazon Nova. Berikut ini adalah contoh file:

    { "epochCount": 5, "learningRate": 1e-05, "batchSize": 1, "learningRateWarmupSteps": 1 }

Memvalidasi kualitas data yang ditingkatkan

Sebelum melanjutkan ke penyempurnaan, sangat penting untuk memvalidasi kualitas data yang diperbesar:

  1. Tinjau sample_training_data.jsonl file di bucket keluaran Anda. File ini berisi 50 sampel acak dari dataset yang diperbesar.

  2. Periksa sampel ini secara manual untuk relevansi, koherensi, dan keselarasan dengan kasus penggunaan Anda.

  3. Jika kualitasnya tidak memenuhi harapan Anda, Anda mungkin perlu menyesuaikan data input atau parameter distilasi dan menjalankan kembali proses augmentasi data.

Setelah augmentasi data selesai, fase kedua melibatkan penyempurnaan menggunakan model siswa. Untuk informasi selengkapnya, lihat Penyetelan halus yang diawasi (SFT).

Dalam resep pelatihan SFT Anda dapat melewati jalur dataset yang dikembalikan dari pekerjaan sebelumnya.

data_s3_path: "s3://[escrow-bucket]/[job-name]/distillation_data/training_data.jsonl"

Juga ganti konfigurasi pelatihan yang direkomendasikan yang dihasilkan dari langkah sebelumnya.

Batasan

  • Hanya mendukung teknik fintuning SFT Nova pada data tambahan ini.

  • Tidak ada dukungan untuk distilasi multi-modal.

  • Tidak ada dukungan untuk model guru khusus.