Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
SFT pada Nova 2.0
Amazon Nova Lite 2.0 menghadirkan kemampuan yang disempurnakan untuk fine-tuning yang diawasi, termasuk mode penalaran lanjutan, pemahaman multimodal yang ditingkatkan, dan penanganan konteks yang diperluas. SFT di Nova 2.0 memungkinkan Anda untuk menyesuaikan kemampuan canggih ini dengan kasus penggunaan spesifik Anda sambil mempertahankan kinerja superior model pada tugas-tugas kompleks.
Fitur utama SFT pada Nova 2.0 meliputi:
-
Dukungan mode penalaran: Latih model untuk menghasilkan jejak penalaran eksplisit sebelum jawaban akhir untuk kemampuan analitis yang ditingkatkan.
-
Pelatihan multimodal tingkat lanjut: Menyesuaikan pemahaman dokumen (PDF), pemahaman video, dan tugas berbasis gambar dengan akurasi yang ditingkatkan.
-
Kemampuan pemanggilan alat: Latih model untuk secara efektif menggunakan alat eksternal dan panggilan fungsi untuk alur kerja yang kompleks.
-
Dukungan konteks yang diperluas: Manfaatkan jendela konteks yang lebih panjang dengan stabilitas dan akurasi yang lebih baik untuk aplikasi intensif dokumen.
catatan
Untuk informasi lebih lanjut tentang gambar wadah mana, atau contoh resep yang akan digunakan, buka resep Amazon Nova.
Topik
Di bawah ini adalah contoh resep untuk SFT. Anda dapat menemukan resep ini dan lainnya di repositori resep
run: name: my-full-rank-sft-run model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: nova-lite-2/prod data_s3_path: s3://my-bucket-name/train.jsonl # only and not compatible with SageMaker Training Jobs replicas: 4 # Number of compute instances for training, allowed values are 4, 8, 16, 32 output_s3_path: s3://my-bucket-name/outputs/ # Output artifact path (HyperPod job-specific; not compatible with standard SageMaker Training Jobs) mlflow_tracking_uri: "" # Required for MLFlow mlflow_experiment_name: "my-full-rank-sft-experiment" # Optional for MLFlow. Note: leave this field non-empty mlflow_run_name: "my-full-rank-sft-run" # Optional for MLFlow. Note: leave this field non-empty training_config: max_steps: 100 # Maximum training steps. Minimal is 4. save_steps: ${oc.select:training_config.max_steps} # How many training steps the checkpoint will be saved save_top_k: 5 # Keep top K best checkpoints. Note supported only for jobs. Minimal is 1. max_length: 32768 # Sequence length (options: 8192, 16384, 32768 [default], 65536) global_batch_size: 32 # Global batch size (options: 32, 64, 128) reasoning_enabled: true # If data has reasoningContent, set to true; otherwise False lr_scheduler: warmup_steps: 15 # Learning rate warmup steps. Recommend 15% of max_steps min_lr: 1e-6 # Minimum learning rate, must be between 0.0 and 1.0 optim_config: # Optimizer settings lr: 1e-5 # Learning rate, must be between 0.0 and 1.0 weight_decay: 0.0 # L2 regularization strength, must be between 0.0 and 1.0 adam_beta1: 0.9 # Exponential decay rate for first-moment estimates adam_beta2: 0.95 # Exponential decay rate for second-moment estimates peft: # Parameter-efficient fine-tuning (LoRA) peft_scheme: "null" # Disable LoRA for PEFT
Pemilihan Mode Penalaran (Hanya Nova 2.0)
Amazon Nova 2.0 mendukung mode penalaran untuk kemampuan analitis yang ditingkatkan:
-
Mode Penalaran (diaktifkan):
-
Atur
reasoning_enabled: truedalam konfigurasi pelatihan -
Model melatih untuk menghasilkan jejak penalaran sebelum jawaban akhir
-
Meningkatkan kinerja pada tugas penalaran yang kompleks
-
-
Mode Non-Penalaran (dinonaktifkan):
-
Mengatur
reasoning_enabled: falseatau menghilangkan parameter (default) -
SFT standar tanpa alasan eksplisit
-
Cocokkan untuk tugas yang tidak mendapat manfaat dari step-by-step penalaran
-
catatan
-
Ketika penalaran diaktifkan, ia beroperasi pada upaya penalaran yang tinggi. Tidak ada opsi penalaran rendah untuk SFT.
-
Konten penalaran multimodal tidak didukung untuk SFT. Mode penalaran berlaku untuk input teks saja.
Melatih Amazon Nova pada kumpulan data non-penalaran dengan reasoning_enabled:
true diizinkan. Namun, hal itu dapat menyebabkan model kehilangan kemampuan penalarannya, karena Amazon Nova terutama belajar untuk menghasilkan respons yang disajikan dalam data tanpa menerapkan penalaran.
Jika melatih Amazon Nova pada kumpulan data non-penalaran tetapi masih ingin menggunakan penalaran selama inferensi:
-
Nonaktifkan penalaran selama pelatihan ()
reasoning_enabled: false -
Aktifkan penalaran nanti selama inferensi
Meskipun pendekatan ini memungkinkan penalaran pada waktu inferensi, itu tidak menjamin peningkatan kinerja dibandingkan dengan inferensi tanpa penalaran.
Praktik terbaik: Aktifkan penalaran untuk pelatihan dan inferensi saat menggunakan kumpulan data penalaran, dan nonaktifkan keduanya saat menggunakan kumpulan data non-penalaran.
catatan
Untuk informasi lebih lanjut tentang gambar wadah mana, atau contoh resep yang akan digunakan, buka resep Amazon Nova.
Alat memanggil format data
SFT mendukung model pelatihan untuk menggunakan alat (panggilan fungsi). Di bawah ini adalah contoh format input untuk pemanggilan alat:
Masukan sampel:
{ "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are an expert in composing function calls." } ], "toolConfig": { "tools": [ { "toolSpec": { "name": "getItemCost", "description": "Retrieve the cost of an item from the catalog", "inputSchema": { "json": { "type": "object", "properties": { "item_name": { "type": "string", "description": "The name of the item to retrieve cost for" }, "item_id": { "type": "string", "description": "The ASIN of item to retrieve cost for" } }, "required": [ "item_id" ] } } } }, { "toolSpec": { "name": "getItemAvailability", "description": "Retrieve whether an item is available in a given location", "inputSchema": { "json": { "type": "object", "properties": { "zipcode": { "type": "string", "description": "The zipcode of the location to check in" }, "quantity": { "type": "integer", "description": "The number of items to check availability for" }, "item_id": { "type": "string", "description": "The ASIN of item to check availability for" } }, "required": [ "item_id", "zipcode" ] } } } } ] }, "messages": [ { "role": "user", "content": [ { "text": "I need to check whether there are twenty pieces of the following item available. Here is the item ASIN on Amazon: id-123. Please check for the zipcode 94086" } ] }, { "role": "assistant", "content": [ { "reasoningContent": { "reasoningText": { "text": "The user wants to check how many pieces of the item with ASIN id-123 are available in the zipcode 94086" } } }, { "toolUse": { "toolUseId": "getItemAvailability_0", "name": "getItemAvailability", "input": { "zipcode": "94086", "quantity": 20, "item_id": "id-123" } } } ] }, { "role": "user", "content": [ { "toolResult": { "toolUseId": "getItemAvailability_0", "content": [ { "text": "[{\"name\": \"getItemAvailability\", \"results\": {\"availability\": true}}]" } ] } } ] }, { "role": "assistant", "content": [ { "text": "Yes, there are twenty pieces of item id-123 available at 94086. Would you like to place an order or know the total cost?" } ] } ] }
Pertimbangan penting untuk data panggilan alat:
-
ToolUse harus muncul di asisten giliran saja
-
ToolResult harus muncul di giliran pengguna saja
-
ToolResult harus berupa teks atau JSON saja; modalitas lain saat ini tidak didukung untuk model Amazon Nova
-
InputSchema dalam ToolSpec harus berupa objek Skema JSON yang valid
-
Masing-masing ToolResult harus mereferensikan yang valid toolUseId dari asisten sebelumnya ToolUse, dengan masing-masing toolUseId digunakan tepat sekali per percakapan
catatan
Untuk informasi lebih lanjut tentang gambar wadah mana, atau contoh resep yang akan digunakan, buka resep Amazon Nova.
Format data pemahaman dokumen
SFT mendukung model pelatihan tentang tugas pemahaman dokumen. Di bawah ini adalah contoh format input:
Masukan sampel
{ "schemaVersion": "bedrock-conversation-2024", "messages": [ { "role": "user", "content": [ { "text": "What are the ways in which a customer can experience issues during checkout on Amazon?" }, { "document": { "format": "pdf", "source": { "s3Location": { "uri": "s3://my-bucket-name/path/to/documents/customer_service_debugging.pdf", "bucketOwner": "123456789012" } } } } ] }, { "role": "assistant", "content": [ { "text": "Customers can experience issues with 1. Data entry, 2. Payment methods, 3. Connectivity while placing the order. Which one would you like to dive into?" } ], "reasoning_content": [ { "text": "I need to find the relevant section in the document to answer the question.", "type": "text" } ] } ] }
Pertimbangan penting untuk pemahaman dokumen:
-
Hanya file PDF yang didukung
-
Ukuran dokumen maksimum adalah 10 MB
-
Sampel dapat berisi dokumen dan teks, tetapi tidak dapat mencampur dokumen dengan modalitas lain (seperti gambar atau video)
catatan
Untuk informasi lebih lanjut tentang gambar wadah mana, atau contoh resep yang akan digunakan, buka resep Amazon Nova.
Pemahaman Video untuk SFT
SFT mendukung model fine-tuning untuk tugas pemahaman video. Di bawah ini adalah contoh format input:
Masukan sampel
{ "schemaVersion": "bedrock-conversation-2024", "messages": [ { "role": "user", "content": [ { "text": "What are the ways in which a customer can experience issues during checkout on Amazon?" }, { "video": { "format": "mp4", "source": { "s3Location": { "uri": "s3://my-bucket-name/path/to/videos/customer_service_debugging.mp4", "bucketOwner": "123456789012" } } } } ] }, { "role": "assistant", "content": [ { "text": "Customers can experience issues with 1. Data entry, 2. Payment methods, 3. Connectivity while placing the order. Which one would you like to dive into?" } ], "reasoning_content": [ { "text": "I need to find the relevant section in the video to answer the question.", "type": "text" } ] } ] }
Pertimbangan penting untuk pemahaman video:
-
Video bisa maksimal 50 MB
-
Video bisa berdurasi hingga 15 menit
-
Hanya satu video yang diizinkan per sampel; beberapa video dalam sampel yang sama tidak didukung
-
Sampel dapat berisi video dan teks, tetapi tidak dapat mencampur video dengan modalitas lain (seperti gambar atau dokumen)
catatan
Untuk informasi lebih lanjut tentang gambar wadah mana, atau contoh resep yang akan digunakan, buka resep Amazon Nova.
Instruksi Unggah Data
Unggah kumpulan data pelatihan dan validasi ke bucket S3. Tentukan lokasi ini di run blok resep:
## Run config run: ... data_s3_path: "s3://<bucket-name>/<training-directory>/<training-file>.jsonl"
Catatan: Ganti<bucket-name>,<training-directory>,<validation-directory>,<training-file>, dan <validation-file> dengan jalur S3 yang sebenarnya.
Catatan: Kumpulan data validasi saat ini tidak didukung untuk SFT dengan Amazon Nova 2.0. Jika dataset validasi disediakan, itu akan diabaikan.
Membuat Fine-Tuning Job
Tentukan model dasar menggunakan model_type dan model_name_or_path bidang di run blok:
## Run config run: ... model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: nova-lite-2/prod ...
Parameter Penyetelan SFT
Parameter yang tersedia untuk penyetelan dengan SFT meliputi:
Jalankan Konfigurasi
-
nama: Nama deskriptif untuk pekerjaan pelatihan Anda. Ini membantu mengidentifikasi pekerjaan Anda di Konsol AWS Manajemen.
-
model_type: Varian model Amazon Nova untuk digunakan. Opsi yang tersedia adalah
amazon.nova-2-lite-v1:0:256k. -
model_name_or_path: Jalur ke model dasar yang akan digunakan untuk pelatihan Anda. Opsi yang tersedia adalah
nova-lite-2/prod, atau jalur S3 untuk pos pemeriksaan pasca-pelatihan ().s3://customer-escrow-bucket-unique_id/training_run_name -
replika: Jumlah instance komputasi yang digunakan untuk pelatihan terdistribusi. Nilai yang tersedia bervariasi berdasarkan model yang Anda pilih. Amazon Nova Lite 2.0 mendukung replika 4, 8, 16, atau 32.
-
data_s3_path: Lokasi S3 dari dataset pelatihan, yang merupakan file JSONL. File ini harus berada di AWS akun dan Wilayah yang sama dengan cluster. Semua lokasi S3 yang disediakan harus berada di akun dan Wilayah yang sama.
-
validation_data_s3_path: (Opsional) Lokasi S3 dari dataset validasi, yang merupakan file JSONL. File ini harus berada di akun dan wilayah yang sama dengan cluster. Semua lokasi S3 yang disediakan harus berada di akun dan Wilayah yang sama.
-
output_s3_path: Lokasi S3 tempat manifes dan log disimpan. TensorBoard Semua lokasi S3 yang disediakan harus berada di AWS akun dan AWS Wilayah yang sama.
-
mlflow_tracking_uri: ARN Aplikasi yang akan digunakan untuk logging. MLFlow MLFlow
-
mlflow_experiment_name: nama percobaan. MLFlow
-
mlflow_run_name: jalankan nama. MLFlow
Konfigurasi Pelatihan
-
max_steps: Jumlah langkah pelatihan yang harus dijalankan. Setiap langkah akan melatih model dengan
global_batch_sizejumlah elemen. -
save_steps: Frekuensi (dalam langkah-langkah) untuk menyimpan pos pemeriksaan model selama pelatihan.
-
save_top_k: Jumlah maksimum pos pemeriksaan terbaik untuk dipertahankan berdasarkan metrik validasi.
-
max_length: Panjang urutan maksimum dalam token. Ini menentukan ukuran jendela konteks untuk pelatihan. Nilai maksimum yang didukung adalah 32768 token untuk SFT.
Urutan yang lebih panjang akan meningkatkan efisiensi pelatihan dengan mengorbankan peningkatan kebutuhan memori. Kami menyarankan Anda mencocokkan parameter max_length dengan distribusi data Anda.
-
global_batch_size: Jumlah total sampel pelatihan yang diproses bersama dalam satu pass maju atau mundur di semua perangkat dan pekerja.
Nilai ini mengalikan ukuran batch per perangkat dan jumlah perangkat. Ini mempengaruhi stabilitas pelatihan dan throughput. Kami menyarankan Anda memulai dengan ukuran batch yang pas dengan nyaman di dalam memori Anda dan meningkatkan skala dari sana. Untuk data spesifik domain, batch yang lebih besar mungkin gradien yang terlalu halus.
-
reasoning_enabled: Boolean flag untuk mengaktifkan kemampuan penalaran selama pelatihan.
Penjadwal Tingkat Pembelajaran
-
warmup_steps: Jumlah langkah untuk meningkatkan tingkat pembelajaran secara bertahap. Ini meningkatkan stabilitas pelatihan.
-
min_lr: Tingkat pembelajaran minimum pada akhir pembusukan. Nilai yang valid antara 0-1, inklusif, tetapi harus kurang dari tingkat pembelajaran.
Konfigurasi Pengoptimal
-
lr: Tingkat pembelajaran, yang mengontrol ukuran langkah selama pengoptimalan. Kami merekomendasikan nilai antara 1e-6-1e-4 untuk kinerja yang baik. Nilai yang valid adalah antara 0-1, inklusif.
-
weight_decay: Kekuatan regularisasi L2. Nilai yang lebih tinggi (antara 0,01-0,1) meningkatkan regularisasi.
-
adam_beta1: Tingkat peluruhan eksponensial untuk perkiraan momen pertama di pengoptimal Adam. Defaultnya adalah 0,9.
-
adam_beta2: Tingkat peluruhan eksponensial untuk perkiraan momen kedua dalam pengoptimal Adam. Defaultnya adalah 0,95.
Konfigurasi PEFT
-
peft_scheme: Skema fine-tuning hemat parameter untuk digunakan. Pilihannya adalah
'null'untuk fine-tuning peringkat penuh ataulorauntuk fine-tuning berbasis Lora.
LoRa Tuning (ketika peft_scheme adalah 'lora')
-
alpha: Parameter penskalaan LoRa. Mengontrol besarnya adaptasi peringkat rendah. Nilai tipikal berkisar dari 8 hingga 128.
-
lora_plus_lr_ratio: Rasio tingkat pembelajaran untuk optimasi LoRa+. Pengganda ini menyesuaikan tingkat pembelajaran khusus untuk parameter LoRa.
Panduan Hyperparameter
Gunakan hiperparameter yang direkomendasikan berikut berdasarkan pendekatan pelatihan:
Pelatihan Peringkat Penuh
-
Zaman: 1
-
Tingkat pembelajaran (lr): 1e-5
-
Tingkat pembelajaran minimum (min_lr): 1e-6
LoRa (Adaptasi Peringkat Rendah)
-
Zaman: 2
-
Tingkat pembelajaran (lr): 5e-5
-
Tingkat pembelajaran minimum (min_lr): 1e-6
Catatan: Sesuaikan nilai-nilai ini berdasarkan ukuran dataset dan kinerja validasi. Pantau metrik pelatihan untuk mencegah overfitting.