| |
| |
| |
| |
|
|
| |
| model: |
| |
| type: "transformer_scratch" |
|
|
| |
| transformer: |
| d_model: 512 |
| nhead: 8 |
| num_encoder_layers: 6 |
| num_decoder_layers: 6 |
| dim_feedforward: 2048 |
| dropout: 0.1 |
| activation: "gelu" |
| max_seq_len: 512 |
| use_flash_attention: true |
| use_rotary_embedding: true |
| pre_norm: true |
|
|
| |
| pretrained: |
| model_name: "facebook/nllb-200-distilled-600M" |
| src_lang: "eng_Latn" |
| tgt_lang: "zho_Hans" |
| use_lora: true |
| lora: |
| r: 16 |
| alpha: 32 |
| dropout: 0.05 |
| target_modules: |
| - "q_proj" |
| - "v_proj" |
| - "k_proj" |
| - "o_proj" |
|
|
| |
| tokenizer: |
| |
| type: "bpe" |
| vocab_size: 32000 |
| min_frequency: 2 |
| special_tokens: |
| pad: "<pad>" |
| unk: "<unk>" |
| bos: "<s>" |
| eos: "</s>" |
| max_length: 512 |
|
|
| |
| data: |
| |
| dataset_name: "wmt" |
| wmt: |
| year: "19" |
| language_pair: "zh-en" |
| opus: |
| subset: "UNPC" |
| custom: |
| train_src: "data/train.en" |
| train_tgt: "data/train.zh" |
| val_src: "data/val.en" |
| val_tgt: "data/val.zh" |
| test_src: "data/test.en" |
| test_tgt: "data/test.zh" |
|
|
| |
| preprocessing: |
| lowercase_src: false |
| remove_punctuation: false |
| max_src_len: 256 |
| max_tgt_len: 256 |
| filter_by_length: true |
| length_ratio_threshold: 3.0 |
|
|
| |
| dataloader: |
| batch_size: 32 |
| num_workers: 2 |
| pin_memory: true |
| dynamic_batching: true |
| max_tokens_per_batch: 8192 |
|
|
| |
| training: |
| |
| epochs: 30 |
| max_steps: -1 |
| gradient_accumulation_steps: 4 |
| fp16: true |
| bf16: false |
| gradient_checkpointing: false |
|
|
| |
| optimizer: |
| type: "adamw" |
| lr: 3.0e-4 |
| weight_decay: 0.01 |
| betas: [0.9, 0.98] |
| eps: 1.0e-8 |
|
|
| |
| scheduler: |
| type: "cosine_with_warmup" |
| warmup_steps: 4000 |
| min_lr: 1.0e-6 |
|
|
| |
| regularization: |
| label_smoothing: 0.1 |
| dropout: 0.1 |
|
|
| |
| checkpoint: |
| save_dir: "checkpoints/" |
| save_every_n_steps: 5000 |
| save_best: true |
| metric_for_best: "bleu" |
| max_checkpoints: 5 |
|
|
| |
| early_stopping: |
| enabled: true |
| patience: 5 |
| min_delta: 0.1 |
|
|
| |
| distributed: |
| strategy: "ddp" |
| deepspeed_config: "configs/deepspeed_config.json" |
|
|
| |
| evaluation: |
| |
| metrics: |
| - "bleu" |
| |
| - "chrf" |
| - "ter" |
|
|
| |
| decoding: |
| strategy: "beam_search" |
| beam_size: 5 |
| length_penalty: 1.0 |
| no_repeat_ngram_size: 3 |
| max_decode_len: 256 |
|
|
| |
| sampling: |
| temperature: 0.7 |
| top_k: 50 |
| top_p: 0.9 |
|
|
| |
| eval_every_n_steps: 1000 |
| eval_on_epoch_end: true |
|
|
| |
| logging: |
| |
| backend: "tensorboard" |
| project_name: "EasyTranslate" |
| log_every_n_steps: 100 |
| log_dir: "logs/" |
|
|
| |
| inference: |
| model_path: "checkpoints/best_model" |
| device: "cuda" |
| batch_size: 16 |
| quantization: null |
|
|
| |
| experiment: |
| seed: 42 |
| name: "baseline" |
| output_dir: "outputs/" |
|
|