

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

# Diawasi Fine-Tuning
<a name="nova-forge-sft"></a>

## Pengantar
<a name="introduction"></a>

Penyetelan halus yang diawasi menggunakan kumpulan data dengan pasangan input-output untuk tugas yang diinginkan. Dengan kata lain, Anda memberikan contoh petunjuk (pertanyaan, instruksi, dll.) Bersama dengan tanggapan yang benar atau yang diinginkan dan melanjutkan pelatihan model tentang ini. Bobot model disesuaikan untuk meminimalkan kerugian yang diawasi, biasanya lintas entropi antara prediksi dan token respons target.

## Kapan menggunakan SFT?
<a name="when-to-use-sft"></a>

SFT adalah yang terbaik ketika Anda memiliki tugas yang terdefinisi dengan baik dengan output yang diinginkan yang jelas. Jika Anda dapat secara eksplisit mengatakan “Diberikan input X, correct/desired outputnya adalah Y” dan Anda dapat mengumpulkan contoh X-Y pemetaan tersebut, maka fine-tuning yang diawasi adalah pilihan yang bagus. Beberapa skenario di mana SFT unggul meliputi:
+ **Tugas klasifikasi terstruktur atau kompleks**: misalnya mengklasifikasikan dokumen internal atau kontrak ke dalam banyak kategori kustom. Dengan SFT, model dapat mempelajari kategori-kategori spesifik ini jauh lebih baik daripada mendorong saja.
+ **Question-answering atau tugas transformasi dengan jawaban yang diketahui**: misalnya menyempurnakan model untuk menjawab pertanyaan dari basis pengetahuan perusahaan, atau untuk mengonversi data antar format, di mana setiap input memiliki respons yang benar.
+ **Pemformatan dan konsistensi gaya**: Jika Anda membutuhkan model untuk selalu merespons dalam format atau nada tertentu, Anda dapat menyempurnakan contoh yang benar. format/tone Misalnya, pelatihan pada pasangan respons cepat yang menunjukkan suara atau gaya merek tertentu dapat mengajarkan model dengan gaya itu dalam outputnya. Instruction-following perilaku sering kali awalnya diajarkan melalui SFT pada contoh perilaku asisten yang baik yang dikuratori.

SFT adalah cara paling langsung untuk mengajarkan LLM keterampilan atau perilaku baru ketika Anda dapat menentukan seperti apa perilaku yang benar. Ini memanfaatkan pemahaman bahasa model yang ada dan memfokuskannya pada tugas Anda. Jangan gunakan SFT ketika kesenjangan adalah pengetahuan daripada perilaku; itu tidak akan membuat model mempelajari fakta baru, jargon, atau peristiwa baru-baru ini. Dalam kasus tersebut, lebih suka pra-pelatihan lanjutan pada korpora dalam domain besar atau generasi tambahan pengambilan untuk membawa pengetahuan eksternal pada kesimpulan. Ketika Anda dapat mengukur kualitas tetapi tidak dapat memberi label satu jawaban yang benar, penyempurnaan penguatan dengan imbalan yang dapat diverifikasi atau LLM-as-judge mungkin lebih disukai daripada SFT.

Bergantung pada kompleksitas tugas dan kinerja model Nova tanpa penyetelan, rencanakan ribuan hingga puluhan ribu demonstrasi per tugas, dengan kualitas data, konsistensi, dan keragaman lebih penting daripada volume mentah.

## Kapan menggunakan parameter efisien dan kapan peringkat penuh SFT?
<a name="parameter-efficient-vs-full-rank"></a>

Resep kustomisasi Nova memungkinkan Anda melakukan parameter yang efisien, khususnya LoRa, atau SFT peringkat penuh. Jika Anda menginginkan pembaruan model yang mudah dan hemat biaya, atau memiliki sedikit data, pilih metode hemat parameter sehingga Anda melatih adaptor kecil sambil membiarkan sebagian besar tulang punggung tidak tersentuh (SFT peringkat penuh memperbarui semua parameter model).

## Pencampuran Data untuk SFT
<a name="data-mixing"></a>

Pencampuran data memungkinkan Anda untuk menggabungkan kumpulan data pelatihan khusus Anda dengan data pelatihan milik Nova. Fitur ini tersedia untuk model Nova 1.0 dan Nova 2.0.

**Nova Proprietary Data Type**: Nova mendukung tipe data SFT teks dan multimodal. Ini diatur ke dalam beberapa kategori data yang masing-masing berisi campuran tugas yang relevan untuk kategori yang sesuai.

**Nova Proprietary Data Kategori**: Kumpulan data teks mencakup beberapa kategori termasuk: pengambilan keputusan otonom, penyelesaian tugas, kumpulan data berorientasi tujuan (agen), baik set data eksekusi tugas yang tepat penalaran maupun non-penalaran (penalaran-instruksi-mengikuti, mengikuti instruksi), urutan yang menunjukkan pemikiran strategis dan perincian tugas langkah demi langkah (perencanaan), AI yang bertanggung jawab (rai), konteks panjang, faktualitas, matematika, batang dan banyak lagi. Demikian pula, kumpulan data multimodal mencakup video, tangkapan layar, bagan, dan banyak lagi.

Fitur pencampuran data memungkinkan Anda untuk memadukan sampel pelatihan fine-tuning Anda sendiri dengan sampel dari kumpulan data Nova yang digunakan untuk menyempurnakan Nova. Ini dapat mencegah overfitting pada pelatihan khusus Anda dan “bencana melupakan” kemampuan Nova, atau membantu Anda membangun kemampuan saat berlatih dari pos pemeriksaan baru yang telah dilatih sebelumnya.

Untuk mencampur data Nova, Anda hanya perlu menambahkan blok data\_mixing ke file YAMM resep Anda, di bawah bagian training\_config. Blok pencampuran data teks dan multi-modal memiliki konten yang berbeda, dan blok pencampuran data agak berbeda untuk Nova 1.0 dan Nova 2.0. Silakan lihat resep yang sesuai.

### Model yang Didukung
<a name="supported-models"></a>
+ Nova 1.0 (Mikro, Lite, Pro)
+ Nova 2.0 Lite

### Modalitas yang Didukung
<a name="supported-modality"></a>
+ Teks
+ Multimodal

## Contoh Konfigurasi YAMM
<a name="yaml-configuration-examples"></a>

### Contoh Blok Pencampuran Data untuk Pencampuran Teks Nova 1.0
<a name="nova-1-text-mixing"></a>

```
## Run config
run:
  name: "my-lora-run"             # A descriptive name for your training job
  model_type: "amazon.nova-lite-v1:0:300k"  # Model variant specification, do not change
  model_name_or_path: "nova-lite/prod"      # Base model path, do not change
  replicas: 4                     # Number of compute instances for training, allowed values are 4, 8, 16
  data_s3_path: ""                # Customer data path
  output_s3_path: ""              # Output artifact path, SageMaker HyperPod job-specific configuration - not compatible with standard SageMaker Training jobs

  ## MLFlow configs
  mlflow_tracking_uri: "" # Required for MLFlow
  mlflow_experiment_name: "my-lora-experiment" # Optional for MLFlow. Note: leave this field non-empty
  mlflow_run_name: "my-lora-run" # Optional for MLFlow. Note: leave this field non-empty
  
## Training specific configs
training_config:
  max_length: 32768               # Maximum context window size (tokens).
  global_batch_size: 64           # Global batch size, allowed values are 16, 32, 64

  trainer:
    max_epochs: 2                # Number of training epochs

  model:
    hidden_dropout: 0.0          # Dropout for hidden states, must be between 0.0 and 1.0
    attention_dropout: 0.0       # Dropout for attention weights, must be between 0.0 and 1.0
    ffn_dropout: 0.0             # Dropout for feed-forward networks, must be between 0.0 and 1.0

    optim:
      lr: 1e-5                 # Learning rate
      name: distributed_fused_adam  # Optimizer algorithm, do not change
      adam_w_mode: true        # Enable AdamW mode
      eps: 1e-06               # Epsilon for numerical stability
      weight_decay: 0.0        # L2 regularization strength, must be between 0.0 and 1.0
      betas:                   # Adam optimizer betas, must be between 0.0 and 1.0
        - 0.9
        - 0.999
      sched:
        warmup_steps: 10     # Learning rate warmup steps
        constant_steps: 0    # Steps at constant learning rate
        min_lr: 1e-6         # Minimum learning rate

    peft:
      peft_scheme: "lora"      # Enable LoRA for parameter-efficient fine-tuning
      lora_tuning:
        loraplus_lr_ratio: 8.0  # LoRA+ learning rate scaling factor, must be between 0.0 and 100.0
        alpha: 32            # Scaling factor for LoRA weights. Allowed values are 32, 64, 96, 128, 160 and 192
        adapter_dropout: 0.01  # Regularization for LoRA parameters. Must be between 0.0 and 1.0

data_mixing:
  dataset_catalog: sft_text       # Nova text dataset catalog
  sources:
    customer_data:
      percent: 50                 # Percent of overall mix to draw from customer data
    nova_data:                    # The remainder will be drawn from Nova data. The categories below must add to 100
      agents: 1                   # autonomous decision-making, task completion, goal-oriented behavior in AI systems
      chat: 51                    # Conversational exchanges demonstrating natural dialogue flow
      code: 8                     # Programming examples and solutions spanning multiple languages
      rai: 1                      # ethical AI principles, safety considerations, and responsible technology deployment
      instruction-following: 13   # precise task execution based on varying levels of user prompts and directives
      stem: 6                     # science, technology, engineering, and mathematics content
      planning: 2                 # sequences demonstrating strategic thinking and step-by-step task breakdown
      reasoning: 8                # logical problem-solving and analytical thinking demonstrations
      rag: 1                      # retrieval-augmented generation examples
      translation: 9              # language translation tasks
```

