Buckets:

HuggingFaceDocBuilder's picture
download
raw
120 kB
import{s as ja,n as Aa,o as ga}from"../chunks/scheduler.7b731bd4.js";import{S as ha,i as ua,e as r,s as a,c as U,h as fa,a as n,d as l,b as o,f as m,g as s,j as T,k as I,l as t,m as i,n as y,t as J,o as d,p as C}from"../chunks/index.cc268345.js";import{C as _a,H as b,E as ba}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.f0d99f98.js";import{D as p}from"../chunks/Docstring.03f7b462.js";import{C as Rt}from"../chunks/CodeBlock.169a125f.js";function va(uM){let k,Ol,bl,kl,E,xl,H,Rl,L,fM='<a href="https://huggingface.co/models?other=ppo,trl" rel="nofollow"><img src="https://img.shields.io/badge/All_models-PPO-blue" alt="model badge"/></a>',Nl,S,_M='TRL supports training LLMs with <a href="https://huggingface.co/papers/1707.06347" rel="nofollow">Proximal Policy Optimization (PPO)</a>.',Vl,z,bM="References:",Fl,X,vM='<li><a href="https://github.com/openai/lm-human-preferences" rel="nofollow">Fine-Tuning Language Models from Human Preferences</a></li> <li><a href="https://github.com/openai/summarize-from-feedback" rel="nofollow">Learning to Summarize from Human Feedback</a></li> <li><a href="https://huggingface.co/blog/the_n_implementation_details_of_rlhf_with_ppo" rel="nofollow">The N Implementation Details of RLHF with PPO</a></li> <li><a href="https://huggingface.co/papers/2403.17031" rel="nofollow">The N+ Implementation Details of RLHF with PPO: A Case Study on TL;DR Summarization</a></li>',Ql,Y,Dl,q,OM="To just run a PPO script to make sure the trainer can run, you can run the following command to train a PPO model with a dummy reward model.",Pl,K,$l,ee,Bl,le,kM='The logged metrics are as follows. Here is an example <a href="https://wandb.ai/huggingface/trl/runs/dd2o3g35" rel="nofollow">tracked run at Weights and Biases</a>',Gl,te,xM="<li><code>eps</code>: Tracks the number of episodes per second.</li> <li><code>objective/kl</code>: The mean Kullback-Leibler (KL) divergence between the current policy and reference policy.</li> <li><code>objective/entropy</code>: The mean entropy of the policy, indicating the randomness of the actions chosen by the policy.</li> <li><code>objective/non_score_reward</code>: The mean reward from non-score-related sources, basically <code>beta * kl.sum(1)</code>, where <code>beta</code> is the KL penalty coefficient and <code>kl</code> is the per-token KL divergence.</li> <li><code>objective/rlhf_reward</code>: The mean RLHF reward, which is <code>score - non_score_reward</code>.</li> <li><code>objective/scores</code>: The mean scores returned by the reward model / environment.</li> <li><code>policy/approxkl_avg</code>: The average approximate KL divergence between consecutive PPO policies. Note that this is not the same as <code>objective/kl</code>.</li> <li><code>policy/clipfrac_avg</code>: The average fraction of policy updates that are clipped, indicating how often the policy updates are constrained to prevent large changes.</li> <li><code>loss/policy_avg</code>: The average policy loss, indicating how well the policy is performing.</li> <li><code>loss/value_avg</code>: The average value loss, indicating the difference between the predicted value and the actual reward.</li> <li><code>val/clipfrac_avg</code>: The average fraction of value function updates that are clipped, similar to policy/clipfrac_avg but for the value function.</li> <li><code>policy/entropy_avg</code>: The average entropy of the policy during training, indicating how diverse the policy’s actions are.</li> <li><code>val/ratio</code>: The mean ratio of the current policy probability to the old policy probability, providing a measure of how much the policy has changed.</li> <li><code>val/ratio_var</code>: The variance of the <code>val/ratio</code>, indicating the variability in policy changes.</li> <li><code>val/num_eos_tokens</code>: The number of end-of-sequence (EOS) tokens generated, which can indicate the number of complete responses.</li> <li><code>lr</code>: lr: The current learning rate used by the optimizer.</li> <li><code>episode</code>: episode: The current episode count in the training process.</li>",Wl,Me,Zl,ae,RM="<li>Debugging TIP: <code>objective/rlhf_reward</code>: this is the ultimate objective of the RLHF training. If training works as intended, this metric should keep going up.</li> <li>Debugging TIP: <code>val/ratio</code>: this number should float around 1.0, and it gets clipped by <code>--cliprange 0.2</code> with PPO’s surrogate loss. So if this <code>ratio</code> is too high like 2.0 or 1000.0 or too small like 0.1, it means the updates between consecutive policies are too drastic. You should try understand why this is happening and try to fix it.</li> <li>Memory TIP: If you are running out of memory, you can try to reduce the <code>--per_device_train_batch_size</code> or increase the <code>--gradient_accumulation_steps</code> to reduce the memory footprint.</li> <li>Memory TIP: If you have multiple GPUs, you can also run training with DeepSpeed stage 3 to reduce the memory footprint <code>accelerate launch --config_file examples/accelerate_configs/deepspeed_zero3.yaml</code>.</li> <li>Usage TIP: We recommend to use the “EOS trick” via <code>--missing_eos_penalty</code>, which subtracts a static scalar penalty from the score of completions that do not end with an EOS token. This can help the model learn to generate more coherent completions.</li>",El,oe,Hl,re,NM='To help you understand what your model is doing, we periodically log some sample completions from the model. Here is an example of a completion. In an example <a href="https://wandb.ai/huggingface/trl/runs/dd2o3g35" rel="nofollow">tracked run at Weights and Biases</a>, it looks like the following, allowing you to see the model’s response at different stages of training. By default we generate <code>--num_sample_generations 10</code> during training, but you can customize the number of generations.',Ll,ne,VM='<img src="https://huggingface.co/datasets/trl-lib/documentation-images/resolve/main/ppov2_completions.gif" alt="ppov2_completions"/>',Sl,ie,FM="In the logs the sampled generations look like",zl,Te,Xl,Ue,Yl,se,QM='This PPO implementation is based on the <a href="https://huggingface.co/papers/2403.17031" rel="nofollow">The N+ Implementation Details of RLHF with PPO: A Case Study on TL;DR Summarization</a>.',ql,ye,Kl,Je,DM='To validate the PPO implementation works, we ran experiment on the 1B model. Here are the command we used to run the experiment. We take the SFT / RM models directly from <a href="https://huggingface.co/papers/2403.17031" rel="nofollow">The N+ Implementation Details of RLHF with PPO: A Case Study on TL;DR Summarization</a>.',et,de,lt,Ce,PM="Checkpoints and experiment tracking are available at:",tt,Ie,$M='<li><a href="https://huggingface.co/trl-lib/ppo_tldr" rel="nofollow">🤗 Model checkpoint</a></li> <li><a href="https://wandb.ai/huggingface/trl/runs/dd2o3g35" rel="nofollow">🐝 Tracked experiment</a></li>',Mt,we,BM="The PPO checkpoint gets a 64.7% preferred rate vs the 33.0% preference rate of the SFT checkpoint (evaluated with GPT-4o mini as a judge). This is a good sign that the PPO training is working as intended.",at,me,GM="Metrics:",ot,pe,WM='<img src="https://huggingface.co/datasets/trl-lib/documentation-images/resolve/main/ppov2.png" alt="PPO v2"/>',rt,ce,nt,je,it,A,Ae,Nt,Ye,ZM="Trainer for Proximal Policy Optimization (PPO).",Vt,qe,EM=`For details on PPO, see the paper: <a href="https://huggingface.co/papers/1707.06347" rel="nofollow">Proximal Policy Optimization
Algorithms</a>.`,Ft,Ke,ge,Qt,el,he,Dt,x,ue,Pt,ll,HM="Upload <code>self.model</code> and <code>self.processing_class</code> to the 🤗 model hub on the repo <code>self.args.hub_model_id</code>.",Tt,fe,Ut,u,_e,$t,tl,LM='Configuration class for the <a href="/docs/trl/pr_5607/en/ppo_trainer#trl.experimental.ppo.PPOTrainer">experimental.ppo.PPOTrainer</a>.',Bt,Ml,SM=`This class includes only the parameters that are specific to PPO training. For a full list of training arguments,
please refer to the <a href="https://huggingface.co/docs/transformers/main/en/main_classes/trainer#transformers.TrainingArguments" rel="nofollow">TrainingArguments</a> documentation. Note that default values in this class may
differ from those in <a href="https://huggingface.co/docs/transformers/main/en/main_classes/trainer#transformers.TrainingArguments" rel="nofollow">TrainingArguments</a>.`,Gt,al,zM=`Using <a href="https://huggingface.co/docs/transformers/main/en/internal/trainer_utils#transformers.HfArgumentParser" rel="nofollow">HfArgumentParser</a> we can turn this class into
<a href="https://docs.python.org/3/library/argparse#module-argparse" rel="nofollow">argparse</a> arguments that can be specified on the
command line.`,Wt,be,XM='<p>These parameters have default values different from <a href="https://huggingface.co/docs/transformers/main/en/main_classes/trainer#transformers.TrainingArguments" rel="nofollow">TrainingArguments</a>:</p> <ul><li><code>logging_steps</code>: Defaults to <code>10</code> instead of <code>500</code>.</li> <li><code>gradient_checkpointing</code>: Defaults to <code>True</code> instead of <code>False</code>.</li> <li><code>bf16</code>: Defaults to <code>True</code> if <code>fp16</code> is not set, instead of <code>False</code>.</li> <li><code>learning_rate</code>: Defaults to <code>3e-6</code> instead of <code>5e-5</code>.</li></ul>',st,ve,yt,w,Oe,Zt,ol,YM='Wrapper for a <a href="https://huggingface.co/docs/transformers/main/en/main_classes/model#transformers.PreTrainedModel" rel="nofollow">PreTrainedModel</a> implemented as a standard PyTorch <code>torch.nn.Module</code>.',Et,rl,qM=`This class provides a compatibility layer that preserves the key attributes and methods of the original
<a href="https://huggingface.co/docs/transformers/main/en/main_classes/model#transformers.PreTrainedModel" rel="nofollow">PreTrainedModel</a>, while exposing a uniform interface consistent with PyTorch modules. It enables
seamless integration of pretrained Transformer models into custom training, evaluation, or inference workflows.`,Ht,R,ke,Lt,nl,KM=`Add and load a reward modeling adapter. This method can only be used if the model is a <code>PeftModel</code> and if you
have initialized the model with the <code>reward_modeling_adapter_id</code> argument, pointing to the id of the reward
modeling adapter. The latest needs also to contain the score head in order to produce the reward.`,St,N,xe,zt,il,ea=`Computes the reward score for a given input. The method has first to enable the adapter and then compute the
reward score. After that the model disables the reward modeling adapter and enables the default ppo adapter
again.`,Xt,V,Re,Yt,Tl,la=`Instantiates a new model from a pretrained model from <code>transformers</code>. The pretrained model is loaded using the
<code>from_pretrained</code> method of the <a href="https://huggingface.co/docs/transformers/main/en/main_classes/model#transformers.PreTrainedModel" rel="nofollow">PreTrainedModel</a> class. The arguments that are specific to the
<a href="https://huggingface.co/docs/transformers/main/en/main_classes/model#transformers.PreTrainedModel" rel="nofollow">PreTrainedModel</a> class are passed along this method and filtered out from the <code>kwargs</code>
argument.`,qt,F,Ne,Kt,Ul,ta=`Post initialization method. This method is called after the model is instantiated and loaded from a checkpoint.
It can be used to perform additional operations such as loading the state_dict.`,eM,Q,Ve,lM,sl,Ma=`Push the pretrained model to the hub. This method is a wrapper around
<a href="https://huggingface.co/docs/transformers/main/en/main_classes/model#transformers.PreTrainedModel.push_to_hub" rel="nofollow">push_to_hub</a>. Please refer to the documentation of
<a href="https://huggingface.co/docs/transformers/main/en/main_classes/model#transformers.PreTrainedModel.push_to_hub" rel="nofollow">push_to_hub</a> for more information.`,tM,D,Fe,MM,yl,aa=`Save the pretrained model to a directory. This method is a wrapper around
<a href="https://huggingface.co/docs/transformers/main/en/main_classes/model#transformers.PreTrainedModel.save_pretrained" rel="nofollow">save_pretrained</a>. Please refer to the documentation of
<a href="https://huggingface.co/docs/transformers/main/en/main_classes/model#transformers.PreTrainedModel.save_pretrained" rel="nofollow">save_pretrained</a> for more information.`,aM,P,Qe,oM,Jl,oa="Return the state_dict of the pretrained model.",Jt,De,dt,c,Pe,rM,dl,ra=`An autoregressive model with a value head in addition to the language model head. This class inherits from
<a href="/docs/trl/pr_5607/en/ppo_trainer#trl.experimental.ppo.PreTrainedModelWrapper">experimental.ppo.PreTrainedModelWrapper</a> and wraps a <a href="https://huggingface.co/docs/transformers/main/en/main_classes/model#transformers.PreTrainedModel" rel="nofollow">PreTrainedModel</a> class. The wrapper class
supports classic functions such as <code>from_pretrained</code>, <code>push_to_hub</code> and <code>generate</code>. To call a method of the wrapped
model, simply manipulate the <code>pretrained_model</code> attribute of this class.`,nM,Cl,na="Class attributes:",iM,Il,ia=`<li><strong>transformers_parent_class</strong> (<a href="https://huggingface.co/docs/transformers/main/en/main_classes/model#transformers.PreTrainedModel" rel="nofollow">PreTrainedModel</a>) — The parent class of the wrapped model.
This
should be set to <code>transformers.AutoModelForCausalLM</code> for this class.</li> <li><strong>supported_args</strong> (<code>tuple</code>) — A tuple of strings that are used to identify the arguments that are supported
by the <code>ValueHead</code> class. Currently, the supported args are:
<ul><li><strong>summary_dropout_prob</strong> (<code>float</code>, <code>optional</code>, defaults to <code>None</code>) — The dropout probability for the
<code>ValueHead</code> class.</li> <li><strong>v_head_initializer_range</strong> (<code>float</code>, <code>optional</code>, defaults to <code>0.2</code>) — The initializer range for the
<code>ValueHead</code> if a specific initialization strategy is selected.</li> <li><strong>v_head_init_strategy</strong> (<code>str</code>, <code>optional</code>, defaults to <code>None</code>) — The initialization strategy for the
<code>ValueHead</code>. Currently, the supported strategies are:
<ul><li><strong><code>None</code></strong> — Initializes the weights of the <code>ValueHead</code> with a random distribution. This is the
default strategy.</li> <li><strong>“normal”</strong> — Initializes the weights of the <code>ValueHead</code> with a normal distribution.</li></ul></li></ul></li>`,TM,$,$e,UM,wl,Ta="Initializes the model.",sM,B,Be,yM,ml,Ua="Applies a forward pass to the wrapped model and returns the logits of the value head.",JM,G,Ge,dM,pl,sa=`A simple wrapper around the <code>generate</code> method of the wrapped model. Please refer to the
<a href="https://huggingface.co/docs/transformers/internal/generation_utils" rel="nofollow"><code>generate</code></a> method of the wrapped model
for more information about the supported arguments.`,CM,v,We,IM,cl,ya=`Initializes the weights of the value head. The default initialization strategy is random. Users can pass a
different initialization strategy by passing the <code>v_head_init_strategy</code> argument when calling
<code>.from_pretrained</code>. Supported strategies are:`,wM,jl,Ja="<li><code>normal</code>: initializes the weights with a normal distribution.</li>",Ct,Ze,It,g,Ee,mM,Al,da=`A seq2seq model with a value head in addition to the language model head. This class inherits from
<a href="/docs/trl/pr_5607/en/ppo_trainer#trl.experimental.ppo.PreTrainedModelWrapper">experimental.ppo.PreTrainedModelWrapper</a> and wraps a <a href="https://huggingface.co/docs/transformers/main/en/main_classes/model#transformers.PreTrainedModel" rel="nofollow">PreTrainedModel</a> class. The wrapper class
supports classic functions such as <code>from_pretrained</code> and <code>push_to_hub</code> and also provides some additional
functionalities such as <code>generate</code>.`,pM,gl,He,cM,hl,Le,jM,W,Se,AM,ul,Ca="We call <code>generate</code> on the wrapped model.",gM,Z,ze,hM,fl,Ia="We initialize the weights of the value head.",wt,Xe,mt,vl,pt;return E=new _a({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),H=new b({props:{title:"PPO Trainer",local:"ppo-trainer",headingTag:"h1"}}),Y=new b({props:{title:"Get started",local:"get-started",headingTag:"h2"}}),K=new Rt({props:{code:"cHl0aG9uJTIwZXhhbXBsZXMlMkZzY3JpcHRzJTJGcHBvJTJGcHBvLnB5JTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1kYXRhc2V0X25hbWUlMjB0cmwtaW50ZXJuYWwtdGVzdGluZyUyRmRlc2NyaXB0aXZlbmVzcy1zZW50aW1lbnQtdHJsLXN0eWxlJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1kYXRhc2V0X3RyYWluX3NwbGl0JTIwZGVzY3JpcHRpdmVuZXNzJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1sZWFybmluZ19yYXRlJTIwM2UtNiUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tbnVtX3Bwb19lcG9jaHMlMjAxJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1udW1fbWluaV9iYXRjaGVzJTIwMSUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tb3V0cHV0X2RpciUyMG1vZGVscyUyRm1pbmltYWwlMkZwcG8lMjAlNUMlMEElMjAlMjAlMjAlMjAtLXBlcl9kZXZpY2VfdHJhaW5fYmF0Y2hfc2l6ZSUyMDY0JTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1ncmFkaWVudF9hY2N1bXVsYXRpb25fc3RlcHMlMjAxJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS10b3RhbF9lcGlzb2RlcyUyMDEwMDAwJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1tb2RlbF9uYW1lX29yX3BhdGglMjBFbGV1dGhlckFJJTJGcHl0aGlhLTFiLWRlZHVwZWQlMjAlNUMlMEElMjAlMjAlMjAlMjAtLXNmdF9tb2RlbF9wYXRoJTIwRWxldXRoZXJBSSUyRnB5dGhpYS0xYi1kZWR1cGVkJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1yZXdhcmRfbW9kZWxfcGF0aCUyMEVsZXV0aGVyQUklMkZweXRoaWEtMWItZGVkdXBlZCUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tbWlzc2luZ19lb3NfcGVuYWx0eSUyMDEuMA==",highlighted:`python examples/scripts/ppo/ppo.py \\
--dataset_name trl-internal-testing/descriptiveness-sentiment-trl-style \\
--dataset_train_split descriptiveness \\
--learning_rate 3e-6 \\
--num_ppo_epochs 1 \\
--num_mini_batches 1 \\
--output_dir models/minimal/ppo \\
--per_device_train_batch_size 64 \\
--gradient_accumulation_steps 1 \\
--total_episodes 10000 \\
--model_name_or_path EleutherAI/pythia-1b-deduped \\
--sft_model_path EleutherAI/pythia-1b-deduped \\
--reward_model_path EleutherAI/pythia-1b-deduped \\
--missing_eos_penalty 1.0`,wrap:!1}}),ee=new b({props:{title:"Explanation of the logged metrics",local:"explanation-of-the-logged-metrics",headingTag:"h2"}}),Me=new b({props:{title:"Cookbook",local:"cookbook",headingTag:"h2"}}),oe=new b({props:{title:"What is my model doing exactly?",local:"what-is-my-model-doing-exactly",headingTag:"h2"}}),Te=new Rt({props:{code:"JUUyJTk0JThGJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JUIzJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JUIzJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTgxJUUyJTk0JTkzJTBBJUUyJTk0JTgzJTIwcXVlcnklMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODMlMjBtb2RlbCUyMHJlc3BvbnNlJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgzJTIwc2NvcmUlMjAlMjAlMjAlMjAlRTIlOTQlODMlMEElRTIlOTQlQTElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTUlODclRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTUlODclRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlODElRTIlOTQlQTklMEElRTIlOTQlODIlMjAlMjBTVUJSRURESVQlM0ElMjByJTJGQXNrUmVkZGl0JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwSSdtJTIwaW4lMjBsb3ZlJTIwd2l0aCUyMGElMjBmcmllbmQlMkMlMjBhbmQlMjAlRTIlOTQlODIlMjAzLjkyMTg3NSUyMCVFMiU5NCU4MiUwQSVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMEklMjBkb24ndCUyMGtub3clMjBob3clMjB0byUyMGdldCUyMHJpZCUyMG9mJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTBBJUUyJTk0JTgyJTIwVElUTEUlM0ElMjBIb3clMjBkbyUyMHlvdSUyMGdldCUyMHNvbWVvbmUlMjAlMjAlMjAlRTIlOTQlODIlMjB0aG9zZSUyMGZlZWxpbmdzLiUyMEknbSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUwQSVFMiU5NCU4MiUyMG91dCUyMG9mJTIweW91ciUyMGhlYWQlM0YlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjBkZXNwZXJhdGUuJTNDJTdDZW5kb2Z0ZXh0JTdDJTNFJTVCUEFEJTVEJTVCUCVFMiU4MCVBNiUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUwQSVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUwQSVFMiU5NCU4MiUyMFBPU1QlM0ElMjBIaSUyQyUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUwQSVFMiU5NCU4MiUyMEknbSUyMDIyJTJDJTIwYW5kJTIwSSUyMGhhdmUlMjBiZWVuJTIwd2l0aCUyMG15JTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTBBJUUyJTk0JTgyJTIwZ2lybGZyaWVuZCUyMGZvciUyMDUlMjB5ZWFycyUyMG5vdy4lMjBXZSUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUwQSVFMiU5NCU4MiUyMHJlY2VudGx5JTIwbW92ZWQlMjB0b2dldGhlci4lMjBXZSd2ZSUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUwQSVFMiU5NCU4MiUyMGFsd2F5cyUyMGxvdmVkJTIwZWFjaCUyMG90aGVyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTBBJUUyJTk0JTgyJTIwaW50ZW5zZWx5LiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUwQSVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUwQSVFMiU5NCU4MiUyMFByb2JsZW0lMkMlMjBJJTIwcmVjZW50bHklMjBzdGFydGVkJTIwdG8lMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMEElRTIlOTQlODIlMjBoYXZlJTIwZmVlbGluZ3MlMjBmb3IlMjBhbiUyMG90aGVyJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTBBJUUyJTk0JTgyJTIwcGVyc29uJTIwKGElMjBmcmllbmQpLiUyMFRoaXMlMjBwZXJzb24lMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMEElRTIlOTQlODIlMjBoYXMlMjBoYWQlMjBhJTIwYm95ZnJpZW5kJTIwZm9yJTIwbm93JTIwMyUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUwQSVFMiU5NCU4MiUyMHllYXJzJTJDJTIwYW5kJTIwaGFzJTIwYWJzb2x1dGVseSUyMG5vJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTBBJUUyJTk0JTgyJTIwaWRlYXMuJTIwVGhvc2UlMjBmZWVsaW5ncyUyMHdlcmUlMjBzbyUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUwQSVFMiU5NCU4MiUyMHN0cm9uZyUyQyUyMGl0JTIwd2FzJTIwaGFyZCUyMHRvJTIwaGlkZSUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUwQSVFMiU5NCU4MiUyMHRoZW0uJTIwQWZ0ZXIlMjAyJTIwbW9udGhzJTIwb2YlMjBtZSUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUwQSVFMiU5NCU4MiUyMGJlaW5nJTIwZGlzdGFudCUyMGFuZCUyMHJlYWxseSUyMHNhZCUyQyUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUwQSVFMiU5NCU4MiUyMG15JTIwZ2lybGZyaWVuZCUyMGZvcmNlZCUyMG1lJTIwdG8lMjBzYXklMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMEElRTIlOTQlODIlMjB3aGF0JTIwd2FzJTIwYm90aGVyaW5nJTIwbWUuJTIwSSdtJTIwbm90JTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTBBJUUyJTk0JTgyJTIwYSUyMGdvb2QlMjBsaWFyJTJDJTIwYW5kJTIwbm93JTIwc2hlJTIwa25vd3MuJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTBBJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTBBJUUyJTk0JTgyJTIwV2UlMjBkZWNpZGVkJTIwdG8lMjBnaXZlJTIwdXMlMjBhJTIwd2VlayUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUwQSVFMiU5NCU4MiUyMGFsb25lJTJDJTIwSSUyMHdlbnQlMjB0byUyMG15JTIwcGFyZW50cy4lMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMEElRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMEElRTIlOTQlODIlMjBOb3clMkMlMjBJJ20lMjBjb21wbGV0ZWx5JTIwbG9zdC4lMjBJJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTBBJUUyJTk0JTgyJTIwa2VlcCUyMG9uJTIwdGhpbmtpbmclMjBhYm91dCUyMHRoaXMlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMEElRTIlOTQlODIlMjBwZXJzb24lMkMlMjBhbmQlMjBJJTIwaGF0ZSUyMHRoYXQuJTIwSSUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUwQSVFMiU5NCU4MiUyMHdvdWxkJTIwbGlrZSUyMGZvciUyMHRob3NlJTIwZmVlbGluZ3MlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMEElRTIlOTQlODIlMjB0byUyMGdvJTIwYXdheSUyQyUyMHRvJTIwbGVhdmUlMjBtZSUyMGFsb25lLiUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUwQSVFMiU5NCU4MiUyMEJ1dCUyMEklMjBjYW4ndC4lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMEElRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMEElRTIlOTQlODIlMjBXaGF0JTIwZG8lMjBJJTIwZG8lM0YlMjBJdCdzJTIwYmVlbiUyMDMlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMEElRTIlOTQlODIlMjBtb250aHMlMjBub3clMkMlMjBhbmQlMjBJJ20lMjBqdXN0JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTBBJUUyJTk0JTgyJTIwZGVzcGVyYXRlLiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUwQSVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUwQSVFMiU5NCU4MiUyMFRMJTNCRFIlM0ElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMEElRTIlOTQlOUMlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlQkMlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlQkMlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlODAlRTIlOTQlQTQlMEElRTIlOTQlODIlMjAlMjBTVUJSRURESVQlM0ElMjByJTJGcGV0dHlyZXZlbmdlJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwTXklMjBtb20lMjB3b2tlJTIwbWUlMjB1cCUyMHdpdGglMjBhJTIwbG91ZCUyMCUyMCVFMiU5NCU4MiUyMDYuODQzNzUlMjAlMjAlRTIlOTQlODIlMEElRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjBUVi4lMjBJJTIwYmxhc3RlZCUyMEdhbmduYW0lMjBTdHlsZSUyMG9uJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTBBJUUyJTk0JTgyJTIwVElUTEUlM0ElMjBTbyUyQyUyMG15JTIwbW9tJTIwd29rZSUyMG1lJTIwdXAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjByZXBlYXQlMkMlMjB3aXRoJTIwdGhlJTIwYmFzcyUyMGNyYW5rZWQlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMEElRTIlOTQlODIlMjB3aXRoJTIwYSUyMGxvdWQlMjBUVi4lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjB1cCUyMGFzJTIwaGlnaCUyMGFzJTIwaXQlMjBjb3VsZCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUwQSVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMGdvLiUzQyU3Q2VuZG9mdGV4dCU3QyUzRSU1QlBBRCU1RCU1QlBBRCU1RCU1QlBBRCVFMiU4MCVBNiUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUwQSVFMiU5NCU4MiUyMFBPU1QlM0ElMjBTaGUlMjB3YXMlMjBpbiUyMGhlciUyMGxpdmluZyUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUwQSVFMiU5NCU4MiUyMHJvb20lMkMlMjB3YXRjaGluZyUyMFRWLiUyMFRoaXMlMjB3YXMlMjBhdCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUwQSVFMiU5NCU4MiUyMGFib3V0JTIwOCUzQTMwJTIwaW4lMjB0aGUlMjBtb3JuaW5nJTJDJTIwYW5kJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTBBJUUyJTk0JTgyJTIwc2hlJTIwd2FzJTIwZXhlcmNpc2luZy4lMjBTaGUlMjB0dXJuZWQlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMEElRTIlOTQlODIlMjB0aGUlMjBUViUyMHVwJTIwZXh0cmElMjBsb3VkJTIwdG8lMjBoZWFyJTIwaXQlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMEElRTIlOTQlODIlMjBvdmVyJTIwaGVyJTIwZXhjZXJjeWNsZSUyQyUyMGFuZCUyMHdva2UlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMEElRTIlOTQlODIlMjBtZSUyMHVwLiUyMEklMjB3ZW50JTIwaW4lMjB0aGVyZSUyMGFza2luZyUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUwQSVFMiU5NCU4MiUyMGZvciUyMGhlciUyMHRvJTIwdHVybiUyMGl0JTIwZG93bi4lMjBTaGUlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMEElRTIlOTQlODIlMjBzYWlkJTIwc2hlJTIwZGlkbid0JTIwaGF2ZSUyMHRvJTNCJTIwSSUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUwQSVFMiU5NCU4MiUyMGV4cGxhaW5lZCUyMHRoYXQlMjBJJTIwYWx3YXlzJTIwdXNlZCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUwQSVFMiU5NCU4MiUyMGhlYWRwaG9uZXMlMjBzbyUyMHNoZSUyMGRpZG4ndCUyMGhhdmUlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMEElRTIlOTQlODIlMjB0byUyMGRlYWwlMjB3aXRoJTIwbXklMjBub2lzZSUyMGFuZCUyMHRoYXQlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMEElRTIlOTQlODIlMjBzaGUlMjBzaG91bGQlMjBnaXZlJTIwbWUlMjBhJTIwbGl0dGxlJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTBBJUUyJTk0JTgyJTIwbW9yZSUyMHJlc3BlY3QlMkMlMjBnaXZlbiUyMHRoYXQlMjBJJTIwcGFpZCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUwQSVFMiU5NCU4MiUyMHJlbnQlMjBhdCUyMHRoZSUyMHRpbWUuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTBBJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTBBJUUyJTk0JTgyJTIwU2hlJTIwZGlzYWdyZWVkLiUyMEklMjB3ZW50JTIwYmFjayUyMHRvJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTBBJUUyJTk0JTgyJTIwbXklMjByb29tJTJDJTIwcmF0aGVyJTIwcGlzc2VkJTIwb2ZmJTIwYXQlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMEElRTIlOTQlODIlMjB0aGUlMjBsYWNrJTIwb2YlMjBlcXVhbGl0eS4lMjBJJTIwaGFkJTIwbm8lMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMEElRTIlOTQlODIlMjBsb2NrJTIwb24lMjBteSUyMGRvb3IlM0IlMjBidXQlMjBJJTIwaGFkJTIwYSUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUwQSVFMiU5NCU4MiUyMGRyZXNzZXIlMjByaWdodCUyMG5leHQlMjB0byUyMGl0JTJDJTIwc28lMjBJJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTBBJUUyJTk0JTgyJTIwcHVsbGVkJTIwb25lJTIwb2YlMjB0aGUlMjBkcmF3ZXJzJTIwb3V0JTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTBBJUUyJTk0JTgyJTIwZW5vdWdoJTIwc28lMjB0aGF0JTIwaXQlMjBjYXVzZWQlMjB0aGUlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMEElRTIlOTQlODIlMjBkb29yJTIwdG8lMjBub3QlMjBiZSUyMG9wZW5hYmxlLiUyMFRoZW4lMkMlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMEElRTIlOTQlODIlMjBJJTIwdHVybmVkJTIwbXklMjBzcGVha2VycyUyMHVwJTIwcmVhbGx5JTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTBBJUUyJTk0JTgyJTIwbG91ZCUyMGFuZCUyMGJsYXN0ZWQlMjBHYW5nbmFtJTIwU3R5bGUlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMEElRTIlOTQlODIlMjBvbiUyMHJlcGVhdCUyQyUyMHdpdGglMjB0aGUlMjBiYXNzJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTBBJUUyJTk0JTgyJTIwY3JhbmtlZCUyMHVwJTIwYXMlMjBoaWdoJTIwYXMlMjBpdCUyMGNvdWxkJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTBBJUUyJTk0JTgyJTIwZ28uJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTBBJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTBBJUUyJTk0JTgyJTIwSWYlMjB5b3UlMjBoYXRlJTIwR2FuZ25hbSUyMFN0eWxlJTIwZm9yJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTBBJUUyJTk0JTgyJTIwYmVpbmclMjBvdmVycGxheWVkJTJDJTIweW91JTIwd2lsbCUyMHNlZSUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUwQSVFMiU5NCU4MiUyMHdoeSUyMEklMjBjaG9zZSUyMHRoYXQlMjBwYXJ0aWN1bGFyJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTBBJUUyJTk0JTgyJTIwc29uZy4lMjBJJTIwcGVyc29uYWxseSUyMGRvbid0JTIwbWluZCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUwQSVFMiU5NCU4MiUyMGl0LiUyMEJ1dCUyMGhlcmUncyUyMHRoZSUyMHRoaW5nJTIwYWJvdXQlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMEElRTIlOTQlODIlMjBteSUyMGJhc3MlM0IlMjBpdCUyMHZpYnJhdGVzJTIwdGhlJTIwd2FsbHMlMkMlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMEElRTIlOTQlODIlMjBtYWtpbmclMjBvbmUlMjBoZWxsJTIwb2YlMjBhJTIwbG90JTIwb2YlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMEElRTIlOTQlODIlMjBub2lzZS4lMjBOZWVkbGVzcyUyMHRvJTIwc2F5JTJDJTIwbXklMjBtb20lMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlRTIlOTQlODIlMEElRTIlOTQlODIlMjB3YXMlMjBub3QlMjBwbGVhc2VkJTIwYW5kJTIwc2h1dCUyMG9mZiUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUwQSVFMiU5NCU4MiUyMHRoZSUyMGludGVybmV0LiUyMEJ1dCUyMGl0JTIwd2FzJTIwb2glMjBzbyUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUwQSVFMiU5NCU4MiUyMHdvcnRoJTIwaXQuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTBBJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTgyJTBBJUUyJTk0JTgyJTIwVEwlM0JEUiUzQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCVFMiU5NCU4MiUwQSVFMiU5NCU5NCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCVCNCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCVCNCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU4MCVFMiU5NCU5OA==",highlighted:`┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ query ┃ model response ┃ score ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ SUBREDDIT: r/AskReddit │ I&#x27;m in love with a friend, and │ 3.921875 │
│ │ I don&#x27;t know how to get rid of │ │
│ TITLE: How do you get someone │ those feelings. I&#x27;m │ │
│ out of your head? │ desperate.&lt;|endoftext|&gt;[PAD][P… │ │
│ │ │ │
│ POST: Hi, │ │ │
│ I&#x27;m 22, and I have been with my │ │ │
│ girlfriend for 5 years now. We │ │ │
│ recently moved together. We&#x27;ve │ │ │
│ always loved each other │ │ │
│ intensely. │ │ │
│ │ │ │
│ Problem, I recently started to │ │ │
│ have feelings for an other │ │ │
│ person (a friend). This person │ │ │
│ has had a boyfriend for now 3 │ │ │
│ years, and has absolutely no │ │ │
│ ideas. Those feelings were so │ │ │
│ strong, it was hard to hide │ │ │
│ them. After 2 months of me │ │ │
│ being distant and really sad, │ │ │
│ my girlfriend forced me to say │ │ │
│ what was bothering me. I&#x27;m not │ │ │
│ a good liar, and now she knows. │ │ │
│ │ │ │
│ We decided to give us a week │ │ │
│ alone, I went to my parents. │ │ │
│ │ │ │
│ Now, I&#x27;m completely lost. I │ │ │
│ keep on thinking about this │ │ │
│ person, and I hate that. I │ │ │
│ would like for those feelings │ │ │
│ to go away, to leave me alone. │ │ │
│ But I can&#x27;t. │ │ │
│ │ │ │
│ What do I do? It&#x27;s been 3 │ │ │
│ months now, and I&#x27;m just │ │ │
│ desperate. │ │ │
│ │ │ │
│ TL;DR: │ │ │
├─────────────────────────────────┼─────────────────────────────────┼──────────┤
│ SUBREDDIT: r/pettyrevenge │ My mom woke me up with a loud │ 6.84375 │
│ │ TV. I blasted Gangnam Style on │ │
│ TITLE: So, my mom woke me up │ repeat, with the bass cranked │ │
│ with a loud TV. │ up as high as it could │ │
│ │ go.&lt;|endoftext|&gt;[PAD][PAD][PAD… │ │
│ POST: She was in her living │ │ │
│ room, watching TV. This was at │ │ │
│ about 8:30 in the morning, and │ │ │
│ she was exercising. She turned │ │ │
│ the TV up extra loud to hear it │ │ │
│ over her excercycle, and woke │ │ │
│ me up. I went in there asking │ │ │
│ for her to turn it down. She │ │ │
│ said she didn&#x27;t have to; I │ │ │
│ explained that I always used │ │ │
│ headphones so she didn&#x27;t have │ │ │
│ to deal with my noise and that │ │ │
│ she should give me a little │ │ │
│ more respect, given that I paid │ │ │
│ rent at the time. │ │ │
│ │ │ │
│ She disagreed. I went back to │ │ │
│ my room, rather pissed off at │ │ │
│ the lack of equality. I had no │ │ │
│ lock on my door; but I had a │ │ │
│ dresser right next to it, so I │ │ │
│ pulled one of the drawers out │ │ │
│ enough so that it caused the │ │ │
│ door to not be openable. Then, │ │ │
│ I turned my speakers up really │ │ │
│ loud and blasted Gangnam Style │ │ │
│ on repeat, with the bass │ │ │
│ cranked up as high as it could │ │ │
│ go. │ │ │
│ │ │ │
│ If you hate Gangnam Style for │ │ │
│ being overplayed, you will see │ │ │
│ why I chose that particular │ │ │
│ song. I personally don&#x27;t mind │ │ │
│ it. But here&#x27;s the thing about │ │ │
│ my bass; it vibrates the walls, │ │ │
│ making one hell of a lot of │ │ │
│ noise. Needless to say, my mom │ │ │
│ was not pleased and shut off │ │ │
│ the internet. But it was oh so │ │ │
│ worth it. │ │ │
│ │ │ │
│ TL;DR: │ │ │
└─────────────────────────────────┴─────────────────────────────────┴──────────┘`,wrap:!1}}),Ue=new b({props:{title:"Implementation details",local:"implementation-details",headingTag:"h2"}}),ye=new b({props:{title:"Benchmark experiments",local:"benchmark-experiments",headingTag:"h2"}}),de=new Rt({props:{code:"YWNjZWxlcmF0ZSUyMGxhdW5jaCUyMC0tY29uZmlnX2ZpbGUlMjBleGFtcGxlcyUyRmFjY2VsZXJhdGVfY29uZmlncyUyRmRlZXBzcGVlZF96ZXJvMi55YW1sJTIwJTVDJTBBJTIwJTIwJTIwJTIwZXhhbXBsZXMlMkZzY3JpcHRzJTJGcHBvJTJGcHBvX3RsZHIucHklMjAlNUMlMEElMjAlMjAlMjAlMjAtLWRhdGFzZXRfbmFtZSUyMHRybC1saWIlMkZ0bGRyJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1kYXRhc2V0X3Rlc3Rfc3BsaXQlMjB2YWxpZGF0aW9uJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1vdXRwdXRfZGlyJTIwbW9kZWxzJTJGbWluaW1hbCUyRnBwb190bGRyJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1sZWFybmluZ19yYXRlJTIwM2UtNiUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tcGVyX2RldmljZV90cmFpbl9iYXRjaF9zaXplJTIwMTYlMjAlNUMlMEElMjAlMjAlMjAlMjAtLWdyYWRpZW50X2FjY3VtdWxhdGlvbl9zdGVwcyUyMDQlMjAlNUMlMEElMjAlMjAlMjAlMjAtLXRvdGFsX2VwaXNvZGVzJTIwMTAwMDAwMCUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tbW9kZWxfbmFtZV9vcl9wYXRoJTIwRWxldXRoZXJBSSUyRnB5dGhpYS0xYi1kZWR1cGVkJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1zZnRfbW9kZWxfcGF0aCUyMGNsZWFucmwlMkZFbGV1dGhlckFJX3B5dGhpYS0xYi1kZWR1cGVkX19zZnRfX3RsZHIlMjAlNUMlMEElMjAlMjAlMjAlMjAtLXJld2FyZF9tb2RlbF9wYXRoJTIwY2xlYW5ybCUyRkVsZXV0aGVyQUlfcHl0aGlhLTFiLWRlZHVwZWRfX3Jld2FyZF9fdGxkciUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tbG9jYWxfcm9sbG91dF9mb3J3YXJkX2JhdGNoX3NpemUlMjAxNiUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tbWlzc2luZ19lb3NfcGVuYWx0eSUyMDEuMCUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tc3RvcF90b2tlbiUyMGVvcyUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tZXZhbF9zdHJhdGVneSUyMHN0ZXBzJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1ldmFsX3N0ZXBzJTIwMTAw",highlighted:`accelerate launch --config_file examples/accelerate_configs/deepspeed_zero2.yaml \\
examples/scripts/ppo/ppo_tldr.py \\
--dataset_name trl-lib/tldr \\
--dataset_test_split validation \\
--output_dir models/minimal/ppo_tldr \\
--learning_rate 3e-6 \\
--per_device_train_batch_size 16 \\
--gradient_accumulation_steps 4 \\
--total_episodes 1000000 \\
--model_name_or_path EleutherAI/pythia-1b-deduped \\
--sft_model_path cleanrl/EleutherAI_pythia-1b-deduped__sft__tldr \\
--reward_model_path cleanrl/EleutherAI_pythia-1b-deduped__reward__tldr \\
--local_rollout_forward_batch_size 16 \\
--missing_eos_penalty 1.0 \\
--stop_token eos \\
--eval_strategy steps \\
--eval_steps 100`,wrap:!1}}),ce=new Rt({props:{code:"JTIzJTIwcGlwJTIwaW5zdGFsbCUyMG9wZW5ybGJlbmNobWFyayUzRCUzRDAuMi4xYTUlMEElMjMlMjBzZWUlMjBodHRwcyUzQSUyRiUyRmdpdGh1Yi5jb20lMkZvcGVucmxiZW5jaG1hcmslMkZvcGVucmxiZW5jaG1hcmslMjNnZXQtc3RhcnRlZCUyMGZvciUyMGRvY3VtZW50YXRpb24lMEElMjMlMjB0byUyMHVzZSUyMGl0JTJDJTIwY2hhbmdlJTIwJTYwJTNGd2UlM0RodWdnaW5nZmFjZSUyNndwbiUzRHRybCU2MCUyMHRvJTIweW91ciUyMG93biUyMHByb2plY3QlMjBhbmQlMjAlNjAlM0Z0YWclM0Rwci0xNTQwJTYwJTIwdG8lMjB5b3VyJTIwb3duJTIwdGFnJTBBcHl0aG9uJTIwLW0lMjBvcGVucmxiZW5jaG1hcmsucmxvcHNfbXVsdGlfbWV0cmljcyUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tZmlsdGVycyUyMCclM0Z3ZSUzRGh1Z2dpbmdmYWNlJTI2d3BuJTNEdHJsJTI2eGF4aXMlM0R0cmFpbiUyRmVwaXNvZGUlMjZjZWlrJTNEb3V0cHV0X2RpciUyNmNlbiUzRHNmdF9tb2RlbF9wYXRoJTI2bWV0cmljcyUzRHRyYWluJTJGb2JqZWN0aXZlJTJGcmxoZl9yZXdhcmQlMjZtZXRyaWNzJTNEdHJhaW4lMkZvYmplY3RpdmUlMkZzY29yZXMlMjZtZXRyaWNzJTNEdHJhaW4lMkZvYmplY3RpdmUlMkZrbCUyNm1ldHJpY3MlM0R0cmFpbiUyRm9iamVjdGl2ZSUyRm5vbl9zY29yZV9yZXdhcmQlMjZtZXRyaWNzJTNEdHJhaW4lMkZvYmplY3RpdmUlMkZlbnRyb3B5JTI2bWV0cmljcyUzRHRyYWluJTJGcG9saWN5JTJGYXBwcm94a2xfYXZnJTI2bWV0cmljcyUzRHRyYWluJTJGcG9saWN5JTJGY2xpcGZyYWNfYXZnJTI2bWV0cmljcyUzRHRyYWluJTJGbG9zcyUyRnBvbGljeV9hdmclMjZtZXRyaWNzJTNEdHJhaW4lMkZsb3NzJTJGdmFsdWVfYXZnJTI2bWV0cmljcyUzRHRyYWluJTJGdmFsJTJGY2xpcGZyYWNfYXZnJTI2bWV0cmljcyUzRHRyYWluJTJGcG9saWN5JTJGZW50cm9weV9hdmclMjZtZXRyaWNzJTNEdHJhaW4lMkZ2YWwlMkZyYXRpbyUyNm1ldHJpY3MlM0R0cmFpbiUyRnZhbCUyRnJhdGlvX3ZhciUyNm1ldHJpY3MlM0R0cmFpbiUyRnZhbCUyRm51bV9lb3NfdG9rZW5zJTI2bWV0cmljcyUzRHRyYWluJTJGbHIlMjZtZXRyaWNzJTNEdHJhaW4lMkZlcHMnJTIwJTVDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIyY2xlYW5ybCUyRkVsZXV0aGVyQUlfcHl0aGlhLTFiLWRlZHVwZWRfX3NmdF9fdGxkciUzRnRhZyUzRHByLTE1NDAlMjIlMjAlNUMlMEElMjAlMjAlMjAlMjAtLWVudi1pZHMlMjBtb2RlbHMlMkZtaW5pbWFsJTJGcHBvX3RsZHIlMjAlNUMlMEElMjAlMjAlMjAlMjAtLXBjLm5jb2xzJTIwNCUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tcGMubmNvbHMtbGVnZW5kJTIwMSUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tcGMueGxhYmVsJTIwJTIyRXBpc29kZSUyMiUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tb3V0cHV0LWZpbGVuYW1lJTIwYmVuY2htYXJrJTJGdHJsJTJGcHItMTU0MCUyRnBwbyUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tc2Nhbi1oaXN0b3J5",highlighted:`<span class="hljs-comment"># pip install openrlbenchmark==0.2.1a5</span>
<span class="hljs-comment"># see https://github.com/openrlbenchmark/openrlbenchmark#get-started for documentation</span>
<span class="hljs-comment"># to use it, change \`?we=huggingface&amp;wpn=trl\` to your own project and \`?tag=pr-1540\` to your own tag</span>
python -m openrlbenchmark.rlops_multi_metrics \\
--filters <span class="hljs-string">&#x27;?we=huggingface&amp;wpn=trl&amp;xaxis=train/episode&amp;ceik=output_dir&amp;cen=sft_model_path&amp;metrics=train/objective/rlhf_reward&amp;metrics=train/objective/scores&amp;metrics=train/objective/kl&amp;metrics=train/objective/non_score_reward&amp;metrics=train/objective/entropy&amp;metrics=train/policy/approxkl_avg&amp;metrics=train/policy/clipfrac_avg&amp;metrics=train/loss/policy_avg&amp;metrics=train/loss/value_avg&amp;metrics=train/val/clipfrac_avg&amp;metrics=train/policy/entropy_avg&amp;metrics=train/val/ratio&amp;metrics=train/val/ratio_var&amp;metrics=train/val/num_eos_tokens&amp;metrics=train/lr&amp;metrics=train/eps&#x27;</span> \\
<span class="hljs-string">&quot;cleanrl/EleutherAI_pythia-1b-deduped__sft__tldr?tag=pr-1540&quot;</span> \\
--env-ids models/minimal/ppo_tldr \\
--pc.ncols 4 \\
--pc.ncols-legend 1 \\
--pc.xlabel <span class="hljs-string">&quot;Episode&quot;</span> \\
--output-filename benchmark/trl/pr-1540/ppo \\
--scan-history`,wrap:!1}}),je=new b({props:{title:"PPOTrainer",local:"trl.experimental.ppo.PPOTrainer",headingTag:"h2"}}),Ae=new p({props:{name:"class trl.experimental.ppo.PPOTrainer",anchor:"trl.experimental.ppo.PPOTrainer",parameters:[{name:"args",val:": PPOConfig"},{name:"processing_class",val:": transformers.tokenization_utils_base.PreTrainedTokenizerBase | transformers.image_processing_utils.BaseImageProcessor | transformers.feature_extraction_utils.FeatureExtractionMixin | transformers.processing_utils.ProcessorMixin"},{name:"model",val:": Module"},{name:"ref_model",val:": torch.nn.modules.module.Module | None"},{name:"reward_model",val:": Module"},{name:"train_dataset",val:": Dataset"},{name:"value_model",val:": Module"},{name:"data_collator",val:": transformers.data.data_collator.DataCollatorWithPadding | None = None"},{name:"eval_dataset",val:": datasets.arrow_dataset.Dataset | dict[str, datasets.arrow_dataset.Dataset] | None = None"},{name:"optimizers",val:": tuple = (None, None)"},{name:"callbacks",val:": list[transformers.trainer_callback.TrainerCallback] | None = None"},{name:"peft_config",val:": PeftConfig | None = None"}],parametersDescription:[{anchor:"trl.experimental.ppo.PPOTrainer.args",description:`<strong>args</strong> (<a href="/docs/trl/pr_5607/en/ppo_trainer#trl.experimental.ppo.PPOConfig">experimental.ppo.PPOConfig</a>) &#x2014;
Training arguments.`,name:"args"},{anchor:"trl.experimental.ppo.PPOTrainer.processing_class",description:`<strong>processing_class</strong> (<a href="https://huggingface.co/docs/transformers/main/en/internal/tokenization_utils#transformers.PreTrainedTokenizerBase" rel="nofollow">PreTrainedTokenizerBase</a>, <a href="https://huggingface.co/docs/transformers/main/en/main_classes/image_processor#transformers.BaseImageProcessor" rel="nofollow">BaseImageProcessor</a>, <a href="https://huggingface.co/docs/transformers/main/en/main_classes/feature_extractor#transformers.FeatureExtractionMixin" rel="nofollow">FeatureExtractionMixin</a> or <a href="https://huggingface.co/docs/transformers/main/en/main_classes/processors#transformers.ProcessorMixin" rel="nofollow">ProcessorMixin</a>) &#x2014;
Class to process the data.`,name:"processing_class"},{anchor:"trl.experimental.ppo.PPOTrainer.model",description:`<strong>model</strong> (<code>torch.nn.Module</code>) &#x2014;
Model to be trained. This is the policy model.`,name:"model"},{anchor:"trl.experimental.ppo.PPOTrainer.ref_model",description:`<strong>ref_model</strong> (<code>torch.nn.Module</code>, <em>optional</em>) &#x2014;
Reference model used to compute the KL divergence. If <code>None</code>, a copy of the policy model is created.`,name:"ref_model"},{anchor:"trl.experimental.ppo.PPOTrainer.reward_model",description:`<strong>reward_model</strong> (<code>torch.nn.Module</code>) &#x2014;
Reward model used to compute the rewards.`,name:"reward_model"},{anchor:"trl.experimental.ppo.PPOTrainer.train_dataset",description:`<strong>train_dataset</strong> (<a href="https://huggingface.co/docs/datasets/main/en/package_reference/main_classes#datasets.Dataset" rel="nofollow">Dataset</a>) &#x2014;
Dataset for training.`,name:"train_dataset"},{anchor:"trl.experimental.ppo.PPOTrainer.value_model",description:`<strong>value_model</strong> (<code>torch.nn.Module</code>) &#x2014;
Value model used to predict the value of a state.`,name:"value_model"},{anchor:"trl.experimental.ppo.PPOTrainer.data_collator",description:`<strong>data_collator</strong> (<a href="https://huggingface.co/docs/transformers/main/en/main_classes/data_collator#transformers.DataCollatorWithPadding" rel="nofollow">DataCollatorWithPadding</a>, <em>optional</em>) &#x2014;
Data collator to batch and pad samples from the dataset. If <code>None</code>, a default data collator is created
using the <code>processing_class</code>.`,name:"data_collator"},{anchor:"trl.experimental.ppo.PPOTrainer.eval_dataset",description:`<strong>eval_dataset</strong> (<a href="https://huggingface.co/docs/datasets/main/en/package_reference/main_classes#datasets.Dataset" rel="nofollow">Dataset</a> or <code>dict</code> of <a href="https://huggingface.co/docs/datasets/main/en/package_reference/main_classes#datasets.Dataset" rel="nofollow">Dataset</a>, <em>optional</em>) &#x2014;
Dataset for evaluation.`,name:"eval_dataset"},{anchor:"trl.experimental.ppo.PPOTrainer.optimizers",description:`<strong>optimizers</strong> (<code>tuple</code> of <code>torch.optim.Optimizer</code> and <code>torch.optim.lr_scheduler.LambdaLR</code>, <em>optional</em>, defaults to <code>(None, None)</code>) &#x2014;
Tuple containing the optimizer and the learning rate scheduler to use for training. If <code>None</code>, the
optimizer and the learning rate scheduler are created using the
<a href="https://huggingface.co/docs/transformers/main/en/main_classes/trainer#transformers.Trainer.create_optimizer_and_scheduler" rel="nofollow">create_optimizer_and_scheduler</a> method.`,name:"optimizers"},{anchor:"trl.experimental.ppo.PPOTrainer.callbacks",description:`<strong>callbacks</strong> (<code>list</code> of <a href="https://huggingface.co/docs/transformers/main/en/main_classes/callback#transformers.TrainerCallback" rel="nofollow">TrainerCallback</a>, <em>optional</em>) &#x2014;
Callbacks to use during training.`,name:"callbacks"},{anchor:"trl.experimental.ppo.PPOTrainer.peft_config",description:`<strong>peft_config</strong> (<a href="https://huggingface.co/docs/peft/main/en/package_reference/config#peft.PeftConfig" rel="nofollow">PeftConfig</a>, <em>optional</em>) &#x2014;
PEFT configuration to use PEFT for training. If <code>None</code>, PEFT is not used. If provided, the policy <code>model</code>
will be wrapped with the specified PEFT adapter.`,name:"peft_config"}],source:"https://github.com/huggingface/trl/blob/vr_5607/trl/experimental/ppo/ppo_trainer.py#L305"}}),ge=new p({props:{name:"train",anchor:"trl.experimental.ppo.PPOTrainer.train",parameters:[],source:"https://github.com/huggingface/trl/blob/vr_5607/trl/experimental/ppo/ppo_trainer.py#L606"}}),he=new p({props:{name:"save_model",anchor:"trl.experimental.ppo.PPOTrainer.save_model",parameters:[{name:"output_dir",val:": str | None = None"},{name:"_internal_call",val:": bool = False"}],source:"https://github.com/huggingface/trl/blob/vr_5607/trl/experimental/ppo/ppo_trainer.py#L592"}}),ue=new p({props:{name:"push_to_hub",anchor:"trl.experimental.ppo.PPOTrainer.push_to_hub",parameters:[{name:"commit_message",val:": str | None = 'End of training'"},{name:"blocking",val:": bool = True"},{name:"token",val:": str | None = None"},{name:"revision",val:": str | None = None"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"trl.experimental.ppo.PPOTrainer.push_to_hub.commit_message",description:`<strong>commit_message</strong> (<code>str</code>, <em>optional</em>, defaults to <code>&quot;End of training&quot;</code>) &#x2014;
Message to commit while pushing.`,name:"commit_message"},{anchor:"trl.experimental.ppo.PPOTrainer.push_to_hub.blocking",description:`<strong>blocking</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) &#x2014;
Whether the function should return only when the <code>git push</code> has finished.`,name:"blocking"},{anchor:"trl.experimental.ppo.PPOTrainer.push_to_hub.token",description:`<strong>token</strong> (<code>str</code>, <em>optional</em>, defaults to <code>None</code>) &#x2014;
Token with write permission to overwrite Trainer&#x2019;s original args.`,name:"token"},{anchor:"trl.experimental.ppo.PPOTrainer.push_to_hub.revision",description:`<strong>revision</strong> (<code>str</code>, <em>optional</em>) &#x2014;
The git revision to commit from. Defaults to the head of the &#x201C;main&#x201D; branch.`,name:"revision"},{anchor:"trl.experimental.ppo.PPOTrainer.push_to_hub.kwargs",description:`<strong>kwargs</strong> (<code>dict[str, Any]</code>, <em>optional</em>) &#x2014;
Additional keyword arguments passed along to <code>~Trainer.create_model_card</code>.`,name:"kwargs"}],source:"https://github.com/huggingface/trl/blob/vr_5607/transformers/trainer.py#L3993",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>
<p>The URL of the repository where the model was pushed if <code>blocking=False</code>, or a <code>Future</code> object tracking the
progress of the commit if <code>blocking=True</code>.</p>
`}}),fe=new b({props:{title:"PPOConfig",local:"trl.experimental.ppo.PPOConfig",headingTag:"h2"}}),_e=new p({props:{name:"class trl.experimental.ppo.PPOConfig",anchor:"trl.experimental.ppo.PPOConfig",parameters:[{name:"output_dir",val:": str | None = None"},{name:"per_device_train_batch_size",val:": int = 8"},{name:"num_train_epochs",val:": float = 3.0"},{name:"max_steps",val:": int = -1"},{name:"learning_rate",val:": float = 3e-06"},{name:"lr_scheduler_type",val:": transformers.trainer_utils.SchedulerType | str = 'linear'"},{name:"lr_scheduler_kwargs",val:": dict | str | None = None"},{name:"warmup_steps",val:": float = 0"},{name:"optim",val:": transformers.training_args.OptimizerNames | str = 'adamw_torch_fused'"},{name:"optim_args",val:": str | None = None"},{name:"weight_decay",val:": float = 0.0"},{name:"adam_beta1",val:": float = 0.9"},{name:"adam_beta2",val:": float = 0.999"},{name:"adam_epsilon",val:": float = 1e-08"},{name:"optim_target_modules",val:": None | str | list[str] = None"},{name:"gradient_accumulation_steps",val:": int = 1"},{name:"average_tokens_across_devices",val:": bool = True"},{name:"max_grad_norm",val:": float = 1.0"},{name:"label_smoothing_factor",val:": float = 0.0"},{name:"bf16",val:": bool | None = None"},{name:"fp16",val:": bool = False"},{name:"bf16_full_eval",val:": bool = False"},{name:"fp16_full_eval",val:": bool = False"},{name:"tf32",val:": bool | None = None"},{name:"gradient_checkpointing",val:": bool = True"},{name:"gradient_checkpointing_kwargs",val:": dict[str, typing.Any] | str | None = None"},{name:"torch_compile",val:": bool = False"},{name:"torch_compile_backend",val:": str | None = None"},{name:"torch_compile_mode",val:": str | None = None"},{name:"use_liger_kernel",val:": bool = False"},{name:"liger_kernel_config",val:": dict[str, bool] | None = None"},{name:"use_cache",val:": bool = False"},{name:"neftune_noise_alpha",val:": float | None = None"},{name:"torch_empty_cache_steps",val:": int | None = None"},{name:"auto_find_batch_size",val:": bool = False"},{name:"logging_strategy",val:": transformers.trainer_utils.IntervalStrategy | str = 'steps'"},{name:"logging_steps",val:": float = 10"},{name:"logging_first_step",val:": bool = False"},{name:"log_on_each_node",val:": bool = True"},{name:"logging_nan_inf_filter",val:": bool = True"},{name:"include_num_input_tokens_seen",val:": str | bool = 'no'"},{name:"log_level",val:": str = 'passive'"},{name:"log_level_replica",val:": str = 'warning'"},{name:"disable_tqdm",val:": bool | None = None"},{name:"report_to",val:": None | str | list[str] = 'none'"},{name:"run_name",val:": str | None = None"},{name:"project",val:": str = 'huggingface'"},{name:"trackio_space_id",val:": str | None = 'trackio'"},{name:"eval_strategy",val:": transformers.trainer_utils.IntervalStrategy | str = 'no'"},{name:"eval_steps",val:": float | None = None"},{name:"eval_delay",val:": float = 0"},{name:"per_device_eval_batch_size",val:": int = 8"},{name:"prediction_loss_only",val:": bool = False"},{name:"eval_on_start",val:": bool = False"},{name:"eval_do_concat_batches",val:": bool = True"},{name:"eval_use_gather_object",val:": bool = False"},{name:"eval_accumulation_steps",val:": int | None = None"},{name:"include_for_metrics",val:": list = <factory>"},{name:"batch_eval_metrics",val:": bool = False"},{name:"save_only_model",val:": bool = False"},{name:"save_strategy",val:": transformers.trainer_utils.SaveStrategy | str = 'steps'"},{name:"save_steps",val:": float = 500"},{name:"save_on_each_node",val:": bool = False"},{name:"save_total_limit",val:": int | None = None"},{name:"enable_jit_checkpoint",val:": bool = False"},{name:"push_to_hub",val:": bool = False"},{name:"hub_token",val:": str | None = None"},{name:"hub_private_repo",val:": bool | None = None"},{name:"hub_model_id",val:": str | None = None"},{name:"hub_strategy",val:": transformers.trainer_utils.HubStrategy | str = 'every_save'"},{name:"hub_always_push",val:": bool = False"},{name:"hub_revision",val:": str | None = None"},{name:"load_best_model_at_end",val:": bool = False"},{name:"metric_for_best_model",val:": str | None = None"},{name:"greater_is_better",val:": bool | None = None"},{name:"ignore_data_skip",val:": bool = False"},{name:"restore_callback_states_from_checkpoint",val:": bool = False"},{name:"full_determinism",val:": bool = False"},{name:"seed",val:": int = 42"},{name:"data_seed",val:": int | None = None"},{name:"use_cpu",val:": bool = False"},{name:"accelerator_config",val:": dict | str | None = None"},{name:"parallelism_config",val:": accelerate.parallelism_config.ParallelismConfig | None = None"},{name:"dataloader_drop_last",val:": bool = False"},{name:"dataloader_num_workers",val:": int = 0"},{name:"dataloader_pin_memory",val:": bool = True"},{name:"dataloader_persistent_workers",val:": bool = False"},{name:"dataloader_prefetch_factor",val:": int | None = None"},{name:"remove_unused_columns",val:": bool = True"},{name:"label_names",val:": list[str] | None = None"},{name:"train_sampling_strategy",val:": str = 'random'"},{name:"length_column_name",val:": str = 'length'"},{name:"ddp_find_unused_parameters",val:": bool | None = None"},{name:"ddp_bucket_cap_mb",val:": int | None = None"},{name:"ddp_broadcast_buffers",val:": bool | None = None"},{name:"ddp_backend",val:": str | None = None"},{name:"ddp_timeout",val:": int = 1800"},{name:"fsdp",val:": list[transformers.trainer_utils.FSDPOption] | str | None = None"},{name:"fsdp_config",val:": dict[str, typing.Any] | str | None = None"},{name:"deepspeed",val:": dict | str | None = None"},{name:"debug",val:": str | list[transformers.debug_utils.DebugOption] = ''"},{name:"skip_memory_metrics",val:": bool = True"},{name:"do_train",val:": bool = False"},{name:"do_eval",val:": bool = False"},{name:"do_predict",val:": bool = False"},{name:"resume_from_checkpoint",val:": str | None = None"},{name:"warmup_ratio",val:": float | None = None"},{name:"logging_dir",val:": str | None = None"},{name:"local_rank",val:": int = -1"},{name:"dataset_num_proc",val:": int | None = None"},{name:"num_mini_batches",val:": int = 1"},{name:"total_episodes",val:": int | None = None"},{name:"local_rollout_forward_batch_size",val:": int = 64"},{name:"num_sample_generations",val:": int = 10"},{name:"response_length",val:": int = 53"},{name:"stop_token",val:": typing.Optional[typing.Literal['eos']] = None"},{name:"stop_token_id",val:": int | None = None"},{name:"temperature",val:": float = 0.7"},{name:"missing_eos_penalty",val:": float | None = None"},{name:"sft_model_path",val:": str = 'EleutherAI/pythia-160m'"},{name:"world_size",val:": int | None = None"},{name:"num_total_batches",val:": int | None = None"},{name:"micro_batch_size",val:": int | None = None"},{name:"local_batch_size",val:": int | None = None"},{name:"batch_size",val:": int | None = None"},{name:"local_mini_batch_size",val:": int | None = None"},{name:"mini_batch_size",val:": int | None = None"},{name:"reward_model_path",val:": str = 'EleutherAI/pythia-160m'"},{name:"model_adapter_name",val:": str | None = None"},{name:"ref_adapter_name",val:": str | None = None"},{name:"num_ppo_epochs",val:": int = 4"},{name:"whiten_rewards",val:": bool = False"},{name:"kl_coef",val:": float = 0.05"},{name:"kl_estimator",val:": typing.Literal['k1', 'k3'] = 'k1'"},{name:"cliprange",val:": float = 0.2"},{name:"vf_coef",val:": float = 0.1"},{name:"cliprange_value",val:": float = 0.2"},{name:"gamma",val:": float = 1.0"},{name:"lam",val:": float = 0.95"},{name:"ds3_gather_for_generation",val:": bool = True"}],parametersDescription:[{anchor:"trl.experimental.ppo.PPOConfig.dataset_num_proc",description:`<strong>dataset_num_proc</strong> (<code>int</code>, <em>optional</em>) &#x2014;
Number of processes to use for processing the dataset.`,name:"dataset_num_proc"},{anchor:"trl.experimental.ppo.PPOConfig.num_mini_batches",description:`<strong>num_mini_batches</strong> (<code>int</code>, <em>optional</em>, defaults to <code>1</code>) &#x2014;
Number of minibatches to split a batch into.`,name:"num_mini_batches"},{anchor:"trl.experimental.ppo.PPOConfig.total_episodes",description:`<strong>total_episodes</strong> (<code>int</code>, <em>optional</em>) &#x2014;
Total number of episodes in the dataset.`,name:"total_episodes"},{anchor:"trl.experimental.ppo.PPOConfig.local_rollout_forward_batch_size",description:`<strong>local_rollout_forward_batch_size</strong> (<code>int</code>, <em>optional</em>, defaults to <code>64</code>) &#x2014;
Per rank no grad forward pass in the rollout phase.`,name:"local_rollout_forward_batch_size"},{anchor:"trl.experimental.ppo.PPOConfig.num_sample_generations",description:`<strong>num_sample_generations</strong> (<code>int</code>, <em>optional</em>, defaults to <code>10</code>) &#x2014;
Number of debugging samples generations (i.e., <code>generate_completions</code> calls) throughout training.`,name:"num_sample_generations"},{anchor:"trl.experimental.ppo.PPOConfig.response_length",description:`<strong>response_length</strong> (<code>int</code>, <em>optional</em>, defaults to <code>53</code>) &#x2014;
Length of the response.`,name:"response_length"},{anchor:"trl.experimental.ppo.PPOConfig.stop_token",description:`<strong>stop_token</strong> (<code>str</code>, <em>optional</em>) &#x2014;
Specifies the stop token to use for text generation. This parameter is mutually exclusive with
<code>stop_token_id</code>.</p>
<ul>
<li><code>None</code>: No stop token is applied, unless <code>stop_token_id</code> is specified.</li>
<li><code>&apos;eos&apos;</code>: Uses the tokenizer&#x2019;s <code>eos_token</code>.</li>
</ul>`,name:"stop_token"},{anchor:"trl.experimental.ppo.PPOConfig.stop_token_id",description:`<strong>stop_token_id</strong> (<code>int</code>, <em>optional</em>) &#x2014;
Specifies the ID of the stop token to use for text generation. If <code>None</code>, no stop token ID is applied,
unless <code>stop_token</code> is specified. This parameter is mutually exclusive with <code>stop_token</code>.`,name:"stop_token_id"},{anchor:"trl.experimental.ppo.PPOConfig.temperature",description:`<strong>temperature</strong> (<code>float</code>, <em>optional</em>, defaults to <code>0.7</code>) &#x2014;
Sampling temperature.`,name:"temperature"},{anchor:"trl.experimental.ppo.PPOConfig.missing_eos_penalty",description:`<strong>missing_eos_penalty</strong> (<code>float</code>, <em>optional</em>) &#x2014;
Penalty applied to the score when the model fails to generate an EOS token. This is useful to encourage to
generate completions shorter than the maximum length (<code>max_new_tokens</code>). The penalty must be a positive
value.`,name:"missing_eos_penalty"},{anchor:"trl.experimental.ppo.PPOConfig.sft_model_path",description:`<strong>sft_model_path</strong> (<code>str</code>, <em>optional</em>, defaults to <code>&quot;EleutherAI/pythia-160m&quot;</code>) &#x2014;
Path to the SFT model.`,name:"sft_model_path"},{anchor:"trl.experimental.ppo.PPOConfig.world_size",description:`<strong>world_size</strong> (<code>int</code>, <em>optional</em>) &#x2014;
Number of processes (GPUs) to use for the training.`,name:"world_size"},{anchor:"trl.experimental.ppo.PPOConfig.num_total_batches",description:`<strong>num_total_batches</strong> (<code>int</code>, <em>optional</em>) &#x2014;
Number of total batches to train.`,name:"num_total_batches"},{anchor:"trl.experimental.ppo.PPOConfig.micro_batch_size",description:`<strong>micro_batch_size</strong> (<code>int</code>, <em>optional</em>) &#x2014;
Micro batch size across devices (HF&#x2019;s <code>per_device_train_batch_size</code> * <code>world_size</code>).`,name:"micro_batch_size"},{anchor:"trl.experimental.ppo.PPOConfig.local_batch_size",description:`<strong>local_batch_size</strong> (<code>int</code>, <em>optional</em>) &#x2014;
Batch size per GPU (HF&#x2019;s <code>per_device_train_batch_size</code> * <code>gradient_accumulation_steps</code>).`,name:"local_batch_size"},{anchor:"trl.experimental.ppo.PPOConfig.batch_size",description:`<strong>batch_size</strong> (<code>int</code>, <em>optional</em>) &#x2014;
Batch size across devices (HF&#x2019;s <code>per_device_train_batch_size</code> <em> <code>world_size</code> </em>
<code>gradient_accumulation_steps</code>).`,name:"batch_size"},{anchor:"trl.experimental.ppo.PPOConfig.local_mini_batch_size",description:`<strong>local_mini_batch_size</strong> (<code>int</code>, <em>optional</em>) &#x2014;
Mini batch size per GPU.`,name:"local_mini_batch_size"},{anchor:"trl.experimental.ppo.PPOConfig.mini_batch_size",description:`<strong>mini_batch_size</strong> (<code>int</code>, <em>optional</em>) &#x2014;
Mini batch size across GPUs.`,name:"mini_batch_size"},{anchor:"trl.experimental.ppo.PPOConfig.push_to_hub",description:`<strong>push_to_hub</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
Whether to push the model to the Hub after training.`,name:"push_to_hub"},{anchor:"trl.experimental.ppo.PPOConfig.reward_model_path",description:`<strong>reward_model_path</strong> (<code>str</code>, <em>optional</em>, defaults to <code>&quot;EleutherAI/pythia-160m&quot;</code>) &#x2014;
Path to the reward model.`,name:"reward_model_path"},{anchor:"trl.experimental.ppo.PPOConfig.model_adapter_name",description:`<strong>model_adapter_name</strong> (<code>str</code>, <em>optional</em>) &#x2014;
Name of the train target PEFT adapter, when using LoRA with multiple adapters.`,name:"model_adapter_name"},{anchor:"trl.experimental.ppo.PPOConfig.ref_adapter_name",description:`<strong>ref_adapter_name</strong> (<code>str</code>, <em>optional</em>) &#x2014;
Name of the reference PEFT adapter, when using LoRA with multiple adapters.`,name:"ref_adapter_name"},{anchor:"trl.experimental.ppo.PPOConfig.num_ppo_epochs",description:`<strong>num_ppo_epochs</strong> (<code>int</code>, <em>optional</em>, defaults to <code>4</code>) &#x2014;
Number of epochs to train.`,name:"num_ppo_epochs"},{anchor:"trl.experimental.ppo.PPOConfig.whiten_rewards",description:`<strong>whiten_rewards</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
Whether to whiten the rewards.`,name:"whiten_rewards"},{anchor:"trl.experimental.ppo.PPOConfig.kl_coef",description:`<strong>kl_coef</strong> (<code>float</code>, <em>optional</em>, defaults to <code>0.05</code>) &#x2014;
KL coefficient.`,name:"kl_coef"},{anchor:"trl.experimental.ppo.PPOConfig.kl_estimator",description:`<strong>kl_estimator</strong> (<code>Literal[&quot;k1&quot;, &quot;k3&quot;]</code>, <em>optional</em>, defaults to <code>&quot;k1&quot;</code>) &#x2014;
Which estimator for KL-Divergence to use from <a href="http://joschu.net/blog/kl-approx.html" rel="nofollow">Approximating KL
Divergence</a>. Defaults to &#x201C;k1&#x201D;, a straightforward, unbiased
estimator. Can be set to &#x201C;k3&#x201D;, an unbiased estimator with lower variance which &#x201C;appears to be a strictly
better estimator&#x201D;. Cannot be set to &#x201C;k2&#x201D;, as it is used for logging purposes.`,name:"kl_estimator"},{anchor:"trl.experimental.ppo.PPOConfig.cliprange",description:`<strong>cliprange</strong> (<code>float</code>, <em>optional</em>, defaults to <code>0.2</code>) &#x2014;
Clip range.`,name:"cliprange"},{anchor:"trl.experimental.ppo.PPOConfig.vf_coef",description:`<strong>vf_coef</strong> (<code>float</code>, <em>optional</em>, defaults to <code>0.1</code>) &#x2014;
Value function coefficient.`,name:"vf_coef"},{anchor:"trl.experimental.ppo.PPOConfig.cliprange_value",description:`<strong>cliprange_value</strong> (<code>float</code>, <em>optional</em>, defaults to <code>0.2</code>) &#x2014;
Clip range for the value function.`,name:"cliprange_value"},{anchor:"trl.experimental.ppo.PPOConfig.gamma",description:`<strong>gamma</strong> (<code>float</code>, <em>optional</em>, defaults to <code>1.0</code>) &#x2014;
Discount factor.`,name:"gamma"},{anchor:"trl.experimental.ppo.PPOConfig.lam",description:`<strong>lam</strong> (<code>float</code>, <em>optional</em>, defaults to <code>0.95</code>) &#x2014;
Lambda value for GAE.`,name:"lam"},{anchor:"trl.experimental.ppo.PPOConfig.ds3_gather_for_generation",description:`<strong>ds3_gather_for_generation</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) &#x2014;
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.`,name:"ds3_gather_for_generation"}],source:"https://github.com/huggingface/trl/blob/vr_5607/trl/experimental/ppo/ppo_config.py#L22"}}),ve=new b({props:{title:"PreTrainedModelWrapper",local:"trl.experimental.ppo.PreTrainedModelWrapper",headingTag:"h2"}}),Oe=new p({props:{name:"class trl.experimental.ppo.PreTrainedModelWrapper",anchor:"trl.experimental.ppo.PreTrainedModelWrapper",parameters:[{name:"pretrained_model",val:" = None"},{name:"score_module",val:" = None"},{name:"supports_rm_adapter",val:" = False"},{name:"rm_adapter_name",val:" = None"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"trl.experimental.ppo.PreTrainedModelWrapper.pretrained_model",description:`<strong>pretrained_model</strong> (<a href="https://huggingface.co/docs/transformers/main/en/main_classes/model#transformers.PreTrainedModel" rel="nofollow">PreTrainedModel</a>) &#x2014;
The model to be wrapped.`,name:"pretrained_model"},{anchor:"trl.experimental.ppo.PreTrainedModelWrapper.parent_class",description:`<strong>parent_class</strong> (<a href="https://huggingface.co/docs/transformers/main/en/main_classes/model#transformers.PreTrainedModel" rel="nofollow">PreTrainedModel</a>) &#x2014;
The parent class of the model to be wrapped.`,name:"parent_class"},{anchor:"trl.experimental.ppo.PreTrainedModelWrapper.supported_args",description:`<strong>supported_args</strong> (<code>list</code>) &#x2014;
The list of arguments that are supported by the wrapper class.`,name:"supported_args"}],source:"https://github.com/huggingface/trl/blob/vr_5607/trl/experimental/ppo/modeling_value_head.py#L52"}}),ke=new p({props:{name:"add_and_load_reward_modeling_adapter",anchor:"trl.experimental.ppo.PreTrainedModelWrapper.add_and_load_reward_modeling_adapter",parameters:[{name:"pretrained_model",val:""},{name:"adapter_model_id",val:""},{name:"adapter_name",val:" = 'reward_model_adapter'"},{name:"token",val:" = None"}],source:"https://github.com/huggingface/trl/blob/vr_5607/trl/experimental/ppo/modeling_value_head.py#L438"}}),xe=new p({props:{name:"compute_reward_score",anchor:"trl.experimental.ppo.PreTrainedModelWrapper.compute_reward_score",parameters:[{name:"input_ids",val:""},{name:"attention_mask",val:" = None"},{name:"**kwargs",val:""}],source:"https://github.com/huggingface/trl/blob/vr_5607/trl/experimental/ppo/modeling_value_head.py#L563"}}),Re=new p({props:{name:"from_pretrained",anchor:"trl.experimental.ppo.PreTrainedModelWrapper.from_pretrained",parameters:[{name:"pretrained_model_name_or_path",val:""},{name:"*model_args",val:""},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"trl.experimental.ppo.PreTrainedModelWrapper.from_pretrained.pretrained_model_name_or_path",description:`<strong>pretrained_model_name_or_path</strong> (<code>str</code> or <a href="https://huggingface.co/docs/transformers/main/en/main_classes/model#transformers.PreTrainedModel" rel="nofollow">PreTrainedModel</a>) &#x2014;
The path to the pretrained model or its name.`,name:"pretrained_model_name_or_path"},{anchor:"trl.experimental.ppo.PreTrainedModelWrapper.from_pretrained.*model_args",description:`<strong>*model_args</strong> (<code>list</code>, <em>optional</em>) &#x2014;
Additional positional arguments passed along to the underlying model&#x2019;s <code>from_pretrained</code> method.`,name:"*model_args"},{anchor:"trl.experimental.ppo.PreTrainedModelWrapper.from_pretrained.*kwargs",description:`*<strong>*kwargs</strong> (<code>dict</code>, <em>optional</em>) &#x2014;
Additional keyword arguments passed along to the underlying model&#x2019;s <code>from_pretrained</code> method. We also
pre-process the kwargs to extract the arguments that are specific to the
<a href="https://huggingface.co/docs/transformers/main/en/main_classes/model#transformers.PreTrainedModel" rel="nofollow">PreTrainedModel</a> class and the arguments that are specific to trl models. The kwargs
also support <code>prepare_model_for_kbit_training</code> arguments from <code>peft</code> library.`,name:"*kwargs"}],source:"https://github.com/huggingface/trl/blob/vr_5607/trl/experimental/ppo/modeling_value_head.py#L106"}}),Ne=new p({props:{name:"post_init",anchor:"trl.experimental.ppo.PreTrainedModelWrapper.post_init",parameters:[{name:"*args",val:""},{name:"**kwargs",val:""}],source:"https://github.com/huggingface/trl/blob/vr_5607/trl/experimental/ppo/modeling_value_head.py#L556"}}),Ve=new p({props:{name:"push_to_hub",anchor:"trl.experimental.ppo.PreTrainedModelWrapper.push_to_hub",parameters:[{name:"*args",val:""},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"trl.experimental.ppo.PreTrainedModelWrapper.push_to_hub.*args",description:`<strong>*args</strong> (<code>list</code>, <em>optional</em>) &#x2014;
Positional arguments passed along to the underlying model&#x2019;s <code>push_to_hub</code> method.`,name:"*args"},{anchor:"trl.experimental.ppo.PreTrainedModelWrapper.push_to_hub.*kwargs",description:`*<strong>*kwargs</strong> (<code>dict</code>, <em>optional</em>) &#x2014;
Keyword arguments passed along to the underlying model&#x2019;s <code>push_to_hub</code> method.`,name:"*kwargs"}],source:"https://github.com/huggingface/trl/blob/vr_5607/trl/experimental/ppo/modeling_value_head.py#L509"}}),Fe=new p({props:{name:"save_pretrained",anchor:"trl.experimental.ppo.PreTrainedModelWrapper.save_pretrained",parameters:[{name:"*args",val:""},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"trl.experimental.ppo.PreTrainedModelWrapper.save_pretrained.*args",description:`<strong>*args</strong> (<code>list</code>, <em>optional</em>) &#x2014;
Positional arguments passed along to the underlying model&#x2019;s <code>save_pretrained</code> method.`,name:"*args"},{anchor:"trl.experimental.ppo.PreTrainedModelWrapper.save_pretrained.*kwargs",description:`*<strong>*kwargs</strong> (<code>dict</code>, <em>optional</em>) &#x2014;
Keyword arguments passed along to the underlying model&#x2019;s <code>save_pretrained</code> method.`,name:"*kwargs"}],source:"https://github.com/huggingface/trl/blob/vr_5607/trl/experimental/ppo/modeling_value_head.py#L523"}}),Qe=new p({props:{name:"state_dict",anchor:"trl.experimental.ppo.PreTrainedModelWrapper.state_dict",parameters:[{name:"*args",val:""},{name:"**kwargs",val:""}],source:"https://github.com/huggingface/trl/blob/vr_5607/trl/experimental/ppo/modeling_value_head.py#L550"}}),De=new b({props:{title:"AutoModelForCausalLMWithValueHead",local:"trl.experimental.ppo.AutoModelForCausalLMWithValueHead",headingTag:"h2"}}),Pe=new p({props:{name:"class trl.experimental.ppo.AutoModelForCausalLMWithValueHead",anchor:"trl.experimental.ppo.AutoModelForCausalLMWithValueHead",parameters:[{name:"pretrained_model",val:""},{name:"**kwargs",val:""}],source:"https://github.com/huggingface/trl/blob/vr_5607/trl/experimental/ppo/modeling_value_head.py#L634"}}),$e=new p({props:{name:"__init__",anchor:"trl.experimental.ppo.AutoModelForCausalLMWithValueHead.__init__",parameters:[{name:"pretrained_model",val:""},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"trl.experimental.ppo.AutoModelForCausalLMWithValueHead.__init__.pretrained_model",description:`<strong>pretrained_model</strong> (<a href="https://huggingface.co/docs/transformers/main/en/main_classes/model#transformers.PreTrainedModel" rel="nofollow">PreTrainedModel</a>) &#x2014;
The model to wrap. It should be a causal language model such as GPT2. or any model mapped inside the
<code>AutoModelForCausalLM</code> class.`,name:"pretrained_model"},{anchor:"trl.experimental.ppo.AutoModelForCausalLMWithValueHead.__init__.kwargs",description:`<strong>kwargs</strong> (<code>dict</code>, <code>optional</code>) &#x2014;
Additional keyword arguments, that are passed to the <code>ValueHead</code> class.`,name:"kwargs"}],source:"https://github.com/huggingface/trl/blob/vr_5607/trl/experimental/ppo/modeling_value_head.py#L665"}}),Be=new p({props:{name:"forward",anchor:"trl.experimental.ppo.AutoModelForCausalLMWithValueHead.forward",parameters:[{name:"input_ids",val:" = None"},{name:"past_key_values",val:" = None"},{name:"attention_mask",val:" = None"},{name:"return_past_key_values",val:" = False"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"trl.experimental.ppo.AutoModelForCausalLMWithValueHead.forward.input_ids",description:`<strong>input_ids</strong> (<em>torch.LongTensor</em> of shape <em>(batch_size, sequence_length)</em>) &#x2014;
Indices of input sequence tokens in the vocabulary.`,name:"input_ids"},{anchor:"trl.experimental.ppo.AutoModelForCausalLMWithValueHead.forward.past_key_values",description:`<strong>past_key_values</strong> (<em>tuple(tuple(torch.FloatTensor))</em>, <em>optional</em>) &#x2014;
Contains pre-computed hidden-states (key and values in the attention blocks) as computed by the model
(see <em>past_key_values</em> input) to speed up sequential decoding.`,name:"past_key_values"},{anchor:"trl.experimental.ppo.AutoModelForCausalLMWithValueHead.forward.attention_mask",description:`<strong>attention_mask</strong> (<em>torch.FloatTensor</em> of shape <em>(batch_size, sequence_length)</em>, <em>optional</em>) &#x2014;
Mask to avoid performing attention on padding token indices. Mask values selected in <code>[0, 1]</code>:
<ul>
<li>1 for tokens that are <strong>not masked</strong>,</li>
<li>0 for tokens that are <strong>masked</strong>.</li>
</ul>`,name:"attention_mask"},{anchor:"trl.experimental.ppo.AutoModelForCausalLMWithValueHead.forward.return_past_key_values",description:"<strong>return_past_key_values</strong> (bool) &#x2014; A flag indicating if the computed hidden-states should be returned.",name:"return_past_key_values"},{anchor:"trl.experimental.ppo.AutoModelForCausalLMWithValueHead.forward.kwargs",description:`<strong>kwargs</strong> (<em>dict</em>, <em>optional</em>) &#x2014;
Additional keyword arguments, that are passed to the wrapped model.`,name:"kwargs"}],source:"https://github.com/huggingface/trl/blob/vr_5607/trl/experimental/ppo/modeling_value_head.py#L703"}}),Ge=new p({props:{name:"generate",anchor:"trl.experimental.ppo.AutoModelForCausalLMWithValueHead.generate",parameters:[{name:"*args",val:""},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"trl.experimental.ppo.AutoModelForCausalLMWithValueHead.generate.*args",description:`<strong>*args</strong> (<code>list</code>, <em>optional</em>) &#x2014;
Positional arguments passed to the <code>generate</code> method of the wrapped model.`,name:"*args"},{anchor:"trl.experimental.ppo.AutoModelForCausalLMWithValueHead.generate.*kwargs",description:`*<strong>*kwargs</strong> (<code>dict</code>, <em>optional</em>) &#x2014;
Keyword arguments passed to the <code>generate</code> method of the wrapped model.`,name:"*kwargs"}],source:"https://github.com/huggingface/trl/blob/vr_5607/trl/experimental/ppo/modeling_value_head.py#L758"}}),We=new p({props:{name:"_init_weights",anchor:"trl.experimental.ppo.AutoModelForCausalLMWithValueHead._init_weights",parameters:[{name:"**kwargs",val:""}],parametersDescription:[{anchor:"trl.experimental.ppo.AutoModelForCausalLMWithValueHead._init_weights.*kwargs",description:`*<strong>*kwargs</strong> (<code>dict</code>, <code>optional</code>) &#x2014;
Additional keyword arguments, that are passed to the <code>ValueHead</code> class. These arguments can contain
the <code>v_head_init_strategy</code> argument as well as the <code>v_head_initializer_range</code> argument.`,name:"*kwargs"}],source:"https://github.com/huggingface/trl/blob/vr_5607/trl/experimental/ppo/modeling_value_head.py#L681"}}),Ze=new b({props:{title:"AutoModelForSeq2SeqLMWithValueHead",local:"trl.experimental.ppo.AutoModelForSeq2SeqLMWithValueHead",headingTag:"h2"}}),Ee=new p({props:{name:"class trl.experimental.ppo.AutoModelForSeq2SeqLMWithValueHead",anchor:"trl.experimental.ppo.AutoModelForSeq2SeqLMWithValueHead",parameters:[{name:"pretrained_model",val:""},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"trl.experimental.ppo.AutoModelForSeq2SeqLMWithValueHead.pretrained_model",description:`<strong>pretrained_model</strong> (<a href="https://huggingface.co/docs/transformers/main/en/main_classes/model#transformers.PreTrainedModel" rel="nofollow">PreTrainedModel</a>) &#x2014;
The model to wrap. It should be a causal language model such as GPT2. or any model mapped inside the
<a href="https://huggingface.co/docs/transformers/main/en/model_doc/auto#transformers.AutoModelForSeq2SeqLM" rel="nofollow">AutoModelForSeq2SeqLM</a> class.`,name:"pretrained_model"},{anchor:"trl.experimental.ppo.AutoModelForSeq2SeqLMWithValueHead.kwargs",description:`<strong>kwargs</strong> &#x2014;
Additional keyword arguments passed along to the <code>ValueHead</code> class.`,name:"kwargs"}],source:"https://github.com/huggingface/trl/blob/vr_5607/trl/experimental/ppo/modeling_value_head.py#L838"}}),He=new p({props:{name:"__init__",anchor:"trl.experimental.ppo.AutoModelForSeq2SeqLMWithValueHead.__init__",parameters:[{name:"pretrained_model",val:""},{name:"**kwargs",val:""}],source:"https://github.com/huggingface/trl/blob/vr_5607/trl/experimental/ppo/modeling_value_head.py#L861"}}),Le=new p({props:{name:"forward",anchor:"trl.experimental.ppo.AutoModelForSeq2SeqLMWithValueHead.forward",parameters:[{name:"input_ids",val:" = None"},{name:"past_key_values",val:" = None"},{name:"attention_mask",val:" = None"},{name:"return_past_key_values",val:" = False"},{name:"**kwargs",val:""}],source:"https://github.com/huggingface/trl/blob/vr_5607/trl/experimental/ppo/modeling_value_head.py#L969"}}),Se=new p({props:{name:"generate",anchor:"trl.experimental.ppo.AutoModelForSeq2SeqLMWithValueHead.generate",parameters:[{name:"*args",val:""},{name:"**kwargs",val:""}],source:"https://github.com/huggingface/trl/blob/vr_5607/trl/experimental/ppo/modeling_value_head.py#L1003"}}),ze=new p({props:{name:"_init_weights",anchor:"trl.experimental.ppo.AutoModelForSeq2SeqLMWithValueHead._init_weights",parameters:[{name:"**kwargs",val:""}],source:"https://github.com/huggingface/trl/blob/vr_5607/trl/experimental/ppo/modeling_value_head.py#L955"}}),Xe=new ba({props:{source:"https://github.com/huggingface/trl/blob/main/docs/source/ppo_trainer.md"}}),{c(){k=r("meta"),Ol=a(),bl=r("p"),kl=a(),U(E.$$.fragment),xl=a(),U(H.$$.fragment),Rl=a(),L=r("p"),L.innerHTML=fM,Nl=a(),S=r("p"),S.innerHTML=_M,Vl=a(),z=r("p"),z.textContent=bM,Fl=a(),X=r("ul"),X.innerHTML=vM,Ql=a(),U(Y.$$.fragment),Dl=a(),q=r("p"),q.textContent=OM,Pl=a(),U(K.$$.fragment),$l=a(),U(ee.$$.fragment),Bl=a(),le=r("p"),le.innerHTML=kM,Gl=a(),te=r("ul"),te.innerHTML=xM,Wl=a(),U(Me.$$.fragment),Zl=a(),ae=r("ul"),ae.innerHTML=RM,El=a(),U(oe.$$.fragment),Hl=a(),re=r("p"),re.innerHTML=NM,Ll=a(),ne=r("p"),ne.innerHTML=VM,Sl=a(),ie=r("p"),ie.textContent=FM,zl=a(),U(Te.$$.fragment),Xl=a(),U(Ue.$$.fragment),Yl=a(),se=r("p"),se.innerHTML=QM,ql=a(),U(ye.$$.fragment),Kl=a(),Je=r("p"),Je.innerHTML=DM,et=a(),U(de.$$.fragment),lt=a(),Ce=r("p"),Ce.textContent=PM,tt=a(),Ie=r("ul"),Ie.innerHTML=$M,Mt=a(),we=r("p"),we.textContent=BM,at=a(),me=r("p"),me.textContent=GM,ot=a(),pe=r("p"),pe.innerHTML=WM,rt=a(),U(ce.$$.fragment),nt=a(),U(je.$$.fragment),it=a(),A=r("div"),U(Ae.$$.fragment),Nt=a(),Ye=r("p"),Ye.textContent=ZM,Vt=a(),qe=r("p"),qe.innerHTML=EM,Ft=a(),Ke=r("div"),U(ge.$$.fragment),Qt=a(),el=r("div"),U(he.$$.fragment),Dt=a(),x=r("div"),U(ue.$$.fragment),Pt=a(),ll=r("p"),ll.innerHTML=HM,Tt=a(),U(fe.$$.fragment),Ut=a(),u=r("div"),U(_e.$$.fragment),$t=a(),tl=r("p"),tl.innerHTML=LM,Bt=a(),Ml=r("p"),Ml.innerHTML=SM,Gt=a(),al=r("p"),al.innerHTML=zM,Wt=a(),be=r("blockquote"),be.innerHTML=XM,st=a(),U(ve.$$.fragment),yt=a(),w=r("div"),U(Oe.$$.fragment),Zt=a(),ol=r("p"),ol.innerHTML=YM,Et=a(),rl=r("p"),rl.innerHTML=qM,Ht=a(),R=r("div"),U(ke.$$.fragment),Lt=a(),nl=r("p"),nl.innerHTML=KM,St=a(),N=r("div"),U(xe.$$.fragment),zt=a(),il=r("p"),il.textContent=ea,Xt=a(),V=r("div"),U(Re.$$.fragment),Yt=a(),Tl=r("p"),Tl.innerHTML=la,qt=a(),F=r("div"),U(Ne.$$.fragment),Kt=a(),Ul=r("p"),Ul.textContent=ta,eM=a(),Q=r("div"),U(Ve.$$.fragment),lM=a(),sl=r("p"),sl.innerHTML=Ma,tM=a(),D=r("div"),U(Fe.$$.fragment),MM=a(),yl=r("p"),yl.innerHTML=aa,aM=a(),P=r("div"),U(Qe.$$.fragment),oM=a(),Jl=r("p"),Jl.textContent=oa,Jt=a(),U(De.$$.fragment),dt=a(),c=r("div"),U(Pe.$$.fragment),rM=a(),dl=r("p"),dl.innerHTML=ra,nM=a(),Cl=r("p"),Cl.textContent=na,iM=a(),Il=r("ul"),Il.innerHTML=ia,TM=a(),$=r("div"),U($e.$$.fragment),UM=a(),wl=r("p"),wl.textContent=Ta,sM=a(),B=r("div"),U(Be.$$.fragment),yM=a(),ml=r("p"),ml.textContent=Ua,JM=a(),G=r("div"),U(Ge.$$.fragment),dM=a(),pl=r("p"),pl.innerHTML=sa,CM=a(),v=r("div"),U(We.$$.fragment),IM=a(),cl=r("p"),cl.innerHTML=ya,wM=a(),jl=r("ul"),jl.innerHTML=Ja,Ct=a(),U(Ze.$$.fragment),It=a(),g=r("div"),U(Ee.$$.fragment),mM=a(),Al=r("p"),Al.innerHTML=da,pM=a(),gl=r("div"),U(He.$$.fragment),cM=a(),hl=r("div"),U(Le.$$.fragment),jM=a(),W=r("div"),U(Se.$$.fragment),AM=a(),ul=r("p"),ul.innerHTML=Ca,gM=a(),Z=r("div"),U(ze.$$.fragment),hM=a(),fl=r("p"),fl.textContent=Ia,wt=a(),U(Xe.$$.fragment),mt=a(),vl=r("p"),this.h()},l(e){const M=fa("svelte-u9bgzb",document.head);k=n(M,"META",{name:!0,content:!0}),M.forEach(l),Ol=o(e),bl=n(e,"P",{}),m(bl).forEach(l),kl=o(e),s(E.$$.fragment,e),xl=o(e),s(H.$$.fragment,e),Rl=o(e),L=n(e,"P",{"data-svelte-h":!0}),T(L)!=="svelte-1kqe79k"&&(L.innerHTML=fM),Nl=o(e),S=n(e,"P",{"data-svelte-h":!0}),T(S)!=="svelte-1wrkyc3"&&(S.innerHTML=_M),Vl=o(e),z=n(e,"P",{"data-svelte-h":!0}),T(z)!=="svelte-k74mug"&&(z.textContent=bM),Fl=o(e),X=n(e,"UL",{"data-svelte-h":!0}),T(X)!=="svelte-3sl8ul"&&(X.innerHTML=vM),Ql=o(e),s(Y.$$.fragment,e),Dl=o(e),q=n(e,"P",{"data-svelte-h":!0}),T(q)!=="svelte-1ra1fl6"&&(q.textContent=OM),Pl=o(e),s(K.$$.fragment,e),$l=o(e),s(ee.$$.fragment,e),Bl=o(e),le=n(e,"P",{"data-svelte-h":!0}),T(le)!=="svelte-1i6oul1"&&(le.innerHTML=kM),Gl=o(e),te=n(e,"UL",{"data-svelte-h":!0}),T(te)!=="svelte-hxstae"&&(te.innerHTML=xM),Wl=o(e),s(Me.$$.fragment,e),Zl=o(e),ae=n(e,"UL",{"data-svelte-h":!0}),T(ae)!=="svelte-78jvfc"&&(ae.innerHTML=RM),El=o(e),s(oe.$$.fragment,e),Hl=o(e),re=n(e,"P",{"data-svelte-h":!0}),T(re)!=="svelte-16ylva"&&(re.innerHTML=NM),Ll=o(e),ne=n(e,"P",{"data-svelte-h":!0}),T(ne)!=="svelte-38bzcy"&&(ne.innerHTML=VM),Sl=o(e),ie=n(e,"P",{"data-svelte-h":!0}),T(ie)!=="svelte-2ci6j7"&&(ie.textContent=FM),zl=o(e),s(Te.$$.fragment,e),Xl=o(e),s(Ue.$$.fragment,e),Yl=o(e),se=n(e,"P",{"data-svelte-h":!0}),T(se)!=="svelte-3g3d1z"&&(se.innerHTML=QM),ql=o(e),s(ye.$$.fragment,e),Kl=o(e),Je=n(e,"P",{"data-svelte-h":!0}),T(Je)!=="svelte-40um3q"&&(Je.innerHTML=DM),et=o(e),s(de.$$.fragment,e),lt=o(e),Ce=n(e,"P",{"data-svelte-h":!0}),T(Ce)!=="svelte-yl0uf2"&&(Ce.textContent=PM),tt=o(e),Ie=n(e,"UL",{"data-svelte-h":!0}),T(Ie)!=="svelte-171qlaa"&&(Ie.innerHTML=$M),Mt=o(e),we=n(e,"P",{"data-svelte-h":!0}),T(we)!=="svelte-d0y2u4"&&(we.textContent=BM),at=o(e),me=n(e,"P",{"data-svelte-h":!0}),T(me)!=="svelte-1qb748v"&&(me.textContent=GM),ot=o(e),pe=n(e,"P",{"data-svelte-h":!0}),T(pe)!=="svelte-1ve7gvv"&&(pe.innerHTML=WM),rt=o(e),s(ce.$$.fragment,e),nt=o(e),s(je.$$.fragment,e),it=o(e),A=n(e,"DIV",{class:!0});var f=m(A);s(Ae.$$.fragment,f),Nt=o(f),Ye=n(f,"P",{"data-svelte-h":!0}),T(Ye)!=="svelte-1na0er3"&&(Ye.textContent=ZM),Vt=o(f),qe=n(f,"P",{"data-svelte-h":!0}),T(qe)!=="svelte-16lk3ys"&&(qe.innerHTML=EM),Ft=o(f),Ke=n(f,"DIV",{class:!0});var wa=m(Ke);s(ge.$$.fragment,wa),wa.forEach(l),Qt=o(f),el=n(f,"DIV",{class:!0});var ma=m(el);s(he.$$.fragment,ma),ma.forEach(l),Dt=o(f),x=n(f,"DIV",{class:!0});var ct=m(x);s(ue.$$.fragment,ct),Pt=o(ct),ll=n(ct,"P",{"data-svelte-h":!0}),T(ll)!=="svelte-8tudwd"&&(ll.innerHTML=HM),ct.forEach(l),f.forEach(l),Tt=o(e),s(fe.$$.fragment,e),Ut=o(e),u=n(e,"DIV",{class:!0});var O=m(u);s(_e.$$.fragment,O),$t=o(O),tl=n(O,"P",{"data-svelte-h":!0}),T(tl)!=="svelte-79qpvv"&&(tl.innerHTML=LM),Bt=o(O),Ml=n(O,"P",{"data-svelte-h":!0}),T(Ml)!=="svelte-12jdkkb"&&(Ml.innerHTML=SM),Gt=o(O),al=n(O,"P",{"data-svelte-h":!0}),T(al)!=="svelte-ekuf1t"&&(al.innerHTML=zM),Wt=o(O),be=n(O,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),T(be)!=="svelte-nmdbdw"&&(be.innerHTML=XM),O.forEach(l),st=o(e),s(ve.$$.fragment,e),yt=o(e),w=n(e,"DIV",{class:!0});var j=m(w);s(Oe.$$.fragment,j),Zt=o(j),ol=n(j,"P",{"data-svelte-h":!0}),T(ol)!=="svelte-4y4b3c"&&(ol.innerHTML=YM),Et=o(j),rl=n(j,"P",{"data-svelte-h":!0}),T(rl)!=="svelte-471zlb"&&(rl.innerHTML=qM),Ht=o(j),R=n(j,"DIV",{class:!0});var jt=m(R);s(ke.$$.fragment,jt),Lt=o(jt),nl=n(jt,"P",{"data-svelte-h":!0}),T(nl)!=="svelte-ng56zd"&&(nl.innerHTML=KM),jt.forEach(l),St=o(j),N=n(j,"DIV",{class:!0});var At=m(N);s(xe.$$.fragment,At),zt=o(At),il=n(At,"P",{"data-svelte-h":!0}),T(il)!=="svelte-rj8ou7"&&(il.textContent=ea),At.forEach(l),Xt=o(j),V=n(j,"DIV",{class:!0});var gt=m(V);s(Re.$$.fragment,gt),Yt=o(gt),Tl=n(gt,"P",{"data-svelte-h":!0}),T(Tl)!=="svelte-yfc2lh"&&(Tl.innerHTML=la),gt.forEach(l),qt=o(j),F=n(j,"DIV",{class:!0});var ht=m(F);s(Ne.$$.fragment,ht),Kt=o(ht),Ul=n(ht,"P",{"data-svelte-h":!0}),T(Ul)!=="svelte-15d4ef0"&&(Ul.textContent=ta),ht.forEach(l),eM=o(j),Q=n(j,"DIV",{class:!0});var ut=m(Q);s(Ve.$$.fragment,ut),lM=o(ut),sl=n(ut,"P",{"data-svelte-h":!0}),T(sl)!=="svelte-172g500"&&(sl.innerHTML=Ma),ut.forEach(l),tM=o(j),D=n(j,"DIV",{class:!0});var ft=m(D);s(Fe.$$.fragment,ft),MM=o(ft),yl=n(ft,"P",{"data-svelte-h":!0}),T(yl)!=="svelte-ct7htj"&&(yl.innerHTML=aa),ft.forEach(l),aM=o(j),P=n(j,"DIV",{class:!0});var _t=m(P);s(Qe.$$.fragment,_t),oM=o(_t),Jl=n(_t,"P",{"data-svelte-h":!0}),T(Jl)!=="svelte-1cyq38c"&&(Jl.textContent=oa),_t.forEach(l),j.forEach(l),Jt=o(e),s(De.$$.fragment,e),dt=o(e),c=n(e,"DIV",{class:!0});var h=m(c);s(Pe.$$.fragment,h),rM=o(h),dl=n(h,"P",{"data-svelte-h":!0}),T(dl)!=="svelte-kog3ih"&&(dl.innerHTML=ra),nM=o(h),Cl=n(h,"P",{"data-svelte-h":!0}),T(Cl)!=="svelte-wz8va1"&&(Cl.textContent=na),iM=o(h),Il=n(h,"UL",{"data-svelte-h":!0}),T(Il)!=="svelte-udppil"&&(Il.innerHTML=ia),TM=o(h),$=n(h,"DIV",{class:!0});var bt=m($);s($e.$$.fragment,bt),UM=o(bt),wl=n(bt,"P",{"data-svelte-h":!0}),T(wl)!=="svelte-1vif237"&&(wl.textContent=Ta),bt.forEach(l),sM=o(h),B=n(h,"DIV",{class:!0});var vt=m(B);s(Be.$$.fragment,vt),yM=o(vt),ml=n(vt,"P",{"data-svelte-h":!0}),T(ml)!=="svelte-117t42l"&&(ml.textContent=Ua),vt.forEach(l),JM=o(h),G=n(h,"DIV",{class:!0});var Ot=m(G);s(Ge.$$.fragment,Ot),dM=o(Ot),pl=n(Ot,"P",{"data-svelte-h":!0}),T(pl)!=="svelte-20c2m6"&&(pl.innerHTML=sa),Ot.forEach(l),CM=o(h),v=n(h,"DIV",{class:!0});var _l=m(v);s(We.$$.fragment,_l),IM=o(_l),cl=n(_l,"P",{"data-svelte-h":!0}),T(cl)!=="svelte-4in0ue"&&(cl.innerHTML=ya),wM=o(_l),jl=n(_l,"UL",{"data-svelte-h":!0}),T(jl)!=="svelte-xrw96c"&&(jl.innerHTML=Ja),_l.forEach(l),h.forEach(l),Ct=o(e),s(Ze.$$.fragment,e),It=o(e),g=n(e,"DIV",{class:!0});var _=m(g);s(Ee.$$.fragment,_),mM=o(_),Al=n(_,"P",{"data-svelte-h":!0}),T(Al)!=="svelte-uvnng8"&&(Al.innerHTML=da),pM=o(_),gl=n(_,"DIV",{class:!0});var pa=m(gl);s(He.$$.fragment,pa),pa.forEach(l),cM=o(_),hl=n(_,"DIV",{class:!0});var ca=m(hl);s(Le.$$.fragment,ca),ca.forEach(l),jM=o(_),W=n(_,"DIV",{class:!0});var kt=m(W);s(Se.$$.fragment,kt),AM=o(kt),ul=n(kt,"P",{"data-svelte-h":!0}),T(ul)!=="svelte-14hfc8g"&&(ul.innerHTML=Ca),kt.forEach(l),gM=o(_),Z=n(_,"DIV",{class:!0});var xt=m(Z);s(ze.$$.fragment,xt),hM=o(xt),fl=n(xt,"P",{"data-svelte-h":!0}),T(fl)!=="svelte-19noyid"&&(fl.textContent=Ia),xt.forEach(l),_.forEach(l),wt=o(e),s(Xe.$$.fragment,e),mt=o(e),vl=n(e,"P",{}),m(vl).forEach(l),this.h()},h(){I(k,"name","hf:doc:metadata"),I(k,"content",Oa),I(Ke,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),I(el,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),I(x,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),I(A,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),I(be,"class","note"),I(u,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),I(R,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),I(N,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),I(V,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),I(F,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),I(Q,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),I(D,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),I(P,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),I(w,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),I($,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),I(B,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),I(G,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),I(v,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),I(c,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),I(gl,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),I(hl,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),I(W,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),I(Z,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),I(g,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8")},m(e,M){t(document.head,k),i(e,Ol,M),i(e,bl,M),i(e,kl,M),y(E,e,M),i(e,xl,M),y(H,e,M),i(e,Rl,M),i(e,L,M),i(e,Nl,M),i(e,S,M),i(e,Vl,M),i(e,z,M),i(e,Fl,M),i(e,X,M),i(e,Ql,M),y(Y,e,M),i(e,Dl,M),i(e,q,M),i(e,Pl,M),y(K,e,M),i(e,$l,M),y(ee,e,M),i(e,Bl,M),i(e,le,M),i(e,Gl,M),i(e,te,M),i(e,Wl,M),y(Me,e,M),i(e,Zl,M),i(e,ae,M),i(e,El,M),y(oe,e,M),i(e,Hl,M),i(e,re,M),i(e,Ll,M),i(e,ne,M),i(e,Sl,M),i(e,ie,M),i(e,zl,M),y(Te,e,M),i(e,Xl,M),y(Ue,e,M),i(e,Yl,M),i(e,se,M),i(e,ql,M),y(ye,e,M),i(e,Kl,M),i(e,Je,M),i(e,et,M),y(de,e,M),i(e,lt,M),i(e,Ce,M),i(e,tt,M),i(e,Ie,M),i(e,Mt,M),i(e,we,M),i(e,at,M),i(e,me,M),i(e,ot,M),i(e,pe,M),i(e,rt,M),y(ce,e,M),i(e,nt,M),y(je,e,M),i(e,it,M),i(e,A,M),y(Ae,A,null),t(A,Nt),t(A,Ye),t(A,Vt),t(A,qe),t(A,Ft),t(A,Ke),y(ge,Ke,null),t(A,Qt),t(A,el),y(he,el,null),t(A,Dt),t(A,x),y(ue,x,null),t(x,Pt),t(x,ll),i(e,Tt,M),y(fe,e,M),i(e,Ut,M),i(e,u,M),y(_e,u,null),t(u,$t),t(u,tl),t(u,Bt),t(u,Ml),t(u,Gt),t(u,al),t(u,Wt),t(u,be),i(e,st,M),y(ve,e,M),i(e,yt,M),i(e,w,M),y(Oe,w,null),t(w,Zt),t(w,ol),t(w,Et),t(w,rl),t(w,Ht),t(w,R),y(ke,R,null),t(R,Lt),t(R,nl),t(w,St),t(w,N),y(xe,N,null),t(N,zt),t(N,il),t(w,Xt),t(w,V),y(Re,V,null),t(V,Yt),t(V,Tl),t(w,qt),t(w,F),y(Ne,F,null),t(F,Kt),t(F,Ul),t(w,eM),t(w,Q),y(Ve,Q,null),t(Q,lM),t(Q,sl),t(w,tM),t(w,D),y(Fe,D,null),t(D,MM),t(D,yl),t(w,aM),t(w,P),y(Qe,P,null),t(P,oM),t(P,Jl),i(e,Jt,M),y(De,e,M),i(e,dt,M),i(e,c,M),y(Pe,c,null),t(c,rM),t(c,dl),t(c,nM),t(c,Cl),t(c,iM),t(c,Il),t(c,TM),t(c,$),y($e,$,null),t($,UM),t($,wl),t(c,sM),t(c,B),y(Be,B,null),t(B,yM),t(B,ml),t(c,JM),t(c,G),y(Ge,G,null),t(G,dM),t(G,pl),t(c,CM),t(c,v),y(We,v,null),t(v,IM),t(v,cl),t(v,wM),t(v,jl),i(e,Ct,M),y(Ze,e,M),i(e,It,M),i(e,g,M),y(Ee,g,null),t(g,mM),t(g,Al),t(g,pM),t(g,gl),y(He,gl,null),t(g,cM),t(g,hl),y(Le,hl,null),t(g,jM),t(g,W),y(Se,W,null),t(W,AM),t(W,ul),t(g,gM),t(g,Z),y(ze,Z,null),t(Z,hM),t(Z,fl),i(e,wt,M),y(Xe,e,M),i(e,mt,M),i(e,vl,M),pt=!0},p:Aa,i(e){pt||(J(E.$$.fragment,e),J(H.$$.fragment,e),J(Y.$$.fragment,e),J(K.$$.fragment,e),J(ee.$$.fragment,e),J(Me.$$.fragment,e),J(oe.$$.fragment,e),J(Te.$$.fragment,e),J(Ue.$$.fragment,e),J(ye.$$.fragment,e),J(de.$$.fragment,e),J(ce.$$.fragment,e),J(je.$$.fragment,e),J(Ae.$$.fragment,e),J(ge.$$.fragment,e),J(he.$$.fragment,e),J(ue.$$.fragment,e),J(fe.$$.fragment,e),J(_e.$$.fragment,e),J(ve.$$.fragment,e),J(Oe.$$.fragment,e),J(ke.$$.fragment,e),J(xe.$$.fragment,e),J(Re.$$.fragment,e),J(Ne.$$.fragment,e),J(Ve.$$.fragment,e),J(Fe.$$.fragment,e),J(Qe.$$.fragment,e),J(De.$$.fragment,e),J(Pe.$$.fragment,e),J($e.$$.fragment,e),J(Be.$$.fragment,e),J(Ge.$$.fragment,e),J(We.$$.fragment,e),J(Ze.$$.fragment,e),J(Ee.$$.fragment,e),J(He.$$.fragment,e),J(Le.$$.fragment,e),J(Se.$$.fragment,e),J(ze.$$.fragment,e),J(Xe.$$.fragment,e),pt=!0)},o(e){d(E.$$.fragment,e),d(H.$$.fragment,e),d(Y.$$.fragment,e),d(K.$$.fragment,e),d(ee.$$.fragment,e),d(Me.$$.fragment,e),d(oe.$$.fragment,e),d(Te.$$.fragment,e),d(Ue.$$.fragment,e),d(ye.$$.fragment,e),d(de.$$.fragment,e),d(ce.$$.fragment,e),d(je.$$.fragment,e),d(Ae.$$.fragment,e),d(ge.$$.fragment,e),d(he.$$.fragment,e),d(ue.$$.fragment,e),d(fe.$$.fragment,e),d(_e.$$.fragment,e),d(ve.$$.fragment,e),d(Oe.$$.fragment,e),d(ke.$$.fragment,e),d(xe.$$.fragment,e),d(Re.$$.fragment,e),d(Ne.$$.fragment,e),d(Ve.$$.fragment,e),d(Fe.$$.fragment,e),d(Qe.$$.fragment,e),d(De.$$.fragment,e),d(Pe.$$.fragment,e),d($e.$$.fragment,e),d(Be.$$.fragment,e),d(Ge.$$.fragment,e),d(We.$$.fragment,e),d(Ze.$$.fragment,e),d(Ee.$$.fragment,e),d(He.$$.fragment,e),d(Le.$$.fragment,e),d(Se.$$.fragment,e),d(ze.$$.fragment,e),d(Xe.$$.fragment,e),pt=!1},d(e){e&&(l(Ol),l(bl),l(kl),l(xl),l(Rl),l(L),l(Nl),l(S),l(Vl),l(z),l(Fl),l(X),l(Ql),l(Dl),l(q),l(Pl),l($l),l(Bl),l(le),l(Gl),l(te),l(Wl),l(Zl),l(ae),l(El),l(Hl),l(re),l(Ll),l(ne),l(Sl),l(ie),l(zl),l(Xl),l(Yl),l(se),l(ql),l(Kl),l(Je),l(et),l(lt),l(Ce),l(tt),l(Ie),l(Mt),l(we),l(at),l(me),l(ot),l(pe),l(rt),l(nt),l(it),l(A),l(Tt),l(Ut),l(u),l(st),l(yt),l(w),l(Jt),l(dt),l(c),l(Ct),l(It),l(g),l(wt),l(mt),l(vl)),l(k),C(E,e),C(H,e),C(Y,e),C(K,e),C(ee,e),C(Me,e),C(oe,e),C(Te,e),C(Ue,e),C(ye,e),C(de,e),C(ce,e),C(je,e),C(Ae),C(ge),C(he),C(ue),C(fe,e),C(_e),C(ve,e),C(Oe),C(ke),C(xe),C(Re),C(Ne),C(Ve),C(Fe),C(Qe),C(De,e),C(Pe),C($e),C(Be),C(Ge),C(We),C(Ze,e),C(Ee),C(He),C(Le),C(Se),C(ze),C(Xe,e)}}}const Oa='{"title":"PPO Trainer","local":"ppo-trainer","sections":[{"title":"Get started","local":"get-started","sections":[],"depth":2},{"title":"Explanation of the logged metrics","local":"explanation-of-the-logged-metrics","sections":[],"depth":2},{"title":"Cookbook","local":"cookbook","sections":[],"depth":2},{"title":"What is my model doing exactly?","local":"what-is-my-model-doing-exactly","sections":[],"depth":2},{"title":"Implementation details","local":"implementation-details","sections":[],"depth":2},{"title":"Benchmark experiments","local":"benchmark-experiments","sections":[],"depth":2},{"title":"PPOTrainer","local":"trl.experimental.ppo.PPOTrainer","sections":[],"depth":2},{"title":"PPOConfig","local":"trl.experimental.ppo.PPOConfig","sections":[],"depth":2},{"title":"PreTrainedModelWrapper","local":"trl.experimental.ppo.PreTrainedModelWrapper","sections":[],"depth":2},{"title":"AutoModelForCausalLMWithValueHead","local":"trl.experimental.ppo.AutoModelForCausalLMWithValueHead","sections":[],"depth":2},{"title":"AutoModelForSeq2SeqLMWithValueHead","local":"trl.experimental.ppo.AutoModelForSeq2SeqLMWithValueHead","sections":[],"depth":2}],"depth":1}';function ka(uM){return ga(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Qa extends ha{constructor(k){super(),ua(this,k,ka,va,ja,{})}}export{Qa as component};

Xet Storage Details

Size:
120 kB
·
Xet hash:
105862a8eee87fcbd6a8410ae7406b4bc1868fedf8673cd8ca08fc37389d98dd

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.