Hyper‐parameters Teacher Model - transducens/demint GitHub Wiki

Llama Factory

Important hyper-parameters


  • Model: Llama3-8B

  • Dataset: TheBigSix (TSCC v2, CIMA, Conversational Uptake, Multicultural classrom discourse dataset, MathDIAL, ClariQ)

  • Fine Tuning Method: Lora (Full, Freeze, Lora)

    • Full: Full fine-tuning involves updating all model parameters during training.
    • Freeze: Freezing certain layers (typically lower layers) and only training the top layers. This reduces computational cost and avoids overfitting to some extent.
    • Lora: LoRA involves adding trainable low-rank matrices to the model’s weights, which allows efficient fine-tuning by updating a small number of parameters.
  • Adapter Path: None

    • Adapters are small neural network modules inserted into each layer of a pre-trained model. During fine-tuning, instead of updating the entire model's parameters, only the parameters of these adapters are updated. This makes the fine-tuning process more efficient in terms of both memory and computational requirements.
  • Quantization bit: 8 (none, 8, 4)

    • Quantization is a technique used to reduce the computational and memory requirements of neural networks by representing weights and activations with lower precision. Quantization typically involves converting 32-bit floating-point (FP32) numbers to lower-bit representations such as 16-bit, 8-bit, 4 or even 2.
  • Prompt template: Llama3 (llama3, mistral, olmo, openchat, ...)

    • Prompt templates are a powerful tool for structuring input data for fine-tuning language models. As we are fine-tuning Llama3-8B, we are using the llama3 template.
  • RoPE scaling: dynamic (none, linear, dynamic)

    • None: No additional scaling is applied to the rotary position embeddings. The model uses the embeddings as they are. Suitable for tasks where the default positional encoding is sufficient, and sequences are of typical lengths encountered during pre-training.
    • Linear: Applies a linear scaling factor to the rotary position embeddings. This can help the model adjust its sensitivity to positional information linearly with respect to the position in the sequence. Useful for tasks where the input sequences are longer than those seen during pre-training or where a linear adjustment to positional sensitivity is beneficial.
    • Dynamic: Adjusts the scaling factor dynamically based on the sequence length or other factors. This allows the model to adapt its positional sensitivity more flexibly, improving performance on tasks with varying sequence lengths. Ideal for tasks with highly variable sequence lengths or where the model needs to dynamically adjust its understanding of positional information.
  • Booster: unsloth (none, flashattn2, unsloth)

    • None: No additional booster or optimization technique is applied. The model operates with its default configurations.
    • Flashattn2: Flash Attention is a technique designed to make the attention mechanism in transformer models more efficient by reducing memory usage and computational overhead.
    • Unsloth: Uses Flash Attention among other techniques focusing on improving the training speed or reducing the computational load without sacrificing model accuracy (allegedly even improving it "can speed up LLM training by up to 30 times while also reducing the amount of memory needed by 60%.").
  • Visual inputs: no (no, yes)

    • Capability of the model to handle and integrate visual data as part of its input. This option is relevant for multimodal models that are designed to process not just text, but also images, videos, or other forms of visual data.
  • Stage: Supervised Fine-Tuning (Supervised Fine-Tuning, Reward Modeling, PPO, DPO, ORPO, Pre-training)

    • Supervised Fine-Tuning: This involves fine-tuning a pre-trained model on a specific dataset with labeled examples. The model learns to map input sequences to target outputs based on supervised learning principles. Fine-tuning for specific tasks such as classification, question answering, summarization, etc., where labeled data is available.
    • Reward Modeling: Involves training a model to predict rewards based on certain criteria, typically used as a precursor to reinforcement learning techniques. The reward model helps in evaluating the quality of generated outputs. Preparing for reinforcement learning steps like PPO by developing a reward signal that guides the policy learning.
    • PPO (Proximal Policy Optimization): A reinforcement learning algorithm that optimizes the policy by interacting with an environment. PPO uses the reward signal to adjust the model’s behavior, making it suitable for fine-tuning models based on user feedback or other interaction-based criteria. Tasks requiring model behavior optimization based on interaction, such as chatbots or game-playing agents.
    • DPO (Dynamic Proximal Optimization): A variant of PPO that includes dynamic adjustments to the policy optimization process, potentially allowing for more flexible and adaptive learning. Similar to PPO but might be preferred in scenarios requiring more adaptive learning strategies.
    • ORPO (Optimized Reward Proximal Optimization): Another variant of PPO that focuses on optimizing the reward signal more efficiently. This can involve modifications to the reward calculation or policy update mechanisms. Scenarios where reward optimization is critical and standard PPO might not suffice.
    • Pre-training: The initial phase of training a language model on a large, diverse corpus of text data. This stage aims to learn general language representations that can later be fine-tuned for specific tasks. Building a strong foundation for a language model that can be adapted to various downstream tasks through fine-tuning.
  • Learning Rate: 1e-4

    • The learning rate is a crucial hyperparameter in training machine learning models, including fine-tuning large language models like Llama3-8B. It controls the step size at each iteration while moving toward a minimum of the loss function. In simpler terms, it determines how much the model's weights are updated with respect to the error each time the model weights are updated.
    • When using QLoRA, it's crucial to select an appropriate learning rate to ensure stable and effective training. Given that QLoRA involves both quantization and low-rank adaptation, a slightly conservative learning rate is generally recommended. Typical Range: 1e-4 to 5e-4, though starting lower can help ensure stability initially.
    • Recomendation: Begin with a lower learning rate to ensure stability and to observe how the model behaves during training. You can use learning rate schedulers or gradually increase the learning rate if the model seems to be converging too slowly.
  • Epochs: 10

    • Each epoch refers to one complete pass through the entire training dataset. During an epoch, the model processes every example in the dataset exactly once, which involves updating the model's parameters based on the computed loss from each example or batch of examples.
  • Maximum Gradient Norm: 1.0

    • It is a parameter used to clip gradients during training to prevent them from becoming excessively large, which can destabilize the training process. By setting a maximum gradient norm, you ensure that the gradient updates remain within a controlled range, leading to more stable and effective training. This technique is particularly useful when fine-tuning large models like Llama3-8B, especially when combined with other strategies like learning rate scheduling and gradient accumulation. A common value for the maximum gradient norm is around 1.0, but this can be adjusted based on the specific needs of your training process.
  • Max samples: 100000

    • Given our dataset (TheBigSix), each sample is a "conversations" between teacher and student. Including the "system" value. In total we have 89.664 samples.
  • Compute type: fp32 (fp16, bf16, fp32, pure_bf16)

    • The compute type determines the precision of floating-point operations used during the training of the model. This affects how calculations are performed on the model's parameters.
    • FP16: (Half-Precision Floating Point): Uses 16-bit floating-point numbers to reduce memory usage and increase computation speed on compatible hardware.
    • BF16: (Brain Floating Point): Uses 16-bit floating-point numbers but with a larger exponent range than FP16, offering better numerical stability.
    • FP32: (Single-Precision Floating Point): Uses 32-bit floating-point numbers, providing high numerical precision and stability.
    • Pure BF16: Similar to BF16 but ensures that all operations are performed using BF16 precision without fallback to FP32.
    • Difference with Quantization:
      • Quantization: Applies to how model weights and activations are stored and used, primarily affecting the inference phase but also sometimes the training phase.
      • Compute Type: Refers to the precision used for arithmetic operations during training and inference.
  • Cutoff length: 3500

    • It specifies the maximum number of tokens for each input sequence during training or inference. It helps manage computational efficiency and memory usage by ensuring consistent input sizes. In the "TheBigSix" the biggest conversation has 177588 words that is too much. Only 5 conversations are that huge, so removing those 5 the biggest conversation has 2394 words. The longest conversations have 67926, 102975, 105268, 160137, 177588 words.
    • The decided cutoff is 3500 to assure that all the tokens will fit after the tokenization. There should be 6 tokens per sequence (value of each speaker) so the cutoff could be even 3000 as there is 97 sequences in the largest conversation (except the biggest 5 ones). But in order to give it some margin, it was decided to select 3500.
  • Batch size: 90

    • Batch size is the number of training examples utilized in one iteration. It determines how many samples the model processes before updating the internal model parameters.
    • Given our dataset (TheBigSix), each sample is a whole conversation between teacher and student, including the "system" value. In total we have 89.664 (aproximating to 90.000) samples. We are choosing a big batch size since we have good GPUs.
  • Gradient accumulation: 8

    • It is a technique that allows for larger effective batch sizes by accumulating gradients over multiple mini-batches before updating the model parameters. This is particularly useful for training large models on hardware with limited memory.
    • If your hardware cannot accommodate very large batch sizes due to memory constraints, gradient accumulation allows you to simulate larger batch sizes by accumulating gradients over multiple smaller batches.
  • Val size: 0.1 (0 - 1)

    • Validation size parameter specifies the portion of the dataset that is set aside for validation during the training process. Validation data is used to evaluate the model's performance on unseen data after each epoch, which helps in monitoring the model's generalization ability and tuning hyperparameters.
  • LR scheduler: reduce_lr_on_plateau (linear, cosine, cosine_with_restars, polynomial, constant, constant_with_warmup, inverse_sqrt, reduce_lr_on_plateau)

    • Learning Rate scheduler is a method or strategy to adjust the learning rate during the training process. It changes the learning rate according to a pre-defined schedule or based on certain conditions to improve the training process.
    • linear: Decreases the learning rate linearly from an initial value to a final value over the course of training. Simple and effective for many standard training scenarios.
    • cosine: Adjusts the learning rate following a cosine curve, which gradually decreases and then increases the learning rate periodically. Useful for cyclical training processes, often used in conjunction with warm restarts.
    • cosine_with_restars: Similar to the cosine scheduler but includes periodic restarts where the learning rate is reset to a higher value. Helps the model escape local minima and explore new parts of the parameter space.
    • polynomial: Decreases the learning rate according to a polynomial decay function. Provides more flexibility than linear decay, allowing for slower decreases in the learning rate.
    • constant: Keeps the learning rate constant throughout the training process. Simple and effective when you do not want to change the learning rate.
    • constant_with_warmup: Starts with a small learning rate and gradually increases it to a specified value (warmup phase), then keeps it constant. Helps stabilize training initially before settling into a constant learning rate.
    • inverse_sqrt: Decreases the learning rate proportionally to the inverse square root of the step number. Often used in transformer models and sequence-to-sequence tasks.
    • reduce_lr_on_plateau: Reduces the learning rate when a specified metric (e.g., validation loss) has stopped improving. Useful for fine-tuning and scenarios where you need to adjust the learning rate based on performance metrics.
  • Extras:

    • Logging steps: 10

      • It refers to the intervals at which training metrics are recorded and reported during the training process. This logging helps you monitor the training progress, diagnose issues, and make adjustments to the training configuration if necessary.
      • As the dataset "TheBigSix" has aproximately 90.000 samples and the batch size is 90, then there will be 1000 steps in each epoch.
    • Save steps: 100

      • It refers to the intervals at which the current state of the model is saved to disk during the training process. This feature is essential for various reasons, including the ability to resume training from a checkpoint, analyze the model's progress over time, and ensure that work is not lost in case of interruptions.
    • Warmup steps: 10

      • It refers to the initial phase of training during which the learning rate is gradually increased from a small value to the initial learning rate. This helps to stabilize the training process and prevent large updates to the model parameters early on, which can cause instability.
    • NEFTune Alpha: 0

      • It is a specific parameter used in the Llama Factory framework for fine-tuning large language models (LLMs). NEFTune refers to a technique for noise-enhanced fine-tuning, and the alpha parameter (neftune_noise_alpha) controls the intensity or amount of noise added during this fine-tuning process. This technique is designed to improve the robustness and generalization of the model by introducing controlled noise into the training process.
    • Optimizer: adamw_torch (adamw_torch, adamw_8bit, adafactor)

      • It refers to the algorithm used to adjust the weights of the neural network during training.
      • adamw_torch: This is the AdamW optimizer implemented in PyTorch. AdamW is a variant of the Adam optimizer with weight decay, which is often used to prevent overfitting by adding a penalty on the size of the weights. It is widely used and generally provides good performance across various tasks.
      • adamw_8bit: This is a more memory-efficient version of the AdamW optimizer, utilizing 8-bit precision for certain calculations. This can significantly reduce the memory footprint and increase computational speed, making it suitable for training very large models where memory is a constraint.
      • adafactor: This is an alternative optimizer to Adam that is particularly efficient in terms of memory usage. Adafactor dynamically scales the learning rates and uses less memory, making it well-suited for training very large models. It has been shown to work effectively in various large-scale training scenarios.
    • Resize token embeddings: yes (no/yes)

      • Adjusts the size of the token embeddings. This is often used when the vocabulary size changes or if there is a need to match the embeddings size to a specific layer size in the model. Usually used when fine-tuning a pre-trained model on a new dataset with a different vocabulary.
    • Upcast LayerNorm: no (no/yes)

      • Upcast weights of layernorm in float32.
      • Uses higher precision (e.g., float32 instead of float16) for Layer Normalization operations. To improve numerical stability and precision during training, which can be particularly important for very deep networks. Usually used in scenarios where model training suffers from instability due to lower precision arithmetic.
    • Enable S^2 Attention: yes (no/yes)

      • Use shift short attention proposed by LongLoRA.
      • Enables a specialized form of attention mechanism called S^2 (Sparse and Structured) Attention. To improve the efficiency and scalability of the attention mechanism by making it sparse and structured. Usually used when training very large models where standard attention mechanisms become computationally expensive.
    • Pack sequences: yes (no/yes)

      • Pack sequences into samples of fixed length.
      • Packs sequences together to utilize computational resources more efficiently. The purpose is to increase training efficiency by reducing the amount of padding in batches, which can save memory and computation time. Usually used when dealing with variable-length sequences to improve throughput during training.
    • Enable LLaMA Pro: no (no/yes)

      • Make the parameters in the expanded blocks trainable.
      • Activates advanced features and optimizations available in the Pro version of LLaMA. The purpose is to leverage enhanced capabilities for better performance, scalability, and potentially additional metrics or logging features. Usually used for users with access to the Pro version, aiming for the best possible training performance and additional tools.
    • Enable external logger: no (no/yes)

      • Use TensorBoard or wandb to log experiment.
      • Enables logging of training metrics to an external logging service or system. The purpose is to provide better tracking, visualization, and analysis of the training process through external tools. Usually used when detailed monitoring and logging of the training process is needed, often for large-scale experiments or production environments.
  • LoRA configurations:

    • Rank: 128
      • Specifies the rank of the low-rank approximation. A lower rank reduces the number of parameters, making the model more efficient while potentially sacrificing some fine-tuning accuracy. Common values might be 4, 8, 16, etc., depending on the trade-off between efficiency and accuracy.
    • Alpha: 1.0
      • A scaling factor applied to the low-rank updates. Balances the influence of the low-rank adaptations on the model’s weights. Often set to values like 1.0 or adjusted based on empirical performance during validation.
    • Dropout: 0
      • The dropout rate applied to the low-rank adaptation layers. The purpose is to prevent overfitting by randomly dropping out a fraction of the low-rank updates during training. Common values are 0.1, 0.2, etc., depending on the risk of overfitting.
    • LoRA + LR ratio: 0
      • Sets the proportion between the learning rates for the LoRA-specific parameters and the main model parameters. For instance, if the main model's learning rate is 'n' and the LoRA+ LR ratio is set to 'k', then the learning rate for the LoRA parameters will be 'k×n'.
      • Ensures that the updates to the low-rank adaptation parameters are appropriately scaled relative to the updates of the main model parameters. Also helps in fine-tuning by adjusting how aggressively the LoRA parameters should be updated compared to the rest of the model, potentially leading to better convergence and performance.
    • Create New Adapter: yes (no/yes)
      • Is a critical option for implementing Low-Rank Adaptation effectively. By enabling this parameter, new adapter layers are created to apply low-rank updates, preserving the integrity of the original model and allowing efficient and modular fine-tuning. This approach enhances the flexibility and efficiency of adapting large pre-trained models to new tasks.
    • rslora: no (no/yes)
      • Random Sparse Low-Rank Adaptation, is a variant of LoRA that introduces sparsity into the low-rank adaptations. The primary goal is to further reduce the number of parameters and computational overhead by making the adaptation matrix sparse. This can help in situations where computational resources are highly constrained. Instead of a dense low-rank matrix, rslora uses a sparse matrix where many of the elements are zero. The non-zero elements are typically placed randomly.
    • DoRA: no (no/yes)
      • Dynamic Low-Rank Adaptation, is an advanced variant of LoRA that dynamically adjusts the rank of the low-rank adaptations during training. The aim is to adaptively optimize the rank based on the learning dynamics, potentially improving the efficiency and effectiveness of the adaptation. During training, the rank of the low-rank matrices can be adjusted based on specific criteria, such as the model's performance on validation data or the gradients' behavior.
    • Lora Modules: none
      • This parameter specifies the names of the modules within the model where Low-Rank Adaptation (LoRA) should be applied. Its goal is to target specific parts of the model for low-rank adaptation, allowing for focused and efficient fine-tuning. You list the names of the modules where LoRA should be applied. Multiple modules can be specified, separated by commas. Example: If you want to apply LoRA to the attention layers and the feed-forward layers, you might specify something like 'attention', 'feed_forward'.
    • Additional Modules: none
      • This parameter specifies the names of the modules apart from the LoRA layers that should be set as trainable during the fine-tuning process. Its goal is to allow certain parts of the model, other than those specified for LoRA, to be trained. This provides additional flexibility in the fine-tuning process. You list the names of the modules to be set as trainable, separated by commas. Example: If you want to fine-tune the embedding layer and the final linear layer along with the LoRA adaptations, you might specify something like 'embedding', 'final_linear'.
  • Freeze configurations: default

    • Freeze configurations allow you to specify which layers or components of the model should not be updated during training. This can be useful in scenarios where only a subset of the model's parameters needs to be fine-tuned.
  • RLHF configurations: default

    • RLHF (Reinforcement Learning from Human Feedback) is a technique that uses human feedback to guide the training process of models. This feedback helps in refining the model's outputs to better align with human preferences.
  • GaLore configurations: default

    • Stands for Gradient Low-Rank Projection, which is a technique to optimize the gradient updates during training by projecting them into a lower-dimensional space.
  • BAdam configurations: default

    • BAdam is a variant of the Adam optimizer that includes block-wise adaptation, which means it adapts the learning rate for different blocks or layers of the model.

