
    h*                     X    S SK r S SKJrJr  S SKJrJr  S SKJr  \ " S S\5      5       r	g)    N)	dataclassfield)OptionalUnion)TrainingArgumentsc                     ^  \ rS rSr% Sr\R                  S/-   r\" SSS0S9r\	\
S'   \" S	SS
0S9r\	\
S'   \" SSS0S9r\\
S'   \" SSS0S9r\\   \
S'   \" SSS0S9r\\\\4      \
S'   \" SSS0S9r\\
S'   \" SSS0S9r\\   \
S'   \" SSS0S9r\\   \
S'   \" SSS0S9r\\   \
S'   \" SSS0S9r\\   \
S '   \" SSS!0S9r\\
S"'   \" SSS#0S9r\\   \
S$'   \" SSS%0S9r\\   \
S&'   \" SSS'0S9r\\   \
S('   \" S)SS*0S9r\	\
S+'   \" S)SS,0S9r\	\
S-'   \" SSS.0S9r \\   \
S/'   \" SSS00S9r!\\	   \
S1'   \" SSS20S9r"\\   \
S3'   \" S)SS40S9r#\	\
S5'   \" SSS60S9r$\\
S7'   \" SSS80S9r%\\   \
S9'   \" SSS:0S9r&\\
S;'   \" S<SS=0S9r'\\
S>'   \" S?SS@0S9r(\\
SA'   \" SSSB0S9r)\\   \
SC'   \" SSSD0S9r*\\   \
SE'   \" SFSSG0S9r+\\
SH'   \" SISSJ0S9r,\\
SK'   \" SLSSM0S9r-\	\
SN'   \" SOSSP0S9r.\	\
SQ'   \" SRSSS0S9r/\\
ST'   \" SUSSV0S9r0\	\
SW'   \" SRSSX0S9r1\\
SY'   \" SZSS[0S9r2\	\
S\'   \" SSS]0S9r3\\	   \
S^'   \" SSS_0S9r4\\5\	      \
S`'   \" SSSa0S9r6\\
Sb'   \" SSSc0S9r7\\8\	\	4      \
Sd'   \" SSSe0S9r9\\
Sf'   \" SSSg0S9r:\\
Sh'   \" SiSSj0S9r;\	\
Sk'   \" SSSl0S9r<\\
Sm'   \" SSSn0S9r=\\
So'   \" SSSp0S9r>\\   \
Sq'   \" SSSr0S9r?\\   \
Ss'   \" SSSt0S9r@\\   \
Su'   \" SSSv0S9rA\\	   \
Sw'   \" SSSx0S9rB\\	   \
Sy'   \" SSSz0S9rC\\   \
S{'   \" SSS|0S9rD\\   \
S}'   \" SSS~0S9rE\\   \
S'   \" SSS0S9rF\\   \
S'   \" SSS0S9rG\\   \
S'   \" SSS0S9rH\\   \
S'   \" SSS0S9rI\\   \
S'   \" SSS0S9rJ\\   \
S'   \" SSS0S9rK\\   \
S'   \" SSS0S9rL\\   \
S'   \" SSS0S9rM\\   \
S'   \" SSS0S9rN\\   \
S'   \" SSS0S9rO\\	   \
S'   U 4S jrPSrQU =rR$ )
RLOOConfig   u.  
Configuration class for the [`RLOOTrainer`].

This class includes only the parameters that are specific to RLOO training. For a full list of training arguments,
please refer to the [`~transformers.TrainingArguments`] documentation. Note that default values in this class may
differ from those in [`~transformers.TrainingArguments`].

