Distilasi Amazon Nova - Amazon SageMaker AI

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

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 resep. Resep distilasi ada di bawah direktori:recipes-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:

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

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

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:

  1. Tinjau sample_training_data.jsonl file di bucket keluaran Anda. File ini berisi 50 sampel acak dari kumpulan data yang ditambah.

  2. Periksa secara manual sampel ini 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 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.