All hyper-parameters for training

- model_name_or_path MODEL_NAME_OR_PATH
                      Path to the model weight or identifier from
                      huggingface.co/models or modelscope.cn/models.
                      (default: None)
- adapter_name_or_path ADAPTER_NAME_OR_PATH
                      Path to the adapter weight or identifier from
                      huggingface.co/models. (default: None)
- cache_dir CACHE_DIR
                      Where to store the pre-trained models downloaded from
                      huggingface.co or modelscope.cn. (default: None)
- use_fast_tokenizer [USE_FAST_TOKENIZER]
                      Whether or not to use one of the fast tokenizer
                      (backed by the tokenizers library). (default: True)
- no_use_fast_tokenizer
                      Whether or not to use one of the fast tokenizer
                      (backed by the tokenizers library). (default: False)
- resize_vocab [RESIZE_VOCAB]
                      Whether or not to resize the tokenizer vocab and the
                      embedding layers. (default: False)
- split_special_tokens [SPLIT_SPECIAL_TOKENS]
                      Whether or not the special tokens should be split
                      during the tokenization process. (default: False)
- new_special_tokens NEW_SPECIAL_TOKENS
                      Special tokens to be added into the tokenizer.
                      (default: None)
- model_revision MODEL_REVISION
                      The specific model version to use (can be a branch
                      name, tag name or commit id). (default: main)
- low_cpu_mem_usage [LOW_CPU_MEM_USAGE]
                      Whether or not to use memory-efficient model loading.
                      (default: True)
- no_low_cpu_mem_usage
                      Whether or not to use memory-efficient model loading.
                      (default: False)
- quantization_bit QUANTIZATION_BIT
                      The number of bits to quantize the model using
                      bitsandbytes. (default: None)
- quantization_type {fp4,nf4}
                      Quantization data type to use in int4 training.
                      (default: nf4)
- double_quantization [DOUBLE_QUANTIZATION]
                      Whether or not to use double quantization in int4
                      training. (default: True)
- no_double_quantization
                      Whether or not to use double quantization in int4
                      training. (default: False)
- quantization_device_map {auto}
                      Device map used to infer the 4-bit quantized model,
                      needs bitsandbytes>=0.43.0. (default: None)
- rope_scaling {linear,dynamic}
                      Which scaling strategy should be adopted for the RoPE
                      embeddings. (default: None)
- flash_attn {off,sdpa,fa2,auto}
                      Enable FlashAttention for faster training and
                      inference. (default: auto)
- shift_attn [SHIFT_ATTN]
                      Enable shift short attention (S^2-Attn) proposed by
                      LongLoRA. (default: False)
- mixture_of_depths {convert,load}
                      Convert the model to mixture-of-depths (MoD) or load
                      the MoD model. (default: None)
- use_unsloth [USE_UNSLOTH]
                      Whether or not to use unsloth's optimization for the
                      LoRA training. (default: False)
- visual_inputs [VISUAL_INPUTS]
                      Whethor or not to use multimodal LLM that accepts
                      visual inputs. (default: False)
- moe_aux_loss_coef MOE_AUX_LOSS_COEF
                      Coefficient of the auxiliary router loss in mixture-
                      of-experts model. (default: None)
- disable_gradient_checkpointing [DISABLE_GRADIENT_CHECKPOINTING]
                      Whether or not to disable gradient checkpointing.
                      (default: False)
- upcast_layernorm [UPCAST_LAYERNORM]
                      Whether or not to upcast the layernorm weights in
                      fp32. (default: False)
- upcast_lmhead_output [UPCAST_LMHEAD_OUTPUT]
                      Whether or not to upcast the output of lm_head in
                      fp32. (default: False)
- infer_backend {huggingface,vllm}
                      Backend engine used at inference. (default:
                      huggingface)
- vllm_maxlen VLLM_MAXLEN
                      Maximum input length of the vLLM engine. (default:
                      2048)
- vllm_gpu_util VLLM_GPU_UTIL
                      The fraction of GPU memory in (0,1) to be used for the
                      vLLM engine. (default: 0.9)
- vllm_enforce_eager [VLLM_ENFORCE_EAGER]
                      Whether or not to disable CUDA graph in the vLLM
                      engine. (default: False)
- offload_folder OFFLOAD_FOLDER
                      Path to offload model weights. (default: offload)
- use_cache [USE_CACHE]
                      Whether or not to use KV cache in generation.
                      (default: True)
- no_use_cache        Whether or not to use KV cache in generation.
                      (default: False)
- hf_hub_token HF_HUB_TOKEN
                      Auth token to log in with Hugging Face Hub. (default:
                      None)
- ms_hub_token MS_HUB_TOKEN
                      Auth token to log in with ModelScope Hub. (default:
                      None)
- export_dir EXPORT_DIR
                      Path to the directory to save the exported model.
                      (default: None)
- export_size EXPORT_SIZE
                      The file shard size (in GB) of the exported model.
                      (default: 1)
- export_device EXPORT_DEVICE
                      The device used in model export, use cuda to avoid
                      addmm errors. (default: cpu)
