import{s as W,n as D,o as J}from"../chunks/scheduler.8a2cc2fa.js";import{S as K,i as N,e as d,s as i,c as M,h as V,a as h,d as a,b as s,f as I,g as k,j as E,k as O,l as X,m as n,n as H,t as S,o as j,p as A}from"../chunks/index.7079e750.js";import{C as Y,H as Q,E as Z}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.ac36d8ed.js";function tt(F){let o,y,$,w,l,_,r,x,m,R="bitsandbytes enables accessible large language models via k-bit quantization for PyTorch. bitsandbytes provides three main features for dramatically reducing memory consumption for inference and training:",v,f,U="<li>8-bit optimizers uses block-wise quantization to maintain 32-bit performance at a small fraction of the memory cost.</li> <li>LLM.int8() or 8-bit quantization enables large language model inference with only half the required memory and without any performance degradation. This method is based on vector-wise quantization to quantize most features to 8-bits and separately treating outliers with 16-bit matrix multiplication.</li> <li>QLoRA or 4-bit quantization enables large language model training with several memory-saving techniques that don’t compromise performance. This method quantizes a model to 4-bits and inserts a small set of trainable low-rank adaptation (LoRA) weights to allow training.</li>",z,u,C,p,B="bitsandbytes is MIT licensed.",L,c,G='We thank Fabio Cannizzo for his work on <a href="https://github.com/fabiocannizzo/FastBinarySearch" rel="nofollow">FastBinarySearch</a> which we use for CPU quantization.',q,b,T,g,P;return l=new Y({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),r=new Q({props:{title:"bitsandbytes",local:"bitsandbytes",headingTag:"h1"}}),u=new Q({props:{title:"License",local:"license",headingTag:"h1"}}),b=new Z({props:{source:"https://github.com/bitsandbytes-foundation/bitsandbytes/blob/main/docs/source/index.mdx"}}),{c(){o=d("meta"),y=i(),$=d("p"),w=i(),M(l.$$.fragment),_=i(),M(r.$$.fragment),x=i(),m=d("p"),m.textContent=R,v=i(),f=d("ul"),f.innerHTML=U,z=i(),M(u.$$.fragment),C=i(),p=d("p"),p.textContent=B,L=i(),c=d("p"),c.innerHTML=G,q=i(),M(b.$$.fragment),T=i(),g=d("p"),this.h()},l(t){const e=V("svelte-u9bgzb",document.head);o=h(e,"META",{name:!0,content:!0}),e.forEach(a),y=s(t),$=h(t,"P",{}),I($).forEach(a),w=s(t),k(l.$$.fragment,t),_=s(t),k(r.$$.fragment,t),x=s(t),m=h(t,"P",{"data-svelte-h":!0}),E(m)!=="svelte-18pq57t"&&(m.textContent=R),v=s(t),f=h(t,"UL",{"data-svelte-h":!0}),E(f)!=="svelte-2c8gj9"&&(f.innerHTML=U),z=s(t),k(u.$$.fragment,t),C=s(t),p=h(t,"P",{"data-svelte-h":!0}),E(p)!=="svelte-zzmy3r"&&(p.textContent=B),L=s(t),c=h(t,"P",{"data-svelte-h":!0}),E(c)!=="svelte-18bjayv"&&(c.innerHTML=G),q=s(t),k(b.$$.fragment,t),T=s(t),g=h(t,"P",{}),I(g).forEach(a),this.h()},h(){O(o,"name","hf:doc:metadata"),O(o,"content",et)},m(t,e){X(document.head,o),n(t,y,e),n(t,$,e),n(t,w,e),H(l,t,e),n(t,_,e),H(r,t,e),n(t,x,e),n(t,m,e),n(t,v,e),n(t,f,e),n(t,z,e),H(u,t,e),n(t,C,e),n(t,p,e),n(t,L,e),n(t,c,e),n(t,q,e),H(b,t,e),n(t,T,e),n(t,g,e),P=!0},p:D,i(t){P||(S(l.$$.fragment,t),S(r.$$.fragment,t),S(u.$$.fragment,t),S(b.$$.fragment,t),P=!0)},o(t){j(l.$$.fragment,t),j(r.$$.fragment,t),j(u.$$.fragment,t),j(b.$$.fragment,t),P=!1},d(t){t&&(a(y),a($),a(w),a(_),a(x),a(m),a(v),a(f),a(z),a(C),a(p),a(L),a(c),a(q),a(T),a(g)),a(o),A(l,t),A(r,t),A(u,t),A(b,t)}}}const et='{"title":"bitsandbytes","local":"bitsandbytes","sections":[],"depth":1}';function at(F){return J(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class ot extends K{constructor(o){super(),N(this,o,at,tt,W,{})}}export{ot as component};
