Pra-pelatihan lanjutan (CPT) - Amazon SageMaker AI

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

Pra-pelatihan lanjutan (CPT)

Pre-training lanjutan (CPT) adalah proses pelatihan lebih lanjut model yayasan pra-terlatih pada data baru menggunakan tujuan tanpa pengawasan yang sama (seperti pemodelan bahasa bertopeng atau pemodelan bahasa kausal). Ini mempertahankan kemampuan bahasa umum yang dipelajari sebelumnya sambil beradaptasi dengan domain baru atau pergeseran distribusi.

CPT tidak melibatkan perubahan arsitektur atau fine-tuning untuk tugas-tugas hilir tertentu. Sebaliknya, ini memperluas kapasitas pemahaman bahasa model dengan cara yang sadar domain.

Anda harus menggunakan CPT dalam skenario berikut:

  • Anda memiliki data berskala besar dan tidak berlabel yang khusus untuk domain (misalnya kedokteran atau keuangan).

  • Anda ingin model mempertahankan kemampuan bahasa umum sambil meningkatkan konten khusus domain.

  • Anda ingin meningkatkan kinerja zero-shot dan few-shot di area khusus tanpa melakukan fine-tuning khusus tugas yang ekstensif.

Persyaratan format data

Kami merekomendasikan untuk mengikuti karakteristik kumpulan data berikut saat melakukan CPT:

  • Keanekaragaman: Data Anda harus mencakup berbagai ekspresi dalam domain target agar tidak terlalu pas.

  • Representasi: Data Anda harus mencerminkan distribusi yang akan dihadapi model selama inferensi.

  • Kebersihan: Kebisingan dan redundansi dalam data Anda dapat menurunkan kinerja. Deduplikasi dan normalisasi teks meningkatkan pelatihan model.

  • Skala: Kumpulan data yang lebih besar membantu, tetapi di luar ambang batas tertentu (seperti menjalankan beberapa zaman pada data terbatas), risiko yang terlalu pas meningkat.

Kumpulan data pelatihan dan validasi harus berupa file JSONL mengikuti format Converse, di mana setiap baris berisi objek JSON yang mewakili percakapan dengan bidang dan struktur yang diperlukan. Inilah contohnya:

{"text": "AWS stands for Amazon Web Services"} {"text": "Amazon SageMaker is a fully managed machine learning service"} {"text": "Amazon Bedrock is a fully managed service for foundation models"}

Entri teks harus berisi konten berkualitas tinggi yang mengalir secara alami yang mewakili domain target Anda.

Validasi kumpulan data

Untuk memvalidasi kumpulan data Anda sebelum mengirimkan pekerjaan CPT Anda, periksa kondisi berikut:

  • Setiap baris harus berisi objek JSON yang valid.

  • Setiap objek memiliki bidang “teks” yang berisi data string.

  • Tidak ada bidang selain “teks” yang ada.

  • File tersebut adalah .jsonl ekstensi.

Waktu pelatihan

Jumlah waktu yang dihabiskan untuk pelatihan sangat bergantung pada ukuran kumpulan data, jumlah instance yang digunakan, dan model yang dilatih. Waktu pelatihan diharapkan dapat diskalakan secara linier. Tabel berikut memberikan beberapa contoh waktu pelatihan untuk berbagai model.

Tipe Model

GBS

Jumlah Sampel dalam Dataset

Jumlah Instans P5

Nilai max_length

Perkiraan waktu pelatihan dalam jam

Amazon Nova Mikro

256

100.000

8

8,192

4

Amazon Nova Lite

256

100.000

16

8,192

4

Amazon Nova Pro

256

100.000

24

8,192

10

Kumpulan data pelatihan dan validasi harus berupa file JSONL yang mengikuti format operasi Amazon Bedrock Converse, di mana setiap baris berisi objek JSON yang mewakili percakapan dengan bidang dan struktur yang diperlukan.