- export_quantization_bit EXPORT_QUANTIZATION_BIT
                      The number of bits to quantize the exported model.
                      (default: None)
- export_quantization_dataset EXPORT_QUANTIZATION_DATASET
                      Path to the dataset or dataset name to use in
                      quantizing the exported model. (default: None)
- export_quantization_nsamples EXPORT_QUANTIZATION_NSAMPLES
                      The number of samples used for quantization. (default:
                      128)
- export_quantization_maxlen EXPORT_QUANTIZATION_MAXLEN
                      The maximum length of the model inputs used for
                      quantization. (default: 1024)
- export_legacy_format [EXPORT_LEGACY_FORMAT]
                      Whether or not to save the `.bin` files instead of
                      `.safetensors`. (default: False)
- export_hub_model_id EXPORT_HUB_MODEL_ID
                      The name of the repository if push the model to the
                      Hugging Face hub. (default: None)
- print_param_status [PRINT_PARAM_STATUS]
                      For debugging purposes, print the status of the
                      parameters in the model. (default: False)
- template TEMPLATE   Which template to use for constructing prompts in
                      training and inference. (default: None)
- dataset DATASET     The name of provided dataset(s) to use. Use commas to
                      separate multiple datasets. (default: None)
- dataset_dir DATASET_DIR
                      Path to the folder containing the datasets. (default:
                      data)
- split SPLIT         Which dataset split to use for training and
                      evaluation. (default: train)
- cutoff_len CUTOFF_LEN
                      The cutoff length of the tokenized inputs in the
                      dataset. (default: 1024)
- reserved_label_len RESERVED_LABEL_LEN
                      The minimum cutoff length reserved for the tokenized
                      labels in the dataset. (default: 1)
- train_on_prompt [TRAIN_ON_PROMPT]
                      Whether to disable the mask on the prompt or not.
                      (default: False)
- streaming [STREAMING]
                      Enable dataset streaming. (default: False)
- buffer_size BUFFER_SIZE
                      Size of the buffer to randomly sample examples from in
                      dataset streaming. (default: 16384)
- mix_strategy {concat,interleave_under,interleave_over}
                      Strategy to use in dataset mixing (concat/interleave)
                      (undersampling/oversampling). (default: concat)
- interleave_probs INTERLEAVE_PROBS
                      Probabilities to sample data from datasets. Use commas
                      to separate multiple datasets. (default: None)
- overwrite_cache [OVERWRITE_CACHE]
                      Overwrite the cached training and evaluation sets.
                      (default: False)
- preprocessing_num_workers PREPROCESSING_NUM_WORKERS
                      The number of processes to use for the pre-processing.
                      (default: None)
- max_samples MAX_SAMPLES
                      For debugging purposes, truncate the number of
                      examples for each dataset. (default: None)
- eval_num_beams EVAL_NUM_BEAMS
                      Number of beams to use for evaluation. This argument
                      will be passed to `model.generate` (default: None)
- ignore_pad_token_for_loss [IGNORE_PAD_TOKEN_FOR_LOSS]
                      Whether or not to ignore the tokens corresponding to
                      padded labels in the loss computation. (default: True)
- no_ignore_pad_token_for_loss
                      Whether or not to ignore the tokens corresponding to
                      padded labels in the loss computation. (default:
                      False)
- val_size VAL_SIZE   Size of the development set, should be an integer or a
                      float in range `[0,1)`. (default: 0.0)
- packing PACKING     Whether or not to pack the sequences in training. Will
                      automatically enable in pre-training. (default: None)
- tokenized_path TOKENIZED_PATH
                      Path to save or load the tokenized datasets. (default:
                      None)
- output_dir OUTPUT_DIR
                      The output directory where the model predictions and
                      checkpoints will be written. (default: None)
- overwrite_output_dir [OVERWRITE_OUTPUT_DIR]
                      Overwrite the content of the output directory. Use
                      this to continue training if output_dir points to a
                      checkpoint directory. (default: False)
- do_train [DO_TRAIN]
                      Whether to run training. (default: False)
- do_eval [DO_EVAL]   Whether to run eval on the dev set. (default: False)
- do_predict [DO_PREDICT]
                      Whether to run predictions on the test set. (default:
                      False)
- evaluation_strategy {no,steps,epoch}
                      The evaluation strategy to use. (default: no)
- prediction_loss_only [PREDICTION_LOSS_ONLY]
                      When performing evaluation and predictions, only
                      returns the loss. (default: False)
- per_device_train_batch_size PER_DEVICE_TRAIN_BATCH_SIZE
                      Batch size per GPU/TPU/MPS/NPU core/CPU for training.
                      (default: 8)
- per_device_eval_batch_size PER_DEVICE_EVAL_BATCH_SIZE
                      Batch size per GPU/TPU/MPS/NPU core/CPU for
                      evaluation. (default: 8)
- per_gpu_train_batch_size PER_GPU_TRAIN_BATCH_SIZE
                      Deprecated, the use of `--per_device_train_batch_size`
                      is preferred. Batch size per GPU/TPU core/CPU for
                      training. (default: None)
- per_gpu_eval_batch_size PER_GPU_EVAL_BATCH_SIZE
                      Deprecated, the use of `--per_device_eval_batch_size`
                      is preferred. Batch size per GPU/TPU core/CPU for
                      evaluation. (default: None)
- gradient_accumulation_steps GRADIENT_ACCUMULATION_STEPS
                      Number of updates steps to accumulate before
                      performing a backward/update pass. (default: 1)
- eval_accumulation_steps EVAL_ACCUMULATION_STEPS
                      Number of predictions steps to accumulate before
                      moving the tensors to the CPU. (default: None)
- eval_delay EVAL_DELAY
                      Number of epochs or steps to wait for before the first
                      evaluation can be performed, depending on the
                      evaluation_strategy. (default: 0)
- learning_rate LEARNING_RATE
                      The initial learning rate for AdamW. (default: 5e-05)
- weight_decay WEIGHT_DECAY
                      Weight decay for AdamW if we apply some. (default:
                      0.0)
- adam_beta1 ADAM_BETA1
                      Beta1 for AdamW optimizer (default: 0.9)
- adam_beta2 ADAM_BETA2
                      Beta2 for AdamW optimizer (default: 0.999)
- adam_epsilon ADAM_EPSILON
                      Epsilon for AdamW optimizer. (default: 1e-08)
- max_grad_norm MAX_GRAD_NORM
                      Max gradient norm. (default: 1.0)
- num_train_epochs NUM_TRAIN_EPOCHS
                      Total number of training epochs to perform. (default:
                      3.0)
- max_steps MAX_STEPS
                      If > 0: set total number of training steps to perform.
                      Override num_train_epochs. (default: -1)
- lr_scheduler_type {linear,cosine,cosine_with_restarts,polynomial,constant,constant_with_warmup,inverse_sqrt,reduce_lr_on_plateau}
                      The scheduler type to use. (default: linear)
- lr_scheduler_kwargs LR_SCHEDULER_KWARGS
                      Extra parameters for the lr_scheduler such as
                      {'num_cycles': 1} for the cosine with hard restarts
                      (default: {})
- warmup_ratio WARMUP_RATIO
                      Linear warmup over warmup_ratio fraction of total
                      steps. (default: 0.0)
- warmup_steps WARMUP_STEPS
                      Linear warmup over warmup_steps. (default: 0)
- log_level {detail,debug,info,warning,error,critical,passive}
                      Logger log level to use on the main node. Possible
                      choices are the log levels as strings: 'debug',
                      'info', 'warning', 'error' and 'critical', plus a
                      'passive' level which doesn't set anything and lets
                      the application set the level. Defaults to 'passive'.
                      (default: passive)
- log_level_replica {detail,debug,info,warning,error,critical,passive}
                      Logger log level to use on replica nodes. Same choices
                      and defaults as ``log_level`` (default: warning)
- log_on_each_node [LOG_ON_EACH_NODE]
                      When doing a multinode distributed training, whether
                      to log once per node or just once on the main node.
                      (default: True)
- no_log_on_each_node
                      When doing a multinode distributed training, whether
                      to log once per node or just once on the main node.
                      (default: False)
- logging_dir LOGGING_DIR
                      Tensorboard log dir. (default: None)
- logging_strategy {no,steps,epoch}
                      The logging strategy to use. (default: steps)
- logging_first_step [LOGGING_FIRST_STEP]
                      Log the first global_step (default: False)
- logging_steps LOGGING_STEPS
                      Log every X updates steps. Should be an integer or a
                      float in range `[0,1)`. If smaller than 1, will be
                      interpreted as ratio of total training steps.
                      (default: 500)
- logging_nan_inf_filter [LOGGING_NAN_INF_FILTER]
                      Filter nan and inf losses for logging. (default: True)
- no_logging_nan_inf_filter
                      Filter nan and inf losses for logging. (default:
                      False)
- save_strategy {no,steps,epoch}
                      The checkpoint save strategy to use. (default: steps)
- save_steps SAVE_STEPS
                      Save checkpoint every X updates steps. Should be an
                      integer or a float in range `[0,1)`. If smaller than
                      1, will be interpreted as ratio of total training
                      steps. (default: 500)
- save_total_limit SAVE_TOTAL_LIMIT
                      If a value is passed, will limit the total amount of
                      checkpoints. Deletes the older checkpoints in
                      `output_dir`. When `load_best_model_at_end` is
                      enabled, the 'best' checkpoint according to
                      `metric_for_best_model` will always be retained in
                      addition to the most recent ones. For example, for
                      `save_total_limit=5` and
                      `load_best_model_at_end=True`, the four last
                      checkpoints will always be retained alongside the best
                      model. When `save_total_limit=1` and
                      `load_best_model_at_end=True`, it is possible that two
                      checkpoints are saved: the last one and the best one
                      (if they are different). Default is unlimited
                      checkpoints (default: None)
- save_safetensors [SAVE_SAFETENSORS]
                      Use safetensors saving and loading for state dicts
                      instead of default torch.load and torch.save.
                      (default: True)
- no_save_safetensors
                      Use safetensors saving and loading for state dicts
                      instead of default torch.load and torch.save.
                      (default: False)
- save_on_each_node [SAVE_ON_EACH_NODE]
                      When doing multi-node distributed training, whether to
                      save models and checkpoints on each node, or only on
                      the main one (default: False)
- save_only_model [SAVE_ONLY_MODEL]
                      When checkpointing, whether to only save the model, or
                      also the optimizer, scheduler & rng state.Note that
                      when this is true, you won't be able to resume
                      training from checkpoint.This enables you to save
                      storage by not storing the optimizer, scheduler & rng
                      state.You can only load the model using
                      from_pretrained with this option set to True.
                      (default: False)
- no_cuda [NO_CUDA]   This argument is deprecated. It will be removed in
                      version 5.0 of 🤗 Transformers. (default: False)
- use_cpu [USE_CPU]   Whether or not to use cpu. If set to False, we will
                      use cuda/tpu/mps/npu device if available. (default:
                      False)
- use_mps_device [USE_MPS_DEVICE]
                      This argument is deprecated. `mps` device will be used
                      if available similar to `cuda` device. It will be
                      removed in version 5.0 of 🤗 Transformers (default:
                      False)
- seed SEED           Random seed that will be set at the beginning of
                      training. (default: 42)
- data_seed DATA_SEED
                      Random seed to be used with data samplers. (default:
                      None)
- jit_mode_eval [JIT_MODE_EVAL]
                      Whether or not to use PyTorch jit trace for inference
                      (default: False)
- use_ipex [USE_IPEX]
                      Use Intel extension for PyTorch when it is available,
                      installation: 'https://github.com/intel/intel-
                      extension-for-pytorch' (default: False)
- bf16 [BF16]         Whether to use bf16 (mixed) precision instead of
                      32-bit. Requires Ampere or higher NVIDIA architecture
                      or using CPU (use_cpu) or Ascend NPU. This is an
                      experimental API and it may change. (default: False)
