Sempurnakan Nova 2.0 -

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

Sempurnakan Nova 2.0

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 denganAmazonSageMakerFullAccess. Untuk informasi selengkapnya, lihat Cara menggunakan peran SageMaker eksekusi.

  • Resep dasar Amazon Nova, lihatMendapatkan resep Amazon Nova.

Apa itu SFT?

Supervised fine-tuning (SFT) melatih model bahasa menggunakan pasangan input-output berlabel. Model belajar dari contoh demonstrasi yang terdiri dari petunjuk dan tanggapan, menyempurnakan kemampuannya untuk menyelaraskan dengan tugas, instruksi, atau perilaku yang diinginkan tertentu.

Persiapan data

Gambaran umum

Data Nova 2.0 SFT menggunakan format Converse API yang sama dengan Nova 1.0, dengan penambahan bidang konten penalaran opsional. Untuk spesifikasi format lengkap, lihat:

Fitur yang didukung

  • Jenis input - Teks, gambar, atau video di blok konten pengguna

  • Konten asisten - Tanggapan khusus teks dan konten penalaran

  • Komposisi dataset — Harus homogen. Pilih salah satu dari:

    • Giliran hanya teks

    • Teks+gambar berubah

    • Teks+video berubah (mendukung pemahaman dokumen)

penting

Anda tidak dapat mencampur gambar dan video dalam kumpulan data yang sama atau di belokan yang berbeda.

Keterbatasan saat ini

  • Konten penalaran multimodal - Meskipun format Converse mendukung konten penalaran berbasis gambar, Nova 2.0 SFT hanya mendukung konten penalaran berbasis teks di bidang ReasoningText.

  • Set validasi - Anda tidak dapat memberikan kumpulan data validasi untuk SFT dengan Nova 2.0. Jika Anda memberikan kumpulan data validasi, itu akan diabaikan selama pelatihan. Batasan ini berlaku untuk pengajuan pekerjaan berbasis UI dan terprogram.

Format media yang didukung

  • Gambar - PNG, JPEG, GIF

  • Video - MOV, MKV, MP4

Contoh format data

Text-only (Nova 1.0 compatible)
{ "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are a digital assistant with a friendly personality" } ], "messages": [ { "role": "user", "content": [ { "text": "What country is right next to Australia?" } ] }, { "role": "assistant", "content": [ { "text": "The closest country is New Zealand" } ] } ] }
Text with reasoning (Nova 2.0)
{ "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are a digital assistant with a friendly personality" } ], "messages": [ { "role": "user", "content": [ { "text": "What country is right next to Australia?" } ] }, { "role": "assistant", "content": [ { "reasoningContent": { "reasoningText": { "text": "I need to use my world knowledge of geography to answer this question" } } }, { "text": "The closest country to Australia is New Zealand, located to the southeast across the Tasman Sea." } ] } ] }
Image + text input
{ "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are a helpful assistant." } ], "messages": [ { "role": "user", "content": [ { "image": { "format": "jpeg", "source": { "s3Location": { "uri": "s3://your-bucket/your-path/your-image.jpg", "bucketOwner": "your-aws-account-id" } } } }, { "text": "Which country is highlighted in the image?" } ] }, { "role": "assistant", "content": [ { "reasoningContent": { "reasoningText": { "text": "I will determine the highlighted country by examining its location on the map and using my geographical knowledge" } } }, { "text": "The highlighted country is New Zealand" } ] } ] }
Video + text input
{ "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are a helpful assistant." } ], "messages": [ { "role": "user", "content": [ { "video": { "format": "mp4", "source": { "s3Location": { "uri": "s3://your-bucket/your-path/your-video.mp4", "bucketOwner": "your-aws-account-id" } } } }, { "text": "What is shown in this video?" } ] }, { "role": "assistant", "content": [ { "reasoningContent": { "reasoningText": { "text": "I will analyze the video content to identify key elements" } } }, { "text": "The video shows a map with New Zealand highlighted" } ] } ] }

Panggilan alat

Nova 2.0 SFT mendukung model pelatihan tentang pola pemanggilan alat, memungkinkan model Anda mempelajari kapan dan bagaimana memanggil alat atau fungsi eksternal.

Format data untuk pemanggilan alat

Data pelatihan pemanggilan alat mencakup toolConfig bagian yang mendefinisikan alat yang tersedia, bersama dengan giliran percakapan yang menunjukkan pola penggunaan 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?" } ] } ] }

Persyaratan panggilan alat

Saat membuat data pelatihan pemanggilan alat, ikuti persyaratan ini:

Persyaratan Deskripsi
ToolUse penempatan ToolUse harus muncul di asisten giliran saja
ToolResult penempatan ToolResult harus muncul di giliran pengguna saja
ToolResult format ToolResult harus berupa teks atau JSON saja. Modalitas lain tidak didukung untuk model Nova
Format InputSkema InputSchema dalam ToolSpec harus berupa objek Skema JSON yang valid
toolUseId pencocokan Masing-masing ToolResult harus mereferensikan yang valid toolUseId dari asisten sebelumnya ToolUse, dengan masing-masing toolUseId digunakan tepat sekali per percakapan

Catatan penting

  • Pastikan definisi alat Anda konsisten di semua sampel pelatihan

  • Model mempelajari pola pemanggilan alat dari demonstrasi yang Anda berikan

  • Sertakan beragam contoh kapan harus menggunakan setiap alat dan kapan tidak menggunakan alat

Pemahaman dokumen

Nova 2.0 SFT mendukung pelatihan tentang tugas berbasis dokumen, memungkinkan model Anda mempelajari cara menganalisis dan menanggapi pertanyaan tentang dokumen PDF.

Format data untuk pemahaman dokumen

Data pelatihan pemahaman dokumen mencakup referensi dokumen di blok konten pengguna, dengan model pembelajaran untuk mengekstrak dan memberi alasan atas konten dokumen.

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" } ] } ] }

Keterbatasan pemahaman dokumen

Batasan Detail
Format yang didukung Hanya file PDF
Ukuran dokumen maksimum 10 MB
Pencampuran modalitas Sampel dapat memiliki dokumen dan teks, tetapi tidak dapat memiliki dokumen yang dicampur dengan modalitas lain (gambar, video)

Praktik terbaik untuk memahami dokumen

  • Pastikan dokumen diformat dengan jelas dan teks dapat diekstraksi

  • Berikan beragam contoh yang mencakup berbagai jenis dokumen dan format pertanyaan

  • Sertakan konten penalaran untuk membantu model mempelajari pola analisis dokumen

Pemahaman video

Nova 2.0 SFT mendukung pelatihan tentang tugas berbasis video, memungkinkan model Anda mempelajari cara menganalisis dan menanggapi pertanyaan tentang konten video.

Format data untuk pemahaman video

Data pelatihan pemahaman video mencakup referensi video di blok konten pengguna, dengan model pembelajaran untuk mengekstrak informasi dan alasan atas konten video.

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" } ] } ] }

Keterbatasan pemahaman video

Batasan Detail
Ukuran video maksimal 50 MB
Durasi video maksimum 15 menit
Video per sampel Hanya satu video yang diizinkan per sampel. Beberapa video dalam sampel yang sama tidak didukung
Pencampuran modalitas Sampel dapat memiliki video dan teks, tetapi tidak dapat memiliki video yang digabungkan dengan modalitas lain (gambar, dokumen)

Format video yang didukung

  • MOV

  • MKV

  • MP4

Praktik terbaik untuk memahami video

  • Jaga agar video tetap ringkas dan fokus pada konten yang relevan dengan tugas Anda

  • Pastikan kualitas video cukup bagi model untuk mengekstrak informasi yang bermakna

  • Berikan pertanyaan yang jelas yang mereferensikan aspek-aspek spesifik dari konten video

  • Sertakan beragam contoh yang mencakup berbagai jenis video dan format pertanyaan

Mode penalaran vs non-penalaran

Memahami konten penalaran

Konten penalaran (juga disebut chain-of-thought) menangkap langkah-langkah pemikiran menengah model sebelum menghasilkan jawaban akhir. Pada assistant gilirannya, gunakan reasoningContent bidang untuk memasukkan jejak penalaran ini.

Bagaimana kerugian dihitung

  • Dengan konten penalaran — Kerugian pelatihan mencakup token penalaran dan token keluaran akhir

  • Tanpa penalaran konten - Kerugian pelatihan dihitung hanya pada token keluaran akhir

Anda dapat menyertakan reasoningContent beberapa giliran asisten dalam percakapan multi-putaran.

Pedoman pemformatan

  • Gunakan teks biasa untuk konten penalaran

  • Hindari tag markup seperti <thinking> dan </thinking> kecuali secara khusus diperlukan oleh tugas Anda

  • Pastikan konten penalaran jelas dan relevan dengan proses pemecahan masalah

Kapan mengaktifkan mode penalaran

Setel reasoning_enabled: true dalam konfigurasi latihan Anda saat:

  • Data pelatihan Anda memiliki token penalaran

  • Anda ingin model menghasilkan token pemikiran sebelum menghasilkan output akhir

  • Anda membutuhkan peningkatan kinerja pada tugas penalaran yang kompleks

