Buckets:
| import{s as ee,n as le,o as ne}from"../chunks/scheduler.8a2cc2fa.js";import{S as se,i as ae,e as M,s,c as i,h as ie,a as u,d as l,b as a,f as Ot,g as m,j as f,k as te,l as me,m as n,n as p,t as r,o,p as b}from"../chunks/index.7079e750.js";import{C as pe,H as y,E as re}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.2b7ce466.js";import{C as P}from"../chunks/CodeBlock.a326412a.js";function oe(zt){let d,tt,D,et,J,lt,T,nt,c,Xt="Welcome to bitsandbytes! This library enables accessible large language models via k-bit quantization for PyTorch, dramatically reducing memory consumption for inference and training.",st,w,at,h,it,$,Ft="<strong>Requirements:</strong> Python 3.10+, PyTorch 2.3+",mt,g,Rt='For detailed installation instructions, see the <a href="./installation">Installation Guide</a>.',pt,U,rt,C,xt="bitsandbytes provides three main features:",ot,j,Vt="<li><strong>LLM.int8()</strong>: 8-bit quantization for inference (50% memory reduction)</li> <li><strong>QLoRA</strong>: 4-bit quantization for training (75% memory reduction)</li> <li><strong>8-bit Optimizers</strong>: Memory-efficient optimizers for training</li>",bt,B,Mt,I,ut,k,Lt="Load and run a model using 8-bit quantization:",ft,G,yt,Z,Yt='<p><strong>Learn more:</strong> See the <a href="./integrations">Integrations guide</a> for more details on using bitsandbytes with Transformers.</p>',dt,Q,Jt,W,qt="For even greater memory savings:",Tt,v,ct,_,wt,E,Nt="Combine 4-bit quantization with LoRA for efficient training:",ht,z,$t,X,At='<p><strong>Learn more:</strong> See the <a href="./fsdp_qlora">FSDP-QLoRA guide</a> for advanced training techniques and the <a href="./integrations">Integrations guide</a> for using with PEFT.</p>',gt,F,Ut,R,St="Use 8-bit optimizers to reduce training memory by 75%:",Ct,x,jt,V,Ht='<p><strong>Learn more:</strong> See the <a href="./optimizers">8-bit Optimizers guide</a> for detailed usage and configuration options.</p>',Bt,L,It,Y,Kt="Use quantized linear layers directly in your models:",kt,q,Gt,N,Zt,A,Pt='<li><a href="./optimizers">8-bit Optimizers Guide</a> - Detailed optimizer usage</li> <li><a href="./fsdp_qlora">FSDP-QLoRA</a> - Train 70B+ models on consumer GPUs</li> <li><a href="./integrations">Integrations</a> - Use with Transformers, PEFT, Accelerate</li> <li><a href="./faqs">FAQs</a> - Common questions and troubleshooting</li>',Qt,S,Wt,H,Dt='<li>Check the <a href="./faqs">FAQs</a> and <a href="./errors">Common Errors</a></li> <li>Visit <a href="https://huggingface.co/docs/bitsandbytes" rel="nofollow">official documentation</a></li> <li>Open an issue on <a href="https://github.com/bitsandbytes-foundation/bitsandbytes/issues" rel="nofollow">GitHub</a></li>',vt,K,_t,O,Et;return J=new pe({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),T=new y({props:{title:"Quickstart",local:"quickstart",headingTag:"h1"}}),w=new y({props:{title:"Installation",local:"installation",headingTag:"h2"}}),h=new P({props:{code:"cGlwJTIwaW5zdGFsbCUyMGJpdHNhbmRieXRlcw==",highlighted:"pip install bitsandbytes",wrap:!1}}),U=new y({props:{title:"What is bitsandbytes?",local:"what-is-bitsandbytes",headingTag:"h2"}}),B=new y({props:{title:"Quick Examples",local:"quick-examples",headingTag:"h2"}}),I=new y({props:{title:"8-bit Inference",local:"8-bit-inference",headingTag:"h3"}}),G=new P({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Nb2RlbEZvckNhdXNhbExNJTJDJTIwQXV0b1Rva2VuaXplciUyQyUyMEJpdHNBbmRCeXRlc0NvbmZpZyUwQSUwQW1vZGVsJTIwJTNEJTIwQXV0b01vZGVsRm9yQ2F1c2FsTE0uZnJvbV9wcmV0cmFpbmVkKCUwQSUyMCUyMCUyMCUyMCUyMm1ldGEtbGxhbWElMkZMbGFtYS0yLTdiLWhmJTIyJTJDJTBBJTIwJTIwJTIwJTIwZGV2aWNlX21hcCUzRCUyMmF1dG8lMjIlMkMlMEElMjAlMjAlMjAlMjBxdWFudGl6YXRpb25fY29uZmlnJTNEQml0c0FuZEJ5dGVzQ29uZmlnKGxvYWRfaW5fOGJpdCUzRFRydWUpJTJDJTBBKSUwQSUwQXRva2VuaXplciUyMCUzRCUyMEF1dG9Ub2tlbml6ZXIuZnJvbV9wcmV0cmFpbmVkKCUyMm1ldGEtbGxhbWElMkZMbGFtYS0yLTdiLWhmJTIyKSUwQWlucHV0cyUyMCUzRCUyMHRva2VuaXplciglMjJIZWxsbyUyQyUyMG15JTIwbmFtZSUyMGlzJTIyJTJDJTIwcmV0dXJuX3RlbnNvcnMlM0QlMjJwdCUyMikudG8oJTIyY3VkYSUyMiklMEFvdXRwdXRzJTIwJTNEJTIwbW9kZWwuZ2VuZXJhdGUoKippbnB1dHMlMkMlMjBtYXhfbmV3X3Rva2VucyUzRDIwKSUwQXByaW50KHRva2VuaXplci5kZWNvZGUob3V0cHV0cyU1QjAlNUQpKQ==",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig | |
| model = AutoModelForCausalLM.from_pretrained( | |
| <span class="hljs-string">"meta-llama/Llama-2-7b-hf"</span>, | |
| device_map=<span class="hljs-string">"auto"</span>, | |
| quantization_config=BitsAndBytesConfig(load_in_8bit=<span class="hljs-literal">True</span>), | |
| ) | |
| tokenizer = AutoTokenizer.from_pretrained(<span class="hljs-string">"meta-llama/Llama-2-7b-hf"</span>) | |
| inputs = tokenizer(<span class="hljs-string">"Hello, my name is"</span>, return_tensors=<span class="hljs-string">"pt"</span>).to(<span class="hljs-string">"cuda"</span>) | |
| outputs = model.generate(**inputs, max_new_tokens=<span class="hljs-number">20</span>) | |
| <span class="hljs-built_in">print</span>(tokenizer.decode(outputs[<span class="hljs-number">0</span>]))`,wrap:!1}}),Q=new y({props:{title:"4-bit Quantization",local:"4-bit-quantization",headingTag:"h3"}}),v=new P({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwdHJhbnNmb3JtZXJzJTIwaW1wb3J0JTIwQXV0b01vZGVsRm9yQ2F1c2FsTE0lMkMlMjBCaXRzQW5kQnl0ZXNDb25maWclMEElMEFibmJfY29uZmlnJTIwJTNEJTIwQml0c0FuZEJ5dGVzQ29uZmlnKCUwQSUyMCUyMCUyMCUyMGxvYWRfaW5fNGJpdCUzRFRydWUlMkMlMEElMjAlMjAlMjAlMjBibmJfNGJpdF9jb21wdXRlX2R0eXBlJTNEdG9yY2guYmZsb2F0MTYlMkMlMEElMjAlMjAlMjAlMjBibmJfNGJpdF9xdWFudF90eXBlJTNEJTIybmY0JTIyJTJDJTBBKSUwQSUwQW1vZGVsJTIwJTNEJTIwQXV0b01vZGVsRm9yQ2F1c2FsTE0uZnJvbV9wcmV0cmFpbmVkKCUwQSUyMCUyMCUyMCUyMCUyMm1ldGEtbGxhbWElMkZMbGFtYS0yLTdiLWhmJTIyJTJDJTBBJTIwJTIwJTIwJTIwcXVhbnRpemF0aW9uX2NvbmZpZyUzRGJuYl9jb25maWclMkMlMEElMjAlMjAlMjAlMjBkZXZpY2VfbWFwJTNEJTIyYXV0byUyMiUyQyUwQSk=",highlighted:`<span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModelForCausalLM, BitsAndBytesConfig | |
| bnb_config = BitsAndBytesConfig( | |
| load_in_4bit=<span class="hljs-literal">True</span>, | |
| bnb_4bit_compute_dtype=torch.bfloat16, | |
| bnb_4bit_quant_type=<span class="hljs-string">"nf4"</span>, | |
| ) | |
| model = AutoModelForCausalLM.from_pretrained( | |
| <span class="hljs-string">"meta-llama/Llama-2-7b-hf"</span>, | |
| quantization_config=bnb_config, | |
| device_map=<span class="hljs-string">"auto"</span>, | |
| )`,wrap:!1}}),_=new y({props:{title:"QLoRA Fine-tuning",local:"qlora-fine-tuning",headingTag:"h3"}}),z=new P({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Nb2RlbEZvckNhdXNhbExNJTJDJTIwQml0c0FuZEJ5dGVzQ29uZmlnJTBBZnJvbSUyMHBlZnQlMjBpbXBvcnQlMjBMb3JhQ29uZmlnJTJDJTIwZ2V0X3BlZnRfbW9kZWwlMkMlMjBwcmVwYXJlX21vZGVsX2Zvcl9rYml0X3RyYWluaW5nJTBBJTBBJTIzJTIwTG9hZCUyMDQtYml0JTIwbW9kZWwlMEFibmJfY29uZmlnJTIwJTNEJTIwQml0c0FuZEJ5dGVzQ29uZmlnKGxvYWRfaW5fNGJpdCUzRFRydWUpJTBBbW9kZWwlMjAlM0QlMjBBdXRvTW9kZWxGb3JDYXVzYWxMTS5mcm9tX3ByZXRyYWluZWQoJTBBJTIwJTIwJTIwJTIwJTIybWV0YS1sbGFtYSUyRkxsYW1hLTItN2ItaGYlMjIlMkMlMEElMjAlMjAlMjAlMjBxdWFudGl6YXRpb25fY29uZmlnJTNEYm5iX2NvbmZpZyUyQyUwQSklMEElMEElMjMlMjBQcmVwYXJlJTIwZm9yJTIwdHJhaW5pbmclMEFtb2RlbCUyMCUzRCUyMHByZXBhcmVfbW9kZWxfZm9yX2tiaXRfdHJhaW5pbmcobW9kZWwpJTBBJTBBJTIzJTIwQWRkJTIwTG9SQSUyMGFkYXB0ZXJzJTBBbG9yYV9jb25maWclMjAlM0QlMjBMb3JhQ29uZmlnKCUwQSUyMCUyMCUyMCUyMHIlM0QxNiUyQyUwQSUyMCUyMCUyMCUyMGxvcmFfYWxwaGElM0QzMiUyQyUwQSUyMCUyMCUyMCUyMHRhcmdldF9tb2R1bGVzJTNEJTVCJTIycV9wcm9qJTIyJTJDJTIwJTIydl9wcm9qJTIyJTVEJTJDJTBBJTIwJTIwJTIwJTIwdGFza190eXBlJTNEJTIyQ0FVU0FMX0xNJTIyJTJDJTBBKSUwQW1vZGVsJTIwJTNEJTIwZ2V0X3BlZnRfbW9kZWwobW9kZWwlMkMlMjBsb3JhX2NvbmZpZyklMEElMEElMjMlMjBOb3clMjB0cmFpbiUyMHdpdGglMjB5b3VyJTIwcHJlZmVycmVkJTIwdHJhaW5lcg==",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModelForCausalLM, BitsAndBytesConfig | |
| <span class="hljs-keyword">from</span> peft <span class="hljs-keyword">import</span> LoraConfig, get_peft_model, prepare_model_for_kbit_training | |
| <span class="hljs-comment"># Load 4-bit model</span> | |
| bnb_config = BitsAndBytesConfig(load_in_4bit=<span class="hljs-literal">True</span>) | |
| model = AutoModelForCausalLM.from_pretrained( | |
| <span class="hljs-string">"meta-llama/Llama-2-7b-hf"</span>, | |
| quantization_config=bnb_config, | |
| ) | |
| <span class="hljs-comment"># Prepare for training</span> | |
| model = prepare_model_for_kbit_training(model) | |
| <span class="hljs-comment"># Add LoRA adapters</span> | |
| lora_config = LoraConfig( | |
| r=<span class="hljs-number">16</span>, | |
| lora_alpha=<span class="hljs-number">32</span>, | |
| target_modules=[<span class="hljs-string">"q_proj"</span>, <span class="hljs-string">"v_proj"</span>], | |
| task_type=<span class="hljs-string">"CAUSAL_LM"</span>, | |
| ) | |
| model = get_peft_model(model, lora_config) | |
| <span class="hljs-comment"># Now train with your preferred trainer</span>`,wrap:!1}}),F=new y({props:{title:"8-bit Optimizers",local:"8-bit-optimizers",headingTag:"h3"}}),x=new P({props:{code:"aW1wb3J0JTIwYml0c2FuZGJ5dGVzJTIwYXMlMjBibmIlMEElMEFtb2RlbCUyMCUzRCUyMFlvdXJNb2RlbCgpJTBBJTBBJTIzJTIwUmVwbGFjZSUyMHN0YW5kYXJkJTIwb3B0aW1pemVyJTIwd2l0aCUyMDgtYml0JTIwdmVyc2lvbiUwQW9wdGltaXplciUyMCUzRCUyMGJuYi5vcHRpbS5BZGFtOGJpdChtb2RlbC5wYXJhbWV0ZXJzKCklMkMlMjBsciUzRDFlLTMpJTBBJTBBJTIzJTIwVXNlJTIwaW4lMjB0cmFpbmluZyUyMGxvb3AlMjBhcyUyMG5vcm1hbCUwQWZvciUyMGJhdGNoJTIwaW4lMjBkYXRhbG9hZGVyJTNBJTBBJTIwJTIwJTIwJTIwbG9zcyUyMCUzRCUyMG1vZGVsKGJhdGNoKSUwQSUyMCUyMCUyMCUyMGxvc3MuYmFja3dhcmQoKSUwQSUyMCUyMCUyMCUyMG9wdGltaXplci5zdGVwKCklMEElMjAlMjAlMjAlMjBvcHRpbWl6ZXIuemVyb19ncmFkKCk=",highlighted:`<span class="hljs-keyword">import</span> bitsandbytes <span class="hljs-keyword">as</span> bnb | |
| model = YourModel() | |
| <span class="hljs-comment"># Replace standard optimizer with 8-bit version</span> | |
| optimizer = bnb.optim.Adam8bit(model.parameters(), lr=<span class="hljs-number">1e-3</span>) | |
| <span class="hljs-comment"># Use in training loop as normal</span> | |
| <span class="hljs-keyword">for</span> batch <span class="hljs-keyword">in</span> dataloader: | |
| loss = model(batch) | |
| loss.backward() | |
| optimizer.step() | |
| optimizer.zero_grad()`,wrap:!1}}),L=new y({props:{title:"Custom Quantized Layers",local:"custom-quantized-layers",headingTag:"h3"}}),q=new P({props:{code:"aW1wb3J0JTIwdG9yY2glMEFpbXBvcnQlMjBiaXRzYW5kYnl0ZXMlMjBhcyUyMGJuYiUwQSUwQSUyMyUyMDgtYml0JTIwbGluZWFyJTIwbGF5ZXIlMEFsaW5lYXJfOGJpdCUyMCUzRCUyMGJuYi5ubi5MaW5lYXI4Yml0THQoMTAyNCUyQyUyMDEwMjQlMkMlMjBoYXNfZnAxNl93ZWlnaHRzJTNERmFsc2UpJTBBJTBBJTIzJTIwNC1iaXQlMjBsaW5lYXIlMjBsYXllciUwQWxpbmVhcl80Yml0JTIwJTNEJTIwYm5iLm5uLkxpbmVhcjRiaXQoMTAyNCUyQyUyMDEwMjQlMkMlMjBjb21wdXRlX2R0eXBlJTNEdG9yY2guYmZsb2F0MTYp",highlighted:`<span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">import</span> bitsandbytes <span class="hljs-keyword">as</span> bnb | |
| <span class="hljs-comment"># 8-bit linear layer</span> | |
| linear_8bit = bnb.nn.Linear8bitLt(<span class="hljs-number">1024</span>, <span class="hljs-number">1024</span>, has_fp16_weights=<span class="hljs-literal">False</span>) | |
| <span class="hljs-comment"># 4-bit linear layer</span> | |
| linear_4bit = bnb.nn.Linear4bit(<span class="hljs-number">1024</span>, <span class="hljs-number">1024</span>, compute_dtype=torch.bfloat16)`,wrap:!1}}),N=new y({props:{title:"Next Steps",local:"next-steps",headingTag:"h2"}}),S=new y({props:{title:"Getting Help",local:"getting-help",headingTag:"h2"}}),K=new re({props:{source:"https://github.com/bitsandbytes-foundation/bitsandbytes/blob/main/docs/source/quickstart.mdx"}}),{c(){d=M("meta"),tt=s(),D=M("p"),et=s(),i(J.$$.fragment),lt=s(),i(T.$$.fragment),nt=s(),c=M("p"),c.textContent=Xt,st=s(),i(w.$$.fragment),at=s(),i(h.$$.fragment),it=s(),$=M("p"),$.innerHTML=Ft,mt=s(),g=M("p"),g.innerHTML=Rt,pt=s(),i(U.$$.fragment),rt=s(),C=M("p"),C.textContent=xt,ot=s(),j=M("ul"),j.innerHTML=Vt,bt=s(),i(B.$$.fragment),Mt=s(),i(I.$$.fragment),ut=s(),k=M("p"),k.textContent=Lt,ft=s(),i(G.$$.fragment),yt=s(),Z=M("blockquote"),Z.innerHTML=Yt,dt=s(),i(Q.$$.fragment),Jt=s(),W=M("p"),W.textContent=qt,Tt=s(),i(v.$$.fragment),ct=s(),i(_.$$.fragment),wt=s(),E=M("p"),E.textContent=Nt,ht=s(),i(z.$$.fragment),$t=s(),X=M("blockquote"),X.innerHTML=At,gt=s(),i(F.$$.fragment),Ut=s(),R=M("p"),R.textContent=St,Ct=s(),i(x.$$.fragment),jt=s(),V=M("blockquote"),V.innerHTML=Ht,Bt=s(),i(L.$$.fragment),It=s(),Y=M("p"),Y.textContent=Kt,kt=s(),i(q.$$.fragment),Gt=s(),i(N.$$.fragment),Zt=s(),A=M("ul"),A.innerHTML=Pt,Qt=s(),i(S.$$.fragment),Wt=s(),H=M("ul"),H.innerHTML=Dt,vt=s(),i(K.$$.fragment),_t=s(),O=M("p"),this.h()},l(t){const e=ie("svelte-u9bgzb",document.head);d=u(e,"META",{name:!0,content:!0}),e.forEach(l),tt=a(t),D=u(t,"P",{}),Ot(D).forEach(l),et=a(t),m(J.$$.fragment,t),lt=a(t),m(T.$$.fragment,t),nt=a(t),c=u(t,"P",{"data-svelte-h":!0}),f(c)!=="svelte-zl1p6r"&&(c.textContent=Xt),st=a(t),m(w.$$.fragment,t),at=a(t),m(h.$$.fragment,t),it=a(t),$=u(t,"P",{"data-svelte-h":!0}),f($)!=="svelte-oh1u8r"&&($.innerHTML=Ft),mt=a(t),g=u(t,"P",{"data-svelte-h":!0}),f(g)!=="svelte-1mogu0c"&&(g.innerHTML=Rt),pt=a(t),m(U.$$.fragment,t),rt=a(t),C=u(t,"P",{"data-svelte-h":!0}),f(C)!=="svelte-1a8z80o"&&(C.textContent=xt),ot=a(t),j=u(t,"UL",{"data-svelte-h":!0}),f(j)!=="svelte-1y50jsg"&&(j.innerHTML=Vt),bt=a(t),m(B.$$.fragment,t),Mt=a(t),m(I.$$.fragment,t),ut=a(t),k=u(t,"P",{"data-svelte-h":!0}),f(k)!=="svelte-1unfiob"&&(k.textContent=Lt),ft=a(t),m(G.$$.fragment,t),yt=a(t),Z=u(t,"BLOCKQUOTE",{"data-svelte-h":!0}),f(Z)!=="svelte-14j52ii"&&(Z.innerHTML=Yt),dt=a(t),m(Q.$$.fragment,t),Jt=a(t),W=u(t,"P",{"data-svelte-h":!0}),f(W)!=="svelte-ehjv93"&&(W.textContent=qt),Tt=a(t),m(v.$$.fragment,t),ct=a(t),m(_.$$.fragment,t),wt=a(t),E=u(t,"P",{"data-svelte-h":!0}),f(E)!=="svelte-19pg04c"&&(E.textContent=Nt),ht=a(t),m(z.$$.fragment,t),$t=a(t),X=u(t,"BLOCKQUOTE",{"data-svelte-h":!0}),f(X)!=="svelte-id2t6l"&&(X.innerHTML=At),gt=a(t),m(F.$$.fragment,t),Ut=a(t),R=u(t,"P",{"data-svelte-h":!0}),f(R)!=="svelte-socsjt"&&(R.textContent=St),Ct=a(t),m(x.$$.fragment,t),jt=a(t),V=u(t,"BLOCKQUOTE",{"data-svelte-h":!0}),f(V)!=="svelte-r3j0hm"&&(V.innerHTML=Ht),Bt=a(t),m(L.$$.fragment,t),It=a(t),Y=u(t,"P",{"data-svelte-h":!0}),f(Y)!=="svelte-146rf6n"&&(Y.textContent=Kt),kt=a(t),m(q.$$.fragment,t),Gt=a(t),m(N.$$.fragment,t),Zt=a(t),A=u(t,"UL",{"data-svelte-h":!0}),f(A)!=="svelte-1a1jb2c"&&(A.innerHTML=Pt),Qt=a(t),m(S.$$.fragment,t),Wt=a(t),H=u(t,"UL",{"data-svelte-h":!0}),f(H)!=="svelte-jlrk2y"&&(H.innerHTML=Dt),vt=a(t),m(K.$$.fragment,t),_t=a(t),O=u(t,"P",{}),Ot(O).forEach(l),this.h()},h(){te(d,"name","hf:doc:metadata"),te(d,"content",be)},m(t,e){me(document.head,d),n(t,tt,e),n(t,D,e),n(t,et,e),p(J,t,e),n(t,lt,e),p(T,t,e),n(t,nt,e),n(t,c,e),n(t,st,e),p(w,t,e),n(t,at,e),p(h,t,e),n(t,it,e),n(t,$,e),n(t,mt,e),n(t,g,e),n(t,pt,e),p(U,t,e),n(t,rt,e),n(t,C,e),n(t,ot,e),n(t,j,e),n(t,bt,e),p(B,t,e),n(t,Mt,e),p(I,t,e),n(t,ut,e),n(t,k,e),n(t,ft,e),p(G,t,e),n(t,yt,e),n(t,Z,e),n(t,dt,e),p(Q,t,e),n(t,Jt,e),n(t,W,e),n(t,Tt,e),p(v,t,e),n(t,ct,e),p(_,t,e),n(t,wt,e),n(t,E,e),n(t,ht,e),p(z,t,e),n(t,$t,e),n(t,X,e),n(t,gt,e),p(F,t,e),n(t,Ut,e),n(t,R,e),n(t,Ct,e),p(x,t,e),n(t,jt,e),n(t,V,e),n(t,Bt,e),p(L,t,e),n(t,It,e),n(t,Y,e),n(t,kt,e),p(q,t,e),n(t,Gt,e),p(N,t,e),n(t,Zt,e),n(t,A,e),n(t,Qt,e),p(S,t,e),n(t,Wt,e),n(t,H,e),n(t,vt,e),p(K,t,e),n(t,_t,e),n(t,O,e),Et=!0},p:le,i(t){Et||(r(J.$$.fragment,t),r(T.$$.fragment,t),r(w.$$.fragment,t),r(h.$$.fragment,t),r(U.$$.fragment,t),r(B.$$.fragment,t),r(I.$$.fragment,t),r(G.$$.fragment,t),r(Q.$$.fragment,t),r(v.$$.fragment,t),r(_.$$.fragment,t),r(z.$$.fragment,t),r(F.$$.fragment,t),r(x.$$.fragment,t),r(L.$$.fragment,t),r(q.$$.fragment,t),r(N.$$.fragment,t),r(S.$$.fragment,t),r(K.$$.fragment,t),Et=!0)},o(t){o(J.$$.fragment,t),o(T.$$.fragment,t),o(w.$$.fragment,t),o(h.$$.fragment,t),o(U.$$.fragment,t),o(B.$$.fragment,t),o(I.$$.fragment,t),o(G.$$.fragment,t),o(Q.$$.fragment,t),o(v.$$.fragment,t),o(_.$$.fragment,t),o(z.$$.fragment,t),o(F.$$.fragment,t),o(x.$$.fragment,t),o(L.$$.fragment,t),o(q.$$.fragment,t),o(N.$$.fragment,t),o(S.$$.fragment,t),o(K.$$.fragment,t),Et=!1},d(t){t&&(l(tt),l(D),l(et),l(lt),l(nt),l(c),l(st),l(at),l(it),l($),l(mt),l(g),l(pt),l(rt),l(C),l(ot),l(j),l(bt),l(Mt),l(ut),l(k),l(ft),l(yt),l(Z),l(dt),l(Jt),l(W),l(Tt),l(ct),l(wt),l(E),l(ht),l($t),l(X),l(gt),l(Ut),l(R),l(Ct),l(jt),l(V),l(Bt),l(It),l(Y),l(kt),l(Gt),l(Zt),l(A),l(Qt),l(Wt),l(H),l(vt),l(_t),l(O)),l(d),b(J,t),b(T,t),b(w,t),b(h,t),b(U,t),b(B,t),b(I,t),b(G,t),b(Q,t),b(v,t),b(_,t),b(z,t),b(F,t),b(x,t),b(L,t),b(q,t),b(N,t),b(S,t),b(K,t)}}}const be='{"title":"Quickstart","local":"quickstart","sections":[{"title":"Installation","local":"installation","sections":[],"depth":2},{"title":"What is bitsandbytes?","local":"what-is-bitsandbytes","sections":[],"depth":2},{"title":"Quick Examples","local":"quick-examples","sections":[{"title":"8-bit Inference","local":"8-bit-inference","sections":[],"depth":3},{"title":"4-bit Quantization","local":"4-bit-quantization","sections":[],"depth":3},{"title":"QLoRA Fine-tuning","local":"qlora-fine-tuning","sections":[],"depth":3},{"title":"8-bit Optimizers","local":"8-bit-optimizers","sections":[],"depth":3},{"title":"Custom Quantized Layers","local":"custom-quantized-layers","sections":[],"depth":3}],"depth":2},{"title":"Next Steps","local":"next-steps","sections":[],"depth":2},{"title":"Getting Help","local":"getting-help","sections":[],"depth":2}],"depth":1}';function Me(zt){return ne(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Je extends se{constructor(d){super(),ae(this,d,Me,oe,ee,{})}}export{Je as component}; | |
Xet Storage Details
- Size:
- 17.7 kB
- Xet hash:
- 95c3cfbf3b27c279419a6b954426f6b6e8aebad9d812aee330dd2755330ec2c1
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.