- fp16 [FP16]         Whether to use fp16 (mixed) precision instead of
                      32-bit (default: False)
- fp16_opt_level FP16_OPT_LEVEL
                      For fp16: Apex AMP optimization level selected in
                      ['O0', 'O1', 'O2', and 'O3']. See details at
                      https://nvidia.github.io/apex/amp.html (default: O1)
- half_precision_backend {auto,apex,cpu_amp}
                      The backend to be used for half precision. (default:
                      auto)
- bf16_full_eval [BF16_FULL_EVAL]
                      Whether to use full bfloat16 evaluation instead of
                      32-bit. This is an experimental API and it may change.
                      (default: False)
- fp16_full_eval [FP16_FULL_EVAL]
                      Whether to use full float16 evaluation instead of
                      32-bit (default: False)
- tf32 TF32           Whether to enable tf32 mode, available in Ampere and
                      newer GPU architectures. This is an experimental API
                      and it may change. (default: None)
- local_rank LOCAL_RANK
                      For distributed training: local_rank (default: -1)
- ddp_backend {nccl,gloo,mpi,ccl,hccl}
                      The backend to be used for distributed training
                      (default: None)
- tpu_num_cores TPU_NUM_CORES
                      TPU: Number of TPU cores (automatically passed by
                      launcher script) (default: None)
- tpu_metrics_debug [TPU_METRICS_DEBUG]
                      Deprecated, the use of `--debug tpu_metrics_debug` is
                      preferred. TPU: Whether to print debug metrics
                      (default: False)
- debug DEBUG [DEBUG ...]
                      Whether or not to enable debug mode. Current options:
                      `underflow_overflow` (Detect underflow and overflow in
                      activations and weights), `tpu_metrics_debug` (print
                      debug metrics on TPU). (default: None)
- dataloader_drop_last [DATALOADER_DROP_LAST]
                      Drop the last incomplete batch if it is not divisible
                      by the batch size. (default: False)
- eval_steps EVAL_STEPS
                      Run an evaluation every X steps. Should be an integer
                      or a float in range `[0,1)`. If smaller than 1, will
                      be interpreted as ratio of total training steps.
                      (default: None)
- dataloader_num_workers DATALOADER_NUM_WORKERS
                      Number of subprocesses to use for data loading
                      (PyTorch only). 0 means that the data will be loaded
                      in the main process. (default: 0)
- dataloader_prefetch_factor DATALOADER_PREFETCH_FACTOR
                      Number of batches loaded in advance by each worker. 2
                      means there will be a total of 2 * num_workers batches
                      prefetched across all workers. Default is 2 for
                      PyTorch < 2.0.0 and otherwise None. (default: None)
- past_index PAST_INDEX
                      If >=0, uses the corresponding part of the output as
                      the past state for next step. (default: -1)
- run_name RUN_NAME   An optional descriptor for the run. Notably used for
                      wandb logging. (default: None)
- disable_tqdm DISABLE_TQDM
                      Whether or not to disable the tqdm progress bars.
                      (default: None)
- remove_unused_columns [REMOVE_UNUSED_COLUMNS]
                      Remove columns not required by the model when using an
                      nlp.Dataset. (default: True)
- no_remove_unused_columns
                      Remove columns not required by the model when using an
                      nlp.Dataset. (default: False)
- label_names LABEL_NAMES [LABEL_NAMES ...]
                      The list of keys in your dictionary of inputs that
                      correspond to the labels. (default: None)
- load_best_model_at_end [LOAD_BEST_MODEL_AT_END]
                      Whether or not to load the best model found during
                      training at the end of training. When this option is
                      enabled, the best checkpoint will always be saved. See
                      `save_total_limit` for more. (default: False)
- metric_for_best_model METRIC_FOR_BEST_MODEL
                      The metric to use to compare two different models.
                      (default: None)
- greater_is_better GREATER_IS_BETTER
                      Whether the `metric_for_best_model` should be
                      maximized or not. (default: None)
- ignore_data_skip [IGNORE_DATA_SKIP]
                      When resuming training, whether or not to skip the
                      first epochs and batches to get to the same training
                      data. (default: False)
- fsdp FSDP           Whether or not to use PyTorch Fully Sharded Data
                      Parallel (FSDP) training (in distributed training
                      only). The base option should be `full_shard`,
                      `shard_grad_op` or `no_shard` and you can add CPU-
                      offload to `full_shard` or `shard_grad_op` like this:
                      full_shard offload` or `shard_grad_op offload`. You
                      can add auto-wrap to `full_shard` or `shard_grad_op`
                      with the same syntax: full_shard auto_wrap` or
                      `shard_grad_op auto_wrap`. (default: )
- fsdp_min_num_params FSDP_MIN_NUM_PARAMS
                      This parameter is deprecated. FSDP's minimum number of
                      parameters for Default Auto Wrapping. (useful only
                      when `fsdp` field is passed). (default: 0)
- fsdp_config FSDP_CONFIG
                      Config to be used with FSDP (Pytorch Fully Sharded
                      Data Parallel). The value is either a fsdp json config
                      file (e.g., `fsdp_config.json`) or an already loaded
                      json file as `dict`. (default: None)
- fsdp_transformer_layer_cls_to_wrap FSDP_TRANSFORMER_LAYER_CLS_TO_WRAP
                      This parameter is deprecated. Transformer layer class
                      name (case-sensitive) to wrap, e.g, `BertLayer`,
                      `GPTJBlock`, `T5Block` .... (useful only when `fsdp`
                      flag is passed). (default: None)
- accelerator_config ACCELERATOR_CONFIG
                      Config to be used with the internal Accelerator object
                      initializtion. The value is either a accelerator json
                      config file (e.g., `accelerator_config.json`) or an
                      already loaded json file as `dict`. (default: None)
- deepspeed DEEPSPEED
                      Enable deepspeed and pass the path to deepspeed json
                      config file (e.g. `ds_config.json`) or an already
                      loaded json file as a dict (default: None)
- label_smoothing_factor LABEL_SMOOTHING_FACTOR
                      The label smoothing epsilon to apply (zero means no
                      label smoothing). (default: 0.0)
- optim {adamw_hf,adamw_torch,adamw_torch_fused,adamw_torch_xla,adamw_torch_npu_fused,adamw_apex_fused,adafactor,adamw_anyprecision,sgd,adagrad,adamw_bnb_8bit,adamw_8bit,lion_8bit,lion_32bit,paged_adamw_32bit,paged_adamw_8bit,paged_lion_32bit,paged_lion_8bit,rmsprop,rmsprop_bnb,rmsprop_bnb_8bit,rmsprop_bnb_32bit,galore_adamw,galore_adamw_8bit,galore_adafactor,galore_adamw_layerwise,galore_adamw_8bit_layerwise,galore_adafactor_layerwise}
                      The optimizer to use. (default: adamw_torch)
- optim_args OPTIM_ARGS
                      Optional arguments to supply to optimizer. (default:
                      None)
- adafactor [ADAFACTOR]
                      Whether or not to replace AdamW by Adafactor.
                      (default: False)
- group_by_length [GROUP_BY_LENGTH]
                      Whether or not to group samples of roughly the same
                      length together when batching. (default: False)
- length_column_name LENGTH_COLUMN_NAME
                      Column name with precomputed lengths to use when
                      grouping by length. (default: length)
- report_to REPORT_TO [REPORT_TO ...]
                      The list of integrations to report the results and
                      logs to. (default: None)
- ddp_find_unused_parameters DDP_FIND_UNUSED_PARAMETERS
                      When using distributed training, the value of the flag
                      `find_unused_parameters` passed to
                      `DistributedDataParallel`. (default: None)
- ddp_bucket_cap_mb DDP_BUCKET_CAP_MB
                      When using distributed training, the value of the flag
                      `bucket_cap_mb` passed to `DistributedDataParallel`.
                      (default: None)
- ddp_broadcast_buffers DDP_BROADCAST_BUFFERS
                      When using distributed training, the value of the flag
                      `broadcast_buffers` passed to
                      `DistributedDataParallel`. (default: None)
- dataloader_pin_memory [DATALOADER_PIN_MEMORY]
                      Whether or not to pin memory for DataLoader. (default:
                      True)
- no_dataloader_pin_memory
                      Whether or not to pin memory for DataLoader. (default:
                      False)
- dataloader_persistent_workers [DATALOADER_PERSISTENT_WORKERS]
                      If True, the data loader will not shut down the worker
                      processes after a dataset has been consumed once. This
                      allows to maintain the workers Dataset instances
                      alive. Can potentially speed up training, but will
                      increase RAM usage. (default: False)
- skip_memory_metrics [SKIP_MEMORY_METRICS]
                      Whether or not to skip adding of memory profiler
                      reports to metrics. (default: True)
- no_skip_memory_metrics
                      Whether or not to skip adding of memory profiler
                      reports to metrics. (default: False)
- use_legacy_prediction_loop [USE_LEGACY_PREDICTION_LOOP]
                      Whether or not to use the legacy prediction_loop in
                      the Trainer. (default: False)
- push_to_hub [PUSH_TO_HUB]
                      Whether or not to upload the trained model to the
                      model hub after training. (default: False)
- resume_from_checkpoint RESUME_FROM_CHECKPOINT
                      The path to a folder with a valid checkpoint for your
                      model. (default: None)
- hub_model_id HUB_MODEL_ID
                      The name of the repository to keep in sync with the
                      local `output_dir`. (default: None)
- hub_strategy {end,every_save,checkpoint,all_checkpoints}
                      The hub strategy to use when `--push_to_hub` is
                      activated. (default: every_save)
- hub_token HUB_TOKEN
                      The token to use to push to the Model Hub. (default:
                      None)
- hub_private_repo [HUB_PRIVATE_REPO]
                      Whether the model repository is private or not.
                      (default: False)
- hub_always_push [HUB_ALWAYS_PUSH]
                      Unless `True`, the Trainer will skip pushes if the
                      previous one wasn't finished yet. (default: False)
- gradient_checkpointing [GRADIENT_CHECKPOINTING]
                      If True, use gradient checkpointing to save memory at
                      the expense of slower backward pass. (default: False)
- gradient_checkpointing_kwargs GRADIENT_CHECKPOINTING_KWARGS
                      Gradient checkpointing key word arguments such as
                      `use_reentrant`. Will be passed to
                      `torch.utils.checkpoint.checkpoint` through
                      `model.gradient_checkpointing_enable`. (default: None)
- include_inputs_for_metrics [INCLUDE_INPUTS_FOR_METRICS]
                      Whether or not the inputs will be passed to the
                      `compute_metrics` function. (default: False)
- fp16_backend {auto,apex,cpu_amp}
                      Deprecated. Use half_precision_backend instead
                      (default: auto)
- push_to_hub_model_id PUSH_TO_HUB_MODEL_ID
                      The name of the repository to which push the
                      `Trainer`. (default: None)
- push_to_hub_organization PUSH_TO_HUB_ORGANIZATION
                      The name of the organization in with to which push the
                      `Trainer`. (default: None)
- push_to_hub_token PUSH_TO_HUB_TOKEN
                      The token to use to push to the Model Hub. (default:
                      None)
- mp_parameters MP_PARAMETERS
                      Used by the SageMaker launcher to send mp-specific
                      args. Ignored in Trainer (default: )
- auto_find_batch_size [AUTO_FIND_BATCH_SIZE]
                      Whether to automatically decrease the batch size in
                      half and rerun the training loop again each time a
                      CUDA Out-of-Memory was reached (default: False)
- full_determinism [FULL_DETERMINISM]
                      Whether to call enable_full_determinism instead of
                      set_seed for reproducibility in distributed training.
                      Important: this will negatively impact the
                      performance, so only use it for debugging. (default:
                      False)
