Buckets:
| import{s as qu,o as Vu,n as L}from"../chunks/scheduler.b9285784.js";import{S as Ru,i as Hu,e as s,s as o,c as m,h as Wu,a as i,d as t,b as n,f as y,g as u,j as c,k as $,l as r,m as l,n as g,t as h,o as f,p as _}from"../chunks/index.26bc89a1.js";import{T as en}from"../chunks/Tip.e4eba3d6.js";import{C as Gu,H as M,E as Ju}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.fd3f78da.js";import{D as x}from"../chunks/Docstring.5de77e23.js";import{C as rt}from"../chunks/CodeBlock.ff14cd21.js";import{E as nt}from"../chunks/ExampleCodeBlock.27aefb00.js";function Bu(k){let d,w="Example:",b,v,T;return v=new rt({props:{code:"ZnJvbSUyMGFjY2VsZXJhdGUlMjBpbXBvcnQlMjBBY2NlbGVyYXRvciUwQWZyb20lMjBhY2NlbGVyYXRlLnV0aWxzJTIwaW1wb3J0JTIwQXV0b2Nhc3RLd2FyZ3MlMEElMEFrd2FyZ3MlMjAlM0QlMjBBdXRvY2FzdEt3YXJncyhjYWNoZV9lbmFibGVkJTNEVHJ1ZSklMEFhY2NlbGVyYXRvciUyMCUzRCUyMEFjY2VsZXJhdG9yKGt3YXJnc19oYW5kbGVycyUzRCU1Qmt3YXJncyU1RCk=",highlighted:`<span class="hljs-keyword">from</span> accelerate <span class="hljs-keyword">import</span> Accelerator | |
| <span class="hljs-keyword">from</span> accelerate.utils <span class="hljs-keyword">import</span> AutocastKwargs | |
| kwargs = AutocastKwargs(cache_enabled=<span class="hljs-literal">True</span>) | |
| accelerator = Accelerator(kwargs_handlers=[kwargs])`,lang:"python",wrap:!1}}),{c(){d=s("p"),d.textContent=w,b=o(),m(v.$$.fragment)},l(p){d=i(p,"P",{"data-svelte-h":!0}),c(d)!=="svelte-11lpom8"&&(d.textContent=w),b=n(p),u(v.$$.fragment,p)},m(p,C){l(p,d,C),l(p,b,C),g(v,p,C),T=!0},p:L,i(p){T||(h(v.$$.fragment,p),T=!0)},o(p){f(v.$$.fragment,p),T=!1},d(p){p&&(t(d),t(b)),_(v,p)}}}function Xu(k){let d,w="<code>gradient_as_bucket_view</code> is only available in PyTorch 1.7.0 and later versions.",b,v,T="<code>static_graph</code> is only available in PyTorch 1.11.0 and later versions.";return{c(){d=s("p"),d.innerHTML=w,b=o(),v=s("p"),v.innerHTML=T},l(p){d=i(p,"P",{"data-svelte-h":!0}),c(d)!=="svelte-wnn996"&&(d.innerHTML=w),b=n(p),v=i(p,"P",{"data-svelte-h":!0}),c(v)!=="svelte-nj3kvq"&&(v.innerHTML=T)},m(p,C){l(p,d,C),l(p,b,C),l(p,v,C)},p:L,d(p){p&&(t(d),t(b),t(v))}}}function Zu(k){let d,w="Example:",b,v,T;return v=new rt({props:{code:"ZnJvbSUyMGFjY2VsZXJhdGUlMjBpbXBvcnQlMjBBY2NlbGVyYXRvciUwQWZyb20lMjBhY2NlbGVyYXRlLnV0aWxzJTIwaW1wb3J0JTIwRGlzdHJpYnV0ZWREYXRhUGFyYWxsZWxLd2FyZ3MlMEElMEFrd2FyZ3MlMjAlM0QlMjBEaXN0cmlidXRlZERhdGFQYXJhbGxlbEt3YXJncyhmaW5kX3VudXNlZF9wYXJhbWV0ZXJzJTNEVHJ1ZSklMEFhY2NlbGVyYXRvciUyMCUzRCUyMEFjY2VsZXJhdG9yKGt3YXJnc19oYW5kbGVycyUzRCU1Qmt3YXJncyU1RCk=",highlighted:`<span class="hljs-keyword">from</span> accelerate <span class="hljs-keyword">import</span> Accelerator | |
| <span class="hljs-keyword">from</span> accelerate.utils <span class="hljs-keyword">import</span> DistributedDataParallelKwargs | |
| kwargs = DistributedDataParallelKwargs(find_unused_parameters=<span class="hljs-literal">True</span>) | |
| accelerator = Accelerator(kwargs_handlers=[kwargs])`,lang:"python",wrap:!1}}),{c(){d=s("p"),d.textContent=w,b=o(),m(v.$$.fragment)},l(p){d=i(p,"P",{"data-svelte-h":!0}),c(d)!=="svelte-11lpom8"&&(d.textContent=w),b=n(p),u(v.$$.fragment,p)},m(p,C){l(p,d,C),l(p,b,C),g(v,p,C),T=!0},p:L,i(p){T||(h(v.$$.fragment,p),T=!0)},o(p){f(v.$$.fragment,p),T=!1},d(p){p&&(t(d),t(b)),_(v,p)}}}function Yu(k){let d,w=`<code>torch.cuda.amp.GradScaler</code> is only available in PyTorch 1.5.0 and later versions, and <code>torch.amp.GradScaler</code> is | |
| only available in PyTorch 2.4.0 and later versions.`;return{c(){d=s("p"),d.innerHTML=w},l(b){d=i(b,"P",{"data-svelte-h":!0}),c(d)!=="svelte-7quoha"&&(d.innerHTML=w)},m(b,v){l(b,d,v)},p:L,d(b){b&&t(d)}}}function Qu(k){let d,w="Example:",b,v,T;return v=new rt({props:{code:"ZnJvbSUyMGFjY2VsZXJhdGUlMjBpbXBvcnQlMjBBY2NlbGVyYXRvciUwQWZyb20lMjBhY2NlbGVyYXRlLnV0aWxzJTIwaW1wb3J0JTIwR3JhZFNjYWxlckt3YXJncyUwQSUwQWt3YXJncyUyMCUzRCUyMEdyYWRTY2FsZXJLd2FyZ3MoYmFja29mZl9mYWN0b3IlM0QwLjI1KSUwQWFjY2VsZXJhdG9yJTIwJTNEJTIwQWNjZWxlcmF0b3Ioa3dhcmdzX2hhbmRsZXJzJTNEJTVCa3dhcmdzJTVEKQ==",highlighted:`<span class="hljs-keyword">from</span> accelerate <span class="hljs-keyword">import</span> Accelerator | |
| <span class="hljs-keyword">from</span> accelerate.utils <span class="hljs-keyword">import</span> GradScalerKwargs | |
| kwargs = GradScalerKwargs(backoff_factor=<span class="hljs-number">0.25</span>) | |
| accelerator = Accelerator(kwargs_handlers=[kwargs])`,lang:"python",wrap:!1}}),{c(){d=s("p"),d.textContent=w,b=o(),m(v.$$.fragment)},l(p){d=i(p,"P",{"data-svelte-h":!0}),c(d)!=="svelte-11lpom8"&&(d.textContent=w),b=n(p),u(v.$$.fragment,p)},m(p,C){l(p,d,C),l(p,b,C),g(v,p,C),T=!0},p:L,i(p){T||(h(v.$$.fragment,p),T=!0)},o(p){f(v.$$.fragment,p),T=!1},d(p){p&&(t(d),t(b)),_(v,p)}}}function Ku(k){let d,w;return d=new rt({props:{code:"ZnJvbSUyMGRhdGV0aW1lJTIwaW1wb3J0JTIwdGltZWRlbHRhJTBBZnJvbSUyMGFjY2VsZXJhdGUlMjBpbXBvcnQlMjBBY2NlbGVyYXRvciUwQWZyb20lMjBhY2NlbGVyYXRlLnV0aWxzJTIwaW1wb3J0JTIwSW5pdFByb2Nlc3NHcm91cEt3YXJncyUwQSUwQWt3YXJncyUyMCUzRCUyMEluaXRQcm9jZXNzR3JvdXBLd2FyZ3ModGltZW91dCUzRHRpbWVkZWx0YShzZWNvbmRzJTNEODAwKSklMEFhY2NlbGVyYXRvciUyMCUzRCUyMEFjY2VsZXJhdG9yKGt3YXJnc19oYW5kbGVycyUzRCU1Qmt3YXJncyU1RCk=",highlighted:`<span class="hljs-keyword">from</span> datetime <span class="hljs-keyword">import</span> timedelta | |
| <span class="hljs-keyword">from</span> accelerate <span class="hljs-keyword">import</span> Accelerator | |
| <span class="hljs-keyword">from</span> accelerate.utils <span class="hljs-keyword">import</span> InitProcessGroupKwargs | |
| kwargs = InitProcessGroupKwargs(timeout=timedelta(seconds=<span class="hljs-number">800</span>)) | |
| accelerator = Accelerator(kwargs_handlers=[kwargs])`,lang:"python",wrap:!1}}),{c(){m(d.$$.fragment)},l(b){u(d.$$.fragment,b)},m(b,v){g(d,b,v),w=!0},p:L,i(b){w||(h(d.$$.fragment,b),w=!0)},o(b){f(d.$$.fragment,b),w=!1},d(b){_(d,b)}}}function eg(k){let d,w="Example:",b,v,T;return v=new rt({props:{code:"ZnJvbSUyMGFjY2VsZXJhdGUudXRpbHMlMjBpbXBvcnQlMjBHcmFkaWVudEFjY3VtdWxhdGlvblBsdWdpbiUwQSUwQWdyYWRpZW50X2FjY3VtdWxhdGlvbl9wbHVnaW4lMjAlM0QlMjBHcmFkaWVudEFjY3VtdWxhdGlvblBsdWdpbihudW1fc3RlcHMlM0QyKSUwQWFjY2VsZXJhdG9yJTIwJTNEJTIwQWNjZWxlcmF0b3IoZ3JhZGllbnRfYWNjdW11bGF0aW9uX3BsdWdpbiUzRGdyYWRpZW50X2FjY3VtdWxhdGlvbl9wbHVnaW4p",highlighted:`<span class="hljs-keyword">from</span> accelerate.utils <span class="hljs-keyword">import</span> GradientAccumulationPlugin | |
| gradient_accumulation_plugin = GradientAccumulationPlugin(num_steps=<span class="hljs-number">2</span>) | |
| accelerator = Accelerator(gradient_accumulation_plugin=gradient_accumulation_plugin)`,lang:"python",wrap:!1}}),{c(){d=s("p"),d.textContent=w,b=o(),m(v.$$.fragment)},l(p){d=i(p,"P",{"data-svelte-h":!0}),c(d)!=="svelte-11lpom8"&&(d.textContent=w),b=n(p),u(v.$$.fragment,p)},m(p,C){l(p,d,C),l(p,b,C),g(v,p,C),T=!0},p:L,i(p){T||(h(v.$$.fragment,p),T=!0)},o(p){f(v.$$.fragment,p),T=!1},d(p){p&&(t(d),t(b)),_(v,p)}}}function tg(k){let d,w="Example:",b,v,T;return v=new rt({props:{code:"aW1wb3J0JTIwb3MlMEFmcm9tJTIwYWNjZWxlcmF0ZS51dGlscyUyMGltcG9ydCUyMHBhdGNoX2Vudmlyb25tZW50JTBBJTBBd2l0aCUyMHBhdGNoX2Vudmlyb25tZW50KEZPTyUzRCUyMmJhciUyMiklM0ElMEElMjAlMjAlMjAlMjBwcmludChvcy5lbnZpcm9uJTVCJTIyRk9PJTIyJTVEKSUyMCUyMCUyMyUyMHByaW50cyUyMCUyMmJhciUyMiUwQXByaW50KG9zLmVudmlyb24lNUIlMjJGT08lMjIlNUQpJTIwJTIwJTIzJTIwcmFpc2VzJTIwS2V5RXJyb3I=",highlighted:`<span class="hljs-meta">>>> </span><span class="hljs-keyword">import</span> os | |
| <span class="hljs-meta">>>> </span><span class="hljs-keyword">from</span> accelerate.utils <span class="hljs-keyword">import</span> patch_environment | |
| <span class="hljs-meta">>>> </span><span class="hljs-keyword">with</span> patch_environment(FOO=<span class="hljs-string">"bar"</span>): | |
| <span class="hljs-meta">... </span> <span class="hljs-built_in">print</span>(os.environ[<span class="hljs-string">"FOO"</span>]) <span class="hljs-comment"># prints "bar"</span> | |
| <span class="hljs-meta">>>> </span><span class="hljs-built_in">print</span>(os.environ[<span class="hljs-string">"FOO"</span>]) <span class="hljs-comment"># raises KeyError</span>`,lang:"python",wrap:!1}}),{c(){d=s("p"),d.textContent=w,b=o(),m(v.$$.fragment)},l(p){d=i(p,"P",{"data-svelte-h":!0}),c(d)!=="svelte-11lpom8"&&(d.textContent=w),b=n(p),u(v.$$.fragment,p)},m(p,C){l(p,d,C),l(p,b,C),g(v,p,C),T=!0},p:L,i(p){T||(h(v.$$.fragment,p),T=!0)},o(p){f(v.$$.fragment,p),T=!1},d(p){p&&(t(d),t(b)),_(v,p)}}}function ag(k){let d,w="Example:",b,v,T;return v=new rt({props:{code:"aW1wb3J0JTIwb3MlMEFmcm9tJTIwYWNjZWxlcmF0ZS51dGlscyUyMGltcG9ydCUyMGNsZWFyX2Vudmlyb25tZW50JTBBJTBBb3MuZW52aXJvbiU1QiUyMkZPTyUyMiU1RCUyMCUzRCUyMCUyMmJhciUyMiUwQXdpdGglMjBjbGVhcl9lbnZpcm9ubWVudCgpJTNBJTBBJTIwJTIwJTIwJTIwcHJpbnQob3MuZW52aXJvbiklMEElMjAlMjAlMjAlMjBvcy5lbnZpcm9uJTVCJTIyRk9PJTIyJTVEJTIwJTNEJTIwJTIybmV3X2JhciUyMiUwQSUyMCUyMCUyMCUyMHByaW50KG9zLmVudmlyb24lNUIlMjJGT08lMjIlNUQpJTBBJTBBcHJpbnQob3MuZW52aXJvbiU1QiUyMkZPTyUyMiU1RCk=",highlighted:`<span class="hljs-meta">>>> </span><span class="hljs-keyword">import</span> os | |
| <span class="hljs-meta">>>> </span><span class="hljs-keyword">from</span> accelerate.utils <span class="hljs-keyword">import</span> clear_environment | |
| <span class="hljs-meta">>>> </span>os.environ[<span class="hljs-string">"FOO"</span>] = <span class="hljs-string">"bar"</span> | |
| <span class="hljs-meta">>>> </span><span class="hljs-keyword">with</span> clear_environment(): | |
| <span class="hljs-meta">... </span> <span class="hljs-built_in">print</span>(os.environ) | |
| <span class="hljs-meta">... </span> os.environ[<span class="hljs-string">"FOO"</span>] = <span class="hljs-string">"new_bar"</span> | |
| <span class="hljs-meta">... </span> <span class="hljs-built_in">print</span>(os.environ[<span class="hljs-string">"FOO"</span>]) | |
| {} | |
| new_bar | |
| <span class="hljs-meta">>>> </span><span class="hljs-built_in">print</span>(os.environ[<span class="hljs-string">"FOO"</span>]) | |
| bar`,lang:"python",wrap:!1}}),{c(){d=s("p"),d.textContent=w,b=o(),m(v.$$.fragment)},l(p){d=i(p,"P",{"data-svelte-h":!0}),c(d)!=="svelte-11lpom8"&&(d.textContent=w),b=n(p),u(v.$$.fragment,p)},m(p,C){l(p,d,C),l(p,b,C),g(v,p,C),T=!0},p:L,i(p){T||(h(v.$$.fragment,p),T=!0)},o(p){f(v.$$.fragment,p),T=!1},d(p){p&&(t(d),t(b)),_(v,p)}}}function og(k){let d,w="Example:",b,v,T;return v=new rt({props:{code:"ZnJvbSUyMGFjY2VsZXJhdGUudXRpbHMlMjBpbXBvcnQlMjBmaW5kX2V4ZWN1dGFibGVfYmF0Y2hfc2l6ZSUwQSUwQSUwQSU0MGZpbmRfZXhlY3V0YWJsZV9iYXRjaF9zaXplKHN0YXJ0aW5nX2JhdGNoX3NpemUlM0QxMjgpJTBBZGVmJTIwdHJhaW4oYmF0Y2hfc2l6ZSUyQyUyMG1vZGVsJTJDJTIwb3B0aW1pemVyKSUzQSUwQSUyMCUyMCUyMCUyMC4uLiUwQSUwQSUwQXRyYWluKG1vZGVsJTJDJTIwb3B0aW1pemVyKQ==",highlighted:`<span class="hljs-meta">>>> </span><span class="hljs-keyword">from</span> accelerate.utils <span class="hljs-keyword">import</span> find_executable_batch_size | |
| <span class="hljs-meta">>>> </span>@find_executable_batch_size(starting_batch_size=<span class="hljs-number">128</span>) | |
| <span class="hljs-meta">... </span><span class="hljs-keyword">def</span> <span class="hljs-title function_">train</span>(<span class="hljs-params">batch_size, model, optimizer</span>): | |
| <span class="hljs-meta">... </span> ... | |
| <span class="hljs-meta">>>> </span>train(model, optimizer)`,lang:"python",wrap:!1}}),{c(){d=s("p"),d.textContent=w,b=o(),m(v.$$.fragment)},l(p){d=i(p,"P",{"data-svelte-h":!0}),c(d)!=="svelte-11lpom8"&&(d.textContent=w),b=n(p),u(v.$$.fragment,p)},m(p,C){l(p,d,C),l(p,b,C),g(v,p,C),T=!0},p:L,i(p){T||(h(v.$$.fragment,p),T=!0)},o(p){f(v.$$.fragment,p),T=!1},d(p){p&&(t(d),t(b)),_(v,p)}}}function ng(k){let d,w=`All computation is done analyzing sizes and dtypes of the model parameters. As a result, the model can be on the | |
| meta device (as it would if initialized within the <code>init_empty_weights</code> context manager).`;return{c(){d=s("p"),d.innerHTML=w},l(b){d=i(b,"P",{"data-svelte-h":!0}),c(d)!=="svelte-1d9m3bn"&&(d.innerHTML=w)},m(b,v){l(b,d,v)},p:L,d(b){b&&t(d)}}}function rg(k){let d,w=`All computation is done analyzing sizes and dtypes of the model parameters. As a result, the model can be on the | |
| meta device (as it would if initialized within the <code>init_empty_weights</code> context manager).`;return{c(){d=s("p"),d.innerHTML=w},l(b){d=i(b,"P",{"data-svelte-h":!0}),c(d)!=="svelte-1d9m3bn"&&(d.innerHTML=w)},m(b,v){l(b,d,v)},p:L,d(b){b&&t(d)}}}function lg(k){let d,w=`Once loaded across devices, you still need to call <a href="/docs/accelerate/pr_4071/en/package_reference/big_modeling#accelerate.dispatch_model">dispatch_model()</a> on your model to make it able to run. To | |
| group the checkpoint loading and dispatch in one single call, use <a href="/docs/accelerate/pr_4071/en/package_reference/big_modeling#accelerate.load_checkpoint_and_dispatch">load_checkpoint_and_dispatch()</a>.`;return{c(){d=s("p"),d.innerHTML=w},l(b){d=i(b,"P",{"data-svelte-h":!0}),c(d)!=="svelte-1gk5qqx"&&(d.innerHTML=w)},m(b,v){l(b,d,v)},p:L,d(b){b&&t(d)}}}function sg(k){let d,w="Make sure all processes will reach this instruction otherwise one of your processes will hang forever.";return{c(){d=s("p"),d.textContent=w},l(b){d=i(b,"P",{"data-svelte-h":!0}),c(d)!=="svelte-1ejfkli"&&(d.textContent=w)},m(b,v){l(b,d,v)},p:L,d(b){b&&t(d)}}}function ig(k){let d,w="Example:",b,v,T;return v=new rt({props:{code:"ZnJvbSUyMGFjY2VsZXJhdGUudXRpbHMlMjBpbXBvcnQlMjBpbnN0YWxsX3hsYSUwQSUwQWluc3RhbGxfeGxhKHVwZ3JhZGUlM0RUcnVlKQ==",highlighted:`<span class="hljs-meta">>>> </span><span class="hljs-keyword">from</span> accelerate.utils <span class="hljs-keyword">import</span> install_xla | |
| <span class="hljs-meta">>>> </span>install_xla(upgrade=<span class="hljs-literal">True</span>)`,lang:"python",wrap:!1}}),{c(){d=s("p"),d.textContent=w,b=o(),m(v.$$.fragment)},l(p){d=i(p,"P",{"data-svelte-h":!0}),c(d)!=="svelte-11lpom8"&&(d.textContent=w),b=n(p),u(v.$$.fragment,p)},m(p,C){l(p,d,C),l(p,b,C),g(v,p,C),T=!0},p:L,i(p){T||(h(v.$$.fragment,p),T=!0)},o(p){f(v.$$.fragment,p),T=!1},d(p){p&&(t(d),t(b)),_(v,p)}}}function cg(k){let d,w=`Once loaded across devices, you still need to call <a href="/docs/accelerate/pr_4071/en/package_reference/big_modeling#accelerate.dispatch_model">dispatch_model()</a> on your model to make it able to run. To | |
| group the checkpoint loading and dispatch in one single call, use <a href="/docs/accelerate/pr_4071/en/package_reference/big_modeling#accelerate.load_checkpoint_and_dispatch">load_checkpoint_and_dispatch()</a>.`;return{c(){d=s("p"),d.innerHTML=w},l(b){d=i(b,"P",{"data-svelte-h":!0}),c(d)!=="svelte-1gk5qqx"&&(d.innerHTML=w)},m(b,v){l(b,d,v)},p:L,d(b){b&&t(d)}}}function dg(k){let d,w,b,v,T,p,C,sl,Ft,xp="Below are a variety of utility functions that 🤗 Accelerate provides, broken down by use-case.",il,jt,cl,Et,wp="Constants used throughout 🤗 Accelerate for reference",dl,It,Tp='The following are constants used when utilizing <a href="/docs/accelerate/pr_4071/en/package_reference/accelerator#accelerate.Accelerator.save_state">Accelerator.save_state()</a>',pl,At,Cp="<code>utils.MODEL_NAME</code>: <code>"pytorch_model"</code> <code>utils.OPTIMIZER_NAME</code>: <code>"optimizer"</code> <code>utils.RNG_STATE_NAME</code>: <code>"random_states"</code> <code>utils.SCALER_NAME</code>: <code>"scaler.pt</code> <code>utils.SCHEDULER_NAME</code>: <code>"scheduler</code>",ml,St,kp='The following are constants used when utilizing <a href="/docs/accelerate/pr_4071/en/package_reference/accelerator#accelerate.Accelerator.save_model">Accelerator.save_model()</a>',ul,Ot,Pp="<code>utils.WEIGHTS_NAME</code>: <code>"pytorch_model.bin"</code> <code>utils.SAFE_WEIGHTS_NAME</code>: <code>"model.safetensors"</code> <code>utils.WEIGHTS_INDEX_NAME</code>: <code>"pytorch_model.bin.index.json"</code> <code>utils.SAFE_WEIGHTS_INDEX_NAME</code>: <code>"model.safetensors.index.json"</code>",gl,qt,hl,Vt,Mp="These are basic dataclasses used throughout 🤗 Accelerate and they can be passed in as parameters.",fl,Rt,_l,Ht,Np="These are standalone dataclasses used for checks, such as the type of distributed system being used",bl,U,Wt,nc,tn,Lp="Represents a type of the compute environment.",rc,an,Dp="Values:",lc,on,Up="<li><strong>LOCAL_MACHINE</strong> — private/custom cluster hardware.</li> <li><strong>AMAZON_SAGEMAKER</strong> — Amazon SageMaker as compute environment.</li>",vl,z,Gt,sc,nn,zp="Represents a type of distributed environment.",ic,rn,Fp="Values:",cc,ln,jp="<li><strong>NO</strong> — Not a distributed environment, just a single process.</li> <li><strong>MULTI_CPU</strong> — Distributed on multiple CPU nodes.</li> <li><strong>MULTI_GPU</strong> — Distributed on multiple GPUs.</li> <li><strong>MULTI_MLU</strong> — Distributed on multiple MLUs.</li> <li><strong>MULTI_SDAA</strong> — Distributed on multiple SDAAs.</li> <li><strong>MULTI_MUSA</strong> — Distributed on multiple MUSAs.</li> <li><strong>MULTI_NPU</strong> — Distributed on multiple NPUs.</li> <li><strong>MULTI_XPU</strong> — Distributed on multiple XPUs.</li> <li><strong>MULTI_HPU</strong> — Distributed on multiple HPUs.</li> <li><strong>MULTI_NEURON</strong> — Distributed on multiple Neuron cores.</li> <li><strong>DEEPSPEED</strong> — Using DeepSpeed.</li> <li><strong>FSDP</strong> — Using Fully Sharded Data Parallelism (FSDP).</li> <li><strong>XLA</strong> — Using TorchXLA.</li> <li><strong>MEGATRON_LM</strong> — Using Megatron-LM.</li>",yl,F,Jt,dc,sn,Ep='Represents a dynamo backend (see <a href="https://pytorch.org/docs/stable/torch.compiler.html" rel="nofollow">https://pytorch.org/docs/stable/torch.compiler.html</a>).',pc,cn,Ip="Values:",mc,dn,Ap=`<li><strong>NO</strong> — Do not use torch dynamo.</li> <li><strong>EAGER</strong> — Uses PyTorch to run the extracted GraphModule. This is quite useful in debugging TorchDynamo | |
| issues.</li> <li><strong>AOT_EAGER</strong> — Uses AotAutograd with no compiler, i.e, just using PyTorch eager for the AotAutograd’s | |
| extracted forward and backward graphs. This is useful for debugging, and unlikely to give speedups.</li> <li><strong>INDUCTOR</strong> — Uses TorchInductor backend with AotAutograd and cudagraphs by leveraging codegened Triton | |
| kernels. <a href="https://dev-discuss.pytorch.org/t/torchinductor-a-pytorch-native-compiler-with-define-by-run-ir-and-symbolic-shapes/747" rel="nofollow">Read | |
| more</a></li> <li><strong>AOT_TS_NVFUSER</strong> — nvFuser with AotAutograd/TorchScript. <a href="https://dev-discuss.pytorch.org/t/tracing-with-primitives-update-1-nvfuser-and-its-primitives/593" rel="nofollow">Read | |
| more</a></li> <li><strong>NVPRIMS_NVFUSER</strong> — nvFuser with PrimTorch. <a href="https://dev-discuss.pytorch.org/t/tracing-with-primitives-update-1-nvfuser-and-its-primitives/593" rel="nofollow">Read | |
| more</a></li> <li><strong>CUDAGRAPHS</strong> — cudagraphs with AotAutograd. <a href="https://github.com/pytorch/torchdynamo/pull/757" rel="nofollow">Read more</a></li> <li><strong>OFI</strong> — Uses Torchscript optimize_for_inference. Inference only. <a href="https://pytorch.org/docs/stable/generated/torch.jit.optimize_for_inference.html" rel="nofollow">Read | |
| more</a></li> <li><strong>FX2TRT</strong> — Uses Nvidia TensorRT for inference optimizations. Inference only. <a href="https://github.com/pytorch/TensorRT/blob/master/docsrc/tutorials/getting_started_with_fx_path.rst" rel="nofollow">Read | |
| more</a></li> <li><strong>ONNXRT</strong> — Uses ONNXRT for inference on CPU/GPU. Inference only. <a href="https://onnxruntime.ai/" rel="nofollow">Read more</a></li> <li><strong>TENSORRT</strong> — Uses ONNXRT to run TensorRT for inference optimizations. <a href="https://github.com/onnx/onnx-tensorrt" rel="nofollow">Read | |
| more</a></li> <li><strong>AOT_TORCHXLA_TRACE_ONCE</strong> — Uses Pytorch/XLA with TorchDynamo optimization, for training. <a href="https://github.com/pytorch/xla/blob/r2.0/docs/dynamo.md" rel="nofollow">Read | |
| more</a></li> <li><strong>TORCHXLA_TRACE_ONCE</strong> — Uses Pytorch/XLA with TorchDynamo optimization, for inference. <a href="https://github.com/pytorch/xla/blob/r2.0/docs/dynamo.md" rel="nofollow">Read | |
| more</a></li> <li><strong>TVM</strong> — Uses Apache TVM for inference optimizations. <a href="https://tvm.apache.org/" rel="nofollow">Read more</a></li> <li><strong>HPU_BACKEND</strong> — Uses HPU backend for inference optimizations.</li>`,$l,j,Bt,uc,pn,Sp="Represents a type of supported experiment tracker",gc,mn,Op="Values:",hc,un,qp="<li><strong>ALL</strong> — all available trackers in the environment that are supported</li> <li><strong>TENSORBOARD</strong> — TensorBoard as an experiment tracker</li> <li><strong>WANDB</strong> — wandb as an experiment tracker</li> <li><strong>TRACKIO</strong> — trackio as an experiment tracker</li> <li><strong>COMETML</strong> — comet_ml as an experiment tracker</li> <li><strong>MLFLOW</strong> — mlflow as an experiment tracker</li> <li><strong>CLEARML</strong> — clearml as an experiment tracker</li> <li><strong>DVCLIVE</strong> — dvclive as an experiment tracker</li> <li><strong>SWANLAB</strong> — swanlab as an experiment tracker</li>",xl,E,Xt,fc,gn,Vp="Represents a type of precision used on floating point values",_c,hn,Rp="Values:",bc,fn,Hp="<li><strong>NO</strong> — using full precision (FP32)</li> <li><strong>FP16</strong> — using half precision</li> <li><strong>BF16</strong> — using brain floating point precision</li>",wl,he,Zt,vc,_n,Wp="An enumeration.",Tl,I,Yt,yc,bn,Gp="Represents a type of distributed environment.",$c,vn,Jp="Values:",xc,yn,Bp="<li><strong>NO</strong> — Not a distributed environment, just a single process.</li> <li><strong>DATA_PARALLEL</strong> — using sagemaker distributed data parallelism.</li> <li><strong>MODEL_PARALLEL</strong> — using sagemaker distributed model parallelism.</li>",Cl,Qt,kl,Kt,Xp="These are configurable arguments for specific interactions throughout the PyTorch ecosystem that Accelerate handles under the hood.",Pl,J,ea,wc,$n,Zp=`Use this object in your <a href="/docs/accelerate/pr_4071/en/package_reference/accelerator#accelerate.Accelerator">Accelerator</a> to customize how <code>torch.autocast</code> behaves. Please refer to the | |
| documentation of this <a href="https://pytorch.org/docs/stable/amp.html#torch.autocast" rel="nofollow">context manager</a> for more | |
| information on each argument.`,Tc,lt,Ml,A,ta,Cc,xn,Yp=`Use this object in your <a href="/docs/accelerate/pr_4071/en/package_reference/accelerator#accelerate.Accelerator">Accelerator</a> to customize how your model is wrapped in a | |
| <code>torch.nn.parallel.DistributedDataParallel</code>. Please refer to the documentation of this | |
| <a href="https://pytorch.org/docs/stable/generated/torch.nn.parallel.DistributedDataParallel.html" rel="nofollow">wrapper</a> for more | |
| information on each argument.`,kc,st,Pc,it,Nl,fe,aa,Mc,wn,Qp=`Deprecated. Please use one of the proper FP8 recipe kwargs classes such as <code>TERecipeKwargs</code> or <code>MSAMPRecipeKwargs</code> | |
| instead.`,Ll,S,oa,Nc,Tn,Kp=`Use this object in your <a href="/docs/accelerate/pr_4071/en/package_reference/accelerator#accelerate.Accelerator">Accelerator</a> to customize the behavior of mixed precision, specifically how the | |
| <code>torch.amp.GradScaler</code> or <code>torch.cuda.amp.GradScaler</code> used is created. Please refer to the documentation of this | |
| <a href="https://pytorch.org/docs/stable/amp.html?highlight=gradscaler" rel="nofollow">scaler</a> for more information on each argument.`,Lc,ct,Dc,dt,Dl,O,na,Uc,Cn,em=`Use this object in your <a href="/docs/accelerate/pr_4071/en/package_reference/accelerator#accelerate.Accelerator">Accelerator</a> to customize the initialization of the distributed processes. Please refer | |
| to the documentation of this | |
| <a href="https://pytorch.org/docs/stable/distributed.html#torch.distributed.init_process_group" rel="nofollow">method</a> for more | |
| information on each argument.`,zc,kn,tm="Note: If <code>timeout</code> is set to <code>None</code>, the default will be based upon how <code>backend</code> is set.",Fc,pt,Ul,B,ra,jc,Pn,am="Internal mixin that implements a <code>to_kwargs()</code> method for a dataclass.",Ec,mt,la,Ic,Mn,om="Returns a dictionary containing the attributes with values different from the default of this class.",zl,sa,Fl,ia,nm=`These are plugins that can be passed to the <a href="/docs/accelerate/pr_4071/en/package_reference/accelerator#accelerate.Accelerator">Accelerator</a> object. While they are defined elsewhere in the documentation, | |
| for convenience all of them are available to see here:`,jl,q,ca,Ac,Nn,rm="This plugin is used to integrate DeepSpeed.",Sc,ut,da,Oc,Ln,lm="Process the DeepSpeed config with the values from the kwargs.",qc,gt,pa,Vc,Dn,sm="Sets the HfDeepSpeedWeakref to use the current deepspeed plugin configuration",El,N,ma,Rc,Un,im="This plugin is used to enable fully sharded data parallelism.",Hc,ht,ua,Wc,zn,cm=`Given <code>model</code>, creates an <code>auto_wrap_policy</code> based on the passed in policy and if we can use the | |
| <code>transformer_cls_to_wrap</code>`,Gc,ft,ga,Jc,Fn,dm="Sets the mixed precision policy for FSDP",Bc,_t,ha,Xc,jn,pm="Set the state dict config based on the <code>StateDictType</code>.",Zc,bt,fa,Yc,En,mm="Validates the mixed precision policy, abstracted away to not bring in the imports if not needed.",Il,X,_a,Qc,In,um=`A plugin to configure gradient accumulation behavior. You can only pass one of <code>gradient_accumulation_plugin</code> or | |
| <code>gradient_accumulation_steps</code> to <a href="/docs/accelerate/pr_4071/en/package_reference/accelerator#accelerate.Accelerator">Accelerator</a>. Passing both raises an error.`,Kc,vt,Al,_e,ba,ed,An,gm=`Plugin for Megatron-LM to enable tensor, pipeline, sequence and data parallelism. Also to enable selective | |
| activation recomputation and optimized fused kernels.`,Sl,be,va,td,Sn,hm="This plugin is used to compile a model with PyTorch 2.0",Ol,ya,ql,$a,fm="These are classes which can be configured and passed through to the appropriate integration",Vl,ve,xa,ad,On,_m="A plugin to enable BitsAndBytes 4bit and 8bit quantization",Rl,ye,wa,od,qn,bm="Configuration for dataloader-related items when calling <code>accelerator.prepare</code>.",Hl,Z,Ta,nd,Vn,vm="Configuration for the Accelerator object based on inner-project needs.",rd,yt,Ca,ld,Rn,ym="Sets <code>self.project_dir</code> and <code>self.logging_dir</code> to the appropriate values.",Wl,ka,Gl,Pa,$m="These are environmental variables that can be enabled for different use cases",Jl,Ma,xm='<li><code>ACCELERATE_DEBUG_MODE</code> (<code>str</code>): Whether to run accelerate in debug mode. More info available <a href="../usage_guides/debug">here</a>.</li>',Bl,Na,Xl,La,wm="These include data operations that mimic the same <code>torch</code> ops but can be used on distributed processes.",Zl,$e,Da,sd,Hn,Tm="Recursively broadcast tensor in a nested list/tuple/dictionary of tensors to all devices.",Yl,xe,Ua,id,Wn,Cm="Broadcast a list of picklable objects from one process to the others.",Ql,we,za,cd,Gn,km=`Recursively concatenate the tensors in a nested list/tuple/dictionary of lists of tensors with the same shape. | |
| If there is only a single batch of data, it is returned as-is.`,Kl,Fa,ja,es,Te,Ea,dd,Jn,Pm="Recursively converts the elements nested list/tuple/dictionary of tensors in FP16/BF16 precision to FP32.",ts,Ce,Ia,pd,Bn,Mm="Recursively gather tensor in a nested list/tuple/dictionary of tensors from all devices.",as,ke,Aa,md,Xn,Nm="Recursively gather object in a nested list/tuple/dictionary of objects from all devices.",os,Pe,Sa,ud,Zn,Lm=`A generic helper which will initialize the correct <code>GradScaler</code> implementation based on the environment and return | |
| it.`,ns,Me,Oa,gd,Yn,Dm="Return a context manager for autocasting mixed precision",rs,Ne,qa,hd,Qn,Um="Recursively finds tensors in a nested list/tuple/dictionary and converts them to a list of numbers.",ls,Le,Va,fd,Kn,zm=`Recursively pad the tensors in a nested list/tuple/dictionary of tensors from all devices to the same size so they | |
| can safely be gathered.`,ss,De,Ra,_d,er,Fm="Recursively apply a function on a data structure that is a nested list/tuple/dictionary of a given base type.",is,Ue,Ha,bd,tr,jm=`Recursively reduce the tensors in a nested list/tuple/dictionary of lists of tensors across all processes by the | |
| mean of a given operation.`,cs,ze,Wa,vd,ar,Em="Recursively sends the elements in a nested list/tuple/dictionary of tensors to a given device.",ds,Fe,Ga,yd,or,Im="Recursively takes a slice in a nested list/tuple/dictionary of tensors.",ps,Ja,ms,Ba,Am="These functionalities check the state of the current working environment including information about the operating system itself, what it can support, and if particular dependencies are installed.",us,je,Xa,$d,nr,Sm="Checks if bf16 is supported, optionally ignoring the TPU",gs,Ee,Za,xd,rr,Om="Checks if MPS device is available. The minimum version required is 1.12.",hs,Ie,Ya,wd,lr,qm="Checks if <code>torch_npu</code> is installed and potentially if a NPU is in the environment",fs,Ae,Qa,Td,sr,Vm="Compares the current PyTorch version to a given reference with an operation.",_s,Se,Ka,Cd,ir,Rm=`Check if <code>torch_xla</code> is available. To train a native pytorch job in an environment with torch xla installed, set | |
| the USE_TORCH_XLA to false.`,bs,Oe,eo,kd,cr,Hm=`Checks if XPU acceleration is available via stock PyTorch (>=2.7) and | |
| potentially if a XPU is in the environment`,vs,to,ys,V,ao,Pd,dr,Wm="A context manager that will add each keyword argument passed to <code>os.environ</code> and remove them when exiting.",Md,pr,Gm="Will convert the values in <code>kwargs</code> to strings and upper-case all the keys.",Nd,$t,$s,R,oo,Ld,mr,Jm="A context manager that will temporarily clear environment variables.",Dd,ur,Bm="When this context exits, the previous environment variables will be back.",Ud,xt,xs,qe,no,zd,gr,Xm=`Creates and saves a basic cluster config to be used on a local machine with potentially multiple GPUs. Will also | |
| set CPU if it is a CPU-only machine.`,ws,ro,Zm="When setting up 🤗 Accelerate for the first time, rather than running <code>accelerate config</code> [~utils.write_basic_config] can be used as an alternative for quick configuration.",Ts,Y,lo,Fd,hr,Ym="Assigns the current process to a specific NUMA node. Ideally most efficient when having at least 2 cpus per node.",jd,fr,Qm=`This result is cached between calls. If you want to override it, please use | |
| <code>accelerate.utils.environment.override_numa_afifnity</code>.`,Cs,Ve,so,Ed,_r,Km=`Overrides whatever NUMA affinity is set for the current process. This is very taxing and requires recalculating the | |
| affinity to set, ideally you should use <code>utils.environment.set_numa_affinity</code> instead.`,ks,P,io,Id,br,eu="Decorator to clean up accelerate environment variables set by the decorated class or function.",Ad,vr,tu=`In some circumstances, calling certain classes or functions can result in accelerate env vars being set and not | |
| being cleaned up afterwards. As an example, when calling:`,Sd,yr,au="TrainingArguments(fp16=True, …)",Od,$r,ou="The following env var will be set:",qd,xr,nu="ACCELERATE_MIXED_PRECISION=fp16",Vd,wr,ru=`This can affect subsequent code, since the env var takes precedence over TrainingArguments(fp16=False). This is | |
| especially relevant for unit testing, where we want to avoid the individual tests to have side effects on one | |
| another. Decorate the unit test function or whole class with this decorator to ensure that after each test, the env | |
| vars are cleaned up. This works for both unittest.TestCase and normal classes (pytest); it also works when | |
| decorating the parent class.`,Ps,co,Ms,H,po,Rd,Tr,lu=`A basic decorator that will try to execute <code>function</code>. If it fails from exceptions related to out-of-memory or | |
| CUDNN, the batch size is multiplied by 0.9 and passed to <code>function</code>`,Hd,Cr,su="<code>function</code> must take in a <code>batch_size</code> parameter as its first argument.",Wd,wt,Ns,mo,Ls,uo,iu="These utilities relate to interacting with PyTorch models",Ds,Re,go,Gd,kr,cu="Computes the total size of the model and its largest layer",Us,He,ho,Jd,Pr,du="Compute the size of each submodule of a given model.",zs,We,fo,Bd,Mr,pu="Extract a model from its distributed containers.",Fs,Q,_o,Xd,Nr,mu='Compute a <code>max_memory</code> dictionary for <a href="/docs/accelerate/pr_4071/en/package_reference/big_modeling#accelerate.infer_auto_device_map">infer_auto_device_map()</a> that will balance the use of each available GPU.',Zd,Tt,js,K,bo,Yd,Lr,uu=`Utility function that will scan a list of named modules and return the maximum size used by one full layer. The | |
| definition of a layer being:`,Qd,Dr,gu="<li>a module with no direct children (just parameters and buffers)</li> <li>a module whose class name is in the list <code>no_split_module_classes</code></li>",Es,W,vo,Kd,Ur,hu=`Compute a device map for a given model giving priority to GPUs, then offload on CPU and finally offload to disk, | |
| such that:`,ep,zr,fu=`<li>we don’t exceed the memory available of any of the GPU.</li> <li>if offload to the CPU is needed, there is always room left on GPU 0 to put back the layer offloaded on CPU that | |
| has the largest size.</li> <li>if offload to the CPU is needed,we don’t exceed the RAM available on the CPU.</li> <li>if offload to the disk is needed, there is always room left on the CPU to put back the layer offloaded on disk | |
| that has the largest size.</li>`,tp,Ct,Is,ee,yo,ap,Fr,_u=`Loads a (potentially sharded) checkpoint inside a model, potentially sending weights to a given device as they are | |
| loaded.`,op,kt,As,Ge,$o,np,jr,bu="Loads the weights from the offload folder into the model.",Ss,Je,xo,rp,Er,vu=`Load a checkpoint from a given file. If the checkpoint is in the safetensors format and a device map is passed, the | |
| weights can be fast-loaded directly on the GPU.`,Os,Be,wo,lp,Ir,yu="Offload a state dict in a given folder.",qs,Xe,To,sp,Ar,$u="Reties tied parameters in a given model if the link was broken (for instance when adding hooks).",Vs,Ze,Co,ip,Sr,xu=`A helper function to set a given tensor (parameter of buffer) of a module on a specific device (note that doing | |
| <code>param.to(device)</code> creates a new tensor not linked to the parameter, which is why we need this function).`,Rs,Ye,ko,cp,Or,wu="Traverse the model in bottom-up order and return the children modules in that order.",Hs,Po,Ws,Mo,Tu="These include general utilities that should be used when working in parallel.",Gs,Qe,No,dp,qr,Cu="Extract a model from its distributed containers.",Js,Ke,Lo,pp,Vr,ku="Save the data to disk. Use in place of <code>torch.save()</code>.",Bs,te,Do,mp,Rr,Pu=`Compatible drop-in replacement of <code>torch.load()</code> which allows for <code>weights_only</code> to be used if <code>torch</code> version is | |
| 2.4.0 or higher. Otherwise will ignore the kwarg.`,up,Hr,Mu="Will also add (and then remove) an exception for numpy arrays",Xs,ae,Uo,gp,Wr,Nu="Introduces a blocking point in the script, making sure all processes have reached this point before continuing.",hp,Pt,Zs,zo,Ys,Fo,Lu="These utilities relate to setting and synchronizing of all the random states.",Qs,et,jo,fp,Gr,Du="Helper function for reproducible behavior to set the seed in <code>random</code>, <code>numpy</code>, <code>torch</code>.",Ks,Eo,Io,ei,Ao,So,ti,Oo,ai,qo,Uu="These include utilities that are useful while using PyTorch with XLA.",oi,oe,Vo,_p,Jr,zu="Helper function to install appropriate xla wheels based on the <code>torch</code> version in Google Colaboratory.",bp,Mt,ni,Ro,ri,Ho,Fu="These include utilities that are useful to load checkpoints.",li,ne,Wo,vp,Br,ju=`Loads a (potentially sharded) checkpoint inside a model, potentially sending weights to a given device as they are | |
| loaded.`,yp,Nt,si,Go,ii,Jo,Eu="These include utilities that are useful to quantize model.",ci,tt,Bo,$p,Xr,Iu=`This function will quantize the input model with the associated config passed in <code>bnb_quantization_config</code>. If the | |
| model is in the meta device, we will load and dispatch the weights according to the <code>device_map</code> passed. If the | |
| model is already loaded, we will quantize the model and put the model on the GPU,`,di,Xo,pi,ll,mi;return T=new Gu({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),C=new M({props:{title:"Utility functions and classes",local:"utility-functions-and-classes",headingTag:"h1"}}),jt=new M({props:{title:"Constants",local:"constants",headingTag:"h2"}}),qt=new M({props:{title:"Data Classes",local:"data-classes",headingTag:"h2"}}),Rt=new M({props:{title:"Standalone",local:"accelerate.utils.ComputeEnvironment",headingTag:"h3"}}),Wt=new x({props:{name:"class accelerate.utils.ComputeEnvironment",anchor:"accelerate.utils.ComputeEnvironment",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/accelerate/blob/vr_4071/src/accelerate/utils/dataclasses.py#L675"}}),Gt=new x({props:{name:"class accelerate.DistributedType",anchor:"accelerate.DistributedType",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/accelerate/blob/vr_4071/src/accelerate/utils/dataclasses.py#L602"}}),Jt=new x({props:{name:"class accelerate.utils.DynamoBackend",anchor:"accelerate.utils.DynamoBackend",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/accelerate/blob/vr_4071/src/accelerate/utils/dataclasses.py#L690"}}),Bt=new x({props:{name:"class accelerate.utils.LoggerType",anchor:"accelerate.utils.LoggerType",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/accelerate/blob/vr_4071/src/accelerate/utils/dataclasses.py#L743"}}),Xt=new x({props:{name:"class accelerate.utils.PrecisionType",anchor:"accelerate.utils.PrecisionType",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/accelerate/blob/vr_4071/src/accelerate/utils/dataclasses.py#L771"}}),Zt=new x({props:{name:"class accelerate.utils.RNGType",anchor:"accelerate.utils.RNGType",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/accelerate/blob/vr_4071/src/accelerate/utils/dataclasses.py#L787"}}),Yt=new x({props:{name:"class accelerate.utils.SageMakerDistributedType",anchor:"accelerate.utils.SageMakerDistributedType",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/accelerate/blob/vr_4071/src/accelerate/utils/dataclasses.py#L641"}}),Qt=new M({props:{title:"Kwargs",local:"accelerate.AutocastKwargs",headingTag:"h3"}}),ea=new x({props:{name:"class accelerate.AutocastKwargs",anchor:"accelerate.AutocastKwargs",parameters:[{name:"enabled",val:": bool = True"},{name:"cache_enabled",val:": typing.Optional[bool] = None"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/dataclasses.py#L115"}}),lt=new nt({props:{anchor:"accelerate.AutocastKwargs.example",$$slots:{default:[Bu]},$$scope:{ctx:k}}}),ta=new x({props:{name:"class accelerate.DistributedDataParallelKwargs",anchor:"accelerate.DistributedDataParallelKwargs",parameters:[{name:"dim",val:": int = 0"},{name:"broadcast_buffers",val:": bool = True"},{name:"bucket_cap_mb",val:": int = 25"},{name:"find_unused_parameters",val:": bool = False"},{name:"check_reduction",val:": bool = False"},{name:"gradient_as_bucket_view",val:": bool = False"},{name:"static_graph",val:": bool = False"},{name:"comm_hook",val:": DDPCommunicationHookType = <DDPCommunicationHookType.NO: 'no'>"},{name:"comm_wrapper",val:": typing.Literal[<DDPCommunicationHookType.NO: 'no'>, <DDPCommunicationHookType.FP16: 'fp16'>, <DDPCommunicationHookType.BF16: 'bf16'>] = <DDPCommunicationHookType.NO: 'no'>"},{name:"comm_state_option",val:": dict = <factory>"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/dataclasses.py#L157"}}),st=new en({props:{warning:!0,$$slots:{default:[Xu]},$$scope:{ctx:k}}}),it=new nt({props:{anchor:"accelerate.DistributedDataParallelKwargs.example",$$slots:{default:[Zu]},$$scope:{ctx:k}}}),aa=new x({props:{name:"class accelerate.utils.FP8RecipeKwargs",anchor:"accelerate.utils.FP8RecipeKwargs",parameters:[{name:"opt_level",val:": typing.Literal['O1', 'O2'] = None"},{name:"use_autocast_during_eval",val:": typing.Optional[bool] = None"},{name:"margin",val:": typing.Optional[int] = None"},{name:"interval",val:": typing.Optional[int] = None"},{name:"fp8_format",val:": typing.Literal['HYBRID', 'E4M3', 'E5M2'] = None"},{name:"amax_history_len",val:": typing.Optional[int] = None"},{name:"amax_compute_algo",val:": typing.Literal['max', 'most_recent'] = None"},{name:"override_linear_precision",val:": tuple = None"},{name:"use_mxfp8_block_scaling",val:": typing.Optional[bool] = None"},{name:"backend",val:": typing.Literal['MSAMP', 'TE'] = None"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/dataclasses.py#L457"}}),oa=new x({props:{name:"class accelerate.GradScalerKwargs",anchor:"accelerate.GradScalerKwargs",parameters:[{name:"init_scale",val:": float = 65536.0"},{name:"growth_factor",val:": float = 2.0"},{name:"backoff_factor",val:": float = 0.5"},{name:"growth_interval",val:": int = 2000"},{name:"enabled",val:": bool = True"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/dataclasses.py#L243"}}),ct=new en({props:{warning:!0,$$slots:{default:[Yu]},$$scope:{ctx:k}}}),dt=new nt({props:{anchor:"accelerate.GradScalerKwargs.example",$$slots:{default:[Qu]},$$scope:{ctx:k}}}),na=new x({props:{name:"class accelerate.InitProcessGroupKwargs",anchor:"accelerate.InitProcessGroupKwargs",parameters:[{name:"backend",val:": typing.Optional[str] = 'nccl'"},{name:"init_method",val:": typing.Optional[str] = None"},{name:"timeout",val:": typing.Optional[datetime.timedelta] = None"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/dataclasses.py#L275"}}),pt=new nt({props:{anchor:"accelerate.InitProcessGroupKwargs.example",$$slots:{default:[Ku]},$$scope:{ctx:k}}}),ra=new x({props:{name:"class accelerate.utils.KwargsHandler",anchor:"accelerate.utils.KwargsHandler",parameters:[],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/dataclasses.py#L70"}}),la=new x({props:{name:"to_kwargs",anchor:"accelerate.utils.KwargsHandler.to_kwargs",parameters:[],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/dataclasses.py#L78"}}),sa=new M({props:{title:"Plugins",local:"accelerate.DeepSpeedPlugin",headingTag:"h2"}}),ca=new x({props:{name:"class accelerate.DeepSpeedPlugin",anchor:"accelerate.DeepSpeedPlugin",parameters:[{name:"hf_ds_config",val:": typing.Any = None"},{name:"gradient_accumulation_steps",val:": int = None"},{name:"gradient_clipping",val:": float = None"},{name:"zero_stage",val:": int = None"},{name:"is_train_batch_min",val:": bool = True"},{name:"offload_optimizer_device",val:": str = None"},{name:"offload_param_device",val:": str = None"},{name:"offload_optimizer_nvme_path",val:": str = None"},{name:"offload_param_nvme_path",val:": str = None"},{name:"zero3_init_flag",val:": bool = None"},{name:"zero3_save_16bit_model",val:": bool = None"},{name:"transformer_moe_cls_names",val:": str = None"},{name:"enable_msamp",val:": bool = None"},{name:"msamp_opt_level",val:": typing.Optional[typing.Literal['O1', 'O2']] = None"}],parametersDescription:[{anchor:"accelerate.DeepSpeedPlugin.hf_ds_config",description:`<strong>hf_ds_config</strong> (<code>Any</code>, defaults to <code>None</code>) — | |
| Path to DeepSpeed config file or dict or an object of class <code>accelerate.utils.deepspeed.HfDeepSpeedConfig</code>.`,name:"hf_ds_config"},{anchor:"accelerate.DeepSpeedPlugin.gradient_accumulation_steps",description:`<strong>gradient_accumulation_steps</strong> (<code>int</code>, defaults to <code>None</code>) — | |
| Number of steps to accumulate gradients before updating optimizer states. If not set, will use the value | |
| from the <code>Accelerator</code> directly.`,name:"gradient_accumulation_steps"},{anchor:"accelerate.DeepSpeedPlugin.gradient_clipping",description:`<strong>gradient_clipping</strong> (<code>float</code>, defaults to <code>None</code>) — | |
| Enable gradient clipping with value.`,name:"gradient_clipping"},{anchor:"accelerate.DeepSpeedPlugin.zero_stage",description:`<strong>zero_stage</strong> (<code>int</code>, defaults to <code>None</code>) — | |
| Possible options are 0, 1, 2, 3. Default will be taken from environment variable.`,name:"zero_stage"},{anchor:"accelerate.DeepSpeedPlugin.is_train_batch_min",description:`<strong>is_train_batch_min</strong> (<code>bool</code>, defaults to <code>True</code>) — | |
| If both train & eval dataloaders are specified, this will decide the <code>train_batch_size</code>.`,name:"is_train_batch_min"},{anchor:"accelerate.DeepSpeedPlugin.offload_optimizer_device",description:`<strong>offload_optimizer_device</strong> (<code>str</code>, defaults to <code>None</code>) — | |
| Possible options are none|cpu|nvme. Only applicable with ZeRO Stages 2 and 3.`,name:"offload_optimizer_device"},{anchor:"accelerate.DeepSpeedPlugin.offload_param_device",description:`<strong>offload_param_device</strong> (<code>str</code>, defaults to <code>None</code>) — | |
| Possible options are none|cpu|nvme. Only applicable with ZeRO Stage 3.`,name:"offload_param_device"},{anchor:"accelerate.DeepSpeedPlugin.offload_optimizer_nvme_path",description:`<strong>offload_optimizer_nvme_path</strong> (<code>str</code>, defaults to <code>None</code>) — | |
| Possible options are /nvme|/local_nvme. Only applicable with ZeRO Stage 3.`,name:"offload_optimizer_nvme_path"},{anchor:"accelerate.DeepSpeedPlugin.offload_param_nvme_path",description:`<strong>offload_param_nvme_path</strong> (<code>str</code>, defaults to <code>None</code>) — | |
| Possible options are /nvme|/local_nvme. Only applicable with ZeRO Stage 3.`,name:"offload_param_nvme_path"},{anchor:"accelerate.DeepSpeedPlugin.zero3_init_flag",description:`<strong>zero3_init_flag</strong> (<code>bool</code>, defaults to <code>None</code>) — | |
| Flag to indicate whether to save 16-bit model. Only applicable with ZeRO Stage-3.`,name:"zero3_init_flag"},{anchor:"accelerate.DeepSpeedPlugin.zero3_save_16bit_model",description:`<strong>zero3_save_16bit_model</strong> (<code>bool</code>, defaults to <code>None</code>) — | |
| Flag to indicate whether to save 16-bit model. Only applicable with ZeRO Stage-3.`,name:"zero3_save_16bit_model"},{anchor:"accelerate.DeepSpeedPlugin.transformer_moe_cls_names",description:`<strong>transformer_moe_cls_names</strong> (<code>str</code>, defaults to <code>None</code>) — | |
| Comma-separated list of Transformers MoE layer class names (case-sensitive). For example, | |
| <code>MixtralSparseMoeBlock</code>, <code>Qwen2MoeSparseMoeBlock</code>, <code>JetMoEAttention</code>, <code>JetMoEBlock</code>, etc.`,name:"transformer_moe_cls_names"},{anchor:"accelerate.DeepSpeedPlugin.enable_msamp",description:`<strong>enable_msamp</strong> (<code>bool</code>, defaults to <code>None</code>) — | |
| Flag to indicate whether to enable MS-AMP backend for FP8 training.`,name:"enable_msamp"},{anchor:"accelerate.DeepSpeedPlugin.msasmp_opt_level",description:`<strong>msasmp_opt_level</strong> (<code>Optional[Literal["O1", "O2"]]</code>, defaults to <code>None</code>) — | |
| Optimization level for MS-AMP (defaults to ‘O1’). Only applicable if <code>enable_msamp</code> is True. Should be one | |
| of [‘O1’ or ‘O2’].`,name:"msasmp_opt_level"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/dataclasses.py#L1120"}}),da=new x({props:{name:"deepspeed_config_process",anchor:"accelerate.DeepSpeedPlugin.deepspeed_config_process",parameters:[{name:"prefix",val:" = ''"},{name:"mismatches",val:" = None"},{name:"config",val:" = None"},{name:"must_match",val:" = True"},{name:"**kwargs",val:""}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/dataclasses.py#L1390"}}),pa=new x({props:{name:"select",anchor:"accelerate.DeepSpeedPlugin.select",parameters:[{name:"_from_accelerator_state",val:": bool = False"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/dataclasses.py#L1552"}}),ma=new x({props:{name:"class accelerate.FullyShardedDataParallelPlugin",anchor:"accelerate.FullyShardedDataParallelPlugin",parameters:[{name:"fsdp_version",val:": int = None"},{name:"sharding_strategy",val:": typing.Union[str, ForwardRef('torch.distributed.fsdp.ShardingStrategy')] = None"},{name:"reshard_after_forward",val:": typing.Union[str, ForwardRef('torch.distributed.fsdp.ShardingStrategy'), bool] = None"},{name:"backward_prefetch",val:": typing.Union[str, ForwardRef('torch.distributed.fsdp.BackwardPrefetch'), NoneType] = None"},{name:"mixed_precision_policy",val:": typing.Union[dict, str, ForwardRef('torch.distributed.fsdp.MixedPrecision'), ForwardRef('torch.distributed.fsdp.MixedPrecisionPolicy'), NoneType] = None"},{name:"auto_wrap_policy",val:": typing.Union[typing.Callable, typing.Literal['transformer_based_wrap', 'size_based_wrap', 'no_wrap'], NoneType] = None"},{name:"cpu_offload",val:": typing.Union[bool, ForwardRef('torch.distributed.fsdp.CPUOffload'), ForwardRef('torch.distributed.fsdp.CPUOffloadPolicy')] = None"},{name:"ignored_modules",val:": typing.Union[collections.abc.Iterable[torch.nn.modules.module.Module], str, NoneType] = None"},{name:"state_dict_type",val:": typing.Union[str, ForwardRef('torch.distributed.fsdp.StateDictType')] = None"},{name:"state_dict_config",val:": typing.Union[ForwardRef('torch.distributed.fsdp.FullStateDictConfig'), ForwardRef('torch.distributed.fsdp.ShardedStateDictConfig'), NoneType] = None"},{name:"optim_state_dict_config",val:": typing.Union[ForwardRef('torch.distributed.fsdp.FullOptimStateDictConfig'), ForwardRef('torch.distributed.fsdp.ShardedOptimStateDictConfig'), NoneType] = None"},{name:"limit_all_gathers",val:": bool = True"},{name:"use_orig_params",val:": typing.Optional[bool] = None"},{name:"param_init_fn",val:": typing.Optional[typing.Callable[[torch.nn.modules.module.Module], NoneType]] = None"},{name:"sync_module_states",val:": typing.Optional[bool] = None"},{name:"forward_prefetch",val:": bool = None"},{name:"activation_checkpointing",val:": bool = None"},{name:"cpu_ram_efficient_loading",val:": bool = None"},{name:"transformer_cls_names_to_wrap",val:": typing.Optional[list[str]] = None"},{name:"min_num_params",val:": typing.Optional[int] = None"}],parametersDescription:[{anchor:"accelerate.FullyShardedDataParallelPlugin.fsdp_version",description:`<strong>fsdp_version</strong> (<code>int</code>, defaults to <code>1</code>) — | |
| The version of FSDP to use. Defaults to 1. If set to 2, launcher expects the config to be converted to | |
| FSDP2 format.`,name:"fsdp_version"},{anchor:"accelerate.FullyShardedDataParallelPlugin.sharding_strategy",description:`<strong>sharding_strategy</strong> (<code>Union[str, torch.distributed.fsdp.ShardingStrategy]</code>, defaults to <code>'FULL_SHARD'</code>) — | |
| Sharding strategy to use. Should be either a <code>str</code> or an instance of | |
| <code>torch.distributed.fsdp.fully_sharded_data_parallel.ShardingStrategy</code>. Is deprecated in favor of | |
| <code>reshard_after_forward</code>.`,name:"sharding_strategy"},{anchor:"accelerate.FullyShardedDataParallelPlugin.reshard_after_forward",description:`<strong>reshard_after_forward</strong> (<code>Union[str, torch.distributed.fsdp.ShardingStrategy, bool]</code>, defaults to <code>'FULL_SHARD'</code> for <code>fsdp_version=1</code> and <code>True</code> for <code>fsdp_version=2</code>) — | |
| Sharding strategy to use. Should be a bool if <code>fsdp_version</code> is set to 2 else a <code>str</code> or an instance of | |
| <code>torch.distributed.fsdp.fully_sharded_data_parallel.ShardingStrategy</code>.`,name:"reshard_after_forward"},{anchor:"accelerate.FullyShardedDataParallelPlugin.backward_prefetch",description:`<strong>backward_prefetch</strong> (<code>Union[str, torch.distributed.fsdp.BackwardPrefetch]</code>, defaults to <code>'NO_PREFETCH'</code>) — | |
| Backward prefetch strategy to use. Should be either a <code>str</code> or an instance of | |
| <code>torch.distributed.fsdp.fully_sharded_data_parallel.BackwardPrefetch</code>.`,name:"backward_prefetch"},{anchor:"accelerate.FullyShardedDataParallelPlugin.mixed_precision_policy",description:`<strong>mixed_precision_policy</strong> (<code>Optional[Union[dict, str, torch.distributed.fsdp.MixedPrecision, torch.distributed.fsdp.MixedPrecisionPolicy]]</code>, defaults to <code>None</code>) — | |
| A config to enable mixed precision training with FullyShardedDataParallel. If passing in a <code>dict</code>, it | |
| should have the following keys: <code>param_dtype</code>, <code>reduce_dtype</code>, and <code>buffer_dtype</code>, can be an instance of | |
| <code>torch.distributed.fsdp.MixedPrecisionPolicy</code> if <code>fsdp_version</code> is set to 2. If passing in a <code>str</code>, it | |
| should be one of the following values: fp8, fp16, bf16, fp32, and used to set <code>param_dtype</code>, | |
| <code>reduce_dtype</code>, and <code>buffer_dtype</code>.`,name:"mixed_precision_policy"},{anchor:"accelerate.FullyShardedDataParallelPlugin.auto_wrap_policy",description:"<strong>auto_wrap_policy</strong> (<code>Optional(Union[Callable, Literal["transformer_based_wrap", "size_based_wrap", "no_wrap"]]), defaults to </code>NO_WRAP<code>) -- A callable or string specifying a policy to recursively wrap layers with FSDP. If a string, it must be one of </code>transformer_based_wrap<code>, </code>size_based_wrap<code>, or </code>no_wrap<code>. See </code>torch.distributed.fsdp.wrap.size_based_wrap_policy` for a direction on what it should look like.",name:"auto_wrap_policy"},{anchor:"accelerate.FullyShardedDataParallelPlugin.cpu_offload",description:`<strong>cpu_offload</strong> (<code>Union[bool, torch.distributed.fsdp.CPUOffload, torch.distributed.fsdp.CPUOffloadPolicy]</code>, defaults to <code>False</code>) — | |
| Whether to offload parameters to CPU. Should be either a <code>bool</code> or an instance of | |
| <code>torch.distributed.fsdp.fully_sharded_data_parallel.CPUOffload</code> or | |
| <code>torch.distributed.fsdp.fully_sharded_data_parallel.CPUOffloadPolicy</code> if <code>fsdp_version</code> is set to 2.`,name:"cpu_offload"},{anchor:"accelerate.FullyShardedDataParallelPlugin.ignored_modules",description:`<strong>ignored_modules</strong> (<code>Optional[Union[Iterable[torch.nn.Module], str]]</code>, defaults to <code>None</code>) — | |
| A list of modules to ignore when wrapping with FSDP. When passing a string, will match the modules by name | |
| using regex fullmatch. If <code>fsdp_version</code> is set to 2, the modules are converted to parameters and used.`,name:"ignored_modules"},{anchor:"accelerate.FullyShardedDataParallelPlugin.state_dict_type",description:`<strong>state_dict_type</strong> (<code>Union[str, torch.distributed.fsdp.StateDictType]</code>, defaults to <code>'FULL_STATE_DICT'</code>) — | |
| State dict type to use. If a string, it must be one of <code>full_state_dict</code>, <code>local_state_dict</code>, or | |
| <code>sharded_state_dict</code>.`,name:"state_dict_type"},{anchor:"accelerate.FullyShardedDataParallelPlugin.state_dict_config",description:`<strong>state_dict_config</strong> (<code>Optional[Union[torch.distributed.fsdp.FullStateDictConfig, torch.distributed.fsdp.ShardedStateDictConfig]</code>, defaults to <code>None</code>) — | |
| State dict config to use. Is determined based on the <code>state_dict_type</code> if not passed in.`,name:"state_dict_config"},{anchor:"accelerate.FullyShardedDataParallelPlugin.optim_state_dict_config",description:`<strong>optim_state_dict_config</strong> (<code>Optional[Union[torch.distributed.fsdp.FullOptimStateDictConfig, torch.distributed.fsdp.ShardedOptimStateDictConfig]</code>, defaults to <code>None</code>) — | |
| Optim state dict config to use. Is determined based on the <code>state_dict_type</code> if not passed in.`,name:"optim_state_dict_config"},{anchor:"accelerate.FullyShardedDataParallelPlugin.limit_all_gathers",description:`<strong>limit_all_gathers</strong> (<code>bool</code>, defaults to <code>True</code>) — | |
| Whether to have FSDP explicitly synchronizes the CPU thread to prevent too many in-flight all-gathers. This | |
| bool only affects the sharded strategies that schedule all-gathers. Enabling this can help lower the number | |
| of CUDA malloc retries.`,name:"limit_all_gathers"},{anchor:"accelerate.FullyShardedDataParallelPlugin.use_orig_params",description:`<strong>use_orig_params</strong> (<code>bool</code>, defaults to <code>False</code>) — | |
| Whether to use the original parameters for the optimizer.`,name:"use_orig_params"},{anchor:"accelerate.FullyShardedDataParallelPlugin.param_init_fn",description:`<strong>param_init_fn</strong> (<code>Optional[Callable[[torch.nn.Module], None]</code>, defaults to <code>None</code>) — | |
| A <code>Callable[torch.nn.Module] -> None</code> that specifies how modules that are currently on the meta device | |
| should be initialized onto an actual device. Only applicable when <code>sync_module_states</code> is <code>True</code>. By | |
| default is a <code>lambda</code> which calls <code>to_empty</code> on the module.`,name:"param_init_fn"},{anchor:"accelerate.FullyShardedDataParallelPlugin.sync_module_states",description:`<strong>sync_module_states</strong> (<code>bool</code>, defaults to <code>False</code>) — | |
| Whether each individually wrapped FSDP unit should broadcast module parameters from rank 0 to ensure they | |
| are the same across all ranks after initialization. Defaults to <code>False</code> unless <code>cpu_ram_efficient_loading</code> | |
| is <code>True</code>, then will be forcibly enabled.`,name:"sync_module_states"},{anchor:"accelerate.FullyShardedDataParallelPlugin.forward_prefetch",description:`<strong>forward_prefetch</strong> (<code>bool</code>, defaults to <code>False</code>) — | |
| Whether to have FSDP explicitly prefetches the next upcoming all-gather while executing in the forward | |
| pass. only use with Static graphs.`,name:"forward_prefetch"},{anchor:"accelerate.FullyShardedDataParallelPlugin.activation_checkpointing",description:`<strong>activation_checkpointing</strong> (<code>bool</code>, defaults to <code>False</code>) — | |
| A technique to reduce memory usage by clearing activations of certain layers and recomputing them during a | |
| backward pass. Effectively, this trades extra computation time for reduced memory usage.`,name:"activation_checkpointing"},{anchor:"accelerate.FullyShardedDataParallelPlugin.cpu_ram_efficient_loading",description:`<strong>cpu_ram_efficient_loading</strong> (<code>bool</code>, defaults to <code>None</code>) — | |
| If True, only the first process loads the pretrained model checkpoint while all other processes have empty | |
| weights. Only applicable for Transformers. When using this, <code>sync_module_states</code> needs to be <code>True</code>.`,name:"cpu_ram_efficient_loading"},{anchor:"accelerate.FullyShardedDataParallelPlugin.transformer_cls_names_to_wrap",description:`<strong>transformer_cls_names_to_wrap</strong> (<code>Optional[List[str]]</code>, defaults to <code>None</code>) — | |
| A list of transformer layer class names to wrap. Only applicable when <code>auto_wrap_policy</code> is | |
| <code>transformer_based_wrap</code>.`,name:"transformer_cls_names_to_wrap"},{anchor:"accelerate.FullyShardedDataParallelPlugin.min_num_params",description:`<strong>min_num_params</strong> (<code>Optional[int]</code>, defaults to <code>None</code>) — | |
| The minimum number of parameters a module must have to be wrapped. Only applicable when <code>auto_wrap_policy</code> | |
| is <code>size_based_wrap</code>.`,name:"min_num_params"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/dataclasses.py#L1584"}}),ua=new x({props:{name:"set_auto_wrap_policy",anchor:"accelerate.FullyShardedDataParallelPlugin.set_auto_wrap_policy",parameters:[{name:"model",val:""}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/dataclasses.py#L2056"}}),ga=new x({props:{name:"set_mixed_precision",anchor:"accelerate.FullyShardedDataParallelPlugin.set_mixed_precision",parameters:[{name:"mixed_precision",val:""},{name:"buffer_autocast",val:" = False"},{name:"override",val:" = False"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/dataclasses.py#L2090"}}),ha=new x({props:{name:"set_state_dict_type",anchor:"accelerate.FullyShardedDataParallelPlugin.set_state_dict_type",parameters:[{name:"state_dict_type",val:" = None"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/dataclasses.py#L2011"}}),fa=new x({props:{name:"validate_mixed_precision_policy",anchor:"accelerate.FullyShardedDataParallelPlugin.validate_mixed_precision_policy",parameters:[],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/dataclasses.py#L2142"}}),_a=new x({props:{name:"class accelerate.utils.GradientAccumulationPlugin",anchor:"accelerate.utils.GradientAccumulationPlugin",parameters:[{name:"num_steps",val:": int = None"},{name:"adjust_scheduler",val:": bool = True"},{name:"sync_with_dataloader",val:": bool = True"},{name:"sync_each_batch",val:": bool = False"}],parametersDescription:[{anchor:"accelerate.utils.GradientAccumulationPlugin.num_steps",description:`<strong>num_steps</strong> (<code>int</code>) — | |
| The number of steps to accumulate gradients for.`,name:"num_steps"},{anchor:"accelerate.utils.GradientAccumulationPlugin.adjust_scheduler",description:`<strong>adjust_scheduler</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) — | |
| Whether to adjust the scheduler steps to account for the number of steps being accumulated. Should be | |
| <code>True</code> if the used scheduler was not adjusted for gradient accumulation.`,name:"adjust_scheduler"},{anchor:"accelerate.utils.GradientAccumulationPlugin.sync_with_dataloader",description:`<strong>sync_with_dataloader</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) — | |
| Whether to synchronize setting the gradients when at the end of the dataloader.`,name:"sync_with_dataloader"},{anchor:"accelerate.utils.GradientAccumulationPlugin.sync_each_batch",description:`<strong>sync_each_batch</strong> (<code>bool</code>, <em>optional</em>) — | |
| Whether to synchronize setting the gradients at each data batch. Setting to <code>True</code> may reduce memory | |
| requirements when using gradient accumulation with distributed training, at expense of speed.`,name:"sync_each_batch"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/dataclasses.py#L979"}}),vt=new nt({props:{anchor:"accelerate.utils.GradientAccumulationPlugin.example",$$slots:{default:[eg]},$$scope:{ctx:k}}}),ba=new x({props:{name:"class accelerate.utils.MegatronLMPlugin",anchor:"accelerate.utils.MegatronLMPlugin",parameters:[{name:"tp_degree",val:": int = None"},{name:"pp_degree",val:": int = None"},{name:"use_custom_fsdp",val:": bool = None"},{name:"overlap_cpu_optimizer_d2h_h2d",val:": bool = None"},{name:"no_load_optim",val:": bool = None"},{name:"eod_mask_loss",val:": bool = None"},{name:"no_save_optim",val:": bool = None"},{name:"optimizer_cpu_offload",val:": bool = None"},{name:"use_precision_aware_optimizer",val:": bool = None"},{name:"decoder_last_pipeline_num_layers",val:": int = None"},{name:"recompute_granularity",val:": str = None"},{name:"recompute_method",val:": str = None"},{name:"recompute_num_layers",val:": int = None"},{name:"attention_backend",val:": bool = None"},{name:"expert_model_parallel_size",val:": int = None"},{name:"context_parallel_size",val:": int = None"},{name:"attention_dropout",val:": float = None"},{name:"hidden_dropout",val:": float = None"},{name:"attention_softmax_in_fp32",val:": bool = None"},{name:"expert_tensor_parallel_size",val:": int = None"},{name:"calculate_per_token_loss",val:": bool = None"},{name:"use_rotary_position_embeddings",val:": bool = None"},{name:"num_micro_batches",val:": int = None"},{name:"gradient_clipping",val:": float = None"},{name:"sequence_parallelism",val:": bool = None"},{name:"recompute_activations",val:": bool = None"},{name:"use_distributed_optimizer",val:": bool = None"},{name:"pipeline_model_parallel_split_rank",val:": int = None"},{name:"num_layers_per_virtual_pipeline_stage",val:": int = None"},{name:"is_train_batch_min",val:": str = True"},{name:"train_iters",val:": int = None"},{name:"train_samples",val:": int = None"},{name:"weight_decay_incr_style",val:": str = 'constant'"},{name:"start_weight_decay",val:": float = None"},{name:"end_weight_decay",val:": float = None"},{name:"lr_decay_style",val:": str = 'linear'"},{name:"lr_decay_iters",val:": int = None"},{name:"lr_decay_samples",val:": int = None"},{name:"lr_warmup_iters",val:": int = None"},{name:"lr_warmup_samples",val:": int = None"},{name:"lr_warmup_fraction",val:": float = None"},{name:"min_lr",val:": float = 0"},{name:"consumed_samples",val:": list = None"},{name:"no_wd_decay_cond",val:": typing.Optional[typing.Callable] = None"},{name:"scale_lr_cond",val:": typing.Optional[typing.Callable] = None"},{name:"lr_mult",val:": float = 1.0"},{name:"megatron_dataset_flag",val:": bool = False"},{name:"seq_length",val:": int = None"},{name:"encoder_seq_length",val:": int = None"},{name:"decoder_seq_length",val:": int = None"},{name:"tensorboard_dir",val:": str = None"},{name:"set_all_logging_options",val:": bool = False"},{name:"eval_iters",val:": int = 100"},{name:"eval_interval",val:": int = 1000"},{name:"return_logits",val:": bool = False"},{name:"custom_train_step_class",val:": typing.Optional[typing.Any] = None"},{name:"custom_train_step_kwargs",val:": typing.Optional[dict[str, typing.Any]] = None"},{name:"custom_model_provider_function",val:": typing.Optional[typing.Callable] = None"},{name:"custom_prepare_model_function",val:": typing.Optional[typing.Callable] = None"},{name:"custom_megatron_datasets_provider_function",val:": typing.Optional[typing.Callable] = None"},{name:"custom_get_batch_function",val:": typing.Optional[typing.Callable] = None"},{name:"custom_loss_function",val:": typing.Optional[typing.Callable] = None"},{name:"other_megatron_args",val:": typing.Optional[dict[str, typing.Any]] = None"}],parametersDescription:[{anchor:"accelerate.utils.MegatronLMPlugin.tp_degree",description:`<strong>tp_degree</strong> (<code>int</code>, defaults to <code>None</code>) — | |
| Tensor parallelism degree.`,name:"tp_degree"},{anchor:"accelerate.utils.MegatronLMPlugin.pp_degree",description:`<strong>pp_degree</strong> (<code>int</code>, defaults to <code>None</code>) — | |
| Pipeline parallelism degree.`,name:"pp_degree"},{anchor:"accelerate.utils.MegatronLMPlugin.num_micro_batches",description:`<strong>num_micro_batches</strong> (<code>int</code>, defaults to <code>None</code>) — | |
| Number of micro-batches.`,name:"num_micro_batches"},{anchor:"accelerate.utils.MegatronLMPlugin.gradient_clipping",description:`<strong>gradient_clipping</strong> (<code>float</code>, defaults to <code>None</code>) — | |
| Gradient clipping value based on global L2 Norm (0 to disable).`,name:"gradient_clipping"},{anchor:"accelerate.utils.MegatronLMPlugin.sequence_parallelism",description:`<strong>sequence_parallelism</strong> (<code>bool</code>, defaults to <code>None</code>) — | |
| Enable sequence parallelism.`,name:"sequence_parallelism"},{anchor:"accelerate.utils.MegatronLMPlugin.recompute_activations",description:`<strong>recompute_activations</strong> (<code>bool</code>, defaults to <code>None</code>) — | |
| Enable selective activation recomputation.`,name:"recompute_activations"},{anchor:"accelerate.utils.MegatronLMPlugin.use_distributed_optimizr",description:`<strong>use_distributed_optimizr</strong> (<code>bool</code>, defaults to <code>None</code>) — | |
| Enable distributed optimizer.`,name:"use_distributed_optimizr"},{anchor:"accelerate.utils.MegatronLMPlugin.pipeline_model_parallel_split_rank",description:`<strong>pipeline_model_parallel_split_rank</strong> (<code>int</code>, defaults to <code>None</code>) — | |
| Rank where encoder and decoder should be split.`,name:"pipeline_model_parallel_split_rank"},{anchor:"accelerate.utils.MegatronLMPlugin.num_layers_per_virtual_pipeline_stage",description:`<strong>num_layers_per_virtual_pipeline_stage</strong> (<code>int</code>, defaults to <code>None</code>) — | |
| Number of layers per virtual pipeline stage.`,name:"num_layers_per_virtual_pipeline_stage"},{anchor:"accelerate.utils.MegatronLMPlugin.is_train_batch_min",description:`<strong>is_train_batch_min</strong> (<code>str</code>, defaults to <code>True</code>) — | |
| If both tran & eval dataloaders are specified, this will decide the <code>micro_batch_size</code>.`,name:"is_train_batch_min"},{anchor:"accelerate.utils.MegatronLMPlugin.train_iters",description:`<strong>train_iters</strong> (<code>int</code>, defaults to <code>None</code>) — | |
| Total number of samples to train over all training runs. Note that either train-iters or train-samples | |
| should be provided when using <code>MegatronLMDummyScheduler</code>.`,name:"train_iters"},{anchor:"accelerate.utils.MegatronLMPlugin.train_samples",description:`<strong>train_samples</strong> (<code>int</code>, defaults to <code>None</code>) — | |
| Total number of samples to train over all training runs. Note that either train-iters or train-samples | |
| should be provided when using <code>MegatronLMDummyScheduler</code>.`,name:"train_samples"},{anchor:"accelerate.utils.MegatronLMPlugin.weight_decay_incr_style",description:`<strong>weight_decay_incr_style</strong> (<code>str</code>, defaults to <code>'constant'</code>) — | |
| Weight decay increment function. choices=[“constant”, “linear”, “cosine”].`,name:"weight_decay_incr_style"},{anchor:"accelerate.utils.MegatronLMPlugin.start_weight_decay",description:`<strong>start_weight_decay</strong> (<code>float</code>, defaults to <code>None</code>) — | |
| Initial weight decay coefficient for L2 regularization.`,name:"start_weight_decay"},{anchor:"accelerate.utils.MegatronLMPlugin.end_weight_decay",description:`<strong>end_weight_decay</strong> (<code>float</code>, defaults to <code>None</code>) — | |
| End of run weight decay coefficient for L2 regularization.`,name:"end_weight_decay"},{anchor:"accelerate.utils.MegatronLMPlugin.lr_decay_style",description:`<strong>lr_decay_style</strong> (<code>str</code>, defaults to <code>'linear'</code>) — | |
| Learning rate decay function. choices=[‘constant’, ‘linear’, ‘cosine’].`,name:"lr_decay_style"},{anchor:"accelerate.utils.MegatronLMPlugin.lr_decay_iters",description:`<strong>lr_decay_iters</strong> (<code>int</code>, defaults to <code>None</code>) — | |
| Number of iterations for learning rate decay. If None defaults to <code>train_iters</code>.`,name:"lr_decay_iters"},{anchor:"accelerate.utils.MegatronLMPlugin.lr_decay_samples",description:`<strong>lr_decay_samples</strong> (<code>int</code>, defaults to <code>None</code>) — | |
| Number of samples for learning rate decay. If None defaults to <code>train_samples</code>.`,name:"lr_decay_samples"},{anchor:"accelerate.utils.MegatronLMPlugin.lr_warmup_iters",description:`<strong>lr_warmup_iters</strong> (<code>int</code>, defaults to <code>None</code>) — | |
| Number of iterations to linearly warmup learning rate over.`,name:"lr_warmup_iters"},{anchor:"accelerate.utils.MegatronLMPlugin.lr_warmup_samples",description:`<strong>lr_warmup_samples</strong> (<code>int</code>, defaults to <code>None</code>) — | |
| Number of samples to linearly warmup learning rate over.`,name:"lr_warmup_samples"},{anchor:"accelerate.utils.MegatronLMPlugin.lr_warmup_fraction",description:`<strong>lr_warmup_fraction</strong> (<code>float</code>, defaults to <code>None</code>) — | |
| Fraction of lr-warmup-(iters/samples) to linearly warmup learning rate over.`,name:"lr_warmup_fraction"},{anchor:"accelerate.utils.MegatronLMPlugin.min_lr",description:`<strong>min_lr</strong> (<code>float</code>, defaults to <code>0</code>) — | |
| Minimum value for learning rate. The scheduler clip values below this threshold.`,name:"min_lr"},{anchor:"accelerate.utils.MegatronLMPlugin.consumed_samples",description:`<strong>consumed_samples</strong> (<code>List</code>, defaults to <code>None</code>) — | |
| Number of samples consumed in the same order as the dataloaders to <code>accelerator.prepare</code> call.`,name:"consumed_samples"},{anchor:"accelerate.utils.MegatronLMPlugin.no_wd_decay_cond",description:`<strong>no_wd_decay_cond</strong> (<code>Optional</code>, defaults to <code>None</code>) — | |
| Condition to disable weight decay.`,name:"no_wd_decay_cond"},{anchor:"accelerate.utils.MegatronLMPlugin.scale_lr_cond",description:`<strong>scale_lr_cond</strong> (<code>Optional</code>, defaults to <code>None</code>) — | |
| Condition to scale learning rate.`,name:"scale_lr_cond"},{anchor:"accelerate.utils.MegatronLMPlugin.lr_mult",description:`<strong>lr_mult</strong> (<code>float</code>, defaults to <code>1.0</code>) — | |
| Learning rate multiplier.`,name:"lr_mult"},{anchor:"accelerate.utils.MegatronLMPlugin.megatron_dataset_flag",description:`<strong>megatron_dataset_flag</strong> (<code>bool</code>, defaults to <code>False</code>) — | |
| Whether the format of dataset follows Megatron-LM Indexed/Cached/MemoryMapped format.`,name:"megatron_dataset_flag"},{anchor:"accelerate.utils.MegatronLMPlugin.seq_length",description:`<strong>seq_length</strong> (<code>int</code>, defaults to <code>None</code>) — | |
| Maximum sequence length to process.`,name:"seq_length"},{anchor:"accelerate.utils.MegatronLMPlugin.encoder_seq_length",description:`<strong>encoder_seq_length</strong> (<code>int</code>, defaults to <code>None</code>) — | |
| Maximum sequence length to process for the encoder.`,name:"encoder_seq_length"},{anchor:"accelerate.utils.MegatronLMPlugin.decoder_seq_length",description:`<strong>decoder_seq_length</strong> (<code>int</code>, defaults to <code>None</code>) — | |
| Maximum sequence length to process for the decoder.`,name:"decoder_seq_length"},{anchor:"accelerate.utils.MegatronLMPlugin.tensorboard_dir",description:`<strong>tensorboard_dir</strong> (<code>str</code>, defaults to <code>None</code>) — | |
| Path to save tensorboard logs.`,name:"tensorboard_dir"},{anchor:"accelerate.utils.MegatronLMPlugin.set_all_logging_options",description:`<strong>set_all_logging_options</strong> (<code>bool</code>, defaults to <code>False</code>) — | |
| Whether to set all logging options.`,name:"set_all_logging_options"},{anchor:"accelerate.utils.MegatronLMPlugin.eval_iters",description:`<strong>eval_iters</strong> (<code>int</code>, defaults to <code>100</code>) — | |
| Number of iterations to run for evaluation validation/test for.`,name:"eval_iters"},{anchor:"accelerate.utils.MegatronLMPlugin.eval_interval",description:`<strong>eval_interval</strong> (<code>int</code>, defaults to <code>1000</code>) — | |
| Interval between running evaluation on validation set.`,name:"eval_interval"},{anchor:"accelerate.utils.MegatronLMPlugin.return_logits",description:`<strong>return_logits</strong> (<code>bool</code>, defaults to <code>False</code>) — | |
| Whether to return logits from the model.`,name:"return_logits"},{anchor:"accelerate.utils.MegatronLMPlugin.custom_train_step_class",description:`<strong>custom_train_step_class</strong> (<code>Optional</code>, defaults to <code>None</code>) — | |
| Custom train step class.`,name:"custom_train_step_class"},{anchor:"accelerate.utils.MegatronLMPlugin.custom_train_step_kwargs",description:`<strong>custom_train_step_kwargs</strong> (<code>Optional</code>, defaults to <code>None</code>) — | |
| Custom train step kwargs.`,name:"custom_train_step_kwargs"},{anchor:"accelerate.utils.MegatronLMPlugin.custom_model_provider_function",description:`<strong>custom_model_provider_function</strong> (<code>Optional</code>, defaults to <code>None</code>) — | |
| Custom model provider function.`,name:"custom_model_provider_function"},{anchor:"accelerate.utils.MegatronLMPlugin.custom_prepare_model_function",description:`<strong>custom_prepare_model_function</strong> (<code>Optional</code>, defaults to <code>None</code>) — | |
| Custom prepare model function.`,name:"custom_prepare_model_function"},{anchor:"accelerate.utils.MegatronLMPlugin.custom_megatron_datasets_provider_function",description:`<strong>custom_megatron_datasets_provider_function</strong> (<code>Optional</code>, defaults to <code>None</code>) — | |
| Custom megatron train_valid_test datasets provider function.`,name:"custom_megatron_datasets_provider_function"},{anchor:"accelerate.utils.MegatronLMPlugin.custom_get_batch_function",description:`<strong>custom_get_batch_function</strong> (<code>Optional</code>, defaults to <code>None</code>) — | |
| Custom get batch function.`,name:"custom_get_batch_function"},{anchor:"accelerate.utils.MegatronLMPlugin.custom_loss_function",description:`<strong>custom_loss_function</strong> (<code>Optional</code>, defaults to <code>None</code>) — | |
| Custom loss function.`,name:"custom_loss_function"},{anchor:"accelerate.utils.MegatronLMPlugin.other_megatron_args",description:`<strong>other_megatron_args</strong> (<code>Optional</code>, defaults to <code>None</code>) — | |
| Other Megatron-LM arguments. Please refer Megatron-LM.`,name:"other_megatron_args"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/dataclasses.py#L2316"}}),va=new x({props:{name:"class accelerate.utils.TorchDynamoPlugin",anchor:"accelerate.utils.TorchDynamoPlugin",parameters:[{name:"backend",val:": DynamoBackend = None"},{name:"mode",val:": str = None"},{name:"fullgraph",val:": bool = None"},{name:"dynamic",val:": bool = None"},{name:"options",val:": typing.Any = None"},{name:"disable",val:": bool = False"},{name:"use_regional_compilation",val:": bool = None"}],parametersDescription:[{anchor:"accelerate.utils.TorchDynamoPlugin.backend",description:`<strong>backend</strong> (<code>DynamoBackend</code>, defaults to <code>None</code>) — | |
| A valid Dynamo backend. See <a href="https://pytorch.org/docs/stable/torch.compiler.html" rel="nofollow">https://pytorch.org/docs/stable/torch.compiler.html</a> for more details.`,name:"backend"},{anchor:"accelerate.utils.TorchDynamoPlugin.mode",description:`<strong>mode</strong> (<code>str</code>, defaults to <code>None</code>) — | |
| Possible options are ‘default’, ‘reduce-overhead’ or ‘max-autotune’.`,name:"mode"},{anchor:"accelerate.utils.TorchDynamoPlugin.fullgraph",description:`<strong>fullgraph</strong> (<code>bool</code>, defaults to <code>None</code>) — | |
| Whether it is ok to break model into several subgraphs.`,name:"fullgraph"},{anchor:"accelerate.utils.TorchDynamoPlugin.dynamic",description:`<strong>dynamic</strong> (<code>bool</code>, defaults to <code>None</code>) — | |
| Whether to use dynamic shape for tracing.`,name:"dynamic"},{anchor:"accelerate.utils.TorchDynamoPlugin.options",description:`<strong>options</strong> (<code>Any</code>, defaults to <code>None</code>) — | |
| A dictionary of options to pass to the backend.`,name:"options"},{anchor:"accelerate.utils.TorchDynamoPlugin.disable",description:`<strong>disable</strong> (<code>bool</code>, defaults to <code>False</code>) — | |
| Turn torch.compile() into a no-op for testing`,name:"disable"},{anchor:"accelerate.utils.TorchDynamoPlugin.use_regional_compilation",description:`<strong>use_regional_compilation</strong> (<code>bool</code>, defaults to <code>None</code>) — | |
| Use it to reduce the cold start compilation time of torch.compile() by targeting repeated blocks of the | |
| same class and compiling them sequentially to hit the compiler’s cache. For example, in <code>GPT2LMHeadModel</code>, | |
| the repeated block/class is <code>GPT2Block</code>, and can be accessed as <code>model.transformer.h[0]</code>. The rest of the | |
| model (e.g model.lm_head) is compiled separately.`,name:"use_regional_compilation"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/dataclasses.py#L1031"}}),ya=new M({props:{title:"Configurations",local:"accelerate.utils.BnbQuantizationConfig",headingTag:"h2"}}),xa=new x({props:{name:"class accelerate.utils.BnbQuantizationConfig",anchor:"accelerate.utils.BnbQuantizationConfig",parameters:[{name:"load_in_8bit",val:": bool = False"},{name:"llm_int8_threshold",val:": float = 6.0"},{name:"load_in_4bit",val:": bool = False"},{name:"bnb_4bit_quant_type",val:": str = 'fp4'"},{name:"bnb_4bit_use_double_quant",val:": bool = False"},{name:"bnb_4bit_compute_dtype",val:": str = 'fp16'"},{name:"torch_dtype",val:": dtype = None"},{name:"skip_modules",val:": list = None"},{name:"keep_in_fp32_modules",val:": list = None"}],parametersDescription:[{anchor:"accelerate.utils.BnbQuantizationConfig.load_in_8bit",description:`<strong>load_in_8bit</strong> (<code>bool</code>, defaults to <code>False</code>) — | |
| Enable 8bit quantization.`,name:"load_in_8bit"},{anchor:"accelerate.utils.BnbQuantizationConfig.llm_int8_threshold",description:`<strong>llm_int8_threshold</strong> (<code>float</code>, defaults to <code>6.0</code>) — | |
| Value of the outliner threshold. Only relevant when <code>load_in_8bit=True</code>.`,name:"llm_int8_threshold"},{anchor:"accelerate.utils.BnbQuantizationConfig.load_in_4bit",description:`<strong>load_in_4bit</strong> (<code>bool</code>, defaults to <code>False</code>) — | |
| Enable 4bit quantization.`,name:"load_in_4bit"},{anchor:"accelerate.utils.BnbQuantizationConfig.bnb_4bit_quant_type",description:`<strong>bnb_4bit_quant_type</strong> (<code>str</code>, defaults to <code>fp4</code>) — | |
| Set the quantization data type in the <code>bnb.nn.Linear4Bit</code> layers. Options are {‘fp4’,‘np4’}.`,name:"bnb_4bit_quant_type"},{anchor:"accelerate.utils.BnbQuantizationConfig.bnb_4bit_use_double_quant",description:`<strong>bnb_4bit_use_double_quant</strong> (<code>bool</code>, defaults to <code>False</code>) — | |
| Enable nested quantization where the quantization constants from the first quantization are quantized | |
| again.`,name:"bnb_4bit_use_double_quant"},{anchor:"accelerate.utils.BnbQuantizationConfig.bnb_4bit_compute_dtype",description:`<strong>bnb_4bit_compute_dtype</strong> (<code>bool</code>, defaults to <code>fp16</code>) — | |
| This sets the computational type which might be different than the input time. For example, inputs might be | |
| fp32, but computation can be set to bf16 for speedups. Options are {‘fp32’,‘fp16’,‘bf16’}.`,name:"bnb_4bit_compute_dtype"},{anchor:"accelerate.utils.BnbQuantizationConfig.torch_dtype",description:`<strong>torch_dtype</strong> (<code>torch.dtype</code>, defaults to <code>None</code>) — | |
| This sets the dtype of the remaining non quantized layers. <code>bitsandbytes</code> library suggests to set the value | |
| to <code>torch.float16</code> for 8 bit model and use the same dtype as the compute dtype for 4 bit model.`,name:"torch_dtype"},{anchor:"accelerate.utils.BnbQuantizationConfig.skip_modules",description:`<strong>skip_modules</strong> (<code>List[str]</code>, defaults to <code>None</code>) — | |
| An explicit list of the modules that we don’t quantize. The dtype of these modules will be <code>torch_dtype</code>.`,name:"skip_modules"},{anchor:"accelerate.utils.BnbQuantizationConfig.keep_in_fp32_modules",description:`<strong>keep_in_fp32_modules</strong> (<code>List</code>, defaults to <code>None</code>) — | |
| An explicit list of the modules that we don’t quantize. We keep them in <code>torch.float32</code>.`,name:"keep_in_fp32_modules"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/dataclasses.py#L3055"}}),wa=new x({props:{name:"class accelerate.DataLoaderConfiguration",anchor:"accelerate.DataLoaderConfiguration",parameters:[{name:"split_batches",val:": bool = False"},{name:"dispatch_batches",val:": bool = None"},{name:"even_batches",val:": bool = True"},{name:"use_seedable_sampler",val:": bool = False"},{name:"data_seed",val:": int = None"},{name:"non_blocking",val:": bool = False"},{name:"use_stateful_dataloader",val:": bool = False"}],parametersDescription:[{anchor:"accelerate.DataLoaderConfiguration.split_batches",description:`<strong>split_batches</strong> (<code>bool</code>, defaults to <code>False</code>) — | |
| Whether or not the accelerator should split the batches yielded by the dataloaders across the devices. If | |
| <code>True</code>, the actual batch size used will be the same on any kind of distributed processes, but it must be a | |
| round multiple of <code>num_processes</code> you are using. If <code>False</code>, actual batch size used will be the one set in | |
| your script multiplied by the number of processes.`,name:"split_batches"},{anchor:"accelerate.DataLoaderConfiguration.dispatch_batches",description:`<strong>dispatch_batches</strong> (<code>bool</code>, defaults to <code>None</code>) — | |
| If set to <code>True</code>, the dataloader prepared by the Accelerator is only iterated through on the main process | |
| and then the batches are split and broadcast to each process. Will default to <code>True</code> for <code>DataLoader</code> whose | |
| underlying dataset is an <code>IterableDataset</code>, <code>False</code> otherwise.`,name:"dispatch_batches"},{anchor:"accelerate.DataLoaderConfiguration.even_batches",description:`<strong>even_batches</strong> (<code>bool</code>, defaults to <code>True</code>) — | |
| If set to <code>True</code>, in cases where the total batch size across all processes does not exactly divide the | |
| dataset, samples at the start of the dataset will be duplicated so the batch can be divided equally among | |
| all workers.`,name:"even_batches"},{anchor:"accelerate.DataLoaderConfiguration.use_seedable_sampler",description:`<strong>use_seedable_sampler</strong> (<code>bool</code>, defaults to <code>False</code>) — | |
| Whether or not use a fully seedable random sampler (<code>data_loader.SeedableRandomSampler</code>). Ensures | |
| training results are fully reproducible using a different sampling technique. While seed-to-seed results | |
| may differ, on average the differences are negligible when using multiple different seeds to compare. | |
| Should also be ran with <a href="/docs/accelerate/pr_4071/en/package_reference/utilities#accelerate.utils.set_seed">set_seed()</a> for the best results.`,name:"use_seedable_sampler"},{anchor:"accelerate.DataLoaderConfiguration.data_seed",description:`<strong>data_seed</strong> (<code>int</code>, defaults to <code>None</code>) — | |
| The seed to use for the underlying generator when using <code>use_seedable_sampler</code>. If <code>None</code>, the generator | |
| will use the current default seed from torch.`,name:"data_seed"},{anchor:"accelerate.DataLoaderConfiguration.non_blocking",description:`<strong>non_blocking</strong> (<code>bool</code>, defaults to <code>False</code>) — | |
| If set to <code>True</code>, the dataloader prepared by the Accelerator will utilize non-blocking host-to-device | |
| transfers, allowing for better overlap between dataloader communication and computation. Recommended that | |
| the prepared dataloader has <code>pin_memory</code> set to <code>True</code> to work properly.`,name:"non_blocking"},{anchor:"accelerate.DataLoaderConfiguration.use_stateful_dataloader",description:`<strong>use_stateful_dataloader</strong> (<code>bool</code>, defaults to <code>False</code>) — | |
| If set to <code>True</code>, the dataloader prepared by the Accelerator will be backed by | |
| <a href="https://github.com/pytorch/data/tree/main/torchdata/stateful_dataloader" rel="nofollow">torchdata.StatefulDataLoader</a>. | |
| This requires <code>torchdata</code> version 0.8.0 or higher that supports StatefulDataLoader to be installed.`,name:"use_stateful_dataloader"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/dataclasses.py#L821"}}),Ta=new x({props:{name:"class accelerate.utils.ProjectConfiguration",anchor:"accelerate.utils.ProjectConfiguration",parameters:[{name:"project_dir",val:": str = None"},{name:"logging_dir",val:": str = None"},{name:"automatic_checkpoint_naming",val:": bool = False"},{name:"total_limit",val:": int = None"},{name:"iteration",val:": int = 0"},{name:"save_on_each_node",val:": bool = False"}],parametersDescription:[{anchor:"accelerate.utils.ProjectConfiguration.project_dir",description:`<strong>project_dir</strong> (<code>str</code>, defaults to <code>None</code>) — | |
| A path to a directory for storing data.`,name:"project_dir"},{anchor:"accelerate.utils.ProjectConfiguration.logging_dir",description:`<strong>logging_dir</strong> (<code>str</code>, defaults to <code>None</code>) — | |
| A path to a directory for storing logs of locally-compatible loggers. If None, defaults to <code>project_dir</code>.`,name:"logging_dir"},{anchor:"accelerate.utils.ProjectConfiguration.automatic_checkpoint_naming",description:`<strong>automatic_checkpoint_naming</strong> (<code>bool</code>, defaults to <code>False</code>) — | |
| Whether saved states should be automatically iteratively named.`,name:"automatic_checkpoint_naming"},{anchor:"accelerate.utils.ProjectConfiguration.total_limit",description:`<strong>total_limit</strong> (<code>int</code>, defaults to <code>None</code>) — | |
| The maximum number of total saved states to keep.`,name:"total_limit"},{anchor:"accelerate.utils.ProjectConfiguration.iteration",description:`<strong>iteration</strong> (<code>int</code>, defaults to <code>0</code>) — | |
| The current save iteration.`,name:"iteration"},{anchor:"accelerate.utils.ProjectConfiguration.save_on_each_node",description:`<strong>save_on_each_node</strong> (<code>bool</code>, defaults to <code>False</code>) — | |
| When doing multi-node distributed training, whether to save models and checkpoints on each node, or only on | |
| the main one.`,name:"save_on_each_node"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/dataclasses.py#L916"}}),Ca=new x({props:{name:"set_directories",anchor:"accelerate.utils.ProjectConfiguration.set_directories",parameters:[{name:"project_dir",val:": typing.Optional[str] = None"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/dataclasses.py#L968"}}),ka=new M({props:{title:"Environmental Variables",local:"environmental-variables",headingTag:"h2"}}),Na=new M({props:{title:"Data Manipulation and Operations",local:"accelerate.utils.broadcast",headingTag:"h2"}}),Da=new x({props:{name:"accelerate.utils.broadcast",anchor:"accelerate.utils.broadcast",parameters:[{name:"tensor",val:""},{name:"from_process",val:": int = 0"}],parametersDescription:[{anchor:"accelerate.utils.broadcast.tensor",description:`<strong>tensor</strong> (nested list/tuple/dictionary of <code>torch.Tensor</code>) — | |
| The data to gather.`,name:"tensor"},{anchor:"accelerate.utils.broadcast.from_process",description:`<strong>from_process</strong> (<code>int</code>, <em>optional</em>, defaults to 0) — | |
| The process from which to send the data`,name:"from_process"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/operations.py#L600",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p>The same data structure as <code>tensor</code> with all tensors broadcasted to the proper device.</p> | |
| `}}),Ua=new x({props:{name:"accelerate.utils.broadcast_object_list",anchor:"accelerate.utils.broadcast_object_list",parameters:[{name:"object_list",val:""},{name:"from_process",val:": int = 0"}],parametersDescription:[{anchor:"accelerate.utils.broadcast_object_list.object_list",description:`<strong>object_list</strong> (list of picklable objects) — | |
| The list of objects to broadcast. This list will be modified inplace.`,name:"object_list"},{anchor:"accelerate.utils.broadcast_object_list.from_process",description:`<strong>from_process</strong> (<code>int</code>, <em>optional</em>, defaults to 0) — | |
| The process from which to send the data.`,name:"from_process"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/operations.py#L675",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p>The same list containing the objects from process 0.</p> | |
| `}}),za=new x({props:{name:"accelerate.utils.concatenate",anchor:"accelerate.utils.concatenate",parameters:[{name:"data",val:""},{name:"dim",val:" = 0"}],parametersDescription:[{anchor:"accelerate.utils.concatenate.data",description:`<strong>data</strong> (nested list/tuple/dictionary of lists of tensors <code>torch.Tensor</code>) — | |
| The data to concatenate.`,name:"data"},{anchor:"accelerate.utils.concatenate.dim",description:`<strong>dim</strong> (<code>int</code>, <em>optional</em>, defaults to 0) — | |
| The dimension on which to concatenate.`,name:"dim"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/operations.py#L719",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p>The same data structure as <code>data</code> with all the tensors concatenated.</p> | |
| `}}),ja=new x({props:{name:"accelerate.utils.convert_outputs_to_fp32",anchor:"accelerate.utils.convert_outputs_to_fp32",parameters:[{name:"model_forward",val:""}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/operations.py#L939"}}),Ea=new x({props:{name:"accelerate.utils.convert_to_fp32",anchor:"accelerate.utils.convert_to_fp32",parameters:[{name:"tensor",val:""}],parametersDescription:[{anchor:"accelerate.utils.convert_to_fp32.tensor",description:`<strong>tensor</strong> (nested list/tuple/dictionary of <code>torch.Tensor</code>) — | |
| The data to convert from FP16/BF16 to FP32.`,name:"tensor"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/operations.py#L889",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p>The same data structure as <code>tensor</code> with all tensors that were in FP16/BF16 precision converted to FP32.</p> | |
| `}}),Ia=new x({props:{name:"accelerate.utils.gather",anchor:"accelerate.utils.gather",parameters:[{name:"tensor",val:""}],parametersDescription:[{anchor:"accelerate.utils.gather.tensor",description:`<strong>tensor</strong> (nested list/tuple/dictionary of <code>torch.Tensor</code>) — | |
| The data to gather.`,name:"tensor"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/operations.py#L424",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p>The same data structure as <code>tensor</code> with all tensors sent to the proper device.</p> | |
| `}}),Aa=new x({props:{name:"accelerate.utils.gather_object",anchor:"accelerate.utils.gather_object",parameters:[{name:"object",val:": typing.Any"}],parametersDescription:[{anchor:"accelerate.utils.gather_object.object",description:`<strong>object</strong> (nested list/tuple/dictionary of picklable object) — | |
| The data to gather.`,name:"object"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/operations.py#L505",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p>The same data structure as <code>object</code> with all the objects sent to every device.</p> | |
| `}}),Sa=new x({props:{name:"accelerate.utils.get_grad_scaler",anchor:"accelerate.utils.get_grad_scaler",parameters:[{name:"distributed_type",val:": DistributedType = None"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"accelerate.utils.get_grad_scaler.distributed_type",description:`<strong>distributed_type</strong> (<code>DistributedType</code>, <em>optional</em>, defaults to None) — | |
| The type of distributed environment.`,name:"distributed_type"},{anchor:"accelerate.utils.get_grad_scaler.kwargs",description:`<strong>kwargs</strong> — | |
| Additional arguments for the utilized <code>GradScaler</code> constructor.`,name:"kwargs"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/modeling.py#L2110"}}),Oa=new x({props:{name:"accelerate.utils.get_mixed_precision_context_manager",anchor:"accelerate.utils.get_mixed_precision_context_manager",parameters:[{name:"native_amp",val:": bool = False"},{name:"autocast_kwargs",val:": AutocastKwargs = None"}],parametersDescription:[{anchor:"accelerate.utils.get_mixed_precision_context_manager.native_amp",description:`<strong>native_amp</strong> (<code>bool</code>, <em>optional</em>, defaults to False) — | |
| Whether mixed precision is actually enabled.`,name:"native_amp"},{anchor:"accelerate.utils.get_mixed_precision_context_manager.cache_enabled",description:`<strong>cache_enabled</strong> (<code>bool</code>, <em>optional</em>, defaults to True) — | |
| Whether the weight cache inside autocast should be enabled.`,name:"cache_enabled"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/modeling.py#L2066"}}),qa=new x({props:{name:"accelerate.utils.listify",anchor:"accelerate.utils.listify",parameters:[{name:"data",val:""}],parametersDescription:[{anchor:"accelerate.utils.listify.data",description:"<strong>data</strong> (nested list/tuple/dictionary of <code>torch.Tensor</code>) — The data from which to convert to regular numbers.",name:"data"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/operations.py#L284",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p>The same data structure as <code>data</code> with lists of numbers instead of <code>torch.Tensor</code>.</p> | |
| `}}),Va=new x({props:{name:"accelerate.utils.pad_across_processes",anchor:"accelerate.utils.pad_across_processes",parameters:[{name:"tensor",val:""},{name:"dim",val:" = 0"},{name:"pad_index",val:" = 0"},{name:"pad_first",val:" = False"}],parametersDescription:[{anchor:"accelerate.utils.pad_across_processes.tensor",description:`<strong>tensor</strong> (nested list/tuple/dictionary of <code>torch.Tensor</code>) — | |
| The data to gather.`,name:"tensor"},{anchor:"accelerate.utils.pad_across_processes.dim",description:`<strong>dim</strong> (<code>int</code>, <em>optional</em>, defaults to 0) — | |
| The dimension on which to pad.`,name:"dim"},{anchor:"accelerate.utils.pad_across_processes.pad_index",description:`<strong>pad_index</strong> (<code>int</code>, <em>optional</em>, defaults to 0) — | |
| The value with which to pad.`,name:"pad_index"},{anchor:"accelerate.utils.pad_across_processes.pad_first",description:`<strong>pad_first</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| Whether to pad at the beginning or the end.`,name:"pad_first"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/operations.py#L749"}}),Ra=new x({props:{name:"accelerate.utils.recursively_apply",anchor:"accelerate.utils.recursively_apply",parameters:[{name:"func",val:""},{name:"data",val:""},{name:"*args",val:""},{name:"test_type",val:" = <function is_torch_tensor at 0x7fb6b448bd00>"},{name:"error_on_other_type",val:" = False"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"accelerate.utils.recursively_apply.func",description:`<strong>func</strong> (<code>callable</code>) — | |
| The function to recursively apply.`,name:"func"},{anchor:"accelerate.utils.recursively_apply.data",description:`<strong>data</strong> (nested list/tuple/dictionary of <code>main_type</code>) — | |
| The data on which to apply <code>func</code>`,name:"data"},{anchor:"accelerate.utils.recursively_apply.*args",description:`<strong>*args</strong> — | |
| Positional arguments that will be passed to <code>func</code> when applied on the unpacked data.`,name:"*args"},{anchor:"accelerate.utils.recursively_apply.main_type",description:`<strong>main_type</strong> (<code>type</code>, <em>optional</em>, defaults to <code>torch.Tensor</code>) — | |
| The base type of the objects to which apply <code>func</code>.`,name:"main_type"},{anchor:"accelerate.utils.recursively_apply.error_on_other_type",description:`<strong>error_on_other_type</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| Whether to return an error or not if after unpacking <code>data</code>, we get on an object that is not of type | |
| <code>main_type</code>. If <code>False</code>, the function will leave objects of types different than <code>main_type</code> unchanged.`,name:"error_on_other_type"},{anchor:"accelerate.utils.recursively_apply.*kwargs",description:`*<strong>*kwargs</strong> (additional keyword arguments, <em>optional</em>) — | |
| Keyword arguments that will be passed to <code>func</code> when applied on the unpacked data.`,name:"*kwargs"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/operations.py#L85",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p>The same data structure as <code>data</code> with <code>func</code> applied to every object of type <code>main_type</code>.</p> | |
| `}}),Ha=new x({props:{name:"accelerate.utils.reduce",anchor:"accelerate.utils.reduce",parameters:[{name:"tensor",val:""},{name:"reduction",val:" = 'mean'"},{name:"scale",val:" = 1.0"}],parametersDescription:[{anchor:"accelerate.utils.reduce.tensor",description:`<strong>tensor</strong> (nested list/tuple/dictionary of <code>torch.Tensor</code>) — | |
| The data to reduce.`,name:"tensor"},{anchor:"accelerate.utils.reduce.reduction",description:`<strong>reduction</strong> (<code>str</code>, <em>optional</em>, defaults to <code>"mean"</code>) — | |
| A reduction method. Can be of “mean”, “sum”, “max”, or “none”`,name:"reduction"},{anchor:"accelerate.utils.reduce.scale",description:`<strong>scale</strong> (<code>float</code>, <em>optional</em>) — | |
| A default scaling value to be applied after the reduce, only valid on XLA.`,name:"scale"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/operations.py#L845",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p>The same data structure as <code>data</code> with all the tensors reduced.</p> | |
| `}}),Wa=new x({props:{name:"accelerate.utils.send_to_device",anchor:"accelerate.utils.send_to_device",parameters:[{name:"tensor",val:""},{name:"device",val:""},{name:"non_blocking",val:" = False"},{name:"skip_keys",val:" = None"}],parametersDescription:[{anchor:"accelerate.utils.send_to_device.tensor",description:`<strong>tensor</strong> (nested list/tuple/dictionary of <code>torch.Tensor</code>) — | |
| The data to send to a given device.`,name:"tensor"},{anchor:"accelerate.utils.send_to_device.device",description:`<strong>device</strong> (<code>torch.device</code>) — | |
| The device to send the data to.`,name:"device"},{anchor:"accelerate.utils.send_to_device.non_blocking",description:`<strong>non_blocking</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| If <code>True</code>, the transfer to the device is performed asynchronously, which can overlap | |
| data movement with computation. Only effective when the device supports it (e.g. CUDA).`,name:"non_blocking"},{anchor:"accelerate.utils.send_to_device.skip_keys",description:`<strong>skip_keys</strong> (<code>str</code> or <code>List[str]</code>, <em>optional</em>) — | |
| A key or list of keys in a dictionary <code>tensor</code> whose values should not be sent to | |
| the given <code>device</code>. Entries with these keys are left on their original device.`,name:"skip_keys"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/operations.py#L136",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p>The same data structure as <code>tensor</code> with all tensors sent to the proper device.</p> | |
| `}}),Ga=new x({props:{name:"accelerate.utils.slice_tensors",anchor:"accelerate.utils.slice_tensors",parameters:[{name:"data",val:""},{name:"tensor_slice",val:""},{name:"process_index",val:" = None"},{name:"num_processes",val:" = None"}],parametersDescription:[{anchor:"accelerate.utils.slice_tensors.data",description:`<strong>data</strong> (nested list/tuple/dictionary of <code>torch.Tensor</code>) — | |
| The data to slice.`,name:"data"},{anchor:"accelerate.utils.slice_tensors.tensor_slice",description:`<strong>tensor_slice</strong> (<code>slice</code>) — | |
| The slice to take.`,name:"tensor_slice"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/operations.py#L699",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p>The same data structure as <code>data</code> with all the tensors slices.</p> | |
| `}}),Ja=new M({props:{title:"Environment Checks",local:"accelerate.utils.is_bf16_available",headingTag:"h2"}}),Xa=new x({props:{name:"accelerate.utils.is_bf16_available",anchor:"accelerate.utils.is_bf16_available",parameters:[{name:"ignore_tpu",val:" = False"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/imports.py#L164"}}),Za=new x({props:{name:"accelerate.utils.is_mps_available",anchor:"accelerate.utils.is_mps_available",parameters:[{name:"min_version",val:" = '1.12'"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/imports.py#L334"}}),Ya=new x({props:{name:"accelerate.utils.is_npu_available",anchor:"accelerate.utils.is_npu_available",parameters:[{name:"check_device",val:" = False"}]}}),Qa=new x({props:{name:"accelerate.utils.is_torch_version",anchor:"accelerate.utils.is_torch_version",parameters:[{name:"operation",val:": str"},{name:"version",val:": str"}],parametersDescription:[{anchor:"accelerate.utils.is_torch_version.operation",description:`<strong>operation</strong> (<code>str</code>) — | |
| A string representation of an operator, such as <code>">"</code> or <code>"<="</code>`,name:"operation"},{anchor:"accelerate.utils.is_torch_version.version",description:`<strong>version</strong> (<code>str</code>) — | |
| A string version of PyTorch`,name:"version"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/versions.py#L46"}}),Ka=new x({props:{name:"accelerate.utils.is_torch_xla_available",anchor:"accelerate.utils.is_torch_xla_available",parameters:[{name:"check_is_tpu",val:" = False"},{name:"check_is_gpu",val:" = False"}]}}),eo=new x({props:{name:"accelerate.utils.is_xpu_available",anchor:"accelerate.utils.is_xpu_available",parameters:[{name:"check_device",val:" = False"}]}}),to=new M({props:{title:"Environment Manipulation",local:"accelerate.utils.patch_environment",headingTag:"h2"}}),ao=new x({props:{name:"accelerate.utils.patch_environment",anchor:"accelerate.utils.patch_environment",parameters:[{name:"**kwargs",val:""}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/environment.py#L416"}}),$t=new nt({props:{anchor:"accelerate.utils.patch_environment.example",$$slots:{default:[tg]},$$scope:{ctx:k}}}),oo=new x({props:{name:"accelerate.utils.clear_environment",anchor:"accelerate.utils.clear_environment",parameters:[],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/environment.py#L381"}}),xt=new nt({props:{anchor:"accelerate.utils.clear_environment.example",$$slots:{default:[ag]},$$scope:{ctx:k}}}),no=new x({props:{name:"accelerate.commands.config.default.write_basic_config",anchor:"accelerate.commands.config.default.write_basic_config",parameters:[{name:"mixed_precision",val:" = 'no'"},{name:"save_location",val:": str = '/github/home/.cache/huggingface/accelerate/default_config.yaml'"}],parametersDescription:[{anchor:"accelerate.commands.config.default.write_basic_config.mixed_precision",description:`<strong>mixed_precision</strong> (<code>str</code>, <em>optional</em>, defaults to “no”) — | |
| Mixed Precision to use. Should be one of “no”, “fp16”, or “bf16”`,name:"mixed_precision"},{anchor:"accelerate.commands.config.default.write_basic_config.save_location",description:`<strong>save_location</strong> (<code>str</code>, <em>optional</em>, defaults to <code>default_json_config_file</code>) — | |
| Optional custom save location. Should be passed to <code>--config_file</code> when using <code>accelerate launch</code>. Default | |
| location is inside the huggingface cache folder (<code>~/.cache/huggingface</code>) but can be overridden by setting | |
| the <code>HF_HOME</code> environmental variable, followed by <code>accelerate/default_config.yaml</code>.`,name:"save_location"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/commands/config/default.py#L37"}}),lo=new x({props:{name:"accelerate.utils.set_numa_affinity",anchor:"accelerate.utils.set_numa_affinity",parameters:[{name:"local_process_index",val:": int"},{name:"verbose",val:": typing.Optional[bool] = None"}],parametersDescription:[{anchor:"accelerate.utils.set_numa_affinity.local_process_index",description:`<strong>local_process_index</strong> (int) — | |
| The index of the current process on the current server.`,name:"local_process_index"},{anchor:"accelerate.utils.set_numa_affinity.verbose",description:`<strong>verbose</strong> (bool, <em>optional</em>) — | |
| Whether to print the new cpu cores assignment for each process. If <code>ACCELERATE_DEBUG_MODE</code> is enabled, will | |
| default to True.`,name:"verbose"}]}}),so=new x({props:{name:"accelerate.utils.environment.override_numa_affinity",anchor:"accelerate.utils.environment.override_numa_affinity",parameters:[{name:"local_process_index",val:": int"},{name:"verbose",val:": typing.Optional[bool] = None"}],parametersDescription:[{anchor:"accelerate.utils.environment.override_numa_affinity.local_process_index",description:`<strong>local_process_index</strong> (int) — | |
| The index of the current process on the current server.`,name:"local_process_index"},{anchor:"accelerate.utils.environment.override_numa_affinity.verbose",description:`<strong>verbose</strong> (bool, <em>optional</em>) — | |
| Whether to log out the assignment of each CPU. If <code>ACCELERATE_DEBUG_MODE</code> is enabled, will default to True.`,name:"verbose"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/environment.py#L298"}}),io=new x({props:{name:"accelerate.utils.purge_accelerate_environment",anchor:"accelerate.utils.purge_accelerate_environment",parameters:[{name:"func_or_cls",val:""}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/environment.py#L453"}}),co=new M({props:{title:"Memory",local:"accelerate.find_executable_batch_size",headingTag:"h2"}}),po=new x({props:{name:"accelerate.find_executable_batch_size",anchor:"accelerate.find_executable_batch_size",parameters:[{name:"function",val:": typing.Optional[<built-in function callable>] = None"},{name:"starting_batch_size",val:": int = 128"},{name:"reduce_batch_size_fn",val:": typing.Optional[<built-in function callable>] = None"}],parametersDescription:[{anchor:"accelerate.find_executable_batch_size.function",description:`<strong>function</strong> (<code>callable</code>, <em>optional</em>) — | |
| A function to wrap`,name:"function"},{anchor:"accelerate.find_executable_batch_size.starting_batch_size",description:`<strong>starting_batch_size</strong> (<code>int</code>, <em>optional</em>) — | |
| The batch size to try and fit into memory`,name:"starting_batch_size"},{anchor:"accelerate.find_executable_batch_size.reduce_batch_size_fn",description:`<strong>reduce_batch_size_fn</strong> (<code>callable</code>, <em>optional</em>) — | |
| A function to determine the new batch size after an out-of-memory error. If not | |
| provided, the batch size is multiplied by 0.9 on each failure. The function takes | |
| no arguments and should return the new (reduced) batch size as an <code>int</code>.`,name:"reduce_batch_size_fn"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/memory.py#L119"}}),wt=new nt({props:{anchor:"accelerate.find_executable_batch_size.example",$$slots:{default:[og]},$$scope:{ctx:k}}}),mo=new M({props:{title:"Modeling",local:"accelerate.utils.calculate_maximum_sizes",headingTag:"h2"}}),go=new x({props:{name:"accelerate.utils.calculate_maximum_sizes",anchor:"accelerate.utils.calculate_maximum_sizes",parameters:[{name:"model",val:": Module"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/modeling.py#L1067"}}),ho=new x({props:{name:"accelerate.utils.compute_module_sizes",anchor:"accelerate.utils.compute_module_sizes",parameters:[{name:"model",val:": Module"},{name:"dtype",val:": typing.Union[str, torch.device, NoneType] = None"},{name:"special_dtypes",val:": typing.Optional[dict[str, typing.Union[str, torch.device]]] = None"},{name:"buffers_only",val:": bool = False"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/modeling.py#L664"}}),fo=new x({props:{name:"accelerate.utils.extract_model_from_parallel",anchor:"accelerate.utils.extract_model_from_parallel",parameters:[{name:"model",val:""},{name:"keep_fp32_wrapper",val:": bool = True"},{name:"keep_torch_compile",val:": bool = True"},{name:"recursive",val:": bool = False"}],parametersDescription:[{anchor:"accelerate.utils.extract_model_from_parallel.model",description:`<strong>model</strong> (<code>torch.nn.Module</code>) — | |
| The model to extract.`,name:"model"},{anchor:"accelerate.utils.extract_model_from_parallel.keep_fp32_wrapper",description:`<strong>keep_fp32_wrapper</strong> (<code>bool</code>, <em>optional</em>) — | |
| Whether to remove mixed precision hooks from the model.`,name:"keep_fp32_wrapper"},{anchor:"accelerate.utils.extract_model_from_parallel.keep_torch_compile",description:`<strong>keep_torch_compile</strong> (<code>bool</code>, <em>optional</em>) — | |
| Whether to unwrap compiled model.`,name:"keep_torch_compile"},{anchor:"accelerate.utils.extract_model_from_parallel.recursive",description:`<strong>recursive</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| Whether to recursively extract all cases of <code>module.module</code> from <code>model</code> as well as unwrap child sublayers | |
| recursively, not just the top-level distributed containers.`,name:"recursive"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/other.py#L248",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p>The extracted model.</p> | |
| `,returnType:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p><code>torch.nn.Module</code></p> | |
| `}}),_o=new x({props:{name:"accelerate.utils.get_balanced_memory",anchor:"accelerate.utils.get_balanced_memory",parameters:[{name:"model",val:": Module"},{name:"max_memory",val:": typing.Optional[dict[typing.Union[int, str], typing.Union[int, str]]] = None"},{name:"no_split_module_classes",val:": typing.Optional[list[str]] = None"},{name:"dtype",val:": typing.Union[str, torch.dtype, NoneType] = None"},{name:"special_dtypes",val:": typing.Optional[dict[str, typing.Union[str, torch.device]]] = None"},{name:"low_zero",val:": bool = False"}],parametersDescription:[{anchor:"accelerate.utils.get_balanced_memory.model",description:`<strong>model</strong> (<code>torch.nn.Module</code>) — | |
| The model to analyze.`,name:"model"},{anchor:"accelerate.utils.get_balanced_memory.max_memory",description:`<strong>max_memory</strong> (<code>Dict</code>, <em>optional</em>) — | |
| A dictionary device identifier to maximum memory. Will default to the maximum memory available if unset. | |
| Example: <code>max_memory={0: "1GB"}</code>.`,name:"max_memory"},{anchor:"accelerate.utils.get_balanced_memory.no_split_module_classes",description:`<strong>no_split_module_classes</strong> (<code>List[str]</code>, <em>optional</em>) — | |
| A list of layer class names that should never be split across device (for instance any layer that has a | |
| residual connection).`,name:"no_split_module_classes"},{anchor:"accelerate.utils.get_balanced_memory.dtype",description:`<strong>dtype</strong> (<code>str</code> or <code>torch.dtype</code>, <em>optional</em>) — | |
| If provided, the weights will be converted to that type when loaded.`,name:"dtype"},{anchor:"accelerate.utils.get_balanced_memory.special_dtypes",description:`<strong>special_dtypes</strong> (<code>Dict[str, Union[str, torch.device]]</code>, <em>optional</em>) — | |
| If provided, special dtypes to consider for some specific weights (will override dtype used as default for | |
| all weights).`,name:"special_dtypes"},{anchor:"accelerate.utils.get_balanced_memory.low_zero",description:`<strong>low_zero</strong> (<code>bool</code>, <em>optional</em>) — | |
| Minimizes the number of weights on GPU 0, which is convenient when it’s used for other operations (like the | |
| Transformers generate function).`,name:"low_zero"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/modeling.py#L931"}}),Tt=new en({props:{$$slots:{default:[ng]},$$scope:{ctx:k}}}),bo=new x({props:{name:"accelerate.utils.get_max_layer_size",anchor:"accelerate.utils.get_max_layer_size",parameters:[{name:"modules",val:": list"},{name:"module_sizes",val:": dict"},{name:"no_split_module_classes",val:": list"}],parametersDescription:[{anchor:"accelerate.utils.get_max_layer_size.modules",description:`<strong>modules</strong> (<code>List[Tuple[str, torch.nn.Module]]</code>) — | |
| The list of named modules where we want to determine the maximum layer size.`,name:"modules"},{anchor:"accelerate.utils.get_max_layer_size.module_sizes",description:`<strong>module_sizes</strong> (<code>Dict[str, int]</code>) — | |
| A dictionary mapping each layer name to its size (as generated by <code>compute_module_sizes</code>).`,name:"module_sizes"},{anchor:"accelerate.utils.get_max_layer_size.no_split_module_classes",description:`<strong>no_split_module_classes</strong> (<code>List[str]</code>) — | |
| A list of class names for layers we don’t want to be split.`,name:"no_split_module_classes"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/modeling.py#L718",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p>The maximum size of a layer with the list of layer names realizing that maximum size.</p> | |
| `,returnType:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p><code>Tuple[int, List[str]]</code></p> | |
| `}}),vo=new x({props:{name:"accelerate.infer_auto_device_map",anchor:"accelerate.infer_auto_device_map",parameters:[{name:"model",val:": Module"},{name:"max_memory",val:": typing.Optional[dict[typing.Union[int, str], typing.Union[int, str]]] = None"},{name:"no_split_module_classes",val:": typing.Optional[list[str]] = None"},{name:"dtype",val:": typing.Union[str, torch.dtype, NoneType] = None"},{name:"special_dtypes",val:": typing.Optional[dict[str, typing.Union[str, torch.dtype]]] = None"},{name:"verbose",val:": bool = False"},{name:"clean_result",val:": bool = True"},{name:"offload_buffers",val:": bool = False"},{name:"fallback_allocation",val:": bool = False"}],parametersDescription:[{anchor:"accelerate.infer_auto_device_map.model",description:`<strong>model</strong> (<code>torch.nn.Module</code>) — | |
| The model to analyze.`,name:"model"},{anchor:"accelerate.infer_auto_device_map.max_memory",description:`<strong>max_memory</strong> (<code>Dict</code>, <em>optional</em>) — | |
| A dictionary device identifier to maximum memory. Will default to the maximum memory available if unset. | |
| Example: <code>max_memory={0: "1GB"}</code>.`,name:"max_memory"},{anchor:"accelerate.infer_auto_device_map.no_split_module_classes",description:`<strong>no_split_module_classes</strong> (<code>List[str]</code>, <em>optional</em>) — | |
| A list of layer class names that should never be split across device (for instance any layer that has a | |
| residual connection).`,name:"no_split_module_classes"},{anchor:"accelerate.infer_auto_device_map.dtype",description:`<strong>dtype</strong> (<code>str</code> or <code>torch.dtype</code>, <em>optional</em>) — | |
| If provided, the weights will be converted to that type when loaded.`,name:"dtype"},{anchor:"accelerate.infer_auto_device_map.special_dtypes",description:`<strong>special_dtypes</strong> (<code>Dict[str, Union[str, torch.device]]</code>, <em>optional</em>) — | |
| If provided, special dtypes to consider for some specific weights (will override dtype used as default for | |
| all weights).`,name:"special_dtypes"},{anchor:"accelerate.infer_auto_device_map.verbose",description:`<strong>verbose</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| Whether or not to provide debugging statements as the function builds the device_map.`,name:"verbose"},{anchor:"accelerate.infer_auto_device_map.clean_result",description:`<strong>clean_result</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) — | |
| Clean the resulting device_map by grouping all submodules that go on the same device together.`,name:"clean_result"},{anchor:"accelerate.infer_auto_device_map.offload_buffers",description:`<strong>offload_buffers</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| In the layers that are offloaded on the CPU or the hard drive, whether or not to offload the buffers as | |
| well as the parameters.`,name:"offload_buffers"},{anchor:"accelerate.infer_auto_device_map.fallback_allocation",description:`<strong>fallback_allocation</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| When regular allocation fails, try to allocate a module that fits in the size limit using BFS.`,name:"fallback_allocation"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/modeling.py#L1295"}}),Ct=new en({props:{$$slots:{default:[rg]},$$scope:{ctx:k}}}),yo=new x({props:{name:"accelerate.load_checkpoint_in_model",anchor:"accelerate.load_checkpoint_in_model",parameters:[{name:"model",val:": Module"},{name:"checkpoint",val:": typing.Union[str, os.PathLike]"},{name:"device_map",val:": typing.Optional[dict[str, typing.Union[int, str, torch.device]]] = None"},{name:"offload_folder",val:": typing.Union[str, os.PathLike, NoneType] = None"},{name:"dtype",val:": typing.Union[str, torch.dtype, NoneType] = None"},{name:"offload_state_dict",val:": bool = False"},{name:"offload_buffers",val:": bool = False"},{name:"keep_in_fp32_modules",val:": typing.Optional[list[str]] = None"},{name:"offload_8bit_bnb",val:": bool = False"},{name:"strict",val:": bool = False"},{name:"full_state_dict",val:": bool = True"},{name:"broadcast_from_rank0",val:": bool = False"}],parametersDescription:[{anchor:"accelerate.load_checkpoint_in_model.model",description:`<strong>model</strong> (<code>torch.nn.Module</code>) — | |
| The model in which we want to load a checkpoint.`,name:"model"},{anchor:"accelerate.load_checkpoint_in_model.checkpoint",description:`<strong>checkpoint</strong> (<code>str</code> or <code>os.PathLike</code>) — | |
| The folder checkpoint to load. It can be: | |
| <ul> | |
| <li>a path to a file containing a whole model state dict</li> | |
| <li>a path to a <code>.json</code> file containing the index to a sharded checkpoint</li> | |
| <li>a path to a folder containing a unique <code>.index.json</code> file and the shards of a checkpoint.</li> | |
| <li>a path to a folder containing a unique pytorch_model.bin or a model.safetensors file.</li> | |
| </ul>`,name:"checkpoint"},{anchor:"accelerate.load_checkpoint_in_model.device_map",description:`<strong>device_map</strong> (<code>Dict[str, Union[int, str, torch.device]]</code>, <em>optional</em>) — | |
| A map that specifies where each submodule should go. It doesn’t need to be refined to each parameter/buffer | |
| name, once a given module name is inside, every submodule of it will be sent to the same device.`,name:"device_map"},{anchor:"accelerate.load_checkpoint_in_model.offload_folder",description:`<strong>offload_folder</strong> (<code>str</code> or <code>os.PathLike</code>, <em>optional</em>) — | |
| If the <code>device_map</code> contains any value <code>"disk"</code>, the folder where we will offload weights.`,name:"offload_folder"},{anchor:"accelerate.load_checkpoint_in_model.dtype",description:`<strong>dtype</strong> (<code>str</code> or <code>torch.dtype</code>, <em>optional</em>) — | |
| If provided, the weights will be converted to that type when loaded.`,name:"dtype"},{anchor:"accelerate.load_checkpoint_in_model.offload_state_dict",description:`<strong>offload_state_dict</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| If <code>True</code>, will temporarily offload the CPU state dict on the hard drive to avoid getting out of CPU RAM if | |
| the weight of the CPU state dict + the biggest shard does not fit.`,name:"offload_state_dict"},{anchor:"accelerate.load_checkpoint_in_model.offload_buffers",description:`<strong>offload_buffers</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| Whether or not to include the buffers in the weights offloaded to disk.`,name:"offload_buffers"},{anchor:"accelerate.load_checkpoint_in_model.keep_in_fp32_modules(List[str],",description:`<strong>keep_in_fp32_modules(<code>List[str]</code>,</strong> <em>optional</em>) — | |
| A list of the modules that we keep in <code>torch.float32</code> dtype.`,name:"keep_in_fp32_modules(List[str],"},{anchor:"accelerate.load_checkpoint_in_model.offload_8bit_bnb",description:`<strong>offload_8bit_bnb</strong> (<code>bool</code>, <em>optional</em>) — | |
| Whether or not to enable offload of 8-bit modules on cpu/disk.`,name:"offload_8bit_bnb"},{anchor:"accelerate.load_checkpoint_in_model.strict",description:`<strong>strict</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| Whether to strictly enforce that the keys in the checkpoint state_dict match the keys of the model’s | |
| state_dict.`,name:"strict"},{anchor:"accelerate.load_checkpoint_in_model.full_state_dict",description:`<strong>full_state_dict</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) — if this is set to <code>True</code>, all the tensors in the | |
| loaded state_dict will be gathered. No ShardedTensor and DTensor will be in the loaded state_dict.`,name:"full_state_dict"},{anchor:"accelerate.load_checkpoint_in_model.broadcast_from_rank0",description:`<strong>broadcast_from_rank0</strong> (<code>False</code>, <em>optional</em>, defaults to <code>False</code>) — when the option is <code>True</code>, a distributed | |
| <code>ProcessGroup</code> must be initialized. rank0 should receive a full state_dict and will broadcast the tensors | |
| in the state_dict one by one to other ranks. Other ranks will receive the tensors and shard (if applicable) | |
| according to the local shards in the model.`,name:"broadcast_from_rank0"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/modeling.py#L1805"}}),kt=new en({props:{warning:!0,$$slots:{default:[lg]},$$scope:{ctx:k}}}),$o=new x({props:{name:"accelerate.utils.load_offloaded_weights",anchor:"accelerate.utils.load_offloaded_weights",parameters:[{name:"model",val:""},{name:"index",val:""},{name:"offload_folder",val:""}],parametersDescription:[{anchor:"accelerate.utils.load_offloaded_weights.model",description:`<strong>model</strong> (<code>torch.nn.Module</code>) — | |
| The model to load the weights into.`,name:"model"},{anchor:"accelerate.utils.load_offloaded_weights.index",description:`<strong>index</strong> (<code>dict</code>) — | |
| A dictionary containing the parameter name and its metadata for each parameter that was offloaded from the | |
| model.`,name:"index"},{anchor:"accelerate.utils.load_offloaded_weights.offload_folder",description:`<strong>offload_folder</strong> (<code>str</code>) — | |
| The folder where the offloaded weights are stored.`,name:"offload_folder"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/modeling.py#L890"}}),xo=new x({props:{name:"accelerate.utils.load_state_dict",anchor:"accelerate.utils.load_state_dict",parameters:[{name:"checkpoint_file",val:""},{name:"device_map",val:" = None"}],parametersDescription:[{anchor:"accelerate.utils.load_state_dict.checkpoint_file",description:"<strong>checkpoint_file</strong> (<code>str</code>) — The path to the checkpoint to load.",name:"checkpoint_file"},{anchor:"accelerate.utils.load_state_dict.device_map",description:`<strong>device_map</strong> (<code>Dict[str, Union[int, str, torch.device]]</code>, <em>optional</em>) — | |
| A map that specifies where each submodule should go. It doesn’t need to be refined to each parameter/buffer | |
| name, once a given module name is inside, every submodule of it will be sent to the same device.`,name:"device_map"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/modeling.py#L1637"}}),wo=new x({props:{name:"accelerate.utils.offload_state_dict",anchor:"accelerate.utils.offload_state_dict",parameters:[{name:"save_dir",val:": typing.Union[str, os.PathLike]"},{name:"state_dict",val:": dict"}],parametersDescription:[{anchor:"accelerate.utils.offload_state_dict.save_dir",description:`<strong>save_dir</strong> (<code>str</code> or <code>os.PathLike</code>) — | |
| The directory in which to offload the state dict.`,name:"save_dir"},{anchor:"accelerate.utils.offload_state_dict.state_dict",description:`<strong>state_dict</strong> (<code>Dict[str, torch.Tensor]</code>) — | |
| The dictionary of tensors to offload.`,name:"state_dict"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/offload.py#L85"}}),To=new x({props:{name:"accelerate.utils.retie_parameters",anchor:"accelerate.utils.retie_parameters",parameters:[{name:"model",val:""},{name:"tied_params",val:""}],parametersDescription:[{anchor:"accelerate.utils.retie_parameters.model",description:`<strong>model</strong> (<code>torch.nn.Module</code>) — | |
| The model in which to retie parameters.`,name:"model"},{anchor:"accelerate.utils.retie_parameters.tied_params",description:`<strong>tied_params</strong> (<code>List[List[str]]</code>) — | |
| A mapping parameter name to tied parameter name as obtained by <code>find_tied_parameters</code>.`,name:"tied_params"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/modeling.py#L622"}}),Co=new x({props:{name:"accelerate.utils.set_module_tensor_to_device",anchor:"accelerate.utils.set_module_tensor_to_device",parameters:[{name:"module",val:": Module"},{name:"tensor_name",val:": str"},{name:"device",val:": typing.Union[int, str, torch.device]"},{name:"value",val:": typing.Optional[torch.Tensor] = None"},{name:"dtype",val:": typing.Union[str, torch.dtype, NoneType] = None"},{name:"fp16_statistics",val:": typing.Optional[torch.HalfTensor] = None"},{name:"tied_params_map",val:": typing.Optional[dict[int, dict[torch.device, torch.Tensor]]] = None"},{name:"non_blocking",val:": bool = False"},{name:"clear_cache",val:": bool = True"}],parametersDescription:[{anchor:"accelerate.utils.set_module_tensor_to_device.module",description:`<strong>module</strong> (<code>torch.nn.Module</code>) — | |
| The module in which the tensor we want to move lives.`,name:"module"},{anchor:"accelerate.utils.set_module_tensor_to_device.tensor_name",description:`<strong>tensor_name</strong> (<code>str</code>) — | |
| The full name of the parameter/buffer.`,name:"tensor_name"},{anchor:"accelerate.utils.set_module_tensor_to_device.device",description:`<strong>device</strong> (<code>int</code>, <code>str</code> or <code>torch.device</code>) — | |
| The device on which to set the tensor.`,name:"device"},{anchor:"accelerate.utils.set_module_tensor_to_device.value",description:`<strong>value</strong> (<code>torch.Tensor</code>, <em>optional</em>) — | |
| The value of the tensor (useful when going from the meta device to any other device).`,name:"value"},{anchor:"accelerate.utils.set_module_tensor_to_device.dtype",description:`<strong>dtype</strong> (<code>torch.dtype</code>, <em>optional</em>) — | |
| If passed along the value of the parameter will be cast to this <code>dtype</code>. Otherwise, <code>value</code> will be cast to | |
| the dtype of the existing parameter in the model.`,name:"dtype"},{anchor:"accelerate.utils.set_module_tensor_to_device.fp16_statistics",description:`<strong>fp16_statistics</strong> (<code>torch.HalfTensor</code>, <em>optional</em>) — | |
| The list of fp16 statistics to set on the module, used for 8 bit model serialization.`,name:"fp16_statistics"},{anchor:"accelerate.utils.set_module_tensor_to_device.tied_params_map",description:`<strong>tied_params_map</strong> (Dict[int, Dict[torch.device, torch.Tensor]], <em>optional</em>, defaults to <code>None</code>) — | |
| A map of current data pointers to dictionaries of devices to already dispatched tied weights. For a given | |
| execution device, this parameter is useful to reuse the first available pointer of a shared weight on the | |
| device for all others, instead of duplicating memory.`,name:"tied_params_map"},{anchor:"accelerate.utils.set_module_tensor_to_device.non_blocking",description:`<strong>non_blocking</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| If <code>True</code>, the device transfer will be asynchronous with respect to the host, if possible.`,name:"non_blocking"},{anchor:"accelerate.utils.set_module_tensor_to_device.clear_cache",description:`<strong>clear_cache</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) — | |
| Whether or not to clear the device cache after setting the tensor on the device.`,name:"clear_cache"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/modeling.py#L227"}}),ko=new x({props:{name:"accelerate.utils.get_module_children_bottom_up",anchor:"accelerate.utils.get_module_children_bottom_up",parameters:[{name:"model",val:": Module"},{name:"return_fqns",val:": bool = False"}],parametersDescription:[{anchor:"accelerate.utils.get_module_children_bottom_up.model",description:"<strong>model</strong> (<code>torch.nn.Module</code>) — the model to get the children of",name:"model"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/other.py#L566",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p>a list of children modules of <code>model</code> in bottom-up order. The last element is the | |
| <code>model</code> itself.</p> | |
| `,returnType:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p><code>list[torch.nn.Module]</code></p> | |
| `}}),Po=new M({props:{title:"Parallel",local:"accelerate.utils.extract_model_from_parallel",headingTag:"h2"}}),No=new x({props:{name:"accelerate.utils.extract_model_from_parallel",anchor:"accelerate.utils.extract_model_from_parallel",parameters:[{name:"model",val:""},{name:"keep_fp32_wrapper",val:": bool = True"},{name:"keep_torch_compile",val:": bool = True"},{name:"recursive",val:": bool = False"}],parametersDescription:[{anchor:"accelerate.utils.extract_model_from_parallel.model",description:`<strong>model</strong> (<code>torch.nn.Module</code>) — | |
| The model to extract.`,name:"model"},{anchor:"accelerate.utils.extract_model_from_parallel.keep_fp32_wrapper",description:`<strong>keep_fp32_wrapper</strong> (<code>bool</code>, <em>optional</em>) — | |
| Whether to remove mixed precision hooks from the model.`,name:"keep_fp32_wrapper"},{anchor:"accelerate.utils.extract_model_from_parallel.keep_torch_compile",description:`<strong>keep_torch_compile</strong> (<code>bool</code>, <em>optional</em>) — | |
| Whether to unwrap compiled model.`,name:"keep_torch_compile"},{anchor:"accelerate.utils.extract_model_from_parallel.recursive",description:`<strong>recursive</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| Whether to recursively extract all cases of <code>module.module</code> from <code>model</code> as well as unwrap child sublayers | |
| recursively, not just the top-level distributed containers.`,name:"recursive"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/other.py#L248",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p>The extracted model.</p> | |
| `,returnType:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p><code>torch.nn.Module</code></p> | |
| `}}),Lo=new x({props:{name:"accelerate.utils.save",anchor:"accelerate.utils.save",parameters:[{name:"obj",val:""},{name:"f",val:""},{name:"save_on_each_node",val:": bool = False"},{name:"safe_serialization",val:": bool = False"}],parametersDescription:[{anchor:"accelerate.utils.save.obj",description:`<strong>obj</strong> — | |
| The data to save`,name:"obj"},{anchor:"accelerate.utils.save.f",description:`<strong>f</strong> — | |
| The file (or file-like object) to use to save the data`,name:"f"},{anchor:"accelerate.utils.save.save_on_each_node",description:`<strong>save_on_each_node</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| Whether to only save on the global main process`,name:"save_on_each_node"},{anchor:"accelerate.utils.save.safe_serialization",description:`<strong>safe_serialization</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| Whether to save <code>obj</code> using <code>safetensors</code> or the traditional PyTorch way (that uses <code>pickle</code>).`,name:"safe_serialization"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/other.py#L384"}}),Do=new x({props:{name:"accelerate.utils.load",anchor:"accelerate.utils.load",parameters:[{name:"f",val:""},{name:"map_location",val:" = None"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"accelerate.utils.load.f",description:`<strong>f</strong> — | |
| The file (or file-like object) to use to load the data`,name:"f"},{anchor:"accelerate.utils.load.map_location",description:`<strong>map_location</strong> — | |
| a function, <code>torch.device</code>, string or a dict specifying how to remap storage locations`,name:"map_location"},{anchor:"accelerate.utils.load.*kwargs",description:`*<strong>*kwargs</strong> — | |
| Additional keyword arguments to pass to <code>torch.load()</code>.`,name:"*kwargs"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/other.py#L434"}}),Uo=new x({props:{name:"accelerate.utils.wait_for_everyone",anchor:"accelerate.utils.wait_for_everyone",parameters:[],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/other.py#L336"}}),Pt=new en({props:{warning:!0,$$slots:{default:[sg]},$$scope:{ctx:k}}}),zo=new M({props:{title:"Random",local:"accelerate.utils.set_seed",headingTag:"h2"}}),jo=new x({props:{name:"accelerate.utils.set_seed",anchor:"accelerate.utils.set_seed",parameters:[{name:"seed",val:": int"},{name:"device_specific",val:": bool = False"},{name:"deterministic",val:": bool = False"}],parametersDescription:[{anchor:"accelerate.utils.set_seed.seed",description:`<strong>seed</strong> (<code>int</code>) — | |
| The seed to set.`,name:"seed"},{anchor:"accelerate.utils.set_seed.device_specific",description:`<strong>device_specific</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| Whether to differ the seed on each device slightly with <code>self.process_index</code>.`,name:"device_specific"},{anchor:"accelerate.utils.set_seed.deterministic",description:`<strong>deterministic</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| Whether to use deterministic algorithms where available. Can slow down training.`,name:"deterministic"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/random.py#L40"}}),Io=new x({props:{name:"accelerate.utils.synchronize_rng_state",anchor:"accelerate.utils.synchronize_rng_state",parameters:[{name:"rng_type",val:": typing.Optional[accelerate.utils.dataclasses.RNGType] = None"},{name:"generator",val:": typing.Optional[torch._C.Generator] = None"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/random.py#L81"}}),So=new x({props:{name:"accelerate.synchronize_rng_states",anchor:"accelerate.synchronize_rng_states",parameters:[{name:"rng_types",val:": list"},{name:"generator",val:": typing.Optional[torch._C.Generator] = None"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/random.py#L163"}}),Oo=new M({props:{title:"PyTorch XLA",local:"accelerate.utils.install_xla",headingTag:"h2"}}),Vo=new x({props:{name:"accelerate.utils.install_xla",anchor:"accelerate.utils.install_xla",parameters:[{name:"upgrade",val:": bool = False"}],parametersDescription:[{anchor:"accelerate.utils.install_xla.upgrade",description:`<strong>upgrade</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| Whether to upgrade <code>torch</code> and install the latest <code>torch_xla</code> wheels.`,name:"upgrade"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/torch_xla.py#L20"}}),Mt=new nt({props:{anchor:"accelerate.utils.install_xla.example",$$slots:{default:[ig]},$$scope:{ctx:k}}}),Ro=new M({props:{title:"Loading model weights",local:"accelerate.load_checkpoint_in_model",headingTag:"h2"}}),Wo=new x({props:{name:"accelerate.load_checkpoint_in_model",anchor:"accelerate.load_checkpoint_in_model",parameters:[{name:"model",val:": Module"},{name:"checkpoint",val:": typing.Union[str, os.PathLike]"},{name:"device_map",val:": typing.Optional[dict[str, typing.Union[int, str, torch.device]]] = None"},{name:"offload_folder",val:": typing.Union[str, os.PathLike, NoneType] = None"},{name:"dtype",val:": typing.Union[str, torch.dtype, NoneType] = None"},{name:"offload_state_dict",val:": bool = False"},{name:"offload_buffers",val:": bool = False"},{name:"keep_in_fp32_modules",val:": typing.Optional[list[str]] = None"},{name:"offload_8bit_bnb",val:": bool = False"},{name:"strict",val:": bool = False"},{name:"full_state_dict",val:": bool = True"},{name:"broadcast_from_rank0",val:": bool = False"}],parametersDescription:[{anchor:"accelerate.load_checkpoint_in_model.model",description:`<strong>model</strong> (<code>torch.nn.Module</code>) — | |
| The model in which we want to load a checkpoint.`,name:"model"},{anchor:"accelerate.load_checkpoint_in_model.checkpoint",description:`<strong>checkpoint</strong> (<code>str</code> or <code>os.PathLike</code>) — | |
| The folder checkpoint to load. It can be: | |
| <ul> | |
| <li>a path to a file containing a whole model state dict</li> | |
| <li>a path to a <code>.json</code> file containing the index to a sharded checkpoint</li> | |
| <li>a path to a folder containing a unique <code>.index.json</code> file and the shards of a checkpoint.</li> | |
| <li>a path to a folder containing a unique pytorch_model.bin or a model.safetensors file.</li> | |
| </ul>`,name:"checkpoint"},{anchor:"accelerate.load_checkpoint_in_model.device_map",description:`<strong>device_map</strong> (<code>Dict[str, Union[int, str, torch.device]]</code>, <em>optional</em>) — | |
| A map that specifies where each submodule should go. It doesn’t need to be refined to each parameter/buffer | |
| name, once a given module name is inside, every submodule of it will be sent to the same device.`,name:"device_map"},{anchor:"accelerate.load_checkpoint_in_model.offload_folder",description:`<strong>offload_folder</strong> (<code>str</code> or <code>os.PathLike</code>, <em>optional</em>) — | |
| If the <code>device_map</code> contains any value <code>"disk"</code>, the folder where we will offload weights.`,name:"offload_folder"},{anchor:"accelerate.load_checkpoint_in_model.dtype",description:`<strong>dtype</strong> (<code>str</code> or <code>torch.dtype</code>, <em>optional</em>) — | |
| If provided, the weights will be converted to that type when loaded.`,name:"dtype"},{anchor:"accelerate.load_checkpoint_in_model.offload_state_dict",description:`<strong>offload_state_dict</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| If <code>True</code>, will temporarily offload the CPU state dict on the hard drive to avoid getting out of CPU RAM if | |
| the weight of the CPU state dict + the biggest shard does not fit.`,name:"offload_state_dict"},{anchor:"accelerate.load_checkpoint_in_model.offload_buffers",description:`<strong>offload_buffers</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| Whether or not to include the buffers in the weights offloaded to disk.`,name:"offload_buffers"},{anchor:"accelerate.load_checkpoint_in_model.keep_in_fp32_modules(List[str],",description:`<strong>keep_in_fp32_modules(<code>List[str]</code>,</strong> <em>optional</em>) — | |
| A list of the modules that we keep in <code>torch.float32</code> dtype.`,name:"keep_in_fp32_modules(List[str],"},{anchor:"accelerate.load_checkpoint_in_model.offload_8bit_bnb",description:`<strong>offload_8bit_bnb</strong> (<code>bool</code>, <em>optional</em>) — | |
| Whether or not to enable offload of 8-bit modules on cpu/disk.`,name:"offload_8bit_bnb"},{anchor:"accelerate.load_checkpoint_in_model.strict",description:`<strong>strict</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| Whether to strictly enforce that the keys in the checkpoint state_dict match the keys of the model’s | |
| state_dict.`,name:"strict"},{anchor:"accelerate.load_checkpoint_in_model.full_state_dict",description:`<strong>full_state_dict</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) — if this is set to <code>True</code>, all the tensors in the | |
| loaded state_dict will be gathered. No ShardedTensor and DTensor will be in the loaded state_dict.`,name:"full_state_dict"},{anchor:"accelerate.load_checkpoint_in_model.broadcast_from_rank0",description:`<strong>broadcast_from_rank0</strong> (<code>False</code>, <em>optional</em>, defaults to <code>False</code>) — when the option is <code>True</code>, a distributed | |
| <code>ProcessGroup</code> must be initialized. rank0 should receive a full state_dict and will broadcast the tensors | |
| in the state_dict one by one to other ranks. Other ranks will receive the tensors and shard (if applicable) | |
| according to the local shards in the model.`,name:"broadcast_from_rank0"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/modeling.py#L1805"}}),Nt=new en({props:{warning:!0,$$slots:{default:[cg]},$$scope:{ctx:k}}}),Go=new M({props:{title:"Quantization",local:"accelerate.utils.load_and_quantize_model",headingTag:"h2"}}),Bo=new x({props:{name:"accelerate.utils.load_and_quantize_model",anchor:"accelerate.utils.load_and_quantize_model",parameters:[{name:"model",val:": Module"},{name:"bnb_quantization_config",val:": BnbQuantizationConfig"},{name:"weights_location",val:": typing.Union[str, os.PathLike, NoneType] = None"},{name:"device_map",val:": typing.Optional[dict[str, typing.Union[int, str, torch.device]]] = None"},{name:"no_split_module_classes",val:": typing.Optional[list[str]] = None"},{name:"max_memory",val:": typing.Optional[dict[typing.Union[int, str], typing.Union[int, str]]] = None"},{name:"offload_folder",val:": typing.Union[str, os.PathLike, NoneType] = None"},{name:"offload_state_dict",val:": bool = False"}],parametersDescription:[{anchor:"accelerate.utils.load_and_quantize_model.model",description:`<strong>model</strong> (<code>torch.nn.Module</code>) — | |
| Input model. The model can be already loaded or on the meta device`,name:"model"},{anchor:"accelerate.utils.load_and_quantize_model.bnb_quantization_config",description:`<strong>bnb_quantization_config</strong> (<code>BnbQuantizationConfig</code>) — | |
| The bitsandbytes quantization parameters`,name:"bnb_quantization_config"},{anchor:"accelerate.utils.load_and_quantize_model.weights_location",description:`<strong>weights_location</strong> (<code>str</code> or <code>os.PathLike</code>) — | |
| The folder weights_location to load. It can be: | |
| <ul> | |
| <li>a path to a file containing a whole model state dict</li> | |
| <li>a path to a <code>.json</code> file containing the index to a sharded checkpoint</li> | |
| <li>a path to a folder containing a unique <code>.index.json</code> file and the shards of a checkpoint.</li> | |
| <li>a path to a folder containing a unique pytorch_model.bin file.</li> | |
| </ul>`,name:"weights_location"},{anchor:"accelerate.utils.load_and_quantize_model.device_map",description:`<strong>device_map</strong> (<code>Dict[str, Union[int, str, torch.device]]</code>, <em>optional</em>) — | |
| A map that specifies where each submodule should go. It doesn’t need to be refined to each parameter/buffer | |
| name, once a given module name is inside, every submodule of it will be sent to the same device.`,name:"device_map"},{anchor:"accelerate.utils.load_and_quantize_model.no_split_module_classes",description:`<strong>no_split_module_classes</strong> (<code>List[str]</code>, <em>optional</em>) — | |
| A list of layer class names that should never be split across device (for instance any layer that has a | |
| residual connection).`,name:"no_split_module_classes"},{anchor:"accelerate.utils.load_and_quantize_model.max_memory",description:`<strong>max_memory</strong> (<code>Dict</code>, <em>optional</em>) — | |
| A dictionary device identifier to maximum memory. Will default to the maximum memory available if unset.`,name:"max_memory"},{anchor:"accelerate.utils.load_and_quantize_model.offload_folder",description:`<strong>offload_folder</strong> (<code>str</code> or <code>os.PathLike</code>, <em>optional</em>) — | |
| If the <code>device_map</code> contains any value <code>"disk"</code>, the folder where we will offload weights.`,name:"offload_folder"},{anchor:"accelerate.utils.load_and_quantize_model.offload_state_dict",description:`<strong>offload_state_dict</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) — | |
| If <code>True</code>, will temporarily offload the CPU state dict on the hard drive to avoid getting out of CPU RAM if | |
| the weight of the CPU state dict + the biggest shard does not fit.`,name:"offload_state_dict"}],source:"https://github.com/huggingface/accelerate/blob/vr_4071/src/accelerate/utils/bnb.py#L44",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p>The quantized model</p> | |
| `,returnType:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p><code>torch.nn.Module</code></p> | |
| `}}),Xo=new Ju({props:{source:"https://github.com/huggingface/accelerate/blob/main/docs/source/package_reference/utilities.md"}}),{c(){d=s("meta"),w=o(),b=s("p"),v=o(),m(T.$$.fragment),p=o(),m(C.$$.fragment),sl=o(),Ft=s("p"),Ft.textContent=xp,il=o(),m(jt.$$.fragment),cl=o(),Et=s("p"),Et.textContent=wp,dl=o(),It=s("p"),It.innerHTML=Tp,pl=o(),At=s("p"),At.innerHTML=Cp,ml=o(),St=s("p"),St.innerHTML=kp,ul=o(),Ot=s("p"),Ot.innerHTML=Pp,gl=o(),m(qt.$$.fragment),hl=o(),Vt=s("p"),Vt.textContent=Mp,fl=o(),m(Rt.$$.fragment),_l=o(),Ht=s("p"),Ht.textContent=Np,bl=o(),U=s("div"),m(Wt.$$.fragment),nc=o(),tn=s("p"),tn.textContent=Lp,rc=o(),an=s("p"),an.textContent=Dp,lc=o(),on=s("ul"),on.innerHTML=Up,vl=o(),z=s("div"),m(Gt.$$.fragment),sc=o(),nn=s("p"),nn.textContent=zp,ic=o(),rn=s("p"),rn.textContent=Fp,cc=o(),ln=s("ul"),ln.innerHTML=jp,yl=o(),F=s("div"),m(Jt.$$.fragment),dc=o(),sn=s("p"),sn.innerHTML=Ep,pc=o(),cn=s("p"),cn.textContent=Ip,mc=o(),dn=s("ul"),dn.innerHTML=Ap,$l=o(),j=s("div"),m(Bt.$$.fragment),uc=o(),pn=s("p"),pn.textContent=Sp,gc=o(),mn=s("p"),mn.textContent=Op,hc=o(),un=s("ul"),un.innerHTML=qp,xl=o(),E=s("div"),m(Xt.$$.fragment),fc=o(),gn=s("p"),gn.textContent=Vp,_c=o(),hn=s("p"),hn.textContent=Rp,bc=o(),fn=s("ul"),fn.innerHTML=Hp,wl=o(),he=s("div"),m(Zt.$$.fragment),vc=o(),_n=s("p"),_n.textContent=Wp,Tl=o(),I=s("div"),m(Yt.$$.fragment),yc=o(),bn=s("p"),bn.textContent=Gp,$c=o(),vn=s("p"),vn.textContent=Jp,xc=o(),yn=s("ul"),yn.innerHTML=Bp,Cl=o(),m(Qt.$$.fragment),kl=o(),Kt=s("p"),Kt.textContent=Xp,Pl=o(),J=s("div"),m(ea.$$.fragment),wc=o(),$n=s("p"),$n.innerHTML=Zp,Tc=o(),m(lt.$$.fragment),Ml=o(),A=s("div"),m(ta.$$.fragment),Cc=o(),xn=s("p"),xn.innerHTML=Yp,kc=o(),m(st.$$.fragment),Pc=o(),m(it.$$.fragment),Nl=o(),fe=s("div"),m(aa.$$.fragment),Mc=o(),wn=s("p"),wn.innerHTML=Qp,Ll=o(),S=s("div"),m(oa.$$.fragment),Nc=o(),Tn=s("p"),Tn.innerHTML=Kp,Lc=o(),m(ct.$$.fragment),Dc=o(),m(dt.$$.fragment),Dl=o(),O=s("div"),m(na.$$.fragment),Uc=o(),Cn=s("p"),Cn.innerHTML=em,zc=o(),kn=s("p"),kn.innerHTML=tm,Fc=o(),m(pt.$$.fragment),Ul=o(),B=s("div"),m(ra.$$.fragment),jc=o(),Pn=s("p"),Pn.innerHTML=am,Ec=o(),mt=s("div"),m(la.$$.fragment),Ic=o(),Mn=s("p"),Mn.textContent=om,zl=o(),m(sa.$$.fragment),Fl=o(),ia=s("p"),ia.innerHTML=nm,jl=o(),q=s("div"),m(ca.$$.fragment),Ac=o(),Nn=s("p"),Nn.textContent=rm,Sc=o(),ut=s("div"),m(da.$$.fragment),Oc=o(),Ln=s("p"),Ln.textContent=lm,qc=o(),gt=s("div"),m(pa.$$.fragment),Vc=o(),Dn=s("p"),Dn.textContent=sm,El=o(),N=s("div"),m(ma.$$.fragment),Rc=o(),Un=s("p"),Un.textContent=im,Hc=o(),ht=s("div"),m(ua.$$.fragment),Wc=o(),zn=s("p"),zn.innerHTML=cm,Gc=o(),ft=s("div"),m(ga.$$.fragment),Jc=o(),Fn=s("p"),Fn.textContent=dm,Bc=o(),_t=s("div"),m(ha.$$.fragment),Xc=o(),jn=s("p"),jn.innerHTML=pm,Zc=o(),bt=s("div"),m(fa.$$.fragment),Yc=o(),En=s("p"),En.textContent=mm,Il=o(),X=s("div"),m(_a.$$.fragment),Qc=o(),In=s("p"),In.innerHTML=um,Kc=o(),m(vt.$$.fragment),Al=o(),_e=s("div"),m(ba.$$.fragment),ed=o(),An=s("p"),An.textContent=gm,Sl=o(),be=s("div"),m(va.$$.fragment),td=o(),Sn=s("p"),Sn.textContent=hm,Ol=o(),m(ya.$$.fragment),ql=o(),$a=s("p"),$a.textContent=fm,Vl=o(),ve=s("div"),m(xa.$$.fragment),ad=o(),On=s("p"),On.textContent=_m,Rl=o(),ye=s("div"),m(wa.$$.fragment),od=o(),qn=s("p"),qn.innerHTML=bm,Hl=o(),Z=s("div"),m(Ta.$$.fragment),nd=o(),Vn=s("p"),Vn.textContent=vm,rd=o(),yt=s("div"),m(Ca.$$.fragment),ld=o(),Rn=s("p"),Rn.innerHTML=ym,Wl=o(),m(ka.$$.fragment),Gl=o(),Pa=s("p"),Pa.textContent=$m,Jl=o(),Ma=s("ul"),Ma.innerHTML=xm,Bl=o(),m(Na.$$.fragment),Xl=o(),La=s("p"),La.innerHTML=wm,Zl=o(),$e=s("div"),m(Da.$$.fragment),sd=o(),Hn=s("p"),Hn.textContent=Tm,Yl=o(),xe=s("div"),m(Ua.$$.fragment),id=o(),Wn=s("p"),Wn.textContent=Cm,Ql=o(),we=s("div"),m(za.$$.fragment),cd=o(),Gn=s("p"),Gn.textContent=km,Kl=o(),Fa=s("div"),m(ja.$$.fragment),es=o(),Te=s("div"),m(Ea.$$.fragment),dd=o(),Jn=s("p"),Jn.textContent=Pm,ts=o(),Ce=s("div"),m(Ia.$$.fragment),pd=o(),Bn=s("p"),Bn.textContent=Mm,as=o(),ke=s("div"),m(Aa.$$.fragment),md=o(),Xn=s("p"),Xn.textContent=Nm,os=o(),Pe=s("div"),m(Sa.$$.fragment),ud=o(),Zn=s("p"),Zn.innerHTML=Lm,ns=o(),Me=s("div"),m(Oa.$$.fragment),gd=o(),Yn=s("p"),Yn.textContent=Dm,rs=o(),Ne=s("div"),m(qa.$$.fragment),hd=o(),Qn=s("p"),Qn.textContent=Um,ls=o(),Le=s("div"),m(Va.$$.fragment),fd=o(),Kn=s("p"),Kn.textContent=zm,ss=o(),De=s("div"),m(Ra.$$.fragment),_d=o(),er=s("p"),er.textContent=Fm,is=o(),Ue=s("div"),m(Ha.$$.fragment),bd=o(),tr=s("p"),tr.textContent=jm,cs=o(),ze=s("div"),m(Wa.$$.fragment),vd=o(),ar=s("p"),ar.textContent=Em,ds=o(),Fe=s("div"),m(Ga.$$.fragment),yd=o(),or=s("p"),or.textContent=Im,ps=o(),m(Ja.$$.fragment),ms=o(),Ba=s("p"),Ba.textContent=Am,us=o(),je=s("div"),m(Xa.$$.fragment),$d=o(),nr=s("p"),nr.textContent=Sm,gs=o(),Ee=s("div"),m(Za.$$.fragment),xd=o(),rr=s("p"),rr.textContent=Om,hs=o(),Ie=s("div"),m(Ya.$$.fragment),wd=o(),lr=s("p"),lr.innerHTML=qm,fs=o(),Ae=s("div"),m(Qa.$$.fragment),Td=o(),sr=s("p"),sr.textContent=Vm,_s=o(),Se=s("div"),m(Ka.$$.fragment),Cd=o(),ir=s("p"),ir.innerHTML=Rm,bs=o(),Oe=s("div"),m(eo.$$.fragment),kd=o(),cr=s("p"),cr.textContent=Hm,vs=o(),m(to.$$.fragment),ys=o(),V=s("div"),m(ao.$$.fragment),Pd=o(),dr=s("p"),dr.innerHTML=Wm,Md=o(),pr=s("p"),pr.innerHTML=Gm,Nd=o(),m($t.$$.fragment),$s=o(),R=s("div"),m(oo.$$.fragment),Ld=o(),mr=s("p"),mr.textContent=Jm,Dd=o(),ur=s("p"),ur.textContent=Bm,Ud=o(),m(xt.$$.fragment),xs=o(),qe=s("div"),m(no.$$.fragment),zd=o(),gr=s("p"),gr.textContent=Xm,ws=o(),ro=s("p"),ro.innerHTML=Zm,Ts=o(),Y=s("div"),m(lo.$$.fragment),Fd=o(),hr=s("p"),hr.textContent=Ym,jd=o(),fr=s("p"),fr.innerHTML=Qm,Cs=o(),Ve=s("div"),m(so.$$.fragment),Ed=o(),_r=s("p"),_r.innerHTML=Km,ks=o(),P=s("div"),m(io.$$.fragment),Id=o(),br=s("p"),br.textContent=eu,Ad=o(),vr=s("p"),vr.textContent=tu,Sd=o(),yr=s("p"),yr.textContent=au,Od=o(),$r=s("p"),$r.textContent=ou,qd=o(),xr=s("p"),xr.textContent=nu,Vd=o(),wr=s("p"),wr.textContent=ru,Ps=o(),m(co.$$.fragment),Ms=o(),H=s("div"),m(po.$$.fragment),Rd=o(),Tr=s("p"),Tr.innerHTML=lu,Hd=o(),Cr=s("p"),Cr.innerHTML=su,Wd=o(),m(wt.$$.fragment),Ns=o(),m(mo.$$.fragment),Ls=o(),uo=s("p"),uo.textContent=iu,Ds=o(),Re=s("div"),m(go.$$.fragment),Gd=o(),kr=s("p"),kr.textContent=cu,Us=o(),He=s("div"),m(ho.$$.fragment),Jd=o(),Pr=s("p"),Pr.textContent=du,zs=o(),We=s("div"),m(fo.$$.fragment),Bd=o(),Mr=s("p"),Mr.textContent=pu,Fs=o(),Q=s("div"),m(_o.$$.fragment),Xd=o(),Nr=s("p"),Nr.innerHTML=mu,Zd=o(),m(Tt.$$.fragment),js=o(),K=s("div"),m(bo.$$.fragment),Yd=o(),Lr=s("p"),Lr.textContent=uu,Qd=o(),Dr=s("ul"),Dr.innerHTML=gu,Es=o(),W=s("div"),m(vo.$$.fragment),Kd=o(),Ur=s("p"),Ur.textContent=hu,ep=o(),zr=s("ul"),zr.innerHTML=fu,tp=o(),m(Ct.$$.fragment),Is=o(),ee=s("div"),m(yo.$$.fragment),ap=o(),Fr=s("p"),Fr.textContent=_u,op=o(),m(kt.$$.fragment),As=o(),Ge=s("div"),m($o.$$.fragment),np=o(),jr=s("p"),jr.textContent=bu,Ss=o(),Je=s("div"),m(xo.$$.fragment),rp=o(),Er=s("p"),Er.textContent=vu,Os=o(),Be=s("div"),m(wo.$$.fragment),lp=o(),Ir=s("p"),Ir.textContent=yu,qs=o(),Xe=s("div"),m(To.$$.fragment),sp=o(),Ar=s("p"),Ar.textContent=$u,Vs=o(),Ze=s("div"),m(Co.$$.fragment),ip=o(),Sr=s("p"),Sr.innerHTML=xu,Rs=o(),Ye=s("div"),m(ko.$$.fragment),cp=o(),Or=s("p"),Or.textContent=wu,Hs=o(),m(Po.$$.fragment),Ws=o(),Mo=s("p"),Mo.textContent=Tu,Gs=o(),Qe=s("div"),m(No.$$.fragment),dp=o(),qr=s("p"),qr.textContent=Cu,Js=o(),Ke=s("div"),m(Lo.$$.fragment),pp=o(),Vr=s("p"),Vr.innerHTML=ku,Bs=o(),te=s("div"),m(Do.$$.fragment),mp=o(),Rr=s("p"),Rr.innerHTML=Pu,up=o(),Hr=s("p"),Hr.textContent=Mu,Xs=o(),ae=s("div"),m(Uo.$$.fragment),gp=o(),Wr=s("p"),Wr.textContent=Nu,hp=o(),m(Pt.$$.fragment),Zs=o(),m(zo.$$.fragment),Ys=o(),Fo=s("p"),Fo.textContent=Lu,Qs=o(),et=s("div"),m(jo.$$.fragment),fp=o(),Gr=s("p"),Gr.innerHTML=Du,Ks=o(),Eo=s("div"),m(Io.$$.fragment),ei=o(),Ao=s("div"),m(So.$$.fragment),ti=o(),m(Oo.$$.fragment),ai=o(),qo=s("p"),qo.textContent=Uu,oi=o(),oe=s("div"),m(Vo.$$.fragment),_p=o(),Jr=s("p"),Jr.innerHTML=zu,bp=o(),m(Mt.$$.fragment),ni=o(),m(Ro.$$.fragment),ri=o(),Ho=s("p"),Ho.textContent=Fu,li=o(),ne=s("div"),m(Wo.$$.fragment),vp=o(),Br=s("p"),Br.textContent=ju,yp=o(),m(Nt.$$.fragment),si=o(),m(Go.$$.fragment),ii=o(),Jo=s("p"),Jo.textContent=Eu,ci=o(),tt=s("div"),m(Bo.$$.fragment),$p=o(),Xr=s("p"),Xr.innerHTML=Iu,di=o(),m(Xo.$$.fragment),pi=o(),ll=s("p"),this.h()},l(e){const a=Wu("svelte-u9bgzb",document.head);d=i(a,"META",{name:!0,content:!0}),a.forEach(t),w=n(e),b=i(e,"P",{}),y(b).forEach(t),v=n(e),u(T.$$.fragment,e),p=n(e),u(C.$$.fragment,e),sl=n(e),Ft=i(e,"P",{"data-svelte-h":!0}),c(Ft)!=="svelte-1opyj5n"&&(Ft.textContent=xp),il=n(e),u(jt.$$.fragment,e),cl=n(e),Et=i(e,"P",{"data-svelte-h":!0}),c(Et)!=="svelte-rtwln7"&&(Et.textContent=wp),dl=n(e),It=i(e,"P",{"data-svelte-h":!0}),c(It)!=="svelte-1amfmka"&&(It.innerHTML=Tp),pl=n(e),At=i(e,"P",{"data-svelte-h":!0}),c(At)!=="svelte-197v0qk"&&(At.innerHTML=Cp),ml=n(e),St=i(e,"P",{"data-svelte-h":!0}),c(St)!=="svelte-uxgx6y"&&(St.innerHTML=kp),ul=n(e),Ot=i(e,"P",{"data-svelte-h":!0}),c(Ot)!=="svelte-1c1hnpu"&&(Ot.innerHTML=Pp),gl=n(e),u(qt.$$.fragment,e),hl=n(e),Vt=i(e,"P",{"data-svelte-h":!0}),c(Vt)!=="svelte-l8y4lq"&&(Vt.textContent=Mp),fl=n(e),u(Rt.$$.fragment,e),_l=n(e),Ht=i(e,"P",{"data-svelte-h":!0}),c(Ht)!=="svelte-cwhjwk"&&(Ht.textContent=Np),bl=n(e),U=i(e,"DIV",{class:!0});var re=y(U);u(Wt.$$.fragment,re),nc=n(re),tn=i(re,"P",{"data-svelte-h":!0}),c(tn)!=="svelte-wf2a9a"&&(tn.textContent=Lp),rc=n(re),an=i(re,"P",{"data-svelte-h":!0}),c(an)!=="svelte-1hn5iks"&&(an.textContent=Dp),lc=n(re),on=i(re,"UL",{"data-svelte-h":!0}),c(on)!=="svelte-1opfktt"&&(on.innerHTML=Up),re.forEach(t),vl=n(e),z=i(e,"DIV",{class:!0});var le=y(z);u(Gt.$$.fragment,le),sc=n(le),nn=i(le,"P",{"data-svelte-h":!0}),c(nn)!=="svelte-1phk8bn"&&(nn.textContent=zp),ic=n(le),rn=i(le,"P",{"data-svelte-h":!0}),c(rn)!=="svelte-1hn5iks"&&(rn.textContent=Fp),cc=n(le),ln=i(le,"UL",{"data-svelte-h":!0}),c(ln)!=="svelte-nmt0u9"&&(ln.innerHTML=jp),le.forEach(t),yl=n(e),F=i(e,"DIV",{class:!0});var se=y(F);u(Jt.$$.fragment,se),dc=n(se),sn=i(se,"P",{"data-svelte-h":!0}),c(sn)!=="svelte-1l113rz"&&(sn.innerHTML=Ep),pc=n(se),cn=i(se,"P",{"data-svelte-h":!0}),c(cn)!=="svelte-1hn5iks"&&(cn.textContent=Ip),mc=n(se),dn=i(se,"UL",{"data-svelte-h":!0}),c(dn)!=="svelte-bocn8"&&(dn.innerHTML=Ap),se.forEach(t),$l=n(e),j=i(e,"DIV",{class:!0});var ie=y(j);u(Bt.$$.fragment,ie),uc=n(ie),pn=i(ie,"P",{"data-svelte-h":!0}),c(pn)!=="svelte-1r8llng"&&(pn.textContent=Sp),gc=n(ie),mn=i(ie,"P",{"data-svelte-h":!0}),c(mn)!=="svelte-1hn5iks"&&(mn.textContent=Op),hc=n(ie),un=i(ie,"UL",{"data-svelte-h":!0}),c(un)!=="svelte-8tnxrp"&&(un.innerHTML=qp),ie.forEach(t),xl=n(e),E=i(e,"DIV",{class:!0});var ce=y(E);u(Xt.$$.fragment,ce),fc=n(ce),gn=i(ce,"P",{"data-svelte-h":!0}),c(gn)!=="svelte-1i67rqt"&&(gn.textContent=Vp),_c=n(ce),hn=i(ce,"P",{"data-svelte-h":!0}),c(hn)!=="svelte-1hn5iks"&&(hn.textContent=Rp),bc=n(ce),fn=i(ce,"UL",{"data-svelte-h":!0}),c(fn)!=="svelte-1qjoupb"&&(fn.innerHTML=Hp),ce.forEach(t),wl=n(e),he=i(e,"DIV",{class:!0});var Zo=y(he);u(Zt.$$.fragment,Zo),vc=n(Zo),_n=i(Zo,"P",{"data-svelte-h":!0}),c(_n)!=="svelte-ofujqi"&&(_n.textContent=Wp),Zo.forEach(t),Tl=n(e),I=i(e,"DIV",{class:!0});var de=y(I);u(Yt.$$.fragment,de),yc=n(de),bn=i(de,"P",{"data-svelte-h":!0}),c(bn)!=="svelte-1phk8bn"&&(bn.textContent=Gp),$c=n(de),vn=i(de,"P",{"data-svelte-h":!0}),c(vn)!=="svelte-1hn5iks"&&(vn.textContent=Jp),xc=n(de),yn=i(de,"UL",{"data-svelte-h":!0}),c(yn)!=="svelte-ndowtx"&&(yn.innerHTML=Bp),de.forEach(t),Cl=n(e),u(Qt.$$.fragment,e),kl=n(e),Kt=i(e,"P",{"data-svelte-h":!0}),c(Kt)!=="svelte-1s4vvsz"&&(Kt.textContent=Xp),Pl=n(e),J=i(e,"DIV",{class:!0});var at=y(J);u(ea.$$.fragment,at),wc=n(at),$n=i(at,"P",{"data-svelte-h":!0}),c($n)!=="svelte-1l3hd0j"&&($n.innerHTML=Zp),Tc=n(at),u(lt.$$.fragment,at),at.forEach(t),Ml=n(e),A=i(e,"DIV",{class:!0});var pe=y(A);u(ta.$$.fragment,pe),Cc=n(pe),xn=i(pe,"P",{"data-svelte-h":!0}),c(xn)!=="svelte-gqk954"&&(xn.innerHTML=Yp),kc=n(pe),u(st.$$.fragment,pe),Pc=n(pe),u(it.$$.fragment,pe),pe.forEach(t),Nl=n(e),fe=i(e,"DIV",{class:!0});var Yo=y(fe);u(aa.$$.fragment,Yo),Mc=n(Yo),wn=i(Yo,"P",{"data-svelte-h":!0}),c(wn)!=="svelte-1b6vct0"&&(wn.innerHTML=Qp),Yo.forEach(t),Ll=n(e),S=i(e,"DIV",{class:!0});var me=y(S);u(oa.$$.fragment,me),Nc=n(me),Tn=i(me,"P",{"data-svelte-h":!0}),c(Tn)!=="svelte-146kzxo"&&(Tn.innerHTML=Kp),Lc=n(me),u(ct.$$.fragment,me),Dc=n(me),u(dt.$$.fragment,me),me.forEach(t),Dl=n(e),O=i(e,"DIV",{class:!0});var ue=y(O);u(na.$$.fragment,ue),Uc=n(ue),Cn=i(ue,"P",{"data-svelte-h":!0}),c(Cn)!=="svelte-1yxarrs"&&(Cn.innerHTML=em),zc=n(ue),kn=i(ue,"P",{"data-svelte-h":!0}),c(kn)!=="svelte-l1d7ay"&&(kn.innerHTML=tm),Fc=n(ue),u(pt.$$.fragment,ue),ue.forEach(t),Ul=n(e),B=i(e,"DIV",{class:!0});var ot=y(B);u(ra.$$.fragment,ot),jc=n(ot),Pn=i(ot,"P",{"data-svelte-h":!0}),c(Pn)!=="svelte-1g1ngcq"&&(Pn.innerHTML=am),Ec=n(ot),mt=i(ot,"DIV",{class:!0});var Qo=y(mt);u(la.$$.fragment,Qo),Ic=n(Qo),Mn=i(Qo,"P",{"data-svelte-h":!0}),c(Mn)!=="svelte-1iftwh6"&&(Mn.textContent=om),Qo.forEach(t),ot.forEach(t),zl=n(e),u(sa.$$.fragment,e),Fl=n(e),ia=i(e,"P",{"data-svelte-h":!0}),c(ia)!=="svelte-pvjsyt"&&(ia.innerHTML=nm),jl=n(e),q=i(e,"DIV",{class:!0});var ge=y(q);u(ca.$$.fragment,ge),Ac=n(ge),Nn=i(ge,"P",{"data-svelte-h":!0}),c(Nn)!=="svelte-i90brl"&&(Nn.textContent=rm),Sc=n(ge),ut=i(ge,"DIV",{class:!0});var Ko=y(ut);u(da.$$.fragment,Ko),Oc=n(Ko),Ln=i(Ko,"P",{"data-svelte-h":!0}),c(Ln)!=="svelte-ht2n4g"&&(Ln.textContent=lm),Ko.forEach(t),qc=n(ge),gt=i(ge,"DIV",{class:!0});var ui=y(gt);u(pa.$$.fragment,ui),Vc=n(ui),Dn=i(ui,"P",{"data-svelte-h":!0}),c(Dn)!=="svelte-19c3yl4"&&(Dn.textContent=sm),ui.forEach(t),ge.forEach(t),El=n(e),N=i(e,"DIV",{class:!0});var G=y(N);u(ma.$$.fragment,G),Rc=n(G),Un=i(G,"P",{"data-svelte-h":!0}),c(Un)!=="svelte-da89af"&&(Un.textContent=im),Hc=n(G),ht=i(G,"DIV",{class:!0});var gi=y(ht);u(ua.$$.fragment,gi),Wc=n(gi),zn=i(gi,"P",{"data-svelte-h":!0}),c(zn)!=="svelte-1cfoaqn"&&(zn.innerHTML=cm),gi.forEach(t),Gc=n(G),ft=i(G,"DIV",{class:!0});var hi=y(ft);u(ga.$$.fragment,hi),Jc=n(hi),Fn=i(hi,"P",{"data-svelte-h":!0}),c(Fn)!=="svelte-1oofbyv"&&(Fn.textContent=dm),hi.forEach(t),Bc=n(G),_t=i(G,"DIV",{class:!0});var fi=y(_t);u(ha.$$.fragment,fi),Xc=n(fi),jn=i(fi,"P",{"data-svelte-h":!0}),c(jn)!=="svelte-1ugzx3"&&(jn.innerHTML=pm),fi.forEach(t),Zc=n(G),bt=i(G,"DIV",{class:!0});var _i=y(bt);u(fa.$$.fragment,_i),Yc=n(_i),En=i(_i,"P",{"data-svelte-h":!0}),c(En)!=="svelte-w1jkhd"&&(En.textContent=mm),_i.forEach(t),G.forEach(t),Il=n(e),X=i(e,"DIV",{class:!0});var Zr=y(X);u(_a.$$.fragment,Zr),Qc=n(Zr),In=i(Zr,"P",{"data-svelte-h":!0}),c(In)!=="svelte-1022hl7"&&(In.innerHTML=um),Kc=n(Zr),u(vt.$$.fragment,Zr),Zr.forEach(t),Al=n(e),_e=i(e,"DIV",{class:!0});var bi=y(_e);u(ba.$$.fragment,bi),ed=n(bi),An=i(bi,"P",{"data-svelte-h":!0}),c(An)!=="svelte-51ubws"&&(An.textContent=gm),bi.forEach(t),Sl=n(e),be=i(e,"DIV",{class:!0});var vi=y(be);u(va.$$.fragment,vi),td=n(vi),Sn=i(vi,"P",{"data-svelte-h":!0}),c(Sn)!=="svelte-1m7chxz"&&(Sn.textContent=hm),vi.forEach(t),Ol=n(e),u(ya.$$.fragment,e),ql=n(e),$a=i(e,"P",{"data-svelte-h":!0}),c($a)!=="svelte-1tweo9o"&&($a.textContent=fm),Vl=n(e),ve=i(e,"DIV",{class:!0});var yi=y(ve);u(xa.$$.fragment,yi),ad=n(yi),On=i(yi,"P",{"data-svelte-h":!0}),c(On)!=="svelte-13x39ro"&&(On.textContent=_m),yi.forEach(t),Rl=n(e),ye=i(e,"DIV",{class:!0});var $i=y(ye);u(wa.$$.fragment,$i),od=n($i),qn=i($i,"P",{"data-svelte-h":!0}),c(qn)!=="svelte-14x0z8b"&&(qn.innerHTML=bm),$i.forEach(t),Hl=n(e),Z=i(e,"DIV",{class:!0});var Yr=y(Z);u(Ta.$$.fragment,Yr),nd=n(Yr),Vn=i(Yr,"P",{"data-svelte-h":!0}),c(Vn)!=="svelte-gc8xmf"&&(Vn.textContent=vm),rd=n(Yr),yt=i(Yr,"DIV",{class:!0});var xi=y(yt);u(Ca.$$.fragment,xi),ld=n(xi),Rn=i(xi,"P",{"data-svelte-h":!0}),c(Rn)!=="svelte-1ujo3ix"&&(Rn.innerHTML=ym),xi.forEach(t),Yr.forEach(t),Wl=n(e),u(ka.$$.fragment,e),Gl=n(e),Pa=i(e,"P",{"data-svelte-h":!0}),c(Pa)!=="svelte-1shqm9t"&&(Pa.textContent=$m),Jl=n(e),Ma=i(e,"UL",{"data-svelte-h":!0}),c(Ma)!=="svelte-1vchd8m"&&(Ma.innerHTML=xm),Bl=n(e),u(Na.$$.fragment,e),Xl=n(e),La=i(e,"P",{"data-svelte-h":!0}),c(La)!=="svelte-1tvk1lr"&&(La.innerHTML=wm),Zl=n(e),$e=i(e,"DIV",{class:!0});var wi=y($e);u(Da.$$.fragment,wi),sd=n(wi),Hn=i(wi,"P",{"data-svelte-h":!0}),c(Hn)!=="svelte-1nqeor6"&&(Hn.textContent=Tm),wi.forEach(t),Yl=n(e),xe=i(e,"DIV",{class:!0});var Ti=y(xe);u(Ua.$$.fragment,Ti),id=n(Ti),Wn=i(Ti,"P",{"data-svelte-h":!0}),c(Wn)!=="svelte-12lamj8"&&(Wn.textContent=Cm),Ti.forEach(t),Ql=n(e),we=i(e,"DIV",{class:!0});var Ci=y(we);u(za.$$.fragment,Ci),cd=n(Ci),Gn=i(Ci,"P",{"data-svelte-h":!0}),c(Gn)!=="svelte-kfgwkv"&&(Gn.textContent=km),Ci.forEach(t),Kl=n(e),Fa=i(e,"DIV",{class:!0});var Au=y(Fa);u(ja.$$.fragment,Au),Au.forEach(t),es=n(e),Te=i(e,"DIV",{class:!0});var ki=y(Te);u(Ea.$$.fragment,ki),dd=n(ki),Jn=i(ki,"P",{"data-svelte-h":!0}),c(Jn)!=="svelte-1f5qpw3"&&(Jn.textContent=Pm),ki.forEach(t),ts=n(e),Ce=i(e,"DIV",{class:!0});var Pi=y(Ce);u(Ia.$$.fragment,Pi),pd=n(Pi),Bn=i(Pi,"P",{"data-svelte-h":!0}),c(Bn)!=="svelte-5pai0x"&&(Bn.textContent=Mm),Pi.forEach(t),as=n(e),ke=i(e,"DIV",{class:!0});var Mi=y(ke);u(Aa.$$.fragment,Mi),md=n(Mi),Xn=i(Mi,"P",{"data-svelte-h":!0}),c(Xn)!=="svelte-11ueuet"&&(Xn.textContent=Nm),Mi.forEach(t),os=n(e),Pe=i(e,"DIV",{class:!0});var Ni=y(Pe);u(Sa.$$.fragment,Ni),ud=n(Ni),Zn=i(Ni,"P",{"data-svelte-h":!0}),c(Zn)!=="svelte-kwfglh"&&(Zn.innerHTML=Lm),Ni.forEach(t),ns=n(e),Me=i(e,"DIV",{class:!0});var Li=y(Me);u(Oa.$$.fragment,Li),gd=n(Li),Yn=i(Li,"P",{"data-svelte-h":!0}),c(Yn)!=="svelte-qjymlr"&&(Yn.textContent=Dm),Li.forEach(t),rs=n(e),Ne=i(e,"DIV",{class:!0});var Di=y(Ne);u(qa.$$.fragment,Di),hd=n(Di),Qn=i(Di,"P",{"data-svelte-h":!0}),c(Qn)!=="svelte-l7a6me"&&(Qn.textContent=Um),Di.forEach(t),ls=n(e),Le=i(e,"DIV",{class:!0});var Ui=y(Le);u(Va.$$.fragment,Ui),fd=n(Ui),Kn=i(Ui,"P",{"data-svelte-h":!0}),c(Kn)!=="svelte-qzz0oh"&&(Kn.textContent=zm),Ui.forEach(t),ss=n(e),De=i(e,"DIV",{class:!0});var zi=y(De);u(Ra.$$.fragment,zi),_d=n(zi),er=i(zi,"P",{"data-svelte-h":!0}),c(er)!=="svelte-1b3b6xq"&&(er.textContent=Fm),zi.forEach(t),is=n(e),Ue=i(e,"DIV",{class:!0});var Fi=y(Ue);u(Ha.$$.fragment,Fi),bd=n(Fi),tr=i(Fi,"P",{"data-svelte-h":!0}),c(tr)!=="svelte-p9wfl6"&&(tr.textContent=jm),Fi.forEach(t),cs=n(e),ze=i(e,"DIV",{class:!0});var ji=y(ze);u(Wa.$$.fragment,ji),vd=n(ji),ar=i(ji,"P",{"data-svelte-h":!0}),c(ar)!=="svelte-2v57ft"&&(ar.textContent=Em),ji.forEach(t),ds=n(e),Fe=i(e,"DIV",{class:!0});var Ei=y(Fe);u(Ga.$$.fragment,Ei),yd=n(Ei),or=i(Ei,"P",{"data-svelte-h":!0}),c(or)!=="svelte-1hg6hgs"&&(or.textContent=Im),Ei.forEach(t),ps=n(e),u(Ja.$$.fragment,e),ms=n(e),Ba=i(e,"P",{"data-svelte-h":!0}),c(Ba)!=="svelte-1vw1u7x"&&(Ba.textContent=Am),us=n(e),je=i(e,"DIV",{class:!0});var Ii=y(je);u(Xa.$$.fragment,Ii),$d=n(Ii),nr=i(Ii,"P",{"data-svelte-h":!0}),c(nr)!=="svelte-pknf9r"&&(nr.textContent=Sm),Ii.forEach(t),gs=n(e),Ee=i(e,"DIV",{class:!0});var Ai=y(Ee);u(Za.$$.fragment,Ai),xd=n(Ai),rr=i(Ai,"P",{"data-svelte-h":!0}),c(rr)!=="svelte-1hzjle7"&&(rr.textContent=Om),Ai.forEach(t),hs=n(e),Ie=i(e,"DIV",{class:!0});var Si=y(Ie);u(Ya.$$.fragment,Si),wd=n(Si),lr=i(Si,"P",{"data-svelte-h":!0}),c(lr)!=="svelte-1ozj1zv"&&(lr.innerHTML=qm),Si.forEach(t),fs=n(e),Ae=i(e,"DIV",{class:!0});var Oi=y(Ae);u(Qa.$$.fragment,Oi),Td=n(Oi),sr=i(Oi,"P",{"data-svelte-h":!0}),c(sr)!=="svelte-lbejrh"&&(sr.textContent=Vm),Oi.forEach(t),_s=n(e),Se=i(e,"DIV",{class:!0});var qi=y(Se);u(Ka.$$.fragment,qi),Cd=n(qi),ir=i(qi,"P",{"data-svelte-h":!0}),c(ir)!=="svelte-1ab1a3x"&&(ir.innerHTML=Rm),qi.forEach(t),bs=n(e),Oe=i(e,"DIV",{class:!0});var Vi=y(Oe);u(eo.$$.fragment,Vi),kd=n(Vi),cr=i(Vi,"P",{"data-svelte-h":!0}),c(cr)!=="svelte-1xybz7o"&&(cr.textContent=Hm),Vi.forEach(t),vs=n(e),u(to.$$.fragment,e),ys=n(e),V=i(e,"DIV",{class:!0});var Lt=y(V);u(ao.$$.fragment,Lt),Pd=n(Lt),dr=i(Lt,"P",{"data-svelte-h":!0}),c(dr)!=="svelte-1bydad4"&&(dr.innerHTML=Wm),Md=n(Lt),pr=i(Lt,"P",{"data-svelte-h":!0}),c(pr)!=="svelte-pbl6e"&&(pr.innerHTML=Gm),Nd=n(Lt),u($t.$$.fragment,Lt),Lt.forEach(t),$s=n(e),R=i(e,"DIV",{class:!0});var Dt=y(R);u(oo.$$.fragment,Dt),Ld=n(Dt),mr=i(Dt,"P",{"data-svelte-h":!0}),c(mr)!=="svelte-1orrj43"&&(mr.textContent=Jm),Dd=n(Dt),ur=i(Dt,"P",{"data-svelte-h":!0}),c(ur)!=="svelte-13444w0"&&(ur.textContent=Bm),Ud=n(Dt),u(xt.$$.fragment,Dt),Dt.forEach(t),xs=n(e),qe=i(e,"DIV",{class:!0});var Ri=y(qe);u(no.$$.fragment,Ri),zd=n(Ri),gr=i(Ri,"P",{"data-svelte-h":!0}),c(gr)!=="svelte-bn0j3y"&&(gr.textContent=Xm),Ri.forEach(t),ws=n(e),ro=i(e,"P",{"data-svelte-h":!0}),c(ro)!=="svelte-1a2nuzu"&&(ro.innerHTML=Zm),Ts=n(e),Y=i(e,"DIV",{class:!0});var Qr=y(Y);u(lo.$$.fragment,Qr),Fd=n(Qr),hr=i(Qr,"P",{"data-svelte-h":!0}),c(hr)!=="svelte-lzv79z"&&(hr.textContent=Ym),jd=n(Qr),fr=i(Qr,"P",{"data-svelte-h":!0}),c(fr)!=="svelte-ygnyji"&&(fr.innerHTML=Qm),Qr.forEach(t),Cs=n(e),Ve=i(e,"DIV",{class:!0});var Hi=y(Ve);u(so.$$.fragment,Hi),Ed=n(Hi),_r=i(Hi,"P",{"data-svelte-h":!0}),c(_r)!=="svelte-19wz2b5"&&(_r.innerHTML=Km),Hi.forEach(t),ks=n(e),P=i(e,"DIV",{class:!0});var D=y(P);u(io.$$.fragment,D),Id=n(D),br=i(D,"P",{"data-svelte-h":!0}),c(br)!=="svelte-1t4oe8h"&&(br.textContent=eu),Ad=n(D),vr=i(D,"P",{"data-svelte-h":!0}),c(vr)!=="svelte-v9orw8"&&(vr.textContent=tu),Sd=n(D),yr=i(D,"P",{"data-svelte-h":!0}),c(yr)!=="svelte-k13j83"&&(yr.textContent=au),Od=n(D),$r=i(D,"P",{"data-svelte-h":!0}),c($r)!=="svelte-qx5m51"&&($r.textContent=ou),qd=n(D),xr=i(D,"P",{"data-svelte-h":!0}),c(xr)!=="svelte-cazsdo"&&(xr.textContent=nu),Vd=n(D),wr=i(D,"P",{"data-svelte-h":!0}),c(wr)!=="svelte-13iozyc"&&(wr.textContent=ru),D.forEach(t),Ps=n(e),u(co.$$.fragment,e),Ms=n(e),H=i(e,"DIV",{class:!0});var Ut=y(H);u(po.$$.fragment,Ut),Rd=n(Ut),Tr=i(Ut,"P",{"data-svelte-h":!0}),c(Tr)!=="svelte-zhcoft"&&(Tr.innerHTML=lu),Hd=n(Ut),Cr=i(Ut,"P",{"data-svelte-h":!0}),c(Cr)!=="svelte-1psrnaw"&&(Cr.innerHTML=su),Wd=n(Ut),u(wt.$$.fragment,Ut),Ut.forEach(t),Ns=n(e),u(mo.$$.fragment,e),Ls=n(e),uo=i(e,"P",{"data-svelte-h":!0}),c(uo)!=="svelte-bykgas"&&(uo.textContent=iu),Ds=n(e),Re=i(e,"DIV",{class:!0});var Wi=y(Re);u(go.$$.fragment,Wi),Gd=n(Wi),kr=i(Wi,"P",{"data-svelte-h":!0}),c(kr)!=="svelte-ro3mv7"&&(kr.textContent=cu),Wi.forEach(t),Us=n(e),He=i(e,"DIV",{class:!0});var Gi=y(He);u(ho.$$.fragment,Gi),Jd=n(Gi),Pr=i(Gi,"P",{"data-svelte-h":!0}),c(Pr)!=="svelte-133rrax"&&(Pr.textContent=du),Gi.forEach(t),zs=n(e),We=i(e,"DIV",{class:!0});var Ji=y(We);u(fo.$$.fragment,Ji),Bd=n(Ji),Mr=i(Ji,"P",{"data-svelte-h":!0}),c(Mr)!=="svelte-6rb454"&&(Mr.textContent=pu),Ji.forEach(t),Fs=n(e),Q=i(e,"DIV",{class:!0});var Kr=y(Q);u(_o.$$.fragment,Kr),Xd=n(Kr),Nr=i(Kr,"P",{"data-svelte-h":!0}),c(Nr)!=="svelte-1xf8hhg"&&(Nr.innerHTML=mu),Zd=n(Kr),u(Tt.$$.fragment,Kr),Kr.forEach(t),js=n(e),K=i(e,"DIV",{class:!0});var el=y(K);u(bo.$$.fragment,el),Yd=n(el),Lr=i(el,"P",{"data-svelte-h":!0}),c(Lr)!=="svelte-b2jaj7"&&(Lr.textContent=uu),Qd=n(el),Dr=i(el,"UL",{"data-svelte-h":!0}),c(Dr)!=="svelte-1l85wx8"&&(Dr.innerHTML=gu),el.forEach(t),Es=n(e),W=i(e,"DIV",{class:!0});var zt=y(W);u(vo.$$.fragment,zt),Kd=n(zt),Ur=i(zt,"P",{"data-svelte-h":!0}),c(Ur)!=="svelte-ou57jw"&&(Ur.textContent=hu),ep=n(zt),zr=i(zt,"UL",{"data-svelte-h":!0}),c(zr)!=="svelte-17tb5w2"&&(zr.innerHTML=fu),tp=n(zt),u(Ct.$$.fragment,zt),zt.forEach(t),Is=n(e),ee=i(e,"DIV",{class:!0});var tl=y(ee);u(yo.$$.fragment,tl),ap=n(tl),Fr=i(tl,"P",{"data-svelte-h":!0}),c(Fr)!=="svelte-qft9nv"&&(Fr.textContent=_u),op=n(tl),u(kt.$$.fragment,tl),tl.forEach(t),As=n(e),Ge=i(e,"DIV",{class:!0});var Bi=y(Ge);u($o.$$.fragment,Bi),np=n(Bi),jr=i(Bi,"P",{"data-svelte-h":!0}),c(jr)!=="svelte-aip1s3"&&(jr.textContent=bu),Bi.forEach(t),Ss=n(e),Je=i(e,"DIV",{class:!0});var Xi=y(Je);u(xo.$$.fragment,Xi),rp=n(Xi),Er=i(Xi,"P",{"data-svelte-h":!0}),c(Er)!=="svelte-1eqkbns"&&(Er.textContent=vu),Xi.forEach(t),Os=n(e),Be=i(e,"DIV",{class:!0});var Zi=y(Be);u(wo.$$.fragment,Zi),lp=n(Zi),Ir=i(Zi,"P",{"data-svelte-h":!0}),c(Ir)!=="svelte-l4r7eo"&&(Ir.textContent=yu),Zi.forEach(t),qs=n(e),Xe=i(e,"DIV",{class:!0});var Yi=y(Xe);u(To.$$.fragment,Yi),sp=n(Yi),Ar=i(Yi,"P",{"data-svelte-h":!0}),c(Ar)!=="svelte-4kdnku"&&(Ar.textContent=$u),Yi.forEach(t),Vs=n(e),Ze=i(e,"DIV",{class:!0});var Qi=y(Ze);u(Co.$$.fragment,Qi),ip=n(Qi),Sr=i(Qi,"P",{"data-svelte-h":!0}),c(Sr)!=="svelte-11wp3c2"&&(Sr.innerHTML=xu),Qi.forEach(t),Rs=n(e),Ye=i(e,"DIV",{class:!0});var Ki=y(Ye);u(ko.$$.fragment,Ki),cp=n(Ki),Or=i(Ki,"P",{"data-svelte-h":!0}),c(Or)!=="svelte-7ujibe"&&(Or.textContent=wu),Ki.forEach(t),Hs=n(e),u(Po.$$.fragment,e),Ws=n(e),Mo=i(e,"P",{"data-svelte-h":!0}),c(Mo)!=="svelte-hb90k"&&(Mo.textContent=Tu),Gs=n(e),Qe=i(e,"DIV",{class:!0});var ec=y(Qe);u(No.$$.fragment,ec),dp=n(ec),qr=i(ec,"P",{"data-svelte-h":!0}),c(qr)!=="svelte-6rb454"&&(qr.textContent=Cu),ec.forEach(t),Js=n(e),Ke=i(e,"DIV",{class:!0});var tc=y(Ke);u(Lo.$$.fragment,tc),pp=n(tc),Vr=i(tc,"P",{"data-svelte-h":!0}),c(Vr)!=="svelte-39lvqz"&&(Vr.innerHTML=ku),tc.forEach(t),Bs=n(e),te=i(e,"DIV",{class:!0});var al=y(te);u(Do.$$.fragment,al),mp=n(al),Rr=i(al,"P",{"data-svelte-h":!0}),c(Rr)!=="svelte-wb8j79"&&(Rr.innerHTML=Pu),up=n(al),Hr=i(al,"P",{"data-svelte-h":!0}),c(Hr)!=="svelte-1cvleir"&&(Hr.textContent=Mu),al.forEach(t),Xs=n(e),ae=i(e,"DIV",{class:!0});var ol=y(ae);u(Uo.$$.fragment,ol),gp=n(ol),Wr=i(ol,"P",{"data-svelte-h":!0}),c(Wr)!=="svelte-184h98w"&&(Wr.textContent=Nu),hp=n(ol),u(Pt.$$.fragment,ol),ol.forEach(t),Zs=n(e),u(zo.$$.fragment,e),Ys=n(e),Fo=i(e,"P",{"data-svelte-h":!0}),c(Fo)!=="svelte-15rwoxt"&&(Fo.textContent=Lu),Qs=n(e),et=i(e,"DIV",{class:!0});var ac=y(et);u(jo.$$.fragment,ac),fp=n(ac),Gr=i(ac,"P",{"data-svelte-h":!0}),c(Gr)!=="svelte-1h39mp0"&&(Gr.innerHTML=Du),ac.forEach(t),Ks=n(e),Eo=i(e,"DIV",{class:!0});var Su=y(Eo);u(Io.$$.fragment,Su),Su.forEach(t),ei=n(e),Ao=i(e,"DIV",{class:!0});var Ou=y(Ao);u(So.$$.fragment,Ou),Ou.forEach(t),ti=n(e),u(Oo.$$.fragment,e),ai=n(e),qo=i(e,"P",{"data-svelte-h":!0}),c(qo)!=="svelte-1w7qov1"&&(qo.textContent=Uu),oi=n(e),oe=i(e,"DIV",{class:!0});var nl=y(oe);u(Vo.$$.fragment,nl),_p=n(nl),Jr=i(nl,"P",{"data-svelte-h":!0}),c(Jr)!=="svelte-nzrjiz"&&(Jr.innerHTML=zu),bp=n(nl),u(Mt.$$.fragment,nl),nl.forEach(t),ni=n(e),u(Ro.$$.fragment,e),ri=n(e),Ho=i(e,"P",{"data-svelte-h":!0}),c(Ho)!=="svelte-1tfabau"&&(Ho.textContent=Fu),li=n(e),ne=i(e,"DIV",{class:!0});var rl=y(ne);u(Wo.$$.fragment,rl),vp=n(rl),Br=i(rl,"P",{"data-svelte-h":!0}),c(Br)!=="svelte-qft9nv"&&(Br.textContent=ju),yp=n(rl),u(Nt.$$.fragment,rl),rl.forEach(t),si=n(e),u(Go.$$.fragment,e),ii=n(e),Jo=i(e,"P",{"data-svelte-h":!0}),c(Jo)!=="svelte-10mqezn"&&(Jo.textContent=Eu),ci=n(e),tt=i(e,"DIV",{class:!0});var oc=y(tt);u(Bo.$$.fragment,oc),$p=n(oc),Xr=i(oc,"P",{"data-svelte-h":!0}),c(Xr)!=="svelte-1g45l7r"&&(Xr.innerHTML=Iu),oc.forEach(t),di=n(e),u(Xo.$$.fragment,e),pi=n(e),ll=i(e,"P",{}),y(ll).forEach(t),this.h()},h(){$(d,"name","hf:doc:metadata"),$(d,"content",pg),$(U,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(z,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(F,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(j,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(E,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(he,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(I,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(J,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(A,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(fe,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(S,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(O,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(mt,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(B,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(ut,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(gt,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(q,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(ht,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(ft,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(_t,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(bt,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(N,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(X,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(_e,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(be,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(ve,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(ye,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(yt,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(Z,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$($e,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(xe,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(we,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(Fa,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(Te,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(Ce,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(ke,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(Pe,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(Me,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(Ne,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(Le,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(De,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(Ue,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(ze,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(Fe,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(je,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(Ee,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(Ie,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(Ae,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(Se,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(Oe,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(V,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(R,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(qe,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(Y,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(Ve,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(P,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(H,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(Re,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(He,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(We,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(Q,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(K,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(W,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(ee,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(Ge,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(Je,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(Be,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(Xe,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(Ze,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(Ye,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(Qe,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(Ke,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(te,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(ae,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(et,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(Eo,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(Ao,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(oe,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(ne,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),$(tt,"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,a){r(document.head,d),l(e,w,a),l(e,b,a),l(e,v,a),g(T,e,a),l(e,p,a),g(C,e,a),l(e,sl,a),l(e,Ft,a),l(e,il,a),g(jt,e,a),l(e,cl,a),l(e,Et,a),l(e,dl,a),l(e,It,a),l(e,pl,a),l(e,At,a),l(e,ml,a),l(e,St,a),l(e,ul,a),l(e,Ot,a),l(e,gl,a),g(qt,e,a),l(e,hl,a),l(e,Vt,a),l(e,fl,a),g(Rt,e,a),l(e,_l,a),l(e,Ht,a),l(e,bl,a),l(e,U,a),g(Wt,U,null),r(U,nc),r(U,tn),r(U,rc),r(U,an),r(U,lc),r(U,on),l(e,vl,a),l(e,z,a),g(Gt,z,null),r(z,sc),r(z,nn),r(z,ic),r(z,rn),r(z,cc),r(z,ln),l(e,yl,a),l(e,F,a),g(Jt,F,null),r(F,dc),r(F,sn),r(F,pc),r(F,cn),r(F,mc),r(F,dn),l(e,$l,a),l(e,j,a),g(Bt,j,null),r(j,uc),r(j,pn),r(j,gc),r(j,mn),r(j,hc),r(j,un),l(e,xl,a),l(e,E,a),g(Xt,E,null),r(E,fc),r(E,gn),r(E,_c),r(E,hn),r(E,bc),r(E,fn),l(e,wl,a),l(e,he,a),g(Zt,he,null),r(he,vc),r(he,_n),l(e,Tl,a),l(e,I,a),g(Yt,I,null),r(I,yc),r(I,bn),r(I,$c),r(I,vn),r(I,xc),r(I,yn),l(e,Cl,a),g(Qt,e,a),l(e,kl,a),l(e,Kt,a),l(e,Pl,a),l(e,J,a),g(ea,J,null),r(J,wc),r(J,$n),r(J,Tc),g(lt,J,null),l(e,Ml,a),l(e,A,a),g(ta,A,null),r(A,Cc),r(A,xn),r(A,kc),g(st,A,null),r(A,Pc),g(it,A,null),l(e,Nl,a),l(e,fe,a),g(aa,fe,null),r(fe,Mc),r(fe,wn),l(e,Ll,a),l(e,S,a),g(oa,S,null),r(S,Nc),r(S,Tn),r(S,Lc),g(ct,S,null),r(S,Dc),g(dt,S,null),l(e,Dl,a),l(e,O,a),g(na,O,null),r(O,Uc),r(O,Cn),r(O,zc),r(O,kn),r(O,Fc),g(pt,O,null),l(e,Ul,a),l(e,B,a),g(ra,B,null),r(B,jc),r(B,Pn),r(B,Ec),r(B,mt),g(la,mt,null),r(mt,Ic),r(mt,Mn),l(e,zl,a),g(sa,e,a),l(e,Fl,a),l(e,ia,a),l(e,jl,a),l(e,q,a),g(ca,q,null),r(q,Ac),r(q,Nn),r(q,Sc),r(q,ut),g(da,ut,null),r(ut,Oc),r(ut,Ln),r(q,qc),r(q,gt),g(pa,gt,null),r(gt,Vc),r(gt,Dn),l(e,El,a),l(e,N,a),g(ma,N,null),r(N,Rc),r(N,Un),r(N,Hc),r(N,ht),g(ua,ht,null),r(ht,Wc),r(ht,zn),r(N,Gc),r(N,ft),g(ga,ft,null),r(ft,Jc),r(ft,Fn),r(N,Bc),r(N,_t),g(ha,_t,null),r(_t,Xc),r(_t,jn),r(N,Zc),r(N,bt),g(fa,bt,null),r(bt,Yc),r(bt,En),l(e,Il,a),l(e,X,a),g(_a,X,null),r(X,Qc),r(X,In),r(X,Kc),g(vt,X,null),l(e,Al,a),l(e,_e,a),g(ba,_e,null),r(_e,ed),r(_e,An),l(e,Sl,a),l(e,be,a),g(va,be,null),r(be,td),r(be,Sn),l(e,Ol,a),g(ya,e,a),l(e,ql,a),l(e,$a,a),l(e,Vl,a),l(e,ve,a),g(xa,ve,null),r(ve,ad),r(ve,On),l(e,Rl,a),l(e,ye,a),g(wa,ye,null),r(ye,od),r(ye,qn),l(e,Hl,a),l(e,Z,a),g(Ta,Z,null),r(Z,nd),r(Z,Vn),r(Z,rd),r(Z,yt),g(Ca,yt,null),r(yt,ld),r(yt,Rn),l(e,Wl,a),g(ka,e,a),l(e,Gl,a),l(e,Pa,a),l(e,Jl,a),l(e,Ma,a),l(e,Bl,a),g(Na,e,a),l(e,Xl,a),l(e,La,a),l(e,Zl,a),l(e,$e,a),g(Da,$e,null),r($e,sd),r($e,Hn),l(e,Yl,a),l(e,xe,a),g(Ua,xe,null),r(xe,id),r(xe,Wn),l(e,Ql,a),l(e,we,a),g(za,we,null),r(we,cd),r(we,Gn),l(e,Kl,a),l(e,Fa,a),g(ja,Fa,null),l(e,es,a),l(e,Te,a),g(Ea,Te,null),r(Te,dd),r(Te,Jn),l(e,ts,a),l(e,Ce,a),g(Ia,Ce,null),r(Ce,pd),r(Ce,Bn),l(e,as,a),l(e,ke,a),g(Aa,ke,null),r(ke,md),r(ke,Xn),l(e,os,a),l(e,Pe,a),g(Sa,Pe,null),r(Pe,ud),r(Pe,Zn),l(e,ns,a),l(e,Me,a),g(Oa,Me,null),r(Me,gd),r(Me,Yn),l(e,rs,a),l(e,Ne,a),g(qa,Ne,null),r(Ne,hd),r(Ne,Qn),l(e,ls,a),l(e,Le,a),g(Va,Le,null),r(Le,fd),r(Le,Kn),l(e,ss,a),l(e,De,a),g(Ra,De,null),r(De,_d),r(De,er),l(e,is,a),l(e,Ue,a),g(Ha,Ue,null),r(Ue,bd),r(Ue,tr),l(e,cs,a),l(e,ze,a),g(Wa,ze,null),r(ze,vd),r(ze,ar),l(e,ds,a),l(e,Fe,a),g(Ga,Fe,null),r(Fe,yd),r(Fe,or),l(e,ps,a),g(Ja,e,a),l(e,ms,a),l(e,Ba,a),l(e,us,a),l(e,je,a),g(Xa,je,null),r(je,$d),r(je,nr),l(e,gs,a),l(e,Ee,a),g(Za,Ee,null),r(Ee,xd),r(Ee,rr),l(e,hs,a),l(e,Ie,a),g(Ya,Ie,null),r(Ie,wd),r(Ie,lr),l(e,fs,a),l(e,Ae,a),g(Qa,Ae,null),r(Ae,Td),r(Ae,sr),l(e,_s,a),l(e,Se,a),g(Ka,Se,null),r(Se,Cd),r(Se,ir),l(e,bs,a),l(e,Oe,a),g(eo,Oe,null),r(Oe,kd),r(Oe,cr),l(e,vs,a),g(to,e,a),l(e,ys,a),l(e,V,a),g(ao,V,null),r(V,Pd),r(V,dr),r(V,Md),r(V,pr),r(V,Nd),g($t,V,null),l(e,$s,a),l(e,R,a),g(oo,R,null),r(R,Ld),r(R,mr),r(R,Dd),r(R,ur),r(R,Ud),g(xt,R,null),l(e,xs,a),l(e,qe,a),g(no,qe,null),r(qe,zd),r(qe,gr),l(e,ws,a),l(e,ro,a),l(e,Ts,a),l(e,Y,a),g(lo,Y,null),r(Y,Fd),r(Y,hr),r(Y,jd),r(Y,fr),l(e,Cs,a),l(e,Ve,a),g(so,Ve,null),r(Ve,Ed),r(Ve,_r),l(e,ks,a),l(e,P,a),g(io,P,null),r(P,Id),r(P,br),r(P,Ad),r(P,vr),r(P,Sd),r(P,yr),r(P,Od),r(P,$r),r(P,qd),r(P,xr),r(P,Vd),r(P,wr),l(e,Ps,a),g(co,e,a),l(e,Ms,a),l(e,H,a),g(po,H,null),r(H,Rd),r(H,Tr),r(H,Hd),r(H,Cr),r(H,Wd),g(wt,H,null),l(e,Ns,a),g(mo,e,a),l(e,Ls,a),l(e,uo,a),l(e,Ds,a),l(e,Re,a),g(go,Re,null),r(Re,Gd),r(Re,kr),l(e,Us,a),l(e,He,a),g(ho,He,null),r(He,Jd),r(He,Pr),l(e,zs,a),l(e,We,a),g(fo,We,null),r(We,Bd),r(We,Mr),l(e,Fs,a),l(e,Q,a),g(_o,Q,null),r(Q,Xd),r(Q,Nr),r(Q,Zd),g(Tt,Q,null),l(e,js,a),l(e,K,a),g(bo,K,null),r(K,Yd),r(K,Lr),r(K,Qd),r(K,Dr),l(e,Es,a),l(e,W,a),g(vo,W,null),r(W,Kd),r(W,Ur),r(W,ep),r(W,zr),r(W,tp),g(Ct,W,null),l(e,Is,a),l(e,ee,a),g(yo,ee,null),r(ee,ap),r(ee,Fr),r(ee,op),g(kt,ee,null),l(e,As,a),l(e,Ge,a),g($o,Ge,null),r(Ge,np),r(Ge,jr),l(e,Ss,a),l(e,Je,a),g(xo,Je,null),r(Je,rp),r(Je,Er),l(e,Os,a),l(e,Be,a),g(wo,Be,null),r(Be,lp),r(Be,Ir),l(e,qs,a),l(e,Xe,a),g(To,Xe,null),r(Xe,sp),r(Xe,Ar),l(e,Vs,a),l(e,Ze,a),g(Co,Ze,null),r(Ze,ip),r(Ze,Sr),l(e,Rs,a),l(e,Ye,a),g(ko,Ye,null),r(Ye,cp),r(Ye,Or),l(e,Hs,a),g(Po,e,a),l(e,Ws,a),l(e,Mo,a),l(e,Gs,a),l(e,Qe,a),g(No,Qe,null),r(Qe,dp),r(Qe,qr),l(e,Js,a),l(e,Ke,a),g(Lo,Ke,null),r(Ke,pp),r(Ke,Vr),l(e,Bs,a),l(e,te,a),g(Do,te,null),r(te,mp),r(te,Rr),r(te,up),r(te,Hr),l(e,Xs,a),l(e,ae,a),g(Uo,ae,null),r(ae,gp),r(ae,Wr),r(ae,hp),g(Pt,ae,null),l(e,Zs,a),g(zo,e,a),l(e,Ys,a),l(e,Fo,a),l(e,Qs,a),l(e,et,a),g(jo,et,null),r(et,fp),r(et,Gr),l(e,Ks,a),l(e,Eo,a),g(Io,Eo,null),l(e,ei,a),l(e,Ao,a),g(So,Ao,null),l(e,ti,a),g(Oo,e,a),l(e,ai,a),l(e,qo,a),l(e,oi,a),l(e,oe,a),g(Vo,oe,null),r(oe,_p),r(oe,Jr),r(oe,bp),g(Mt,oe,null),l(e,ni,a),g(Ro,e,a),l(e,ri,a),l(e,Ho,a),l(e,li,a),l(e,ne,a),g(Wo,ne,null),r(ne,vp),r(ne,Br),r(ne,yp),g(Nt,ne,null),l(e,si,a),g(Go,e,a),l(e,ii,a),l(e,Jo,a),l(e,ci,a),l(e,tt,a),g(Bo,tt,null),r(tt,$p),r(tt,Xr),l(e,di,a),g(Xo,e,a),l(e,pi,a),l(e,ll,a),mi=!0},p(e,[a]){const re={};a&2&&(re.$$scope={dirty:a,ctx:e}),lt.$set(re);const le={};a&2&&(le.$$scope={dirty:a,ctx:e}),st.$set(le);const se={};a&2&&(se.$$scope={dirty:a,ctx:e}),it.$set(se);const ie={};a&2&&(ie.$$scope={dirty:a,ctx:e}),ct.$set(ie);const ce={};a&2&&(ce.$$scope={dirty:a,ctx:e}),dt.$set(ce);const Zo={};a&2&&(Zo.$$scope={dirty:a,ctx:e}),pt.$set(Zo);const de={};a&2&&(de.$$scope={dirty:a,ctx:e}),vt.$set(de);const at={};a&2&&(at.$$scope={dirty:a,ctx:e}),$t.$set(at);const pe={};a&2&&(pe.$$scope={dirty:a,ctx:e}),xt.$set(pe);const Yo={};a&2&&(Yo.$$scope={dirty:a,ctx:e}),wt.$set(Yo);const me={};a&2&&(me.$$scope={dirty:a,ctx:e}),Tt.$set(me);const ue={};a&2&&(ue.$$scope={dirty:a,ctx:e}),Ct.$set(ue);const ot={};a&2&&(ot.$$scope={dirty:a,ctx:e}),kt.$set(ot);const Qo={};a&2&&(Qo.$$scope={dirty:a,ctx:e}),Pt.$set(Qo);const ge={};a&2&&(ge.$$scope={dirty:a,ctx:e}),Mt.$set(ge);const Ko={};a&2&&(Ko.$$scope={dirty:a,ctx:e}),Nt.$set(Ko)},i(e){mi||(h(T.$$.fragment,e),h(C.$$.fragment,e),h(jt.$$.fragment,e),h(qt.$$.fragment,e),h(Rt.$$.fragment,e),h(Wt.$$.fragment,e),h(Gt.$$.fragment,e),h(Jt.$$.fragment,e),h(Bt.$$.fragment,e),h(Xt.$$.fragment,e),h(Zt.$$.fragment,e),h(Yt.$$.fragment,e),h(Qt.$$.fragment,e),h(ea.$$.fragment,e),h(lt.$$.fragment,e),h(ta.$$.fragment,e),h(st.$$.fragment,e),h(it.$$.fragment,e),h(aa.$$.fragment,e),h(oa.$$.fragment,e),h(ct.$$.fragment,e),h(dt.$$.fragment,e),h(na.$$.fragment,e),h(pt.$$.fragment,e),h(ra.$$.fragment,e),h(la.$$.fragment,e),h(sa.$$.fragment,e),h(ca.$$.fragment,e),h(da.$$.fragment,e),h(pa.$$.fragment,e),h(ma.$$.fragment,e),h(ua.$$.fragment,e),h(ga.$$.fragment,e),h(ha.$$.fragment,e),h(fa.$$.fragment,e),h(_a.$$.fragment,e),h(vt.$$.fragment,e),h(ba.$$.fragment,e),h(va.$$.fragment,e),h(ya.$$.fragment,e),h(xa.$$.fragment,e),h(wa.$$.fragment,e),h(Ta.$$.fragment,e),h(Ca.$$.fragment,e),h(ka.$$.fragment,e),h(Na.$$.fragment,e),h(Da.$$.fragment,e),h(Ua.$$.fragment,e),h(za.$$.fragment,e),h(ja.$$.fragment,e),h(Ea.$$.fragment,e),h(Ia.$$.fragment,e),h(Aa.$$.fragment,e),h(Sa.$$.fragment,e),h(Oa.$$.fragment,e),h(qa.$$.fragment,e),h(Va.$$.fragment,e),h(Ra.$$.fragment,e),h(Ha.$$.fragment,e),h(Wa.$$.fragment,e),h(Ga.$$.fragment,e),h(Ja.$$.fragment,e),h(Xa.$$.fragment,e),h(Za.$$.fragment,e),h(Ya.$$.fragment,e),h(Qa.$$.fragment,e),h(Ka.$$.fragment,e),h(eo.$$.fragment,e),h(to.$$.fragment,e),h(ao.$$.fragment,e),h($t.$$.fragment,e),h(oo.$$.fragment,e),h(xt.$$.fragment,e),h(no.$$.fragment,e),h(lo.$$.fragment,e),h(so.$$.fragment,e),h(io.$$.fragment,e),h(co.$$.fragment,e),h(po.$$.fragment,e),h(wt.$$.fragment,e),h(mo.$$.fragment,e),h(go.$$.fragment,e),h(ho.$$.fragment,e),h(fo.$$.fragment,e),h(_o.$$.fragment,e),h(Tt.$$.fragment,e),h(bo.$$.fragment,e),h(vo.$$.fragment,e),h(Ct.$$.fragment,e),h(yo.$$.fragment,e),h(kt.$$.fragment,e),h($o.$$.fragment,e),h(xo.$$.fragment,e),h(wo.$$.fragment,e),h(To.$$.fragment,e),h(Co.$$.fragment,e),h(ko.$$.fragment,e),h(Po.$$.fragment,e),h(No.$$.fragment,e),h(Lo.$$.fragment,e),h(Do.$$.fragment,e),h(Uo.$$.fragment,e),h(Pt.$$.fragment,e),h(zo.$$.fragment,e),h(jo.$$.fragment,e),h(Io.$$.fragment,e),h(So.$$.fragment,e),h(Oo.$$.fragment,e),h(Vo.$$.fragment,e),h(Mt.$$.fragment,e),h(Ro.$$.fragment,e),h(Wo.$$.fragment,e),h(Nt.$$.fragment,e),h(Go.$$.fragment,e),h(Bo.$$.fragment,e),h(Xo.$$.fragment,e),mi=!0)},o(e){f(T.$$.fragment,e),f(C.$$.fragment,e),f(jt.$$.fragment,e),f(qt.$$.fragment,e),f(Rt.$$.fragment,e),f(Wt.$$.fragment,e),f(Gt.$$.fragment,e),f(Jt.$$.fragment,e),f(Bt.$$.fragment,e),f(Xt.$$.fragment,e),f(Zt.$$.fragment,e),f(Yt.$$.fragment,e),f(Qt.$$.fragment,e),f(ea.$$.fragment,e),f(lt.$$.fragment,e),f(ta.$$.fragment,e),f(st.$$.fragment,e),f(it.$$.fragment,e),f(aa.$$.fragment,e),f(oa.$$.fragment,e),f(ct.$$.fragment,e),f(dt.$$.fragment,e),f(na.$$.fragment,e),f(pt.$$.fragment,e),f(ra.$$.fragment,e),f(la.$$.fragment,e),f(sa.$$.fragment,e),f(ca.$$.fragment,e),f(da.$$.fragment,e),f(pa.$$.fragment,e),f(ma.$$.fragment,e),f(ua.$$.fragment,e),f(ga.$$.fragment,e),f(ha.$$.fragment,e),f(fa.$$.fragment,e),f(_a.$$.fragment,e),f(vt.$$.fragment,e),f(ba.$$.fragment,e),f(va.$$.fragment,e),f(ya.$$.fragment,e),f(xa.$$.fragment,e),f(wa.$$.fragment,e),f(Ta.$$.fragment,e),f(Ca.$$.fragment,e),f(ka.$$.fragment,e),f(Na.$$.fragment,e),f(Da.$$.fragment,e),f(Ua.$$.fragment,e),f(za.$$.fragment,e),f(ja.$$.fragment,e),f(Ea.$$.fragment,e),f(Ia.$$.fragment,e),f(Aa.$$.fragment,e),f(Sa.$$.fragment,e),f(Oa.$$.fragment,e),f(qa.$$.fragment,e),f(Va.$$.fragment,e),f(Ra.$$.fragment,e),f(Ha.$$.fragment,e),f(Wa.$$.fragment,e),f(Ga.$$.fragment,e),f(Ja.$$.fragment,e),f(Xa.$$.fragment,e),f(Za.$$.fragment,e),f(Ya.$$.fragment,e),f(Qa.$$.fragment,e),f(Ka.$$.fragment,e),f(eo.$$.fragment,e),f(to.$$.fragment,e),f(ao.$$.fragment,e),f($t.$$.fragment,e),f(oo.$$.fragment,e),f(xt.$$.fragment,e),f(no.$$.fragment,e),f(lo.$$.fragment,e),f(so.$$.fragment,e),f(io.$$.fragment,e),f(co.$$.fragment,e),f(po.$$.fragment,e),f(wt.$$.fragment,e),f(mo.$$.fragment,e),f(go.$$.fragment,e),f(ho.$$.fragment,e),f(fo.$$.fragment,e),f(_o.$$.fragment,e),f(Tt.$$.fragment,e),f(bo.$$.fragment,e),f(vo.$$.fragment,e),f(Ct.$$.fragment,e),f(yo.$$.fragment,e),f(kt.$$.fragment,e),f($o.$$.fragment,e),f(xo.$$.fragment,e),f(wo.$$.fragment,e),f(To.$$.fragment,e),f(Co.$$.fragment,e),f(ko.$$.fragment,e),f(Po.$$.fragment,e),f(No.$$.fragment,e),f(Lo.$$.fragment,e),f(Do.$$.fragment,e),f(Uo.$$.fragment,e),f(Pt.$$.fragment,e),f(zo.$$.fragment,e),f(jo.$$.fragment,e),f(Io.$$.fragment,e),f(So.$$.fragment,e),f(Oo.$$.fragment,e),f(Vo.$$.fragment,e),f(Mt.$$.fragment,e),f(Ro.$$.fragment,e),f(Wo.$$.fragment,e),f(Nt.$$.fragment,e),f(Go.$$.fragment,e),f(Bo.$$.fragment,e),f(Xo.$$.fragment,e),mi=!1},d(e){e&&(t(w),t(b),t(v),t(p),t(sl),t(Ft),t(il),t(cl),t(Et),t(dl),t(It),t(pl),t(At),t(ml),t(St),t(ul),t(Ot),t(gl),t(hl),t(Vt),t(fl),t(_l),t(Ht),t(bl),t(U),t(vl),t(z),t(yl),t(F),t($l),t(j),t(xl),t(E),t(wl),t(he),t(Tl),t(I),t(Cl),t(kl),t(Kt),t(Pl),t(J),t(Ml),t(A),t(Nl),t(fe),t(Ll),t(S),t(Dl),t(O),t(Ul),t(B),t(zl),t(Fl),t(ia),t(jl),t(q),t(El),t(N),t(Il),t(X),t(Al),t(_e),t(Sl),t(be),t(Ol),t(ql),t($a),t(Vl),t(ve),t(Rl),t(ye),t(Hl),t(Z),t(Wl),t(Gl),t(Pa),t(Jl),t(Ma),t(Bl),t(Xl),t(La),t(Zl),t($e),t(Yl),t(xe),t(Ql),t(we),t(Kl),t(Fa),t(es),t(Te),t(ts),t(Ce),t(as),t(ke),t(os),t(Pe),t(ns),t(Me),t(rs),t(Ne),t(ls),t(Le),t(ss),t(De),t(is),t(Ue),t(cs),t(ze),t(ds),t(Fe),t(ps),t(ms),t(Ba),t(us),t(je),t(gs),t(Ee),t(hs),t(Ie),t(fs),t(Ae),t(_s),t(Se),t(bs),t(Oe),t(vs),t(ys),t(V),t($s),t(R),t(xs),t(qe),t(ws),t(ro),t(Ts),t(Y),t(Cs),t(Ve),t(ks),t(P),t(Ps),t(Ms),t(H),t(Ns),t(Ls),t(uo),t(Ds),t(Re),t(Us),t(He),t(zs),t(We),t(Fs),t(Q),t(js),t(K),t(Es),t(W),t(Is),t(ee),t(As),t(Ge),t(Ss),t(Je),t(Os),t(Be),t(qs),t(Xe),t(Vs),t(Ze),t(Rs),t(Ye),t(Hs),t(Ws),t(Mo),t(Gs),t(Qe),t(Js),t(Ke),t(Bs),t(te),t(Xs),t(ae),t(Zs),t(Ys),t(Fo),t(Qs),t(et),t(Ks),t(Eo),t(ei),t(Ao),t(ti),t(ai),t(qo),t(oi),t(oe),t(ni),t(ri),t(Ho),t(li),t(ne),t(si),t(ii),t(Jo),t(ci),t(tt),t(di),t(pi),t(ll)),t(d),_(T,e),_(C,e),_(jt,e),_(qt,e),_(Rt,e),_(Wt),_(Gt),_(Jt),_(Bt),_(Xt),_(Zt),_(Yt),_(Qt,e),_(ea),_(lt),_(ta),_(st),_(it),_(aa),_(oa),_(ct),_(dt),_(na),_(pt),_(ra),_(la),_(sa,e),_(ca),_(da),_(pa),_(ma),_(ua),_(ga),_(ha),_(fa),_(_a),_(vt),_(ba),_(va),_(ya,e),_(xa),_(wa),_(Ta),_(Ca),_(ka,e),_(Na,e),_(Da),_(Ua),_(za),_(ja),_(Ea),_(Ia),_(Aa),_(Sa),_(Oa),_(qa),_(Va),_(Ra),_(Ha),_(Wa),_(Ga),_(Ja,e),_(Xa),_(Za),_(Ya),_(Qa),_(Ka),_(eo),_(to,e),_(ao),_($t),_(oo),_(xt),_(no),_(lo),_(so),_(io),_(co,e),_(po),_(wt),_(mo,e),_(go),_(ho),_(fo),_(_o),_(Tt),_(bo),_(vo),_(Ct),_(yo),_(kt),_($o),_(xo),_(wo),_(To),_(Co),_(ko),_(Po,e),_(No),_(Lo),_(Do),_(Uo),_(Pt),_(zo,e),_(jo),_(Io),_(So),_(Oo,e),_(Vo),_(Mt),_(Ro,e),_(Wo),_(Nt),_(Go,e),_(Bo),_(Xo,e)}}}const pg='{"title":"Utility functions and classes","local":"utility-functions-and-classes","sections":[{"title":"Constants","local":"constants","sections":[],"depth":2},{"title":"Data Classes","local":"data-classes","sections":[{"title":"Standalone","local":"accelerate.utils.ComputeEnvironment","sections":[],"depth":3},{"title":"Kwargs","local":"accelerate.AutocastKwargs","sections":[],"depth":3}],"depth":2},{"title":"Plugins","local":"accelerate.DeepSpeedPlugin","sections":[],"depth":2},{"title":"Configurations","local":"accelerate.utils.BnbQuantizationConfig","sections":[],"depth":2},{"title":"Environmental Variables","local":"environmental-variables","sections":[],"depth":2},{"title":"Data Manipulation and Operations","local":"accelerate.utils.broadcast","sections":[],"depth":2},{"title":"Environment Checks","local":"accelerate.utils.is_bf16_available","sections":[],"depth":2},{"title":"Environment Manipulation","local":"accelerate.utils.patch_environment","sections":[],"depth":2},{"title":"Memory","local":"accelerate.find_executable_batch_size","sections":[],"depth":2},{"title":"Modeling","local":"accelerate.utils.calculate_maximum_sizes","sections":[],"depth":2},{"title":"Parallel","local":"accelerate.utils.extract_model_from_parallel","sections":[],"depth":2},{"title":"Random","local":"accelerate.utils.set_seed","sections":[],"depth":2},{"title":"PyTorch XLA","local":"accelerate.utils.install_xla","sections":[],"depth":2},{"title":"Loading model weights","local":"accelerate.load_checkpoint_in_model","sections":[],"depth":2},{"title":"Quantization","local":"accelerate.utils.load_and_quantize_model","sections":[],"depth":2}],"depth":1}';function mg(k){return Vu(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class yg extends Ru{constructor(d){super(),Hu(this,d,mg,dg,qu,{})}}export{yg as component}; | |
Xet Storage Details
- Size:
- 203 kB
- Xet hash:
- 63ca5df3d4600659d165c47e8f8e46e13984087afc451d2e0b5c9fe98abefbbe
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.