Buckets:
| import{s as Kt,o as qt,n as ot}from"../chunks/scheduler.7b731bd4.js";import{S as te,i as ee,e as y,s as p,c,h as se,a as w,d as n,b as o,f as Xt,g as $,j as U,k as Ft,l as le,m as i,n as f,t as M,o as u,p as J}from"../chunks/index.cc268345.js";import{C as ae,H as Y,E as ne}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.f0d99f98.js";import{C as I}from"../chunks/CodeBlock.169a125f.js";import{H as ie,a as pt}from"../chunks/HfOption.9f04abd1.js";function re(d){let s,r;return s=new I({props:{code:"ZnJvbSUyMHBvc3RfdHJhaW5pbmdfdG9vbGtpdCUyMGltcG9ydCUyMERpYWdub3N0aWNzQ2FsbGJhY2slMEFmcm9tJTIwdHJsJTIwaW1wb3J0JTIwRFBPVHJhaW5lciUwQSUwQXRyYWluZXIlMjAlM0QlMjBEUE9UcmFpbmVyKCUwQSUyMCUyMCUyMCUyMG1vZGVsJTNEbW9kZWwlMkMlMEElMjAlMjAlMjAlMjBhcmdzJTNEdHJhaW5pbmdfYXJncyUyQyUwQSUyMCUyMCUyMCUyMGNhbGxiYWNrcyUzRCU1QkRpYWdub3N0aWNzQ2FsbGJhY2soKSU1RCUyQyUyMCUyMCUyMyUyMCVFMiU4NiU5MCUyMEp1c3QlMjBhZGQlMjB0aGlzJTBBJTIwJTIwJTIwJTIwLi4uJTBBKSUwQXRyYWluZXIudHJhaW4oKQ==",highlighted:`<span class="hljs-keyword">from</span> post_training_toolkit <span class="hljs-keyword">import</span> DiagnosticsCallback | |
| <span class="hljs-keyword">from</span> trl <span class="hljs-keyword">import</span> DPOTrainer | |
| trainer = DPOTrainer( | |
| model=model, | |
| args=training_args, | |
| callbacks=[DiagnosticsCallback()], <span class="hljs-comment"># ← Just add this</span> | |
| ... | |
| ) | |
| trainer.train()`,wrap:!1}}),{c(){c(s.$$.fragment)},l(e){$(s.$$.fragment,e)},m(e,T){f(s,e,T),r=!0},p:ot,i(e){r||(M(s.$$.fragment,e),r=!0)},o(e){u(s.$$.fragment,e),r=!1},d(e){J(s,e)}}}function pe(d){let s,r;return s=new I({props:{code:"ZnJvbSUyMHBvc3RfdHJhaW5pbmdfdG9vbGtpdCUyMGltcG9ydCUyMERpYWdub3N0aWNzQ2FsbGJhY2slMEFmcm9tJTIwdHJsLmV4cGVyaW1lbnRhbC5wcG8lMjBpbXBvcnQlMjBQUE9UcmFpbmVyJTBBJTBBdHJhaW5lciUyMCUzRCUyMFBQT1RyYWluZXIoJTBBJTIwJTIwJTIwJTIwbW9kZWwlM0Rtb2RlbCUyQyUwQSUyMCUyMCUyMCUyMGFyZ3MlM0R0cmFpbmluZ19hcmdzJTJDJTBBJTIwJTIwJTIwJTIwY2FsbGJhY2tzJTNEJTVCRGlhZ25vc3RpY3NDYWxsYmFjaygpJTVEJTJDJTIwJTIwJTIzJTIwJUUyJTg2JTkwJTIwSnVzdCUyMGFkZCUyMHRoaXMlMEElMjAlMjAlMjAlMjAuLi4lMEEpJTBBdHJhaW5lci50cmFpbigp",highlighted:`<span class="hljs-keyword">from</span> post_training_toolkit <span class="hljs-keyword">import</span> DiagnosticsCallback | |
| <span class="hljs-keyword">from</span> trl.experimental.ppo <span class="hljs-keyword">import</span> PPOTrainer | |
| trainer = PPOTrainer( | |
| model=model, | |
| args=training_args, | |
| callbacks=[DiagnosticsCallback()], <span class="hljs-comment"># ← Just add this</span> | |
| ... | |
| ) | |
| trainer.train()`,wrap:!1}}),{c(){c(s.$$.fragment)},l(e){$(s.$$.fragment,e)},m(e,T){f(s,e,T),r=!0},p:ot,i(e){r||(M(s.$$.fragment,e),r=!0)},o(e){u(s.$$.fragment,e),r=!1},d(e){J(s,e)}}}function oe(d){let s,r;return s=new I({props:{code:"ZnJvbSUyMHBvc3RfdHJhaW5pbmdfdG9vbGtpdCUyMGltcG9ydCUyMERpYWdub3N0aWNzQ2FsbGJhY2slMEFmcm9tJTIwdHJsJTIwaW1wb3J0JTIwU0ZUVHJhaW5lciUwQSUwQXRyYWluZXIlMjAlM0QlMjBTRlRUcmFpbmVyKCUwQSUyMCUyMCUyMCUyMG1vZGVsJTNEbW9kZWwlMkMlMEElMjAlMjAlMjAlMjBhcmdzJTNEdHJhaW5pbmdfYXJncyUyQyUwQSUyMCUyMCUyMCUyMGNhbGxiYWNrcyUzRCU1QkRpYWdub3N0aWNzQ2FsbGJhY2soKSU1RCUyQyUyMCUyMCUyMyUyMCVFMiU4NiU5MCUyMEp1c3QlMjBhZGQlMjB0aGlzJTBBJTIwJTIwJTIwJTIwLi4uJTBBKSUwQXRyYWluZXIudHJhaW4oKQ==",highlighted:`<span class="hljs-keyword">from</span> post_training_toolkit <span class="hljs-keyword">import</span> DiagnosticsCallback | |
| <span class="hljs-keyword">from</span> trl <span class="hljs-keyword">import</span> SFTTrainer | |
| trainer = SFTTrainer( | |
| model=model, | |
| args=training_args, | |
| callbacks=[DiagnosticsCallback()], <span class="hljs-comment"># ← Just add this</span> | |
| ... | |
| ) | |
| trainer.train()`,wrap:!1}}),{c(){c(s.$$.fragment)},l(e){$(s.$$.fragment,e)},m(e,T){f(s,e,T),r=!0},p:ot,i(e){r||(M(s.$$.fragment,e),r=!0)},o(e){u(s.$$.fragment,e),r=!1},d(e){J(s,e)}}}function me(d){let s,r;return s=new I({props:{code:"ZnJvbSUyMHBvc3RfdHJhaW5pbmdfdG9vbGtpdCUyMGltcG9ydCUyMERpYWdub3N0aWNzQ2FsbGJhY2slMEFmcm9tJTIwdHJsLmV4cGVyaW1lbnRhbC5vcnBvJTIwaW1wb3J0JTIwT1JQT1RyYWluZXIlMEElMEF0cmFpbmVyJTIwJTNEJTIwT1JQT1RyYWluZXIoJTBBJTIwJTIwJTIwJTIwbW9kZWwlM0Rtb2RlbCUyQyUwQSUyMCUyMCUyMCUyMGFyZ3MlM0R0cmFpbmluZ19hcmdzJTJDJTBBJTIwJTIwJTIwJTIwY2FsbGJhY2tzJTNEJTVCRGlhZ25vc3RpY3NDYWxsYmFjaygpJTVEJTJDJTIwJTIwJTIzJTIwJUUyJTg2JTkwJTIwSnVzdCUyMGFkZCUyMHRoaXMlMEElMjAlMjAlMjAlMjAuLi4lMEEpJTBBdHJhaW5lci50cmFpbigp",highlighted:`<span class="hljs-keyword">from</span> post_training_toolkit <span class="hljs-keyword">import</span> DiagnosticsCallback | |
| <span class="hljs-keyword">from</span> trl.experimental.orpo <span class="hljs-keyword">import</span> ORPOTrainer | |
| trainer = ORPOTrainer( | |
| model=model, | |
| args=training_args, | |
| callbacks=[DiagnosticsCallback()], <span class="hljs-comment"># ← Just add this</span> | |
| ... | |
| ) | |
| trainer.train()`,wrap:!1}}),{c(){c(s.$$.fragment)},l(e){$(s.$$.fragment,e)},m(e,T){f(s,e,T),r=!0},p:ot,i(e){r||(M(s.$$.fragment,e),r=!0)},o(e){u(s.$$.fragment,e),r=!1},d(e){J(s,e)}}}function ce(d){let s,r;return s=new I({props:{code:"ZnJvbSUyMHBvc3RfdHJhaW5pbmdfdG9vbGtpdCUyMGltcG9ydCUyMERpYWdub3N0aWNzQ2FsbGJhY2slMEFmcm9tJTIwdHJsJTIwaW1wb3J0JTIwS1RPVHJhaW5lciUwQSUwQXRyYWluZXIlMjAlM0QlMjBLVE9UcmFpbmVyKCUwQSUyMCUyMCUyMCUyMG1vZGVsJTNEbW9kZWwlMkMlMEElMjAlMjAlMjAlMjBhcmdzJTNEdHJhaW5pbmdfYXJncyUyQyUwQSUyMCUyMCUyMCUyMGNhbGxiYWNrcyUzRCU1QkRpYWdub3N0aWNzQ2FsbGJhY2soKSU1RCUyQyUyMCUyMCUyMyUyMCVFMiU4NiU5MCUyMEp1c3QlMjBhZGQlMjB0aGlzJTBBJTIwJTIwJTIwJTIwLi4uJTBBKSUwQXRyYWluZXIudHJhaW4oKQ==",highlighted:`<span class="hljs-keyword">from</span> post_training_toolkit <span class="hljs-keyword">import</span> DiagnosticsCallback | |
| <span class="hljs-keyword">from</span> trl <span class="hljs-keyword">import</span> KTOTrainer | |
| trainer = KTOTrainer( | |
| model=model, | |
| args=training_args, | |
| callbacks=[DiagnosticsCallback()], <span class="hljs-comment"># ← Just add this</span> | |
| ... | |
| ) | |
| trainer.train()`,wrap:!1}}),{c(){c(s.$$.fragment)},l(e){$(s.$$.fragment,e)},m(e,T){f(s,e,T),r=!0},p:ot,i(e){r||(M(s.$$.fragment,e),r=!0)},o(e){u(s.$$.fragment,e),r=!1},d(e){J(s,e)}}}function $e(d){let s,r;return s=new I({props:{code:"ZnJvbSUyMHBvc3RfdHJhaW5pbmdfdG9vbGtpdCUyMGltcG9ydCUyMERpYWdub3N0aWNzQ2FsbGJhY2slMEFmcm9tJTIwdHJsLmV4cGVyaW1lbnRhbC5jcG8lMjBpbXBvcnQlMjBDUE9UcmFpbmVyJTBBJTBBdHJhaW5lciUyMCUzRCUyMENQT1RyYWluZXIoJTBBJTIwJTIwJTIwJTIwbW9kZWwlM0Rtb2RlbCUyQyUwQSUyMCUyMCUyMCUyMGFyZ3MlM0R0cmFpbmluZ19hcmdzJTJDJTBBJTIwJTIwJTIwJTIwY2FsbGJhY2tzJTNEJTVCRGlhZ25vc3RpY3NDYWxsYmFjaygpJTVEJTJDJTIwJTIwJTIzJTIwJUUyJTg2JTkwJTIwSnVzdCUyMGFkZCUyMHRoaXMlMEElMjAlMjAlMjAlMjAuLi4lMEEpJTBBdHJhaW5lci50cmFpbigp",highlighted:`<span class="hljs-keyword">from</span> post_training_toolkit <span class="hljs-keyword">import</span> DiagnosticsCallback | |
| <span class="hljs-keyword">from</span> trl.experimental.cpo <span class="hljs-keyword">import</span> CPOTrainer | |
| trainer = CPOTrainer( | |
| model=model, | |
| args=training_args, | |
| callbacks=[DiagnosticsCallback()], <span class="hljs-comment"># ← Just add this</span> | |
| ... | |
| ) | |
| trainer.train()`,wrap:!1}}),{c(){c(s.$$.fragment)},l(e){$(s.$$.fragment,e)},m(e,T){f(s,e,T),r=!0},p:ot,i(e){r||(M(s.$$.fragment,e),r=!0)},o(e){u(s.$$.fragment,e),r=!1},d(e){J(s,e)}}}function fe(d){let s,r;return s=new I({props:{code:"ZnJvbSUyMHBvc3RfdHJhaW5pbmdfdG9vbGtpdCUyMGltcG9ydCUyMERpYWdub3N0aWNzQ2FsbGJhY2slMEFmcm9tJTIwdHJsJTIwaW1wb3J0JTIwR1JQT1RyYWluZXIlMEElMEF0cmFpbmVyJTIwJTNEJTIwR1JQT1RyYWluZXIoJTBBJTIwJTIwJTIwJTIwbW9kZWwlM0Rtb2RlbCUyQyUwQSUyMCUyMCUyMCUyMGFyZ3MlM0R0cmFpbmluZ19hcmdzJTJDJTBBJTIwJTIwJTIwJTIwY2FsbGJhY2tzJTNEJTVCRGlhZ25vc3RpY3NDYWxsYmFjaygpJTVEJTJDJTIwJTIwJTIzJTIwJUUyJTg2JTkwJTIwSnVzdCUyMGFkZCUyMHRoaXMlMEElMjAlMjAlMjAlMjAuLi4lMEEpJTBBdHJhaW5lci50cmFpbigp",highlighted:`<span class="hljs-keyword">from</span> post_training_toolkit <span class="hljs-keyword">import</span> DiagnosticsCallback | |
| <span class="hljs-keyword">from</span> trl <span class="hljs-keyword">import</span> GRPOTrainer | |
| trainer = GRPOTrainer( | |
| model=model, | |
| args=training_args, | |
| callbacks=[DiagnosticsCallback()], <span class="hljs-comment"># ← Just add this</span> | |
| ... | |
| ) | |
| trainer.train()`,wrap:!1}}),{c(){c(s.$$.fragment)},l(e){$(s.$$.fragment,e)},m(e,T){f(s,e,T),r=!0},p:ot,i(e){r||(M(s.$$.fragment,e),r=!0)},o(e){u(s.$$.fragment,e),r=!1},d(e){J(s,e)}}}function Me(d){let s,r,e,T,g,E,h,R,b,Q,j,C,k,B;return s=new pt({props:{id:"trainer",option:"DPO",$$slots:{default:[re]},$$scope:{ctx:d}}}),e=new pt({props:{id:"trainer",option:"PPO",$$slots:{default:[pe]},$$scope:{ctx:d}}}),g=new pt({props:{id:"trainer",option:"SFT",$$slots:{default:[oe]},$$scope:{ctx:d}}}),h=new pt({props:{id:"trainer",option:"ORPO",$$slots:{default:[me]},$$scope:{ctx:d}}}),b=new pt({props:{id:"trainer",option:"KTO",$$slots:{default:[ce]},$$scope:{ctx:d}}}),j=new pt({props:{id:"trainer",option:"CPO",$$slots:{default:[$e]},$$scope:{ctx:d}}}),k=new pt({props:{id:"trainer",option:"GRPO",$$slots:{default:[fe]},$$scope:{ctx:d}}}),{c(){c(s.$$.fragment),r=p(),c(e.$$.fragment),T=p(),c(g.$$.fragment),E=p(),c(h.$$.fragment),R=p(),c(b.$$.fragment),Q=p(),c(j.$$.fragment),C=p(),c(k.$$.fragment)},l(a){$(s.$$.fragment,a),r=o(a),$(e.$$.fragment,a),T=o(a),$(g.$$.fragment,a),E=o(a),$(h.$$.fragment,a),R=o(a),$(b.$$.fragment,a),Q=o(a),$(j.$$.fragment,a),C=o(a),$(k.$$.fragment,a)},m(a,m){f(s,a,m),i(a,r,m),f(e,a,m),i(a,T,m),f(g,a,m),i(a,E,m),f(h,a,m),i(a,R,m),f(b,a,m),i(a,Q,m),f(j,a,m),i(a,C,m),f(k,a,m),B=!0},p(a,m){const W={};m&2&&(W.$$scope={dirty:m,ctx:a}),s.$set(W);const mt={};m&2&&(mt.$$scope={dirty:m,ctx:a}),e.$set(mt);const F={};m&2&&(F.$$scope={dirty:m,ctx:a}),g.$set(F);const G={};m&2&&(G.$$scope={dirty:m,ctx:a}),h.$set(G);const H={};m&2&&(H.$$scope={dirty:m,ctx:a}),b.$set(H);const _={};m&2&&(_.$$scope={dirty:m,ctx:a}),j.$set(_);const ct={};m&2&&(ct.$$scope={dirty:m,ctx:a}),k.$set(ct)},i(a){B||(M(s.$$.fragment,a),M(e.$$.fragment,a),M(g.$$.fragment,a),M(h.$$.fragment,a),M(b.$$.fragment,a),M(j.$$.fragment,a),M(k.$$.fragment,a),B=!0)},o(a){u(s.$$.fragment,a),u(e.$$.fragment,a),u(g.$$.fragment,a),u(h.$$.fragment,a),u(b.$$.fragment,a),u(j.$$.fragment,a),u(k.$$.fragment,a),B=!1},d(a){a&&(n(r),n(T),n(E),n(R),n(Q),n(C)),J(s,a),J(e,a),J(g,a),J(h,a),J(b,a),J(j,a),J(k,a)}}}function ue(d){let s,r,e,T,g,E,h,R,b,Q='<a href="https://github.com/microsoft/post-training-toolkit" rel="nofollow">Post-Training Toolkit</a> is a diagnostic and observability layer for RLHF training runs. Add one callback to any TRL trainer and get <strong>auto-metrics</strong>, <strong>crash postmortems</strong>, and <strong>literature-backed heuristics</strong>—without writing glue code.',j,C,k="It was built to operationalize the debugging patterns we found most useful when running post-training at scale.",B,a,m,W,mt="<li>First, install Post-Training Toolkit:</li>",F,G,H,_,ct="<li>Add one callback to your trainer. That’s it!</li>",ft,v,Mt,N,ut,Z,Ht="<strong>Example output:</strong>",Jt,x,Tt,P,dt,S,Nt="See a full working example with auto-stop in action:",yt,A,Zt='📂 <strong><a href="https://github.com/microsoft/post-training-toolkit/blob/main/demo/notebooks/demo_live_output.ipynb" rel="nofollow">demo/live_demo.ipynb</a></strong>',wt,V,xt='📂 <strong><a href="https://github.com/microsoft/post-training-toolkit/blob/main/demo/scripts/custom_heuristic_demo.py" rel="nofollow">demo/scripts/custom_heuristic.py</a></strong>',gt,D,ht,z,Pt="The callback automatically captures algorithm-specific metrics, backed by the latest research and industry push:",bt,O,St="<thead><tr><th>Trainer</th> <th>Key Metrics Captured</th></tr></thead> <tbody><tr><td><strong>DPO</strong></td> <td>loss, win_rate, reward_margin, logps_chosen/rejected</td></tr> <tr><td><strong>PPO</strong></td> <td>policy_loss, value_loss, entropy, clip_fraction, KL</td></tr> <tr><td><strong>GRPO</strong></td> <td>group rewards, advantages, policy loss, KL</td></tr> <tr><td><strong>SFT</strong></td> <td>loss, perplexity, accuracy</td></tr> <tr><td><strong>ORPO</strong></td> <td>sft_loss, odds_ratio_loss, log_odds_ratio</td></tr> <tr><td><strong>KTO</strong></td> <td>kl, logps for desirable/undesirable</td></tr></tbody>",Ut,L,jt,X,At="If training crashes or gets interrupted, you get a <code>postmortem.json</code> with full context:",Ct,K,It,q,Vt="No more “what step did it die on?”",kt,tt,_t,et,Dt="Enable automatic training termination when critical issues are detected:",Wt,st,Gt,lt,Et,at,zt="Works automatically with multi-GPU setups. Zero configuration needed:",Rt,nt,Bt,it,Ot="Automatically detects stragglers, aggregates metrics across ranks, and tracks memory balance.",vt,rt,Yt,$t,Qt;return g=new ae({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),h=new Y({props:{title:"Post-Training Toolkit Integration",local:"post-training-toolkit-integration",headingTag:"h1"}}),a=new Y({props:{title:"Usage",local:"usage",headingTag:"h2"}}),G=new I({props:{code:"cGlwJTIwaW5zdGFsbCUyMHBvc3QtdHJhaW5pbmctdG9vbGtpdA==",highlighted:"pip install post-training-toolkit",wrap:!1}}),v=new ie({props:{id:"trainer",options:["DPO","PPO","SFT","ORPO","KTO","CPO","GRPO"],$$slots:{default:[Me]},$$scope:{ctx:d}}}),N=new Y({props:{title:"What You Get",local:"what-you-get",headingTag:"h2"}}),x=new I({props:{code:"JTVCSElHSCU1RCUyMERQTyUyMGxvc3MlMjBzdHVjayUyMGF0JTIwfjAuNjkzJTIwKHJhbmRvbSUyMGNoYW5jZSkuJTIwTW9kZWwlMjBtYXklMjBub3QlMjBiZSUyMGxlYXJuaW5nJTIwcHJlZmVyZW5jZXMuJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwUmVmJTNBJTIwUmFmYWlsb3YlMjBldCUyMGFsLiUyMCgyMDIzKSUyMCdEUE8nJTJDJTIwU2VjdGlvbiUyMDQuMiUwQSUwQSU1QlJFQ09NTUVOREVEJTVEJTIwSW5jcmVhc2UlMjBsZWFybmluZyUyMHJhdGUlMjAyLTV4JTJDJTIwY2hlY2slMjBkYXRhJTIwcXVhbGl0eSUyQyUyMG9yJTIwcmVkdWNlJTIwYmV0YS4=",highlighted:`[HIGH] DPO loss stuck at ~0.693 (random chance). Model may not be learning preferences. | |
| Ref: Rafailov et al. (2023) 'DPO', Section 4.2 | |
| [RECOMMENDED] Increase learning rate 2-5x, check data quality, or reduce beta.`,wrap:!1}}),P=new Y({props:{title:"Example Demo",local:"example-demo",headingTag:"h2"}}),D=new Y({props:{title:"1. Auto-Metrics",local:"1-auto-metrics",headingTag:"h3"}}),L=new Y({props:{title:"2. Crash Postmortems",local:"2-crash-postmortems",headingTag:"h3"}}),K=new I({props:{code:"JTdCJTBBJTIwJTIwJTIyZXhpdF9yZWFzb24lMjIlM0ElMjAlMjJleGNlcHRpb24lMjIlMkMlMEElMjAlMjAlMjJsYXN0X3N0ZXAlMjIlM0ElMjA4NDclMkMlMEElMjAlMjAlMjJ0aW1lc3RhbXAlMjIlM0ElMjAlMjIyMDI1LTEyLTE3VDE5JTNBMjYlM0EwNFolMjIlMkMlMEElMjAlMjAlMjJmaW5hbF9tZXRyaWNzJTIyJTNBJTIwJTdCJTIyZHBvX2xvc3MlMjIlM0ElMjAwLjY5MyUyQyUyMCUyMndpbl9yYXRlJTIyJTNBJTIwMC41MiU3RCUwQSU3RA==",highlighted:`<span class="hljs-punctuation">{</span> | |
| <span class="hljs-attr">"exit_reason"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"exception"</span><span class="hljs-punctuation">,</span> | |
| <span class="hljs-attr">"last_step"</span><span class="hljs-punctuation">:</span> <span class="hljs-number">847</span><span class="hljs-punctuation">,</span> | |
| <span class="hljs-attr">"timestamp"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"2025-12-17T19:26:04Z"</span><span class="hljs-punctuation">,</span> | |
| <span class="hljs-attr">"final_metrics"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span><span class="hljs-attr">"dpo_loss"</span><span class="hljs-punctuation">:</span> <span class="hljs-number">0.693</span><span class="hljs-punctuation">,</span> <span class="hljs-attr">"win_rate"</span><span class="hljs-punctuation">:</span> <span class="hljs-number">0.52</span><span class="hljs-punctuation">}</span> | |
| <span class="hljs-punctuation">}</span>`,wrap:!1}}),tt=new Y({props:{title:"3. Auto-Stop on Critical Issues",local:"3-auto-stop-on-critical-issues",headingTag:"h3"}}),st=new I({props:{code:"Y2FsbGJhY2slMjAlM0QlMjBEaWFnbm9zdGljc0NhbGxiYWNrKHN0b3Bfb25fY3JpdGljYWwlM0RUcnVlKQ==",highlighted:'callback = DiagnosticsCallback(stop_on_critical=<span class="hljs-literal">True</span>)',wrap:!1}}),lt=new Y({props:{title:"Distributed Training",local:"distributed-training",headingTag:"h2"}}),nt=new I({props:{code:"YWNjZWxlcmF0ZSUyMGxhdW5jaCUyMC0tbnVtX3Byb2Nlc3NlcyUyMDglMjB0cmFpbi5weQ==",highlighted:"accelerate launch --num_processes 8 train.py",wrap:!1}}),rt=new ne({props:{source:"https://github.com/huggingface/trl/blob/main/docs/source/ptt_integration.md"}}),{c(){s=y("meta"),r=p(),e=y("p"),T=p(),c(g.$$.fragment),E=p(),c(h.$$.fragment),R=p(),b=y("p"),b.innerHTML=Q,j=p(),C=y("p"),C.textContent=k,B=p(),c(a.$$.fragment),m=p(),W=y("ol"),W.innerHTML=mt,F=p(),c(G.$$.fragment),H=p(),_=y("ol"),_.innerHTML=ct,ft=p(),c(v.$$.fragment),Mt=p(),c(N.$$.fragment),ut=p(),Z=y("p"),Z.innerHTML=Ht,Jt=p(),c(x.$$.fragment),Tt=p(),c(P.$$.fragment),dt=p(),S=y("p"),S.textContent=Nt,yt=p(),A=y("p"),A.innerHTML=Zt,wt=p(),V=y("p"),V.innerHTML=xt,gt=p(),c(D.$$.fragment),ht=p(),z=y("p"),z.textContent=Pt,bt=p(),O=y("table"),O.innerHTML=St,Ut=p(),c(L.$$.fragment),jt=p(),X=y("p"),X.innerHTML=At,Ct=p(),c(K.$$.fragment),It=p(),q=y("p"),q.textContent=Vt,kt=p(),c(tt.$$.fragment),_t=p(),et=y("p"),et.textContent=Dt,Wt=p(),c(st.$$.fragment),Gt=p(),c(lt.$$.fragment),Et=p(),at=y("p"),at.textContent=zt,Rt=p(),c(nt.$$.fragment),Bt=p(),it=y("p"),it.textContent=Ot,vt=p(),c(rt.$$.fragment),Yt=p(),$t=y("p"),this.h()},l(t){const l=se("svelte-u9bgzb",document.head);s=w(l,"META",{name:!0,content:!0}),l.forEach(n),r=o(t),e=w(t,"P",{}),Xt(e).forEach(n),T=o(t),$(g.$$.fragment,t),E=o(t),$(h.$$.fragment,t),R=o(t),b=w(t,"P",{"data-svelte-h":!0}),U(b)!=="svelte-1mf169e"&&(b.innerHTML=Q),j=o(t),C=w(t,"P",{"data-svelte-h":!0}),U(C)!=="svelte-19ut5ej"&&(C.textContent=k),B=o(t),$(a.$$.fragment,t),m=o(t),W=w(t,"OL",{"data-svelte-h":!0}),U(W)!=="svelte-xhku5v"&&(W.innerHTML=mt),F=o(t),$(G.$$.fragment,t),H=o(t),_=w(t,"OL",{start:!0,"data-svelte-h":!0}),U(_)!=="svelte-exa4zq"&&(_.innerHTML=ct),ft=o(t),$(v.$$.fragment,t),Mt=o(t),$(N.$$.fragment,t),ut=o(t),Z=w(t,"P",{"data-svelte-h":!0}),U(Z)!=="svelte-5gri02"&&(Z.innerHTML=Ht),Jt=o(t),$(x.$$.fragment,t),Tt=o(t),$(P.$$.fragment,t),dt=o(t),S=w(t,"P",{"data-svelte-h":!0}),U(S)!=="svelte-s47a8j"&&(S.textContent=Nt),yt=o(t),A=w(t,"P",{"data-svelte-h":!0}),U(A)!=="svelte-hp1kba"&&(A.innerHTML=Zt),wt=o(t),V=w(t,"P",{"data-svelte-h":!0}),U(V)!=="svelte-xky1pt"&&(V.innerHTML=xt),gt=o(t),$(D.$$.fragment,t),ht=o(t),z=w(t,"P",{"data-svelte-h":!0}),U(z)!=="svelte-r7e830"&&(z.textContent=Pt),bt=o(t),O=w(t,"TABLE",{"data-svelte-h":!0}),U(O)!=="svelte-y85s6o"&&(O.innerHTML=St),Ut=o(t),$(L.$$.fragment,t),jt=o(t),X=w(t,"P",{"data-svelte-h":!0}),U(X)!=="svelte-qhi2h1"&&(X.innerHTML=At),Ct=o(t),$(K.$$.fragment,t),It=o(t),q=w(t,"P",{"data-svelte-h":!0}),U(q)!=="svelte-1p55xqr"&&(q.textContent=Vt),kt=o(t),$(tt.$$.fragment,t),_t=o(t),et=w(t,"P",{"data-svelte-h":!0}),U(et)!=="svelte-1gsx9uj"&&(et.textContent=Dt),Wt=o(t),$(st.$$.fragment,t),Gt=o(t),$(lt.$$.fragment,t),Et=o(t),at=w(t,"P",{"data-svelte-h":!0}),U(at)!=="svelte-odqrgk"&&(at.textContent=zt),Rt=o(t),$(nt.$$.fragment,t),Bt=o(t),it=w(t,"P",{"data-svelte-h":!0}),U(it)!=="svelte-14gy0sw"&&(it.textContent=Ot),vt=o(t),$(rt.$$.fragment,t),Yt=o(t),$t=w(t,"P",{}),Xt($t).forEach(n),this.h()},h(){Ft(s,"name","hf:doc:metadata"),Ft(s,"content",Je),Ft(_,"start","2")},m(t,l){le(document.head,s),i(t,r,l),i(t,e,l),i(t,T,l),f(g,t,l),i(t,E,l),f(h,t,l),i(t,R,l),i(t,b,l),i(t,j,l),i(t,C,l),i(t,B,l),f(a,t,l),i(t,m,l),i(t,W,l),i(t,F,l),f(G,t,l),i(t,H,l),i(t,_,l),i(t,ft,l),f(v,t,l),i(t,Mt,l),f(N,t,l),i(t,ut,l),i(t,Z,l),i(t,Jt,l),f(x,t,l),i(t,Tt,l),f(P,t,l),i(t,dt,l),i(t,S,l),i(t,yt,l),i(t,A,l),i(t,wt,l),i(t,V,l),i(t,gt,l),f(D,t,l),i(t,ht,l),i(t,z,l),i(t,bt,l),i(t,O,l),i(t,Ut,l),f(L,t,l),i(t,jt,l),i(t,X,l),i(t,Ct,l),f(K,t,l),i(t,It,l),i(t,q,l),i(t,kt,l),f(tt,t,l),i(t,_t,l),i(t,et,l),i(t,Wt,l),f(st,t,l),i(t,Gt,l),f(lt,t,l),i(t,Et,l),i(t,at,l),i(t,Rt,l),f(nt,t,l),i(t,Bt,l),i(t,it,l),i(t,vt,l),f(rt,t,l),i(t,Yt,l),i(t,$t,l),Qt=!0},p(t,[l]){const Lt={};l&2&&(Lt.$$scope={dirty:l,ctx:t}),v.$set(Lt)},i(t){Qt||(M(g.$$.fragment,t),M(h.$$.fragment,t),M(a.$$.fragment,t),M(G.$$.fragment,t),M(v.$$.fragment,t),M(N.$$.fragment,t),M(x.$$.fragment,t),M(P.$$.fragment,t),M(D.$$.fragment,t),M(L.$$.fragment,t),M(K.$$.fragment,t),M(tt.$$.fragment,t),M(st.$$.fragment,t),M(lt.$$.fragment,t),M(nt.$$.fragment,t),M(rt.$$.fragment,t),Qt=!0)},o(t){u(g.$$.fragment,t),u(h.$$.fragment,t),u(a.$$.fragment,t),u(G.$$.fragment,t),u(v.$$.fragment,t),u(N.$$.fragment,t),u(x.$$.fragment,t),u(P.$$.fragment,t),u(D.$$.fragment,t),u(L.$$.fragment,t),u(K.$$.fragment,t),u(tt.$$.fragment,t),u(st.$$.fragment,t),u(lt.$$.fragment,t),u(nt.$$.fragment,t),u(rt.$$.fragment,t),Qt=!1},d(t){t&&(n(r),n(e),n(T),n(E),n(R),n(b),n(j),n(C),n(B),n(m),n(W),n(F),n(H),n(_),n(ft),n(Mt),n(ut),n(Z),n(Jt),n(Tt),n(dt),n(S),n(yt),n(A),n(wt),n(V),n(gt),n(ht),n(z),n(bt),n(O),n(Ut),n(jt),n(X),n(Ct),n(It),n(q),n(kt),n(_t),n(et),n(Wt),n(Gt),n(Et),n(at),n(Rt),n(Bt),n(it),n(vt),n(Yt),n($t)),n(s),J(g,t),J(h,t),J(a,t),J(G,t),J(v,t),J(N,t),J(x,t),J(P,t),J(D,t),J(L,t),J(K,t),J(tt,t),J(st,t),J(lt,t),J(nt,t),J(rt,t)}}}const Je='{"title":"Post-Training Toolkit Integration","local":"post-training-toolkit-integration","sections":[{"title":"Usage","local":"usage","sections":[],"depth":2},{"title":"What You Get","local":"what-you-get","sections":[],"depth":2},{"title":"Example Demo","local":"example-demo","sections":[{"title":"1. Auto-Metrics","local":"1-auto-metrics","sections":[],"depth":3},{"title":"2. Crash Postmortems","local":"2-crash-postmortems","sections":[],"depth":3},{"title":"3. Auto-Stop on Critical Issues","local":"3-auto-stop-on-critical-issues","sections":[],"depth":3}],"depth":2},{"title":"Distributed Training","local":"distributed-training","sections":[],"depth":2}],"depth":1}';function Te(d){return qt(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class be extends te{constructor(s){super(),ee(this,s,Te,ue,Kt,{})}}export{be as component}; | |
Xet Storage Details
- Size:
- 21.8 kB
- Xet hash:
- 24b23a2ae8ceea3b5999f110e4b9866841b09d4dae49e7b3418a184d4d3385c7
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.