

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

# Konfigurasi umum
<a name="sagemaker-hyperpod-recipes-general-configuration"></a>

File config.yaml menentukan resep pelatihan dan cluster. Ini juga mencakup konfigurasi runtime seperti variabel lingkungan untuk pekerjaan pelatihan.

```
defaults:
  - _self_
  - cluster: slurm 
  - recipes: training/llama/hf_llama3_8b_seq8192_gpu
instance_type: p5.48xlarge
git:
  repo_url_or_path: null
  branch: null
  commit: null
  entry_script: null
  token: null
env_vars:
  NCCL_DEBUG: WARN
```

Anda dapat memodifikasi parameter berikut di`config.yaml`:

1. `defaults`: Tentukan pengaturan default Anda, seperti cluster default atau resep default.

1. `instance_type`: Ubah jenis instans Amazon EC2 agar sesuai dengan jenis instans yang Anda gunakan.

1. `git`: Tentukan lokasi repositori adaptor SageMaker HyperPod resep untuk pekerjaan pelatihan.

1. `env_vars`: Anda dapat menentukan variabel lingkungan yang akan diteruskan ke pekerjaan pelatihan runtime Anda. Misalnya, Anda dapat menyesuaikan tingkat logging NCCL dengan menentukan variabel lingkungan NCCL\_DEBUG.

Resepnya adalah konfigurasi inti yang mendefinisikan arsitektur pekerjaan pelatihan Anda. File ini mencakup banyak informasi penting untuk pekerjaan pelatihan Anda, seperti berikut ini:
+ Apakah akan menggunakan paralelisme model
+ Sumber dataset Anda
+ Pelatihan presisi campuran
+ Konfigurasi terkait pos pemeriksaan

Anda dapat menggunakan resep apa adanya. Anda juga dapat menggunakan informasi berikut untuk memodifikasinya.

## run
<a name="run"></a>

Berikut ini adalah informasi lari dasar untuk menjalankan pekerjaan pelatihan Anda.

```
run:
  name: llama-8b
  results_dir: ${base_results_dir}/${.name}
  time_limit: "6-00:00:00"
  model_type: hf
```

1. `name`: Tentukan nama untuk pekerjaan pelatihan Anda di file konfigurasi.

1. `results_dir`: Anda dapat menentukan direktori tempat hasil pekerjaan pelatihan Anda disimpan.

1. `time_limit`: Anda dapat mengatur waktu pelatihan maksimum untuk pekerjaan pelatihan Anda untuk mencegahnya menempati sumber daya perangkat keras terlalu lama.

1. `model_type`: Anda dapat menentukan jenis model yang Anda gunakan. Misalnya, Anda dapat menentukan `hf` apakah model Anda berasal dari HuggingFace.

## manajer exp\_
<a name="exp-manager"></a>

Exp\_manager mengonfigurasi eksperimen. Dengan exp\_manager, Anda dapat menentukan bidang seperti direktori output atau pengaturan pos pemeriksaan. Berikut ini adalah contoh bagaimana Anda dapat mengkonfigurasi exp\_manager.

```
exp_manager:
  exp_dir: null
  name: experiment
  create_tensorboard_logger: True
```

1. `exp_dir`: Direktori eksperimen menyertakan output standar dan file kesalahan standar untuk pekerjaan pelatihan Anda. Secara default, ia menggunakan direktori Anda saat ini.

1. `name`: Nama eksperimen yang digunakan untuk mengidentifikasi eksperimen Anda di bawah exp\_dir.

1. `create_tensorboard_logger`: Tentukan `True` atau `False` untuk mengaktifkan atau menonaktifkan TensorBoard logger.

## Checkpointing
<a name="checkpointing"></a>

Berikut adalah tiga jenis checkpointing yang kami dukung:
+ Pos pemeriksaan otomatis
+ Pos pemeriksaan manual
+ Checkpointing penuh