### Contoh Konfigurasi Nova 2.0
<a name="nova-2-configuration"></a>

```
run:
  name: my-lora-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
  replicas: 4
  output_s3_path: s3://my-bucket-name/outputs/
  mlflow_tracking_uri: ""
  mlflow_experiment_name: "my-lora-sft-experiment"
  mlflow_run_name: "my-lora-sft-run"
  
training_config:
  max_steps: 100
  save_steps: 10
  save_top_k: 5
  max_length: 32768
  global_batch_size: 32
  reasoning_enabled: true
  lr_scheduler:
    warmup_steps: 15
    min_lr: 1e-6
  optim_config:
    lr: 1e-5
    weight_decay: 0.0
    adam_beta1: 0.9
    adam_beta2: 0.95
  peft:
    peft_scheme: "lora"
    lora_tuning:
      alpha: 64
      lora_plus_lr_ratio: 64.0
```

### Pencampuran Data Teks Nova 2.0
<a name="nova-2-text-mixing"></a>

```
data_mixing:
  dataset_catalog: sft_1p5_text_chat
  sources:
    customer_data:
      percent: 50
    nova_data:
      agents: 1
      baseline: 10
      chat: 0.5
      code: 10
      factuality: 0.1
      identity: 1
      long-context: 1
      math: 2
      rai: 1
      instruction-following: 13
      stem: 0.5
      planning: 10
      reasoning-chat: 0.5
      reasoning-code: 0.5
      reasoning-factuality: 0.5
      reasoning-instruction-following: 45
      reasoning-math: 0.5
      reasoning-planning: 0.5
      reasoning-rag: 0.4
      reasoning-rai: 0.5
      reasoning-stem: 0.4
      rag: 1
      translation: 0.1
```

### Nova 1.0 Pencampuran Data Multimodal
<a name="nova-1-multimodal-mixing"></a>

```
data_mixing:
  dataset_catalog: sft_mm
  sources:
    customer_data:
      percent: 50
    nova_data:
      agents: 11
      docs: 17
      perception: 10
      rag: 4
      rai: 3
      reasoning: 10
      stem: 17
      text: 10
      video: 18
```

### Pencampuran Data Multimodal Nova 2.0
<a name="nova-2-multimodal-mixing"></a>

```
data_mixing:
  dataset_catalog: sft_1p5_mm_chat
  sources:
    customer_data:
      percent: 50
    nova_data:
      charts: 1
      chat: 38
      code: 20
      docs: 3
      general: 2
      grounding: 1
      rag: 4
      screenshot: 4
      text: 8
      translation: 4
      video: 15
```

## Pos Pemeriksaan Model
<a name="model-checkpoints"></a>

### Pos Pemeriksaan Nova 1.0
<a name="nova-1-checkpoints"></a>
+ **PRE-TRAINED**[`nova-<micro/lite/pro>/pretraining-text-partial`]: Pos pemeriksaan setelah tahap tingkat pembelajaran konstan pra-pelatihan Nova di mana model dilatih pada triliunan token teks. [Hasil Tahap 1]
+ **MID-TRAINED**[`nova-<micro/lite/pro>/pretraining-text-full`]: Text-only pos pemeriksaan setelah semua tahap pra-pelatihan Nova dan pertengahan pelatihan dengan triliunan token teks. Gunakan jika Anda tidak ingin model melihat data multi-modal. [Hasil Tahap 3]
+ **MID-TRAINED**[`nova-<lite/pro>/pretraining-mm-full`]: Pos pemeriksaan setelah semua tahap pra-pelatihan dan pelatihan menengah Nova, termasuk data multi-modal, dengan triliunan token. [Hasil Tahap 3 dengan data multimodal]
+ **FINAL** [`nova-<micro/lite/pro>/prod`]: Pos pemeriksaan akhir yang sepenuhnya selaras yang telah melalui semua langkah pra-pelatihan dan pasca pelatihan. [Hasil Tahap 4]

### Pos Pemeriksaan Nova 2.0
<a name="nova-2-checkpoints"></a>
+ **PRE-TRAINED**[`nova-lite-2/pretraining-text-RD`]: Pos pemeriksaan setelah tingkat pembelajaran konstan dan tahap ramp-down di mana model dilatih pada triliunan token. [Hasil Tahap 2]
+ **MID-TRAINED**[`nova-lite-2/pretraining-text-CE`]: Memungkinkan pelanggan dengan volume menengah data tidak terstruktur untuk memperkenalkan data mereka dengan tingkat pembelajaran yang lebih konservatif daripada pra-pelatihan, menyerap pengetahuan khusus domain sambil menghindari bencana lupa. [Hasil Tahap 3]
+ **FINAL** [`nova-lite-2/prod`]: Pos pemeriksaan akhir yang sepenuhnya selaras yang telah melalui semua langkah pra-pelatihan dan pasca pelatihan. [Hasil Tahap 4]

**Tahapan Pelatihan:**
+ Tahap 1: PT Ckpt, pra-pelatihan awal dengan tingkat pembelajaran konstan
+ Tahap 2: PT Ckpt, tingkat pembelajaran ramp-down
+ Tahap 3: PT Ckpt, pelatihan penyuluhan konteks
+ Tahap 4: pelatihan penyelarasan dan keselamatan mengikuti instruksi

## Pendekatan Pelatihan
<a name="training-approaches"></a>


**Panduan Pemilihan Pendekatan Pelatihan**  

| Tipe data | Volume Data | Melakukan | Dengan Checkpoint | 
| --- | --- | --- | --- | 
| Large-scale data domain mentah tidak terstruktur (dokumen, log, artikel, kode, dll.) | 1T\+Token | Lanjutan Pre-Training | Akhir Tingkat Pembelajaran Konstan (CLR) | 
| Large-scale data domain mentah tidak terstruktur | 100B\+Token | Mid-Training | Akhir dari CLR | 
| Volume data mentah tidak terstruktur yang lebih kecil; Jejak penalaran terstruktur/data CoT | 1B\+Token | Mid-Training | Model dasar Nova | 
| Demonstrasi terstruktur (pasangan input-output berkualitas tinggi, instruksi tugas yang dikuratori, dialog multi-putaran) | 1K\+ Contoh | Diawasi Fine-Tuning (SFT) | Model dasar Nova | 

