Buckets:
| import{s as Rt,o as At,n as Ht}from"../chunks/scheduler.8a2cc2fa.js";import{S as Dt,i as Pt,e as s,s as a,c as d,h as Yt,a as m,d as e,b as o,f as x,g as b,j as S,k as w,l as r,m as n,n as c,t as _,o as g,p as h}from"../chunks/index.7079e750.js";import{C as Qt,H as rt,E as Kt}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.2b7ce466.js";import{D as j}from"../chunks/Docstring.8c9a5003.js";import{C as qt}from"../chunks/CodeBlock.a326412a.js";import{E as te}from"../chunks/ExampleCodeBlock.7664d7e9.js";function ee(st){let l,W="Example:",$,f,u;return f=new qt({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">'optim_bits'</span>, <span class="hljs-number">32</span>)`,wrap:!1}}),{c(){l=s("p"),l.textContent=W,$=a(),d(f.$$.fragment)},l(p){l=m(p,"P",{"data-svelte-h":!0}),S(l)!=="svelte-11lpom8"&&(l.textContent=W),$=o(p),b(f.$$.fragment,p)},m(p,v){n(p,l,v),n(p,$,v),c(f,p,v),u=!0},p:Ht,i(p){u||(_(f.$$.fragment,p),u=!0)},o(p){g(f.$$.fragment,p),u=!1},d(p){p&&(e(l),e($)),h(f,p)}}}function ie(st){let l,W,$,f,u,p,v,mt,U,Zt='<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.',pt,Z,Bt="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.",lt,B,dt,M,F,Ot,k,I,Tt,K,Ft="Base 8-bit optimizer class.",bt,N,ct,O,L,St,C,V,kt,q,It="Base 2-state update optimizer class.",_t,X,gt,T,R,Ct,G,A,Gt,tt,Nt="Base 1-state update optimizer class.",ht,H,ft,y,D,Jt,et,Lt="A global optimizer manager for enabling custom optimizer configs.",Et,z,P,jt,it,Vt="Override initial optimizer config with specific hyperparameters.",Wt,at,Xt=`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>.`,Ut,J,ut,Y,zt,nt,vt;return u=new Qt({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),v=new rt({props:{title:"Overview",local:"overview",headingTag:"h1"}}),B=new rt({props:{title:"Optimizer8bit",local:"bitsandbytes.optim.optimizer.Optimizer8bit",headingTag:"h2"}}),F=new j({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/bitsandbytes-foundation/bitsandbytes/blob/vr_1908/bitsandbytes/optim/optimizer.py#L117"}}),I=new j({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>) — | |
| 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) — | |
| 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>) — | |
| Whether the optimizer is a paged optimizer or not.`,name:"is_paged"}],source:"https://github.com/bitsandbytes-foundation/bitsandbytes/blob/vr_1908/bitsandbytes/optim/optimizer.py#L120"}}),N=new rt({props:{title:"Optimizer2State",local:"bitsandbytes.optim.optimizer.Optimizer2State",headingTag:"h2"}}),L=new j({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:"max_unorm",val:" = 0.0"},{name:"skip_zeros",val:" = False"},{name:"is_paged",val:" = False"},{name:"alpha",val:" = 0.0"},{name:"t_alpha",val:": typing.Optional[int] = None"},{name:"t_beta3",val:": typing.Optional[int] = None"}],source:"https://github.com/bitsandbytes-foundation/bitsandbytes/blob/vr_1908/bitsandbytes/optim/optimizer.py#L403"}}),V=new j({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:"max_unorm",val:" = 0.0"},{name:"skip_zeros",val:" = False"},{name:"is_paged",val:" = False"},{name:"alpha",val:" = 0.0"},{name:"t_alpha",val:": typing.Optional[int] = None"},{name:"t_beta3",val:": typing.Optional[int] = None"}],parametersDescription:[{anchor:"bitsandbytes.optim.optimizer.Optimizer2State.__init__.optimizer_name",description:`<strong>optimizer_name</strong> (<code>str</code>) — | |
| The name of the optimizer.`,name:"optimizer_name"},{anchor:"bitsandbytes.optim.optimizer.Optimizer2State.__init__.params",description:`<strong>params</strong> (<code>torch.Tensor</code>) — | |
| 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) — | |
| 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)) — | |
| 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) — | |
| 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) — | |
| 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) — | |
| 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>) — | |
| 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) — | |
| The minimum number of elements of the parameter tensors for 8-bit optimization.`,name:"min_8bit_size"},{anchor:"bitsandbytes.optim.optimizer.Optimizer2State.__init__.max_unorm",description:`<strong>max_unorm</strong> (<code>float</code>, defaults to 0.0) — | |
| 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>) — | |
| 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>) — | |
| Whether the optimizer is a paged optimizer or not.`,name:"is_paged"},{anchor:"bitsandbytes.optim.optimizer.Optimizer2State.__init__.alpha",description:`<strong>alpha</strong> (<code>float</code>, defaults to 0.0) — | |
| The alpha value for the AdEMAMix optimizer.`,name:"alpha"},{anchor:"bitsandbytes.optim.optimizer.Optimizer2State.__init__.t_alpha",description:`<strong>t_alpha</strong> (<code>Optional[int]</code>, defaults to <code>None</code>) — | |
| Number of iterations for alpha scheduling with AdEMAMix.`,name:"t_alpha"},{anchor:"bitsandbytes.optim.optimizer.Optimizer2State.__init__.t_beta3",description:`<strong>t_beta3</strong> (<code>Optional[int]</code>, defaults to <code>None</code>) — | |
| Number of iterations for beta scheduling with AdEMAMix.`,name:"t_beta3"}],source:"https://github.com/bitsandbytes-foundation/bitsandbytes/blob/vr_1908/bitsandbytes/optim/optimizer.py#L404"}}),X=new rt({props:{title:"Optimizer1State",local:"bitsandbytes.optim.optimizer.Optimizer1State",headingTag:"h2"}}),R=new j({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:"max_unorm",val:" = 0.0"},{name:"skip_zeros",val:" = False"},{name:"is_paged",val:" = False"}],source:"https://github.com/bitsandbytes-foundation/bitsandbytes/blob/vr_1908/bitsandbytes/optim/optimizer.py#L593"}}),A=new j({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:"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>) — | |
| The name of the optimizer.`,name:"optimizer_name"},{anchor:"bitsandbytes.optim.optimizer.Optimizer1State.__init__.params",description:`<strong>params</strong> (<code>torch.Tensor</code>) — | |
| 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) — | |
| 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)) — | |
| 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) — | |
| 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) — | |
| 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) — | |
| 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>) — | |
| 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) — | |
| The minimum number of elements of the parameter tensors for 8-bit optimization.`,name:"min_8bit_size"},{anchor:"bitsandbytes.optim.optimizer.Optimizer1State.__init__.max_unorm",description:`<strong>max_unorm</strong> (<code>float</code>, defaults to 0.0) — | |
| 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>) — | |
| 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>) — | |
| Whether the optimizer is a paged optimizer or not.`,name:"is_paged"}],source:"https://github.com/bitsandbytes-foundation/bitsandbytes/blob/vr_1908/bitsandbytes/optim/optimizer.py#L594"}}),H=new rt({props:{title:"Utilities",local:"bitsandbytes.optim.GlobalOptimManager",headingTag:"h2"}}),D=new j({props:{name:"class bitsandbytes.optim.GlobalOptimManager",anchor:"bitsandbytes.optim.GlobalOptimManager",parameters:[],source:"https://github.com/bitsandbytes-foundation/bitsandbytes/blob/vr_1908/bitsandbytes/optim/optimizer.py#L26"}}),P=new j({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>) — | |
| The input parameters.`,name:"parameters"},{anchor:"bitsandbytes.optim.GlobalOptimManager.override_config.key",description:`<strong>key</strong> (<code>str</code>) — | |
| The hyperparameter to override.`,name:"key"},{anchor:"bitsandbytes.optim.GlobalOptimManager.override_config.value",description:`<strong>value</strong> — | |
| The hyperparameter value.`,name:"value"},{anchor:"bitsandbytes.optim.GlobalOptimManager.override_config.key_value_dict",description:`<strong>key_value_dict</strong> (<code>dict</code>) — | |
| A dictionary with multiple key-values to override.`,name:"key_value_dict"}],source:"https://github.com/bitsandbytes-foundation/bitsandbytes/blob/vr_1908/bitsandbytes/optim/optimizer.py#L60"}}),J=new te({props:{anchor:"bitsandbytes.optim.GlobalOptimManager.override_config.example",$$slots:{default:[ee]},$$scope:{ctx:st}}}),Y=new Kt({props:{source:"https://github.com/bitsandbytes-foundation/bitsandbytes/blob/main/docs/source/reference/optim/optim_overview.mdx"}}),{c(){l=s("meta"),W=a(),$=s("p"),f=a(),d(u.$$.fragment),p=a(),d(v.$$.fragment),mt=a(),U=s("p"),U.innerHTML=Zt,pt=a(),Z=s("p"),Z.innerHTML=Bt,lt=a(),d(B.$$.fragment),dt=a(),M=s("div"),d(F.$$.fragment),Ot=a(),k=s("div"),d(I.$$.fragment),Tt=a(),K=s("p"),K.textContent=Ft,bt=a(),d(N.$$.fragment),ct=a(),O=s("div"),d(L.$$.fragment),St=a(),C=s("div"),d(V.$$.fragment),kt=a(),q=s("p"),q.textContent=It,_t=a(),d(X.$$.fragment),gt=a(),T=s("div"),d(R.$$.fragment),Ct=a(),G=s("div"),d(A.$$.fragment),Gt=a(),tt=s("p"),tt.textContent=Nt,ht=a(),d(H.$$.fragment),ft=a(),y=s("div"),d(D.$$.fragment),Jt=a(),et=s("p"),et.textContent=Lt,Et=a(),z=s("div"),d(P.$$.fragment),jt=a(),it=s("p"),it.textContent=Vt,Wt=a(),at=s("p"),at.innerHTML=Xt,Ut=a(),d(J.$$.fragment),ut=a(),d(Y.$$.fragment),zt=a(),nt=s("p"),this.h()},l(t){const i=Yt("svelte-u9bgzb",document.head);l=m(i,"META",{name:!0,content:!0}),i.forEach(e),W=o(t),$=m(t,"P",{}),x($).forEach(e),f=o(t),b(u.$$.fragment,t),p=o(t),b(v.$$.fragment,t),mt=o(t),U=m(t,"P",{"data-svelte-h":!0}),S(U)!=="svelte-blrrs1"&&(U.innerHTML=Zt),pt=o(t),Z=m(t,"P",{"data-svelte-h":!0}),S(Z)!=="svelte-176x1ux"&&(Z.innerHTML=Bt),lt=o(t),b(B.$$.fragment,t),dt=o(t),M=m(t,"DIV",{class:!0});var Q=x(M);b(F.$$.fragment,Q),Ot=o(Q),k=m(Q,"DIV",{class:!0});var yt=x(k);b(I.$$.fragment,yt),Tt=o(yt),K=m(yt,"P",{"data-svelte-h":!0}),S(K)!=="svelte-183isl2"&&(K.textContent=Ft),yt.forEach(e),Q.forEach(e),bt=o(t),b(N.$$.fragment,t),ct=o(t),O=m(t,"DIV",{class:!0});var $t=x(O);b(L.$$.fragment,$t),St=o($t),C=m($t,"DIV",{class:!0});var xt=x(C);b(V.$$.fragment,xt),kt=o(xt),q=m(xt,"P",{"data-svelte-h":!0}),S(q)!=="svelte-cu1pwl"&&(q.textContent=It),xt.forEach(e),$t.forEach(e),_t=o(t),b(X.$$.fragment,t),gt=o(t),T=m(t,"DIV",{class:!0});var wt=x(T);b(R.$$.fragment,wt),Ct=o(wt),G=m(wt,"DIV",{class:!0});var Mt=x(G);b(A.$$.fragment,Mt),Gt=o(Mt),tt=m(Mt,"P",{"data-svelte-h":!0}),S(tt)!=="svelte-6q4esm"&&(tt.textContent=Nt),Mt.forEach(e),wt.forEach(e),ht=o(t),b(H.$$.fragment,t),ft=o(t),y=m(t,"DIV",{class:!0});var ot=x(y);b(D.$$.fragment,ot),Jt=o(ot),et=m(ot,"P",{"data-svelte-h":!0}),S(et)!=="svelte-16hgmyw"&&(et.textContent=Lt),Et=o(ot),z=m(ot,"DIV",{class:!0});var E=x(z);b(P.$$.fragment,E),jt=o(E),it=m(E,"P",{"data-svelte-h":!0}),S(it)!=="svelte-1jb6me3"&&(it.textContent=Vt),Wt=o(E),at=m(E,"P",{"data-svelte-h":!0}),S(at)!=="svelte-17hc6et"&&(at.innerHTML=Xt),Ut=o(E),b(J.$$.fragment,E),E.forEach(e),ot.forEach(e),ut=o(t),b(Y.$$.fragment,t),zt=o(t),nt=m(t,"P",{}),x(nt).forEach(e),this.h()},h(){w(l,"name","hf:doc:metadata"),w(l,"content",ae),w(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(M,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),w(C,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),w(O,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),w(G,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),w(T,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),w(z,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),w(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(t,i){r(document.head,l),n(t,W,i),n(t,$,i),n(t,f,i),c(u,t,i),n(t,p,i),c(v,t,i),n(t,mt,i),n(t,U,i),n(t,pt,i),n(t,Z,i),n(t,lt,i),c(B,t,i),n(t,dt,i),n(t,M,i),c(F,M,null),r(M,Ot),r(M,k),c(I,k,null),r(k,Tt),r(k,K),n(t,bt,i),c(N,t,i),n(t,ct,i),n(t,O,i),c(L,O,null),r(O,St),r(O,C),c(V,C,null),r(C,kt),r(C,q),n(t,_t,i),c(X,t,i),n(t,gt,i),n(t,T,i),c(R,T,null),r(T,Ct),r(T,G),c(A,G,null),r(G,Gt),r(G,tt),n(t,ht,i),c(H,t,i),n(t,ft,i),n(t,y,i),c(D,y,null),r(y,Jt),r(y,et),r(y,Et),r(y,z),c(P,z,null),r(z,jt),r(z,it),r(z,Wt),r(z,at),r(z,Ut),c(J,z,null),n(t,ut,i),c(Y,t,i),n(t,zt,i),n(t,nt,i),vt=!0},p(t,[i]){const Q={};i&2&&(Q.$$scope={dirty:i,ctx:t}),J.$set(Q)},i(t){vt||(_(u.$$.fragment,t),_(v.$$.fragment,t),_(B.$$.fragment,t),_(F.$$.fragment,t),_(I.$$.fragment,t),_(N.$$.fragment,t),_(L.$$.fragment,t),_(V.$$.fragment,t),_(X.$$.fragment,t),_(R.$$.fragment,t),_(A.$$.fragment,t),_(H.$$.fragment,t),_(D.$$.fragment,t),_(P.$$.fragment,t),_(J.$$.fragment,t),_(Y.$$.fragment,t),vt=!0)},o(t){g(u.$$.fragment,t),g(v.$$.fragment,t),g(B.$$.fragment,t),g(F.$$.fragment,t),g(I.$$.fragment,t),g(N.$$.fragment,t),g(L.$$.fragment,t),g(V.$$.fragment,t),g(X.$$.fragment,t),g(R.$$.fragment,t),g(A.$$.fragment,t),g(H.$$.fragment,t),g(D.$$.fragment,t),g(P.$$.fragment,t),g(J.$$.fragment,t),g(Y.$$.fragment,t),vt=!1},d(t){t&&(e(W),e($),e(f),e(p),e(mt),e(U),e(pt),e(Z),e(lt),e(dt),e(M),e(bt),e(ct),e(O),e(_t),e(gt),e(T),e(ht),e(ft),e(y),e(ut),e(zt),e(nt)),e(l),h(u,t),h(v,t),h(B,t),h(F),h(I),h(N,t),h(L),h(V),h(X,t),h(R),h(A),h(H,t),h(D),h(P),h(J),h(Y,t)}}}const ae='{"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 oe(st){return At(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class de extends Dt{constructor(l){super(),Pt(this,l,oe,ie,Rt,{})}}export{de as component}; | |
Xet Storage Details
- Size:
- 22.1 kB
- Xet hash:
- 4ab82811394942a302b1bb22f8adf3dd3b32d9dda46cd9ec3640a0fb017692c3
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.