### Pos pemeriksaan otomatis
<a name="auto-checkpointing"></a>

Jika Anda menyimpan atau memuat pos pemeriksaan yang dikelola secara otomatis oleh adaptor SageMaker HyperPod resep, Anda dapat mengaktifkan`auto_checkpoint`. Untuk mengaktifkan`auto_checkpoint`, atur `enabled` ke`True`. Anda dapat menggunakan pos pemeriksaan otomatis untuk pelatihan dan fine-tuning. Anda dapat menggunakan pos pemeriksaan otomatis untuk sistem file bersama dan Amazon S3.

```
exp_manager
  checkpoint_dir: ${recipes.exp_manager.exp_dir}/checkpoints/
  auto_checkpoint:
    enabled: True
```

Pos pemeriksaan otomatis menyimpan local\_state\_dict secara asinkron dengan interval penyimpanan optimal yang dihitung secara otomatis.

**catatan**  
Di bawah mode checkpointing ini, checkpointing yang disimpan secara otomatis tidak mendukung re-sharding di antara latihan berjalan. Untuk melanjutkan dari pos pemeriksaan tersimpan otomatis terbaru, Anda harus mempertahankan derajat pecahan yang sama. Anda tidak perlu menentukan informasi tambahan untuk melanjutkan secara otomatis.

### Pos pemeriksaan manual
<a name="manual-checkpointing"></a>

Anda dapat memodifikasi `checkpoint_callback_params` untuk menyimpan pos pemeriksaan perantara secara asinkron di shared\_state\_dict. Misalnya, Anda dapat menentukan konfigurasi berikut untuk mengaktifkan pos pemeriksaan sharded setiap 10 langkah dan menyimpan 3 pos pemeriksaan terbaru.

Checkpointing sharded memungkinkan Anda mengubah derajat pecahan antara latihan berjalan dan memuat pos pemeriksaan dengan pengaturan. `resume_from_checkpoint`

**catatan**  
Jika merupakan fine tuning PEFT, checkpointing sharded tidak mendukung Amazon S3.
Checkpointing otomatis dan manual saling eksklusif.
Hanya derajat pecahan FSDP dan perubahan derajat replikasi yang diizinkan.

```
exp_manager:
  checkpoint_callback_params:
    # Set save_top_k = 0 to disable sharded checkpointing
    save_top_k: 3
    every_n_train_steps: 10
    monitor: "step"
    mode: "max"
    save_last: False
  resume_from_checkpoint: ${recipes.exp_manager.exp_dir}/checkpoints/
```

Untuk mempelajari selengkapnya tentang pos pemeriksaan, lihat. [Checkpointing menggunakan SMP](model-parallel-core-features-v2-checkpoints.md)

### Checkpointing penuh
<a name="full-checkpointing"></a>

Pos pemeriksaan full\_state\_dict yang diekspor dapat digunakan untuk inferensi atau fine tuning. Anda dapat memuat pos pemeriksaan lengkap melalui hf\_model\_name\_or\_path. Di bawah mode ini, hanya bobot model yang disimpan.

Untuk mengekspor model full\_state\_dict, Anda dapat mengatur parameter berikut.

**catatan**  
Saat ini, pos pemeriksaan penuh tidak didukung untuk pos pemeriksaan Amazon S3. Anda tidak dapat mengatur jalur S3 `exp_manager.checkpoint_dir` jika Anda mengaktifkan pos pemeriksaan penuh. Namun, Anda dapat mengatur `exp_manager.export_full_model.final_export_dir` ke direktori tertentu di sistem file lokal saat menyetel `exp_manager.checkpoint_dir` ke jalur Amazon S3.

```
exp_manager:
  export_full_model:
    # Set every_n_train_steps = 0 to disable full checkpointing
    every_n_train_steps: 0
    save_last: True
    final_export_dir : null
```

## model
<a name="model"></a>