Melatih Nova pada dataset non-penalaran dengan reasoning_enabled = true diizinkan. Namun, melakukan hal itu dapat menyebabkan model kehilangan kemampuan penalarannya, karena Nova terutama belajar untuk menghasilkan respons yang disajikan dalam data tanpa menerapkan penalaran. Jika Anda ingin melatih Nova pada kumpulan data non-penalaran tetapi masih mengharapkan penalaran selama inferensi, Anda dapat menonaktifkan penalaran selama pelatihan (reasoning_enabled = false) tetapi mengaktifkannya untuk inferensi. Meskipun pendekatan ini memungkinkan penalaran digunakan pada waktu inferensi, pendekatan ini tidak menjamin peningkatan kinerja dibandingkan dengan inferensi tanpa penalaran. Secara umum, aktifkan penalaran untuk pelatihan dan inferensi saat menggunakan kumpulan data penalaran, dan nonaktifkan keduanya saat menggunakan kumpulan data non-penalaran.

Atur reasoning_enabled: false kapan:

  • Data pelatihan Anda tidak memiliki token penalaran

  • Anda melatih tugas-tugas langsung yang tidak mendapat manfaat dari langkah-langkah penalaran eksplisit

  • Anda ingin mengoptimalkan kecepatan dan mengurangi penggunaan token

Menghasilkan data penalaran

Jika kumpulan data Anda tidak memiliki jejak penalaran, Anda dapat membuatnya menggunakan model berkemampuan penalaran seperti Nova Premier. Berikan pasangan input-output Anda ke model dan tangkap proses penalarannya untuk membangun kumpulan data yang diperbesar dengan alasan.

Menggunakan token penalaran untuk pelatihan

Ketika pelatihan dengan mode penalaran diaktifkan, model belajar untuk memisahkan penalaran internal dari jawaban akhir. Proses pelatihan:

  • Mengatur data sebagai tiga kali lipat: masukan, penalaran, dan jawaban

  • Mengoptimalkan menggunakan kerugian prediksi token berikutnya standar dari token penalaran dan jawaban

  • Mendorong model untuk bernalar secara internal sebelum menghasilkan tanggapan

Konten penalaran yang efektif

Konten penalaran berkualitas tinggi harus mencakup:

  • Pikiran dan analisis menengah

  • Pengurangan logis dan langkah inferensi

  • Step-by-step pendekatan pemecahan masalah

  • Hubungan eksplisit antara langkah dan kesimpulan

Ini membantu model mengembangkan kemampuan untuk “berpikir sebelum menjawab.”

Pedoman persiapan kumpulan data

Ukuran dan kualitas

  • Ukuran yang disarankan - 2.000-10.000 sampel

  • Sampel minimum - 200

  • Prioritas - Kualitas di atas kuantitas. Pastikan contoh akurat dan beranotasi dengan baik

  • Penyelarasan aplikasi — Dataset harus mencerminkan kasus penggunaan produksi Anda

Keanekaragaman

Sertakan beragam contoh yang:

  • Tutupi berbagai input yang diharapkan

  • Mewakili tingkat kesulitan yang berbeda

  • Sertakan kasus tepi dan variasi

  • Cegah overfitting ke pola yang sempit

Pemformatan keluaran

Tentukan dengan jelas format output yang diinginkan dalam tanggapan asisten:

  • Struktur JSON

  • Tabel

  • Format CSV

  • Format khusus khusus untuk aplikasi Anda

Percakapan multi-giliran

Untuk kumpulan data multi-putaran, ingat:

  • Kerugian dihitung hanya pada giliran asisten, bukan putaran pengguna

  • Setiap respons asisten harus diformat dengan benar

  • Pertahankan konsistensi di seluruh belokan percakapan

Daftar periksa kualitas

  • Ukuran dataset yang memadai (sampel 2K-10K)

  • Beragam contoh yang mencakup semua kasus penggunaan

  • Pemformatan keluaran yang jelas dan konsisten

  • Label dan anotasi yang akurat

  • Perwakilan skenario produksi

  • Bebas dari kontradiksi atau ambiguitas

Mengunggah data Anda

Kumpulan data harus diunggah ke bucket yang dapat diakses oleh SageMaker pekerjaan pelatihan. Untuk informasi tentang menyetel izin yang tepat, lihat Prasyarat.

Memulai pekerjaan pelatihan

Memilih hyperparameters dan memperbarui resep

Pengaturan untuk Nova 2.0 sebagian besar sama dengan Nova 1.0. Setelah data input telah diunggah ke S3, gunakan resep dari SageMaker Hyperpod Recipes di bawah Fine tuning folder. Untuk Nova 2.0, berikut ini adalah beberapa hyperparameter kunci yang dapat Anda perbarui berdasarkan kasus penggunaan. Berikut ini adalah contoh resep Nova 2.0 SFT PEFT.