- torchdynamo TORCHDYNAMO
                      This argument is deprecated, use
                      `--torch_compile_backend` instead. (default: None)
- ray_scope RAY_SCOPE
                      The scope to use when doing hyperparameter search with
                      Ray. By default, `"last"` will be used. Ray will then
                      use the last checkpoint of all trials, compare those,
                      and select the best one. However, other options are
                      also available. See the Ray documentation (https://doc
                      s.ray.io/en/latest/tune/api_docs/analysis.html#ray.tun
                      e.ExperimentAnalysis.get_best_trial) for more options.
                      (default: last)
- ddp_timeout DDP_TIMEOUT
                      Overrides the default timeout for distributed training
                      (value should be given in seconds). (default: 1800)
- torch_compile [TORCH_COMPILE]
                      If set to `True`, the model will be wrapped in
                      `torch.compile`. (default: False)
- torch_compile_backend TORCH_COMPILE_BACKEND
                      Which backend to use with `torch.compile`, passing one
                      will trigger a model compilation. (default: None)
- torch_compile_mode TORCH_COMPILE_MODE
                      Which mode to use with `torch.compile`, passing one
                      will trigger a model compilation. (default: None)
- dispatch_batches DISPATCH_BATCHES
                      Deprecated. Pass {'dispatch_batches':VALUE} to
                      `accelerator_config`. (default: None)
- split_batches SPLIT_BATCHES
                      Deprecated. Pass {'split_batches':True} to
                      `accelerator_config`. (default: None)
- include_tokens_per_second [INCLUDE_TOKENS_PER_SECOND]
                      If set to `True`, the speed metrics will include `tgs`
                      (tokens per second per device). (default: False)
- include_num_input_tokens_seen [INCLUDE_NUM_INPUT_TOKENS_SEEN]
                      If set to `True`, will track the number of input
                      tokens seen throughout training. (May be slower in
                      distributed training) (default: False)
- neftune_noise_alpha NEFTUNE_NOISE_ALPHA
                      Activates neftune noise embeddings into the model.
                      NEFTune has been proven to drastically improve model
                      performances for instrcution fine-tuning. Check out
                      the original paper here:
                      https://arxiv.org/abs/2310.05914 and the original code
                      here: https://github.com/neelsjain/NEFTune. Only
                      supported for `PreTrainedModel` and `PeftModel`
                      classes. (default: None)
- optim_target_modules OPTIM_TARGET_MODULES
                      Target modules for the optimizer defined in the
                      `optim` argument. Only used for the GaLore optimizer
                      at the moment. (default: None)
- sortish_sampler [SORTISH_SAMPLER]
                      Whether to use SortishSampler or not. (default: False)
- predict_with_generate [PREDICT_WITH_GENERATE]
                      Whether to use generate to calculate generative
                      metrics (ROUGE, BLEU). (default: False)
- generation_max_length GENERATION_MAX_LENGTH
                      The `max_length` to use on each evaluation loop when
                      `predict_with_generate=True`. Will default to the
                      `max_length` value of the model configuration.
                      (default: None)
- generation_num_beams GENERATION_NUM_BEAMS
                      The `num_beams` to use on each evaluation loop when
                      `predict_with_generate=True`. Will default to the
                      `num_beams` value of the model configuration.
                      (default: None)
- generation_config GENERATION_CONFIG
                      Model id, file path or url pointing to a
                      GenerationConfig json file, to use during prediction.
                      (default: None)
- use_badam [USE_BADAM]
                      Whether or not to use the BAdam optimizer. (default:
                      False)
- badam_mode {layer,ratio}
                      Whether to use layer-wise or ratio-wise BAdam
                      optimizer. (default: layer)
- badam_start_block BADAM_START_BLOCK
                      The starting block index for layer-wise BAdam.
                      (default: None)
- badam_switch_mode {ascending,descending,random,fixed}
                      the strategy of picking block to update for layer-wise
                      BAdam. (default: ascending)
- badam_switch_interval BADAM_SWITCH_INTERVAL
                      Number of steps to update the block for layer-wise
                      BAdam. Use -1 to disable the block update. (default:
                      50)
- badam_update_ratio BADAM_UPDATE_RATIO
                      The ratio of the update for ratio-wise BAdam.
                      (default: 0.05)
- badam_mask_mode {adjacent,scatter}
                      The mode of the mask for BAdam optimizer. `adjacent`
                      means that the trainable parameters are adjacent to
                      each other, `scatter` means that trainable parameters
                      are randomly choosed from the weight. (default:
                      adjacent)
- badam_verbose BADAM_VERBOSE
                      The verbosity level of BAdam optimizer. 0 for no
                      print, 1 for print the block prefix, 2 for print
                      trainable parameters (default: 0)
- use_galore [USE_GALORE]
                      Whether or not to use the gradient low-Rank projection
                      (GaLore). (default: False)
- galore_target GALORE_TARGET
                      Name(s) of modules to apply GaLore. Use commas to
                      separate multiple modules. Use "all" to specify all
                      the linear modules. (default: all)
- galore_rank GALORE_RANK
                      The rank of GaLore gradients. (default: 16)
- galore_update_interval GALORE_UPDATE_INTERVAL
                      Number of steps to update the GaLore projection.
                      (default: 200)
- galore_scale GALORE_SCALE
                      GaLore scaling coefficient. (default: 0.25)
- galore_proj_type {std,reverse_std,right,left,full}
                      Type of GaLore projection. (default: std)
- galore_layerwise [GALORE_LAYERWISE]
                      Whether or not to enable layer-wise update to further
                      save memory. (default: False)
- dpo_beta DPO_BETA   The beta parameter for the DPO loss. (default: 0.1)
- dpo_loss {sigmoid,hinge,ipo,kto_pair}
                      The type of DPO loss to use. (default: sigmoid)
- dpo_label_smoothing DPO_LABEL_SMOOTHING
                      The robust DPO label smoothing parameter in cDPO that
                      should be between 0 and 0.5. (default: 0.0)
- dpo_ftx DPO_FTX     The supervised fine-tuning loss coefficient in DPO
                      training. (default: 0.0)
- orpo_beta ORPO_BETA
                      The beta (lambda) parameter in ORPO loss representing
                      the weight of the SFT loss. (default: 0.1)
- ppo_buffer_size PPO_BUFFER_SIZE
                      The number of mini-batches to make experience buffer
                      in a PPO optimization step. (default: 1)
- ppo_epochs PPO_EPOCHS
                      The number of epochs to perform in a PPO optimization
                      step. (default: 4)
- ppo_score_norm [PPO_SCORE_NORM]
                      Use score normalization in PPO training. (default:
                      False)
- ppo_target PPO_TARGET
                      Target KL value for adaptive KL control in PPO
                      training. (default: 6.0)
- ppo_whiten_rewards [PPO_WHITEN_REWARDS]
                      Whiten the rewards before compute advantages in PPO
                      training. (default: False)
- ref_model REF_MODEL
                      Path to the reference model used for the PPO or DPO
                      training. (default: None)
- ref_model_adapters REF_MODEL_ADAPTERS
                      Path to the adapters of the reference model. (default:
                      None)
- ref_model_quantization_bit REF_MODEL_QUANTIZATION_BIT
                      The number of bits to quantize the reference model.
                      (default: None)
- reward_model REWARD_MODEL
                      Path to the reward model used for the PPO training.
                      (default: None)
- reward_model_adapters REWARD_MODEL_ADAPTERS
                      Path to the adapters of the reward model. (default:
                      None)
- reward_model_quantization_bit REWARD_MODEL_QUANTIZATION_BIT
                      The number of bits to quantize the reward model.
                      (default: None)
- reward_model_type {lora,full,api}
                      The type of the reward model in PPO training. Lora
                      model only supports lora training. (default: lora)
- additional_target ADDITIONAL_TARGET
                      Name(s) of modules apart from LoRA layers to be set as
                      trainable and saved in the final checkpoint. (default:
                      None)
- lora_alpha LORA_ALPHA
                      The scale factor for LoRA fine-tuning (default:
                      lora_rank * 2). (default: None)
- lora_dropout LORA_DROPOUT
                      Dropout rate for the LoRA fine-tuning. (default: 0.0)
- lora_rank LORA_RANK
                      The intrinsic dimension for LoRA fine-tuning.
                      (default: 8)
- lora_target LORA_TARGET
                      Name(s) of target modules to apply LoRA. Use commas to
                      separate multiple modules. Use "all" to specify all
                      the linear modules. LLaMA choices: ["q_proj",
                      "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj",
                      "down_proj"], BLOOM & Falcon & ChatGLM choices:
                      ["query_key_value", "dense", "dense_h_to_4h",
                      "dense_4h_to_h"], Baichuan choices: ["W_pack",
                      "o_proj", "gate_proj", "up_proj", "down_proj"], Qwen
                      choices: ["c_attn", "attn.c_proj", "w1", "w2",
                      "mlp.c_proj"], InternLM2 choices: ["wqkv", "wo", "w1",
                      "w2", "w3"], Others choices: the same as LLaMA.
                      (default: all)
- loraplus_lr_ratio LORAPLUS_LR_RATIO
                      LoRA plus learning rate ratio (lr_B / lr_A). (default:
                      None)
- loraplus_lr_embedding LORAPLUS_LR_EMBEDDING
                      LoRA plus learning rate for lora embedding layers.
                      (default: 1e-06)
- use_rslora [USE_RSLORA]
                      Whether or not to use the rank stabilization scaling
                      factor for LoRA layer. (default: False)
- use_dora [USE_DORA]
                      Whether or not to use the weight-decomposed lora
                      method (DoRA). (default: False)
- create_new_adapter [CREATE_NEW_ADAPTER]
                      Whether or not to create a new adapter with randomly
                      initialized weight. (default: False)
- name_module_trainable NAME_MODULE_TRAINABLE
                      Name of trainable modules for partial-parameter
                      (freeze) fine-tuning. Use commas to separate multiple
                      modules. Use "all" to specify all the available
                      modules. LLaMA choices: ["mlp", "self_attn"], BLOOM &
                      Falcon & ChatGLM choices: ["mlp", "self_attention"],
                      Qwen choices: ["mlp", "attn"], InternLM2 choices:
                      ["feed_forward", "attention"], Others choices: the
                      same as LLaMA. (default: all)
- num_layer_trainable NUM_LAYER_TRAINABLE
                      The number of trainable layers for partial-parameter
                      (freeze) fine-tuning. (default: 2)
- pure_bf16 [PURE_BF16]
                      Whether or not to train model in purely bf16 precision
                      (without AMP). (default: False)
- stage {pt,sft,rm,ppo,dpo,orpo}
                      Which stage will be performed in training. (default:
                      sft)
- finetuning_type {lora,freeze,full}
                      Which fine-tuning method to use. (default: lora)
- use_llama_pro [USE_LLAMA_PRO]
                      Whether or not to make only the parameters in the
                      expanded blocks trainable. (default: False)
- plot_loss [PLOT_LOSS]
                      Whether or not to save the training loss curves.
                      (default: False)
- do_sample [DO_SAMPLE]
                      Whether or not to use sampling, use greedy decoding
                      otherwise. (default: True)
- no_do_sample        Whether or not to use sampling, use greedy decoding
                      otherwise. (default: False)
- temperature TEMPERATURE
                      The value used to modulate the next token
                      probabilities. (default: 0.95)
- top_p TOP_P         The smallest set of most probable tokens with
                      probabilities that add up to top_p or higher are kept.
                      (default: 0.7)
- top_k TOP_K         The number of highest probability vocabulary tokens to
                      keep for top-k filtering. (default: 50)
- num_beams NUM_BEAMS
                      Number of beams for beam search. 1 means no beam
                      search. (default: 1)
- max_length MAX_LENGTH
                      The maximum length the generated tokens can have. It
                      can be overridden by max_new_tokens. (default: 1024)