Tentukan berbagai aspek arsitektur model dan proses pelatihan Anda. Ini termasuk pengaturan untuk paralelisme model, presisi, dan penanganan data. Di bawah ini adalah komponen utama yang dapat Anda konfigurasikan dalam bagian model:

### model paralelisme
<a name="model-parallelism"></a>

Setelah Anda menentukan resep, Anda menentukan model yang Anda latih. Anda juga dapat menentukan paralelisme model. Misalnya, Anda dapat menentukan tensor\_model\_parallel\_degree. Anda dapat mengaktifkan fitur lain seperti pelatihan dengan FP8 presisi. Misalnya, Anda dapat melatih model dengan paralelisme tensor dan paralelisme konteks:

```
model:
  model_type: llama_v3
  # Base configs
  train_batch_size: 4
  val_batch_size: 1
  seed: 12345
  grad_clip: 1.0

  # Model parallelism
  tensor_model_parallel_degree: 4
  expert_model_parallel_degree: 1
  context_parallel_degree: 2
```

Untuk mendapatkan pemahaman yang lebih baik tentang berbagai jenis teknik paralelisme model, Anda dapat merujuk pada pendekatan berikut:

1. [Paralelisme tensor](model-parallel-core-features-v2-tensor-parallelism.md)

1. [Paralelisme ahli](model-parallel-core-features-v2-expert-parallelism.md)

1. [Paralelisme konteks](model-parallel-core-features-v2-context-parallelism.md)

1. [Paralelisme data sharded hibrid](model-parallel-core-features-v2-sharded-data-parallelism.md)

### FP8
<a name="fp8"></a>

Untuk mengaktifkan FP8 (presisi floating-point 8-bit), Anda dapat menentukan konfigurasi FP8 -related dalam contoh berikut:

```
model:
  # FP8 config
  fp8: True
  fp8_amax_history_len: 1024
  fp8_amax_compute_algo: max
```

Penting untuk dicatat bahwa format FP8 data saat ini hanya didukung pada jenis instans P5. Jika Anda menggunakan jenis instans yang lebih lama, seperti P4, nonaktifkan FP8 fitur untuk proses pelatihan model Anda. Untuk informasi lebih lanjut tentang FP8, lihat[Pelatihan presisi campuran](model-parallel-core-features-v2-mixed-precision.md).

### data
<a name="data"></a>

Anda dapat menentukan kumpulan data khusus untuk pekerjaan pelatihan Anda dengan menambahkan jalur data di bawah data. Modul data dalam sistem kami mendukung format data berikut:

1. JSON

1. JSONGZ (JSON Terkompresi)

1. PANAH

Namun, Anda bertanggung jawab untuk menyiapkan dataset pra-token Anda sendiri. Jika Anda adalah pengguna tingkat lanjut dengan persyaratan khusus, ada juga opsi untuk mengimplementasikan dan mengintegrasikan modul data yang disesuaikan. [Untuk informasi selengkapnya tentang HuggingFace kumpulan data, lihat Datasets.](https://huggingface.co/docs/datasets/v3.1.0/en/index)

```
model:
  data:
    train_dir: /path/to/your/train/data
    val_dir: /path/to/your/val/data
    dataset_type: hf
    use_synthetic_data: False
```

Anda dapat menentukan bagaimana Anda melatih model. Secara default, resep menggunakan pra-pelatihan alih-alih fine-tuning. Contoh berikut mengonfigurasi resep untuk menjalankan pekerjaan fine-tuning dengan LoRa (Adaptasi Peringkat Rendah).

```
model:
  # Fine tuning config
  do_finetune: True
  # The path to resume from, needs to be HF compatible
  hf_model_name_or_path: null
  hf_access_token: null
  # PEFT config
  peft:
    peft_type: lora
    rank: 32
    alpha: 16
    dropout: 0.1
```

Untuk informasi tentang resep, lihat [SageMaker HyperPodresep](https://github.com/aws/sagemaker-hyperpod-recipes).