Using [`~transformers.HfArgumentParser`] we can turn this class into
[argparse](https://docs.python.org/3/library/argparse#module-argparse) arguments that can be specified on the
command line.

Parameters:
    > Parameters that control the model and reference model

    model_init_kwargs (`str`, `dict[str, Any]` or `None`, *optional*, defaults to `None`):
        Keyword arguments for [`~transformers.AutoModelForCausalLM.from_pretrained`], used when the `model`
        argument of the [`GRPOTrainer`] is provided as a string.
    disable_dropout (`bool`, *optional*, defaults to `False`):
        Whether to disable dropout in the model. This is useful for training with a reference model, as it prevents
        the model from generating different logprobs for the same input.

    > Parameters that control the data preprocessing

    remove_unused_columns (`bool`, *optional*, defaults to `False`):
        Whether to only keep the column `"prompt"` in the dataset. If you use a custom reward function that
        requires any column other than `"prompts"` and `"completions"`, you should keep this to `False`.
    max_prompt_length (`int` or `None`, *optional*, defaults to `512`):
        Maximum length of the prompt. If the prompt is longer than this value, it will be truncated left.
    num_generations (`int` or `None`, *optional*, defaults to `2`):
        Number of generations per prompt to sample. The effective batch size (num_processes * per_device_batch_size
        * gradient_accumulation_steps) must be evenly divisible by this value.
    max_completion_length (`int` or `None`, *optional*, defaults to `256`):
        Maximum length of the generated completion.
    ds3_gather_for_generation (`bool`, *optional*, defaults to `True`):
        This setting applies to DeepSpeed ZeRO-3. If enabled, the policy model weights are gathered for generation,
        improving generation speed. However, disabling this option allows training models that exceed the VRAM
        capacity of a single GPU, albeit at the cost of slower generation. Disabling this option is not compatible
        with vLLM generation.
    shuffle_dataset (`bool`, *optional*, defaults to `True`):
        Whether to shuffle the training dataset.

    > Parameters that control generation

    generation_batch_size: (`int` or `None`, *optional*, defaults to `None`):
        Batch size to use for generation. If `None`, it defaults to the effective training batch size:
        `per_device_train_batch_size * num_processes * steps_per_generation`. In other words, there is one
        generation batch processed per optimization step. Mutually exclusive with `steps_per_generation`.
    steps_per_generation: (`int` or `None`, *optional*, defaults to `None`):
        Number of steps per generation. If `None`, it defaults to `gradient_accumulation_steps`. Mutually exclusive
        with `generation_batch_size`.
    temperature (`float`, defaults to `1.0`):
        Temperature for sampling. The higher the temperature, the more random the completions.
    top_p (`float`, *optional*, defaults to `1.0`):
        Float that controls the cumulative probability of the top tokens to consider. Must be in (0, 1]. Set to
        `1.0` to consider all tokens.
    top_k (`int` or `None`, *optional*, defaults to `None`):
        Number of highest probability vocabulary tokens to keep for top-k-filtering. If `None`, top-k-filtering is
        disabled and all tokens are considered.
    min_p (`float` or `None`, *optional*, defaults to `None`):
        Minimum token probability, which will be scaled by the probability of the most likely token. It must be a
        value between `0.0` and `1.0`. Typical values are in the `0.01-0.2` range.
    repetition_penalty (`float`, *optional*, defaults to `1.0`):
        Float that penalizes new tokens based on whether they appear in the prompt and the generated text so far.
        Values > `1.0` encourage the model to use new tokens, while values < `1.0` encourage the model to repeat
        tokens.
    use_transformers_paged (`bool`, *optional*, defaults to `False`):
        Whether to use the `transformers` paged implementation for generation. If set to `True`, the `transformers`
        paged implementation will be used for generation instead of the default padded implementation. This
        parameter is only effective when `use_vllm` is set to `False`.
    cache_implementation (`str` or `None`, *optional*, defaults to `None`):
        Implementation of the cache method for faster generation when `use_vllm` is set to `False`.
    generation_kwargs (`dict[str, Any]` or `None`, *optional*, defaults to `None`):
        Additional keyword arguments to pass to `GenerationConfig` (if using transformers) or `SamplingParams` (if
        using vLLM) when sampling completions. This can be used to further customize the generation behavior, such
        as setting `suppress_tokens`, `num_beams`, etc. If it contains keys that conflict with the other generation
        parameters (like `min_p`, `top_p`, etc.), they will override them.

    > Parameters that control generation acceleration powered by vLLM

    use_vllm (`bool`, *optional*, defaults to `False`):
        Whether to use vLLM for generating completions. If set to `True`, the trainer will use vLLM for generation
        instead of the default model.generate(). Requires `vllm` to be installed.
    vllm_mode (`str`, *optional*, defaults to `"server"`):
        Mode to use for vLLM integration when `use_vllm` is set to `True`. Must be one of `"server"` or
        `"colocate"`.

        - `"server"`: The trainer will send generation requests to a separate vLLM server. Make sure a TRL vLLM
          server is running (start with `trl vllm-serve`).
        - `"colocate"`: vLLM will run in the same process and share the training GPUs. This avoids the need for a
          separate server but may cause resource contention with training.
    vllm_model_impl (`str`, *optional*, defaults to `"vllm"`):
        Model implementation to use for vLLM. Must be one of `"transformers"` or `"vllm"`. `"transformers"`: Use
        the `transformers` backend for model implementation. `"vllm"`: Use the `vllm` library for model
        implementation.
    vllm_guided_decoding_regex (`str` or `None`, *optional*, defaults to `None`):
        Regex for vLLM guided decoding. If `None` (default), guided decoding is disabled.

    > Parameters that control the vLLM server (only used when `vllm_mode` is `"server"`)

    vllm_server_base_url (`str` or `None`, *optional*, defaults to `None`):
        Base URL for the vLLM server (e.g., `"http://localhost:8000"`). If provided, `vllm_server_host` and
        `vllm_server_port` are ignored.
    vllm_server_host (`str`, *optional*, defaults to `"0.0.0.0"`):
        Host of the vLLM server to connect to. Ignored if `vllm_server_base_url` is provided.
    vllm_server_port (`int`, *optional*, defaults to `8000`):
        Port of the vLLM server to connect to. Ignored if `vllm_server_base_url` is provided.
    vllm_server_timeout (`float`, *optional*, defaults to `240.0`):
        Total timeout duration in seconds to wait for the vLLM server to be up. If the server is not up after the
        timeout, a `ConnectionError` is raised.

    > Parameters that control colocated vLLM execution (only used when `vllm_mode` is `"colocate"`)

    vllm_gpu_memory_utilization (`float`, *optional*, defaults to `0.3`):
        Control the GPU memory utilization for vLLM. This setting only applies when `vllm_mode` is set to
        `"colocate"`. If you are using `vllm_mode="server"`, this parameter must be passed separately when
        launching the vLLM server via the `--vllm_gpu_memory_utilization` flag.
    vllm_tensor_parallel_size (`int`, *optional*, defaults to `1`):
        Control the tensor parallel size for vLLM. This setting only applies when `vllm_mode` is set to
        `"colocate"`. If you are using `vllm_mode="server"`, this parameter must be passed separately when
        launching the vLLM server via the `--vllm_tensor_parallel_size` flag.

    > Parameters that control the training

    beta (`float`, *optional*, defaults to `0.05`):
        KL coefficient. If `0.0`, the reference model is not loaded, reducing memory usage and improving training
        speed.
    num_iterations (`int`, *optional*, defaults to `1`):
        Number of iterations per batch (denoted as μ in the algorithm).
    epsilon (`float`, *optional*, defaults to `0.2`):
        Epsilon value for clipping.
    epsilon_high (`float` or `None`, *optional*, defaults to `None`):
        Upper-bound epsilon value for clipping. If not specified, it defaults to the same value as the lower-bound
        specified in argument `epsilon`. Paper [DAPO](https://huggingface.co/papers/2503.14476) recommends `0.28`.
    reward_weights (`list[float]` or `None`, *optional*, defaults to `None`):
        Weights for each reward function. Must match the number of reward functions. If `None`, all rewards are
        weighted equally with weight `1.0`.
    normalize_advantages (`bool`, *optional*, defaults to `False`):
        Whether to normalize advantages. Normalization is done per generation batch to have mean `0.0` and standard
        deviation of `1.0`.
    reward_clip_range (`tuple[float, float]` or `None`, *optional*, defaults to `None`):
        Clip range for rewards as (min, max). If `None`, no clipping is applied.
    mask_truncated_completions (`bool`, *optional*, defaults to `False`):
        When enabled, truncated completions are excluded from the loss calculation, preventing them from being
        incorrectly penalized and introducing noise during training. According to the
        [DAPO](https://huggingface.co/papers/2503.14476) paper, this is a good practice for training stability.
    sync_ref_model (`bool`, *optional*, defaults to `False`):
        Whether to synchronize the reference model with the active model every `ref_model_sync_steps` steps, using
        the `ref_model_mixup_alpha` parameter. This synchronization originates from the
        [TR-DPO](https://huggingface.co/papers/2404.09656) paper.
    ref_model_mixup_alpha (`float`, *optional*, defaults to `0.6`):
        α parameter from the [TR-DPO](https://huggingface.co/papers/2404.09656) paper, which controls the mix
        between the current policy and the previous reference policy during updates. The reference policy is
        updated according to the equation: `π_ref = α * π_θ + (1 - α) * π_ref_prev`. To use this parameter, you
        must set `sync_ref_model=True`.
    ref_model_sync_steps (`int`, *optional*, defaults to `512`):
        τ parameter from the [TR-DPO](https://huggingface.co/papers/2404.09656) paper, which determines how
        frequently the current policy is synchronized with the reference policy. To use this parameter, you must
        set `sync_ref_model=True`.

    > Parameters that control the logging

    log_completions (`bool`, *optional*, defaults to `False`):
        Whether to log a sample of (prompt, completion) pairs every `logging_steps` steps. If `rich` is installed,
        it prints the sample. If `wandb` logging is enabled, it logs it to `wandb`.
    num_completions_to_print (`int` or `None`, *optional*, defaults to `None`):
        Number of completions to print with `rich`. If `None`, all completions are logged.
    wandb_log_unique_prompts (`bool`, *optional*, defaults to `False`):
        Whether to log unique prompts in wandb. If `True`, only unique prompts are logged. If `False`, all prompts
        are logged.
model_init_kwargsgư>helpz$The initial learning rate for AdamW.)defaultmetadatalearning_rate
   zLog 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.logging_stepsTzZIf True, use gradient checkpointing to save memory at the expense of slower backward pass.gradient_checkpointingNzWhether to use bf16 (mixed) precision instead of 32-bit. Requires Ampere or higher NVIDIA architecture or Intel XPU or using CPU (use_cpu) or Ascend NPU. If not set, it defaults to `True` if `fp16` is not set.bf16zKeyword arguments for `transformers.AutoModelForCausalLM.from_pretrained`, used when the `model` argument of the `GRPOTrainer` is provided as a string.FzWhether to disable dropout in the model. This is useful for training with a reference model, as it prevents the model from generating different logprobs for the same input.disable_dropoutzWhether to only keep the column 'prompt' in the dataset. If you use a custom reward function that requires any column other than 'prompts' and 'completions', you should keep this to `False`.remove_unused_columnsi   zaMaximum length of the prompt. If the prompt is longer than this value, it will be truncated left.max_prompt_length   zNumber of generations to sample. The effective batch size (num_processes * per_device_batch_size * gradient_accumulation_steps) must be evenly divisible by this value.num_generations   z+Maximum length of the generated completion.max_completion_lengthaS  This setting applies to DeepSpeed ZeRO-3. If enabled, the policy model weights are gathered for generation, improving generation speed. However, disabling this option allows training models that exceed the VRAM capacity of a single GPU, albeit at the cost of slower generation. Disabling this option is not compatible with vLLM generation.ds3_gather_for_generationz(Whether to shuffle the training dataset.shuffle_datasetzBatch size to use for generation. If `None`, it defaults to the effective training batch size: `per_device_train_batch_size * num_processes * steps_per_generation`.generation_batch_sizezXNumber of steps per generation. If `None`, it defaults to `gradient_accumulation_steps`.steps_per_generationg      ?zVTemperature for sampling. The higher the temperature, the more random the completions.temperaturezFloat that controls the cumulative probability of the top tokens to consider. Must be in (0, 1]. Set to 1.0 to consider all tokens.top_pzNumber of highest probability vocabulary tokens to keep for top-k-filtering. If `None`, top-k-filtering is disabled and all tokens are considered.top_kzMinimum token probability, which will be scaled by the probability of the most likely token. It must be a value between 0.0 and 1.0. Typical values are in the 0.01-0.2 range.min_pa  Additional keyword arguments to pass to `GenerationConfig` (if using transformers) or `SamplingParams` (if using vLLM) when sampling completions. This can be used to further customize the generation behavior, such as setting `suppress_tokens`, `num_beams`, etc. If it contains keys that conflict with the other generation parameters (like `min_p`, `top_p`, etc.), they will override them.generation_kwargszFloat that penalizes new tokens based on whether they appear in the prompt and the generated text so far. Values > 1.0 encourage the model to use new tokens, while values < 1.0 encourage the model to repeat tokens.repetition_penaltya  Whether to use the `transformers` paged implementation for generation. If set to `True`, the `transformers` paged implementation will be used for generation instead of the default padded implementation. This parameter is only effective when `use_vllm` is set to `False`.use_transformers_pagedzWImplementation of the cache method for faster generation when use_vllm is set to False.cache_implementationzWhether to use vLLM for generating completions. If set to `True`, the trainer will use vLLM for generation instead of the default model.generate(). Requires `vllm` to be installed.use_vllmservera  Mode to use for vLLM integration when `use_vllm` is set to `True`. Must be one of `'server'` or `'colocate'`. `'server'`: The trainer will send generation requests to a separate vLLM server. Make sure a TRL vLLM server is running (start with `trl vllm-serve`). `'colocate'`: vLLM will run in the same process and share the training GPUs. This avoids the need for a separate server but may cause resource contention with training.	vllm_modevllmzModel implementation to use for vLLM. Must be one of `transformers` or `vllm`. `transformers`: Use the `transformers` backend for model implementation. `vllm`: Use the `vllm` library for model implementation.vllm_model_implzQRegex for vLLM guided decoding. If `None` (default), guided decoding is disabled.vllm_guided_decoding_regexzBase URL for the vLLM server (e.g., 'http://localhost:8000'). If provided, `vllm_server_host` and `vllm_server_port` are ignored.vllm_server_base_urlz0.0.0.0zSHost of the vLLM server to connect to. Ignored if vllm_server_base_url is provided.vllm_server_hosti@  zSPort of the vLLM server to connect to. Ignored if vllm_server_base_url is provided.vllm_server_portg      n@zTotal timeout duration in seconds to wait for the vLLM server to be up. If the server is not up after the timeout, a `ConnectionError` is raised.vllm_server_timeoutg333333?a  Control the GPU memory utilization for vLLM. This setting only applies when `vllm_mode` is set to `'colocate'`. If you are using `vllm_mode='server'`, this parameter must be passed separately when launching the vLLM server via the `--vllm_gpu_memory_utilization` flag.vllm_gpu_memory_utilization   a  Control the tensor parallel size for vLLM. This setting only applies when `vllm_mode` is set to `'colocate'`. If you are using `vllm_mode='server'`, this parameter must be passed separately when launching the vLLM server via the `--vllm_tensor_parallel_size` flag.vllm_tensor_parallel_sizeg?zpKL coefficient. If `0.0`, the reference model is not loaded, reducing memory usage and improving training speed.betau@   Number of iterations per batch (denoted as μ in the algorithm).num_iterationsg?zEpsilon value for clipping.epsilonzUpper-bound epsilon value for clipping. If not specified, it defaults to the same value as the lower-bound specified in argument `epsilon`. Paper DAPO recommends `0.28`.epsilon_highzWeights for each reward function. Must match the number of reward functions. If `None`, all rewards are weighted equally with weight `1.0`.reward_weightszWhether to normalize advantages. Normalization is done per generation batch to have mean `0.0` and standard deviation of `1.0`.normalize_advantageszFClip range for rewards as (min, max). If None, no clipping is applied.reward_clip_rangezWhen enabled, truncated completions are excluded from the loss calculation, preventing them from being incorrectly penalized and introducing noise during training. According to the DAPO paper, this is a good practice for training stability.mask_truncated_completionszWhether to synchronize the reference model with the active model every `ref_model_sync_steps` steps, using the `ref_model_mixup_alpha` parameter.sync_ref_modelg333333?u-  α parameter from the TR-DPO paper, which controls the mix between the current policy and the previous reference policy during updates. The reference policy is updated according to the equation: `π_ref = α * π_θ + (1 - α) * π_ref_prev`. To use this parameter, you must set `sync_ref_model=True`.ref_model_mixup_alphau   τ parameter from the TR-DPO paper, which determines how frequently the current policy is synchronized with the reference policy. To use this parameter, you must set `sync_ref_model=True`.ref_model_sync_stepszWhether to log a sample of (prompt, completion) pairs every `logging_steps` steps. If `rich` is installed, it prints the sample. If `wandb` logging is enabled, it logs it to `wandb`.log_completionszRNumber of completions to print with `rich`. If `None`, all completions are logged.num_completions_to_printzvWhether to log unique prompts in wandb. If `True`, only unique prompts are logged. If `False`, all prompts are logged.wandb_log_unique_promptsz*Deprecated: use `num_generations` instead.rloo_kz"Deprecated: use `epsilon` instead.	cliprangezDeprecated: use `beta` instead.kl_coefz#Deprecated: use `run_name` instead.exp_namez/Deprecated: use `normalize_advantages` instead.normalize_rewardz)Deprecated: use `num_iterations` instead.num_ppo_epochsz/Deprecated: use `steps_per_generation` instead.num_mini_batcheszXDeprecated: use `max_steps=total_episodes/(gradient_accumulation_steps*rloo_k)` instead.total_episodesz0Deprecated: use `max_completion_length` instead.response_lengthz7Removed: KL is now computed only at the sequence level.token_level_klzORemoved: this parameter was unused, you can safely remove it from your scripts.dataset_num_procztRemoved: now automatically set to `per_device_train_batch_size` (or `per_device_eval_batch_size` during evaluation). local_rollout_forward_batch_sizezERemoved: use `logging_steps` to control generation logging frequency.num_sample_generationszRemoved.
stop_tokenz5Removed: use `processing_class.eos_token_id` instead.stop_token_idzcRemoved: replicate with a custom reward function checking if `eos_token_id` is in `completion_ids`.missing_eos_penaltyc                   > U R                   c  U R                  (       + OU R                   U l         SSSSSSSSS	S
.	n1 SknUR                  5        Hl  u  p4[        X5      c  M  [        X5      nUS:X  a  XPR                  -  n[
        R                  " SU SU SU SU 35        [        XU5        [        XS 5        Mn     U H=  n[        X5      (       d  M  [        X5      c  M#  [
        R                  " SU S35        M?     [        TU ])  5         U R                  nU R                  c@  U R                  c3  U R                  U l        U R                  U-  U R                  -  U l        OU R                  bx  U R                  ck  U R                  U R                  U-  -  S:w  a)  [        SU R                   SU R                  U-   S35      eU R                  U R                  U-  -  U l        OGU R                  c/  U R                  b"  U R                  U-  U R                  -  U l        O[        S5      eU R                   (       aY  U R"                  S:w  aI  U R$                  U-  U R&                  -  S:w  a)  [        SU R$                   SU SU R&                   S35      eU R                  U R&                  -  S:w  a&  [        SU R                   SU R&                   S35      eU R&                  S:  a  [        SU R&                   S35      eg )Nr   r6   r4   run_namer9   r5   r   	max_stepsr   )	rB   rC   rD   rE   rF   rG   rH   rI   rJ   >   rO   rP   rK   rL   rQ   rN   rM   rI   zParameter 'zC' is deprecated and will be removed in version 0.25.0. Please use 'z' instead. We are setting =z' is deprecated and will be removed in version 0.25.0. Please refer to the migration guide: https://huggingface.co/docs/trl/en/rloo_trainer##migration-guide-from-the-old-implementation-021-and-belowr   zgeneration_batch_size (z.) must be divisible by the global batch size (z).z^'generation_batch_size' and 'steps_per_generation' can not be both configured at the same timenozThe global eval batch size (z * z() must be divisible by num_generations (r   zZGRPO requires at least 2 generations per prompt to calculate the advantages. You provided z*, which is less than the minimum required.)r   fp16itemsgetattrgradient_accumulation_stepswarningswarnsetattrhasattrsuper__post_init__
world_sizer   r   per_device_train_batch_size
ValueErrordo_evaleval_strategyper_device_eval_batch_sizer   )	self_DEPRECATED_PARAMS_REMOVED_PARAMS	old_param	new_param	old_valueremoved_paramnum_processes	__class__s	           Q/home/james-whalen/.local/lib/python3.13/site-packages/trl/trainer/rloo_config.pyr`   RLOOConfig.__post_init__I  sG   '+yy'8Odii	 ("" 6. 6)6


 %7$<$<$> It'3#D4	 00 )-M-M MI!) -!{"<YKqU
 3. %? -Mt++0L0X!- 1Y Y - 	%%-$2K2K2S(,(H(HD%)-)I)IM)Y\`\u\u)uD&''38Q8Q8Y))T-M-MP]-]^bcc -d.H.H-I J88=HIM  )-(B(B00=@)D% ''/D4M4M4Y)-)I)IM)Y\`\u\u)uD&p  <<D..$6//-?4CWCWW[\\ 243R3R2SSVWdVe f5595I5I4J"N  %%(<(<<A)$*D*D)E F(()- 
 !#l''((RT  $    )r   r   r   )S__name__
__module____qualname____firstlineno____doc__r   _VALID_DICT_FIELDSr   r   float__annotations__r   r   boolr   r   r   r   dictstrr   r   r   intr   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r)   r+   r,   r-   r.   r/   r0   r1   r3   r4   r5   r6   r7   r8   listr9   r:   tupler;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   r`   __static_attributes____classcell__)ro   s   @rp   r	   r	      s	   iV +==AT@UU !@AM5  ! D
M5  $)p
$D  ! !
D(4.  5: E
5xdCi 01  " [
OT  -2 p
-8D>  (-w
(x}  &+ U
&OXc]  ,1GH,8C=  ', 6
't  ',DE'OXd^  ,1 T
,8C=  +0tu+(3-  rsK   1
E5  ! I
E8C=  # ]
E8E?  ). t
)x~  !&  
!  $) b
$D  +0st+(3-   c
Hd   (
	Is 	 ! $
OS  16mn1  +0 2
+(3-  "opc  "opc  "' @
"  */ V
*  &+ T
&s   
D%   \]NC  78GU  %* Y
%L(5/  -2 >
-NHT%[)  "' /
"$  8=bc8xeUl 34  (- 6
(  ! B
ND  $) y
$5  !& q
!#  " e
OT  /4no/hsm  05 &
0htn  "FGFHSM  "'>?"Ix   %;< GXe_  $?@Hhsm  (-KL(htn  %*EF%NHSM  ',KL'hsm  %*tu%NHSM  &+LM&OXc]  &+ST&NHTN  ',kl'hsm  7< "
7$hsm  -2ab-HSM  !&*%!J  $)QR$M8C=  ,1  
,% [ [rr   r	   )
r[   dataclassesr   r   typingr   r   transformersr   r	    rr   rp   <module>r      s2     ( " * M
" M
 M
rr   