- max_new_tokens MAX_NEW_TOKENS
                      The maximum numbers of tokens to generate, ignoring
                      the number of tokens in the prompt. (default: 1024)
- repetition_penalty REPETITION_PENALTY
                      The parameter for repetition penalty. 1.0 means no
                      penalty. (default: 1.0)
- length_penalty LENGTH_PENALTY
                      Exponential penalty to the length that is used with
                      beam-based generation. (default: 1.0)

All parameters for exporting/merging models

- help            show this help message and exit
- model_name_or_path MODEL_NAME_OR_PATH
                        Path to the model weight or identifier from huggingface.co/models or modelscope.cn/models. (default: None)
- adapter_name_or_path ADAPTER_NAME_OR_PATH
                       Path to the adapter weight or identifier from huggingface.co/models. (default: None)
- cache_dir CACHE_DIR
                        Where to store the pre-trained models downloaded from huggingface.co or modelscope.cn. (default: None)
- use_fast_tokenizer [USE_FAST_TOKENIZER]
                        Whether or not to use one of the fast tokenizer (backed by the tokenizers library). (default: True)
- no_use_fast_tokenizer
                        Whether or not to use one of the fast tokenizer (backed by the tokenizers library). (default: False)
- resize_vocab [RESIZE_VOCAB]
                        Whether or not to resize the tokenizer vocab and the embedding layers. (default: False)
- split_special_tokens [SPLIT_SPECIAL_TOKENS]
                        Whether or not the special tokens should be split during the tokenization process. (default: False)
- new_special_tokens NEW_SPECIAL_TOKENS
                        Special tokens to be added into the tokenizer. (default: None)
- model_revision MODEL_REVISION
                        The specific model version to use (can be a branch name, tag name or commit id). (default: main)
- low_cpu_mem_usage [LOW_CPU_MEM_USAGE]
                        Whether or not to use memory-efficient model loading. (default: True)
- no_low_cpu_mem_usage
                        Whether or not to use memory-efficient model loading. (default: False)
- quantization_bit QUANTIZATION_BIT
                        The number of bits to quantize the model using bitsandbytes. (default: None)
- quantization_type {fp4,nf4}
                        Quantization data type to use in int4 training. (default: nf4)
- double_quantization [DOUBLE_QUANTIZATION]
                        Whether or not to use double quantization in int4 training. (default: True)
- no_double_quantization
                        Whether or not to use double quantization in int4 training. (default: False)
- quantization_device_map {auto}
                        Device map used to infer the 4-bit quantized model, needs bitsandbytes>=0.43.0. (default: None)
- rope_scaling {linear,dynamic}
                        Which scaling strategy should be adopted for the RoPE embeddings. (default: None)
- flash_attn {off,sdpa,fa2,auto}
                        Enable FlashAttention for faster training and inference. (default: auto)
-shift_attn [SHIFT_ATTN]
                        Enable shift short attention (S^2-Attn) proposed by LongLoRA. (default: False)
- mixture_of_depths {convert,load}
                        Convert the model to mixture-of-depths (MoD) or load the MoD model. (default: None)
- use_unsloth [USE_UNSLOTH]
                        Whether or not to use unsloth's optimization for the LoRA training. (default: False)
- visual_inputs [VISUAL_INPUTS]
                        Whethor or not to use multimodal LLM that accepts visual inputs. (default: False)
- moe_aux_loss_coef MOE_AUX_LOSS_COEF
                        Coefficient of the auxiliary router loss in mixture-of-experts model. (default: None)
- disable_gradient_checkpointing [DISABLE_GRADIENT_CHECKPOINTING]
                        Whether or not to disable gradient checkpointing. (default: False)
- upcast_layernorm [UPCAST_LAYERNORM]
                        Whether or not to upcast the layernorm weights in fp32. (default: False)
- upcast_lmhead_output [UPCAST_LMHEAD_OUTPUT]
                        Whether or not to upcast the output of lm_head in fp32. (default: False)
- infer_backend {huggingface,vllm}
                        Backend engine used at inference. (default: huggingface)
- vllm_maxlen VLLM_MAXLEN
                        Maximum input length of the vLLM engine. (default: 2048)
- vllm_gpu_util VLLM_GPU_UTIL
                        The fraction of GPU memory in (0,1) to be used for the vLLM engine. (default: 0.9)
- vllm_enforce_eager [VLLM_ENFORCE_EAGER]
                        Whether or not to disable CUDA graph in the vLLM engine. (default: False)
- offload_folder OFFLOAD_FOLDER
                        Path to offload model weights. (default: offload)
- use_cache [USE_CACHE]
                        Whether or not to use KV cache in generation. (default: True)
- no_use_cache        Whether or not to use KV cache in generation. (default: False)
- hf_hub_token HF_HUB_TOKEN
                        Auth token to log in with Hugging Face Hub. (default: None)
- ms_hub_token MS_HUB_TOKEN
                        Auth token to log in with ModelScope Hub. (default: None)
- export_dir EXPORT_DIR
                        Path to the directory to save the exported model. (default: None)
- export_size EXPORT_SIZE
                        The file shard size (in GB) of the exported model. (default: 1)
- export_device EXPORT_DEVICE
                        The device used in model export, use cuda to avoid addmm errors. (default: cpu)
- export_quantization_bit EXPORT_QUANTIZATION_BIT
                        The number of bits to quantize the exported model. (default: None)
- export_quantization_dataset EXPORT_QUANTIZATION_DATASET
                        Path to the dataset or dataset name to use in quantizing the exported model. (default: None)
- export_quantization_nsamples EXPORT_QUANTIZATION_NSAMPLES
                        The number of samples used for quantization. (default: 128)
- export_quantization_maxlen EXPORT_QUANTIZATION_MAXLEN
                        The maximum length of the model inputs used for quantization. (default: 1024)
- export_legacy_format [EXPORT_LEGACY_FORMAT]
                        Whether or not to save the `.bin` files instead of `.safetensors`. (default: False)
- export_hub_model_id EXPORT_HUB_MODEL_ID
                        The name of the repository if push the model to the Hugging Face hub. (default: None)
- print_param_status [PRINT_PARAM_STATUS]
                        For debugging purposes, print the status of the parameters in the model. (default: False)
- template TEMPLATE   Which template to use for constructing prompts in training and inference. (default: None)
- dataset DATASET     The name of provided dataset(s) to use. Use commas to separate multiple datasets. (default: None)
- eval_dataset EVAL_DATASET
                        The name of provided validation dataset(s) to use. Use commas to separate multiple datasets. (default: None)
- dataset_dir DATASET_DIR
                        Path to the folder containing the datasets. (default: data)
- split SPLIT         Which dataset split to use for training and evaluation. (default: train)
- cutoff_len CUTOFF_LEN
                        The cutoff length of the tokenized inputs in the dataset. (default: 1024)
- reserved_label_len RESERVED_LABEL_LEN
                        The minimum cutoff length reserved for the tokenized labels in the dataset. (default: 1)
- train_on_prompt [TRAIN_ON_PROMPT]
                        Whether to disable the mask on the prompt or not. (default: False)
- streaming [STREAMING]
                        Enable dataset streaming. (default: False)
- buffer_size BUFFER_SIZE
                        Size of the buffer to randomly sample examples from in dataset streaming. (default: 16384)
- mix_strategy {concat,interleave_under,interleave_over}
                        Strategy to use in dataset mixing (concat/interleave) (undersampling/oversampling). (default: concat)
- interleave_probs INTERLEAVE_PROBS
                        Probabilities to sample data from datasets. Use commas to separate multiple datasets. (default: None)
- overwrite_cache [OVERWRITE_CACHE]
                        Overwrite the cached training and evaluation sets. (default: False)
- preprocessing_num_workers PREPROCESSING_NUM_WORKERS
                        The number of processes to use for the pre-processing. (default: None)
- max_samples MAX_SAMPLES
                        For debugging purposes, truncate the number of examples for each dataset. (default: None)
- eval_num_beams EVAL_NUM_BEAMS
                        Number of beams to use for evaluation. This argument will be passed to `model.generate` (default: None)
- ignore_pad_token_for_loss [IGNORE_PAD_TOKEN_FOR_LOSS]
                        Whether or not to ignore the tokens corresponding to padded labels in the loss computation. (default: True)
- no_ignore_pad_token_for_loss
                        Whether or not to ignore the tokens corresponding to padded labels in the loss computation. (default: False)
- val_size VAL_SIZE   Size of the development set, should be an integer or a float in range `[0,1)`. (default: 0.0)
- packing PACKING     Whether or not to pack the sequences in training. Will automatically enable in pre-training. (default: None)
- tokenized_path TOKENIZED_PATH
                        Path to save or load the tokenized datasets. (default: None)
- use_badam [USE_BADAM]
                        Whether or not to use the BAdam optimizer. (default: False)
- badam_mode {layer,ratio}
                        Whether to use layer-wise or ratio-wise BAdam optimizer. (default: layer)
- badam_start_block BADAM_START_BLOCK
                        The starting block index for layer-wise BAdam. (default: None)
- badam_switch_mode {ascending,descending,random,fixed}
                        the strategy of picking block to update for layer-wise BAdam. (default: ascending)
- badam_switch_interval BADAM_SWITCH_INTERVAL
                        Number of steps to update the block for layer-wise BAdam. Use -1 to disable the block update. (default: 50)
- badam_update_ratio BADAM_UPDATE_RATIO
                        The ratio of the update for ratio-wise BAdam. (default: 0.05)
- badam_mask_mode {adjacent,scatter}
                        The mode of the mask for BAdam optimizer. `adjacent` means that the trainable parameters are adjacent to each other, `scatter` means that trainable parameters are randomly choosed from the
                        weight. (default: adjacent)
- badam_verbose BADAM_VERBOSE
                        The verbosity level of BAdam optimizer. 0 for no print, 1 for print the block prefix, 2 for print trainable parameters (default: 0)
- use_galore [USE_GALORE]
                        Whether or not to use the gradient low-Rank projection (GaLore). (default: False)
- galore_target GALORE_TARGET
                        Name(s) of modules to apply GaLore. Use commas to separate multiple modules. Use "all" to specify all the linear modules. (default: all)
- galore_rank GALORE_RANK
                        The rank of GaLore gradients. (default: 16)
- galore_update_interval GALORE_UPDATE_INTERVAL
                        Number of steps to update the GaLore projection. (default: 200)
- galore_scale GALORE_SCALE
                        GaLore scaling coefficient. (default: 0.25)
- galore_proj_type {std,reverse_std,right,left,full}
                        Type of GaLore projection. (default: std)
- galore_layerwise [GALORE_LAYERWISE]
                        Whether or not to enable layer-wise update to further save memory. (default: False)
- dpo_beta DPO_BETA   The beta parameter for the DPO loss. (default: 0.1)
- dpo_loss {sigmoid,hinge,ipo,kto_pair}
                        The type of DPO loss to use. (default: sigmoid)
- dpo_label_smoothing DPO_LABEL_SMOOTHING
                        The robust DPO label smoothing parameter in cDPO that should be between 0 and 0.5. (default: 0.0)
- dpo_ftx DPO_FTX     The supervised fine-tuning loss coefficient in DPO training. (default: 0.0)
- orpo_beta ORPO_BETA
                        The beta (lambda) parameter in ORPO loss representing the weight of the SFT loss. (default: 0.1)
- ppo_buffer_size PPO_BUFFER_SIZE
                        The number of mini-batches to make experience buffer in a PPO optimization step. (default: 1)
- ppo_epochs PPO_EPOCHS
                        The number of epochs to perform in a PPO optimization step. (default: 4)
- ppo_score_norm [PPO_SCORE_NORM]
                        Use score normalization in PPO training. (default: False)
- ppo_target PPO_TARGET
                        Target KL value for adaptive KL control in PPO training. (default: 6.0)