Parameter Amazon Nova yang tersedia untuk penyetelan dengan CPT meliputi:

  • Jalankan konfigurasi

    • name: Nama deskriptif untuk pekerjaan pelatihan Anda. Ini membantu mengidentifikasi pekerjaan Anda di AWS Management Console.

    • model_type: Varian model Amazon Nova untuk digunakan. Pilihan yang tersedia adalahamazon.nova-micro-v1:0:128k,amazon.nova-lite-v1:0:300k, atauamazon.nova-pro-v1:0:300k.

    • model_name_or_path: Jalur ke model dasar yang akan digunakan untuk pelatihan Anda. Opsi yang tersedia adalahnova-micro/prod,, nova-lite/prodnova-pro/prod, atau jalur S3 untuk pos pemeriksaan pasca-pelatihan (). s3://customer-escrow-bucket-unique_id/training_run_name

    • replicas: Jumlah instans komputasi yang akan digunakan untuk pelatihan terdistribusi. Nilai yang tersedia bervariasi berdasarkan model yang Anda pilih. Amazon Nova Micro mendukung 2, 4, atau 8 replika. Amazon Nova Lite mendukung replika 4, 8, 16, atau 32. Amazon Nova Pro mendukung 6, 12, atau 24 replika.

    • data_s3_path: Lokasi S3 dari dataset pelatihan, yang merupakan file JSONL. File ini harus berada di tempat yang sama Akun AWS dan Region sebagai cluster. Semua lokasi S3 yang disediakan harus berada di akun dan Wilayah yang sama.

    • validation_data_s3_path: (Opsional) Lokasi S3 dari dataset validasi, yang merupakan file JSONL. File ini harus berada di akun dan wilayah yang sama dengan cluster. Semua lokasi S3 yang disediakan harus berada di akun dan Wilayah yang sama.

    • output_s3_path: Lokasi S3 tempat manifes dan TensorBoard log disimpan. Semua lokasi S3 yang disediakan harus sama Akun AWS dan Wilayah AWS.

  • Konfigurasi pelatihan

    • max_length: Panjang urutan maksimum dalam token. Ini menentukan ukuran jendela konteks untuk pelatihan. Nilai maksimum yang didukung adalah 8192 token untuk CPT.

      Urutan yang lebih panjang akan meningkatkan efisiensi pelatihan dengan mengorbankan peningkatan kebutuhan memori. Kami menyarankan Anda mencocokkan max_length parameter dengan distribusi data Anda.

  • Pengaturan pelatih

    • global_batch_size: Jumlah total sampel pelatihan yang diproses bersama dalam satu lintasan maju atau mundur di semua perangkat dan pekerja.

      Nilai ini mengalikan ukuran batch per perangkat dan jumlah perangkat. Ini mempengaruhi stabilitas pelatihan dan throughput. Kami menyarankan Anda memulai dengan ukuran batch yang pas dengan nyaman di dalam memori Anda dan meningkatkan skala dari sana. Untuk data spesifik domain, batch yang lebih besar mungkin gradien yang terlalu halus.

    • max_epochs: Jumlah lintasan lengkap melalui dataset pelatihan Anda.

      Secara umum, kumpulan data yang lebih besar membutuhkan lebih sedikit zaman untuk bertemu, sementara kumpulan data yang lebih kecil membutuhkan lebih banyak zaman untuk bertemu. Kami menyarankan Anda menyesuaikan jumlah epoch berdasarkan ukuran data Anda untuk mencegah pemasangan yang berlebihan.

  • Pengaturan model

    • hidden_dropout: Probabilitas menjatuhkan output status tersembunyi. Tingkatkan nilai ini sekitar 0,0-0,2 untuk mengurangi overfitting pada kumpulan data yang lebih kecil. Nilai yang valid adalah antara 0-1, inklusif.

    • attention_dropout: Probabilitas menjatuhkan bobot perhatian. Parameter ini dapat membantu generalisasi. Nilai yang valid adalah antara 0-1, inklusif.

    • ffn_dropout: Probabilitas menjatuhkan output jaringan feed-forward. Nilai yang valid adalah antara 0-1, inklusif.

  • Konfigurasi pengoptimal

    • lr: Tingkat pembelajaran, yang mengontrol ukuran langkah selama pengoptimalan. Kami merekomendasikan nilai antara 1e-6-1e-4 untuk kinerja yang baik. Nilai yang valid adalah antara 0-1, inklusif.

    • name: Algoritma pengoptimal. Saat ini, hanya distributed_fused_adam didukung.

    • weight_decay: Kekuatan regularisasi L2. Nilai yang lebih tinggi (antara 0,01-0,1) meningkatkan regularisasi.

    • warmup_steps: Jumlah langkah untuk secara bertahap meningkatkan tingkat pembelajaran. Ini meningkatkan stabilitas pelatihan. Nilai yang valid adalah antara 1-20, inklusif.

    • min_lr: Tingkat pembelajaran minimum pada akhir pembusukan. Nilai yang valid antara 0-1, inklusif, tetapi harus kurang dari tingkat pembelajaran.

Resep CPT

Berikut ini adalah resep untuk CPT.

## Run config run: name: "my-cpt-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: [S3_PATH_TO_TRAIN_DATASET] validation_data_s3_path: (OPTIONAL)[S3_PATH_TO_VALIDATION_DATASET] output_s3_path: [S3_PATH_TO_STORE_MANIFEST] ## Training specific configs training_config: max_length: 8192 # Maximum context window size (tokens). global_batch_size: 256 # Global batch size, allowed values are 32, 64, 128, 256. 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, must be lower than lr
Batasan

CPT memiliki batasan sebagai berikut:

  • Kumpulan data multimodal tidak didukung.

  • Pos pemeriksaan menengah tidak disimpan untuk evaluasi dan Anda tidak dapat melanjutkan dari pos pemeriksaan perantara. Hanya pos pemeriksaan terakhir yang disimpan.

  • MLflow logging tidak didukung.