Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Distilasi Amazon Nova
Panduan memulai cepat ini membantu Anda memulai distilasi model Amazon Nova menggunakan fine-tuning (SFT) yang diawasi pada AI. SageMaker
Topik
Konsep
Distilasi model adalah metode yang mentransfer pengetahuan dari model besar dan canggih ke model yang lebih kecil dan efisien. Dengan model Amazon Nova, model “guru” yang lebih besar (seperti Amazon Nova Pro atau Amazon Nova Premier) 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-v1:0)
-
Amazon Nova Premier (amazon. nova-premier-v1:0)
Model siswa menerima dan menerapkan pengetahuan:
-
Amazon Nova Lite (amazon. nova-lite-v1:0:300 k)
-
Amazon Nova Micro (amazon. nova-micro-v1:0:128 k)
-
Amazon Nova Pro (amazon. nova-pro-v1:0:300 k) - Hanya tersedia saat menggunakan Amazon Nova Premier 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 memadai.
-
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.
Pengaturan augmentasi data
Fase augmentasi data menggunakan pekerjaan SageMaker pelatihan untuk menghasilkan data pelatihan berkualitas tinggi menggunakan model guru. Bagian ini merinci proses penyiapan dan persyaratan.
Peran IAM
Untuk membuat peran IAM dan melampirkan kebijakan, lihat Membuat peran dan melampirkan kebijakan (konsol). Jika Anda menggunakan AWS CLI, ikuti instruksi dalam create-role dan. attach-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 pekerjaan 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 inline berikut ke peran eksekusi pelanggan yang diperlukan untuk Distillation Container.
-
AWS KMS izin: Memungkinkan peran untuk berinteraksi dengan Layanan Manajemen AWS Kunci, 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 VPC Amazon untuk pekerjaan pelatihan SageMaker AI menggunakan AWS Management Console, ikuti petunjuk di Konfigurasikan VPC pribadi Anda untuk SageMaker pelatihan (konsol).
Buat VPC Amazon 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 Distilasi-VPC Anda
-
Pilih subnet pribadi
-
Pilih grup keamanan Distilasi-SG
AWS KMS kunci
Saat bekerja dengan inferensi batch Amazon Bedrock, AWS KMS kunci diperlukan untuk keamanan dan kepatuhan data. Pekerjaan inferensi batch Amazon Bedrock memerlukan bucket Amazon S3 input dan output untuk dienkripsi AWS KMS dengan kunci untuk memastikan perlindungan data saat istirahat.
Buat kunci KMS menggunakan AWS CLI perintah ini:
# Create KMS key aws kms create-key \ --description "KMS key for Amazon Bedrock batch inference Amazon S3 bucket" \ --region
us-east-1
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 ARN kunci KMS dari output karena Anda akan membutuhkannya untuk pembuatan bucket Amazon S3 di bagian berikutnya.
Bucket Amazon S3
Anda memerlukan dua jenis penyimpanan Amazon S3. Bucket Amazon S3 yang dikelola pelanggan menyimpan data input dan file output Anda. manifest.json
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 bucket terenkripsi KMS untuk memproses tugas inferensi batch.
Bucket Amazon S3 yang dikelola layanan 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 secara spesifik Wilayah AWS, gunakan perintah CLI create-bucket.
Contoh perintah untuk membuat bucket Amazon S3 dengan AWS KMS enkripsi. Ganti {kms_key_arn}
dengan AWS KMS ARN kunci Anda. Anda harus membuat AWS KMS kunci terlebih dahulu jika Anda belum melakukannya.
aws s3api create-bucket \ --bucket {my_bucket_name} \ --region {aws_region} \ --create-bucket-configuration LocationConstraint={aws_region} \ --server-side-encryption-configuration '{ "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "aws:kms", "KMSMasterKeyID": "{kms_key_arn}" }, "BucketKeyEnabled": true } ] }'
Mulai pekerjaan SageMaker pelatihan
Sebelum Anda memulai pekerjaan pelatihan, siapkan data Anda.
Persyaratan format data - Kumpulan data input Anda harus dalam format JSONL dengan setiap baris berisi sampel dalam format sebaliknya untuk informasi lebih lanjut ikuti Mempersiapkan data untuk menyuling model pemahaman.
Kendala set data
-
Permintaan minimum: 100
-
Ukuran file maksimal: 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 reseprecipes-collection/recipes/fine-tuning/nova
. Proses augmentasi data dikendalikan oleh file konfigurasi YAMM. Di bawah ini adalah penjelasan rinci dari setiap parameter. Semua adalah bidang wajib.
Parameter | Deskripsi |
---|---|
nama |
Nama deskriptif untuk pekerjaan pelatihan Anda. Ini membantu mengidentifikasi pekerjaan Anda di AWS Management Console. |
destilasi_data |
Mengaktifkan pekerjaan distilasi data, jangan memodifikasi bidang ini. |
maxNumberOfPetunjuk |
Jumlah maksimum permintaan dalam kumpulan data. |
maxResponseLength |
Panjang respons maksimum per prompt (token). |
maxInputFileSizeInGB |
Ukuran maksimum file input (dalam GB). |
maxLineLengthINKB |
Ukuran maksimum satu baris dalam file input (dalam KB). |
maxStudentModelFineTuningContextLengthInTokens |
Ukuran jendela konteks maksimum (token) untuk model siswa. Nilai adalah tidak boleh melebihi kapasitas model siswa. Anda dapat mengatur nilai ini ke 32k atau 64k berdasarkan kapasitas model siswa. |
teacherModelId |
Saat Anda menyetel Id Model Guru, pilih dari dua:
|
suhu |
Mengontrol keacakan respons (0,7 direkomendasikan untuk keseimbangan). |
atas_p |
Ambang probabilitas kumulatif untuk pengambilan sampel token (disarankan 0,9). |
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
-
Permintaan tes 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 tambahan sebelum fine-tuning
-
Ikuti panduan dalam Memilih hyperparameters untuk menyesuaikan hyperparameters
Memulai pekerjaan dengan PySDK
Contoh notebook berikut menunjukkan bagaimana 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})
Memvalidasi kualitas data yang diperbesar
Sebelum melanjutkan ke fine-tuning, sangat penting untuk memvalidasi kualitas data yang ditambah:
-
Tinjau
sample_training_data.jsonl
file di bucket keluaran Anda. File ini berisi 50 sampel acak dari kumpulan data yang ditambah. -
Periksa secara manual sampel ini untuk relevansi, koherensi, dan keselarasan dengan kasus penggunaan Anda.
-
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 fine-tuning model siswa menggunakan Amazon. SageMaker HyperPod Untuk informasi selengkapnya, lihat Penyetelan halus (SFT) yang diawasi peringkat penuh.
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"
Ganti juga konfigurasi pelatihan yang direkomendasikan yang dihasilkan dari langkah sebelumnya.
Batasan
-
Hanya mendukung teknik fine-tuning SFT Nova pada data tambahan ini.
-
Hanya mendukung teknik fine-tuning SFT Nova di Amazon. SageMaker HyperPod
-
Tidak ada dukungan untuk distilasi multi-modal.
-
Tidak ada dukungan untuk model guru khusus.