Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
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 diconfig.yaml
:
-
defaults
: Tentukan pengaturan default Anda, seperti cluster default atau resep default. -
instance_type
: Ubah jenis EC2 instans Amazon agar sesuai dengan jenis instans yang Anda gunakan. -
git
: Tentukan lokasi repositori adaptor SageMaker HyperPod resep untuk pekerjaan pelatihan. -
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
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
-
name
: Tentukan nama untuk pekerjaan pelatihan Anda di file konfigurasi. -
results_dir
: Anda dapat menentukan direktori tempat hasil pekerjaan pelatihan Anda disimpan. -
time_limit
: Anda dapat mengatur waktu pelatihan maksimum untuk pekerjaan pelatihan Anda untuk mencegahnya menempati sumber daya perangkat keras terlalu lama. -
model_type
: Anda dapat menentukan jenis model yang Anda gunakan. Misalnya, Anda dapat menentukanhf
apakah model Anda berasal dari HuggingFace.
manajer exp_
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
-
exp_dir
: Direktori eksperimen menyertakan output standar dan file kesalahan standar untuk pekerjaan pelatihan Anda. Secara default, ia menggunakan direktori Anda saat ini. -
name
: Nama eksperimen yang digunakan untuk mengidentifikasi eksperimen Anda di bawah exp_dir. -
create_tensorboard_logger
: TentukanTrue
atauFalse
untuk mengaktifkan atau menonaktifkan TensorBoard logger.
Checkpointing
Berikut adalah tiga jenis checkpointing yang kami dukung:
-
Pos pemeriksaan otomatis
-
Pos pemeriksaan manual
-
Checkpointing penuh
Pos pemeriksaan otomatis
Jika Anda menyimpan atau memuat pos pemeriksaan yang dikelola secara otomatis oleh adaptor SageMaker HyperPod resep, Anda dapat mengaktifkanauto_checkpoint
. Untuk mengaktifkanauto_checkpoint
, atur enabled
keTrue
. 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
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
Checkpointing penuh
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
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
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:
FP8
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, lihatPelatihan presisi campuran.
data
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:
-
JSON
-
JSONGZ (JSON Terkompresi)
-
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.
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