Buckets:

download
raw
22.3 kB
import{s as Xe,o as Le,n as Re}from"../chunks/scheduler.852ec091.js";import{S as He,i as Ae,g as s,s as a,r as d,A as Ne,h as m,f as t,c as o,j as w,u as c,x as k,k as x,y as n,a as r,v as b,d as _,t as g,w as h}from"../chunks/index.28275fd3.js";import{D as E}from"../chunks/Docstring.395987e7.js";import{C as Pe}from"../chunks/CodeBlock.c3366071.js";import{E as Ye}from"../chunks/ExampleCodeBlock.452ced84.js";import{H as re,E as Qe}from"../chunks/EditOnGithub.582011f0.js";function qe(ne){let l,W="Example:",$,u,f;return u=new Pe({props:{code:"aW1wb3J0JTIwdG9yY2glMEFpbXBvcnQlMjBiaXRzYW5kYnl0ZXMlMjBhcyUyMGJuYiUwQSUwQW1uZyUyMCUzRCUyMGJuYi5vcHRpbS5HbG9iYWxPcHRpbU1hbmFnZXIuZ2V0X2luc3RhbmNlKCklMEElMEFtb2RlbCUyMCUzRCUyME15TW9kZWwoKSUwQW1uZy5yZWdpc3Rlcl9wYXJhbWV0ZXJzKG1vZGVsLnBhcmFtZXRlcnMoKSklMjAlMjMlMjAxLiUyMHJlZ2lzdGVyJTIwcGFyYW1ldGVycyUyMHdoaWxlJTIwc3RpbGwlMjBvbiUyMENQVSUwQSUwQW1vZGVsJTIwJTNEJTIwbW9kZWwuY3VkYSgpJTBBJTIzJTIwdXNlJTIwOC1iaXQlMjBvcHRpbWl6ZXIlMjBzdGF0ZXMlMjBmb3IlMjBhbGwlMjBwYXJhbWV0ZXJzJTBBYWRhbSUyMCUzRCUyMGJuYi5vcHRpbS5BZGFtKG1vZGVsLnBhcmFtZXRlcnMoKSUyQyUyMGxyJTNEMC4wMDElMkMlMjBvcHRpbV9iaXRzJTNEOCklMEElMEElMjMlMjAyLiUyMG92ZXJyaWRlJTNBJTIwdGhlJTIwcGFyYW1ldGVyJTIwbW9kZWwuZmMxLndlaWdodCUyMG5vdyUyMHVzZXMlMjAzMi1iaXQlMjBBZGFtJTBBbW5nLm92ZXJyaWRlX2NvbmZpZyhtb2RlbC5mYzEud2VpZ2h0JTJDJTIwJ29wdGltX2JpdHMnJTJDJTIwMzIp",highlighted:`<span class="hljs-keyword">import</span> torch
<span class="hljs-keyword">import</span> bitsandbytes <span class="hljs-keyword">as</span> bnb
mng = bnb.optim.GlobalOptimManager.get_instance()
model = MyModel()
mng.register_parameters(model.parameters()) <span class="hljs-comment"># 1. register parameters while still on CPU</span>
model = model.cuda()
<span class="hljs-comment"># use 8-bit optimizer states for all parameters</span>
adam = bnb.optim.Adam(model.parameters(), lr=<span class="hljs-number">0.001</span>, optim_bits=<span class="hljs-number">8</span>)
<span class="hljs-comment"># 2. override: the parameter model.fc1.weight now uses 32-bit Adam</span>
mng.override_config(model.fc1.weight, <span class="hljs-string">&#x27;optim_bits&#x27;</span>, <span class="hljs-number">32</span>)`,wrap:!1}}),{c(){l=s("p"),l.textContent=W,$=a(),d(u.$$.fragment)},l(p){l=m(p,"P",{"data-svelte-h":!0}),k(l)!=="svelte-11lpom8"&&(l.textContent=W),$=o(p),c(u.$$.fragment,p)},m(p,v){r(p,l,v),r(p,$,v),b(u,p,v),f=!0},p:Re,i(p){f||(_(u.$$.fragment,p),f=!0)},o(p){g(u.$$.fragment,p),f=!1},d(p){p&&(t(l),t($)),h(u,p)}}}function Ke(ne){let l,W,$,u,f,p,v,We='<a href="https://hf.co/papers/2110.02861" rel="nofollow">8-bit optimizers</a> reduce the memory footprint of 32-bit optimizers without any performance degradation which means you can train large models with many parameters faster. At the core of 8-bit optimizers is block-wise quantization which enables quantization accuracy, computational efficiency, and stability.',se,U,Ue="bitsandbytes provides 8-bit optimizers through the base <code>Optimizer8bit</code> class, and additionally provides <code>Optimizer2State</code> and <code>Optimizer1State</code> for 2-state (for example, <code>Adam</code>) and 1-state (for example, <code>Adagrad</code>) optimizers respectively. To provide custom optimizer hyperparameters, use the <code>GlobalOptimManager</code> class to configure the optimizer.",me,Z,pe,T,B,xe,S,D,Te,Q,Ze="Base 8-bit optimizer class.",le,F,de,O,I,Oe,C,V,Me,q,Be="Base 2-state update optimizer class.",ce,X,be,M,L,ke,G,R,Se,K,De="Base 1-state update optimizer class.",_e,H,ge,y,A,Ce,ee,Fe="A global optimizer manager for enabling custom optimizer configs.",Ge,z,N,Je,te,Ie="Override initial optimizer config with specific hyperparameters.",je,ie,Ve=`The key-values of the optimizer config for the input parameters are overridden
This can be both, optimizer parameters like <code>betas</code> or <code>lr</code>, or it can be
8-bit specific parameters like <code>optim_bits</code> or <code>percentile_clipping</code>.`,Ee,J,he,P,ue,oe,fe;return f=new re({props:{title:"Overview",local:"overview",headingTag:"h1"}}),Z=new re({props:{title:"Optimizer8bit",local:"bitsandbytes.optim.optimizer.Optimizer8bit",headingTag:"h2"}}),B=new E({props:{name:"class bitsandbytes.optim.optimizer.Optimizer8bit",anchor:"bitsandbytes.optim.optimizer.Optimizer8bit",parameters:[{name:"params",val:""},{name:"defaults",val:""},{name:"optim_bits",val:" = 32"},{name:"is_paged",val:" = False"}],source:"https://github.com/TimDettmers/bitsandbytes/blob/vr_1255/src/bitsandbytes/optim/optimizer.py#L111"}}),D=new E({props:{name:"__init__",anchor:"bitsandbytes.optim.optimizer.Optimizer8bit.__init__",parameters:[{name:"params",val:""},{name:"defaults",val:""},{name:"optim_bits",val:" = 32"},{name:"is_paged",val:" = False"}],parametersDescription:[{anchor:"bitsandbytes.optim.optimizer.Optimizer8bit.__init__.params",description:`<strong>params</strong> (<code>torch.tensor</code>) &#x2014;
The input parameters to optimize.`,name:"params"},{anchor:"bitsandbytes.optim.optimizer.Optimizer8bit.__init__.optim_bits",description:`<strong>optim_bits</strong> (<code>int</code>, defaults to 32) &#x2014;
The number of bits of the optimizer state.`,name:"optim_bits"},{anchor:"bitsandbytes.optim.optimizer.Optimizer8bit.__init__.is_paged",description:`<strong>is_paged</strong> (<code>bool</code>, defaults to <code>False</code>) &#x2014;
Whether the optimizer is a paged optimizer or not.`,name:"is_paged"}],source:"https://github.com/TimDettmers/bitsandbytes/blob/vr_1255/src/bitsandbytes/optim/optimizer.py#L112"}}),F=new re({props:{title:"Optimizer2State",local:"bitsandbytes.optim.optimizer.Optimizer2State",headingTag:"h2"}}),I=new E({props:{name:"class bitsandbytes.optim.optimizer.Optimizer2State",anchor:"bitsandbytes.optim.optimizer.Optimizer2State",parameters:[{name:"optimizer_name",val:""},{name:"params",val:""},{name:"lr",val:" = 0.001"},{name:"betas",val:" = (0.9, 0.999)"},{name:"eps",val:" = 1e-08"},{name:"weight_decay",val:" = 0.0"},{name:"optim_bits",val:" = 32"},{name:"args",val:" = None"},{name:"min_8bit_size",val:" = 4096"},{name:"percentile_clipping",val:" = 100"},{name:"block_wise",val:" = True"},{name:"max_unorm",val:" = 0.0"},{name:"skip_zeros",val:" = False"},{name:"is_paged",val:" = False"}],source:"https://github.com/TimDettmers/bitsandbytes/blob/vr_1255/src/bitsandbytes/optim/optimizer.py#L340"}}),V=new E({props:{name:"__init__",anchor:"bitsandbytes.optim.optimizer.Optimizer2State.__init__",parameters:[{name:"optimizer_name",val:""},{name:"params",val:""},{name:"lr",val:" = 0.001"},{name:"betas",val:" = (0.9, 0.999)"},{name:"eps",val:" = 1e-08"},{name:"weight_decay",val:" = 0.0"},{name:"optim_bits",val:" = 32"},{name:"args",val:" = None"},{name:"min_8bit_size",val:" = 4096"},{name:"percentile_clipping",val:" = 100"},{name:"block_wise",val:" = True"},{name:"max_unorm",val:" = 0.0"},{name:"skip_zeros",val:" = False"},{name:"is_paged",val:" = False"}],parametersDescription:[{anchor:"bitsandbytes.optim.optimizer.Optimizer2State.__init__.optimizer_name",description:`<strong>optimizer_name</strong> (<code>str</code>) &#x2014;
The name of the optimizer.`,name:"optimizer_name"},{anchor:"bitsandbytes.optim.optimizer.Optimizer2State.__init__.params",description:`<strong>params</strong> (<code>torch.tensor</code>) &#x2014;
The input parameters to optimize.`,name:"params"},{anchor:"bitsandbytes.optim.optimizer.Optimizer2State.__init__.lr",description:`<strong>lr</strong> (<code>float</code>, defaults to 1e-3) &#x2014;
The learning rate.`,name:"lr"},{anchor:"bitsandbytes.optim.optimizer.Optimizer2State.__init__.betas",description:`<strong>betas</strong> (<code>tuple</code>, defaults to (0.9, 0.999)) &#x2014;
The beta values for the optimizer.`,name:"betas"},{anchor:"bitsandbytes.optim.optimizer.Optimizer2State.__init__.eps",description:`<strong>eps</strong> (<code>float</code>, defaults to 1e-8) &#x2014;
The epsilon value for the optimizer.`,name:"eps"},{anchor:"bitsandbytes.optim.optimizer.Optimizer2State.__init__.weight_decay",description:`<strong>weight_decay</strong> (<code>float</code>, defaults to 0.0) &#x2014;
The weight decay value for the optimizer.`,name:"weight_decay"},{anchor:"bitsandbytes.optim.optimizer.Optimizer2State.__init__.optim_bits",description:`<strong>optim_bits</strong> (<code>int</code>, defaults to 32) &#x2014;
The number of bits of the optimizer state.`,name:"optim_bits"},{anchor:"bitsandbytes.optim.optimizer.Optimizer2State.__init__.args",description:`<strong>args</strong> (<code>object</code>, defaults to <code>None</code>) &#x2014;
An object with additional arguments.`,name:"args"},{anchor:"bitsandbytes.optim.optimizer.Optimizer2State.__init__.min_8bit_size",description:`<strong>min_8bit_size</strong> (<code>int</code>, defaults to 4096) &#x2014;
The minimum number of elements of the parameter tensors for 8-bit optimization.`,name:"min_8bit_size"},{anchor:"bitsandbytes.optim.optimizer.Optimizer2State.__init__.percentile_clipping",description:`<strong>percentile_clipping</strong> (<code>int</code>, defaults to 100) &#x2014;
Adapts clipping threshold automatically by tracking the last 100 gradient norms and clipping the gradient at a certain percentile to improve stability.`,name:"percentile_clipping"},{anchor:"bitsandbytes.optim.optimizer.Optimizer2State.__init__.block_wise",description:`<strong>block_wise</strong> (<code>bool</code>, defaults to <code>True</code>) &#x2014;
Whether to independently quantize each block of tensors to reduce outlier effects and improve stability.`,name:"block_wise"},{anchor:"bitsandbytes.optim.optimizer.Optimizer2State.__init__.max_unorm",description:`<strong>max_unorm</strong> (<code>float</code>, defaults to 0.0) &#x2014;
The maximum value to normalize each block with.`,name:"max_unorm"},{anchor:"bitsandbytes.optim.optimizer.Optimizer2State.__init__.skip_zeros",description:`<strong>skip_zeros</strong> (<code>bool</code>, defaults to <code>False</code>) &#x2014;
Whether to skip zero values for sparse gradients and models to ensure correct updates.`,name:"skip_zeros"},{anchor:"bitsandbytes.optim.optimizer.Optimizer2State.__init__.is_paged",description:`<strong>is_paged</strong> (<code>bool</code>, defaults to <code>False</code>) &#x2014;
Whether the optimizer is a paged optimizer or not.`,name:"is_paged"}],source:"https://github.com/TimDettmers/bitsandbytes/blob/vr_1255/src/bitsandbytes/optim/optimizer.py#L341"}}),X=new re({props:{title:"Optimizer1State",local:"bitsandbytes.optim.optimizer.Optimizer1State",headingTag:"h2"}}),L=new E({props:{name:"class bitsandbytes.optim.optimizer.Optimizer1State",anchor:"bitsandbytes.optim.optimizer.Optimizer1State",parameters:[{name:"optimizer_name",val:""},{name:"params",val:""},{name:"lr",val:" = 0.001"},{name:"betas",val:" = (0.9, 0.0)"},{name:"eps",val:" = 1e-08"},{name:"weight_decay",val:" = 0.0"},{name:"optim_bits",val:" = 32"},{name:"args",val:" = None"},{name:"min_8bit_size",val:" = 4096"},{name:"percentile_clipping",val:" = 100"},{name:"block_wise",val:" = True"},{name:"max_unorm",val:" = 0.0"},{name:"skip_zeros",val:" = False"},{name:"is_paged",val:" = False"}],source:"https://github.com/TimDettmers/bitsandbytes/blob/vr_1255/src/bitsandbytes/optim/optimizer.py#L563"}}),R=new E({props:{name:"__init__",anchor:"bitsandbytes.optim.optimizer.Optimizer1State.__init__",parameters:[{name:"optimizer_name",val:""},{name:"params",val:""},{name:"lr",val:" = 0.001"},{name:"betas",val:" = (0.9, 0.0)"},{name:"eps",val:" = 1e-08"},{name:"weight_decay",val:" = 0.0"},{name:"optim_bits",val:" = 32"},{name:"args",val:" = None"},{name:"min_8bit_size",val:" = 4096"},{name:"percentile_clipping",val:" = 100"},{name:"block_wise",val:" = True"},{name:"max_unorm",val:" = 0.0"},{name:"skip_zeros",val:" = False"},{name:"is_paged",val:" = False"}],parametersDescription:[{anchor:"bitsandbytes.optim.optimizer.Optimizer1State.__init__.optimizer_name",description:`<strong>optimizer_name</strong> (<code>str</code>) &#x2014;
The name of the optimizer.`,name:"optimizer_name"},{anchor:"bitsandbytes.optim.optimizer.Optimizer1State.__init__.params",description:`<strong>params</strong> (<code>torch.tensor</code>) &#x2014;
The input parameters to optimize.`,name:"params"},{anchor:"bitsandbytes.optim.optimizer.Optimizer1State.__init__.lr",description:`<strong>lr</strong> (<code>float</code>, defaults to 1e-3) &#x2014;
The learning rate.`,name:"lr"},{anchor:"bitsandbytes.optim.optimizer.Optimizer1State.__init__.betas",description:`<strong>betas</strong> (<code>tuple</code>, defaults to (0.9, 0.0)) &#x2014;
The beta values for the optimizer.`,name:"betas"},{anchor:"bitsandbytes.optim.optimizer.Optimizer1State.__init__.eps",description:`<strong>eps</strong> (<code>float</code>, defaults to 1e-8) &#x2014;
The epsilon value for the optimizer.`,name:"eps"},{anchor:"bitsandbytes.optim.optimizer.Optimizer1State.__init__.weight_decay",description:`<strong>weight_decay</strong> (<code>float</code>, defaults to 0.0) &#x2014;
The weight decay value for the optimizer.`,name:"weight_decay"},{anchor:"bitsandbytes.optim.optimizer.Optimizer1State.__init__.optim_bits",description:`<strong>optim_bits</strong> (<code>int</code>, defaults to 32) &#x2014;
The number of bits of the optimizer state.`,name:"optim_bits"},{anchor:"bitsandbytes.optim.optimizer.Optimizer1State.__init__.args",description:`<strong>args</strong> (<code>object</code>, defaults to <code>None</code>) &#x2014;
An object with additional arguments.`,name:"args"},{anchor:"bitsandbytes.optim.optimizer.Optimizer1State.__init__.min_8bit_size",description:`<strong>min_8bit_size</strong> (<code>int</code>, defaults to 4096) &#x2014;
The minimum number of elements of the parameter tensors for 8-bit optimization.`,name:"min_8bit_size"},{anchor:"bitsandbytes.optim.optimizer.Optimizer1State.__init__.percentile_clipping",description:`<strong>percentile_clipping</strong> (<code>int</code>, defaults to 100) &#x2014;
Adapts clipping threshold automatically by tracking the last 100 gradient norms and clipping the gradient at a certain percentile to improve stability.`,name:"percentile_clipping"},{anchor:"bitsandbytes.optim.optimizer.Optimizer1State.__init__.block_wise",description:`<strong>block_wise</strong> (<code>bool</code>, defaults to <code>True</code>) &#x2014;
Whether to independently quantize each block of tensors to reduce outlier effects and improve stability.`,name:"block_wise"},{anchor:"bitsandbytes.optim.optimizer.Optimizer1State.__init__.max_unorm",description:`<strong>max_unorm</strong> (<code>float</code>, defaults to 0.0) &#x2014;
The maximum value to normalize each block with.`,name:"max_unorm"},{anchor:"bitsandbytes.optim.optimizer.Optimizer1State.__init__.skip_zeros",description:`<strong>skip_zeros</strong> (<code>bool</code>, defaults to <code>False</code>) &#x2014;
Whether to skip zero values for sparse gradients and models to ensure correct updates.`,name:"skip_zeros"},{anchor:"bitsandbytes.optim.optimizer.Optimizer1State.__init__.is_paged",description:`<strong>is_paged</strong> (<code>bool</code>, defaults to <code>False</code>) &#x2014;
Whether the optimizer is a paged optimizer or not.`,name:"is_paged"}],source:"https://github.com/TimDettmers/bitsandbytes/blob/vr_1255/src/bitsandbytes/optim/optimizer.py#L564"}}),H=new re({props:{title:"Utilities",local:"bitsandbytes.optim.GlobalOptimManager",headingTag:"h2"}}),A=new E({props:{name:"class bitsandbytes.optim.GlobalOptimManager",anchor:"bitsandbytes.optim.GlobalOptimManager",parameters:[],source:"https://github.com/TimDettmers/bitsandbytes/blob/vr_1255/src/bitsandbytes/optim/optimizer.py#L20"}}),N=new E({props:{name:"override_config",anchor:"bitsandbytes.optim.GlobalOptimManager.override_config",parameters:[{name:"parameters",val:""},{name:"key",val:" = None"},{name:"value",val:" = None"},{name:"key_value_dict",val:" = None"}],parametersDescription:[{anchor:"bitsandbytes.optim.GlobalOptimManager.override_config.parameters",description:`<strong>parameters</strong> (<code>torch.Tensor</code> or <code>list(torch.Tensors)</code>) &#x2014;
The input parameters.`,name:"parameters"},{anchor:"bitsandbytes.optim.GlobalOptimManager.override_config.key",description:`<strong>key</strong> (<code>str</code>) &#x2014;
The hyperparamter to override.
value &#x2014;
The hyperparameter values.`,name:"key"},{anchor:"bitsandbytes.optim.GlobalOptimManager.override_config.key_value_dict",description:`<strong>key_value_dict</strong> (<code>dict</code>) &#x2014;
A dictionary with multiple key-values to override.`,name:"key_value_dict"}],source:"https://github.com/TimDettmers/bitsandbytes/blob/vr_1255/src/bitsandbytes/optim/optimizer.py#L54"}}),J=new Ye({props:{anchor:"bitsandbytes.optim.GlobalOptimManager.override_config.example",$$slots:{default:[qe]},$$scope:{ctx:ne}}}),P=new Qe({props:{source:"https://github.com/TimDettmers/bitsandbytes/blob/main/docs/source/reference/optim/optim_overview.mdx"}}),{c(){l=s("meta"),W=a(),$=s("p"),u=a(),d(f.$$.fragment),p=a(),v=s("p"),v.innerHTML=We,se=a(),U=s("p"),U.innerHTML=Ue,me=a(),d(Z.$$.fragment),pe=a(),T=s("div"),d(B.$$.fragment),xe=a(),S=s("div"),d(D.$$.fragment),Te=a(),Q=s("p"),Q.textContent=Ze,le=a(),d(F.$$.fragment),de=a(),O=s("div"),d(I.$$.fragment),Oe=a(),C=s("div"),d(V.$$.fragment),Me=a(),q=s("p"),q.textContent=Be,ce=a(),d(X.$$.fragment),be=a(),M=s("div"),d(L.$$.fragment),ke=a(),G=s("div"),d(R.$$.fragment),Se=a(),K=s("p"),K.textContent=De,_e=a(),d(H.$$.fragment),ge=a(),y=s("div"),d(A.$$.fragment),Ce=a(),ee=s("p"),ee.textContent=Fe,Ge=a(),z=s("div"),d(N.$$.fragment),Je=a(),te=s("p"),te.textContent=Ie,je=a(),ie=s("p"),ie.innerHTML=Ve,Ee=a(),d(J.$$.fragment),he=a(),d(P.$$.fragment),ue=a(),oe=s("p"),this.h()},l(e){const i=Ne("svelte-u9bgzb",document.head);l=m(i,"META",{name:!0,content:!0}),i.forEach(t),W=o(e),$=m(e,"P",{}),w($).forEach(t),u=o(e),c(f.$$.fragment,e),p=o(e),v=m(e,"P",{"data-svelte-h":!0}),k(v)!=="svelte-blrrs1"&&(v.innerHTML=We),se=o(e),U=m(e,"P",{"data-svelte-h":!0}),k(U)!=="svelte-176x1ux"&&(U.innerHTML=Ue),me=o(e),c(Z.$$.fragment,e),pe=o(e),T=m(e,"DIV",{class:!0});var Y=w(T);c(B.$$.fragment,Y),xe=o(Y),S=m(Y,"DIV",{class:!0});var ze=w(S);c(D.$$.fragment,ze),Te=o(ze),Q=m(ze,"P",{"data-svelte-h":!0}),k(Q)!=="svelte-183isl2"&&(Q.textContent=Ze),ze.forEach(t),Y.forEach(t),le=o(e),c(F.$$.fragment,e),de=o(e),O=m(e,"DIV",{class:!0});var ve=w(O);c(I.$$.fragment,ve),Oe=o(ve),C=m(ve,"DIV",{class:!0});var ye=w(C);c(V.$$.fragment,ye),Me=o(ye),q=m(ye,"P",{"data-svelte-h":!0}),k(q)!=="svelte-cu1pwl"&&(q.textContent=Be),ye.forEach(t),ve.forEach(t),ce=o(e),c(X.$$.fragment,e),be=o(e),M=m(e,"DIV",{class:!0});var $e=w(M);c(L.$$.fragment,$e),ke=o($e),G=m($e,"DIV",{class:!0});var we=w(G);c(R.$$.fragment,we),Se=o(we),K=m(we,"P",{"data-svelte-h":!0}),k(K)!=="svelte-6q4esm"&&(K.textContent=De),we.forEach(t),$e.forEach(t),_e=o(e),c(H.$$.fragment,e),ge=o(e),y=m(e,"DIV",{class:!0});var ae=w(y);c(A.$$.fragment,ae),Ce=o(ae),ee=m(ae,"P",{"data-svelte-h":!0}),k(ee)!=="svelte-16hgmyw"&&(ee.textContent=Fe),Ge=o(ae),z=m(ae,"DIV",{class:!0});var j=w(z);c(N.$$.fragment,j),Je=o(j),te=m(j,"P",{"data-svelte-h":!0}),k(te)!=="svelte-1jb6me3"&&(te.textContent=Ie),je=o(j),ie=m(j,"P",{"data-svelte-h":!0}),k(ie)!=="svelte-nnr78r"&&(ie.innerHTML=Ve),Ee=o(j),c(J.$$.fragment,j),j.forEach(t),ae.forEach(t),he=o(e),c(P.$$.fragment,e),ue=o(e),oe=m(e,"P",{}),w(oe).forEach(t),this.h()},h(){x(l,"name","hf:doc:metadata"),x(l,"content",et),x(S,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),x(T,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),x(C,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),x(O,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),x(G,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),x(M,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),x(z,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),x(y,"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,i){n(document.head,l),r(e,W,i),r(e,$,i),r(e,u,i),b(f,e,i),r(e,p,i),r(e,v,i),r(e,se,i),r(e,U,i),r(e,me,i),b(Z,e,i),r(e,pe,i),r(e,T,i),b(B,T,null),n(T,xe),n(T,S),b(D,S,null),n(S,Te),n(S,Q),r(e,le,i),b(F,e,i),r(e,de,i),r(e,O,i),b(I,O,null),n(O,Oe),n(O,C),b(V,C,null),n(C,Me),n(C,q),r(e,ce,i),b(X,e,i),r(e,be,i),r(e,M,i),b(L,M,null),n(M,ke),n(M,G),b(R,G,null),n(G,Se),n(G,K),r(e,_e,i),b(H,e,i),r(e,ge,i),r(e,y,i),b(A,y,null),n(y,Ce),n(y,ee),n(y,Ge),n(y,z),b(N,z,null),n(z,Je),n(z,te),n(z,je),n(z,ie),n(z,Ee),b(J,z,null),r(e,he,i),b(P,e,i),r(e,ue,i),r(e,oe,i),fe=!0},p(e,[i]){const Y={};i&2&&(Y.$$scope={dirty:i,ctx:e}),J.$set(Y)},i(e){fe||(_(f.$$.fragment,e),_(Z.$$.fragment,e),_(B.$$.fragment,e),_(D.$$.fragment,e),_(F.$$.fragment,e),_(I.$$.fragment,e),_(V.$$.fragment,e),_(X.$$.fragment,e),_(L.$$.fragment,e),_(R.$$.fragment,e),_(H.$$.fragment,e),_(A.$$.fragment,e),_(N.$$.fragment,e),_(J.$$.fragment,e),_(P.$$.fragment,e),fe=!0)},o(e){g(f.$$.fragment,e),g(Z.$$.fragment,e),g(B.$$.fragment,e),g(D.$$.fragment,e),g(F.$$.fragment,e),g(I.$$.fragment,e),g(V.$$.fragment,e),g(X.$$.fragment,e),g(L.$$.fragment,e),g(R.$$.fragment,e),g(H.$$.fragment,e),g(A.$$.fragment,e),g(N.$$.fragment,e),g(J.$$.fragment,e),g(P.$$.fragment,e),fe=!1},d(e){e&&(t(W),t($),t(u),t(p),t(v),t(se),t(U),t(me),t(pe),t(T),t(le),t(de),t(O),t(ce),t(be),t(M),t(_e),t(ge),t(y),t(he),t(ue),t(oe)),t(l),h(f,e),h(Z,e),h(B),h(D),h(F,e),h(I),h(V),h(X,e),h(L),h(R),h(H,e),h(A),h(N),h(J),h(P,e)}}}const et='{"title":"Overview","local":"overview","sections":[{"title":"Optimizer8bit","local":"bitsandbytes.optim.optimizer.Optimizer8bit","sections":[],"depth":2},{"title":"Optimizer2State","local":"bitsandbytes.optim.optimizer.Optimizer2State","sections":[],"depth":2},{"title":"Optimizer1State","local":"bitsandbytes.optim.optimizer.Optimizer1State","sections":[],"depth":2},{"title":"Utilities","local":"bitsandbytes.optim.GlobalOptimManager","sections":[],"depth":2}],"depth":1}';function tt(ne){return Le(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class mt extends He{constructor(l){super(),Ae(this,l,tt,Ke,Xe,{})}}export{mt as component};

Xet Storage Details

Size:
22.3 kB
·
Xet hash:
6314041cfec150ff551711d6ed04f845264cec5706367dab2e1550b20497a337

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