## Pre-Requisites sebelum Anda mulai
<a name="prerequisites"></a>
+ Kami berasumsi bahwa Anda telah menyiapkan klaster SMHP dengan grup instans terbatas (RIG) yang memiliki kapasitas aktif. [Jika tidak, silakan lihat di sini untuk menyelesaikan pengaturan SMHP Cluster dan RIG Anda [[Docs Link, Workshop Link](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-forge.html)]](https://catalog.us-east-1.prod.workshops.aws/workshops/dcac6f7a-3c61-4978-8344-7535526bf743/en-US)
+ Anda akan memerlukan instans EC2 **p5.48xlarge** untuk menjalankan resep ini. Contoh jumlah minimum yang diperlukan untuk menjalankan resep ini secara efisien adalah sebagai berikut:
  + **Nova Lite 2.0 - 4 p5.48xbesar**
  + **Nova Lite 1.0 — 4 p5.48xbesar**
  + **Nova Mikro 1.0 - 4 p5.48xlarge**
  + **Nova Pro 1.0 — 6 p5.48xbesar**
+ [Instal SageMaker HyperPod CLI Forge Specific menggunakan instruksi yang disediakan di sini](https://catalog.us-east-1.prod.workshops.aws/workshops/dcac6f7a-3c61-4978-8344-7535526bf743/en-US)
+ Konfirmasikan bahwa Anda dapat terhubung ke cluster Anda menggunakan `hyperpod get-clusters`
  + Perhatikan bahwa perintah ini akan mencantumkan semua cluster SMHP di akun Anda
+ Konfirmasikan bahwa pelatihan Anda, dan data validasi opsional, tersedia di bucket S3 yang dapat diakses oleh peran eksekusi klaster SMHP Anda. Untuk persiapan data, lihat bagian selanjutnya.
+ Telah AWS CLI penyiapan selesai. Jika Anda belum menyelesaikan pengaturan, silakan ikuti [panduan](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) di bawah ini.
+ **Verifikasi**: Setelah menyelesaikan penyiapan, konfirmasikan bahwa Anda berhasil menjalankan perintah di bawah ini

  ```
  aws sagemaker describe-cluster --cluster-name <cluster-name> --region <region>
  
  hyperpod connect-cluster --cluster-name cluster-name
  ```

## Pendekatan Sistematis untuk Mencapai SFT yang Sukses
<a name="systematic-approach"></a>
+ **Persiapan Data**: Ikuti pedoman yang ditetapkan untuk membuat, membersihkan, atau memformat ulang kumpulan data ke dalam struktur yang diperlukan. Pastikan bahwa input, output, dan informasi tambahan (seperti jejak penalaran atau metadata) diselaraskan dan diformat dengan benar.
+ **Konfigurasi Pelatihan**: Tentukan bagaimana model akan dilatih. Saat menggunakan Amazon SageMaker HyperPod, konfigurasi ini ditulis dalam file resep YAMM yang mencakup:
  + Jalur sumber data (kumpulan data pelatihan dan validasi)
  + Hiperparameter kunci (jumlah langkah pelatihan, tingkat pembelajaran, ukuran batch)
  + Komponen opsional (parameter pelatihan terdistribusi, dll)
  + Pengaturan Pencampuran Data (mendefinisikan proporsi kategori data pelanggan dan Nova)
+ **Optimalkan Parameter Hiper** SFT: Nilai parameter resep SFT yang kami rekomendasikan adalah titik awal yang bagus dan pilihan yang kuat. Jika Anda ingin mengoptimalkannya lebih lanjut untuk kasus penggunaan Anda, lakukan beberapa SFT berjalan dengan kombinasi parameter yang berbeda dan pilih yang terbaik. Anda dapat memilih kombinasi parameter mengikuti metode Hyper-Parameter Optimasi pilihan Anda. Pendekatan sederhana adalah memvariasikan nilai satu parameter (default\*0.5, default, default\*2) sambil mempertahankan nilai default lainnya untuk parameter lain, ulangi ini untuk setiap parameter yang ingin Anda optimalkan, dan ulangi jika diperlukan. Parameter yang paling relevan untuk LoRa adalah tingkat pembelajaran, alfa (parameter penskalaan), jumlah zaman untuk melatih dan langkah pemanasan; untuk peringkat penuh itu terutama tingkat pembelajaran, jumlah zaman, dan langkah pemanasan.

## Pengurutan Eksperimen dan Pencampuran Data
<a name="experiment-sequencing"></a>
+ Jika Anda hanya memiliki data SFT (train/dev/test) untuk satu set tugas dan hanya peduli tentang kinerja pengujian pada tugas-tugas ini
  + Lakukan SFT tanpa mencampur di pos pemeriksaan [FINAL] Nova. Gunakan parameter hiper SFT default dan optimalkan secara opsional untuk kasus penggunaan Anda. Metrik validasi monitor and/or mengevaluasi pos pemeriksaan menengah untuk kumpulan data yang lebih besar.
+ Jika Anda hanya memiliki data SFT (train/dev/test) untuk serangkaian tugas dan peduli dengan kinerja pengujian pada tugas-tugas ini dan tolok ukur umum dalam domain yang diminati
  + Mulailah dengan melakukan SFT dengan pencampuran data Nova di pos pemeriksaan pra-pelatihan (PRE-TRAINED atau pos MID-TRAINED pemeriksaan, bukan FINAL). Menggunakan pos pemeriksaan perantara memungkinkan model untuk mengintegrasikan data kustom Anda dengan lebih baik dengan data milik Nova sambil mempertahankan kemampuan umum yang kuat.
  + Jalankan pelatihan SFT yang lebih pendek dengan jumlah data Nova yang bervariasi dalam campuran (misalnya, 10%, 25%, 50%, 75%) dan pilihan kategori data Nova yang melengkapi kasus penggunaan Anda (misalnya, pilih instruksi berikut kategori jika Anda peduli dengan instruksi umum mengikuti kemampuan). Pantau metrik validasi dan evaluasi apakah pencampuran membantu kinerja pada tolok ukur umum. Pilih campuran pelatihan dan pos pemeriksaan yang mengarah ke kombinasi kinerja terbaik pada tugas dan kinerja umum Anda. Bergantung pada kasus penggunaan, tugas dan kinerja umum dapat ditingkatkan lebih lanjut menggunakan penyetelan halus penguatan (RFT).

## Siapkan Dataset untuk SFT
<a name="dataset-preparation"></a>

**Nova 1.0**: Persiapan data dijelaskan di [https://docs.aws.amazon.com/sagemaker/latest/dg/nova-fine-tune.html](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-fine-tune.html)

**Nova 2.0**: Gunakan format Converse API untuk Nova 1.0 [https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference-call.html](https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference-call.html). Format data Nova 2.0 dapat berisi bidang penalaran tambahan: [https://docs.aws.amazon.com/bedrock/latest/APIReference/API\_runtime\_ReasoningContentBlock.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ReasoningContentBlock.html)

Konten penalaran menangkap langkah-langkah pemikiran menengah model sebelum menghasilkan jawaban akhir. Pada `assistant` gilirannya, gunakan `reasoningContent` bidang untuk memasukkan jejak penalaran. Gunakan teks biasa untuk penalaran konten, hindari tag markup seperti `<thinking>` dan `</thinking>` kecuali secara khusus diperlukan oleh tugas Anda, dan pastikan konten penalaran jelas dan relevan dengan proses pemecahan masalah.

## Toolkit AI yang Bertanggung Jawab dan Moderasi Konten
<a name="responsible-ai"></a>

**Pengaturan moderasi konten**: Pelanggan Nova Forge memiliki akses ke Pengaturan Moderasi Konten yang Dapat Disesuaikan (CCMS) untuk model Nova Lite 1.0 dan Pro 1.0. CCMS memungkinkan Anda menyesuaikan kontrol moderasi konten agar sesuai dengan kebutuhan bisnis spesifik Anda sambil mempertahankan perlindungan AI yang bertanggung jawab. Untuk menentukan apakah kasus penggunaan bisnis Anda memenuhi syarat untuk CCM, hubungi manajer akun Amazon Web Services Anda.

Nova Forge menyediakan Toolkit AI Bertanggung Jawab yang mencakup data pelatihan, tolok ukur evaluasi, dan kontrol runtime untuk membantu Anda menyelaraskan model Anda dengan pedoman AI yang bertanggung jawab dari Nova.

**Data pelatihan**: Kategori “RAI” dalam pencampuran data berisi kasus dan skenario yang menekankan prinsip AI yang bertanggung jawab, pertimbangan keselamatan, dan penyebaran teknologi yang bertanggung jawab. Gunakan ini untuk menyelaraskan model Anda secara bertanggung jawab selama pra-pelatihan lanjutan.

**Evaluasi**: Tugas benchmark tersedia untuk menguji kemampuan model Anda dalam mendeteksi dan menolak konten yang tidak pantas, berbahaya, atau salah. Gunakan evaluasi ini untuk mengukur perbedaan antara kinerja model dasar dan kinerja model kustom Anda.

**Kontrol runtime**: Secara default, runtime Nova mengontrol respons model moderat selama inferensi. Untuk mengubah kontrol ini untuk kasus bisnis spesifik Anda, minta Pengaturan Moderasi Konten yang Dapat Disesuaikan (CCMS) dengan menghubungi manajer akun Amazon Web Services Anda.

### Tanggung Jawab Bersama untuk Keselamatan
<a name="shared-responsibility"></a>

Keselamatan adalah tanggung jawab bersama antara Amazon Web Services dan pelanggan kami. Mengubah model dasar atau menggunakan pra-pelatihan lanjutan untuk meningkatkan kinerja pada kasus penggunaan tertentu dapat memengaruhi keselamatan, keadilan, dan properti lain dari model baru.

Kami menggunakan metode adaptasi yang kuat untuk meminimalkan perubahan pada keselamatan, keadilan, dan perlindungan lain yang dibangun ke dalam model dasar kami sambil meminimalkan dampak pada kinerja model untuk tugas-tugas yang tidak disesuaikan untuk model.

Anda bertanggung jawab untuk:
+ End-to-end pengujian aplikasi mereka pada kumpulan data yang mewakili kasus penggunaannya
+ Memutuskan apakah hasil tes memenuhi harapan spesifik mereka tentang keamanan, keadilan, dan properti lainnya, serta efektivitas keseluruhan

Untuk informasi selengkapnya, lihat Panduan Penggunaan AI yang Bertanggung Jawab Amazon Web Services, Kebijakan AI Bertanggung Jawab Amazon Web Services, Kebijakan Penggunaan yang AWS Dapat Diterima, dan Ketentuan AWS Layanan untuk layanan yang Anda rencanakan untuk digunakan.

### Pengaturan Moderasi Konten yang Dapat Disesuaikan (CCMS)
<a name="ccms"></a>

CCMS memungkinkan Anda untuk menyesuaikan kontrol yang relevan dengan kebutuhan bisnis Anda sambil mempertahankan kontrol penting dan tidak dapat dikonfigurasi yang memastikan penggunaan AI yang bertanggung jawab.

Pengaturan ini memungkinkan pembuatan konten melalui tiga konfigurasi yang tersedia:
+ Keamanan saja
+ Keamanan, konten sensitif, dan keadilan digabungkan
+ Semua kategori digabungkan

Empat kategori moderasi konten adalah:

1. **Keselamatan** — Meliputi aktivitas berbahaya, senjata, dan zat yang dikendalikan

1. **Konten sensitif** - Termasuk kata-kata kotor, ketelanjangan, dan intimidasi

1. **Keadilan** — Mengatasi bias dan pertimbangan budaya

1. **Keamanan** — Melibatkan kejahatan dunia maya, malware, dan konten berbahaya

Terlepas dari konfigurasi CCMS Anda, Amazon Nova memberlakukan kontrol penting yang tidak dapat dikonfigurasi untuk memastikan penggunaan AI yang bertanggung jawab, seperti kontrol untuk mencegah bahaya pada anak-anak dan menjaga privasi.

#### Rekomendasi untuk Menggunakan CCMS
<a name="ccms-recommendations"></a>

Saat menggunakan CCMS, sebaiknya gunakan Continuous Pre Training (CPT) dan mulai dari pos pemeriksaan penyelarasan pra-RAI (PRE-TRAINING-Early, PRE-TRAINING-Mid, atau PRE-TRAINING-Final) daripada pos pemeriksaan. GA/FINAL Pos pemeriksaan ini belum menjalani pelatihan keselamatan atau diarahkan ke perilaku RAI tertentu, memungkinkan Anda untuk menyesuaikannya secara lebih efisien dengan persyaratan moderasi konten Anda.

**Tip**: Saat menggunakan CCMS dengan pencampuran data, pertimbangkan untuk menyesuaikan persentase kategori “rai” dalam konfigurasi nova\_data Anda agar selaras dengan persyaratan moderasi konten spesifik Anda.

#### Ketersediaan
<a name="ccms-availability"></a>

CCMS saat ini tersedia untuk pelanggan yang disetujui menggunakan:
+ Model Nova Lite 1.0 dan Pro 1.0
+ Inferensi Batuan Dasar On-Demand Amazon
+ Wilayah us-east-1 (Virginia N.)

Untuk mengaktifkan CCM untuk model Forge Anda, hubungi manajer akun Amazon Web Services Anda.

## Metode Evaluasi
<a name="evaluation"></a>

### Prasyarat
<a name="evaluation-prerequisites"></a>
+ Checkpoint S3 URI dari `manifest.json` file pekerjaan pelatihan Anda (untuk model terlatih)
+ Dataset evaluasi diunggah ke S3 dalam format yang benar
+ Output jalur S3 untuk hasil evaluasi

**Tolok ukur di luar kotak: Gunakan tolok** ukur di luar kotak untuk memvalidasi kinerja pada tugas umum. Untuk lebih jelasnya, periksa di sini: [https://docs.aws.amazon.com/sagemaker/latest/dg/nova-hp-evaluate.html](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-hp-evaluate.html)

### Bawa Data Anda Sendiri
<a name="bring-your-own-data"></a>

Anda juga dapat menyediakan data kustom Anda dengan memformatnya dalam format di bawah ini dan kemudian menggunakan wadah yang disebutkan di bawah ini untuk mendapatkan hasil inferensi bersama dengan probabilitas log untuk kalibrasi jika diperlukan.

Buat jsonl per tugas dengan struktur berikut:

```
{
  "metadata": "{key:4, category:'apple'}",
  "system": "arithmetic-patterns, please answer the following with no other words: ",
  "query": "What is the next number in this series? 1, 2, 4, 8, 16, ?",
  "response": "32"
}
```

Output yang dihasilkan selama fase inferensi pekerjaan evaluasi akan memiliki struktur sebagai berikut:

```
{
  "prompt": "[{'role': 'system', 'content': 'arithmetic-patterns, please answer the following with no other words: '}, {'role': 'user', 'content': 'What is the next number in this series? 1, 2, 4, 8, 16, ?'}]",
  "inference": "['32']",
  "gold": "32",
  "metadata": "{key:4, category:'apple'}"
}
```

**Deskripsi bidang:**
+ `prompt`: Input diformat dikirim ke model
+ `inference`: Respons yang dihasilkan model
+ `gold`: Diharapkan jawaban yang benar dari dataset input, bidang respons dari input
+ `metadata`: Metadata opsional dilewatkan dari input

### Siapkan Evaluasi Config
<a name="evaluation-config"></a>

Perintah untuk meluncurkan pekerjaan evaluasi. Gunakan `"--override-parameters"` untuk memodifikasi entri apa pun dari resep.

```
hyperpod start-job -n kubeflow \
  --recipe evaluation/nova/nova_micro_p5_48xl_bring_your_own_dataset_eval \
  --override-parameters '{
    "instance_type": "p5.48xlarge",
    "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest",
    "recipes.run.name": "<your-eval-job-name>",
    "recipes.run.model_name_or_path": "<checkpoint-s3-uri>",
    "recipes.run.output_s3_path": "s3://<your-bucket>/eval-results/",
    "recipes.run.data_s3_path": "s3://<your-bucket>/eval-data.jsonl"
  }'
```

## Praktik Terbaik
<a name="best-practices"></a>
+ **Prioritaskan kualitas data daripada volume**: High-quality, data pelatihan yang beragam, dan representatif lebih berharga daripada data berkualitas rendah dalam jumlah besar.
+ **Sertakan kategori penalasan-instruksi-berikut: Saat menggunakan pencampuran data, sertakan kategori** “penalaran-instruksi-mengikuti” untuk mempertahankan kinerja generik yang kuat di seluruh tugas.
+ **Gunakan tingkat pembelajaran default**: Mulailah dengan tingkat pembelajaran default (1e-5 untuk LoRa, 5e-6 untuk SFT peringkat penuh) dan sesuaikan hanya jika diperlukan berdasarkan metrik validasi.
+ **Pencampuran data Balance Nova**: Campurkan data Nova maksimum 50% untuk keseimbangan kinerja latensi yang optimal. Persentase yang lebih tinggi dapat meningkatkan kemampuan umum tetapi dapat meningkatkan waktu pelatihan.
+ **Monitor metrik validasi**: Evaluasi pos pemeriksaan perantara secara teratur selama pelatihan untuk mendeteksi overfitting atau penurunan kinerja lebih awal.
+ **Uji pada kumpulan data representatif: Pastikan kumpulan** data evaluasi Anda secara akurat mewakili kasus penggunaan produksi Anda untuk penilaian kinerja yang bermakna.

## Siapkan Training Job Config
<a name="prepare-training-job-config"></a>

### Parameter Hiper
<a name="hyper-parameters"></a>

Set lengkap parameter hiper selain pencampuran data:

```
## Run config
run:
  name: my-lora-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  # 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: s3://my-bucket-name/outputs/               # 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
  
  ## MLFlow configs
  mlflow_tracking_uri: "" # Required for MLFlow
  mlflow_experiment_name: "my-lora-sft-experiment" # Optional for MLFlow. Note: leave this field non-empty
  mlflow_run_name: "my-lora-sft-run" # Optional for MLFlow. Note: leave this field non-empty
  
training_config:
  max_steps: 100                   # Maximum training steps. Minimal is 4.
  save_steps: 10 # This parameter suggests after how many training steps the checkpoints will be saved. Should be less than or equal to max_steps(please override this value with a numerical value equal or less than max_steps value; min: 4)
  save_top_k: 5                    # 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            # Golbal 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     # LoRA+ learning rate scaling factor (0.0–100.0)
```

Parameter yang paling relevan untuk LoRa adalah tingkat pembelajaran, alfa (parameter penskalaan), jumlah zaman untuk melatih dan langkah pemanasan; untuk peringkat penuh itu terutama tingkat pembelajaran, jumlah zaman, dan langkah pemanasan. Resep sudah diisi sebelumnya dengan default yang direkomendasikan.

## Mengatur Blok Pencampuran Data
<a name="set-up-data-mixing-block"></a>

Tambahkan bagian data\_mixing ke resep Anda dengan distribusi persentase yang sesuai di seluruh kategori kumpulan data.

Di bawah ini kami menjelaskan setiap kategori data Nova yang tersedia.

### Konfigurasi Nova 1.0 dengan pencampuran Data
<a name="nova-1-config-data-mixing"></a>

```
data_mixing:
  dataset_catalog: sft_text       # Nova text dataset catalog
  sources:
    customer_data:
      percent: 50                 # Percent of overall mix to draw from customer data
    nova_data:                    # The remainder will be drawn from Nova data. The categories below must add to 100
      agents: 1                   # autonomous decision-making, task completion, goal-oriented behavior in AI systems
      chat: 51                    # Conversational exchanges demonstrating natural dialogue flow
      code: 8                     # Programming examples and solutions spanning multiple languages
      rai: 1                      # ethical AI principles, safety considerations, and responsible technology deployment
      instruction-following: 13   # precise task execution based on varying levels of user prompts and directives
      stem: 6                     # Technical content covering science, technology, engineering, and mathematics
      planning: 2                 # Sequences demonstrating strategic thinking and step-by-step task breakdown
      reasoning: 8                # Logical deduction, critical thinking, and analytical problem-solving scenarios
      rag: 1                      # combining retrieved external knowledge with generated responses
      translation: 9              # Multi-language content pairs showing accurate translation
```

Apa arti kategori ini?


**Nova 1.0 Kategori Data Teks**  

| Nama Kategori | Detail info | 
| --- | --- | 
| pelaku | Data pelatihan berfokus pada pengambilan keputusan otonom, penyelesaian tugas, dan perilaku berorientasi pada tujuan dalam sistem AI | 
| ngobrol | Pertukaran percakapan yang menunjukkan aliran dialog alami, pemeliharaan konteks, dan interaksi sosial yang sesuai | 
| code | Contoh dan solusi pemrograman yang mencakup berbagai bahasa, skenario debugging, dan praktik terbaik pengembangan perangkat lunak | 
| rai | Kasus dan skenario yang menekankan prinsip AI etis, pertimbangan keselamatan, dan penerapan teknologi yang bertanggung jawab | 
| instruksi-mengikuti | Contoh pelaksanaan tugas yang tepat berdasarkan berbagai tingkat permintaan dan arahan pengguna | 
| asal | Konten teknis yang mencakup sains, teknologi, teknik, dan matematika, termasuk pemecahan masalah dan konsep teoritis | 
| perencanaan | Urutan yang menunjukkan pemikiran strategis, pemecahan tugas langkah demi langkah, dan alokasi sumber daya yang efisien | 
| pemikiran | Deduksi logis, pemikiran kritis, dan skenario pemecahan masalah analitis dengan rantai penalaran yang jelas | 
| lap | Contoh menggabungkan pengetahuan eksternal yang diambil secara efektif dengan tanggapan yang dihasilkan untuk memberikan informasi kontekstual yang akurat | 
| terjemahan | Multi-language pasangan konten yang menunjukkan terjemahan yang akurat sambil mempertahankan konteks, nada, dan nuansa budaya | 

### Pencampuran Data Multimodal (Nova 1.0)
<a name="nova-1-mm-data-mixing"></a>

```
data_mixing:
  dataset_catalog: sft_mm        # Nova multi-modal dataset catalog
  sources:
    customer_data:
      percent: 50                 # Percent of overall mix to draw from customer data
    nova_data:                    # The remainder will be drawn from Nova data. The categories below must add to 100
      agents: 11                  # Combining visual and textual inputs
      docs: 17                    # Document-centric data combining text, images, layouts, and formatting
      perception: 10              # Visual-linguistic pairs t
      rag: 4                      # Combining retrieved external knowledge with generated responses
      rai: 3                      # Ethical AI principles, safety considerations, and responsible technology deployment
      reasoning: 10               # Logical analysis, problem-solving, and drawing conclusions
      stem: 17                    # Technical content pairing visual elements (diagrams, charts, equations) with text
      text: 10                    # A balanced pool of contextual text data create from the text-only SFT datasets
      video: 18                   # Video datasets
```

Apa arti kategori ini?


**Nova 1.0 Multimodal Data Kategori**  

| Nama Kategori | Detail info | 
| --- | --- | 
| pelaku | Pasangan pelatihan menggabungkan input visual dan tekstual yang menunjukkan bagaimana sistem AI harus menafsirkan, bertindak atas, dan berinteraksi dengan informasi lingkungan multi-sensorik | 
| docs | Document-centric data yang menggabungkan teks, gambar, tata letak, dan pemformatan untuk melatih model dalam memahami dan memproses berbagai jenis dan struktur dokumen untuk membantu konsep seperti pengenalan konten PDF | 
| persepsi | Visual-linguistic memasangkan model pengajaran untuk secara akurat menggambarkan, menafsirkan, dan bernalar tentang gambar, video, dan input visual lainnya dalam bahasa alami | 
| lap | Contoh pengambilan multimodal yang menunjukkan cara menggabungkan dan mereferensikan pengetahuan eksternal visual dan tekstual secara efektif untuk menghasilkan respons kontekstual yang akurat | 
| pemikiran | Kasus menggabungkan elemen visual dan tekstual yang menunjukkan analisis logis, pemecahan masalah, dan menarik kesimpulan di berbagai modalitas | 
| asal | Konten teknis memasangkan elemen visual (diagram, bagan, persamaan) dengan teks untuk mengajarkan konsep ilmiah, matematika, dan teknis serta pemecahan masalah | 
| text | Kumpulan data teks kontekstual yang seimbang dibuat dari kategori dataset SFT Nova khusus teks untuk memberikan kemampuan generalis | 
| video | Motion-based konten visual berfokus pada pemahaman temporal dan pemahaman visual-naratif berurutan | 

### Konfigurasi Nova 2.0 dengan pencampuran data
<a name="nova-2-config-data-mixing"></a>

```
data_mixing:
  dataset_catalog: sft_1p5_text_chat       # Nova text dataset catalog
  sources:
    customer_data:
      percent: 50                 # Percent of overall mix to draw from customer data
    nova_data:                    # The remainder will be drawn from Nova data. The categories below must add to 100
      agents: 1                   # autonomous decision-making, task completion, goal-oriented behavior in AI systems
      baseline: 10                 # [New in Nova 1.5]
      chat: 0.5                    # Conversational exchanges demonstrating natural dialogue flow
      code: 10                     # Programming examples and solutions spanning multiple languages
      factuality: 0.1               # [New in Nova 1.5]
      identity: 1                 # [New in Nova 1.5]
      long-context: 1             # [New in Nova 1.5]
      math: 2                     # [New in Nova 1.5]
      rai: 1                      # ethical AI principles, safety considerations, and responsible technology deployment
      instruction-following: 13   # precise task execution based on varying levels of user prompts and directives
      stem: 0.5                     # Technical content covering science, technology, engineering, and mathematics
      planning: 10                 # Sequences demonstrating strategic thinking and step-by-step task breakdown
      reasoning-chat: 0.5
      reasoning-code: 0.5
      reasoning-factuality: 0.5
      reasoning-instruction-following: 45
      reasoning-math: 0.5
      reasoning-planning: 0.5
      reasoning-rag: 0.4
      reasoning-rai: 0.5
      reasoning-stem: 0.4
      rag: 1                      # combining retrieved external knowledge with generated responses
      translation: 0.1
```

Apa arti kategori ini?


**Kategori Data Teks Nova 2.0**  

| Nama Kategori | Detail info | 
| --- | --- | 
| pelaku | Data pelatihan berfokus pada pengambilan keputusan otonom, penyelesaian tugas, dan perilaku berorientasi pada tujuan dalam sistem AI | 
| garis dasar | Data bahasa fundamental berfokus pada pemahaman umum, komunikasi dasar, dan kemampuan linguistik inti | 
| ngobrol | Pertukaran percakapan yang menunjukkan aliran dialog alami, pemeliharaan konteks, dan interaksi sosial yang sesuai | 
| code | Pemrograman kode sumber, dokumentasi, dan diskusi teknis dari berbagai bahasa dan platform pemrograman. | 
| faktualitas | Bahan referensi dan informasi terverifikasi berfokus pada akurasi, validasi sumber, dan penilaian kebenaran | 
| identitas | Kerangka kepribadian dan pola perilaku berfokus pada sifat karakter, nilai, dan gaya interaksi yang konsisten | 
| konteks panjang | Teks yang diperluas dan narasi kompleks difokuskan pada pemeliharaan koherensi dan relevansi di seluruh pertukaran yang panjang | 
| matematika | Konten matematika termasuk buku teks, masalah, solusi, dan diskusi matematika. | 
| rai | Kasus dan skenario yang menekankan prinsip AI etis, pertimbangan keselamatan, dan penerapan teknologi yang bertanggung jawab | 
| instruksi-mengikuti | Contoh pelaksanaan tugas yang tepat berdasarkan berbagai tingkat permintaan dan arahan pengguna | 
| asal | Konten teknis yang mencakup sains, teknologi, teknik, dan matematika, termasuk pemecahan masalah dan konsep teoritis | 
| perencanaan | Urutan yang menunjukkan pemikiran strategis, pemecahan tugas langkah demi langkah, dan alokasi sumber daya yang efisien | 
| penalaran-obrolan | Skenario dialog analitis berfokus pada diskusi logis dan alur percakapan terstruktur | 
| kode penalaran | Tantangan pemrograman dan masalah algoritmik difokuskan pada pengembangan solusi sistematis | 
| penalaran-faktualitas | Skenario evaluasi informasi berfokus pada penilaian kritis dan proses verifikasi | 
| penalasan-instruksi-mengikuti | Analisis tugas kompleks berfokus pada interpretasi sistematis dan eksekusi metodis | 
| penalaran-matematika | Skenario pemecahan masalah matematika berfokus pada perkembangan logis dan strategi solusi | 
| penaakalan-perencanaan | Skenario pengambilan keputusan strategis berfokus pada pendekatan sistematis untuk pencapaian tujuan | 
| penalaran-kain | Skenario pengambilan informasi dan sintesis berfokus pada pemahaman kontekstual dan aplikasi yang relevan | 
| penalaran-rai | Skenario pengambilan keputusan etis berfokus pada evaluasi sistematis keamanan dan keadilan AI | 
| batang penalaran | Skenario pemecahan masalah ilmiah yang berfokus pada analisis metodis dan pengembangan solusi | 
| lap | Contoh menggabungkan pengetahuan eksternal yang diambil secara efektif dengan tanggapan yang dihasilkan untuk memberikan informasi kontekstual yang akurat | 
| terjemahan | Multi-language pasangan konten yang menunjukkan terjemahan yang akurat sambil mempertahankan konteks, nada, dan nuansa budaya | 

### Pencampuran Data Multimodal (Nova 2.0)
<a name="nova-2-mm-data-mixing"></a>

```
data_mixing:
  dataset_catalog: sft_1p5_mm_chat       # Nova text dataset catalog
  sources:
    customer_data:
      percent: 50                 # Percent of overall mix to draw from customer data
    nova_data:                    # The remainder will be drawn from Nova data. The categories below must add to 100
      charts: 1
      chat: 38
      code: 20
      docs: 3
      general: 2
      grounding: 1
      rag: 4
      screenshot: 4
      text: 8
      translation: 4
      video: 15
```

Catatan: Nova 2.0 menyertakan dukungan kategori data video yang tidak tersedia di Nova 1.0.

Apa arti kategori ini?


**Kategori Data Multimodal Nova 2.0**  

| Nama Kategori | Detail info | 
| --- | --- | 
| grafik | Representasi visual dan deskripsi grafik, diagram lingkaran, diagram batang, plot garis, dan visualisasi statistik lainnya untuk membantu model memahami dan mengkomunikasikan informasi kuantitatif secara efektif | 
| ngobrol | Data percakapan dipasangkan dengan elemen visual yang berfokus pada pemahaman dialog kontekstual dan interaksi berbasis gambar | 
| code | Antarmuka pemrograman dan lingkungan pengembangan yang berfokus pada interpretasi kode visual, tangkapan layar IDE, dan diagram teknis | 
| docs | Document-centric data yang menggabungkan teks, gambar, tata letak, dan pemformatan untuk melatih model dalam memahami dan memproses berbagai jenis dan struktur dokumen untuk membantu konsep seperti pengenalan konten PDF | 
| umum | Beragam konten visual-tekstual berfokus pada pemahaman luas gambar, grafik, dan teks deskriptif yang menyertainya | 
| mendasari | Bahan referensi visual dan citra berlabel berfokus pada menghubungkan konsep bahasa dengan representasi visual dunia nyata | 
| lap | Contoh pengambilan multimodal yang menunjukkan cara menggabungkan dan mereferensikan pengetahuan eksternal visual dan tekstual secara efektif untuk menghasilkan respons kontekstual yang akurat | 
| tangkapan layar | Antarmuka aplikasi menangkap dan gambar tampilan digital yang berfokus pada pemahaman antarmuka perangkat lunak dan interaksi digital | 
| text | Kumpulan data teks kontekstual yang seimbang dibuat dari kategori dataset SFT Nova khusus teks untuk memberikan kemampuan generalis | 
| terjemahan | Cross-language konten visual berfokus pada interpretasi multibahasa teks dalam gambar dan elemen visual budaya | 
| video | Motion-based konten visual berfokus pada pemahaman temporal dan pemahaman visual-naratif berurutan | 

## Cara Meluncurkan Pekerjaan
<a name="how-to-launch-job"></a>

Anda juga dapat merujuk ke README, jika Anda hanya perlu mendapatkan detail penting untuk memulai lari SFT pertama.

Informasi Kontainer:


**Informasi Kontainer dan Perintah Peluncuran**  

| Model | Teknik | Subkategori | URI citra | Perintah Peluncur Hyperpod | 
| --- | --- | --- | --- | --- | 
| Nova 1.0 | Fine-tuning | SFT/PEFT | 708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-fine-tune-repo: SM-HP-SFT-latest | hyperpod start-job\\ -n kubeflow\\ --recipe fine-tuning/nova/nova\_1\_0/nova\_micro/SFT/nova\_micro\_1\_0\_p5\_gpu\_sft\\ --override-parameters '{“instance\_type”: “ml.p5.48xlarge”, “container”: “708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-fine-tune-repo: "} 'SM-HP-SFT-latest | 
| Nova 1.0 | Fine-tuning | SFT dengan Pencampuran Data | 708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-fine-tune-repo: HP-SFT-DATAMIX | hyperpod start-job\\ -n kubeflow\\ --recipe fine-tuning/nova/forge/nova\_1\_0/nova\_micro/SFT/nova\_micro\_1\_0\_p5\_gpu\_sft\_text\_with\_datamix\\ --override-parameters '{“instance\_type”: “ml.p5.48xlarge”, “wadah”: “708977205387.dkr.ecr.us-east-amazoncakar. com/nova-fine-tune-repo: "} 'HP-SFT-DATAMIX | 
| Nova 2.0 | Fine-tuning | Teks SFT (dengan atau tanpa pencampuran data) | 708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-fine-tune-repo: SM-HP-SFT-V2-latest | hyperpod start-job\\ -n kubeflow\\ --recipe fine-tuning/nova/forge/nova\_2\_0/nova\_lite/SFT/nova\_lite\_2\_0\_p5\_gpu\_sft\_text\_with\_datamix\\ --override-parameters '{“instance\_type”: “ml.p5.48xlarge”, “wadah”: “708977205387.dkr.ecr.us-east-1.amazt-onaws. com/nova-fine-tune-repo: "} 'SM-HP-SFT-V2-latest | 
| Nova 2.0 | Fine-tuning | SFT MM (dengan atau tanpa pencampuran data) | 708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-fine-tune-repo: SM-HP-SFT-V2-latest | hyperpod start-job\\ -n kubeflow\\ --recipe fine-tuning/nova/forge/nova\_2\_0/nova\_lite/SFT/nova\_lite\_2\_0\_p5\_gpu\_sft\_mm\_with\_datamix\\ --override-parameters '{“instance\_type”: “ml.p5.48xlarge”, “wadah”: “708977205387.dkr.ecr.us-east-1.amazt-onaws. com/nova-fine-tune-repo: "} 'SM-HP-SFT-V2-latest | 

Setelah Anda semua setup, mulai dari root repositori sagemaker-hyperpod-cli, navigasikan ke folder resep nova sft default
+ cd//src/hyperpod\_clisagemaker\_hyperpod\_recipes/recipes\_collection/recipes/fine- /tempatuning/nova/
+ Di sini Anda dapat memilih apakah Anda ingin menjalankan resep nova 1 atau nova 2 berdasarkan pilihan model dasar.

Untuk Nova 1.0 sft:
+ Jika Anda ingin menggunakan pekerjaan sft biasa, Anda harus dapat melihat satu resep di bawah folder ini
  + cd///recipes/fine- src/hyperpod\_cli sagemaker\_hyperpod\_recipes/recipes\_collectiontuning/nova\_1\_0/nova\_lite/SFT dan kemudian Anda harus dapat melihat satu resep di bawah folder ini bernama nova\_lite\_1\_0\_p5x8\_gpu\_sft.yaml
+ Jika Anda ingin menggunakan datamixing sft Job, Anda dapat menavigasi ke folder resep sft Forge
  + cd///recipes/fine-src/hyperpod\_cli/sagemaker\_hyperpod\_recipes/recipes\_collectiontuning/novaforge/nova\_1\_0/nova\_lite/SFT dan Anda harus dapat melihat satu resep di bawah folder ini bernama: nova\_lite\_1\_0\_p5x8\_gpu\_sft\_with\_datamix.yaml
+ Edit bagian dalam resep yang diperlukan oleh pekerjaan seperti name, data\_s3\_path, validation\_s3\_path, output\_s3\_path, dan max\_steps.Karena kami melakukan sft, gagasan epoch tidak berlaku di sini.

Untuk Nova 2.0 sft:
+ Jika Anda ingin menggunakan pekerjaan sft biasa, Anda harus dapat melihat satu resep di bawah folder ini
  + cd///recipes/fine- src/hyperpod\_cli sagemaker\_hyperpod\_recipes/recipes\_collectiontuning/nova\_2\_0/nova\_lite/SFT dan kemudian Anda harus dapat melihat satu resep di bawah folder ini bernama nova\_lite\_2\_0\_p5x8\_gpu\_sft.yaml
+ Jika Anda ingin menggunakan datamixing sft Job, Anda dapat menavigasi ke folder resep sft Forge
  + cd///recipes/fine-src/hyperpod\_cli/sagemaker\_hyperpod\_recipes/recipes\_collectiontuning/novaforge/nova\_2\_0/nova\_lite/SFT dan Anda harus dapat melihat satu resep di bawah folder ini bernama: nova\_lite\_2\_0\_p5x8\_gpu\_sft\_with\_datamix.yaml
+ Edit bagian dalam resep yang diperlukan oleh pekerjaan seperti name, data\_s3\_path, validation\_s3\_path, output\_s3\_path, dan max\_steps. Karena kami melakukan sft, gagasan zaman tidak berlaku di sini.

Konfigurasi pencampuran data akan terlihat sama, tetapi dengan bagian pencampuran data tambahan di bagian bawah yang mirip dengan ini

```
data_mixing:
  dataset_catalog: sft_text_lite
  sources:
    nova_data:   # percent inputs for Nova data must sum to 100%; use 0% if you want to exclude a data grouping
      agents: 20
      business-and-finance: 20
      scientific: 20
      code: 20
      factual-and-news: 20
      longform-text: 0
      health-and-medicine: 0
      humanities-and-education: 0
      legal: 0
      math: 0
      additional-languages: 0
      social-and-personal-interest: 0
      entertainment: 0
      reasoning: 0
      other: 0
      tables: 0
    customer_data: # percent input of customer data. 100 = use only customer data, 0 = use only the nova_data mix above
      percent: 25
```

Ada dua kategori data tingkat atas di sini:
+ nova\_data: Ini adalah pencampuran data aktual dan dibagi lagi menjadi lebih banyak kategori. Sangat penting bahwa mereka berjumlah hingga 100%
  + Rincian lengkap dari kategori ini termasuk jumlah token dapat ditemukan di bawah
+ customer\_data: Ini adalah data pelatihan Anda yang dirujuk dalam kunci data\_s3\_path di bagian atas yaml Anda. Persentase yang diberikan di sini menentukan berapa persentase yang dihasilkan untuk nova\_data. Misalnya, dalam pilihan persen di atas, selama pelatihan kami akan menggunakan 25% customer\_data dan 75% nova\_data dimana 15% akan menjadi agen, 15% akan menjadi bisnis-dan-keuangan, 15% akan ilmiah, 15% akan menjadi kode, dan 15% akan faktual-dan-berita

Tip: Jalankan pip install -e. sekali lagi dan Anda siap untuk mengirimkan pekerjaan Anda\!

Kami akan mengesampingkan beberapa parameter di sini untuk menggunakan pencampuran data:

```
hyperpod start-job \
 -n kubeflow \
 --recipe fine-tuning/nova/forge/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5_gpu_sft_text_with_datamix \
 --override-parameters '{
 "instance_type": "ml.p5.48xlarge",
 "recipes.run.name": "nova-sft-datamixing",
 "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-latest",
 "recipes.run.data_s3_path": "s3://sft-data/sft_train_data.jsonl",
 "recipes.run.validation_data_s3_path": "s3://sft-data/sft_val_data.jsonl",
 "recipes.run.output_s3_path": "s3://sft-data/output/"
 }'
```

Output Anda harus berisi nama pekerjaan sebagai berikut:

```
⚡ MY Desktop ⚡ % hyperpod start-job \
 -n kubeflow \
 --recipe fine-tuning/nova/forge/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5_gpu_sft_text_with_datamix \
 --override-parameters '{
 "instance_type": "ml.p5.48xlarge",
 "recipes.run.name": "nova-sft-datamixing",
 "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-latest",
 "recipes.run.data_s3_path": "s3://sft-data/sft_train_data.jsonl",
 "recipes.run.validation_data_s3_path": "s3://sft-data/sft_val_data.jsonl",
 "recipes.run.output_s3_path": "s3://sft-data/output/"
 }'
```

Output akan seperti ini:

```
Final command: python3 /local/home/my/Downloads/sagemaker-hyperpod-cli/src/hyperpod_cli/sagemaker_hyperpod_recipes/main.py recipes=fine-tuning/nova/forge/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5_gpu_sft_text_with_datamix cluster_type=k8s cluster=k8s base_results_dir=/local/home/my/Downloads/sagemaker-hyperpod-cli/results cluster.pullPolicy="IfNotPresent" cluster.restartPolicy="OnFailure" cluster.namespace="kubeflow" instance_type="ml.p5.48xlarge" container="708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-latest"
Prepared output directory at /local/home/my/Downloads/sagemaker-hyperpod-cli/results/my-sft-run-wzdyn/k8s_templates
Found credentials in shared credentials file: ~/.aws/credentials
Helm script created at /local/home/my/Downloads/sagemaker-hyperpod-cli/results/my-sft-run-wzdyn/my-sft-run-wzdyn_launch.sh
Running Helm script: /local/home/my/Downloads/sagemaker-hyperpod-cli/results/my-sft-run-wzdyn/my-sft-run-wzdyn_launch.sh

NAME: my-sft-run-wzdyn
LAST DEPLOYED: Tue Aug 26 16:21:06 2025
NAMESPACE: kubeflow
STATUS: deployed
REVISION: 1
TEST SUITE: None
Launcher successfully generated: /local/home/my/Downloads/sagemaker-hyperpod-cli/src/hyperpod_cli/sagemaker_hyperpod_recipes/launcher/nova/k8s_templates/SFT

{
 "Console URL": "https://us-east-1.console.aws.amazon.com/sagemaker/home?region=us-east-1#/cluster-management/hyperpod-eks-ga-0703"
}
```

Anda dapat melihat status pekerjaan Anda menggunakan hyperpod list-pods -n kubeflow --job-name my-sft-run-wzdyn

```
hyperpod list-pods -n kubeflow --job-name my-sft-run-wzdyn 
{
 "pods": [
  {
   "PodName": "my-sft-run-wzdyn-master-0",
   "Namespace": "kubeflow",
   "Status": "Pending",
   "CreationTime": "2025-08-26 16:21:06+00:00"
  },
  {
   "PodName": "my-sft-run-wzdyn-worker-0",
   "Namespace": "kubeflow",
   "Status": "Pending",
   "CreationTime": "2025-08-26 16:21:06+00:00"
  }
 ]
}
```

atau langsung gunakan perintah kubectl untuk menemukannya.

Misalnya, 

```
kubectl get pods -o wide -w -n kubeflow | (head -n1 ; grep my-sft-run)

NAME                                                         READY   STATUS      RESTARTS   AGE     IP              NODE                           NOMINATED NODE   READINESS GATES
my-sft-run-5suc8-master-0                              0/1     Completed   0          3h23m   172.31.32.132   hyperpod-i-00b3d8a1bf25714e4   <none>           <none>
my-sft-run-5suc8-worker-0                              0/1     Completed   0          3h23m   172.31.44.196   hyperpod-i-0aa7ccfc2bd26b2a0   <none>           <none>
my-sft-run-5suc8-worker-1                              0/1     Completed   0          3h23m   172.31.46.84    hyperpod-i-026df6406a7b7e55c   <none>           <none>
my-sft-run-5suc8-worker-2                              0/1     Completed   0          3h23m   172.31.28.68    hyperpod-i-0802e850f903f28f1   <none>           <none>
```

Kiat pro: Pastikan untuk selalu menggunakan flag -o wide karena simpul EKS tempat pekerjaan berjalan akan membantu Anda menemukan log Anda lebih cepat di AWS UI

## Cara Memantau Job
<a name="how-to-monitor-job"></a>

Anda dapat melihat log Anda salah satu dari tiga cara:

### a) Menggunakan CloudWatch
<a name="using-cloudwatch"></a>

Log Anda tersedia di akun Amazon Web Services Anda yang berisi klaster hyperpod di bawahnya CloudWatch. Untuk melihatnya di browser Anda, navigasikan ke CloudWatch beranda di akun Anda dan cari nama cluster Anda. Misalnya, jika cluster Anda disebut my-hyperpod-rig, grup log akan memiliki awalan:
+ Grup log://aws/sagemakerClusters/my-hyperpod-rig/{UUID}
+ Setelah Anda berada di grup log, Anda dapat menemukan log spesifik Anda menggunakan ID instance node seperti - hyperpod-i-00b3d8a1bf25714e4.
  + i-00b3d8a1bf25714e4 di sini mewakili nama mesin ramah hyperpod tempat pekerjaan pelatihan Anda berjalan. Ingat bagaimana pada perintah sebelumnya kubectl get pods -o wide -w -n kubeflow \| (head -n1; grep my-cpt-run) output kita menangkap sebuah kolom bernama NODE.
  + Run node “master” dalam hal ini berjalan pada hyperpod-i-00b3d8a1bf25714e4 dan dengan demikian kita akan menggunakan string itu untuk memilih grup log untuk dilihat. Pilih salah satu yang mengatakan SagemakerHyperPodTrainingJob/rig-group/[NODE]

Log Anda akan terlihat seperti ini:

### b) Menggunakan CloudWatch Wawasan
<a name="using-cloudwatch-insights"></a>

Jika Anda memiliki nama pekerjaan yang berguna dan tidak ingin melalui semua langkah di atas, Anda cukup menanyakan semua log di bawah//aws/sagemakerClusters/my-hyperpod-rig/{UUID} untuk menemukan log individu.

CPT

```
fields @timestamp, @message, @logStream, @log 
| filter @message like /(?i)Starting CPT Job/
| sort @timestamp desc 
| limit 100
```

Untuk penyelesaian pekerjaan ganti Start SFT Job dengan SFT Job selesai

Kemudian Anda dapat mengklik hasil dan memilih salah satu yang mengatakan “Epoch 0" karena itu akan menjadi node master Anda.

### C) Menggunakan AWS CLI
<a name="using-aws-cli"></a>

Anda dapat memilih untuk mengekor log Anda menggunakan AWS CLI. Sebelum melakukannya, silakan periksa AWS CLI versi Anda menggunakan`aws --version`. Disarankan juga untuk menggunakan skrip utilitas ini yang membantu dalam pelacakan log langsung di terminal Anda

untuk V1:

```
aws logs get-log-events \
 --log-group-name /aws/sagemaker/YourLogGroupName \
 --log-stream-name YourLogStream \
 --start-from-head | jq -r '.events[].message'
```

untuk V2:

```
aws logs tail /aws/sagemaker/YourLogGroupName \
  --log-stream-name YourLogStream \
 --since 10m \
 --follow
```

### D) Mengatur Aliran Ml:
<a name="setup-mlflow"></a>

Anda dapat melacak metrik melalui MLFlow.

Buat aplikasi MLFlow

Menggunakan UI Studio: Jika Anda membuat pekerjaan pelatihan melalui UI Studio, aplikasi MLFlow default dibuat secara otomatis dan dipilih secara default di bawah Opsi Lanjutan.

Menggunakan CLI: Jika Anda menggunakan CLI, Anda harus membuat aplikasi MLFlow dan meneruskannya sebagai input ke permintaan API pekerjaan pelatihan.

```
mlflow_app_name="<enter your MLflow app name>"  
role_arn="<enter your role ARN>"   
bucket_name="<enter your bucket name>"   
region="<enter your region>"  
  
mlflow_app_arn=$(aws sagemaker create-mlflow-app \  
  --name $mlflow_app_name \  
  --artifact-store-uri "s3://$bucket_name" \  
  --role-arn $role_arn \  
  --region $region)
```

Akses aplikasi MLFlow

Menggunakan CLI: Buat URL presigned untuk mengakses UI aplikasi MLFlow:

```
aws sagemaker create-presigned-mlflow-app-url \  
  --arn $mlflow_app_arn \  
  --region $region \  
  --output text
```

Setelah ML Flow disiapkan, Anda dapat meneruskan URI dalam resep Anda atau menggunakan override saat memulai pekerjaan. Salah satu contoh cara melakukannya dapat ditemukan di README.

## Bagaimana cara mengevaluasi model Anda setelah SFT?
<a name="how-to-evaluate-after-sft"></a>

### Prasyarat
<a name="eval-prerequisites"></a>
+ Checkpoint S3 URI dari file manifest.json pekerjaan pelatihan Anda (untuk model terlatih)
+ Dataset evaluasi diunggah ke S3 dalam format yang benar
+ Output jalur S3 untuk hasil evaluasi

Tolok ukur di luar kotak: Gunakan tolok ukur di luar kotak untuk memvalidasi kinerja pada tugas umum. Untuk lebih jelasnya, periksa di sini.

### Bawa data Anda sendiri:
<a name="bring-your-own-eval-data"></a>

Anda juga dapat menyediakan data kustom Anda dengan memformatnya dalam format di bawah ini dan kemudian menggunakan wadah yang disebutkan di bawah ini untuk mendapatkan hasil inferensi bersama dengan probabilitas log untuk kalibrasi jika diperlukan.

Peti jsonl per tugas dengan struktur berikut:

```
{
  "metadata": "{key:4, category:'apple'}",
  "system": "arithmetic-patterns, please answer the following with no other words: ",
  "query": "What is the next number in this series? 1, 2, 4, 8, 16, ?",
  "response": "32"
}
```

Output yang dihasilkan selama fase inferensi pekerjaan evaluasi akan memiliki struktur sebagai berikut:

```
{
  "prompt": "[{'role': 'system', 'content': 'arithmetic-patterns, please answer the following with no other words: '}, {'role': 'user', 'content': 'What is the next number in this series? 1, 2, 4, 8, 16, ?'}]",
  "inference": "['32']",
  "gold": "32",
  "metadata": "{key:4, category:'apple'}"
}
```

Deskripsi bidang:
+ prompt: Masukan diformat dikirim ke model
+ inferensi: Respons yang dihasilkan model
+ gold: Diharapkan jawaban yang benar dari dataset input, bidang respons dari input
+ metadata: Metadata opsional dilewatkan dari input

### Siapkan Evaluasi Config
<a name="prepare-eval-config"></a>

Perintah untuk meluncurkan pekerjaan evaluasi. Gunakan “--override-parameters” untuk memodifikasi entri apa pun dari resep.

```
hyperpod start-job -n kubeflow \
  --recipe evaluation/nova/nova_micro_p5_48xl_bring_your_own_dataset_eval \
  --override-parameters '{
    "instance_type": "p5.48xlarge",
    "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest",
    "recipes.run.name": "<your-eval-job-name>",
    "recipes.run.model_name_or_path": "<checkpoint-s3-uri>",
    "recipes.run.output_s3_path": "s3://<your-bucket>/eval-results/",
    "recipes.run.data_s3_path": "s3://<your-bucket>/eval-data.jsonl"
  }'
```

### Luncurkan Job Evaluasi Anda
<a name="launch-eval-job"></a>

Perintah peluncuran Job untuk berbagai resep dengan gambar yang sesuai.


**Evaluasi Perintah Peluncuran Job**  

| Model | Teknik | Subkategori | URI citra | Perintah | 
| --- | --- | --- | --- | --- | 
| Nova 1.0 | Evaluasi | Eval | 708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-evaluasi-repo: SM-HP-Eval-latest | hyperpod start-job\\ -n kubeflow\\ --recipe evaluation/nova/nova\_1\_0/nova\_lite/nova\_lite\_2\_0\_p5\_48xl\_gpu\_ft\_eval\\ --override-parameters '{“instance\_type”: “ml.p5.48xlarge”, “container”: “708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-evaluasi-repo: "} 'SM-HP-Eval-latest | 
| Nova 2.0 | Evaluasi | Eval | 708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-evaluasi-repo: SM-HP-Eval-latest | hyperpod start-job -n kubeflow\\ --recipe evaluation/nova/nova\_2\_0/nova\_lite/nova\_lite\_2\_0\_p5\_48xl\_gpu\_ft\_eval\\ --override-parameters '{“instance\_type”: “ml.p5.48xlarge”, “container”: “708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-evaluasi-repo: "} 'SM-HP-Eval-latest | 

## Pelajaran yang Dipetik dan Kiat
<a name="lessons-learned-tips"></a>
+ Kualitas dataset SFT sangat penting. Anda harus melakukan segala upaya untuk menyaring data berkualitas rendah. Jika Anda memiliki subset kecil dari data berkualitas sangat tinggi—dalam hal kompleksitas dan akurasi—Anda dapat mempertimbangkan untuk menempatkannya menjelang akhir pelatihan untuk membantu model bertemu dengan lebih baik.
+ Kami memanfaatkan kumpulan data teks dan multimodal (MM) untuk pencampuran data. Eksperimen kami dengan kumpulan data teks menunjukkan bahwa menambahkan kategori “penalaran-instruksi-mengikuti” milik Nova secara signifikan meningkatkan kinerja di seluruh tolok ukur umum. Sebaiknya sertakan kategori ini dalam strategi pencampuran data Anda jika Anda peduli dengan tolok ukur generik yang mengalami regresi setelah Anda melakukan SFT dengan kumpulan data Anda.
+ Untuk kumpulan data MM, eksperimen kami menunjukkan bahwa memasukkan lebih dari 20% kategori video ke dalam campuran bermanfaat untuk mempertahankan kinerja tolok ukur generik.
+ Selanjutnya, SFT dengan pencampuran data cukup sensitif terhadap tingkat pembelajaran sehingga temuan kami menyarankan untuk menyesuaikan dengan tingkat pembelajaran default yaitu 1e-5 untuk LoRa dan 5e-6 untuk FR.
+ Akhirnya, ada pertukaran antara latensi dan kinerja jika Anda mencampur kumpulan data milik Nova sehingga temuan kami menyarankan untuk mencampur 50% secara maksimal sebagai keseimbangan yang baik.