- ppo_whiten_rewards [PPO_WHITEN_REWARDS]
                        Whiten the rewards before compute advantages in PPO training. (default: False)
- ref_model REF_MODEL
                        Path to the reference model used for the PPO or DPO training. (default: None)
- ref_model_adapters REF_MODEL_ADAPTERS
                        Path to the adapters of the reference model. (default: None)
- ref_model_quantization_bit REF_MODEL_QUANTIZATION_BIT
                        The number of bits to quantize the reference model. (default: None)
- reward_model REWARD_MODEL
                        Path to the reward model used for the PPO training. (default: None)
- reward_model_adapters REWARD_MODEL_ADAPTERS
                        Path to the adapters of the reward model. (default: None)
- reward_model_quantization_bit REWARD_MODEL_QUANTIZATION_BIT
                        The number of bits to quantize the reward model. (default: None)
- reward_model_type {lora,full,api}
                        The type of the reward model in PPO training. Lora model only supports lora training. (default: lora)
- additional_target ADDITIONAL_TARGET
                        Name(s) of modules apart from LoRA layers to be set as trainable and saved in the final checkpoint. (default: None)
- lora_alpha LORA_ALPHA
                        The scale factor for LoRA fine-tuning (default: lora_rank * 2). (default: None)
- lora_dropout LORA_DROPOUT
                        Dropout rate for the LoRA fine-tuning. (default: 0.0)
- lora_rank LORA_RANK
                        The intrinsic dimension for LoRA fine-tuning. (default: 8)
- lora_target LORA_TARGET
                        Name(s) of target modules to apply LoRA. Use commas to separate multiple modules. Use "all" to specify all the linear modules. LLaMA choices: ["q_proj", "k_proj", "v_proj", "o_proj",
                        "gate_proj", "up_proj", "down_proj"], BLOOM & Falcon & ChatGLM choices: ["query_key_value", "dense", "dense_h_to_4h", "dense_4h_to_h"], Baichuan choices: ["W_pack", "o_proj", "gate_proj",
                        "up_proj", "down_proj"], Qwen choices: ["c_attn", "attn.c_proj", "w1", "w2", "mlp.c_proj"], InternLM2 choices: ["wqkv", "wo", "w1", "w2", "w3"], Others choices: the same as LLaMA. (default:
                        all)
- loraplus_lr_ratio LORAPLUS_LR_RATIO
                        LoRA plus learning rate ratio (lr_B / lr_A). (default: None)
- loraplus_lr_embedding LORAPLUS_LR_EMBEDDING
                        LoRA plus learning rate for lora embedding layers. (default: 1e-06)
- use_rslora [USE_RSLORA]
                        Whether or not to use the rank stabilization scaling factor for LoRA layer. (default: False)
- use_dora [USE_DORA]
                        Whether or not to use the weight-decomposed lora method (DoRA). (default: False)
- create_new_adapter [CREATE_NEW_ADAPTER]
                        Whether or not to create a new adapter with randomly initialized weight. (default: False)
- name_module_trainable NAME_MODULE_TRAINABLE
                        Name of trainable modules for partial-parameter (freeze) fine-tuning. Use commas to separate multiple modules. Use "all" to specify all the available modules. LLaMA choices: ["mlp",
                        "self_attn"], BLOOM & Falcon & ChatGLM choices: ["mlp", "self_attention"], Qwen choices: ["mlp", "attn"], InternLM2 choices: ["feed_forward", "attention"], Others choices: the same as LLaMA.
                        (default: all)
- num_layer_trainable NUM_LAYER_TRAINABLE
                        The number of trainable layers for partial-parameter (freeze) fine-tuning. (default: 2)
- pure_bf16 [PURE_BF16]
                        Whether or not to train model in purely bf16 precision (without AMP). (default: False)
- stage {pt,sft,rm,ppo,dpo,orpo}
                        Which stage will be performed in training. (default: sft)
- finetuning_type {lora,freeze,full}
                        Which fine-tuning method to use. (default: lora)
- use_llama_pro [USE_LLAMA_PRO]
                        Whether or not to make only the parameters in the expanded blocks trainable. (default: False)
- plot_loss [PLOT_LOSS]
                        Whether or not to save the training loss curves. (default: False)
- do_sample [DO_SAMPLE]
                        Whether or not to use sampling, use greedy decoding otherwise. (default: True)
- no_do_sample        Whether or not to use sampling, use greedy decoding otherwise. (default: False)
- temperature TEMPERATURE
                        The value used to modulate the next token probabilities. (default: 0.95)
- top_p TOP_P         The smallest set of most probable tokens with probabilities that add up to top_p or higher are kept. (default: 0.7)
- top_k TOP_K         The number of highest probability vocabulary tokens to keep for top-k filtering. (default: 50)
- num_beams NUM_BEAMS
                        Number of beams for beam search. 1 means no beam search. (default: 1)
- max_length MAX_LENGTH
                        The maximum length the generated tokens can have. It can be overridden by max_new_tokens. (default: 1024)
- max_new_tokens MAX_NEW_TOKENS
                        The maximum numbers of tokens to generate, ignoring the number of tokens in the prompt. (default: 1024)
- repetition_penalty REPETITION_PENALTY
                        The parameter for repetition penalty. 1.0 means no penalty. (default: 1.0)
- length_penalty LENGTH_PENALTY
                        Exponential penalty to the length that is used with beam-based generation. (default: 1.0)

All parameters for inference

- model_name_or_path MODEL_NAME_OR_PATH
                        Path to the model weight or identifier from huggingface.co/models or modelscope.cn/models. (default: None)
- adapter_name_or_path ADAPTER_NAME_OR_PATH
                        Path to the adapter weight or identifier from huggingface.co/models. Use commas to separate multiple adapters. (default: None)
- adapter_folder ADAPTER_FOLDER
                        The folder containing the adapter weights to load. (default: None)
- cache_dir CACHE_DIR
                        Where to store the pre-trained models downloaded from huggingface.co or modelscope.cn. (default: None)
- use_fast_tokenizer [USE_FAST_TOKENIZER]
                        Whether or not to use one of the fast tokenizer (backed by the tokenizers library). (default: True)
- no_use_fast_tokenizer
                        Whether or not to use one of the fast tokenizer (backed by the tokenizers library). (default: False)
- resize_vocab [RESIZE_VOCAB]
                        Whether or not to resize the tokenizer vocab and the embedding layers. (default: False)
- split_special_tokens [SPLIT_SPECIAL_TOKENS]
                        Whether or not the special tokens should be split during the tokenization process. (default: False)
- new_special_tokens NEW_SPECIAL_TOKENS
                        Special tokens to be added into the tokenizer. Use commas to separate multiple tokens. (default: None)
- model_revision MODEL_REVISION
                        The specific model version to use (can be a branch name, tag name or commit id). (default: main)
- low_cpu_mem_usage [LOW_CPU_MEM_USAGE]
                        Whether or not to use memory-efficient model loading. (default: True)
- no_low_cpu_mem_usage
                        Whether or not to use memory-efficient model loading. (default: False)
- quantization_method {bitsandbytes,hqq,eetq}
                        Quantization method to use for on-the-fly quantization. (default: bitsandbytes)
- quantization_bit QUANTIZATION_BIT
                        The number of bits to quantize the model using bitsandbytes. (default: None)
- quantization_type {fp4,nf4}
                        Quantization data type to use in int4 training. (default: nf4)
- double_quantization [DOUBLE_QUANTIZATION]
                        Whether or not to use double quantization in int4 training. (default: True)
- no_double_quantization
                        Whether or not to use double quantization in int4 training. (default: False)
- quantization_device_map {auto}
                        Device map used to infer the 4-bit quantized model, needs bitsandbytes>=0.43.0. (default: None)
- rope_scaling {linear,dynamic}
                        Which scaling strategy should be adopted for the RoPE embeddings. (default: None)
- flash_attn {auto,disabled,sdpa,fa2}
                        Enable FlashAttention for faster training and inference. (default: auto)
- shift_attn [SHIFT_ATTN]
                        Enable shift short attention (S^2-Attn) proposed by LongLoRA. (default: False)
- mixture_of_depths {convert,load}
                        Convert the model to mixture-of-depths (MoD) or load the MoD model. (default: None)
- use_unsloth [USE_UNSLOTH]
                        Whether or not to use unsloth's optimization for the LoRA training. (default: False)
- visual_inputs [VISUAL_INPUTS]
                        Whethor or not to use multimodal LLM that accepts visual inputs. (default: False)
- moe_aux_loss_coef MOE_AUX_LOSS_COEF
                        Coefficient of the auxiliary router loss in mixture-of-experts model. (default: None)
- disable_gradient_checkpointing [DISABLE_GRADIENT_CHECKPOINTING]
                        Whether or not to disable gradient checkpointing. (default: False)
- upcast_layernorm [UPCAST_LAYERNORM]
                        Whether or not to upcast the layernorm weights in fp32. (default: False)
- upcast_lmhead_output [UPCAST_LMHEAD_OUTPUT]
                        Whether or not to upcast the output of lm_head in fp32. (default: False)
- train_from_scratch [TRAIN_FROM_SCRATCH]
                        Whether or not to randomly initialize the model weights. (default: False)
- infer_backend {huggingface,vllm}
                        Backend engine used at inference. (default: huggingface)
- vllm_maxlen VLLM_MAXLEN
                        Maximum sequence (prompt + response) length of the vLLM engine. (default: 2048)
- vllm_gpu_util VLLM_GPU_UTIL
                        The fraction of GPU memory in (0,1) to be used for the vLLM engine. (default: 0.9)
- vllm_enforce_eager [VLLM_ENFORCE_EAGER]
                        Whether or not to disable CUDA graph in the vLLM engine. (default: False)
- vllm_max_lora_rank VLLM_MAX_LORA_RANK
                        Maximum rank of all LoRAs in the vLLM engine. (default: 32)
- offload_folder OFFLOAD_FOLDER
                        Path to offload model weights. (default: offload)
- use_cache [USE_CACHE]
                        Whether or not to use KV cache in generation. (default: True)
- no_use_cache
                        Whether or not to use KV cache in generation. (default: False)
- infer_dtype {auto,float16,bfloat16,float32}
                        Data type for model weights and activations at inference. (default: auto)
- hf_hub_token HF_HUB_TOKEN
                        Auth token to log in with Hugging Face Hub. (default: None)
- ms_hub_token MS_HUB_TOKEN
                        Auth token to log in with ModelScope Hub. (default: None)
- export_dir EXPORT_DIR
                        Path to the directory to save the exported model. (default: None)
- export_size EXPORT_SIZE
                        The file shard size (in GB) of the exported model. (default: 1)
- export_device {cpu,auto}
                        The device used in model export, use `auto` to accelerate exporting. (default: cpu)
- export_quantization_bit EXPORT_QUANTIZATION_BIT
                        The number of bits to quantize the exported model. (default: None)
- export_quantization_dataset EXPORT_QUANTIZATION_DATASET
                        Path to the dataset or dataset name to use in quantizing the exported model. (default: None)
- export_quantization_nsamples EXPORT_QUANTIZATION_NSAMPLES
                        The number of samples used for quantization. (default: 128)
- export_quantization_maxlen EXPORT_QUANTIZATION_MAXLEN
                        The maximum length of the model inputs used for quantization. (default: 1024)
- export_legacy_format [EXPORT_LEGACY_FORMAT]
                        Whether or not to save the `.bin` files instead of `.safetensors`. (default: False)
- export_hub_model_id EXPORT_HUB_MODEL_ID
                        The name of the repository if push the model to the Hugging Face hub. (default: None)
- print_param_status [PRINT_PARAM_STATUS]
                        For debugging purposes, print the status of the parameters in the model. (default: False)
- template TEMPLATE
                        Which template to use for constructing prompts in training and inference. (default: None)
