Buckets:

HuggingFaceDocBuilder's picture
download
raw
31.6 kB
import{s as xt,n as Jt,o as $t}from"../chunks/scheduler.7b731bd4.js";import{S as kt,i as Ft,e as r,s as l,c as d,h as jt,a as s,d as a,b as o,f as K,g as p,j as i,k as ee,l as m,m as n,n as c,t as _,o as f,p as u}from"../chunks/index.cc268345.js";import{C as It,H as te,E as Ct}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.1e0d7bee.js";import{D as _e}from"../chunks/Docstring.c2f1a69a.js";import{C as wt}from"../chunks/CodeBlock.abc5618c.js";function Dt(at){let T,fe,pe,ue,N,ve,w,ge,x,nt='Self-Distilled Fine-Tuning (SDFT) is described in <a href="https://huggingface.co/papers/2601.19897" rel="nofollow">Self-Training with On-Policy Self-Distillation for Language Model Alignment</a>.',he,J,lt="The TRL implementation adapts SDFT to the experimental trainer API while reusing the shared self-distillation infrastructure also used by SDPO.",be,$,ot="In the current TRL implementation:",Te,k,rt="<li>the teacher is the model itself (base weights with adapter disabled for PEFT, or the same model under <code>no_grad</code> for non-PEFT); use <code>sync_ref_model=True</code> for an EMA teacher</li> <li>the dataset must provide both <code>prompt</code> and <code>privileged_context</code></li> <li><code>privileged_context</code> contains only the extra teacher-only information; the trainer combines it with <code>prompt</code> to build the teacher prompt</li> <li><code>teacher_prompt_template</code> controls how <code>prompt</code> and <code>privileged_context</code> are combined into the teacher prompt</li> <li>on-policy generation can use either the student prompt or the teacher-conditioned prompt via <code>generate_from_teacher</code></li> <li><code>num_loss_tokens_to_skip</code> can exclude initial completion tokens from the distillation loss</li> <li>SDFT currently supports text-only training and does not support <code>use_vllm=True</code></li> <li>the shared dataset contract is <code>prompt</code> plus <code>privileged_context</code></li>",Me,F,ye,j,Ne,I,st=`To generate from the teacher-conditioned prompt instead of the student prompt, set <code>generate_from_teacher=True</code>.
To customize how the teacher prompt is built, set <code>teacher_prompt_template</code> on <code>SDFTConfig</code>.`,we,C,xe,D,it="Each example must provide:",Je,S,mt="<li><code>prompt</code>: the student-facing prompt</li> <li><code>privileged_context</code>: only the extra teacher-only information, such as a demonstration, hint, or privileged feedback</li>",$e,U,dt="Both standard text prompts and conversational prompts are supported by the trainer prompt handling.",ke,A,Fe,E,pt="The trainer emits a small set of callback hooks that are useful for debugging, observability, and tests. These hooks are intended as practical integration points for experimental self-distillation workflows.",je,L,ct="Shared self-distillation hooks:",Ie,R,_t="<li><code>on_self_distillation_batch_prepared</code>: fired when a self-distillation batch is ready. The payload includes <code>prompt_ids</code>, <code>completion_ids</code>, and <code>old_per_token_logps</code> when importance-sampling clipping inputs are available.</li> <li><code>on_generation_batch_built</code>: fired when a new buffered generation batch is created. The payload includes <code>generate_every</code> and <code>steps_per_generation</code>.</li>",Ce,X,ft="SDFT-specific hook:",De,B,ut="<li><code>on_generation_prompts_selected</code>: fired when SDFT chooses the prompt source for on-policy generation. The payload includes the selected <code>generation_prompts</code> and the corresponding <code>generation_prompt_text</code>.</li>",Se,Z,Ue,V,vt='Use <a href="https://github.com/huggingface/trl/blob/main/trl/experimental/sdft/sdft.py" rel="nofollow"><code>trl/experimental/sdft/sdft.py</code></a> to launch SDFT training from the command line. The script supports any causal LM from the Hub, custom local datasets via <code>--dataset_path</code>, and PEFT/LoRA via the standard <code>ModelConfig</code> flags.',Ae,W,Ee,H,Le,g,P,Pe,ae,gt="Configuration class for <code>SDFTTrainer</code>.",Ge,ne,ht=`This adapts the official SDFT implementation to the TRL trainer API while reusing the common self-distillation
configuration shared with SDPO.`,Re,G,Xe,v,q,qe,le,bt="Trainer for SDFT-style on-policy self-distillation with explicit teacher prompts.",Qe,M,Q,ze,oe,Tt="Main training entry point.",Ye,h,z,Oe,re,Mt="Will save the model, so you can reload it using <code>from_pretrained()</code>.",Ke,se,yt="Will only save from the main process.",et,y,Y,tt,ie,Nt="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>.",Be,O,Ze,ce,Ve;return N=new It({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),w=new te({props:{title:"SDFT",local:"sdft",headingTag:"h1"}}),F=new te({props:{title:"Usage",local:"usage",headingTag:"h2"}}),j=new wt({props:{code:"ZnJvbSUyMGRhdGFzZXRzJTIwaW1wb3J0JTIwRGF0YXNldCUwQSUwQWZyb20lMjB0cmwuZXhwZXJpbWVudGFsLnNkZnQlMjBpbXBvcnQlMjBTREZUQ29uZmlnJTJDJTIwU0RGVFRyYWluZXIlMEElMEFkYXRhc2V0JTIwJTNEJTIwRGF0YXNldC5mcm9tX2RpY3QoJTBBJTIwJTIwJTIwJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIycHJvbXB0JTIyJTNBJTIwJTVCJTVCJTdCJTIycm9sZSUyMiUzQSUyMCUyMnVzZXIlMjIlMkMlMjAlMjJjb250ZW50JTIyJTNBJTIwJTIyU29sdmUlMjAyJTJCMi4lMjIlN0QlNUQlNUQlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJwcml2aWxlZ2VkX2NvbnRleHQlMjIlM0ElMjAlNUIlMjJFeGFtcGxlJTIwYW5zd2VyJTNBJTIwNC4lMjIlNUQlMkMlMEElMjAlMjAlMjAlMjAlN0QlMEEpJTBBJTBBdHJhaW5pbmdfYXJncyUyMCUzRCUyMFNERlRDb25maWcoJTBBJTIwJTIwJTIwJTIwb3V0cHV0X2RpciUzRCUyMnNkZnQtbW9kZWwlMjIlMkMlMEElMjAlMjAlMjAlMjBkaXN0aWxsYXRpb25fYWxwaGElM0QwLjUlMkMlMEElMjAlMjAlMjAlMjBkaXN0aWxsYXRpb25fdG9wayUzRDUlMkMlMEElMjAlMjAlMjAlMjBtYXhfY29tcGxldGlvbl9sZW5ndGglM0Q2NCUyQyUwQSklMEElMEF0cmFpbmVyJTIwJTNEJTIwU0RGVFRyYWluZXIoJTBBJTIwJTIwJTIwJTIwbW9kZWwlM0QlMjJRd2VuJTJGUXdlbjIuNS0xLjVCLUluc3RydWN0JTIyJTJDJTBBJTIwJTIwJTIwJTIwYXJncyUzRHRyYWluaW5nX2FyZ3MlMkMlMEElMjAlMjAlMjAlMjB0cmFpbl9kYXRhc2V0JTNEZGF0YXNldCUyQyUwQSklMEF0cmFpbmVyLnRyYWluKCk=",highlighted:`<span class="hljs-keyword">from</span> datasets <span class="hljs-keyword">import</span> Dataset
<span class="hljs-keyword">from</span> trl.experimental.sdft <span class="hljs-keyword">import</span> SDFTConfig, SDFTTrainer
dataset = Dataset.from_dict(
{
<span class="hljs-string">&quot;prompt&quot;</span>: [[{<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;user&quot;</span>, <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;Solve 2+2.&quot;</span>}]],
<span class="hljs-string">&quot;privileged_context&quot;</span>: [<span class="hljs-string">&quot;Example answer: 4.&quot;</span>],
}
)
training_args = SDFTConfig(
output_dir=<span class="hljs-string">&quot;sdft-model&quot;</span>,
distillation_alpha=<span class="hljs-number">0.5</span>,
distillation_topk=<span class="hljs-number">5</span>,
max_completion_length=<span class="hljs-number">64</span>,
)
trainer = SDFTTrainer(
model=<span class="hljs-string">&quot;Qwen/Qwen2.5-1.5B-Instruct&quot;</span>,
args=training_args,
train_dataset=dataset,
)
trainer.train()`,wrap:!1}}),C=new te({props:{title:"Expected dataset columns",local:"expected-dataset-columns",headingTag:"h2"}}),A=new te({props:{title:"Callbacks",local:"callbacks",headingTag:"h2"}}),Z=new te({props:{title:"Example script",local:"example-script",headingTag:"h2"}}),W=new wt({props:{code:"cHl0aG9uJTIwdHJsJTJGZXhwZXJpbWVudGFsJTJGc2RmdCUyRnNkZnQucHklMjAlNUMlMEElMjAlMjAlMjAlMjAtLW1vZGVsX25hbWVfb3JfcGF0aCUyMFF3ZW4lMkZRd2VuMy41LTAuOEIlMjAlNUMlMEElMjAlMjAlMjAlMjAtLWRhdGFzZXRfbmFtZSUyMHlvdXItb3JnJTJGeW91ci1kYXRhc2V0JTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1vdXRwdXRfZGlyJTIwb3V0cHV0cyUyRnNkZnQtcXdlbjMuNS0wLjhiJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1wZXJfZGV2aWNlX3RyYWluX2JhdGNoX3NpemUlMjAxJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1ncmFkaWVudF9hY2N1bXVsYXRpb25fc3RlcHMlMjAxNiUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tbGVhcm5pbmdfcmF0ZSUyMDJlLTUlMjAlNUMlMEElMjAlMjAlMjAlMjAtLW1heF9wcm9tcHRfbGVuZ3RoJTIwMTAyNCUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tbWF4X2NvbXBsZXRpb25fbGVuZ3RoJTIwNTEyJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1nZW5lcmF0ZV9mcm9tX3RlYWNoZXIlMjAlNUMlMEElMjAlMjAlMjAlMjAtLXN5bmNfcmVmX21vZGVsJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1yZWZfbW9kZWxfc3luY19zdGVwcyUyMDElMjAlNUMlMEElMjAlMjAlMjAlMjAtLXJlZl9tb2RlbF9taXh1cF9hbHBoYSUyMDAuMDElMjAlNUMlMEElMjAlMjAlMjAlMjAtLWV2YWxfc3RyYXRlZ3klMjBzdGVwcyUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tZXZhbF9zdGVwcyUyMDUwJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1yZXBvcnRfdG8lMjB3YW5kYg==",highlighted:`python trl/experimental/sdft/sdft.py \\
--model_name_or_path Qwen/Qwen3.5-0.8B \\
--dataset_name your-org/your-dataset \\
--output_dir outputs/sdft-qwen3.5-0.8b \\
--per_device_train_batch_size 1 \\
--gradient_accumulation_steps 16 \\
--learning_rate 2e-5 \\
--max_prompt_length 1024 \\
--max_completion_length 512 \\
--generate_from_teacher \\
--sync_ref_model \\
--ref_model_sync_steps 1 \\
--ref_model_mixup_alpha 0.01 \\
--eval_strategy steps \\
--eval_steps 50 \\
--report_to wandb`,wrap:!1}}),H=new te({props:{title:"SDFTConfig",local:"trl.experimental.sdft.SDFTConfig",headingTag:"h2"}}),P=new _e({props:{name:"class trl.experimental.sdft.SDFTConfig",anchor:"trl.experimental.sdft.SDFTConfig",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 = 5e-05"},{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 = False"},{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:"model_init_kwargs",val:": dict[str, typing.Any] | None = None"},{name:"disable_dropout",val:": bool = True"},{name:"max_prompt_length",val:": int | None = 512"},{name:"num_generations",val:": int = 8"},{name:"num_generations_eval",val:": int | None = None"},{name:"max_completion_length",val:": int | None = 256"},{name:"ds3_gather_for_generation",val:": bool = True"},{name:"shuffle_dataset",val:": bool = True"},{name:"generation_batch_size",val:": int | None = None"},{name:"steps_per_generation",val:": int | None = None"},{name:"temperature",val:": float = 1.0"},{name:"top_p",val:": float = 1.0"},{name:"top_k",val:": int = 0"},{name:"min_p",val:": float | None = None"},{name:"generation_kwargs",val:": dict[str, typing.Any] | None = None"},{name:"chat_template_kwargs",val:": dict[str, typing.Any] | None = None"},{name:"repetition_penalty",val:": float = 1.0"},{name:"cache_implementation",val:": str | None = None"},{name:"use_vllm",val:": bool = False"},{name:"vllm_mode",val:": str = 'colocate'"},{name:"vllm_model_impl",val:": str = 'vllm'"},{name:"vllm_enable_sleep_mode",val:": bool = False"},{name:"vllm_server_base_url",val:": str | None = None"},{name:"vllm_server_host",val:": str = '0.0.0.0'"},{name:"vllm_server_port",val:": int = 8000"},{name:"vllm_group_port",val:": int = 51216"},{name:"vllm_server_timeout",val:": float = 240.0"},{name:"vllm_tensor_parallel_size",val:": int = 1"},{name:"vllm_gpu_memory_utilization",val:": float = 0.3"},{name:"vllm_max_model_length",val:": int | None = None"},{name:"beta",val:": float = 0.0"},{name:"num_iterations",val:": int = 1"},{name:"epsilon",val:": float = 0.2"},{name:"epsilon_high",val:": float | None = None"},{name:"importance_sampling_level",val:": str = 'token'"},{name:"reward_weights",val:": list[float] | None = None"},{name:"scale_rewards",val:": str | bool = 'group'"},{name:"loss_type",val:": str = 'dapo'"},{name:"mask_truncated_completions",val:": bool = False"},{name:"sync_ref_model",val:": bool = False"},{name:"ref_model_mixup_alpha",val:": float = 0.6"},{name:"ref_model_sync_steps",val:": int = 512"},{name:"top_entropy_quantile",val:": float = 1.0"},{name:"distillation_alpha",val:": float = 0.5"},{name:"distillation_topk",val:": int | None = 100"},{name:"full_logit_distillation",val:": bool = False"},{name:"distillation_is_clip",val:": float | None = 2.0"},{name:"distillation_add_tail",val:": bool = False"},{name:"distillation_weight",val:": float = 1.0"},{name:"diagnostics_warning_interval",val:": int = 10"},{name:"diagnostics_flat_tolerance",val:": float = 1e-08"},{name:"generate_from_teacher",val:": bool = False"},{name:"teacher_prompt_template",val:": str = '{prompt}\\n\\n{privileged_context}'"},{name:"num_loss_tokens_to_skip",val:": int = 0"}],parametersDescription:[{anchor:"trl.experimental.sdft.SDFTConfig.disable_dropout",description:`<strong>disable_dropout</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) &#x2014;
Whether to disable dropout in the student and teacher models.`,name:"disable_dropout"},{anchor:"trl.experimental.sdft.SDFTConfig.generate_from_teacher",description:`<strong>generate_from_teacher</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
Whether on-policy generation should use the teacher-conditioned prompt instead of the student prompt.`,name:"generate_from_teacher"},{anchor:"trl.experimental.sdft.SDFTConfig.teacher_prompt_template",description:`<strong>teacher_prompt_template</strong> (<code>str</code>, <em>optional</em>, defaults to <code>&quot;{prompt}\\n\\n{privileged_context}&quot;</code>) &#x2014;
Template used to combine the student prompt and privileged context into the teacher prompt.`,name:"teacher_prompt_template"},{anchor:"trl.experimental.sdft.SDFTConfig.num_loss_tokens_to_skip",description:`<strong>num_loss_tokens_to_skip</strong> (<code>int</code>, <em>optional</em>, defaults to <code>0</code>) &#x2014;
Number of initial completion tokens to exclude from the distillation loss.`,name:"num_loss_tokens_to_skip"}],source:"https://github.com/huggingface/trl/blob/vr_5582/trl/experimental/sdft/sdft_config.py#L21"}}),G=new te({props:{title:"SDFTTrainer",local:"trl.experimental.sdft.SDFTTrainer",headingTag:"h2"}}),q=new _e({props:{name:"class trl.experimental.sdft.SDFTTrainer",anchor:"trl.experimental.sdft.SDFTTrainer",parameters:[{name:"model",val:": str | PreTrainedModel | nn.Module"},{name:"args",val:": SDFTConfig | None = None"},{name:"train_dataset",val:": Dataset | IterableDataset | None = None"},{name:"eval_dataset",val:": Dataset | IterableDataset | dict[str, Dataset | IterableDataset] | None = None"},{name:"processing_class",val:": PreTrainedTokenizerBase | ProcessorMixin | None = None"},{name:"callbacks",val:": list[TrainerCallback] | None = None"},{name:"optimizers",val:": tuple[torch.optim.Optimizer | None, torch.optim.lr_scheduler.LambdaLR | None] = (None, None)"},{name:"peft_config",val:": PeftConfig | None = None"}],source:"https://github.com/huggingface/trl/blob/vr_5582/trl/experimental/sdft/sdft_trainer.py#L141"}}),Q=new _e({props:{name:"train",anchor:"trl.experimental.sdft.SDFTTrainer.train",parameters:[{name:"resume_from_checkpoint",val:": str | bool | None = None"},{name:"trial",val:": optuna.Trial | dict[str, Any] | None = None"},{name:"ignore_keys_for_eval",val:": list[str] | None = None"}],parametersDescription:[{anchor:"trl.experimental.sdft.SDFTTrainer.train.resume_from_checkpoint",description:`<strong>resume_from_checkpoint</strong> (<code>str</code> or <code>bool</code>, <em>optional</em>) &#x2014;
If a <code>str</code>, local path to a saved checkpoint as saved by a previous instance of <code>Trainer</code>. If a
<code>bool</code> and equals <code>True</code>, load the last checkpoint in <em>args.output_dir</em> as saved by a previous instance
of <code>Trainer</code>. If present, training will resume from the model/optimizer/scheduler states loaded here.`,name:"resume_from_checkpoint"},{anchor:"trl.experimental.sdft.SDFTTrainer.train.trial",description:`<strong>trial</strong> (<code>optuna.Trial</code> or <code>dict[str, Any]</code>, <em>optional</em>) &#x2014;
The trial run or the hyperparameter dictionary for hyperparameter search.`,name:"trial"},{anchor:"trl.experimental.sdft.SDFTTrainer.train.ignore_keys_for_eval",description:`<strong>ignore_keys_for_eval</strong> (<code>list[str]</code>, <em>optional</em>) &#x2014;
A list of keys in the output of your model (if it is a dictionary) that should be ignored when
gathering predictions for evaluation during the training.`,name:"ignore_keys_for_eval"}],source:"https://github.com/huggingface/trl/blob/vr_5582/transformers/trainer.py#L1323",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>
<p>Object containing the global step count, training loss, and metrics.</p>
`,returnType:`<script context="module">export const metadata = 'undefined';<\/script>
<p><code>~trainer_utils.TrainOutput</code></p>
`}}),z=new _e({props:{name:"save_model",anchor:"trl.experimental.sdft.SDFTTrainer.save_model",parameters:[{name:"output_dir",val:": str | None = None"},{name:"_internal_call",val:": bool = False"}],source:"https://github.com/huggingface/trl/blob/vr_5582/transformers/trainer.py#L3746"}}),Y=new _e({props:{name:"push_to_hub",anchor:"trl.experimental.sdft.SDFTTrainer.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.sdft.SDFTTrainer.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.sdft.SDFTTrainer.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.sdft.SDFTTrainer.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.sdft.SDFTTrainer.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.sdft.SDFTTrainer.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_5582/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>
`}}),O=new Ct({props:{source:"https://github.com/huggingface/trl/blob/main/docs/source/sdft_trainer.md"}}),{c(){T=r("meta"),fe=l(),pe=r("p"),ue=l(),d(N.$$.fragment),ve=l(),d(w.$$.fragment),ge=l(),x=r("p"),x.innerHTML=nt,he=l(),J=r("p"),J.textContent=lt,be=l(),$=r("p"),$.textContent=ot,Te=l(),k=r("ul"),k.innerHTML=rt,Me=l(),d(F.$$.fragment),ye=l(),d(j.$$.fragment),Ne=l(),I=r("p"),I.innerHTML=st,we=l(),d(C.$$.fragment),xe=l(),D=r("p"),D.textContent=it,Je=l(),S=r("ul"),S.innerHTML=mt,$e=l(),U=r("p"),U.textContent=dt,ke=l(),d(A.$$.fragment),Fe=l(),E=r("p"),E.textContent=pt,je=l(),L=r("p"),L.textContent=ct,Ie=l(),R=r("ul"),R.innerHTML=_t,Ce=l(),X=r("p"),X.textContent=ft,De=l(),B=r("ul"),B.innerHTML=ut,Se=l(),d(Z.$$.fragment),Ue=l(),V=r("p"),V.innerHTML=vt,Ae=l(),d(W.$$.fragment),Ee=l(),d(H.$$.fragment),Le=l(),g=r("div"),d(P.$$.fragment),Pe=l(),ae=r("p"),ae.innerHTML=gt,Ge=l(),ne=r("p"),ne.textContent=ht,Re=l(),d(G.$$.fragment),Xe=l(),v=r("div"),d(q.$$.fragment),qe=l(),le=r("p"),le.textContent=bt,Qe=l(),M=r("div"),d(Q.$$.fragment),ze=l(),oe=r("p"),oe.textContent=Tt,Ye=l(),h=r("div"),d(z.$$.fragment),Oe=l(),re=r("p"),re.innerHTML=Mt,Ke=l(),se=r("p"),se.textContent=yt,et=l(),y=r("div"),d(Y.$$.fragment),tt=l(),ie=r("p"),ie.innerHTML=Nt,Be=l(),d(O.$$.fragment),Ze=l(),ce=r("p"),this.h()},l(e){const t=jt("svelte-u9bgzb",document.head);T=s(t,"META",{name:!0,content:!0}),t.forEach(a),fe=o(e),pe=s(e,"P",{}),K(pe).forEach(a),ue=o(e),p(N.$$.fragment,e),ve=o(e),p(w.$$.fragment,e),ge=o(e),x=s(e,"P",{"data-svelte-h":!0}),i(x)!=="svelte-11j75n0"&&(x.innerHTML=nt),he=o(e),J=s(e,"P",{"data-svelte-h":!0}),i(J)!=="svelte-p3j3qp"&&(J.textContent=lt),be=o(e),$=s(e,"P",{"data-svelte-h":!0}),i($)!=="svelte-1k81tbl"&&($.textContent=ot),Te=o(e),k=s(e,"UL",{"data-svelte-h":!0}),i(k)!=="svelte-1i6j5fp"&&(k.innerHTML=rt),Me=o(e),p(F.$$.fragment,e),ye=o(e),p(j.$$.fragment,e),Ne=o(e),I=s(e,"P",{"data-svelte-h":!0}),i(I)!=="svelte-1aomv3h"&&(I.innerHTML=st),we=o(e),p(C.$$.fragment,e),xe=o(e),D=s(e,"P",{"data-svelte-h":!0}),i(D)!=="svelte-wjd8dj"&&(D.textContent=it),Je=o(e),S=s(e,"UL",{"data-svelte-h":!0}),i(S)!=="svelte-8fvaa5"&&(S.innerHTML=mt),$e=o(e),U=s(e,"P",{"data-svelte-h":!0}),i(U)!=="svelte-10ja6q8"&&(U.textContent=dt),ke=o(e),p(A.$$.fragment,e),Fe=o(e),E=s(e,"P",{"data-svelte-h":!0}),i(E)!=="svelte-bwf7b5"&&(E.textContent=pt),je=o(e),L=s(e,"P",{"data-svelte-h":!0}),i(L)!=="svelte-1dzg5pm"&&(L.textContent=ct),Ie=o(e),R=s(e,"UL",{"data-svelte-h":!0}),i(R)!=="svelte-qdul72"&&(R.innerHTML=_t),Ce=o(e),X=s(e,"P",{"data-svelte-h":!0}),i(X)!=="svelte-9xlqqj"&&(X.textContent=ft),De=o(e),B=s(e,"UL",{"data-svelte-h":!0}),i(B)!=="svelte-1y0eyb4"&&(B.innerHTML=ut),Se=o(e),p(Z.$$.fragment,e),Ue=o(e),V=s(e,"P",{"data-svelte-h":!0}),i(V)!=="svelte-usxlzy"&&(V.innerHTML=vt),Ae=o(e),p(W.$$.fragment,e),Ee=o(e),p(H.$$.fragment,e),Le=o(e),g=s(e,"DIV",{class:!0});var me=K(g);p(P.$$.fragment,me),Pe=o(me),ae=s(me,"P",{"data-svelte-h":!0}),i(ae)!=="svelte-1w6kct8"&&(ae.innerHTML=gt),Ge=o(me),ne=s(me,"P",{"data-svelte-h":!0}),i(ne)!=="svelte-15qrksr"&&(ne.textContent=ht),me.forEach(a),Re=o(e),p(G.$$.fragment,e),Xe=o(e),v=s(e,"DIV",{class:!0});var b=K(v);p(q.$$.fragment,b),qe=o(b),le=s(b,"P",{"data-svelte-h":!0}),i(le)!=="svelte-1ng5641"&&(le.textContent=bt),Qe=o(b),M=s(b,"DIV",{class:!0});var We=K(M);p(Q.$$.fragment,We),ze=o(We),oe=s(We,"P",{"data-svelte-h":!0}),i(oe)!=="svelte-1cilnet"&&(oe.textContent=Tt),We.forEach(a),Ye=o(b),h=s(b,"DIV",{class:!0});var de=K(h);p(z.$$.fragment,de),Oe=o(de),re=s(de,"P",{"data-svelte-h":!0}),i(re)!=="svelte-r8h4ov"&&(re.innerHTML=Mt),Ke=o(de),se=s(de,"P",{"data-svelte-h":!0}),i(se)!=="svelte-1e6bius"&&(se.textContent=yt),de.forEach(a),et=o(b),y=s(b,"DIV",{class:!0});var He=K(y);p(Y.$$.fragment,He),tt=o(He),ie=s(He,"P",{"data-svelte-h":!0}),i(ie)!=="svelte-8tudwd"&&(ie.innerHTML=Nt),He.forEach(a),b.forEach(a),Be=o(e),p(O.$$.fragment,e),Ze=o(e),ce=s(e,"P",{}),K(ce).forEach(a),this.h()},h(){ee(T,"name","hf:doc:metadata"),ee(T,"content",St),ee(g,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),ee(M,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),ee(h,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),ee(y,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),ee(v,"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,t){m(document.head,T),n(e,fe,t),n(e,pe,t),n(e,ue,t),c(N,e,t),n(e,ve,t),c(w,e,t),n(e,ge,t),n(e,x,t),n(e,he,t),n(e,J,t),n(e,be,t),n(e,$,t),n(e,Te,t),n(e,k,t),n(e,Me,t),c(F,e,t),n(e,ye,t),c(j,e,t),n(e,Ne,t),n(e,I,t),n(e,we,t),c(C,e,t),n(e,xe,t),n(e,D,t),n(e,Je,t),n(e,S,t),n(e,$e,t),n(e,U,t),n(e,ke,t),c(A,e,t),n(e,Fe,t),n(e,E,t),n(e,je,t),n(e,L,t),n(e,Ie,t),n(e,R,t),n(e,Ce,t),n(e,X,t),n(e,De,t),n(e,B,t),n(e,Se,t),c(Z,e,t),n(e,Ue,t),n(e,V,t),n(e,Ae,t),c(W,e,t),n(e,Ee,t),c(H,e,t),n(e,Le,t),n(e,g,t),c(P,g,null),m(g,Pe),m(g,ae),m(g,Ge),m(g,ne),n(e,Re,t),c(G,e,t),n(e,Xe,t),n(e,v,t),c(q,v,null),m(v,qe),m(v,le),m(v,Qe),m(v,M),c(Q,M,null),m(M,ze),m(M,oe),m(v,Ye),m(v,h),c(z,h,null),m(h,Oe),m(h,re),m(h,Ke),m(h,se),m(v,et),m(v,y),c(Y,y,null),m(y,tt),m(y,ie),n(e,Be,t),c(O,e,t),n(e,Ze,t),n(e,ce,t),Ve=!0},p:Jt,i(e){Ve||(_(N.$$.fragment,e),_(w.$$.fragment,e),_(F.$$.fragment,e),_(j.$$.fragment,e),_(C.$$.fragment,e),_(A.$$.fragment,e),_(Z.$$.fragment,e),_(W.$$.fragment,e),_(H.$$.fragment,e),_(P.$$.fragment,e),_(G.$$.fragment,e),_(q.$$.fragment,e),_(Q.$$.fragment,e),_(z.$$.fragment,e),_(Y.$$.fragment,e),_(O.$$.fragment,e),Ve=!0)},o(e){f(N.$$.fragment,e),f(w.$$.fragment,e),f(F.$$.fragment,e),f(j.$$.fragment,e),f(C.$$.fragment,e),f(A.$$.fragment,e),f(Z.$$.fragment,e),f(W.$$.fragment,e),f(H.$$.fragment,e),f(P.$$.fragment,e),f(G.$$.fragment,e),f(q.$$.fragment,e),f(Q.$$.fragment,e),f(z.$$.fragment,e),f(Y.$$.fragment,e),f(O.$$.fragment,e),Ve=!1},d(e){e&&(a(fe),a(pe),a(ue),a(ve),a(ge),a(x),a(he),a(J),a(be),a($),a(Te),a(k),a(Me),a(ye),a(Ne),a(I),a(we),a(xe),a(D),a(Je),a(S),a($e),a(U),a(ke),a(Fe),a(E),a(je),a(L),a(Ie),a(R),a(Ce),a(X),a(De),a(B),a(Se),a(Ue),a(V),a(Ae),a(Ee),a(Le),a(g),a(Re),a(Xe),a(v),a(Be),a(Ze),a(ce)),a(T),u(N,e),u(w,e),u(F,e),u(j,e),u(C,e),u(A,e),u(Z,e),u(W,e),u(H,e),u(P),u(G,e),u(q),u(Q),u(z),u(Y),u(O,e)}}}const St='{"title":"SDFT","local":"sdft","sections":[{"title":"Usage","local":"usage","sections":[],"depth":2},{"title":"Expected dataset columns","local":"expected-dataset-columns","sections":[],"depth":2},{"title":"Callbacks","local":"callbacks","sections":[],"depth":2},{"title":"Example script","local":"example-script","sections":[],"depth":2},{"title":"SDFTConfig","local":"trl.experimental.sdft.SDFTConfig","sections":[],"depth":2},{"title":"SDFTTrainer","local":"trl.experimental.sdft.SDFTTrainer","sections":[],"depth":2}],"depth":1}';function Ut(at){return $t(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Bt extends kt{constructor(T){super(),Ft(this,T,Ut,Dt,xt,{})}}export{Bt as component};

Xet Storage Details

Size:
31.6 kB
·
Xet hash:
c732e1d95c84da66ed4b6d2ab3c8f65f2856c14f1808d3ed75ce566bb07e44cb

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