Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menyesuaikan model Amazon Nova menggunakan pekerjaan pelatihan SageMaker
Menyesuaikan model Amazon Nova SageMaker dengan pekerjaan pelatihan menawarkan cara ampuh untuk menyesuaikan model fondasi untuk kasus penggunaan spesifik Anda.
Topik
Prasyarat
Sebelum Anda memulai pekerjaan pelatihan, perhatikan hal berikut.
-
Bucket Amazon S3 untuk menyimpan data input dan output pekerjaan pelatihan Anda. Anda dapat menggunakan satu bucket untuk keduanya atau ember terpisah untuk setiap jenis data. Pastikan ember Anda berada di tempat yang sama di Wilayah AWS mana Anda membuat semua sumber daya lain untuk pelatihan. Untuk informasi selengkapnya, lihat Membuat bucket tujuan umum.
-
Peran IAM dengan izin untuk menjalankan pekerjaan pelatihan. Pastikan Anda melampirkan kebijakan IAM dengan
AmazonSageMakerFullAccess
. Untuk informasi selengkapnya, lihat Cara menggunakan peran SageMaker eksekusi. -
Resep dasar Amazon Nova, lihatMendapatkan resep Amazon Nova.
Persiapan data
Mempersiapkan data berkualitas tinggi dan diformat dengan benar adalah langkah pertama yang penting dalam proses fine-tuning untuk model bahasa besar. Baik Anda menggunakan fine-tuning (SFT) yang diawasi atau Pengoptimalan Preferensi Langsung (DPO), dengan pendekatan adaptasi peringkat penuh atau peringkat rendah (LoRa), data Anda harus mematuhi persyaratan format tertentu untuk memastikan pelatihan model yang berhasil. Bagian ini menguraikan format data yang diperlukan, metode validasi, dan praktik terbaik untuk membantu Anda mempersiapkan kumpulan data secara efektif untuk menyempurnakan model Amazon Nova.
SFT
Persyaratan format data SFT - Untuk SFT peringkat penuh dan LoRa SFT, data harus mengikuti format Converse. Untuk contoh dan kendala format ini, lihat Mempersiapkan data untuk fine-tuning Memahami model.
Validasi data SFT - Untuk memvalidasi format kumpulan data Anda sebelum pengiriman, sebaiknya gunakan skrip validasi berikut dari repositori sampel Amazon Bedrock.jsonl
file Anda mematuhi spesifikasi format yang diperlukan dan mengidentifikasi potensi masalah sebelum mengirimkan pekerjaan fine-tuning Anda.
DPO
Persyaratan format data DPO - Untuk DPO dalam peringkat penuh dan DPO dengan LoRa, data harus mengikuti format Converse. Dataset juga harus dalam format yang sama dengan SFT kecuali giliran terakhir harus memiliki pasangan preferensi.
DPO dataset kendala lainnya - Kendala lain pada dataset adalah sama untuk SFT. Untuk informasi selengkapnya, lihat Batasan set data. Diharapkan file JSONL tunggal untuk pelatihan dan satu file JSONL untuk validasi. Set validasi adalah opsional.
Rekomendasi dataset DPO - Minimal 1.000 pasangan preferensi untuk pelatihan yang efektif. Data preferensi berkualitas tinggi akan menghasilkan hasil yang lebih efisien.
Contoh format data DPO
// N-1 turns same as SFT format { "role": "assistant", "candidates": [ { "content": [ { "text": "..." } // content list can contain multiple 'text' objects ], "preferenceLabel": "preferred" }, { "content": [ { "text": "..." } // content list can contain multiple 'text' objects ], "preferenceLabel": "non-preferred" } ] }
Contoh format data DPO (multi-putaran)
{ "system": [ { "text": "..." } ], "messages":[ { "role": "user", "content": [ { "text": "..." } ] }, { "role": "assistant", "content": [ { "text": "..." } ] }, { "role": "user", "content": [ { "text": "..." } ] }, { "role": "assistant", "candidates": [ { "content": [ { "text": "..." } ], "preferenceLabel": "preferred" }, { "content": [ { "text": "..." } ], "preferenceLabel": "non-preferred" } ] } ], }
Contoh format data DPO (dengan gambar)
{ "system": [ { "text": "..." } ], "messages":[ { "role": "user", "content": [ { "text": "..." }, { "text": "..." }, { "image": { "format": "jpeg", "source": { "s3Location": { "uri": "s3://your-bucket/your-path/your-image.jpg", "bucketOwner": "your-aws-account-id" } } } } // "content" can have multiple "text" and "image" objects. // max image count is 10 ] }, { "role": "assistant", "content": [ { "text": "..." } ] }, { "role": "user", "content": [ { "text": "..." }, { "text": "..." }, { "image": { "format": "jpeg", "source": { "s3Location": { "uri": "s3://your-bucket/your-path/your-image.jpg", "bucketOwner": "your-aws-account-id" } } } } // "content" can have multiple "text" and "image" objects. // max image count is 10 ] }, { "role": "assistant", "candidates": [ { "content": [ { "text": "..." } ], "preferenceLabel": "preferred" }, { "content": [ { "text": "..." } ], "preferenceLabel": "non-preferred" } ] } ], }
Pekerjaan pelatihan default ke batas waktu 1 hari, meskipun perkiraan dalam tabel di bawah ini mengasumsikan durasi pelatihan 5 hari untuk tujuan ilustrasi. Sebagai praktik terbaik, kami sarankan untuk meningkatkan batas waktu pelatihan Anda hingga maksimum 28 hari untuk mengakomodasi beban kerja pelatihan yang lebih lama. Untuk meminta kenaikan batas, lihat Meminta kenaikan kuota.
Batas set data SFT
Panjang konteks | Model | Metode | Set Data | Deskripsi |
---|---|---|---|---|
Pekerjaan panjang konteks 32k |
Amazon Nova Mikro | Peringkat penuh dan LoRa | Hanya teks |
Jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 32k, dan misalnya, dijalankan selama 5 zaman, Anda hanya dapat memiliki hingga 100k catatan. |
Amazon Nova Lite |
Peringkat penuh | Hanya teks |
Jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 32k, dan misalnya, dijalankan selama 5 zaman, Anda dapat memiliki hingga 100k catatan. |
|
Gambar dan video |
Jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 32k, dan misalnya, dijalankan selama 5 zaman, Anda dapat memiliki hingga 50k catatan. |
|||
LoRa | Hanya teks |
Jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 32k, dan misalnya, dijalankan selama 5 zaman, Anda dapat memiliki hingga 100k catatan. |
||
Gambar dan video | Jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 32k, dan misalnya, dijalankan selama 5 zaman, Anda dapat memiliki hingga 90k catatan. | |||
Amazon Nova Pro |
Peringkat penuh | Hanya teks |
Jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 32k, dan misalnya, dijalankan selama 5 epoch, Anda dapat memiliki hingga 40k catatan. |
|
Gambar dan video |
Jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 32k, dan misalnya, dijalankan selama 5 zaman, Anda dapat memiliki hingga 30k catatan. |
|||
LoRa | Hanya teks |
Jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 32k, dan misalnya, dijalankan selama 5 epoch, Anda dapat memiliki hingga 40k catatan. |
||
Gambar dan video |
Jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 32k, dan misalnya, dijalankan selama 5 epoch, Anda dapat memiliki hingga 35k catatan. |
|||
64k pekerjaan panjang konteks |
Amazon Nova Mikro | Peringkat penuh dan LoRa | Hanya teks |
Jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 64k, dan misalnya, dijalankan selama 5 zaman, Anda hanya dapat memiliki hingga 50k catatan. |
Amazon Nova Lite |
Peringkat penuh | Hanya teks |
Jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 64k, dan misalnya, dijalankan selama 5 zaman, Anda dapat memiliki hingga 50k catatan. |
|
Gambar dan video |
Jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 64k, dan misalnya, dijalankan selama 5 zaman, Anda dapat memiliki hingga 30k catatan. |
|||
LoRa | - |
LoRa tidak didukung pada 64k untuk Nova Lite. |
||
Amazon Nova Pro | Peringkat penuh dan LoRa | Hanya teks |
Jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 64k, dan misalnya, dijalankan selama 5 zaman, Anda dapat memiliki hingga 17k catatan. |
|
Gambar dan video |
Jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 64k, dan misalnya, dijalankan selama 5 zaman, Anda dapat memiliki hingga 15k catatan. |
Batas set data DPO
Panjang konteks | Model | Metode | Set Data | Deskripsi |
---|---|---|---|---|
Pekerjaan panjang konteks 16k |
Amazon Nova Mikro | Peringkat penuh | Hanya teks |
Jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 16k, dan misalnya, dijalankan selama 5 zaman, Anda hanya dapat memiliki hingga 120k catatan. |
LoRa | Hanya teks |
Jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 16k, dan misalnya, dijalankan selama 5 epoch, Anda hanya dapat memiliki hingga 125k catatan. |
||
Amazon Nova Lite |
Peringkat penuh | Hanya teks |
Jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 16k, dan misalnya, dijalankan selama 5 epoch, Anda dapat memiliki hingga 130k catatan. |
|
Citra |
Jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 16k, dan misalnya, dijalankan selama 5 zaman, Anda dapat menyelesaikan 20k sampel dalam 2 hari |
|||
LoRa | Hanya teks |
Jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 16k, dan misalnya, dijalankan selama 5 epoch, Anda dapat memiliki hingga 140k catatan. |
||
Citra |
jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 16k, dan misalnya, dijalankan selama 5 zaman, Anda dapat menyelesaikan 20k sampel dalam 2 hari. |
|||
Amazon Nova Pro |
Peringkat penuh | Hanya teks |
Jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 16k, dan misalnya, dijalankan selama 5 zaman, Anda dapat memiliki hingga 45k catatan. |
|
Citra |
Jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 16k, dan misalnya, dijalankan selama 5 zaman, Anda dapat menyelesaikan 20k sampel dalam 4 hari |
|||
LoRa | Hanya teks |
Jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 16k, dan misalnya, dijalankan selama 5 epoch, Anda dapat memiliki hingga 55k catatan. |
||
Citra |
Jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 16k, dan misalnya, dijalankan selama 5 zaman, Anda dapat menyelesaikan 20k sampel dalam 4 hari |
|||
Pekerjaan panjang konteks 32k |
Amazon Nova Mikro | Peringkat penuh | Hanya teks |
Jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 32k, dan misalnya, dijalankan selama 5 zaman, Anda hanya dapat memiliki hingga 45k catatan. |
LoRa | Hanya teks |
Jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 32k, dan misalnya, dijalankan selama 5 zaman, Anda hanya dapat memiliki hingga 50k catatan. |
||
Amazon Nova Lite |
Peringkat penuh | Hanya teks |
Jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 32k, dan misalnya, dijalankan selama 5 epoch, Anda dapat memiliki hingga 55k catatan. |
|
Citra |
Jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 32k, dan misalnya, dijalankan selama 5 epoch, Anda dapat memiliki hingga 35k catatan. |
|||
LoRa | Hanya teks |
Jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 32k, dan misalnya, dijalankan selama 5 zaman, Anda dapat memiliki hingga 60k catatan. |
||
Citra |
Jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 32k, dan misalnya, dijalankan selama 5 epoch, Anda dapat memiliki hingga 35k catatan. |
|||
Amazon Nova Pro | Peringkat penuh | Hanya teks |
Jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 32k, dan misalnya, dijalankan selama 5 zaman, Anda dapat memiliki hingga 20k catatan. |
|
Citra |
Jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 64k, dan misalnya, dijalankan selama 5 zaman, Anda dapat memiliki hingga 16k catatan. |
|||
LoRa | Hanya teks |
Jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 32k, dan misalnya, dijalankan selama 5 epoch, Anda dapat memiliki hingga 22 ribu catatan. |
||
Citra |
Jika Anda menggunakan kumpulan data di mana semua catatan memiliki panjang konteks 64k, dan misalnya, dijalankan selama 5 zaman, Anda dapat memiliki hingga 18k catatan. |
Dengan mengurangi jumlah epoch atau panjang konteks catatan Anda, Anda dapat memberikan lebih banyak catatan.
Konfigurasi SFT dan LoRa PEFT peringkat penuh
Bagian ini mencakup panduan tentang konfigurasi resep untuk pendekatan fine-tuning (SFT) yang diawasi peringkat penuh dan fine-tuning hemat parameter adaptasi peringkat rendah (LoRa PEFT). File resep ini berfungsi sebagai cetak biru untuk pekerjaan penyesuaian model Anda, memungkinkan Anda menentukan parameter pelatihan, hiperparameter, dan pengaturan penting lainnya yang menentukan bagaimana model Anda belajar dari data Anda. Untuk menyesuaikan hyperparameters, ikuti panduan di Memilih hyperparameters.
Konfigurasi fine-tuning (SFT peringkat penuh dan LoRa PEFT)
Satu-satunya perbedaan antara SFT peringkat penuh dan LoRa PEFT dalam hal resep adalah konfigurasi LoRa PEFT, yang diatur ke 'null' untuk peringkat penuh dan disetel ke nilai yang sesuai jika menggunakan fine-tuning berbasis LoRa PEFT. Contoh resep tersedia di GitHub repositori SageMaker HyperPod resep
Tentang konfigurasi “jalankan”.
Kunci | Definisi | Mikro | sedikit | Pro | |
---|---|---|---|---|---|
Jalankan konfigurasi | model_type |
Menentukan varian model Nova untuk digunakan. Jangan memodifikasi bidang ini. |
“Amazon. nova-micro-v1:0:128 k” |
“Amazon. nova-lite-v1:0:300 k” |
“Amazon. nova-pro-v1:0:300 k” |
model_name_or_path |
Jalan menuju model dasar. |
“nova-mikro/prod” |
“nova-lite/prod” |
“nova-pro/prod” |
|
replika |
Jumlah instans komputasi yang akan digunakan untuk pelatihan terdistribusi. |
2, 4 atau 8 |
4, 8 atau 16 |
6, 12 atau 24 |
Tentang konfigurasi “training_config”.
Kunci root | Kunci anak | Definisi | Min | Maks | |
---|---|---|---|---|---|
max_length |
Panjang urutan maksimum dalam token. Ini menentukan ukuran jendela konteks untuk pelatihan. Dapat disetel ke 1024 kelipatan terdekat, nilai maks: 65536 (untuk Lite Lora 32768). |
1024 |
65536, kecuali Lite LoRa yang mendukung 32768. | ||
global_batch_size |
Total sampel per langkah, nilai yang diizinkan adalah 16, 32, 64. Nilai maks: 32 untuk Nova Pro, 64 untuk Nova Lite dan Micro. |
16 | 32 untuk Nova Pro, 64 untuk Nova Lite dan Micro. | ||
Konfigurasi pelatih | pelatih | max_epoch |
Jumlah lintasan lengkap melalui kumpulan data pelatihan Anda. Untuk sebagian besar tugas kustomisasi, 1-5 zaman biasanya cukup. Disarankan untuk menjaga hingga 5. |
1 | - |
Konfigurasi model | model | tersembunyi_putus sekolah |
Probabilitas menjatuhkan output status tersembunyi. Tingkatkan (0,0-0,2) untuk mengurangi overfitting pada kumpulan data yang lebih kecil. Batasnya antara 0 - 1. |
0 | 1 |
model | attention_dropout |
Probabilitas menjatuhkan bobot perhatian. Dapat membantu generalisasi. Batasnya antara 0 - 1. |
0 | 1 | |
model | ffn_dropout |
Probabilitas menjatuhkan output jaringan feed-forward. Batasnya antara 0 - 1. |
0 | 1 | |
Konfigurasi pengoptimal | model.optim | lr |
Tingkat pembelajaran, mengontrol ukuran langkah selama pengoptimalan. Batasnya antara 0 dan 1. Biasanya diatur antara 1e-6 dan 1e-4. untuk kinerja yang baik. |
0 | 1 |
model.optim | name |
Algoritma pengoptimal. Saat ini, hanya |
- | - | |
model.optim | adam_w_mode |
Aktifkan mode AdamW (benar/salah). |
- | - | |
model.optim | eps |
Epsilon untuk stabilitas numerik. |
|||
model.optim | weight_decay |
Kekuatan regularisasi L2, harus antara 0,0 dan 1,0. |
0 | 1 | |
model.optim | beta |
Adam optimizer beta, harus antara 0,0 dan 1,0. |
0 | 1 | |
model.optim | sched_warmup_steps |
Jumlah langkah untuk secara bertahap meningkatkan tingkat pembelajaran. Ini meningkatkan stabilitas pelatihan. Antara 1 dan 20. |
1 | 20 | |
model.optim | sched_constant_steps |
Langkah-langkah pada tingkat pembelajaran konstan. |
1.00E-10 | 1.00E-06 | |
model.optim | sched.min_lr |
Tingkat pembelajaran minimum pada akhir pembusukan. Batasnya antara 0 dan 1, tetapi harus kurang dari tingkat pembelajaran. |
0 | 1 | |
Konfigurasi LoRa PEFT |
model.peft | peft_scheme |
Gunakan “lora” atau “null”. “lora” menggunakan metode LoRa PEFT untuk fine-tuning hemat parameter. “null” memulai fine tuning peringkat penuh. |
- | - |
model.peft | lora_tuning.loraplus_lr_ratio |
Faktor penskalaan tingkat pembelajaran LoRa+, harus antara 0.0 dan 100.0. |
0 | 100 | |
model.peft | lora_tuning.alpha |
Faktor penskalaan untuk bobot LoRa. Nilai yang diizinkan adalah 32, 64, 96, 128, 160 dan 192. |
32 | 192 | |
model.peft | lora_tuning.adapter_dropout |
Regularisasi untuk parameter LoRa. Harus antara 0,0 dan 1,0. |
0 | 1 |
Menyetel konfigurasi khusus (DPO)
Satu-satunya perbedaan antara Direct Preference Optimization (DPO) dibandingkan dengan LoRa PEFT dan FullRank SFT adalah dalam hal konfigurasi dpo_cfg dan nilai yang diizinkan. Lihat tabel di bawah contoh untuk diizinkan khusus untuk DPO. Contoh resep tersedia di GitHub repositori SageMaker HyperPod resep
Kunci root | Kunci anak | Definisi | Min | Maks | |
---|---|---|---|---|---|
max_length | Panjang urutan maksimum dalam token. Ini menentukan ukuran jendela konteks untuk pelatihan. Dapat disetel ke 1024 kelipatan terdekat, nilai maks: 32.768. |
1024 |
32768 |
||
global_batch_size |
Ukuran batch global, nilai yang diizinkan adalah {16, 32, 64, 128, 256}. |
16 | 256 | ||
Konfigurasi pelatih | pelatih | max_epoch |
Jumlah lintasan lengkap melalui kumpulan data pelatihan Anda. Untuk sebagian besar tugas kustomisasi, 1-5 zaman biasanya cukup. Epoch Max adalah 5. |
1 | 5 |
Konfigurasi model | model | tersembunyi_putus sekolah |
Probabilitas menjatuhkan output status tersembunyi. Tingkatkan (0,0-0,2) untuk mengurangi overfitting pada kumpulan data yang lebih kecil. Batasnya antara 0 - 1. |
0 | 1 |
model | attention_dropout |
Probabilitas menjatuhkan bobot perhatian. Dapat membantu generalisasi. Batasnya antara 0 - 1. |
0 | 1 | |
model | ffn_dropout |
Probabilitas menjatuhkan output jaringan feed-forward. Batasnya antara 0 - 1. |
0 | 1 | |
Konfigurasi pengoptimal | model.optim | lr |
Tingkat pembelajaran, mengontrol ukuran langkah selama pengoptimalan. Batasnya antara 0 dan 1. Biasanya diatur antara 1e-6 dan 1e-4. untuk kinerja yang baik. |
0 | 1 |
model.optim | name |
Algoritma pengoptimal. Saat ini, hanya |
- | - | |
model.optim | adam_w_mode |
Aktifkan mode AdamW (benar/salah). |
- | - | |
model.optim | eps |
Epsilon untuk stabilitas numerik. |
1.00E-10 | 1.00E-06 | |
model.optim | weight_decay |
Kekuatan regularisasi L2, harus antara 0,0 dan 1,0. |
0 | 1 | |
model.optim | beta |
Adam optimizer beta, harus antara 0,0 dan 1,0. |
0 | 1 | |
model.optim | sched_warmup_steps |
Jumlah langkah untuk secara bertahap meningkatkan tingkat pembelajaran. Ini meningkatkan stabilitas pelatihan. Antara 1 dan 20. |
1 | 20 | |
model.optim | sched_constant_steps |
Langkah-langkah pada tingkat pembelajaran konstan. |
|||
model.optim | sched.min_lr |
Tingkat pembelajaran minimum pada akhir pembusukan. Batasnya antara 0 dan 1, tetapi harus kurang dari tingkat pembelajaran. |
0 | 1 | |
Konfigurasi LoRa PEFT |
model.peft | peft_scheme |
Gunakan “lora” atau “null”. “lora” menggunakan metode LoRa PEFT untuk fine-tuning hemat parameter. “null” memulai fine tuning peringkat penuh. |
- | - |
model.peft | lora_tuning.loraplus_lr_ratio |
Faktor penskalaan tingkat pembelajaran LoRa+, harus antara 0.0 dan 100.0. |
0 | 100 | |
model.peft | lora_tuning.alpha |
Faktor penskalaan untuk bobot LoRa. Nilai yang diizinkan adalah 32, 64, 96, 128, 160 dan 192. |
32 | 192 | |
model.peft | lora_tuning.adapter_dropout |
Regularisasi untuk parameter LoRa. Harus antara 0,0 dan 1,0. |
0 | 1 | |
Konfigurasi DPO | model-dpo_cfg | beta |
Kekuatan penegakan preferensi. |
0,001 | 0,1 |
Menjalankan model Nova yang disesuaikan pada pekerjaan SageMaker pelatihan
Bagian ini menunjukkan cara menjalankan model Nova yang disesuaikan pada pekerjaan SageMaker pelatihan melalui lingkungan notebook Jupyter. Anda akan menemukan contoh lengkap yang berjalan melalui proses mengkonfigurasi dan meluncurkan pekerjaan pelatihan, bersama dengan tabel referensi untuk memilih gambar kontainer URIs dan konfigurasi instance yang sesuai. Pendekatan ini memberi Anda kontrol terprogram atas alur kerja fine-tuning Anda sambil memanfaatkan infrastruktur terkelola untuk penyesuaian model SageMaker. Untuk informasi selengkapnya, lihat Menggunakan estimator SageMaker AI untuk menjalankan pekerjaan pelatihan.
Tabel referensi
Sebelum menjalankan contoh buku catatan, lihat tabel berikut untuk memilih gambar kontainer URIs dan konfigurasi instance yang sesuai.
Memilih URI gambar
Resep | URI citra |
---|---|
URI gambar SFT |
708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-TJ-SFT-latest |
URI gambar DPO |
708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-TJ-DPO-latest |
Memilih jenis dan hitungan instans
Model | Jenis Tugas | Jenis instans | Jumlah instans yang disarankan | Jumlah instans yang diizinkan |
---|---|---|---|---|
Amazon Nova Mikro | Penyetelan halus (SFT/DPO) |
p5.48xlarge |
2 | 2,4,8 |
Amazon Nova Lite | Penyetelan halus (SFT/DPO) |
p5.48xlarge |
4 | 4,8,16 |
Amazon Nova Pro | Penyetelan halus (SFT/DPO) |
p5.48xlarge |
6 | 6,12,24 |
Notebook sampel
Notebook contoh berikut menunjukkan cara menjalankan pekerjaan pelatihan. Untuk buku catatan awal tambahan tentang cara menyesuaikan model Nova menggunakan pekerjaan pelatihan SageMaker AI, lihat Gunakan estimator SageMaker AI untuk menjalankan pekerjaan pelatihan.
# 1. Install dependencies !pip install sagemaker # 2. Import dependencies and initialize sagemaker session import sagemaker,boto3 sm = boto3.client('sagemaker', region_name='us-east-1') sagemaker_session = sagemaker.session.Session(boto_session=boto3.session.Session(), sagemaker_client=sm) # 3. Configure your job # Define the core configuration for launching a SageMaker Training Job. This includes input/output S3 URIs, container image, hardware setup, and other runtime parameters. Update the placeholders below before submitting the job. job_name = "<Your Job Name>" input_s3_uri = "<S3 path to input data>" validation_s3_uri = "<S3 path to validation data>" # optional, leave blank if no validation data output_s3_uri = "<S3 path to output location>" image_uri = "<Image URI from documentation>" # you can choose the image for SFT/DPO instance_type = "ml.p5.48xlarge" # do not change instance_count = <Integer number of hosts> # change hosts as needed. Refer to documentation for allowed values based on model type. role_arn = "<IAM Role you want to use to run the job>" recipe_path = "<Local path to the recipe file>" # 4. Launch SageMaker Training Job # This block sets up and runs the SageMaker training job using the PyTorch estimator. It configures the training image, hardware, input channels, and TensorBoard integration. Validation data is included if provided. from sagemaker.debugger import TensorBoardOutputConfig from sagemaker.pytorch import PyTorch from sagemaker.inputs import TrainingInput tensorboard_output_config = TensorBoardOutputConfig( s3_output_path=output_s3_uri, ) 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, sagemaker_session=sagemaker_session, image_uri=image_uri, tensorboard_output_config=tensorboard_output_config, # Add the setting for using TensorBoard. disable_profiler=True, debugger_hook_config=False ) trainingInput = TrainingInput( s3_data=input_s3_uri, distribution='FullyReplicated', s3_data_type='Converse' ) if (validation_s3_uri): validationInput = TrainingInput( s3_data=validation_s3_uri, distribution='FullyReplicated', s3_data_type='Converse' ) estimator.fit(inputs={"train": trainingInput, "validation": validationInput}) # inputs must be called "train" and "validation", do not change else: estimator.fit(inputs={"train": trainingInput}) # 5. Monitor your training job # To monitor your training job, you can either: # * Go to your AWS console -> Amazon Sagemaker AI -> Training -> Training Jobs # * run the following command # sm.describe_training_job(TrainingJobName="<complete training job name>")
Panduan optimasi hyperparameter
Menyetel model Nova LLM Anda secara efektif membutuhkan pemilihan hiperparameter yang cermat. Meskipun bagian ini menjelaskan struktur dan komponen resep dasar, mengoptimalkan hiperparameter untuk kasus penggunaan spesifik Anda seringkali memerlukan panduan tambahan. Untuk rekomendasi komprehensif tentang pemilihan hiperparameter, praktik terbaik, dan strategi pengoptimalan, lihat Memilih hiperparameter. Sumber daya ini memberikan panduan terperinci tentang memilih tingkat pembelajaran yang sesuai, ukuran batch, zaman pelatihan, dan parameter penting lainnya berdasarkan karakteristik kumpulan data dan tujuan pelatihan Anda. Sebaiknya konsultasikan panduan ini saat menyempurnakan konfigurasi resep Anda untuk mencapai kinerja model yang optimal.
Untuk detail tentang nilai minimum, maksimum, dan default untuk epoch, tingkat pembelajaran, dan langkah pemanasan pembelajaran, lihat Hyperparameters for Understanding models.
Modifikasi resep umum
Berikut adalah beberapa penyesuaian resep umum berdasarkan kasus penggunaan tertentu:
-
Untuk kumpulan data yang lebih kecil (<1.000 contoh)
training_config: max_epochs: 2 # More passes through a smaller dataset model: hidden_dropout: 0.1 # Increase regularization weight_decay: 0.01 # Increase regularization
-
Untuk efisiensi dengan komputasi terbatas
peft: peft_scheme: "lora" lora_tuning:
-
Untuk penyetelan instruksi yang kompleks
optim: lr: 5e-6 # Lower learning rate for more stable learning sched: warmup_steps: 100 # Longer warmup for stability