- dataset DATASET
                        The name of dataset(s) to use for training. Use commas to separate multiple datasets. (default: None)
- eval_dataset EVAL_DATASET
                        The name of dataset(s) to use for evaluation. Use commas to separate multiple datasets. (default: None)
- dataset_dir DATASET_DIR
                        Path to the folder containing the datasets. (default: data)
- cutoff_len CUTOFF_LEN
                        The cutoff length of the tokenized inputs in the dataset. (default: 1024)
- train_on_prompt [TRAIN_ON_PROMPT]
                        Whether or not to disable the mask on the prompt. (default: False)
- mask_history [MASK_HISTORY]
                        Whether or not to mask the history and train on the last turn only. (default: False)
- streaming [STREAMING]
                        Enable dataset streaming. (default: False)
- buffer_size BUFFER_SIZE
                        Size of the buffer to randomly sample examples from in dataset streaming. (default: 16384)
- mix_strategy {concat,interleave_under,interleave_over}
                        Strategy to use in dataset mixing (concat/interleave) (undersampling/oversampling). (default: concat)
- interleave_probs INTERLEAVE_PROBS
                        Probabilities to sample data from datasets. Use commas to separate multiple datasets. (default: None)
- overwrite_cache [OVERWRITE_CACHE]
                        Overwrite the cached training and evaluation sets. (default: False)
- preprocessing_num_workers PREPROCESSING_NUM_WORKERS
                        The number of processes to use for the pre-processing. (default: None)
- max_samples MAX_SAMPLES
                        For debugging purposes, truncate the number of examples for each dataset. (default: None)
- eval_num_beams EVAL_NUM_BEAMS
                        Number of beams to use for evaluation. This argument will be passed to `model.generate` (default: None)
- ignore_pad_token_for_loss [IGNORE_PAD_TOKEN_FOR_LOSS]
                        Whether or not to ignore the tokens corresponding to the pad label in loss computation. (default: True)
- no_ignore_pad_token_for_loss
                        Whether or not to ignore the tokens corresponding to the pad label in loss computation. (default: False)
- val_size VAL_SIZE
                        Size of the development set, should be an integer or a float in range `[0,1)`. (default: 0.0)
- packing PACKING


                        Enable sequences packing in training. Will automatically enable in pre-training. (default: None)
- neat_packing [NEAT_PACKING]
                        Enable sequence packing without cross-attention. (default: False)
- tool_format TOOL_FORMAT
                        Tool format to use for constructing function calling examples. (default: None)
- tokenized_path TOKENIZED_PATH
                        Path to save or load the tokenized datasets. (default: None)
- use_badam [USE_BADAM]
                        Whether or not to use the BAdam optimizer. (default: False)
- badam_mode {layer,ratio}
                        Whether to use layer-wise or ratio-wise BAdam optimizer. (default: layer)
- badam_start_block BADAM_START_BLOCK
                        The starting block index for layer-wise BAdam. (default: None)
- badam_switch_mode {ascending,descending,random,fixed}
                        the strategy of picking block to update for layer-wise BAdam. (default: ascending)
- badam_switch_interval BADAM_SWITCH_INTERVAL
                        Number of steps to update the block for layer-wise BAdam. Use -1 to disable the block update. (default: 50)
- badam_update_ratio BADAM_UPDATE_RATIO
                        The ratio of the update for ratio-wise BAdam. (default: 0.05)
- badam_mask_mode {adjacent,scatter}
                        The mode of the mask for BAdam optimizer. `adjacent` means that the trainable parameters are adjacent to each other, `scatter` means that trainable parameters
                        are randomly choosed from the weight. (default: adjacent)
- badam_verbose BADAM_VERBOSE
                        The verbosity level of BAdam optimizer. 0 for no print, 1 for print the block prefix, 2 for print trainable parameters. (default: 0)
- use_galore [USE_GALORE]
                        Whether or not to use the gradient low-Rank projection (GaLore). (default: False)
- galore_target GALORE_TARGET
                        Name(s) of modules to apply GaLore. Use commas to separate multiple modules. Use `all` to specify all the linear modules. (default: all)
- galore_rank GALORE_RANK
                        The rank of GaLore gradients. (default: 16)
- galore_update_interval GALORE_UPDATE_INTERVAL
                        Number of steps to update the GaLore projection. (default: 200)
- galore_scale GALORE_SCALE
                        GaLore scaling coefficient. (default: 0.25)
- galore_proj_type {std,reverse_std,right,left,full}
                        Type of GaLore projection. (default: std)
- galore_layerwise [GALORE_LAYERWISE]
                        Whether or not to enable layer-wise update to further save memory. (default: False)
- pref_beta PREF_BETA
                        The beta parameter in the preference loss. (default: 0.1)
- pref_ftx PREF_FTX
                        The supervised fine-tuning loss coefficient in DPO training. (default: 0.0)
- pref_loss {sigmoid,hinge,ipo,kto_pair,orpo,simpo}
                        The type of DPO loss to use. (default: sigmoid)
- dpo_label_smoothing DPO_LABEL_SMOOTHING
                        The robust DPO label smoothing parameter in cDPO that should be between 0 and 0.5. (default: 0.0)
- kto_chosen_weight KTO_CHOSEN_WEIGHT
                        The weight factor of the desirable losses in KTO training. (default: 1.0)
- kto_rejected_weight KTO_REJECTED_WEIGHT
                        The weight factor of the undesirable losses in KTO training. (default: 1.0)
- simpo_gamma SIMPO_GAMMA
                        The target reward margin term in SimPO loss. (default: 0.5)
- ppo_buffer_size PPO_BUFFER_SIZE
                        The number of mini-batches to make experience buffer in a PPO optimization step. (default: 1)
- ppo_epochs PPO_EPOCHS
                        The number of epochs to perform in a PPO optimization step. (default: 4)
- ppo_score_norm [PPO_SCORE_NORM]
                        Use score normalization in PPO training. (default: False)
- ppo_target PPO_TARGET
                        Target KL value for adaptive KL control in PPO training. (default: 6.0)
- ppo_whiten_rewards [PPO_WHITEN_REWARDS]
                        Whiten the rewards before compute advantages in PPO training. (default: False)
- ref_model REF_MODEL
                        Path to the reference model used for the PPO or DPO training. (default: None)
- ref_model_adapters REF_MODEL_ADAPTERS
                        Path to the adapters of the reference model. (default: None)
- ref_model_quantization_bit REF_MODEL_QUANTIZATION_BIT
                        The number of bits to quantize the reference model. (default: None)
- reward_model REWARD_MODEL
                        Path to the reward model used for the PPO training. (default: None)
- reward_model_adapters REWARD_MODEL_ADAPTERS
                        Path to the adapters of the reward model. (default: None)
- reward_model_quantization_bit REWARD_MODEL_QUANTIZATION_BIT
                        The number of bits to quantize the reward model. (default: None)
- reward_model_type {lora,full,api}
                        The type of the reward model in PPO training. Lora model only supports lora training. (default: lora)
- additional_target ADDITIONAL_TARGET
                        Name(s) of modules apart from LoRA layers to be set as trainable and saved in the final checkpoint. Use commas to separate multiple modules. (default: None)
- lora_alpha LORA_ALPHA
                        The scale factor for LoRA fine-tuning (default: lora_rank * 2). (default: None)
- lora_dropout LORA_DROPOUT
                        Dropout rate for the LoRA fine-tuning. (default: 0.0)
- lora_rank LORA_RANK
                        The intrinsic dimension for LoRA fine-tuning. (default: 8)
- lora_target LORA_TARGET
                        Name(s) of target modules to apply LoRA. Use commas to separate multiple modules. Use `all` to specify all the linear modules. (default: all)
- loraplus_lr_ratio LORAPLUS_LR_RATIO
                        LoRA plus learning rate ratio (lr_B / lr_A). (default: None)
- loraplus_lr_embedding LORAPLUS_LR_EMBEDDING
                        LoRA plus learning rate for lora embedding layers. (default: 1e-06)
- use_rslora [USE_RSLORA]
                        Whether or not to use the rank stabilization scaling factor for LoRA layer. (default: False)
- use_dora [USE_DORA]
                        Whether or not to use the weight-decomposed lora method (DoRA). (default: False)
- pissa_init [PISSA_INIT]
                        Whether or not to initialize a PiSSA adapter. (default: False)
- pissa_iter PISSA_ITER
                        The number of iteration steps performed by FSVD in PiSSA. Use -1 to disable it. (default: 16)
- pissa_convert [PISSA_CONVERT]
                        Whether or not to convert the PiSSA adapter to a normal LoRA adapter. (default: False)
- create_new_adapter [CREATE_NEW_ADAPTER]
                        Whether or not to create a new adapter with randomly initialized weight. (default: False)
- freeze_trainable_layers FREEZE_TRAINABLE_LAYERS
                        The number of trainable layers for freeze (partial-parameter) fine-tuning. Positive numbers mean the last n layers are set as trainable, negative numbers mean
                        the first n layers are set as trainable. (default: 2)
- freeze_trainable_modules FREEZE_TRAINABLE_MODULES
                        Name(s) of trainable modules for freeze (partial-parameter) fine-tuning. Use commas to separate multiple modules. Use `all` to specify all the available
                        modules. (default: all)
- freeze_extra_modules FREEZE_EXTRA_MODULES
                        Name(s) of modules apart from hidden layers to be set as trainable for freeze (partial-parameter) fine-tuning. Use commas to separate multiple modules.
                        (default: None)
- pure_bf16 [PURE_BF16]
                        Whether or not to train model in purely bf16 precision (without AMP). (default: False)
- stage {pt,sft,rm,ppo,dpo,kto}
                        Which stage will be performed in training. (default: sft)
- finetuning_type {lora,freeze,full}
                        Which fine-tuning method to use. (default: lora)
- use_llama_pro [USE_LLAMA_PRO]
                        Whether or not to make only the parameters in the expanded blocks trainable. (default: False)
- freeze_vision_tower [FREEZE_VISION_TOWER]
                        Whether ot not to freeze vision tower in MLLM training. (default: True)
- no_freeze_vision_tower
                        Whether ot not to freeze vision tower in MLLM training. (default: False)
- train_mm_proj_only [TRAIN_MM_PROJ_ONLY]
                        Whether or not to train the multimodal projector for MLLM only. (default: False)
- compute_accuracy [COMPUTE_ACCURACY]
                        Whether or not to compute the token-level accuracy at evaluation. (default: False)
- plot_loss [PLOT_LOSS]
                        Whether or not to save the training loss curves. (default: False)
- do_sample [DO_SAMPLE]
                        Whether or not to use sampling

, use greedy decoding otherwise. (default: True)
- no_do_sample
                        Whether or not to use sampling, use greedy decoding otherwise. (default: False)
- temperature TEMPERATURE
                        The value used to modulate the next token probabilities. (default: 0.95)
- top_p TOP_P
                        The smallest set of most probable tokens with probabilities that add up to top_p or higher are kept. (default: 0.7)
- top_k TOP_K
                        The number of highest probability vocabulary tokens to keep for top-k filtering. (default: 50)
- num_beams NUM_BEAMS
                        Number of beams for beam search. 1 means no beam search. (default: 1)
- max_length MAX_LENGTH
                        The maximum length the generated tokens can have. It can be overridden by max_new_tokens. (default: 1024)
- max_new_tokens MAX_NEW_TOKENS
                        The maximum numbers of tokens to generate, ignoring the number of tokens in the prompt. (default: 1024)
- repetition_penalty REPETITION_PENALTY
                        The parameter for repetition penalty. 1.0 means no penalty. (default: 1.0)
- length_penalty LENGTH_PENALTY
                        Exponential penalty to the length that is used with beam-based generation. (default: 1.0)
- default_system DEFAULT_SYSTEM
                        Default system message to use in chat completion. (default: None)