Silakan gunakan v2.254.1 dari SageMaker PySDK untuk kompatibilitas ketat dengan pelatihan Nova. Memutakhirkan SDK ke versi v3.0 akan menghasilkan perubahan yang melanggar. Support untuk v3 dari SageMaker PySDK akan segera hadir.

Masukan Sampel

!pip install sagemaker==2.254.1
run: name: {peft_recipe_job_name} model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: {peft_model_name_or_path} data_s3_path: {train_dataset_s3_path} # SageMaker Hyperpod (SMHP) only and not compatible with SageMaker Training jobs. Note replace my-bucket-name with your real bucket name for SMHP job replicas: 4 # Number of compute instances for training, allowed values are 4, 8, 16, 32 output_s3_path: "" # Output artifact path (Hyperpod job-specific; not compatible with standard SageMaker Training jobs). Note replace my-bucket-name with your real bucket name for SMHP job training_config: max_steps: 10 # Maximum training steps. Minimal is 4. save_steps: 10 # How many training steps the checkpoint will be saved. Should be less than or equal to max_steps save_top_k: 1 # Keep top K best checkpoints. Note supported only for SageMaker HyperPod 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, must be between 0.0 and 1.0 adam_beta2: 0.95 # Exponential decay rate for second-moment estimates, must be between 0.0 and 1.0 peft: # Parameter-efficient fine-tuning (LoRA) peft_scheme: "lora" # Enable LoRA for PEFT lora_tuning: alpha: 64 # Scaling factor for LoRA weights ( options: 32, 64, 96, 128, 160, 192), lora_plus_lr_ratio: 64.0

Resepnya juga mengandung sebagian besar hiperparameter yang sama dengan Nova 1.0. Hyperparameter yang menonjol adalah:

  • max_steps— Jumlah langkah yang Anda inginkan untuk menjalankan pekerjaan. Umumnya, untuk satu zaman (satu kali berjalan melalui seluruh kumpulan data Anda), jumlah langkah = jumlah sampel data/ukuran batch global. Semakin besar jumlah langkah dan semakin kecil ukuran batch global Anda, semakin lama pekerjaan yang dibutuhkan untuk dijalankan.

  • reasoning_enabled— Mengontrol mode penalaran untuk dataset Anda. Pilihan:

    • true: Mengaktifkan mode penalaran (setara dengan penalaran tinggi)

    • false: Menonaktifkan mode penalaran

    Catatan: Untuk SFT, tidak ada kontrol granular atas tingkat upaya penalaran. Pengaturan reasoning_enabled: true memungkinkan kemampuan penalaran penuh.

  • peft.peft_scheme— Mengatur ini ke “lora” memungkinkan penyetelan halus berbasis PEFT. Mengaturnya ke null (tanpa tanda kutip) memungkinkan penyetelan halus Peringkat Penuh.

Mulai pekerjaan pelatihan

from sagemaker.pytorch import PyTorch # define OutputDataConfig path if default_prefix: output_path = f"s3://{bucket_name}/{default_prefix}/{sm_training_job_name}" else: output_path = f"s3://{bucket_name}/{sm_training_job_name}" recipe_overrides = { "run": { "replicas": instance_count, # Required "output_s3_path": output_path }, } estimator = PyTorch( output_path=output_path, base_job_name=sm_training_job_name, role=role, disable_profiler=True, debugger_hook_config=False, instance_count=instance_count, instance_type=instance_type, training_recipe=training_recipe, recipe_overrides=recipe_overrides, max_run=432000, sagemaker_session=sagemaker_session, image_uri=image_uri, tags=[ {'Key': 'model_name_or_path', 'Value': model_name_or_path}, ] ) print(f"\nsm_training_job_name:\n{sm_training_job_name}\n") print(f"output_path:\n{output_path}")
from sagemaker.inputs import TrainingInput train_input = TrainingInput( s3_data=train_dataset_s3_path, distribution="FullyReplicated", s3_data_type="Converse", ) estimator.fit(inputs={"validation": val_input}, wait=False)
catatan

Melewati kumpulan data validasi tidak didukung untuk fine tuning Nova 2.0 yang diawasi.

Untuk memulai pekerjaan:

  • Perbarui resep dengan jalur dataset dan hyperparameters Anda

  • Jalankan sel yang ditentukan di buku catatan untuk mengirimkan pekerjaan pelatihan

Notebook menangani pengiriman pekerjaan dan menyediakan pelacakan status.