import{s as Ss,o as Os,n as $t}from"../chunks/scheduler.25b97de1.js";import{S as Xs,i as qs,g as r,s as n,r as b,A as Ks,h as l,f as o,c as s,j as k,u as _,x as p,k as D,y as t,a as f,v,d as w,t as $,w as x}from"../chunks/index.d9030fc9.js";import{D as L}from"../chunks/Docstring.ffac8efa.js";import{C as xt}from"../chunks/CodeBlock.e6cd0d95.js";import{E as wt}from"../chunks/ExampleCodeBlock.22dfe688.js";import{H as _t,E as ea}from"../chunks/EditOnGithub.91d95064.js";function ta(U){let c,T="To activate the underflow/overflow detection, initialize the object with the model :",y,u,g;return u=new xt({props:{code:"ZGVidWdfb3ZlcmZsb3clMjAlM0QlMjBEZWJ1Z1VuZGVyZmxvd092ZXJmbG93KG1vZGVsKQ==",highlighted:"debug_overflow = DebugUnderflowOverflow(model)",wrap:!1}}),{c(){c=r("p"),c.textContent=T,y=n(),b(u.$$.fragment)},l(a){c=l(a,"P",{"data-svelte-h":!0}),p(c)!=="svelte-e61xrj"&&(c.textContent=T),y=s(a),_(u.$$.fragment,a)},m(a,M){f(a,c,M),f(a,y,M),v(u,a,M),g=!0},p:$t,i(a){g||(w(u.$$.fragment,a),g=!0)},o(a){$(u.$$.fragment,a),g=!1},d(a){a&&(o(c),o(y)),x(u,a)}}}function na(U){let c,T="mixed precision :",y,u,g;return u=new xt({props:{code:"RGV0ZWN0ZWQlMjBpbmYlMkZuYW4lMjBkdXJpbmclMjBiYXRjaF9udW1iZXIlM0QwJTBBTGFzdCUyMDIxJTIwZm9yd2FyZCUyMGZyYW1lcyUzQSUwQWFicyUyMG1pbiUyMCUyMGFicyUyMG1heCUyMCUyMG1ldGFkYXRhJTBBJTVCLi4uJTVEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZW5jb2Rlci5ibG9jay4yLmxheWVyLjEuRGVuc2VSZWx1RGVuc2Uud2lfMCUyMExpbmVhciUwQTIuMTdlLTA3JTIwNC41MGUlMkIwMCUyMHdlaWdodCUwQTEuNzllLTA2JTIwNC42NWUlMkIwMCUyMGlucHV0JTVCMCU1RCUwQTIuNjhlLTA2JTIwMy43MGUlMkIwMSUyMG91dHB1dCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGVuY29kZXIuYmxvY2suMi5sYXllci4xLkRlbnNlUmVsdURlbnNlLndpXzElMjBMaW5lYXIlMEE4LjA4ZS0wNyUyMDIuNjZlJTJCMDElMjB3ZWlnaHQlMEExLjc5ZS0wNiUyMDQuNjVlJTJCMDAlMjBpbnB1dCU1QjAlNUQlMEExLjI3ZS0wNCUyMDIuMzdlJTJCMDIlMjBvdXRwdXQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBlbmNvZGVyLmJsb2NrLjIubGF5ZXIuMS5EZW5zZVJlbHVEZW5zZS53byUyMExpbmVhciUwQTEuMDFlLTA2JTIwNi40NGUlMkIwMCUyMHdlaWdodCUwQTAuMDBlJTJCMDAlMjA5Ljc0ZSUyQjAzJTIwaW5wdXQlNUIwJTVEJTBBMy4xOGUtMDQlMjA2LjI3ZSUyQjA0JTIwb3V0cHV0JTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZW5jb2Rlci5ibG9jay4yLmxheWVyLjEuRGVuc2VSZWx1RGVuc2UlMjBUNURlbnNlR2F0ZWRHZWx1RGVuc2UlMEExLjc5ZS0wNiUyMDQuNjVlJTJCMDAlMjBpbnB1dCU1QjAlNUQlMEEzLjE4ZS0wNCUyMDYuMjdlJTJCMDQlMjBvdXRwdXQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBlbmNvZGVyLmJsb2NrLjIubGF5ZXIuMS5kcm9wb3V0JTIwRHJvcG91dCUwQTMuMThlLTA0JTIwNi4yN2UlMkIwNCUyMGlucHV0JTVCMCU1RCUwQTAuMDBlJTJCMDAlMjAlMjAlMjAlMjAlMjAlMjBpbmYlMjBvdXRwdXQ=",highlighted:`<span class="hljs-attribute">Detected</span> inf/nan during batch_number=<span class="hljs-number">0</span>
<span class="hljs-attribute">Last</span> <span class="hljs-number">21</span> forward frames:
<span class="hljs-attribute">abs</span> min  abs max  metadata<span class="hljs-meta">
[...]</span>
                  <span class="hljs-attribute">encoder</span>.block.<span class="hljs-number">2</span>.layer.<span class="hljs-number">1</span>.DenseReluDense.wi_0 Linear
<span class="hljs-attribute">2</span>.<span class="hljs-number">17</span>e-<span class="hljs-number">07</span> <span class="hljs-number">4</span>.<span class="hljs-number">50</span>e+<span class="hljs-number">00</span> weight
<span class="hljs-attribute">1</span>.<span class="hljs-number">79</span>e-<span class="hljs-number">06</span> <span class="hljs-number">4</span>.<span class="hljs-number">65</span>e+<span class="hljs-number">00</span> input[<span class="hljs-number">0</span>]
<span class="hljs-attribute">2</span>.<span class="hljs-number">68</span>e-<span class="hljs-number">06</span> <span class="hljs-number">3</span>.<span class="hljs-number">70</span>e+<span class="hljs-number">01</span> output
                  <span class="hljs-attribute">encoder</span>.block.<span class="hljs-number">2</span>.layer.<span class="hljs-number">1</span>.DenseReluDense.wi_1 Linear
<span class="hljs-attribute">8</span>.<span class="hljs-number">08</span>e-<span class="hljs-number">07</span> <span class="hljs-number">2</span>.<span class="hljs-number">66</span>e+<span class="hljs-number">01</span> weight
<span class="hljs-attribute">1</span>.<span class="hljs-number">79</span>e-<span class="hljs-number">06</span> <span class="hljs-number">4</span>.<span class="hljs-number">65</span>e+<span class="hljs-number">00</span> input[<span class="hljs-number">0</span>]
<span class="hljs-attribute">1</span>.<span class="hljs-number">27</span>e-<span class="hljs-number">04</span> <span class="hljs-number">2</span>.<span class="hljs-number">37</span>e+<span class="hljs-number">02</span> output
                  <span class="hljs-attribute">encoder</span>.block.<span class="hljs-number">2</span>.layer.<span class="hljs-number">1</span>.DenseReluDense.wo Linear
<span class="hljs-attribute">1</span>.<span class="hljs-number">01</span>e-<span class="hljs-number">06</span> <span class="hljs-number">6</span>.<span class="hljs-number">44</span>e+<span class="hljs-number">00</span> weight
<span class="hljs-attribute">0</span>.<span class="hljs-number">00</span>e+<span class="hljs-number">00</span> <span class="hljs-number">9</span>.<span class="hljs-number">74</span>e+<span class="hljs-number">03</span> input[<span class="hljs-number">0</span>]
<span class="hljs-attribute">3</span>.<span class="hljs-number">18</span>e-<span class="hljs-number">04</span> <span class="hljs-number">6</span>.<span class="hljs-number">27</span>e+<span class="hljs-number">04</span> output
                  <span class="hljs-attribute">encoder</span>.block.<span class="hljs-number">2</span>.layer.<span class="hljs-number">1</span>.DenseReluDense T5DenseGatedGeluDense
<span class="hljs-attribute">1</span>.<span class="hljs-number">79</span>e-<span class="hljs-number">06</span> <span class="hljs-number">4</span>.<span class="hljs-number">65</span>e+<span class="hljs-number">00</span> input[<span class="hljs-number">0</span>]
<span class="hljs-attribute">3</span>.<span class="hljs-number">18</span>e-<span class="hljs-number">04</span> <span class="hljs-number">6</span>.<span class="hljs-number">27</span>e+<span class="hljs-number">04</span> output
                  <span class="hljs-attribute">encoder</span>.block.<span class="hljs-number">2</span>.layer.<span class="hljs-number">1</span>.dropout Dropout
<span class="hljs-attribute">3</span>.<span class="hljs-number">18</span>e-<span class="hljs-number">04</span> <span class="hljs-number">6</span>.<span class="hljs-number">27</span>e+<span class="hljs-number">04</span> input[<span class="hljs-number">0</span>]
<span class="hljs-attribute">0</span>.<span class="hljs-number">00</span>e+<span class="hljs-number">00</span>      inf output`,wrap:!1}}),{c(){c=r("p"),c.textContent=T,y=n(),b(u.$$.fragment)},l(a){c=l(a,"P",{"data-svelte-h":!0}),p(c)!=="svelte-1705ugl"&&(c.textContent=T),y=s(a),_(u.$$.fragment,a)},m(a,M){f(a,c,M),f(a,y,M),v(u,a,M),g=!0},p:$t,i(a){g||(w(u.$$.fragment,a),g=!0)},o(a){$(u.$$.fragment,a),g=!1},d(a){a&&(o(c),o(y)),x(u,a)}}}function sa(U){let c,T="By default the last 21 frames are printed. You can change the default to adjust for your needs. For example :",y,u,g;return u=new xt({props:{code:"ZGVidWdfb3ZlcmZsb3clMjAlM0QlMjBEZWJ1Z1VuZGVyZmxvd092ZXJmbG93KG1vZGVsJTJDJTIwbWF4X2ZyYW1lc190b19zYXZlJTNEMTAwKQ==",highlighted:'debug_overflow = DebugUnderflowOverflow(model, max_frames_to_save=<span class="hljs-number">100</span>)',wrap:!1}}),{c(){c=r("p"),c.textContent=T,y=n(),b(u.$$.fragment)},l(a){c=l(a,"P",{"data-svelte-h":!0}),p(c)!=="svelte-jxu20j"&&(c.textContent=T),y=s(a),_(u.$$.fragment,a)},m(a,M){f(a,c,M),f(a,y,M),v(u,a,M),g=!0},p:$t,i(a){g||(w(u.$$.fragment,a),g=!0)},o(a){$(u.$$.fragment,a),g=!1},d(a){a&&(o(c),o(y)),x(u,a)}}}function aa(U){let c,T="given batch, and only do that for batches 1 and 3. Then you instantiate this class as :",y,u,g;return u=new xt({props:{code:"ZGVidWdfb3ZlcmZsb3clMjAlM0QlMjBEZWJ1Z1VuZGVyZmxvd092ZXJmbG93KG1vZGVsJTJDJTIwdHJhY2VfYmF0Y2hfbnVtcyUzRCU1QjElMkMlMjAzJTVEKQ==",highlighted:'debug_overflow = DebugUnderflowOverflow(model, trace_batch_nums=[<span class="hljs-number">1</span>, <span class="hljs-number">3</span>])',wrap:!1}}),{c(){c=r("p"),c.textContent=T,y=n(),b(u.$$.fragment)},l(a){c=l(a,"P",{"data-svelte-h":!0}),p(c)!=="svelte-1009pyu"&&(c.textContent=T),y=s(a),_(u.$$.fragment,a)},m(a,M){f(a,c,M),f(a,y,M),v(u,a,M),g=!0},p:$t,i(a){g||(w(u.$$.fragment,a),g=!0)},o(a){$(u.$$.fragment,a),g=!1},d(a){a&&(o(c),o(y)),x(u,a)}}}function ra(U){let c,T="You can also specify the batch number after which to stop the training, with :",y,u,g;return u=new xt({props:{code:"ZGVidWdfb3ZlcmZsb3clMjAlM0QlMjBEZWJ1Z1VuZGVyZmxvd092ZXJmbG93KG1vZGVsJTJDJTIwdHJhY2VfYmF0Y2hfbnVtcyUzRCU1QjElMkMlMjAzJTVEJTJDJTIwYWJvcnRfYWZ0ZXJfYmF0Y2hfbnVtJTNEMyk=",highlighted:'debug_overflow = DebugUnderflowOverflow(model, trace_batch_nums=[<span class="hljs-number">1</span>, <span class="hljs-number">3</span>], abort_after_batch_num=<span class="hljs-number">3</span>)',wrap:!1}}),{c(){c=r("p"),c.textContent=T,y=n(),b(u.$$.fragment)},l(a){c=l(a,"P",{"data-svelte-h":!0}),p(c)!=="svelte-psjyqa"&&(c.textContent=T),y=s(a),_(u.$$.fragment,a)},m(a,M){f(a,c,M),f(a,y,M),v(u,a,M),g=!0},p:$t,i(a){g||(w(u.$$.fragment,a),g=!0)},o(a){$(u.$$.fragment,a),g=!1},d(a){a&&(o(c),o(y)),x(u,a)}}}function la(U){let c,T,y,u,g,a,M,Kn="此页面列出了 <code>Trainer</code> 使用的所有实用函数。",yt,X,es="其中大多数仅在您研究库中Trainer的代码时有用。",jt,q,Mt,J,K,Rt,ye,ts="Evaluation output (always contains labels), to be used to compute metrics.",Tt,H,ee,Yt,je,ns="An enumeration.",Ct,A,te,St,Me,ss="Helper function for reproducible behavior during distributed training. See",Ot,Te,as='<li><a href="https://pytorch.org/docs/stable/notes/randomness.html" rel="nofollow">https://pytorch.org/docs/stable/notes/randomness.html</a> for pytorch</li> <li><a href="https://www.tensorflow.org/api_docs/python/tf/config/experimental/enable_op_determinism" rel="nofollow">https://www.tensorflow.org/api_docs/python/tf/config/experimental/enable_op_determinism</a> for tensorflow</li>',kt,Z,ne,Xt,Ce,rs="Helper function for reproducible behavior to set the seed in <code>random</code>, <code>numpy</code>, <code>torch</code> and/or <code>tf</code> (if installed).",Dt,E,se,qt,ke,ls="Decorator to make all processes in distributed training wait for each local_master to do something.",Lt,ae,Pt,V,re,Kt,De,os="Internal class that just calls the list of callbacks in order.",Ut,le,At,h,oe,en,Le,is="A class responsible for properly gathering tensors (or nested list/tuple of tensors) on the CPU by chunks.",tn,Pe,ps=`If our dataset has 16 samples with a batch size of 2 on 3 processes and we gather then transfer on CPU at every
step, our sampler will generate the following indices:`,nn,Ue,ms="<code>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 1]</code>",sn,Ae,ds=`to get something of size a multiple of 3 (so that each process gets the same dataset length). Then process 0, 1 and
2 will be responsible of making predictions for the following samples:`,an,Ie,cs="<li>P0: <code>[0, 1, 2, 3, 4, 5]</code></li> <li>P1: <code>[6, 7, 8, 9, 10, 11]</code></li> <li>P2: <code>[12, 13, 14, 15, 0, 1]</code></li>",rn,Je,us="The first batch treated on each process will be",ln,He,fs="<li>P0: <code>[0, 1]</code></li> <li>P1: <code>[6, 7]</code></li> <li>P2: <code>[12, 13]</code></li>",on,Ze,hs=`So if we gather at the end of the first batch, we will get a tensor (nested list/tuple of tensor) corresponding to
the following indices:`,pn,Ee,gs="<code>[0, 1, 6, 7, 12, 13]</code>",mn,Ve,bs=`If we directly concatenate our results without taking any precautions, the user will then get the predictions for
the indices in this order at the end of the prediction loop:`,dn,Ge,_s="<code>[0, 1, 6, 7, 12, 13, 2, 3, 8, 9, 14, 15, 4, 5, 10, 11, 0, 1]</code>",cn,Ne,vs="For some reason, that’s not going to roll their boat. This class is there to solve that problem.",un,N,ie,fn,ze,ws=`Add <code>arrays</code> to the internal storage, Will initialize the storage to the full size at the first arrays passed
so that if we’re bound to get an OOM, it happens at the beginning.`,hn,z,pe,gn,We,$s=`Return the properly gathered arrays and truncate to the number of samples (since the sampler added some extras
to get each process a dataset of the same length).`,It,me,Jt,C,de,bn,Be,xs="This subclass of <code>argparse.ArgumentParser</code> uses type hints on dataclasses to generate arguments.",_n,Qe,ys=`The class is designed to play well with the native argparse. In particular, you can add more (non-dataclass backed)
arguments to the parser after initialization and you’ll get the output back after parsing as an additional
namespace. Optional: To create sub argument groups use the <code>_argument_group_name</code> attribute in the dataclass.`,vn,I,ce,wn,Fe,js="Parse command-line args into instances of the specified dataclass types.",$n,Re,Ms=`This relies on argparse’s <code>ArgumentParser.parse_known_args</code>. See the doc at:
docs.python.org/3.7/library/argparse.html#argparse.ArgumentParser.parse_args`,xn,W,ue,yn,Ye,Ts=`Alternative helper method that does not use <code>argparse</code> at all, instead uses a dict and populating the dataclass
types.`,jn,B,fe,Mn,Se,Cs=`Alternative helper method that does not use <code>argparse</code> at all, instead loading a json file and populating the
dataclass types.`,Tn,Q,he,Cn,Oe,ks=`Alternative helper method that does not use <code>argparse</code> at all, instead loading a yaml file and populating the
dataclass types.`,Ht,ge,Zt,i,be,kn,Xe,Ds=`This debug class helps detect and understand where the model starts getting very large or very small, and more
importantly <code>nan</code> or <code>inf</code> weight and activation elements.`,Dn,qe,Ls="There are 2 working modes:",Ln,Ke,Ps="<li>Underflow/overflow detection (default)</li> <li>Specific batch absolute min/max tracing without detection</li>",Pn,et,Us="Mode 1: Underflow/overflow detection",Un,F,An,tt,As=`then run the training as normal and if <code>nan</code> or <code>inf</code> gets detected in at least one of the weight, input or output
elements this module will throw an exception and will print <code>max_frames_to_save</code> frames that lead to this event,
each frame reporting`,In,nt,Is="<li>the fully qualified module name plus the class name whose <code>forward</code> was run</li> <li>the absolute min and max value of all elements for each module weights, and the inputs and output</li>",Jn,st,Js="For example, here is the header and the last few frames in detection report for <code>google/mt5-small</code> run in fp16",Hn,R,Zn,at,Hs=`You can see here, that <code>T5DenseGatedGeluDense.forward</code> resulted in output activations, whose absolute max value was
around 62.7K, which is very close to fp16’s top limit of 64K. In the next frame we have <code>Dropout</code> which
renormalizes the weights, after it zeroed some of the elements, which pushes the absolute max value to more than
64K, and we get an overlow.`,En,rt,Zs=`As you can see it’s the previous frames that we need to look into when the numbers start going into very large for
fp16 numbers.`,Vn,lt,Es="The tracking is done in a forward hook, which gets invoked immediately after <code>forward</code> has completed.",Gn,Y,Nn,ot,Vs=`To validate that you have set up this debugging feature correctly, and you intend to use it in a training that
may take hours to complete, first run it with normal tracing enabled for one of a few batches as explained in
the next section.`,zn,it,Gs="Mode 2. Specific batch absolute min/max tracing without detection",Wn,pt,Ns="The second work mode is per-batch tracing with the underflow/overflow detection feature turned off.",Bn,mt,zs="Let’s say you want to watch the absolute min and max values for all the ingredients of each <code>forward</code> call of a",Qn,S,Fn,dt,Ws="And now full batches 1 and 3 will be traced using the same format as explained above. Batches are 0-indexed.",Rn,ct,Bs=`This is helpful if you know that the program starts misbehaving after a certain batch number, so you can
fast-forward right to that area.`,Yn,ut,Qs="Early stopping:",Sn,O,On,ft,Fs="This feature is mainly useful in the tracing mode, but you can use it for any mode.",Xn,ht,Rs="<strong>Performance</strong>:",qn,gt,Ys="As this module measures absolute <code>min</code>/`<code>max</code> of each weight of the model on every forward it’ll slow the training\ndown. Therefore remember to turn it off once the debugging needs have been met.",Et,_e,Vt,vt,Gt;return g=new _t({props:{title:"Trainer的工具",local:"trainer的工具",headingTag:"h1"}}),q=new _t({props:{title:"工具",local:"transformers.EvalPrediction",headingTag:"h2"}}),K=new L({props:{name:"class transformers.EvalPrediction",anchor:"transformers.EvalPrediction",parameters:[{name:"predictions",val:": typing.Union[numpy.ndarray, typing.Tuple[numpy.ndarray]]"},{name:"label_ids",val:": typing.Union[numpy.ndarray, typing.Tuple[numpy.ndarray]]"},{name:"inputs",val:": typing.Union[numpy.ndarray, typing.Tuple[numpy.ndarray], NoneType] = None"},{name:"losses",val:": typing.Union[numpy.ndarray, typing.Tuple[numpy.ndarray], NoneType] = None"}],parametersDescription:[{anchor:"transformers.EvalPrediction.predictions",description:"<strong>predictions</strong> (<code>np.ndarray</code>) &#x2014; Predictions of the model.",name:"predictions"},{anchor:"transformers.EvalPrediction.label_ids",description:"<strong>label_ids</strong> (<code>np.ndarray</code>) &#x2014; Targets to be matched.",name:"label_ids"},{anchor:"transformers.EvalPrediction.inputs",description:"<strong>inputs</strong> (<code>np.ndarray</code>, <em>optional</em>) &#x2014; Input data passed to the model.",name:"inputs"},{anchor:"transformers.EvalPrediction.losses",description:"<strong>losses</strong> (<code>np.ndarray</code>, <em>optional</em>) &#x2014; Loss values computed during evaluation.",name:"losses"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/trainer_utils.py#L152"}}),ee=new L({props:{name:"class transformers.IntervalStrategy",anchor:"transformers.IntervalStrategy",parameters:[{name:"value",val:""},{name:"names",val:" = None"},{name:"module",val:" = None"},{name:"qualname",val:" = None"},{name:"type",val:" = None"},{name:"start",val:" = 1"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/trainer_utils.py#L224"}}),te=new L({props:{name:"transformers.enable_full_determinism",anchor:"transformers.enable_full_determinism",parameters:[{name:"seed",val:": int"},{name:"warn_only",val:": bool = False"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/trainer_utils.py#L60"}}),ne=new L({props:{name:"transformers.set_seed",anchor:"transformers.set_seed",parameters:[{name:"seed",val:": int"},{name:"deterministic",val:": bool = False"}],parametersDescription:[{anchor:"transformers.set_seed.seed",description:`<strong>seed</strong> (<code>int</code>) &#x2014;
The seed to set.`,name:"seed"},{anchor:"transformers.set_seed.deterministic",description:`<strong>deterministic</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
Whether to use deterministic algorithms where available. Can slow down training.`,name:"deterministic"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/trainer_utils.py#L92"}}),se=new L({props:{name:"transformers.torch_distributed_zero_first",anchor:"transformers.torch_distributed_zero_first",parameters:[{name:"local_rank",val:": int"}],parametersDescription:[{anchor:"transformers.torch_distributed_zero_first.local_rank",description:"<strong>local_rank</strong> (<code>int</code>) &#x2014; The rank of the local process.",name:"local_rank"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/trainer_pt_utils.py#L250"}}),ae=new _t({props:{title:"Callbacks内部机制",local:"transformers.trainer_callback.CallbackHandler",headingTag:"h2"}}),re=new L({props:{name:"class transformers.trainer_callback.CallbackHandler",anchor:"transformers.trainer_callback.CallbackHandler",parameters:[{name:"callbacks",val:""},{name:"model",val:""},{name:"processing_class",val:""},{name:"optimizer",val:""},{name:"lr_scheduler",val:""}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/trainer_callback.py#L444"}}),le=new _t({props:{title:"分布式评估",local:"transformers.trainer_pt_utils.DistributedTensorGatherer",headingTag:"h2"}}),oe=new L({props:{name:"class transformers.trainer_pt_utils.DistributedTensorGatherer",anchor:"transformers.trainer_pt_utils.DistributedTensorGatherer",parameters:[{name:"world_size",val:""},{name:"num_samples",val:""},{name:"make_multiple_of",val:" = None"},{name:"padding_index",val:" = -100"}],parametersDescription:[{anchor:"transformers.trainer_pt_utils.DistributedTensorGatherer.world_size",description:`<strong>world_size</strong> (<code>int</code>) &#x2014;
The number of processes used in the distributed training.`,name:"world_size"},{anchor:"transformers.trainer_pt_utils.DistributedTensorGatherer.num_samples",description:`<strong>num_samples</strong> (<code>int</code>) &#x2014;
The number of samples in our dataset.`,name:"num_samples"},{anchor:"transformers.trainer_pt_utils.DistributedTensorGatherer.make_multiple_of",description:`<strong>make_multiple_of</strong> (<code>int</code>, <em>optional</em>) &#x2014;
If passed, the class assumes the datasets passed to each process are made to be a multiple of this argument
(by adding samples).`,name:"make_multiple_of"},{anchor:"transformers.trainer_pt_utils.DistributedTensorGatherer.padding_index",description:`<strong>padding_index</strong> (<code>int</code>, <em>optional</em>, defaults to -100) &#x2014;
The padding index to use if the arrays don&#x2019;t all have the same sequence length.`,name:"padding_index"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/trainer_pt_utils.py#L431"}}),ie=new L({props:{name:"add_arrays",anchor:"transformers.trainer_pt_utils.DistributedTensorGatherer.add_arrays",parameters:[{name:"arrays",val:""}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/trainer_pt_utils.py#L491"}}),pe=new L({props:{name:"finalize",anchor:"transformers.trainer_pt_utils.DistributedTensorGatherer.finalize",parameters:[],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/trainer_pt_utils.py#L527"}}),me=new _t({props:{title:"Trainer参数解析",local:"transformers.HfArgumentParser",headingTag:"h2"}}),de=new L({props:{name:"class transformers.HfArgumentParser",anchor:"transformers.HfArgumentParser",parameters:[{name:"dataclass_types",val:": typing.Union[transformers.hf_argparser.DataClassType, typing.Iterable[transformers.hf_argparser.DataClassType], NoneType] = None"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.HfArgumentParser.dataclass_types",description:`<strong>dataclass_types</strong> (<code>DataClassType</code> or <code>Iterable[DataClassType]</code>, <em>optional</em>) &#x2014;
Dataclass type, or list of dataclass types for which we will &#x201C;fill&#x201D; instances with the parsed args.`,name:"dataclass_types"},{anchor:"transformers.HfArgumentParser.kwargs",description:`<strong>kwargs</strong> (<code>Dict[str, Any]</code>, <em>optional</em>) &#x2014;
Passed to <code>argparse.ArgumentParser()</code> in the regular way.`,name:"kwargs"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/hf_argparser.py#L110"}}),ce=new L({props:{name:"parse_args_into_dataclasses",anchor:"transformers.HfArgumentParser.parse_args_into_dataclasses",parameters:[{name:"args",val:" = None"},{name:"return_remaining_strings",val:" = False"},{name:"look_for_args_file",val:" = True"},{name:"args_filename",val:" = None"},{name:"args_file_flag",val:" = None"}],parametersDescription:[{anchor:"transformers.HfArgumentParser.parse_args_into_dataclasses.args",description:`<strong>args</strong> &#x2014;
List of strings to parse. The default is taken from sys.argv. (same as argparse.ArgumentParser)`,name:"args"},{anchor:"transformers.HfArgumentParser.parse_args_into_dataclasses.return_remaining_strings",description:`<strong>return_remaining_strings</strong> &#x2014;
If true, also return a list of remaining argument strings.`,name:"return_remaining_strings"},{anchor:"transformers.HfArgumentParser.parse_args_into_dataclasses.look_for_args_file",description:`<strong>look_for_args_file</strong> &#x2014;
If true, will look for a &#x201C;.args&#x201D; file with the same base name as the entry point script for this
process, and will append its potential content to the command line args.`,name:"look_for_args_file"},{anchor:"transformers.HfArgumentParser.parse_args_into_dataclasses.args_filename",description:`<strong>args_filename</strong> &#x2014;
If not None, will uses this file instead of the &#x201C;.args&#x201D; file specified in the previous argument.`,name:"args_filename"},{anchor:"transformers.HfArgumentParser.parse_args_into_dataclasses.args_file_flag",description:`<strong>args_file_flag</strong> &#x2014;
If not None, will look for a file in the command-line args specified with this flag. The flag can be
specified multiple times and precedence is determined by the order (last one wins).`,name:"args_file_flag"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/hf_argparser.py#L284",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>


<ul>
<li>the dataclass instances in the same order as they were passed to the initializer.abspath</li>
<li>if applicable, an additional namespace for more (non-dataclass backed) arguments added to the parser
after initialization.</li>
<li>The potential list of remaining argument strings. (same as argparse.ArgumentParser.parse_known_args)</li>
</ul>
`,returnType:`<script context="module">export const metadata = 'undefined';<\/script>


<p>Tuple consisting of</p>
`}}),ue=new L({props:{name:"parse_dict",anchor:"transformers.HfArgumentParser.parse_dict",parameters:[{name:"args",val:": typing.Dict[str, typing.Any]"},{name:"allow_extra_keys",val:": bool = False"}],parametersDescription:[{anchor:"transformers.HfArgumentParser.parse_dict.args",description:`<strong>args</strong> (<code>dict</code>) &#x2014;
dict containing config values`,name:"args"},{anchor:"transformers.HfArgumentParser.parse_dict.allow_extra_keys",description:`<strong>allow_extra_keys</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
Defaults to False. If False, will raise an exception if the dict contains keys that are not parsed.`,name:"allow_extra_keys"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/hf_argparser.py#L370",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>


<ul>
<li>the dataclass instances in the same order as they were passed to the initializer.</li>
</ul>
`,returnType:`<script context="module">export const metadata = 'undefined';<\/script>


<p>Tuple consisting of</p>
`}}),fe=new L({props:{name:"parse_json_file",anchor:"transformers.HfArgumentParser.parse_json_file",parameters:[{name:"json_file",val:": typing.Union[str, os.PathLike]"},{name:"allow_extra_keys",val:": bool = False"}],parametersDescription:[{anchor:"transformers.HfArgumentParser.parse_json_file.json_file",description:`<strong>json_file</strong> (<code>str</code> or <code>os.PathLike</code>) &#x2014;
File name of the json file to parse`,name:"json_file"},{anchor:"transformers.HfArgumentParser.parse_json_file.allow_extra_keys",description:`<strong>allow_extra_keys</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
Defaults to False. If False, will raise an exception if the json file contains keys that are not
parsed.`,name:"allow_extra_keys"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/hf_argparser.py#L398",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>


<ul>
<li>the dataclass instances in the same order as they were passed to the initializer.</li>
</ul>
`,returnType:`<script context="module">export const metadata = 'undefined';<\/script>


<p>Tuple consisting of</p>
`}}),he=new L({props:{name:"parse_yaml_file",anchor:"transformers.HfArgumentParser.parse_yaml_file",parameters:[{name:"yaml_file",val:": typing.Union[str, os.PathLike]"},{name:"allow_extra_keys",val:": bool = False"}],parametersDescription:[{anchor:"transformers.HfArgumentParser.parse_yaml_file.yaml_file",description:`<strong>yaml_file</strong> (<code>str</code> or <code>os.PathLike</code>) &#x2014;
File name of the yaml file to parse`,name:"yaml_file"},{anchor:"transformers.HfArgumentParser.parse_yaml_file.allow_extra_keys",description:`<strong>allow_extra_keys</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
Defaults to False. If False, will raise an exception if the json file contains keys that are not
parsed.`,name:"allow_extra_keys"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/hf_argparser.py#L422",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>


<ul>
<li>the dataclass instances in the same order as they were passed to the initializer.</li>
</ul>
`,returnType:`<script context="module">export const metadata = 'undefined';<\/script>


<p>Tuple consisting of</p>
`}}),ge=new _t({props:{title:"Debug工具",local:"transformers.debug_utils.DebugUnderflowOverflow",headingTag:"h2"}}),be=new L({props:{name:"class transformers.debug_utils.DebugUnderflowOverflow",anchor:"transformers.debug_utils.DebugUnderflowOverflow",parameters:[{name:"model",val:""},{name:"max_frames_to_save",val:" = 21"},{name:"trace_batch_nums",val:" = []"},{name:"abort_after_batch_num",val:" = None"}],parametersDescription:[{anchor:"transformers.debug_utils.DebugUnderflowOverflow.model",description:`<strong>model</strong> (<code>nn.Module</code>) &#x2014;
The model to debug.`,name:"model"},{anchor:"transformers.debug_utils.DebugUnderflowOverflow.max_frames_to_save",description:`<strong>max_frames_to_save</strong> (<code>int</code>, <em>optional</em>, defaults to 21) &#x2014;
How many frames back to record`,name:"max_frames_to_save"},{anchor:"transformers.debug_utils.DebugUnderflowOverflow.trace_batch_nums(List[int],",description:`<strong>trace_batch_nums(<code>List[int]</code>,</strong> <em>optional</em>, defaults to <code>[]</code>) &#x2014;
Which batch numbers to trace (turns detection off)`,name:"trace_batch_nums(List[int],"},{anchor:"transformers.debug_utils.DebugUnderflowOverflow.abort_after_batch_num",description:"<strong>abort_after_batch_num</strong>  (`int&#x201C;, <em>optional</em>) &#x2014;\nWhether to abort after a certain batch number has finished",name:"abort_after_batch_num"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/debug_utils.py#L27"}}),F=new wt({props:{anchor:"transformers.debug_utils.DebugUnderflowOverflow.example",$$slots:{default:[ta]},$$scope:{ctx:U}}}),R=new wt({props:{anchor:"transformers.debug_utils.DebugUnderflowOverflow.example-2",$$slots:{default:[na]},$$scope:{ctx:U}}}),Y=new wt({props:{anchor:"transformers.debug_utils.DebugUnderflowOverflow.example-3",$$slots:{default:[sa]},$$scope:{ctx:U}}}),S=new wt({props:{anchor:"transformers.debug_utils.DebugUnderflowOverflow.example-4",$$slots:{default:[aa]},$$scope:{ctx:U}}}),O=new wt({props:{anchor:"transformers.debug_utils.DebugUnderflowOverflow.example-5",$$slots:{default:[ra]},$$scope:{ctx:U}}}),_e=new ea({props:{source:"https://github.com/huggingface/transformers/blob/main/docs/source/zh/internal/trainer_utils.md"}}),{c(){c=r("meta"),T=n(),y=r("p"),u=n(),b(g.$$.fragment),a=n(),M=r("p"),M.innerHTML=Kn,yt=n(),X=r("p"),X.textContent=es,jt=n(),b(q.$$.fragment),Mt=n(),J=r("div"),b(K.$$.fragment),Rt=n(),ye=r("p"),ye.textContent=ts,Tt=n(),H=r("div"),b(ee.$$.fragment),Yt=n(),je=r("p"),je.textContent=ns,Ct=n(),A=r("div"),b(te.$$.fragment),St=n(),Me=r("p"),Me.textContent=ss,Ot=n(),Te=r("ul"),Te.innerHTML=as,kt=n(),Z=r("div"),b(ne.$$.fragment),Xt=n(),Ce=r("p"),Ce.innerHTML=rs,Dt=n(),E=r("div"),b(se.$$.fragment),qt=n(),ke=r("p"),ke.textContent=ls,Lt=n(),b(ae.$$.fragment),Pt=n(),V=r("div"),b(re.$$.fragment),Kt=n(),De=r("p"),De.textContent=os,Ut=n(),b(le.$$.fragment),At=n(),h=r("div"),b(oe.$$.fragment),en=n(),Le=r("p"),Le.textContent=is,tn=n(),Pe=r("p"),Pe.textContent=ps,nn=n(),Ue=r("p"),Ue.innerHTML=ms,sn=n(),Ae=r("p"),Ae.textContent=ds,an=n(),Ie=r("ul"),Ie.innerHTML=cs,rn=n(),Je=r("p"),Je.textContent=us,ln=n(),He=r("ul"),He.innerHTML=fs,on=n(),Ze=r("p"),Ze.textContent=hs,pn=n(),Ee=r("p"),Ee.innerHTML=gs,mn=n(),Ve=r("p"),Ve.textContent=bs,dn=n(),Ge=r("p"),Ge.innerHTML=_s,cn=n(),Ne=r("p"),Ne.textContent=vs,un=n(),N=r("div"),b(ie.$$.fragment),fn=n(),ze=r("p"),ze.innerHTML=ws,hn=n(),z=r("div"),b(pe.$$.fragment),gn=n(),We=r("p"),We.textContent=$s,It=n(),b(me.$$.fragment),Jt=n(),C=r("div"),b(de.$$.fragment),bn=n(),Be=r("p"),Be.innerHTML=xs,_n=n(),Qe=r("p"),Qe.innerHTML=ys,vn=n(),I=r("div"),b(ce.$$.fragment),wn=n(),Fe=r("p"),Fe.textContent=js,$n=n(),Re=r("p"),Re.innerHTML=Ms,xn=n(),W=r("div"),b(ue.$$.fragment),yn=n(),Ye=r("p"),Ye.innerHTML=Ts,jn=n(),B=r("div"),b(fe.$$.fragment),Mn=n(),Se=r("p"),Se.innerHTML=Cs,Tn=n(),Q=r("div"),b(he.$$.fragment),Cn=n(),Oe=r("p"),Oe.innerHTML=ks,Ht=n(),b(ge.$$.fragment),Zt=n(),i=r("div"),b(be.$$.fragment),kn=n(),Xe=r("p"),Xe.innerHTML=Ds,Dn=n(),qe=r("p"),qe.textContent=Ls,Ln=n(),Ke=r("ol"),Ke.innerHTML=Ps,Pn=n(),et=r("p"),et.textContent=Us,Un=n(),b(F.$$.fragment),An=n(),tt=r("p"),tt.innerHTML=As,In=n(),nt=r("ol"),nt.innerHTML=Is,Jn=n(),st=r("p"),st.innerHTML=Js,Hn=n(),b(R.$$.fragment),Zn=n(),at=r("p"),at.innerHTML=Hs,En=n(),rt=r("p"),rt.textContent=Zs,Vn=n(),lt=r("p"),lt.innerHTML=Es,Gn=n(),b(Y.$$.fragment),Nn=n(),ot=r("p"),ot.textContent=Vs,zn=n(),it=r("p"),it.textContent=Gs,Wn=n(),pt=r("p"),pt.textContent=Ns,Bn=n(),mt=r("p"),mt.innerHTML=zs,Qn=n(),b(S.$$.fragment),Fn=n(),dt=r("p"),dt.textContent=Ws,Rn=n(),ct=r("p"),ct.textContent=Bs,Yn=n(),ut=r("p"),ut.textContent=Qs,Sn=n(),b(O.$$.fragment),On=n(),ft=r("p"),ft.textContent=Fs,Xn=n(),ht=r("p"),ht.innerHTML=Rs,qn=n(),gt=r("p"),gt.innerHTML=Ys,Et=n(),b(_e.$$.fragment),Vt=n(),vt=r("p"),this.h()},l(e){const m=Ks("svelte-u9bgzb",document.head);c=l(m,"META",{name:!0,content:!0}),m.forEach(o),T=s(e),y=l(e,"P",{}),k(y).forEach(o),u=s(e),_(g.$$.fragment,e),a=s(e),M=l(e,"P",{"data-svelte-h":!0}),p(M)!=="svelte-1vclv53"&&(M.innerHTML=Kn),yt=s(e),X=l(e,"P",{"data-svelte-h":!0}),p(X)!=="svelte-1qoa5vj"&&(X.textContent=es),jt=s(e),_(q.$$.fragment,e),Mt=s(e),J=l(e,"DIV",{class:!0});var ve=k(J);_(K.$$.fragment,ve),Rt=s(ve),ye=l(ve,"P",{"data-svelte-h":!0}),p(ye)!=="svelte-b01y7t"&&(ye.textContent=ts),ve.forEach(o),Tt=s(e),H=l(e,"DIV",{class:!0});var we=k(H);_(ee.$$.fragment,we),Yt=s(we),je=l(we,"P",{"data-svelte-h":!0}),p(je)!=="svelte-ofujqi"&&(je.textContent=ns),we.forEach(o),Ct=s(e),A=l(e,"DIV",{class:!0});var G=k(A);_(te.$$.fragment,G),St=s(G),Me=l(G,"P",{"data-svelte-h":!0}),p(Me)!=="svelte-ajn1jc"&&(Me.textContent=ss),Ot=s(G),Te=l(G,"UL",{"data-svelte-h":!0}),p(Te)!=="svelte-1q4p6e6"&&(Te.innerHTML=as),G.forEach(o),kt=s(e),Z=l(e,"DIV",{class:!0});var $e=k(Z);_(ne.$$.fragment,$e),Xt=s($e),Ce=l($e,"P",{"data-svelte-h":!0}),p(Ce)!=="svelte-nlunew"&&(Ce.innerHTML=rs),$e.forEach(o),Dt=s(e),E=l(e,"DIV",{class:!0});var xe=k(E);_(se.$$.fragment,xe),qt=s(xe),ke=l(xe,"P",{"data-svelte-h":!0}),p(ke)!=="svelte-50krjz"&&(ke.textContent=ls),xe.forEach(o),Lt=s(e),_(ae.$$.fragment,e),Pt=s(e),V=l(e,"DIV",{class:!0});var Nt=k(V);_(re.$$.fragment,Nt),Kt=s(Nt),De=l(Nt,"P",{"data-svelte-h":!0}),p(De)!=="svelte-1xkzvlg"&&(De.textContent=os),Nt.forEach(o),Ut=s(e),_(le.$$.fragment,e),At=s(e),h=l(e,"DIV",{class:!0});var j=k(h);_(oe.$$.fragment,j),en=s(j),Le=l(j,"P",{"data-svelte-h":!0}),p(Le)!=="svelte-1n8tp04"&&(Le.textContent=is),tn=s(j),Pe=l(j,"P",{"data-svelte-h":!0}),p(Pe)!=="svelte-1bmnzk6"&&(Pe.textContent=ps),nn=s(j),Ue=l(j,"P",{"data-svelte-h":!0}),p(Ue)!=="svelte-1i3zlda"&&(Ue.innerHTML=ms),sn=s(j),Ae=l(j,"P",{"data-svelte-h":!0}),p(Ae)!=="svelte-poxoov"&&(Ae.textContent=ds),an=s(j),Ie=l(j,"UL",{"data-svelte-h":!0}),p(Ie)!=="svelte-eccldq"&&(Ie.innerHTML=cs),rn=s(j),Je=l(j,"P",{"data-svelte-h":!0}),p(Je)!=="svelte-dr8jii"&&(Je.textContent=us),ln=s(j),He=l(j,"UL",{"data-svelte-h":!0}),p(He)!=="svelte-1umurgm"&&(He.innerHTML=fs),on=s(j),Ze=l(j,"P",{"data-svelte-h":!0}),p(Ze)!=="svelte-he1scd"&&(Ze.textContent=hs),pn=s(j),Ee=l(j,"P",{"data-svelte-h":!0}),p(Ee)!=="svelte-1qs6cxi"&&(Ee.innerHTML=gs),mn=s(j),Ve=l(j,"P",{"data-svelte-h":!0}),p(Ve)!=="svelte-x84c1n"&&(Ve.textContent=bs),dn=s(j),Ge=l(j,"P",{"data-svelte-h":!0}),p(Ge)!=="svelte-dcsxla"&&(Ge.innerHTML=_s),cn=s(j),Ne=l(j,"P",{"data-svelte-h":!0}),p(Ne)!=="svelte-fk4pq9"&&(Ne.textContent=vs),un=s(j),N=l(j,"DIV",{class:!0});var zt=k(N);_(ie.$$.fragment,zt),fn=s(zt),ze=l(zt,"P",{"data-svelte-h":!0}),p(ze)!=="svelte-18bdjbi"&&(ze.innerHTML=ws),zt.forEach(o),hn=s(j),z=l(j,"DIV",{class:!0});var Wt=k(z);_(pe.$$.fragment,Wt),gn=s(Wt),We=l(Wt,"P",{"data-svelte-h":!0}),p(We)!=="svelte-cxa3v7"&&(We.textContent=$s),Wt.forEach(o),j.forEach(o),It=s(e),_(me.$$.fragment,e),Jt=s(e),C=l(e,"DIV",{class:!0});var P=k(C);_(de.$$.fragment,P),bn=s(P),Be=l(P,"P",{"data-svelte-h":!0}),p(Be)!=="svelte-ym76lw"&&(Be.innerHTML=xs),_n=s(P),Qe=l(P,"P",{"data-svelte-h":!0}),p(Qe)!=="svelte-lsn7j7"&&(Qe.innerHTML=ys),vn=s(P),I=l(P,"DIV",{class:!0});var bt=k(I);_(ce.$$.fragment,bt),wn=s(bt),Fe=l(bt,"P",{"data-svelte-h":!0}),p(Fe)!=="svelte-p6utzx"&&(Fe.textContent=js),$n=s(bt),Re=l(bt,"P",{"data-svelte-h":!0}),p(Re)!=="svelte-e7yqwr"&&(Re.innerHTML=Ms),bt.forEach(o),xn=s(P),W=l(P,"DIV",{class:!0});var Bt=k(W);_(ue.$$.fragment,Bt),yn=s(Bt),Ye=l(Bt,"P",{"data-svelte-h":!0}),p(Ye)!=="svelte-815dvz"&&(Ye.innerHTML=Ts),Bt.forEach(o),jn=s(P),B=l(P,"DIV",{class:!0});var Qt=k(B);_(fe.$$.fragment,Qt),Mn=s(Qt),Se=l(Qt,"P",{"data-svelte-h":!0}),p(Se)!=="svelte-1fm6x4h"&&(Se.innerHTML=Cs),Qt.forEach(o),Tn=s(P),Q=l(P,"DIV",{class:!0});var Ft=k(Q);_(he.$$.fragment,Ft),Cn=s(Ft),Oe=l(Ft,"P",{"data-svelte-h":!0}),p(Oe)!=="svelte-12wc0v2"&&(Oe.innerHTML=ks),Ft.forEach(o),P.forEach(o),Ht=s(e),_(ge.$$.fragment,e),Zt=s(e),i=l(e,"DIV",{class:!0});var d=k(i);_(be.$$.fragment,d),kn=s(d),Xe=l(d,"P",{"data-svelte-h":!0}),p(Xe)!=="svelte-7pufvy"&&(Xe.innerHTML=Ds),Dn=s(d),qe=l(d,"P",{"data-svelte-h":!0}),p(qe)!=="svelte-1sexrnb"&&(qe.textContent=Ls),Ln=s(d),Ke=l(d,"OL",{"data-svelte-h":!0}),p(Ke)!=="svelte-1klaood"&&(Ke.innerHTML=Ps),Pn=s(d),et=l(d,"P",{"data-svelte-h":!0}),p(et)!=="svelte-4br128"&&(et.textContent=Us),Un=s(d),_(F.$$.fragment,d),An=s(d),tt=l(d,"P",{"data-svelte-h":!0}),p(tt)!=="svelte-1jokgs0"&&(tt.innerHTML=As),In=s(d),nt=l(d,"OL",{"data-svelte-h":!0}),p(nt)!=="svelte-tujq3x"&&(nt.innerHTML=Is),Jn=s(d),st=l(d,"P",{"data-svelte-h":!0}),p(st)!=="svelte-1o699wi"&&(st.innerHTML=Js),Hn=s(d),_(R.$$.fragment,d),Zn=s(d),at=l(d,"P",{"data-svelte-h":!0}),p(at)!=="svelte-drqgcb"&&(at.innerHTML=Hs),En=s(d),rt=l(d,"P",{"data-svelte-h":!0}),p(rt)!=="svelte-y74rb4"&&(rt.textContent=Zs),Vn=s(d),lt=l(d,"P",{"data-svelte-h":!0}),p(lt)!=="svelte-1j494vd"&&(lt.innerHTML=Es),Gn=s(d),_(Y.$$.fragment,d),Nn=s(d),ot=l(d,"P",{"data-svelte-h":!0}),p(ot)!=="svelte-10kqlwp"&&(ot.textContent=Vs),zn=s(d),it=l(d,"P",{"data-svelte-h":!0}),p(it)!=="svelte-16tdr0"&&(it.textContent=Gs),Wn=s(d),pt=l(d,"P",{"data-svelte-h":!0}),p(pt)!=="svelte-1hu51bp"&&(pt.textContent=Ns),Bn=s(d),mt=l(d,"P",{"data-svelte-h":!0}),p(mt)!=="svelte-1orvvp5"&&(mt.innerHTML=zs),Qn=s(d),_(S.$$.fragment,d),Fn=s(d),dt=l(d,"P",{"data-svelte-h":!0}),p(dt)!=="svelte-ev1hfq"&&(dt.textContent=Ws),Rn=s(d),ct=l(d,"P",{"data-svelte-h":!0}),p(ct)!=="svelte-1b66ig1"&&(ct.textContent=Bs),Yn=s(d),ut=l(d,"P",{"data-svelte-h":!0}),p(ut)!=="svelte-1hsaz31"&&(ut.textContent=Qs),Sn=s(d),_(O.$$.fragment,d),On=s(d),ft=l(d,"P",{"data-svelte-h":!0}),p(ft)!=="svelte-yuienj"&&(ft.textContent=Fs),Xn=s(d),ht=l(d,"P",{"data-svelte-h":!0}),p(ht)!=="svelte-z6s5o1"&&(ht.innerHTML=Rs),qn=s(d),gt=l(d,"P",{"data-svelte-h":!0}),p(gt)!=="svelte-1ery8m7"&&(gt.innerHTML=Ys),d.forEach(o),Et=s(e),_(_e.$$.fragment,e),Vt=s(e),vt=l(e,"P",{}),k(vt).forEach(o),this.h()},h(){D(c,"name","hf:doc:metadata"),D(c,"content",oa),D(J,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),D(H,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),D(A,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),D(Z,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),D(E,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),D(V,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),D(N,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),D(z,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),D(h,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),D(I,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),D(W,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),D(B,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),D(Q,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),D(C,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),D(i,"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,c),f(e,T,m),f(e,y,m),f(e,u,m),v(g,e,m),f(e,a,m),f(e,M,m),f(e,yt,m),f(e,X,m),f(e,jt,m),v(q,e,m),f(e,Mt,m),f(e,J,m),v(K,J,null),t(J,Rt),t(J,ye),f(e,Tt,m),f(e,H,m),v(ee,H,null),t(H,Yt),t(H,je),f(e,Ct,m),f(e,A,m),v(te,A,null),t(A,St),t(A,Me),t(A,Ot),t(A,Te),f(e,kt,m),f(e,Z,m),v(ne,Z,null),t(Z,Xt),t(Z,Ce),f(e,Dt,m),f(e,E,m),v(se,E,null),t(E,qt),t(E,ke),f(e,Lt,m),v(ae,e,m),f(e,Pt,m),f(e,V,m),v(re,V,null),t(V,Kt),t(V,De),f(e,Ut,m),v(le,e,m),f(e,At,m),f(e,h,m),v(oe,h,null),t(h,en),t(h,Le),t(h,tn),t(h,Pe),t(h,nn),t(h,Ue),t(h,sn),t(h,Ae),t(h,an),t(h,Ie),t(h,rn),t(h,Je),t(h,ln),t(h,He),t(h,on),t(h,Ze),t(h,pn),t(h,Ee),t(h,mn),t(h,Ve),t(h,dn),t(h,Ge),t(h,cn),t(h,Ne),t(h,un),t(h,N),v(ie,N,null),t(N,fn),t(N,ze),t(h,hn),t(h,z),v(pe,z,null),t(z,gn),t(z,We),f(e,It,m),v(me,e,m),f(e,Jt,m),f(e,C,m),v(de,C,null),t(C,bn),t(C,Be),t(C,_n),t(C,Qe),t(C,vn),t(C,I),v(ce,I,null),t(I,wn),t(I,Fe),t(I,$n),t(I,Re),t(C,xn),t(C,W),v(ue,W,null),t(W,yn),t(W,Ye),t(C,jn),t(C,B),v(fe,B,null),t(B,Mn),t(B,Se),t(C,Tn),t(C,Q),v(he,Q,null),t(Q,Cn),t(Q,Oe),f(e,Ht,m),v(ge,e,m),f(e,Zt,m),f(e,i,m),v(be,i,null),t(i,kn),t(i,Xe),t(i,Dn),t(i,qe),t(i,Ln),t(i,Ke),t(i,Pn),t(i,et),t(i,Un),v(F,i,null),t(i,An),t(i,tt),t(i,In),t(i,nt),t(i,Jn),t(i,st),t(i,Hn),v(R,i,null),t(i,Zn),t(i,at),t(i,En),t(i,rt),t(i,Vn),t(i,lt),t(i,Gn),v(Y,i,null),t(i,Nn),t(i,ot),t(i,zn),t(i,it),t(i,Wn),t(i,pt),t(i,Bn),t(i,mt),t(i,Qn),v(S,i,null),t(i,Fn),t(i,dt),t(i,Rn),t(i,ct),t(i,Yn),t(i,ut),t(i,Sn),v(O,i,null),t(i,On),t(i,ft),t(i,Xn),t(i,ht),t(i,qn),t(i,gt),f(e,Et,m),v(_e,e,m),f(e,Vt,m),f(e,vt,m),Gt=!0},p(e,[m]){const ve={};m&2&&(ve.$$scope={dirty:m,ctx:e}),F.$set(ve);const we={};m&2&&(we.$$scope={dirty:m,ctx:e}),R.$set(we);const G={};m&2&&(G.$$scope={dirty:m,ctx:e}),Y.$set(G);const $e={};m&2&&($e.$$scope={dirty:m,ctx:e}),S.$set($e);const xe={};m&2&&(xe.$$scope={dirty:m,ctx:e}),O.$set(xe)},i(e){Gt||(w(g.$$.fragment,e),w(q.$$.fragment,e),w(K.$$.fragment,e),w(ee.$$.fragment,e),w(te.$$.fragment,e),w(ne.$$.fragment,e),w(se.$$.fragment,e),w(ae.$$.fragment,e),w(re.$$.fragment,e),w(le.$$.fragment,e),w(oe.$$.fragment,e),w(ie.$$.fragment,e),w(pe.$$.fragment,e),w(me.$$.fragment,e),w(de.$$.fragment,e),w(ce.$$.fragment,e),w(ue.$$.fragment,e),w(fe.$$.fragment,e),w(he.$$.fragment,e),w(ge.$$.fragment,e),w(be.$$.fragment,e),w(F.$$.fragment,e),w(R.$$.fragment,e),w(Y.$$.fragment,e),w(S.$$.fragment,e),w(O.$$.fragment,e),w(_e.$$.fragment,e),Gt=!0)},o(e){$(g.$$.fragment,e),$(q.$$.fragment,e),$(K.$$.fragment,e),$(ee.$$.fragment,e),$(te.$$.fragment,e),$(ne.$$.fragment,e),$(se.$$.fragment,e),$(ae.$$.fragment,e),$(re.$$.fragment,e),$(le.$$.fragment,e),$(oe.$$.fragment,e),$(ie.$$.fragment,e),$(pe.$$.fragment,e),$(me.$$.fragment,e),$(de.$$.fragment,e),$(ce.$$.fragment,e),$(ue.$$.fragment,e),$(fe.$$.fragment,e),$(he.$$.fragment,e),$(ge.$$.fragment,e),$(be.$$.fragment,e),$(F.$$.fragment,e),$(R.$$.fragment,e),$(Y.$$.fragment,e),$(S.$$.fragment,e),$(O.$$.fragment,e),$(_e.$$.fragment,e),Gt=!1},d(e){e&&(o(T),o(y),o(u),o(a),o(M),o(yt),o(X),o(jt),o(Mt),o(J),o(Tt),o(H),o(Ct),o(A),o(kt),o(Z),o(Dt),o(E),o(Lt),o(Pt),o(V),o(Ut),o(At),o(h),o(It),o(Jt),o(C),o(Ht),o(Zt),o(i),o(Et),o(Vt),o(vt)),o(c),x(g,e),x(q,e),x(K),x(ee),x(te),x(ne),x(se),x(ae,e),x(re),x(le,e),x(oe),x(ie),x(pe),x(me,e),x(de),x(ce),x(ue),x(fe),x(he),x(ge,e),x(be),x(F),x(R),x(Y),x(S),x(O),x(_e,e)}}}const oa='{"title":"Trainer的工具","local":"trainer的工具","sections":[{"title":"工具","local":"transformers.EvalPrediction","sections":[],"depth":2},{"title":"Callbacks内部机制","local":"transformers.trainer_callback.CallbackHandler","sections":[],"depth":2},{"title":"分布式评估","local":"transformers.trainer_pt_utils.DistributedTensorGatherer","sections":[],"depth":2},{"title":"Trainer参数解析","local":"transformers.HfArgumentParser","sections":[],"depth":2},{"title":"Debug工具","local":"transformers.debug_utils.DebugUnderflowOverflow","sections":[],"depth":2}],"depth":1}';function ia(U){return Os(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class ha extends Xs{constructor(c){super(),qs(this,c,ia,la,Ss,{})}}export{ha as component};
