import{s as Ci,o as zi,n as xi}from"../chunks/scheduler.25b97de1.js";import{S as wi,i as Ti,g as a,s as n,r as d,A as ki,h as s,f as r,c as o,j as h,u as l,x as u,k as _,y as t,a as g,v as m,d as c,t as p,w as f}from"../chunks/index.d9030fc9.js";import{T as Li}from"../chunks/Tip.baa67368.js";import{D as b}from"../chunks/Docstring.ffac8efa.js";import{C as Pi}from"../chunks/CodeBlock.e6cd0d95.js";import{E as Di}from"../chunks/ExampleCodeBlock.22dfe688.js";import{H as C,E as Ai}from"../chunks/EditOnGithub.91d95064.js";function Hi(Kt){let $,G='Learn how to quantize models in the <a href="../quantization">Quantization</a> guide.';return{c(){$=a("p"),$.innerHTML=G},l(z){$=s(z,"P",{"data-svelte-h":!0}),u($)!=="svelte-1pv1tva"&&($.innerHTML=G)},m(z,D){g(z,$,D)},p:xi,d(z){z&&r($)}}}function Mi(Kt){let $,G="Example:",z,D,A;return D=new Pi({props:{code:"cXVhbnRpemF0aW9uX2NvbmZpZyUyMCUzRCUyMFRvcmNoQW9Db25maWcoJTIyaW50NF93ZWlnaHRfb25seSUyMiUyQyUyMGdyb3VwX3NpemUlM0QzMiklMEElMjMlMjBpbnQ0X3dlaWdodF9vbmx5JTIwcXVhbnQlMjBpcyUyMG9ubHklMjB3b3JraW5nJTIwd2l0aCUyMCp0b3JjaC5iZmxvYXQxNiolMjBkdHlwZSUyMHJpZ2h0JTIwbm93JTBBbW9kZWwlMjAlM0QlMjBBdXRvTW9kZWxGb3JDYXVzYWxMTS5mcm9tX3ByZXRyYWluZWQobW9kZWxfaWQlMkMlMjBkZXZpY2VfbWFwJTNEJTIyY3VkYSUyMiUyQyUyMHRvcmNoX2R0eXBlJTNEdG9yY2guYmZsb2F0MTYlMkMlMjBxdWFudGl6YXRpb25fY29uZmlnJTNEcXVhbnRpemF0aW9uX2NvbmZpZyk=",highlighted:`quantization_config = TorchAoConfig(<span class="hljs-string">&quot;int4_weight_only&quot;</span>, group_size=<span class="hljs-number">32</span>)
<span class="hljs-comment"># int4_weight_only quant is only working with *torch.bfloat16* dtype right now</span>
model = AutoModelForCausalLM.from_pretrained(model_id, device_map=<span class="hljs-string">&quot;cuda&quot;</span>, torch_dtype=torch.bfloat16, quantization_config=quantization_config)`,wrap:!1}}),{c(){$=a("p"),$.textContent=G,z=n(),d(D.$$.fragment)},l(x){$=s(x,"P",{"data-svelte-h":!0}),u($)!=="svelte-11lpom8"&&($.textContent=G),z=o(x),l(D.$$.fragment,x)},m(x,H){g(x,$,H),g(x,z,H),m(D,x,H),A=!0},p:xi,i(x){A||(c(D.$$.fragment,x),A=!0)},o(x){p(D.$$.fragment,x),A=!1},d(x){x&&(r($),r(z)),f(D,x)}}}function Qi(Kt){let $,G,z,D,A,x,H,vs="Quantization techniques reduce memory and computational costs by representing weights and activations with lower-precision data types like 8-bit integers (int8). This enables loading larger models you normally wouldn’t be able to fit into memory, and speeding up inference. Transformers supports the AWQ and GPTQ quantization algorithms and it supports 8-bit and 4-bit quantization with bitsandbytes.",fo,Qe,ys="Quantization techniques that aren’t supported in Transformers can be added with the <code>HfQuantizer</code> class.",go,X,uo,Ne,ho,M,Fe,Hr,en,$s=`This is a wrapper class about all possible attributes and features that you can play with a model that has been
loaded using <code>quanto</code>.`,Mr,J,Ee,Qr,tn,qs="Safety checker that arguments are correct",_o,Ve,bo,Q,Ie,Nr,nn,xs="This is a wrapper class about <code>aqlm</code> parameters.",Fr,K,Be,Er,on,Cs="Safety checker that arguments are correct - also replaces some NoneType arguments with their default values.",vo,Ge,yo,N,Se,Vr,rn,zs="This is a wrapper class about <code>vptq</code> parameters.",Ir,ee,je,Br,an,ws="Safety checker that arguments are correct",$o,Oe,qo,F,We,Gr,sn,Ts=`This is a wrapper class about all possible attributes and features that you can play with a model that has been
loaded using <code>auto-awq</code> library awq quantization relying on auto_awq backend.`,Sr,te,Re,jr,dn,ks="Safety checker that arguments are correct",xo,Ue,Co,E,Ye,Or,ln,Ls=`This is a wrapper class about all possible attributes and features that you can play with a model that has been
loaded using <code>eetq</code>.`,Wr,ne,Ze,Rr,mn,Ps="Safety checker that arguments are correct",zo,Xe,wo,T,Je,Ur,cn,Ds=`This is a wrapper class about all possible attributes and features that you can play with a model that has been
loaded using <code>optimum</code> api for gptq quantization relying on auto_gptq backend.`,Yr,oe,Ke,Zr,pn,As="Get compatible class with optimum gptq config dict",Xr,re,et,Jr,fn,Hs="Safety checker that arguments are correct",Kr,ae,tt,ea,gn,Ms="Get compatible dict for optimum gptq config",To,nt,ko,q,ot,ta,un,Qs=`This is a wrapper class about all possible attributes and features that you can play with a model that has been
loaded using <code>bitsandbytes</code>.`,na,hn,Ns="This replaces <code>load_in_8bit</code> or <code>load_in_4bit</code>therefore both options are mutually exclusive.",oa,_n,Fs=`Currently only supports <code>LLM.int8()</code>, <code>FP4</code>, and <code>NF4</code> quantization. If more methods are added to <code>bitsandbytes</code>,
then more arguments will be added to this class.`,ra,se,rt,aa,bn,Es="Returns <code>True</code> if the model is quantizable, <code>False</code> otherwise.",sa,ie,at,ia,vn,Vs="Safety checker that arguments are correct - also replaces some NoneType arguments with their default values.",da,de,st,la,yn,Is=`This method returns the quantization method used for the model. If the model is not quantizable, it returns
<code>None</code>.`,ma,le,it,ca,$n,Bs=`Removes all attributes from config which correspond to the default config attributes for better readability and
serializes to a Python dictionary.`,Lo,dt,Po,v,lt,pa,qn,Gs=`Abstract class of the HuggingFace quantizer. Supports for now quantizing HF transformers models for inference and/or quantization.
This class is used only for transformers.PreTrainedModel.from_pretrained and cannot be easily used outside the scope of that method
yet.`,fa,xn,Ss=`Attributes
quantization_config (<code>transformers.utils.quantization_config.QuantizationConfigMixin</code>):
The quantization config that defines the quantization parameters of your model that you want to quantize.
modules_to_not_convert (<code>List[str]</code>, <em>optional</em>):
The list of module names to not convert when quantizing the model.
required_packages (<code>List[str]</code>, <em>optional</em>):
The list of required pip packages to install prior to using the quantizer
requires_calibration (<code>bool</code>):
Whether the quantization method requires to calibrate the model before using it.
requires_parameters_quantization (<code>bool</code>):
Whether the quantization method requires to create a new Parameter. For example, for bitsandbytes, it is
required to create a new xxxParameter in order to properly quantize the model.`,ga,me,mt,ua,Cn,js="adjust max_memory argument for infer_auto_device_map() if extra memory is needed for quantization",ha,ce,ct,_a,zn,Os=`Override this method if you want to adjust the <code>target_dtype</code> variable used in <code>from_pretrained</code>
to compute the device_map in case the device_map is a <code>str</code>. E.g. for bitsandbytes we force-set <code>target_dtype</code>
to <code>torch.int8</code> and for 4-bit we pass a custom enum <code>accelerate.CustomDtype.int4</code>.`,ba,pe,pt,va,wn,Ws=`checks if a loaded state_dict component is part of quantized param + some validation; only defined if
requires_parameters_quantization == True for quantization methods that require to create a new parameters
for quantization.`,ya,fe,ft,$a,Tn,Rs=`takes needed components from state_dict and creates quantized param; only applicable if
requires_parameters_quantization == True`,qa,ge,gt,xa,kn,Us=`Potentially dequantize the model to retrive the original model, with some loss in accuracy / performance.
Note not all quantization schemes support this.`,Ca,ue,ut,za,Ln,Ys=`returns dtypes for modules that are not quantized - used for the computation of the device_map in case
one passes a str as a device_map. The method will use the <code>modules_to_not_convert</code> that is modified
in <code>_process_model_before_weight_loading</code>.`,wa,he,ht,Ta,Pn,Zs=`Post-process the model post weights loading.
Make sure to override the abstract method <code>_process_model_after_weight_loading</code>.`,ka,_e,_t,La,Dn,Xs=`Setting model attributes and/or converting model before weights loading. At this point
the model should be initialized on the meta device so you can freely manipulate the skeleton
of the model in order to replace modules in-place. Make sure to override the abstract method <code>_process_model_before_weight_loading</code>.`,Pa,be,bt,Da,An,Js=`Override this method if you want to pass a override the existing device map with a new
one. E.g. for bitsandbytes, since <code>accelerate</code> is a hard requirement, if no device_map is
passed, the device_map is set to \`“auto”“`,Aa,ve,vt,Ha,Hn,Ks="Override this method if you want to adjust the <code>update_expected_keys</code>.",Ma,ye,yt,Qa,Mn,ei="Override this method if you want to adjust the <code>missing_keys</code>.",Na,$e,$t,Fa,Qn,ti=`Some quantization methods require to explicitly set the dtype of the model to a
target dtype. You need to override this method in case you want to make sure that behavior is
preserved`,Ea,qe,qt,Va,Nn,ni=`This method is used to potentially check for potential conflicts with arguments that are
passed in <code>from_pretrained</code>. You need to define it for all future quantizers that are integrated with transformers.
If no explicit check are needed, simply return nothing.`,Do,xt,Ao,V,Ct,Ia,Fn,oi="HiggsConfig is a configuration class for quantization using the HIGGS method.",Ba,xe,zt,Ga,En,ri="Safety checker that arguments are correct - also replaces some NoneType arguments with their default values.",Ho,wt,Mo,k,Tt,Sa,Vn,ai="This is wrapper around hqq’s BaseQuantizeConfig.",ja,Ce,kt,Oa,In,si="Override from_dict, used in AutoQuantizationConfig.from_dict in quantizers/auto.py",Wa,ze,Lt,Ra,Bn,ii="Safety checker that arguments are correct - also replaces some NoneType arguments with their default values.",Ua,we,Pt,Ya,Gn,di=`Removes all attributes from config which correspond to the default config attributes for better readability and
serializes to a Python dictionary.`,Qo,Dt,No,U,At,Za,Sn,li=`This is a wrapper class about all possible attributes and features that you can play with a model that has been
loaded using fbgemm fp8 quantization.`,Fo,Ht,Eo,L,Mt,Xa,jn,mi=`This is a wrapper class that handles compressed-tensors quantization config options.
It is a wrapper around <code>compressed_tensors.QuantizationConfig</code>`,Ja,Te,Qt,Ka,On,ci=`Instantiates a <a href="/docs/transformers/main/en/main_classes/quantization#transformers.CompressedTensorsConfig">CompressedTensorsConfig</a> from a Python dictionary of parameters.
Optionally unwraps any args from the nested quantization_config`,es,S,Nt,ts,Wn,pi="Quantization config to be added to config.json",ns,Rn,fi=`Serializes this instance to a Python dictionary. Returns:
<code>Dict[str, Any]</code>: Dictionary of all the attributes that make up this configuration instance.`,os,ke,Ft,rs,Un,gi=`Removes all attributes from config which correspond to the default config attributes for better readability and
serializes to a Python dictionary.`,Vo,Et,Io,P,Vt,as,Yn,ui="This is a config class for torchao quantization/sparsity techniques.",ss,Le,is,Pe,It,ds,Zn,hi="Safety checker that arguments are correct - also replaces some NoneType arguments with their default values.",ls,De,Bt,ms,Xn,_i=`Serializes this instance to a Python dictionary, converting any <code>torchao.dtypes.Layout</code>
dataclasses to simple dicts.`,Bo,Gt,Go,Y,St,cs,Ae,jt,ps,Jn,bi="Safety checker that arguments are correct",So,Ot,jo,I,Wt,fs,Kn,vi="This is a wrapper class about <code>spqr</code> parameters. Refer to the original publication for more details.",gs,He,Rt,us,eo,yi="Safety checker that arguments are correct - also replaces some NoneType arguments with their default values.",Oo,Ut,Wo,B,Yt,hs,to,$i="FineGrainedFP8Config is a configuration class for fine-grained FP8 quantization used mainly for deepseek models.",_s,Me,Zt,bs,no,qi="Safety checker that arguments are correct",Ro,Xt,Uo,po,Yo;return A=new C({props:{title:"Quantization",local:"quantization",headingTag:"h1"}}),X=new Li({props:{$$slots:{default:[Hi]},$$scope:{ctx:Kt}}}),Ne=new C({props:{title:"QuantoConfig",local:"transformers.QuantoConfig",headingTag:"h2"}}),Fe=new b({props:{name:"class transformers.QuantoConfig",anchor:"transformers.QuantoConfig",parameters:[{name:"weights",val:" = 'int8'"},{name:"activations",val:" = None"},{name:"modules_to_not_convert",val:": typing.Optional[typing.List] = None"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.QuantoConfig.weights",description:`<strong>weights</strong> (<code>str</code>, <em>optional</em>, defaults to <code>&quot;int8&quot;</code>) &#x2014;
The target dtype for the weights after quantization. Supported values are (&#x201C;float8&#x201D;,&#x201C;int8&#x201D;,&#x201C;int4&#x201D;,&#x201C;int2&#x201D;)`,name:"weights"},{anchor:"transformers.QuantoConfig.activations",description:`<strong>activations</strong> (<code>str</code>, <em>optional</em>) &#x2014;
The target dtype for the activations after quantization. Supported values are (None,&#x201C;int8&#x201D;,&#x201C;float8&#x201D;)`,name:"activations"},{anchor:"transformers.QuantoConfig.modules_to_not_convert",description:`<strong>modules_to_not_convert</strong> (<code>list</code>, <em>optional</em>, default to <code>None</code>) &#x2014;
The list of modules to not quantize, useful for quantizing models that explicitly require to have
some modules left in their original precision (e.g. Whisper encoder, Llava encoder, Mixtral gate layers).`,name:"modules_to_not_convert"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1143"}}),Ee=new b({props:{name:"post_init",anchor:"transformers.QuantoConfig.post_init",parameters:[],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1172"}}),Ve=new C({props:{title:"AqlmConfig",local:"transformers.AqlmConfig",headingTag:"h2"}}),Ie=new b({props:{name:"class transformers.AqlmConfig",anchor:"transformers.AqlmConfig",parameters:[{name:"in_group_size",val:": int = 8"},{name:"out_group_size",val:": int = 1"},{name:"num_codebooks",val:": int = 1"},{name:"nbits_per_codebook",val:": int = 16"},{name:"linear_weights_not_to_quantize",val:": typing.Optional[typing.List[str]] = None"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.AqlmConfig.in_group_size",description:`<strong>in_group_size</strong> (<code>int</code>, <em>optional</em>, defaults to 8) &#x2014;
The group size along the input dimension.`,name:"in_group_size"},{anchor:"transformers.AqlmConfig.out_group_size",description:`<strong>out_group_size</strong> (<code>int</code>, <em>optional</em>, defaults to 1) &#x2014;
The group size along the output dimension. It&#x2019;s recommended to always use 1.`,name:"out_group_size"},{anchor:"transformers.AqlmConfig.num_codebooks",description:`<strong>num_codebooks</strong> (<code>int</code>, <em>optional</em>, defaults to 1) &#x2014;
Number of codebooks for the Additive Quantization procedure.`,name:"num_codebooks"},{anchor:"transformers.AqlmConfig.nbits_per_codebook",description:`<strong>nbits_per_codebook</strong> (<code>int</code>, <em>optional</em>, defaults to 16) &#x2014;
Number of bits encoding a single codebook vector. Codebooks size is 2**nbits_per_codebook.`,name:"nbits_per_codebook"},{anchor:"transformers.AqlmConfig.linear_weights_not_to_quantize",description:`<strong>linear_weights_not_to_quantize</strong> (<code>Optional[List[str]]</code>, <em>optional</em>) &#x2014;
List of full paths of <code>nn.Linear</code> weight parameters that shall not be quantized.`,name:"linear_weights_not_to_quantize"},{anchor:"transformers.AqlmConfig.kwargs",description:`<strong>kwargs</strong> (<code>Dict[str, Any]</code>, <em>optional</em>) &#x2014;
Additional parameters from which to initialize the configuration object.`,name:"kwargs"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L987"}}),Be=new b({props:{name:"post_init",anchor:"transformers.AqlmConfig.post_init",parameters:[],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1025"}}),Ge=new C({props:{title:"VptqConfig",local:"transformers.VptqConfig",headingTag:"h2"}}),Se=new b({props:{name:"class transformers.VptqConfig",anchor:"transformers.VptqConfig",parameters:[{name:"enable_proxy_error",val:": bool = False"},{name:"config_for_layers",val:": typing.Dict[str, typing.Any] = {}"},{name:"shared_layer_config",val:": typing.Dict[str, typing.Any] = {}"},{name:"modules_to_not_convert",val:": typing.Optional[typing.List] = None"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.VptqConfig.enable_proxy_error",description:"<strong>enable_proxy_error</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014; calculate proxy error for each layer",name:"enable_proxy_error"},{anchor:"transformers.VptqConfig.config_for_layers",description:"<strong>config_for_layers</strong> (<code>Dict</code>, <em>optional</em>, defaults to <code>{}</code>) &#x2014; quantization params for each layer",name:"config_for_layers"},{anchor:"transformers.VptqConfig.shared_layer_config",description:"<strong>shared_layer_config</strong> (<code>Dict</code>, <em>optional</em>, defaults to <code>{}</code>) &#x2014; shared quantization params among layers",name:"shared_layer_config"},{anchor:"transformers.VptqConfig.modules_to_not_convert",description:`<strong>modules_to_not_convert</strong> (<code>list</code>, <em>optional</em>, default to <code>None</code>) &#x2014;
The list of modules to not quantize, useful for quantizing models that explicitly require to have
some modules left in their original precision (e.g. Whisper encoder, Llava encoder, Mixtral gate layers).`,name:"modules_to_not_convert"},{anchor:"transformers.VptqConfig.kwargs",description:`<strong>kwargs</strong> (<code>Dict[str, Any]</code>, <em>optional</em>) &#x2014;
Additional parameters from which to initialize the configuration object.`,name:"kwargs"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1102"}}),je=new b({props:{name:"post_init",anchor:"transformers.VptqConfig.post_init",parameters:[],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1133"}}),Oe=new C({props:{title:"AwqConfig",local:"transformers.AwqConfig",headingTag:"h2"}}),We=new b({props:{name:"class transformers.AwqConfig",anchor:"transformers.AwqConfig",parameters:[{name:"bits",val:": int = 4"},{name:"group_size",val:": int = 128"},{name:"zero_point",val:": bool = True"},{name:"version",val:": AWQLinearVersion = <AWQLinearVersion.GEMM: 'gemm'>"},{name:"backend",val:": AwqBackendPackingMethod = <AwqBackendPackingMethod.AUTOAWQ: 'autoawq'>"},{name:"do_fuse",val:": typing.Optional[bool] = None"},{name:"fuse_max_seq_len",val:": typing.Optional[int] = None"},{name:"modules_to_fuse",val:": typing.Optional[dict] = None"},{name:"modules_to_not_convert",val:": typing.Optional[typing.List] = None"},{name:"exllama_config",val:": typing.Optional[typing.Dict[str, int]] = None"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.AwqConfig.bits",description:`<strong>bits</strong> (<code>int</code>, <em>optional</em>, defaults to 4) &#x2014;
The number of bits to quantize to.`,name:"bits"},{anchor:"transformers.AwqConfig.group_size",description:`<strong>group_size</strong> (<code>int</code>, <em>optional</em>, defaults to 128) &#x2014;
The group size to use for quantization. Recommended value is 128 and -1 uses per-column quantization.`,name:"group_size"},{anchor:"transformers.AwqConfig.zero_point",description:`<strong>zero_point</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) &#x2014;
Whether to use zero point quantization.`,name:"zero_point"},{anchor:"transformers.AwqConfig.version",description:`<strong>version</strong> (<code>AWQLinearVersion</code>, <em>optional</em>, defaults to <code>AWQLinearVersion.GEMM</code>) &#x2014;
The version of the quantization algorithm to use. GEMM is better for big batch_size (e.g. &gt;= 8) otherwise,
GEMV is better (e.g. &lt; 8 ). GEMM models are compatible with Exllama kernels.`,name:"version"},{anchor:"transformers.AwqConfig.backend",description:`<strong>backend</strong> (<code>AwqBackendPackingMethod</code>, <em>optional</em>, defaults to <code>AwqBackendPackingMethod.AUTOAWQ</code>) &#x2014;
The quantization backend. Some models might be quantized using <code>llm-awq</code> backend. This is useful for users
that quantize their own models using <code>llm-awq</code> library.`,name:"backend"},{anchor:"transformers.AwqConfig.do_fuse",description:`<strong>do_fuse</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
Whether to fuse attention and mlp layers together for faster inference`,name:"do_fuse"},{anchor:"transformers.AwqConfig.fuse_max_seq_len",description:`<strong>fuse_max_seq_len</strong> (<code>int</code>, <em>optional</em>) &#x2014;
The Maximum sequence length to generate when using fusing.`,name:"fuse_max_seq_len"},{anchor:"transformers.AwqConfig.modules_to_fuse",description:`<strong>modules_to_fuse</strong> (<code>dict</code>, <em>optional</em>, default to <code>None</code>) &#x2014;
Overwrite the natively supported fusing scheme with the one specified by the users.`,name:"modules_to_fuse"},{anchor:"transformers.AwqConfig.modules_to_not_convert",description:`<strong>modules_to_not_convert</strong> (<code>list</code>, <em>optional</em>, default to <code>None</code>) &#x2014;
The list of modules to not quantize, useful for quantizing models that explicitly require to have
some modules left in their original precision (e.g. Whisper encoder, Llava encoder, Mixtral gate layers).
Note you cannot quantize directly with transformers, please refer to <code>AutoAWQ</code> documentation for quantizing HF models.`,name:"modules_to_not_convert"},{anchor:"transformers.AwqConfig.exllama_config",description:`<strong>exllama_config</strong> (<code>Dict[str, Any]</code>, <em>optional</em>) &#x2014;
You can specify the version of the exllama kernel through the <code>version</code> key, the maximum sequence
length through the <code>max_input_len</code> key, and the maximum batch size through the <code>max_batch_size</code> key.
Defaults to <code>{&quot;version&quot;: 2, &quot;max_input_len&quot;: 2048, &quot;max_batch_size&quot;: 8}</code> if unset.`,name:"exllama_config"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L814"}}),Re=new b({props:{name:"post_init",anchor:"transformers.AwqConfig.post_init",parameters:[],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L883"}}),Ue=new C({props:{title:"EetqConfig",local:"transformers.EetqConfig",headingTag:"h2"}}),Ye=new b({props:{name:"class transformers.EetqConfig",anchor:"transformers.EetqConfig",parameters:[{name:"weights",val:": str = 'int8'"},{name:"modules_to_not_convert",val:": typing.Optional[typing.List] = None"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.EetqConfig.weights",description:`<strong>weights</strong> (<code>str</code>, <em>optional</em>, defaults to <code>&quot;int8&quot;</code>) &#x2014;
The target dtype for the weights. Supported value is only &#x201C;int8&#x201D;`,name:"weights"},{anchor:"transformers.EetqConfig.modules_to_not_convert",description:`<strong>modules_to_not_convert</strong> (<code>list</code>, <em>optional</em>, default to <code>None</code>) &#x2014;
The list of modules to not quantize, useful for quantizing models that explicitly require to have
some modules left in their original precision.`,name:"modules_to_not_convert"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1184"}}),Ze=new b({props:{name:"post_init",anchor:"transformers.EetqConfig.post_init",parameters:[],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1209"}}),Xe=new C({props:{title:"GPTQConfig",local:"transformers.GPTQConfig",headingTag:"h2"}}),Je=new b({props:{name:"class transformers.GPTQConfig",anchor:"transformers.GPTQConfig",parameters:[{name:"bits",val:": int"},{name:"tokenizer",val:": typing.Any = None"},{name:"dataset",val:": typing.Union[typing.List[str], str, NoneType] = None"},{name:"group_size",val:": int = 128"},{name:"damp_percent",val:": float = 0.1"},{name:"desc_act",val:": bool = False"},{name:"sym",val:": bool = True"},{name:"true_sequential",val:": bool = True"},{name:"checkpoint_format",val:": str = 'gptq'"},{name:"meta",val:": typing.Optional[typing.Dict[str, <built-in function any>]] = None"},{name:"backend",val:": typing.Optional[str] = None"},{name:"use_cuda_fp16",val:": bool = False"},{name:"model_seqlen",val:": typing.Optional[int] = None"},{name:"block_name_to_quantize",val:": typing.Optional[str] = None"},{name:"module_name_preceding_first_block",val:": typing.Optional[typing.List[str]] = None"},{name:"batch_size",val:": int = 1"},{name:"pad_token_id",val:": typing.Optional[int] = None"},{name:"use_exllama",val:": typing.Optional[bool] = None"},{name:"max_input_length",val:": typing.Optional[int] = None"},{name:"exllama_config",val:": typing.Optional[typing.Dict[str, typing.Any]] = None"},{name:"cache_block_outputs",val:": bool = True"},{name:"modules_in_block_to_quantize",val:": typing.Optional[typing.List[typing.List[str]]] = None"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.GPTQConfig.bits",description:`<strong>bits</strong> (<code>int</code>) &#x2014;
The number of bits to quantize to, supported numbers are (2, 3, 4, 8).`,name:"bits"},{anchor:"transformers.GPTQConfig.tokenizer",description:`<strong>tokenizer</strong> (<code>str</code> or <code>PreTrainedTokenizerBase</code>, <em>optional</em>) &#x2014;
The tokenizer used to process the dataset. You can pass either:<ul>
<li>A custom tokenizer object.</li>
<li>A string, the <em>model id</em> of a predefined tokenizer hosted inside a model repo on huggingface.co.</li>
<li>A path to a <em>directory</em> containing vocabulary files required by the tokenizer, for instance saved
using the <a href="/docs/transformers/main/en/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.save_pretrained">save_pretrained()</a> method, e.g., <code>./my_model_directory/</code>.</li>
</ul>`,name:"tokenizer"},{anchor:"transformers.GPTQConfig.dataset",description:`<strong>dataset</strong> (<code>Union[List[str]]</code>, <em>optional</em>) &#x2014;
The dataset used for quantization. You can provide your own dataset in a list of string or just use the
original datasets used in GPTQ paper [&#x2018;wikitext2&#x2019;,&#x2018;c4&#x2019;,&#x2018;c4-new&#x2019;]`,name:"dataset"},{anchor:"transformers.GPTQConfig.group_size",description:`<strong>group_size</strong> (<code>int</code>, <em>optional</em>, defaults to 128) &#x2014;
The group size to use for quantization. Recommended value is 128 and -1 uses per-column quantization.`,name:"group_size"},{anchor:"transformers.GPTQConfig.damp_percent",description:`<strong>damp_percent</strong> (<code>float</code>, <em>optional</em>, defaults to 0.1) &#x2014;
The percent of the average Hessian diagonal to use for dampening. Recommended value is 0.1.`,name:"damp_percent"},{anchor:"transformers.GPTQConfig.desc_act",description:`<strong>desc_act</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
Whether to quantize columns in order of decreasing activation size. Setting it to False can significantly
speed up inference but the perplexity may become slightly worse. Also known as act-order.`,name:"desc_act"},{anchor:"transformers.GPTQConfig.sym",description:`<strong>sym</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) &#x2014;
Whether to use symetric quantization.`,name:"sym"},{anchor:"transformers.GPTQConfig.true_sequential",description:`<strong>true_sequential</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) &#x2014;
Whether to perform sequential quantization even within a single Transformer block. Instead of quantizing
the entire block at once, we perform layer-wise quantization. As a result, each layer undergoes
quantization using inputs that have passed through the previously quantized layers.`,name:"true_sequential"},{anchor:"transformers.GPTQConfig.checkpoint_format",description:`<strong>checkpoint_format</strong> (<code>str</code>, <em>optional</em>, defaults to <code>&quot;gptq&quot;</code>) &#x2014;
GPTQ weight format. <code>gptq</code>(v1) is supported by both gptqmodel and auto-gptq. <code>gptq_v2</code> is gptqmodel only.`,name:"checkpoint_format"},{anchor:"transformers.GPTQConfig.meta",description:`<strong>meta</strong> (<code>Dict[str, any]</code>, <em>optional</em>) &#x2014;
Properties, such as tooling:version, that do not directly contributes to quantization or quant inference are stored in meta.
i.e. <code>meta.quantizer</code>: [&#x201C;optimum:<em>version</em>&#x201D;, &#x201C;gptqmodel:<em>version</em>&#x201D;]`,name:"meta"},{anchor:"transformers.GPTQConfig.backend",description:`<strong>backend</strong> (<code>str</code>, <em>optional</em>) &#x2014;
Controls which gptq kernel to be used. Valid values for gptqmodel are <code>auto</code>, <code>auto_trainable</code> and more. For auto-gptq, only
valid value is None and <code>auto_trainable</code>. Ref gptqmodel backends: <a href="https://github.com/ModelCloud/GPTQModel/blob/main/gptqmodel/utils/backend.py" rel="nofollow">https://github.com/ModelCloud/GPTQModel/blob/main/gptqmodel/utils/backend.py</a>`,name:"backend"},{anchor:"transformers.GPTQConfig.use_cuda_fp16",description:`<strong>use_cuda_fp16</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
Whether or not to use optimized cuda kernel for fp16 model. Need to have model in fp16. Auto-gptq only.`,name:"use_cuda_fp16"},{anchor:"transformers.GPTQConfig.model_seqlen",description:`<strong>model_seqlen</strong> (<code>int</code>, <em>optional</em>) &#x2014;
The maximum sequence length that the model can take.`,name:"model_seqlen"},{anchor:"transformers.GPTQConfig.block_name_to_quantize",description:`<strong>block_name_to_quantize</strong> (<code>str</code>, <em>optional</em>) &#x2014;
The transformers block name to quantize. If None, we will infer the block name using common patterns (e.g. model.layers)`,name:"block_name_to_quantize"},{anchor:"transformers.GPTQConfig.module_name_preceding_first_block",description:`<strong>module_name_preceding_first_block</strong> (<code>List[str]</code>, <em>optional</em>) &#x2014;
The layers that are preceding the first Transformer block.`,name:"module_name_preceding_first_block"},{anchor:"transformers.GPTQConfig.batch_size",description:`<strong>batch_size</strong> (<code>int</code>, <em>optional</em>, defaults to 1) &#x2014;
The batch size used when processing the dataset`,name:"batch_size"},{anchor:"transformers.GPTQConfig.pad_token_id",description:`<strong>pad_token_id</strong> (<code>int</code>, <em>optional</em>) &#x2014;
The pad token id. Needed to prepare the dataset when <code>batch_size</code> &gt; 1.`,name:"pad_token_id"},{anchor:"transformers.GPTQConfig.use_exllama",description:`<strong>use_exllama</strong> (<code>bool</code>, <em>optional</em>) &#x2014;
Whether to use exllama backend. Defaults to <code>True</code> if unset. Only works with <code>bits</code> = 4.`,name:"use_exllama"},{anchor:"transformers.GPTQConfig.max_input_length",description:`<strong>max_input_length</strong> (<code>int</code>, <em>optional</em>) &#x2014;
The maximum input length. This is needed to initialize a buffer that depends on the maximum expected input
length. It is specific to the exllama backend with act-order.`,name:"max_input_length"},{anchor:"transformers.GPTQConfig.exllama_config",description:`<strong>exllama_config</strong> (<code>Dict[str, Any]</code>, <em>optional</em>) &#x2014;
The exllama config. You can specify the version of the exllama kernel through the <code>version</code> key. Defaults
to <code>{&quot;version&quot;: 1}</code> if unset.`,name:"exllama_config"},{anchor:"transformers.GPTQConfig.cache_block_outputs",description:`<strong>cache_block_outputs</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) &#x2014;
Whether to cache block outputs to reuse as inputs for the succeeding block.`,name:"cache_block_outputs"},{anchor:"transformers.GPTQConfig.modules_in_block_to_quantize",description:`<strong>modules_in_block_to_quantize</strong> (<code>List[List[str]]</code>, <em>optional</em>) &#x2014;
List of list of module names to quantize in the specified block. This argument is useful to exclude certain linear modules from being quantized.
The block to quantize can be specified by setting <code>block_name_to_quantize</code>. We will quantize each list sequentially. If not set, we will quantize all linear layers.
Example: <code>modules_in_block_to_quantize =[[&quot;self_attn.k_proj&quot;, &quot;self_attn.v_proj&quot;, &quot;self_attn.q_proj&quot;], [&quot;self_attn.o_proj&quot;]]</code>.
In this example, we will first quantize the q,k,v layers simultaneously since they are independent.
Then, we will quantize <code>self_attn.o_proj</code> layer with the q,k,v layers quantized. This way, we will get
better results since it reflects the real input <code>self_attn.o_proj</code> will get when the model is quantized.`,name:"modules_in_block_to_quantize"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L564"}}),Ke=new b({props:{name:"from_dict_optimum",anchor:"transformers.GPTQConfig.from_dict_optimum",parameters:[{name:"config_dict",val:""}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L799"}}),et=new b({props:{name:"post_init",anchor:"transformers.GPTQConfig.post_init",parameters:[],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L699"}}),tt=new b({props:{name:"to_dict_optimum",anchor:"transformers.GPTQConfig.to_dict_optimum",parameters:[],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L790"}}),nt=new C({props:{title:"BitsAndBytesConfig",local:"transformers.BitsAndBytesConfig",headingTag:"h2"}}),ot=new b({props:{name:"class transformers.BitsAndBytesConfig",anchor:"transformers.BitsAndBytesConfig",parameters:[{name:"load_in_8bit",val:" = False"},{name:"load_in_4bit",val:" = False"},{name:"llm_int8_threshold",val:" = 6.0"},{name:"llm_int8_skip_modules",val:" = None"},{name:"llm_int8_enable_fp32_cpu_offload",val:" = False"},{name:"llm_int8_has_fp16_weight",val:" = False"},{name:"bnb_4bit_compute_dtype",val:" = None"},{name:"bnb_4bit_quant_type",val:" = 'fp4'"},{name:"bnb_4bit_use_double_quant",val:" = False"},{name:"bnb_4bit_quant_storage",val:" = None"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.BitsAndBytesConfig.load_in_8bit",description:`<strong>load_in_8bit</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
This flag is used to enable 8-bit quantization with LLM.int8().`,name:"load_in_8bit"},{anchor:"transformers.BitsAndBytesConfig.load_in_4bit",description:`<strong>load_in_4bit</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
This flag is used to enable 4-bit quantization by replacing the Linear layers with FP4/NF4 layers from
<code>bitsandbytes</code>.`,name:"load_in_4bit"},{anchor:"transformers.BitsAndBytesConfig.llm_int8_threshold",description:`<strong>llm_int8_threshold</strong> (<code>float</code>, <em>optional</em>, defaults to 6.0) &#x2014;
This corresponds to the outlier threshold for outlier detection as described in <code>LLM.int8() : 8-bit Matrix Multiplication for Transformers at Scale</code> paper: <a href="https://arxiv.org/abs/2208.07339" rel="nofollow">https://arxiv.org/abs/2208.07339</a> Any hidden states value
that is above this threshold will be considered an outlier and the operation on those values will be done
in fp16. Values are usually normally distributed, that is, most values are in the range [-3.5, 3.5], but
there are some exceptional systematic outliers that are very differently distributed for large models.
These outliers are often in the interval [-60, -6] or [6, 60]. Int8 quantization works well for values of
magnitude ~5, but beyond that, there is a significant performance penalty. A good default threshold is 6,
but a lower threshold might be needed for more unstable models (small models, fine-tuning).`,name:"llm_int8_threshold"},{anchor:"transformers.BitsAndBytesConfig.llm_int8_skip_modules",description:`<strong>llm_int8_skip_modules</strong> (<code>List[str]</code>, <em>optional</em>) &#x2014;
An explicit list of the modules that we do not want to convert in 8-bit. This is useful for models such as
Jukebox that has several heads in different places and not necessarily at the last position. For example
for <code>CausalLM</code> models, the last <code>lm_head</code> is kept in its original <code>dtype</code>.`,name:"llm_int8_skip_modules"},{anchor:"transformers.BitsAndBytesConfig.llm_int8_enable_fp32_cpu_offload",description:`<strong>llm_int8_enable_fp32_cpu_offload</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
This flag is used for advanced use cases and users that are aware of this feature. If you want to split
your model in different parts and run some parts in int8 on GPU and some parts in fp32 on CPU, you can use
this flag. This is useful for offloading large models such as <code>google/flan-t5-xxl</code>. Note that the int8
operations will not be run on CPU.`,name:"llm_int8_enable_fp32_cpu_offload"},{anchor:"transformers.BitsAndBytesConfig.llm_int8_has_fp16_weight",description:`<strong>llm_int8_has_fp16_weight</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
This flag runs LLM.int8() with 16-bit main weights. This is useful for fine-tuning as the weights do not
have to be converted back and forth for the backward pass.`,name:"llm_int8_has_fp16_weight"},{anchor:"transformers.BitsAndBytesConfig.bnb_4bit_compute_dtype",description:`<strong>bnb_4bit_compute_dtype</strong> (<code>torch.dtype</code> or str, <em>optional</em>, defaults to <code>torch.float32</code>) &#x2014;
This sets the computational type which might be different than the input type. For example, inputs might be
fp32, but computation can be set to bf16 for speedups.`,name:"bnb_4bit_compute_dtype"},{anchor:"transformers.BitsAndBytesConfig.bnb_4bit_quant_type",description:`<strong>bnb_4bit_quant_type</strong> (<code>str</code>,  <em>optional</em>, defaults to <code>&quot;fp4&quot;</code>) &#x2014;
This sets the quantization data type in the bnb.nn.Linear4Bit layers. Options are FP4 and NF4 data types
which are specified by <code>fp4</code> or <code>nf4</code>.`,name:"bnb_4bit_quant_type"},{anchor:"transformers.BitsAndBytesConfig.bnb_4bit_use_double_quant",description:`<strong>bnb_4bit_use_double_quant</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
This flag is used for nested quantization where the quantization constants from the first quantization are
quantized again.`,name:"bnb_4bit_use_double_quant"},{anchor:"transformers.BitsAndBytesConfig.bnb_4bit_quant_storage",description:`<strong>bnb_4bit_quant_storage</strong> (<code>torch.dtype</code> or str, <em>optional</em>, defaults to <code>torch.uint8</code>) &#x2014;
This sets the storage type to pack the quanitzed 4-bit prarams.`,name:"bnb_4bit_quant_storage"},{anchor:"transformers.BitsAndBytesConfig.kwargs",description:`<strong>kwargs</strong> (<code>Dict[str, Any]</code>, <em>optional</em>) &#x2014;
Additional parameters from which to initialize the configuration object.`,name:"kwargs"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L328"}}),rt=new b({props:{name:"is_quantizable",anchor:"transformers.BitsAndBytesConfig.is_quantizable",parameters:[],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L499"}}),at=new b({props:{name:"post_init",anchor:"transformers.BitsAndBytesConfig.post_init",parameters:[],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L462"}}),st=new b({props:{name:"quantization_method",anchor:"transformers.BitsAndBytesConfig.quantization_method",parameters:[],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L505"}}),it=new b({props:{name:"to_diff_dict",anchor:"transformers.BitsAndBytesConfig.to_diff_dict",parameters:[],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L536",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>


<p>Dictionary of all the attributes that make up this configuration instance,</p>
`,returnType:`<script context="module">export const metadata = 'undefined';<\/script>


<p><code>Dict[str, Any]</code></p>
`}}),dt=new C({props:{title:"HfQuantizer",local:"transformers.quantizers.HfQuantizer",headingTag:"h2"}}),lt=new b({props:{name:"class transformers.quantizers.HfQuantizer",anchor:"transformers.quantizers.HfQuantizer",parameters:[{name:"quantization_config",val:": QuantizationConfigMixin"},{name:"**kwargs",val:""}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/quantizers/base.py#L28"}}),mt=new b({props:{name:"adjust_max_memory",anchor:"transformers.quantizers.HfQuantizer.adjust_max_memory",parameters:[{name:"max_memory",val:": typing.Dict[str, typing.Union[int, str]]"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/quantizers/base.py#L143"}}),ct=new b({props:{name:"adjust_target_dtype",anchor:"transformers.quantizers.HfQuantizer.adjust_target_dtype",parameters:[{name:"torch_dtype",val:": torch.dtype"}],parametersDescription:[{anchor:"transformers.quantizers.HfQuantizer.adjust_target_dtype.torch_dtype",description:`<strong>torch_dtype</strong> (<code>torch.dtype</code>, <em>optional</em>) &#x2014;
The torch_dtype that is used to compute the device_map.`,name:"torch_dtype"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/quantizers/base.py#L90"}}),pt=new b({props:{name:"check_quantized_param",anchor:"transformers.quantizers.HfQuantizer.check_quantized_param",parameters:[{name:"model",val:": PreTrainedModel"},{name:"param_value",val:": torch.Tensor"},{name:"param_name",val:": str"},{name:"state_dict",val:": typing.Dict[str, typing.Any]"},{name:"**kwargs",val:""}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/quantizers/base.py#L147"}}),ft=new b({props:{name:"create_quantized_param",anchor:"transformers.quantizers.HfQuantizer.create_quantized_param",parameters:[{name:"*args",val:""},{name:"**kwargs",val:""}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/quantizers/base.py#L162"}}),gt=new b({props:{name:"dequantize",anchor:"transformers.quantizers.HfQuantizer.dequantize",parameters:[{name:"model",val:""}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/quantizers/base.py#L209"}}),ut=new b({props:{name:"get_special_dtypes_update",anchor:"transformers.quantizers.HfQuantizer.get_special_dtypes_update",parameters:[{name:"model",val:""},{name:"torch_dtype",val:": torch.dtype"}],parametersDescription:[{anchor:"transformers.quantizers.HfQuantizer.get_special_dtypes_update.model",description:`<strong>model</strong> (<code>~transformers.PreTrainedModel</code>) &#x2014;
The model to quantize`,name:"model"},{anchor:"transformers.quantizers.HfQuantizer.get_special_dtypes_update.torch_dtype",description:`<strong>torch_dtype</strong> (<code>torch.dtype</code>) &#x2014;
The dtype passed in <code>from_pretrained</code> method.`,name:"torch_dtype"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/quantizers/base.py#L124"}}),ht=new b({props:{name:"postprocess_model",anchor:"transformers.quantizers.HfQuantizer.postprocess_model",parameters:[{name:"model",val:": PreTrainedModel"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.quantizers.HfQuantizer.postprocess_model.model",description:`<strong>model</strong> (<code>~transformers.PreTrainedModel</code>) &#x2014;
The model to quantize`,name:"model"},{anchor:"transformers.quantizers.HfQuantizer.postprocess_model.kwargs",description:`<strong>kwargs</strong> (<code>dict</code>, <em>optional</em>) &#x2014;
The keyword arguments that are passed along <code>_process_model_after_weight_loading</code>.`,name:"kwargs"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/quantizers/base.py#L196"}}),_t=new b({props:{name:"preprocess_model",anchor:"transformers.quantizers.HfQuantizer.preprocess_model",parameters:[{name:"model",val:": PreTrainedModel"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.quantizers.HfQuantizer.preprocess_model.model",description:`<strong>model</strong> (<code>~transformers.PreTrainedModel</code>) &#x2014;
The model to quantize`,name:"model"},{anchor:"transformers.quantizers.HfQuantizer.preprocess_model.kwargs",description:`<strong>kwargs</strong> (<code>dict</code>, <em>optional</em>) &#x2014;
The keyword arguments that are passed along <code>_process_model_before_weight_loading</code>.`,name:"kwargs"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/quantizers/base.py#L180"}}),bt=new b({props:{name:"update_device_map",anchor:"transformers.quantizers.HfQuantizer.update_device_map",parameters:[{name:"device_map",val:": typing.Optional[typing.Dict[str, typing.Any]]"}],parametersDescription:[{anchor:"transformers.quantizers.HfQuantizer.update_device_map.device_map",description:`<strong>device_map</strong> (<code>Union[dict, str]</code>, <em>optional</em>) &#x2014;
The device_map that is passed through the <code>from_pretrained</code> method.`,name:"device_map"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/quantizers/base.py#L78"}}),vt=new b({props:{name:"update_expected_keys",anchor:"transformers.quantizers.HfQuantizer.update_expected_keys",parameters:[{name:"model",val:""},{name:"expected_keys",val:": typing.List[str]"},{name:"loaded_keys",val:": typing.List[str]"}],parametersDescription:[{anchor:"transformers.quantizers.HfQuantizer.update_expected_keys.expected_keys",description:`<strong>expected_keys</strong> (<code>List[str]</code>, <em>optional</em>) &#x2014;
The list of the expected keys in the initialized model.`,name:"expected_keys"},{anchor:"transformers.quantizers.HfQuantizer.update_expected_keys.loaded_keys",description:`<strong>loaded_keys</strong> (<code>List[str]</code>, <em>optional</em>) &#x2014;
The list of the loaded keys in the checkpoint.`,name:"loaded_keys"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/quantizers/base.py#L112"}}),yt=new b({props:{name:"update_missing_keys",anchor:"transformers.quantizers.HfQuantizer.update_missing_keys",parameters:[{name:"model",val:""},{name:"missing_keys",val:": typing.List[str]"},{name:"prefix",val:": str"}],parametersDescription:[{anchor:"transformers.quantizers.HfQuantizer.update_missing_keys.missing_keys",description:`<strong>missing_keys</strong> (<code>List[str]</code>, <em>optional</em>) &#x2014;
The list of missing keys in the checkpoint compared to the state dict of the model`,name:"missing_keys"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/quantizers/base.py#L102"}}),$t=new b({props:{name:"update_torch_dtype",anchor:"transformers.quantizers.HfQuantizer.update_torch_dtype",parameters:[{name:"torch_dtype",val:": torch.dtype"}],parametersDescription:[{anchor:"transformers.quantizers.HfQuantizer.update_torch_dtype.torch_dtype",description:`<strong>torch_dtype</strong> (<code>torch.dtype</code>) &#x2014;
The input dtype that is passed in <code>from_pretrained</code>`,name:"torch_dtype"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/quantizers/base.py#L66"}}),qt=new b({props:{name:"validate_environment",anchor:"transformers.quantizers.HfQuantizer.validate_environment",parameters:[{name:"*args",val:""},{name:"**kwargs",val:""}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/quantizers/base.py#L172"}}),xt=new C({props:{title:"HiggsConfig",local:"transformers.HiggsConfig",headingTag:"h2"}}),Ct=new b({props:{name:"class transformers.HiggsConfig",anchor:"transformers.HiggsConfig",parameters:[{name:"bits",val:": int = 4"},{name:"p",val:": int = 2"},{name:"modules_to_not_convert",val:": typing.Optional[typing.List[str]] = None"},{name:"hadamard_size",val:": int = 512"},{name:"group_size",val:": int = 256"},{name:"tune_metadata",val:": typing.Optional[typing.Dict[str, typing.Any]] = None"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.HiggsConfig.bits",description:`<strong>bits</strong> (int, <em>optional</em>, defaults to 4) &#x2014;
Number of bits to use for quantization. Can be 2, 3 or 4. Default is 4.`,name:"bits"},{anchor:"transformers.HiggsConfig.p",description:`<strong>p</strong> (int, <em>optional</em>, defaults to 2) &#x2014;
Quantization grid dimension. 1 and 2 are supported. 2 is always better in practice. Default is 2.`,name:"p"},{anchor:"transformers.HiggsConfig.modules_to_not_convert",description:`<strong>modules_to_not_convert</strong> (<code>list</code>, <em>optional</em>, default to [&#x201C;lm_head&#x201D;]) &#x2014;
List of linear layers that should not be quantized.`,name:"modules_to_not_convert"},{anchor:"transformers.HiggsConfig.hadamard_size",description:`<strong>hadamard_size</strong> (int, <em>optional</em>, defaults to 512) &#x2014;
Hadamard size for the HIGGS method. Default is 512. Input dimension of matrices is padded to this value. Decreasing this below 512 will reduce the quality of the quantization.`,name:"hadamard_size"},{anchor:"transformers.HiggsConfig.group_size",description:`<strong>group_size</strong> (int, <em>optional</em>, defaults to 256) &#x2014;
Group size for the HIGGS method. Can be 64, 128 or 256. Decreasing it barely affects the performance. Default is 256. Must be a divisor of hadamard_size.`,name:"group_size"},{anchor:"transformers.HiggsConfig.tune_metadata",description:`<strong>tune_metadata</strong> (&#x2018;dict&#x2019;, <em>optional</em>, defaults to {}) &#x2014;
Module-wise metadata (gemm block shapes, GPU metadata, etc.) for saving the kernel tuning results. Default is an empty dictionary. Is set automatically during tuning.`,name:"tune_metadata"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1392"}}),zt=new b({props:{name:"post_init",anchor:"transformers.HiggsConfig.post_init",parameters:[],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1436"}}),wt=new C({props:{title:"HqqConfig",local:"transformers.HqqConfig",headingTag:"h2"}}),Tt=new b({props:{name:"class transformers.HqqConfig",anchor:"transformers.HqqConfig",parameters:[{name:"nbits",val:": int = 4"},{name:"group_size",val:": int = 64"},{name:"view_as_float",val:": bool = False"},{name:"axis",val:": typing.Optional[int] = None"},{name:"dynamic_config",val:": typing.Optional[dict] = None"},{name:"skip_modules",val:": typing.List[str] = ['lm_head']"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.HqqConfig.nbits",description:`<strong>nbits</strong> (<code>int</code>, <em>optional</em>, defaults to 4) &#x2014;
Number of bits. Supported values are (8, 4, 3, 2, 1).`,name:"nbits"},{anchor:"transformers.HqqConfig.group_size",description:`<strong>group_size</strong> (<code>int</code>, <em>optional</em>, defaults to 64) &#x2014;
Group-size value. Supported values are any value that is divisble by weight.shape[axis]).`,name:"group_size"},{anchor:"transformers.HqqConfig.view_as_float",description:`<strong>view_as_float</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
View the quantized weight as float (used in distributed training) if set to <code>True</code>.`,name:"view_as_float"},{anchor:"transformers.HqqConfig.axis",description:`<strong>axis</strong> (<code>Optional[int]</code>, <em>optional</em>) &#x2014;
Axis along which grouping is performed. Supported values are 0 or 1.`,name:"axis"},{anchor:"transformers.HqqConfig.dynamic_config",description:`<strong>dynamic_config</strong> (dict, <em>optional</em>) &#x2014;
Parameters for dynamic configuration. The key is the name tag of the layer and the value is a quantization config.
If set, each layer specified by its id will use its dedicated quantization configuration.`,name:"dynamic_config"},{anchor:"transformers.HqqConfig.skip_modules",description:`<strong>skip_modules</strong> (<code>List[str]</code>, <em>optional</em>, defaults to <code>[&apos;lm_head&apos;]</code>) &#x2014;
List of <code>nn.Linear</code> layers to skip.`,name:"skip_modules"},{anchor:"transformers.HqqConfig.kwargs",description:`<strong>kwargs</strong> (<code>Dict[str, Any]</code>, <em>optional</em>) &#x2014;
Additional parameters from which to initialize the configuration object.`,name:"kwargs"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L203"}}),kt=new b({props:{name:"from_dict",anchor:"transformers.HqqConfig.from_dict",parameters:[{name:"config",val:": typing.Dict[str, typing.Any]"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L281"}}),Lt=new b({props:{name:"post_init",anchor:"transformers.HqqConfig.post_init",parameters:[],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L275"}}),Pt=new b({props:{name:"to_diff_dict",anchor:"transformers.HqqConfig.to_diff_dict",parameters:[],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L306",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>


<p>Dictionary of all the attributes that make up this configuration instance,</p>
`,returnType:`<script context="module">export const metadata = 'undefined';<\/script>


<p><code>Dict[str, Any]</code></p>
`}}),Dt=new C({props:{title:"FbgemmFp8Config",local:"transformers.FbgemmFp8Config",headingTag:"h2"}}),At=new b({props:{name:"class transformers.FbgemmFp8Config",anchor:"transformers.FbgemmFp8Config",parameters:[{name:"activation_scale_ub",val:": float = 1200.0"},{name:"modules_to_not_convert",val:": typing.Optional[typing.List] = None"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.FbgemmFp8Config.activation_scale_ub",description:`<strong>activation_scale_ub</strong> (<code>float</code>, <em>optional</em>, defaults to 1200.0) &#x2014;
The activation scale upper bound. This is used when quantizing the input activation.`,name:"activation_scale_ub"},{anchor:"transformers.FbgemmFp8Config.modules_to_not_convert",description:`<strong>modules_to_not_convert</strong> (<code>list</code>, <em>optional</em>, default to <code>None</code>) &#x2014;
The list of modules to not quantize, useful for quantizing models that explicitly require to have
some modules left in their original precision.`,name:"modules_to_not_convert"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1361"}}),Ht=new C({props:{title:"CompressedTensorsConfig",local:"transformers.CompressedTensorsConfig",headingTag:"h2"}}),Mt=new b({props:{name:"class transformers.CompressedTensorsConfig",anchor:"transformers.CompressedTensorsConfig",parameters:[{name:"config_groups",val:": typing.Dict[str, typing.Union[ForwardRef('QuantizationScheme'), typing.List[str]]] = None"},{name:"format",val:": str = 'dense'"},{name:"quantization_status",val:": QuantizationStatus = 'initialized'"},{name:"kv_cache_scheme",val:": typing.Optional[ForwardRef('QuantizationArgs')] = None"},{name:"global_compression_ratio",val:": typing.Optional[float] = None"},{name:"ignore",val:": typing.Optional[typing.List[str]] = None"},{name:"sparsity_config",val:": typing.Dict[str, typing.Any] = None"},{name:"quant_method",val:": str = 'compressed-tensors'"},{name:"run_compressed",val:": bool = True"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.CompressedTensorsConfig.config_groups",description:`<strong>config_groups</strong> (<code>typing.Dict[str, typing.Union[ForwardRef(&apos;QuantizationScheme&apos;), typing.List[str]]]</code>, <em>optional</em>) &#x2014;
dictionary mapping group name to a quantization scheme definition`,name:"config_groups"},{anchor:"transformers.CompressedTensorsConfig.format",description:`<strong>format</strong> (<code>str</code>, <em>optional</em>, defaults to <code>&quot;dense&quot;</code>) &#x2014;
format the model is represented as. Set <code>run_compressed</code> True to execute model as the
compressed format if not <code>dense</code>`,name:"format"},{anchor:"transformers.CompressedTensorsConfig.quantization_status",description:`<strong>quantization_status</strong> (<code>QuantizationStatus</code>, <em>optional</em>, defaults to <code>&quot;initialized&quot;</code>) &#x2014;
status of model in the quantization lifecycle, ie &#x2018;initialized&#x2019;, &#x2018;calibration&#x2019;, &#x2018;frozen&#x2019;`,name:"quantization_status"},{anchor:"transformers.CompressedTensorsConfig.kv_cache_scheme",description:`<strong>kv_cache_scheme</strong> (<code>typing.Union[QuantizationArgs, NoneType]</code>, <em>optional</em>) &#x2014;
specifies quantization of the kv cache. If None, kv cache is not quantized.`,name:"kv_cache_scheme"},{anchor:"transformers.CompressedTensorsConfig.global_compression_ratio",description:`<strong>global_compression_ratio</strong> (<code>typing.Union[float, NoneType]</code>, <em>optional</em>) &#x2014;
0-1 float percentage of model compression`,name:"global_compression_ratio"},{anchor:"transformers.CompressedTensorsConfig.ignore",description:`<strong>ignore</strong> (<code>typing.Union[typing.List[str], NoneType]</code>, <em>optional</em>) &#x2014;
layer names or types to not quantize, supports regex prefixed by &#x2018;re:&#x2019;`,name:"ignore"},{anchor:"transformers.CompressedTensorsConfig.sparsity_config",description:`<strong>sparsity_config</strong> (<code>typing.Dict[str, typing.Any]</code>, <em>optional</em>) &#x2014;
configuration for sparsity compression`,name:"sparsity_config"},{anchor:"transformers.CompressedTensorsConfig.quant_method",description:`<strong>quant_method</strong> (<code>str</code>, <em>optional</em>, defaults to <code>&quot;compressed-tensors&quot;</code>) &#x2014;
do not override, should be compressed-tensors`,name:"quant_method"},{anchor:"transformers.CompressedTensorsConfig.run_compressed",description:`<strong>run_compressed</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) &#x2014; alter submodules (usually linear) in order to
emulate compressed model execution if True, otherwise use default submodule`,name:"run_compressed"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1218"}}),Qt=new b({props:{name:"from_dict",anchor:"transformers.CompressedTensorsConfig.from_dict",parameters:[{name:"config_dict",val:""},{name:"return_unused_kwargs",val:" = False"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.CompressedTensorsConfig.from_dict.config_dict",description:`<strong>config_dict</strong> (<code>Dict[str, Any]</code>) &#x2014;
Dictionary that will be used to instantiate the configuration object.`,name:"config_dict"},{anchor:"transformers.CompressedTensorsConfig.from_dict.return_unused_kwargs",description:`<strong>return_unused_kwargs</strong> (<code>bool</code>,<em>optional</em>, defaults to <code>False</code>) &#x2014;
Whether or not to return a list of unused keyword arguments. Used for <code>from_pretrained</code> method in
<code>PreTrainedModel</code>.`,name:"return_unused_kwargs"},{anchor:"transformers.CompressedTensorsConfig.from_dict.kwargs",description:`<strong>kwargs</strong> (<code>Dict[str, Any]</code>) &#x2014;
Additional parameters from which to initialize the configuration object.`,name:"kwargs"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1288",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>


<p>The configuration object instantiated from those parameters.</p>
`,returnType:`<script context="module">export const metadata = 'undefined';<\/script>


<p><code>QuantizationConfigMixin</code></p>
`}}),Nt=new b({props:{name:"to_dict",anchor:"transformers.CompressedTensorsConfig.to_dict",parameters:[],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1316"}}),Ft=new b({props:{name:"to_diff_dict",anchor:"transformers.CompressedTensorsConfig.to_diff_dict",parameters:[],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1336",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>


<p>Dictionary of all the attributes that make up this configuration instance,</p>
`,returnType:`<script context="module">export const metadata = 'undefined';<\/script>


<p><code>Dict[str, Any]</code></p>
`}}),Et=new C({props:{title:"TorchAoConfig",local:"transformers.TorchAoConfig",headingTag:"h2"}}),Vt=new b({props:{name:"class transformers.TorchAoConfig",anchor:"transformers.TorchAoConfig",parameters:[{name:"quant_type",val:": str"},{name:"modules_to_not_convert",val:": typing.Optional[typing.List] = None"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.TorchAoConfig.quant_type",description:`<strong>quant_type</strong> (<code>str</code>) &#x2014;
The type of quantization we want to use, currently supporting: <code>int4_weight_only</code>, <code>int8_weight_only</code> and <code>int8_dynamic_activation_int8_weight</code>.`,name:"quant_type"},{anchor:"transformers.TorchAoConfig.modules_to_not_convert",description:`<strong>modules_to_not_convert</strong> (<code>list</code>, <em>optional</em>, default to <code>None</code>) &#x2014;
The list of modules to not quantize, useful for quantizing models that explicitly require to have
some modules left in their original precision.`,name:"modules_to_not_convert"},{anchor:"transformers.TorchAoConfig.kwargs",description:`<strong>kwargs</strong> (<code>Dict[str, Any]</code>, <em>optional</em>) &#x2014;
The keyword arguments for the chosen type of quantization, for example, int4_weight_only quantization supports two keyword arguments
<code>group_size</code> and <code>inner_k_tiles</code> currently. More API examples and documentation of arguments can be found in
<a href="https://github.com/pytorch/ao/tree/main/torchao/quantization#other-available-quantization-techniques" rel="nofollow">https://github.com/pytorch/ao/tree/main/torchao/quantization#other-available-quantization-techniques</a>`,name:"kwargs"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1450"}}),Le=new Di({props:{anchor:"transformers.TorchAoConfig.example",$$slots:{default:[Mi]},$$scope:{ctx:Kt}}}),It=new b({props:{name:"post_init",anchor:"transformers.TorchAoConfig.post_init",parameters:[],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1486"}}),Bt=new b({props:{name:"to_dict",anchor:"transformers.TorchAoConfig.to_dict",parameters:[],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1543",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>


<p>Dictionary of all the attributes that make up this configuration instance.</p>
`,returnType:`<script context="module">export const metadata = 'undefined';<\/script>


<p><code>Dict[str, Any]</code></p>
`}}),Gt=new C({props:{title:"BitNetConfig",local:"transformers.BitNetConfig",headingTag:"h2"}}),St=new b({props:{name:"class transformers.BitNetConfig",anchor:"transformers.BitNetConfig",parameters:[{name:"modules_to_not_convert",val:": typing.Optional[typing.List] = None"},{name:"**kwargs",val:""}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1559"}}),jt=new b({props:{name:"post_init",anchor:"transformers.BitNetConfig.post_init",parameters:[],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1570"}}),Ot=new C({props:{title:"SpQRConfig",local:"transformers.SpQRConfig",headingTag:"h2"}}),Wt=new b({props:{name:"class transformers.SpQRConfig",anchor:"transformers.SpQRConfig",parameters:[{name:"bits",val:": int = 3"},{name:"beta1",val:": int = 16"},{name:"beta2",val:": int = 16"},{name:"shapes",val:": typing.Optional[typing.Dict[str, int]] = None"},{name:"modules_to_not_convert",val:": typing.Optional[typing.List[str]] = None"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.SpQRConfig.bits",description:`<strong>bits</strong> (<code>int</code>, <em>optional</em>, defaults to 3) &#x2014;
Specifies the bit count for the weights and first order zero-points and scales.
Currently only bits = 3 is supported.`,name:"bits"},{anchor:"transformers.SpQRConfig.beta1",description:`<strong>beta1</strong> (<code>int</code>, <em>optional</em>, defaults to 16) &#x2014;
SpQR tile width. Currently only beta1 = 16 is supported.`,name:"beta1"},{anchor:"transformers.SpQRConfig.beta2",description:`<strong>beta2</strong> (<code>int</code>, <em>optional</em>, defaults to 16) &#x2014;
SpQR tile height. Currently only beta2 = 16 is supported.`,name:"beta2"},{anchor:"transformers.SpQRConfig.shapes",description:`<strong>shapes</strong> (<code>Optional</code>, <em>optional</em>) &#x2014;
A dictionary holding the shape of each object. We need this because it&#x2019;s impossible
to deduce the exact size of the parameters just from bits, beta1, beta2.`,name:"shapes"},{anchor:"transformers.SpQRConfig.modules_to_not_convert",description:`<strong>modules_to_not_convert</strong> (<code>Optional[List[str]]</code>, <em>optional</em>) &#x2014;
Optionally, provides a list of full paths of <code>nn.Linear</code> weight parameters that shall not be quantized.
Defaults to None.`,name:"modules_to_not_convert"},{anchor:"transformers.SpQRConfig.kwargs",description:`<strong>kwargs</strong> (<code>Dict[str, Any]</code>, <em>optional</em>) &#x2014;
Additional parameters from which to initialize the configuration object.`,name:"kwargs"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1577"}}),Rt=new b({props:{name:"post_init",anchor:"transformers.SpQRConfig.post_init",parameters:[],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1621"}}),Ut=new C({props:{title:"FineGrainedFP8Config",local:"transformers.FineGrainedFP8Config",headingTag:"h2"}}),Yt=new b({props:{name:"class transformers.FineGrainedFP8Config",anchor:"transformers.FineGrainedFP8Config",parameters:[{name:"activation_scheme",val:": str = 'dynamic'"},{name:"weight_block_size",val:": typing.Tuple[int, int] = (128, 128)"},{name:"modules_to_not_convert",val:": typing.Optional[typing.List] = None"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.FineGrainedFP8Config.activation_scheme",description:`<strong>activation_scheme</strong> (<code>str</code>, <em>optional</em>, defaults to <code>&quot;dynamic&quot;</code>) &#x2014;
The scheme used for activation, the defaults and only support scheme for now is &#x201C;dynamic&#x201D;.`,name:"activation_scheme"},{anchor:"transformers.FineGrainedFP8Config.weight_block_size",description:`<strong>weight_block_size</strong> (<code>typing.Tuple[int, int]</code>, <em>optional</em>, defaults to <code>(128, 128)</code>) &#x2014;
The size of the weight blocks for quantization, default is (128, 128).`,name:"weight_block_size"},{anchor:"transformers.FineGrainedFP8Config.modules_to_not_convert",description:`<strong>modules_to_not_convert</strong> (<code>list</code>, <em>optional</em>) &#x2014;
A list of module names that should not be converted during quantization.`,name:"modules_to_not_convert"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1646"}}),Zt=new b({props:{name:"post_init",anchor:"transformers.FineGrainedFP8Config.post_init",parameters:[],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1673"}}),Xt=new Ai({props:{source:"https://github.com/huggingface/transformers/blob/main/docs/source/en/main_classes/quantization.md"}}),{c(){$=a("meta"),G=n(),z=a("p"),D=n(),d(A.$$.fragment),x=n(),H=a("p"),H.textContent=vs,fo=n(),Qe=a("p"),Qe.innerHTML=ys,go=n(),d(X.$$.fragment),uo=n(),d(Ne.$$.fragment),ho=n(),M=a("div"),d(Fe.$$.fragment),Hr=n(),en=a("p"),en.innerHTML=$s,Mr=n(),J=a("div"),d(Ee.$$.fragment),Qr=n(),tn=a("p"),tn.textContent=qs,_o=n(),d(Ve.$$.fragment),bo=n(),Q=a("div"),d(Ie.$$.fragment),Nr=n(),nn=a("p"),nn.innerHTML=xs,Fr=n(),K=a("div"),d(Be.$$.fragment),Er=n(),on=a("p"),on.textContent=Cs,vo=n(),d(Ge.$$.fragment),yo=n(),N=a("div"),d(Se.$$.fragment),Vr=n(),rn=a("p"),rn.innerHTML=zs,Ir=n(),ee=a("div"),d(je.$$.fragment),Br=n(),an=a("p"),an.textContent=ws,$o=n(),d(Oe.$$.fragment),qo=n(),F=a("div"),d(We.$$.fragment),Gr=n(),sn=a("p"),sn.innerHTML=Ts,Sr=n(),te=a("div"),d(Re.$$.fragment),jr=n(),dn=a("p"),dn.textContent=ks,xo=n(),d(Ue.$$.fragment),Co=n(),E=a("div"),d(Ye.$$.fragment),Or=n(),ln=a("p"),ln.innerHTML=Ls,Wr=n(),ne=a("div"),d(Ze.$$.fragment),Rr=n(),mn=a("p"),mn.textContent=Ps,zo=n(),d(Xe.$$.fragment),wo=n(),T=a("div"),d(Je.$$.fragment),Ur=n(),cn=a("p"),cn.innerHTML=Ds,Yr=n(),oe=a("div"),d(Ke.$$.fragment),Zr=n(),pn=a("p"),pn.textContent=As,Xr=n(),re=a("div"),d(et.$$.fragment),Jr=n(),fn=a("p"),fn.textContent=Hs,Kr=n(),ae=a("div"),d(tt.$$.fragment),ea=n(),gn=a("p"),gn.textContent=Ms,To=n(),d(nt.$$.fragment),ko=n(),q=a("div"),d(ot.$$.fragment),ta=n(),un=a("p"),un.innerHTML=Qs,na=n(),hn=a("p"),hn.innerHTML=Ns,oa=n(),_n=a("p"),_n.innerHTML=Fs,ra=n(),se=a("div"),d(rt.$$.fragment),aa=n(),bn=a("p"),bn.innerHTML=Es,sa=n(),ie=a("div"),d(at.$$.fragment),ia=n(),vn=a("p"),vn.textContent=Vs,da=n(),de=a("div"),d(st.$$.fragment),la=n(),yn=a("p"),yn.innerHTML=Is,ma=n(),le=a("div"),d(it.$$.fragment),ca=n(),$n=a("p"),$n.textContent=Bs,Lo=n(),d(dt.$$.fragment),Po=n(),v=a("div"),d(lt.$$.fragment),pa=n(),qn=a("p"),qn.textContent=Gs,fa=n(),xn=a("p"),xn.innerHTML=Ss,ga=n(),me=a("div"),d(mt.$$.fragment),ua=n(),Cn=a("p"),Cn.textContent=js,ha=n(),ce=a("div"),d(ct.$$.fragment),_a=n(),zn=a("p"),zn.innerHTML=Os,ba=n(),pe=a("div"),d(pt.$$.fragment),va=n(),wn=a("p"),wn.textContent=Ws,ya=n(),fe=a("div"),d(ft.$$.fragment),$a=n(),Tn=a("p"),Tn.textContent=Rs,qa=n(),ge=a("div"),d(gt.$$.fragment),xa=n(),kn=a("p"),kn.textContent=Us,Ca=n(),ue=a("div"),d(ut.$$.fragment),za=n(),Ln=a("p"),Ln.innerHTML=Ys,wa=n(),he=a("div"),d(ht.$$.fragment),Ta=n(),Pn=a("p"),Pn.innerHTML=Zs,ka=n(),_e=a("div"),d(_t.$$.fragment),La=n(),Dn=a("p"),Dn.innerHTML=Xs,Pa=n(),be=a("div"),d(bt.$$.fragment),Da=n(),An=a("p"),An.innerHTML=Js,Aa=n(),ve=a("div"),d(vt.$$.fragment),Ha=n(),Hn=a("p"),Hn.innerHTML=Ks,Ma=n(),ye=a("div"),d(yt.$$.fragment),Qa=n(),Mn=a("p"),Mn.innerHTML=ei,Na=n(),$e=a("div"),d($t.$$.fragment),Fa=n(),Qn=a("p"),Qn.textContent=ti,Ea=n(),qe=a("div"),d(qt.$$.fragment),Va=n(),Nn=a("p"),Nn.innerHTML=ni,Do=n(),d(xt.$$.fragment),Ao=n(),V=a("div"),d(Ct.$$.fragment),Ia=n(),Fn=a("p"),Fn.textContent=oi,Ba=n(),xe=a("div"),d(zt.$$.fragment),Ga=n(),En=a("p"),En.textContent=ri,Ho=n(),d(wt.$$.fragment),Mo=n(),k=a("div"),d(Tt.$$.fragment),Sa=n(),Vn=a("p"),Vn.textContent=ai,ja=n(),Ce=a("div"),d(kt.$$.fragment),Oa=n(),In=a("p"),In.textContent=si,Wa=n(),ze=a("div"),d(Lt.$$.fragment),Ra=n(),Bn=a("p"),Bn.textContent=ii,Ua=n(),we=a("div"),d(Pt.$$.fragment),Ya=n(),Gn=a("p"),Gn.textContent=di,Qo=n(),d(Dt.$$.fragment),No=n(),U=a("div"),d(At.$$.fragment),Za=n(),Sn=a("p"),Sn.textContent=li,Fo=n(),d(Ht.$$.fragment),Eo=n(),L=a("div"),d(Mt.$$.fragment),Xa=n(),jn=a("p"),jn.innerHTML=mi,Ja=n(),Te=a("div"),d(Qt.$$.fragment),Ka=n(),On=a("p"),On.innerHTML=ci,es=n(),S=a("div"),d(Nt.$$.fragment),ts=n(),Wn=a("p"),Wn.textContent=pi,ns=n(),Rn=a("p"),Rn.innerHTML=fi,os=n(),ke=a("div"),d(Ft.$$.fragment),rs=n(),Un=a("p"),Un.textContent=gi,Vo=n(),d(Et.$$.fragment),Io=n(),P=a("div"),d(Vt.$$.fragment),as=n(),Yn=a("p"),Yn.textContent=ui,ss=n(),d(Le.$$.fragment),is=n(),Pe=a("div"),d(It.$$.fragment),ds=n(),Zn=a("p"),Zn.textContent=hi,ls=n(),De=a("div"),d(Bt.$$.fragment),ms=n(),Xn=a("p"),Xn.innerHTML=_i,Bo=n(),d(Gt.$$.fragment),Go=n(),Y=a("div"),d(St.$$.fragment),cs=n(),Ae=a("div"),d(jt.$$.fragment),ps=n(),Jn=a("p"),Jn.textContent=bi,So=n(),d(Ot.$$.fragment),jo=n(),I=a("div"),d(Wt.$$.fragment),fs=n(),Kn=a("p"),Kn.innerHTML=vi,gs=n(),He=a("div"),d(Rt.$$.fragment),us=n(),eo=a("p"),eo.textContent=yi,Oo=n(),d(Ut.$$.fragment),Wo=n(),B=a("div"),d(Yt.$$.fragment),hs=n(),to=a("p"),to.textContent=$i,_s=n(),Me=a("div"),d(Zt.$$.fragment),bs=n(),no=a("p"),no.textContent=qi,Ro=n(),d(Xt.$$.fragment),Uo=n(),po=a("p"),this.h()},l(e){const i=ki("svelte-u9bgzb",document.head);$=s(i,"META",{name:!0,content:!0}),i.forEach(r),G=o(e),z=s(e,"P",{}),h(z).forEach(r),D=o(e),l(A.$$.fragment,e),x=o(e),H=s(e,"P",{"data-svelte-h":!0}),u(H)!=="svelte-1hsjm7z"&&(H.textContent=vs),fo=o(e),Qe=s(e,"P",{"data-svelte-h":!0}),u(Qe)!=="svelte-bnel0f"&&(Qe.innerHTML=ys),go=o(e),l(X.$$.fragment,e),uo=o(e),l(Ne.$$.fragment,e),ho=o(e),M=s(e,"DIV",{class:!0});var Z=h(M);l(Fe.$$.fragment,Z),Hr=o(Z),en=s(Z,"P",{"data-svelte-h":!0}),u(en)!=="svelte-b8v0f"&&(en.innerHTML=$s),Mr=o(Z),J=s(Z,"DIV",{class:!0});var Jt=h(J);l(Ee.$$.fragment,Jt),Qr=o(Jt),tn=s(Jt,"P",{"data-svelte-h":!0}),u(tn)!=="svelte-1ozftb6"&&(tn.textContent=qs),Jt.forEach(r),Z.forEach(r),_o=o(e),l(Ve.$$.fragment,e),bo=o(e),Q=s(e,"DIV",{class:!0});var oo=h(Q);l(Ie.$$.fragment,oo),Nr=o(oo),nn=s(oo,"P",{"data-svelte-h":!0}),u(nn)!=="svelte-1s7ccdx"&&(nn.innerHTML=xs),Fr=o(oo),K=s(oo,"DIV",{class:!0});var Zo=h(K);l(Be.$$.fragment,Zo),Er=o(Zo),on=s(Zo,"P",{"data-svelte-h":!0}),u(on)!=="svelte-gy26u4"&&(on.textContent=Cs),Zo.forEach(r),oo.forEach(r),vo=o(e),l(Ge.$$.fragment,e),yo=o(e),N=s(e,"DIV",{class:!0});var ro=h(N);l(Se.$$.fragment,ro),Vr=o(ro),rn=s(ro,"P",{"data-svelte-h":!0}),u(rn)!=="svelte-w1pax1"&&(rn.innerHTML=zs),Ir=o(ro),ee=s(ro,"DIV",{class:!0});var Xo=h(ee);l(je.$$.fragment,Xo),Br=o(Xo),an=s(Xo,"P",{"data-svelte-h":!0}),u(an)!=="svelte-1ozftb6"&&(an.textContent=ws),Xo.forEach(r),ro.forEach(r),$o=o(e),l(Oe.$$.fragment,e),qo=o(e),F=s(e,"DIV",{class:!0});var ao=h(F);l(We.$$.fragment,ao),Gr=o(ao),sn=s(ao,"P",{"data-svelte-h":!0}),u(sn)!=="svelte-1i667it"&&(sn.innerHTML=Ts),Sr=o(ao),te=s(ao,"DIV",{class:!0});var Jo=h(te);l(Re.$$.fragment,Jo),jr=o(Jo),dn=s(Jo,"P",{"data-svelte-h":!0}),u(dn)!=="svelte-1ozftb6"&&(dn.textContent=ks),Jo.forEach(r),ao.forEach(r),xo=o(e),l(Ue.$$.fragment,e),Co=o(e),E=s(e,"DIV",{class:!0});var so=h(E);l(Ye.$$.fragment,so),Or=o(so),ln=s(so,"P",{"data-svelte-h":!0}),u(ln)!=="svelte-438k9a"&&(ln.innerHTML=Ls),Wr=o(so),ne=s(so,"DIV",{class:!0});var Ko=h(ne);l(Ze.$$.fragment,Ko),Rr=o(Ko),mn=s(Ko,"P",{"data-svelte-h":!0}),u(mn)!=="svelte-1ozftb6"&&(mn.textContent=Ps),Ko.forEach(r),so.forEach(r),zo=o(e),l(Xe.$$.fragment,e),wo=o(e),T=s(e,"DIV",{class:!0});var j=h(T);l(Je.$$.fragment,j),Ur=o(j),cn=s(j,"P",{"data-svelte-h":!0}),u(cn)!=="svelte-i3efvr"&&(cn.innerHTML=Ds),Yr=o(j),oe=s(j,"DIV",{class:!0});var er=h(oe);l(Ke.$$.fragment,er),Zr=o(er),pn=s(er,"P",{"data-svelte-h":!0}),u(pn)!=="svelte-4jdj2l"&&(pn.textContent=As),er.forEach(r),Xr=o(j),re=s(j,"DIV",{class:!0});var tr=h(re);l(et.$$.fragment,tr),Jr=o(tr),fn=s(tr,"P",{"data-svelte-h":!0}),u(fn)!=="svelte-1ozftb6"&&(fn.textContent=Hs),tr.forEach(r),Kr=o(j),ae=s(j,"DIV",{class:!0});var nr=h(ae);l(tt.$$.fragment,nr),ea=o(nr),gn=s(nr,"P",{"data-svelte-h":!0}),u(gn)!=="svelte-pjgtd6"&&(gn.textContent=Ms),nr.forEach(r),j.forEach(r),To=o(e),l(nt.$$.fragment,e),ko=o(e),q=s(e,"DIV",{class:!0});var w=h(q);l(ot.$$.fragment,w),ta=o(w),un=s(w,"P",{"data-svelte-h":!0}),u(un)!=="svelte-woamwr"&&(un.innerHTML=Qs),na=o(w),hn=s(w,"P",{"data-svelte-h":!0}),u(hn)!=="svelte-ki5gis"&&(hn.innerHTML=Ns),oa=o(w),_n=s(w,"P",{"data-svelte-h":!0}),u(_n)!=="svelte-8qsk2q"&&(_n.innerHTML=Fs),ra=o(w),se=s(w,"DIV",{class:!0});var or=h(se);l(rt.$$.fragment,or),aa=o(or),bn=s(or,"P",{"data-svelte-h":!0}),u(bn)!=="svelte-10tvzyv"&&(bn.innerHTML=Es),or.forEach(r),sa=o(w),ie=s(w,"DIV",{class:!0});var rr=h(ie);l(at.$$.fragment,rr),ia=o(rr),vn=s(rr,"P",{"data-svelte-h":!0}),u(vn)!=="svelte-gy26u4"&&(vn.textContent=Vs),rr.forEach(r),da=o(w),de=s(w,"DIV",{class:!0});var ar=h(de);l(st.$$.fragment,ar),la=o(ar),yn=s(ar,"P",{"data-svelte-h":!0}),u(yn)!=="svelte-19bn0da"&&(yn.innerHTML=Is),ar.forEach(r),ma=o(w),le=s(w,"DIV",{class:!0});var sr=h(le);l(it.$$.fragment,sr),ca=o(sr),$n=s(sr,"P",{"data-svelte-h":!0}),u($n)!=="svelte-1p6bdas"&&($n.textContent=Bs),sr.forEach(r),w.forEach(r),Lo=o(e),l(dt.$$.fragment,e),Po=o(e),v=s(e,"DIV",{class:!0});var y=h(v);l(lt.$$.fragment,y),pa=o(y),qn=s(y,"P",{"data-svelte-h":!0}),u(qn)!=="svelte-1xvcahi"&&(qn.textContent=Gs),fa=o(y),xn=s(y,"P",{"data-svelte-h":!0}),u(xn)!=="svelte-twdedh"&&(xn.innerHTML=Ss),ga=o(y),me=s(y,"DIV",{class:!0});var ir=h(me);l(mt.$$.fragment,ir),ua=o(ir),Cn=s(ir,"P",{"data-svelte-h":!0}),u(Cn)!=="svelte-1d4i4z7"&&(Cn.textContent=js),ir.forEach(r),ha=o(y),ce=s(y,"DIV",{class:!0});var dr=h(ce);l(ct.$$.fragment,dr),_a=o(dr),zn=s(dr,"P",{"data-svelte-h":!0}),u(zn)!=="svelte-4t526i"&&(zn.innerHTML=Os),dr.forEach(r),ba=o(y),pe=s(y,"DIV",{class:!0});var lr=h(pe);l(pt.$$.fragment,lr),va=o(lr),wn=s(lr,"P",{"data-svelte-h":!0}),u(wn)!=="svelte-1meey31"&&(wn.textContent=Ws),lr.forEach(r),ya=o(y),fe=s(y,"DIV",{class:!0});var mr=h(fe);l(ft.$$.fragment,mr),$a=o(mr),Tn=s(mr,"P",{"data-svelte-h":!0}),u(Tn)!=="svelte-1j1vsi1"&&(Tn.textContent=Rs),mr.forEach(r),qa=o(y),ge=s(y,"DIV",{class:!0});var cr=h(ge);l(gt.$$.fragment,cr),xa=o(cr),kn=s(cr,"P",{"data-svelte-h":!0}),u(kn)!=="svelte-1qo65te"&&(kn.textContent=Us),cr.forEach(r),Ca=o(y),ue=s(y,"DIV",{class:!0});var pr=h(ue);l(ut.$$.fragment,pr),za=o(pr),Ln=s(pr,"P",{"data-svelte-h":!0}),u(Ln)!=="svelte-i8h8td"&&(Ln.innerHTML=Ys),pr.forEach(r),wa=o(y),he=s(y,"DIV",{class:!0});var fr=h(he);l(ht.$$.fragment,fr),Ta=o(fr),Pn=s(fr,"P",{"data-svelte-h":!0}),u(Pn)!=="svelte-1uznum5"&&(Pn.innerHTML=Zs),fr.forEach(r),ka=o(y),_e=s(y,"DIV",{class:!0});var gr=h(_e);l(_t.$$.fragment,gr),La=o(gr),Dn=s(gr,"P",{"data-svelte-h":!0}),u(Dn)!=="svelte-mjhdcv"&&(Dn.innerHTML=Xs),gr.forEach(r),Pa=o(y),be=s(y,"DIV",{class:!0});var ur=h(be);l(bt.$$.fragment,ur),Da=o(ur),An=s(ur,"P",{"data-svelte-h":!0}),u(An)!=="svelte-1e5epn5"&&(An.innerHTML=Js),ur.forEach(r),Aa=o(y),ve=s(y,"DIV",{class:!0});var hr=h(ve);l(vt.$$.fragment,hr),Ha=o(hr),Hn=s(hr,"P",{"data-svelte-h":!0}),u(Hn)!=="svelte-1idnt2e"&&(Hn.innerHTML=Ks),hr.forEach(r),Ma=o(y),ye=s(y,"DIV",{class:!0});var _r=h(ye);l(yt.$$.fragment,_r),Qa=o(_r),Mn=s(_r,"P",{"data-svelte-h":!0}),u(Mn)!=="svelte-13hqoy0"&&(Mn.innerHTML=ei),_r.forEach(r),Na=o(y),$e=s(y,"DIV",{class:!0});var br=h($e);l($t.$$.fragment,br),Fa=o(br),Qn=s(br,"P",{"data-svelte-h":!0}),u(Qn)!=="svelte-1kpdm09"&&(Qn.textContent=ti),br.forEach(r),Ea=o(y),qe=s(y,"DIV",{class:!0});var vr=h(qe);l(qt.$$.fragment,vr),Va=o(vr),Nn=s(vr,"P",{"data-svelte-h":!0}),u(Nn)!=="svelte-1lxocan"&&(Nn.innerHTML=ni),vr.forEach(r),y.forEach(r),Do=o(e),l(xt.$$.fragment,e),Ao=o(e),V=s(e,"DIV",{class:!0});var io=h(V);l(Ct.$$.fragment,io),Ia=o(io),Fn=s(io,"P",{"data-svelte-h":!0}),u(Fn)!=="svelte-i9o5pz"&&(Fn.textContent=oi),Ba=o(io),xe=s(io,"DIV",{class:!0});var yr=h(xe);l(zt.$$.fragment,yr),Ga=o(yr),En=s(yr,"P",{"data-svelte-h":!0}),u(En)!=="svelte-gy26u4"&&(En.textContent=ri),yr.forEach(r),io.forEach(r),Ho=o(e),l(wt.$$.fragment,e),Mo=o(e),k=s(e,"DIV",{class:!0});var O=h(k);l(Tt.$$.fragment,O),Sa=o(O),Vn=s(O,"P",{"data-svelte-h":!0}),u(Vn)!=="svelte-h0fjpw"&&(Vn.textContent=ai),ja=o(O),Ce=s(O,"DIV",{class:!0});var $r=h(Ce);l(kt.$$.fragment,$r),Oa=o($r),In=s($r,"P",{"data-svelte-h":!0}),u(In)!=="svelte-6lcv9o"&&(In.textContent=si),$r.forEach(r),Wa=o(O),ze=s(O,"DIV",{class:!0});var qr=h(ze);l(Lt.$$.fragment,qr),Ra=o(qr),Bn=s(qr,"P",{"data-svelte-h":!0}),u(Bn)!=="svelte-gy26u4"&&(Bn.textContent=ii),qr.forEach(r),Ua=o(O),we=s(O,"DIV",{class:!0});var xr=h(we);l(Pt.$$.fragment,xr),Ya=o(xr),Gn=s(xr,"P",{"data-svelte-h":!0}),u(Gn)!=="svelte-1p6bdas"&&(Gn.textContent=di),xr.forEach(r),O.forEach(r),Qo=o(e),l(Dt.$$.fragment,e),No=o(e),U=s(e,"DIV",{class:!0});var Cr=h(U);l(At.$$.fragment,Cr),Za=o(Cr),Sn=s(Cr,"P",{"data-svelte-h":!0}),u(Sn)!=="svelte-1a51md3"&&(Sn.textContent=li),Cr.forEach(r),Fo=o(e),l(Ht.$$.fragment,e),Eo=o(e),L=s(e,"DIV",{class:!0});var W=h(L);l(Mt.$$.fragment,W),Xa=o(W),jn=s(W,"P",{"data-svelte-h":!0}),u(jn)!=="svelte-3h2fkj"&&(jn.innerHTML=mi),Ja=o(W),Te=s(W,"DIV",{class:!0});var zr=h(Te);l(Qt.$$.fragment,zr),Ka=o(zr),On=s(zr,"P",{"data-svelte-h":!0}),u(On)!=="svelte-1sqc0ks"&&(On.innerHTML=ci),zr.forEach(r),es=o(W),S=s(W,"DIV",{class:!0});var lo=h(S);l(Nt.$$.fragment,lo),ts=o(lo),Wn=s(lo,"P",{"data-svelte-h":!0}),u(Wn)!=="svelte-1h5q4kg"&&(Wn.textContent=pi),ns=o(lo),Rn=s(lo,"P",{"data-svelte-h":!0}),u(Rn)!=="svelte-4kfdpu"&&(Rn.innerHTML=fi),lo.forEach(r),os=o(W),ke=s(W,"DIV",{class:!0});var wr=h(ke);l(Ft.$$.fragment,wr),rs=o(wr),Un=s(wr,"P",{"data-svelte-h":!0}),u(Un)!=="svelte-1p6bdas"&&(Un.textContent=gi),wr.forEach(r),W.forEach(r),Vo=o(e),l(Et.$$.fragment,e),Io=o(e),P=s(e,"DIV",{class:!0});var R=h(P);l(Vt.$$.fragment,R),as=o(R),Yn=s(R,"P",{"data-svelte-h":!0}),u(Yn)!=="svelte-1pwo8e0"&&(Yn.textContent=ui),ss=o(R),l(Le.$$.fragment,R),is=o(R),Pe=s(R,"DIV",{class:!0});var Tr=h(Pe);l(It.$$.fragment,Tr),ds=o(Tr),Zn=s(Tr,"P",{"data-svelte-h":!0}),u(Zn)!=="svelte-gy26u4"&&(Zn.textContent=hi),Tr.forEach(r),ls=o(R),De=s(R,"DIV",{class:!0});var kr=h(De);l(Bt.$$.fragment,kr),ms=o(kr),Xn=s(kr,"P",{"data-svelte-h":!0}),u(Xn)!=="svelte-kbcfzp"&&(Xn.innerHTML=_i),kr.forEach(r),R.forEach(r),Bo=o(e),l(Gt.$$.fragment,e),Go=o(e),Y=s(e,"DIV",{class:!0});var Lr=h(Y);l(St.$$.fragment,Lr),cs=o(Lr),Ae=s(Lr,"DIV",{class:!0});var Pr=h(Ae);l(jt.$$.fragment,Pr),ps=o(Pr),Jn=s(Pr,"P",{"data-svelte-h":!0}),u(Jn)!=="svelte-1ozftb6"&&(Jn.textContent=bi),Pr.forEach(r),Lr.forEach(r),So=o(e),l(Ot.$$.fragment,e),jo=o(e),I=s(e,"DIV",{class:!0});var mo=h(I);l(Wt.$$.fragment,mo),fs=o(mo),Kn=s(mo,"P",{"data-svelte-h":!0}),u(Kn)!=="svelte-1sf4vkr"&&(Kn.innerHTML=vi),gs=o(mo),He=s(mo,"DIV",{class:!0});var Dr=h(He);l(Rt.$$.fragment,Dr),us=o(Dr),eo=s(Dr,"P",{"data-svelte-h":!0}),u(eo)!=="svelte-gy26u4"&&(eo.textContent=yi),Dr.forEach(r),mo.forEach(r),Oo=o(e),l(Ut.$$.fragment,e),Wo=o(e),B=s(e,"DIV",{class:!0});var co=h(B);l(Yt.$$.fragment,co),hs=o(co),to=s(co,"P",{"data-svelte-h":!0}),u(to)!=="svelte-1inuoy"&&(to.textContent=$i),_s=o(co),Me=s(co,"DIV",{class:!0});var Ar=h(Me);l(Zt.$$.fragment,Ar),bs=o(Ar),no=s(Ar,"P",{"data-svelte-h":!0}),u(no)!=="svelte-1ozftb6"&&(no.textContent=qi),Ar.forEach(r),co.forEach(r),Ro=o(e),l(Xt.$$.fragment,e),Uo=o(e),po=s(e,"P",{}),h(po).forEach(r),this.h()},h(){_($,"name","hf:doc:metadata"),_($,"content",Ni),_(J,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),_(M,"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"),_(Q,"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"),_(N,"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"),_(F,"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"),_(E,"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"),_(re,"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"),_(T,"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"),_(ie,"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"),_(le,"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"),_(me,"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"),_(pe,"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"),_(ge,"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"),_(he,"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"),_($e,"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"),_(v,"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"),_(V,"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"),_(ze,"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"),_(k,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),_(U,"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"),_(S,"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"),_(L,"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"),_(De,"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"),_(Ae,"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"),_(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"),_(Me,"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")},m(e,i){t(document.head,$),g(e,G,i),g(e,z,i),g(e,D,i),m(A,e,i),g(e,x,i),g(e,H,i),g(e,fo,i),g(e,Qe,i),g(e,go,i),m(X,e,i),g(e,uo,i),m(Ne,e,i),g(e,ho,i),g(e,M,i),m(Fe,M,null),t(M,Hr),t(M,en),t(M,Mr),t(M,J),m(Ee,J,null),t(J,Qr),t(J,tn),g(e,_o,i),m(Ve,e,i),g(e,bo,i),g(e,Q,i),m(Ie,Q,null),t(Q,Nr),t(Q,nn),t(Q,Fr),t(Q,K),m(Be,K,null),t(K,Er),t(K,on),g(e,vo,i),m(Ge,e,i),g(e,yo,i),g(e,N,i),m(Se,N,null),t(N,Vr),t(N,rn),t(N,Ir),t(N,ee),m(je,ee,null),t(ee,Br),t(ee,an),g(e,$o,i),m(Oe,e,i),g(e,qo,i),g(e,F,i),m(We,F,null),t(F,Gr),t(F,sn),t(F,Sr),t(F,te),m(Re,te,null),t(te,jr),t(te,dn),g(e,xo,i),m(Ue,e,i),g(e,Co,i),g(e,E,i),m(Ye,E,null),t(E,Or),t(E,ln),t(E,Wr),t(E,ne),m(Ze,ne,null),t(ne,Rr),t(ne,mn),g(e,zo,i),m(Xe,e,i),g(e,wo,i),g(e,T,i),m(Je,T,null),t(T,Ur),t(T,cn),t(T,Yr),t(T,oe),m(Ke,oe,null),t(oe,Zr),t(oe,pn),t(T,Xr),t(T,re),m(et,re,null),t(re,Jr),t(re,fn),t(T,Kr),t(T,ae),m(tt,ae,null),t(ae,ea),t(ae,gn),g(e,To,i),m(nt,e,i),g(e,ko,i),g(e,q,i),m(ot,q,null),t(q,ta),t(q,un),t(q,na),t(q,hn),t(q,oa),t(q,_n),t(q,ra),t(q,se),m(rt,se,null),t(se,aa),t(se,bn),t(q,sa),t(q,ie),m(at,ie,null),t(ie,ia),t(ie,vn),t(q,da),t(q,de),m(st,de,null),t(de,la),t(de,yn),t(q,ma),t(q,le),m(it,le,null),t(le,ca),t(le,$n),g(e,Lo,i),m(dt,e,i),g(e,Po,i),g(e,v,i),m(lt,v,null),t(v,pa),t(v,qn),t(v,fa),t(v,xn),t(v,ga),t(v,me),m(mt,me,null),t(me,ua),t(me,Cn),t(v,ha),t(v,ce),m(ct,ce,null),t(ce,_a),t(ce,zn),t(v,ba),t(v,pe),m(pt,pe,null),t(pe,va),t(pe,wn),t(v,ya),t(v,fe),m(ft,fe,null),t(fe,$a),t(fe,Tn),t(v,qa),t(v,ge),m(gt,ge,null),t(ge,xa),t(ge,kn),t(v,Ca),t(v,ue),m(ut,ue,null),t(ue,za),t(ue,Ln),t(v,wa),t(v,he),m(ht,he,null),t(he,Ta),t(he,Pn),t(v,ka),t(v,_e),m(_t,_e,null),t(_e,La),t(_e,Dn),t(v,Pa),t(v,be),m(bt,be,null),t(be,Da),t(be,An),t(v,Aa),t(v,ve),m(vt,ve,null),t(ve,Ha),t(ve,Hn),t(v,Ma),t(v,ye),m(yt,ye,null),t(ye,Qa),t(ye,Mn),t(v,Na),t(v,$e),m($t,$e,null),t($e,Fa),t($e,Qn),t(v,Ea),t(v,qe),m(qt,qe,null),t(qe,Va),t(qe,Nn),g(e,Do,i),m(xt,e,i),g(e,Ao,i),g(e,V,i),m(Ct,V,null),t(V,Ia),t(V,Fn),t(V,Ba),t(V,xe),m(zt,xe,null),t(xe,Ga),t(xe,En),g(e,Ho,i),m(wt,e,i),g(e,Mo,i),g(e,k,i),m(Tt,k,null),t(k,Sa),t(k,Vn),t(k,ja),t(k,Ce),m(kt,Ce,null),t(Ce,Oa),t(Ce,In),t(k,Wa),t(k,ze),m(Lt,ze,null),t(ze,Ra),t(ze,Bn),t(k,Ua),t(k,we),m(Pt,we,null),t(we,Ya),t(we,Gn),g(e,Qo,i),m(Dt,e,i),g(e,No,i),g(e,U,i),m(At,U,null),t(U,Za),t(U,Sn),g(e,Fo,i),m(Ht,e,i),g(e,Eo,i),g(e,L,i),m(Mt,L,null),t(L,Xa),t(L,jn),t(L,Ja),t(L,Te),m(Qt,Te,null),t(Te,Ka),t(Te,On),t(L,es),t(L,S),m(Nt,S,null),t(S,ts),t(S,Wn),t(S,ns),t(S,Rn),t(L,os),t(L,ke),m(Ft,ke,null),t(ke,rs),t(ke,Un),g(e,Vo,i),m(Et,e,i),g(e,Io,i),g(e,P,i),m(Vt,P,null),t(P,as),t(P,Yn),t(P,ss),m(Le,P,null),t(P,is),t(P,Pe),m(It,Pe,null),t(Pe,ds),t(Pe,Zn),t(P,ls),t(P,De),m(Bt,De,null),t(De,ms),t(De,Xn),g(e,Bo,i),m(Gt,e,i),g(e,Go,i),g(e,Y,i),m(St,Y,null),t(Y,cs),t(Y,Ae),m(jt,Ae,null),t(Ae,ps),t(Ae,Jn),g(e,So,i),m(Ot,e,i),g(e,jo,i),g(e,I,i),m(Wt,I,null),t(I,fs),t(I,Kn),t(I,gs),t(I,He),m(Rt,He,null),t(He,us),t(He,eo),g(e,Oo,i),m(Ut,e,i),g(e,Wo,i),g(e,B,i),m(Yt,B,null),t(B,hs),t(B,to),t(B,_s),t(B,Me),m(Zt,Me,null),t(Me,bs),t(Me,no),g(e,Ro,i),m(Xt,e,i),g(e,Uo,i),g(e,po,i),Yo=!0},p(e,[i]){const Z={};i&2&&(Z.$$scope={dirty:i,ctx:e}),X.$set(Z);const Jt={};i&2&&(Jt.$$scope={dirty:i,ctx:e}),Le.$set(Jt)},i(e){Yo||(c(A.$$.fragment,e),c(X.$$.fragment,e),c(Ne.$$.fragment,e),c(Fe.$$.fragment,e),c(Ee.$$.fragment,e),c(Ve.$$.fragment,e),c(Ie.$$.fragment,e),c(Be.$$.fragment,e),c(Ge.$$.fragment,e),c(Se.$$.fragment,e),c(je.$$.fragment,e),c(Oe.$$.fragment,e),c(We.$$.fragment,e),c(Re.$$.fragment,e),c(Ue.$$.fragment,e),c(Ye.$$.fragment,e),c(Ze.$$.fragment,e),c(Xe.$$.fragment,e),c(Je.$$.fragment,e),c(Ke.$$.fragment,e),c(et.$$.fragment,e),c(tt.$$.fragment,e),c(nt.$$.fragment,e),c(ot.$$.fragment,e),c(rt.$$.fragment,e),c(at.$$.fragment,e),c(st.$$.fragment,e),c(it.$$.fragment,e),c(dt.$$.fragment,e),c(lt.$$.fragment,e),c(mt.$$.fragment,e),c(ct.$$.fragment,e),c(pt.$$.fragment,e),c(ft.$$.fragment,e),c(gt.$$.fragment,e),c(ut.$$.fragment,e),c(ht.$$.fragment,e),c(_t.$$.fragment,e),c(bt.$$.fragment,e),c(vt.$$.fragment,e),c(yt.$$.fragment,e),c($t.$$.fragment,e),c(qt.$$.fragment,e),c(xt.$$.fragment,e),c(Ct.$$.fragment,e),c(zt.$$.fragment,e),c(wt.$$.fragment,e),c(Tt.$$.fragment,e),c(kt.$$.fragment,e),c(Lt.$$.fragment,e),c(Pt.$$.fragment,e),c(Dt.$$.fragment,e),c(At.$$.fragment,e),c(Ht.$$.fragment,e),c(Mt.$$.fragment,e),c(Qt.$$.fragment,e),c(Nt.$$.fragment,e),c(Ft.$$.fragment,e),c(Et.$$.fragment,e),c(Vt.$$.fragment,e),c(Le.$$.fragment,e),c(It.$$.fragment,e),c(Bt.$$.fragment,e),c(Gt.$$.fragment,e),c(St.$$.fragment,e),c(jt.$$.fragment,e),c(Ot.$$.fragment,e),c(Wt.$$.fragment,e),c(Rt.$$.fragment,e),c(Ut.$$.fragment,e),c(Yt.$$.fragment,e),c(Zt.$$.fragment,e),c(Xt.$$.fragment,e),Yo=!0)},o(e){p(A.$$.fragment,e),p(X.$$.fragment,e),p(Ne.$$.fragment,e),p(Fe.$$.fragment,e),p(Ee.$$.fragment,e),p(Ve.$$.fragment,e),p(Ie.$$.fragment,e),p(Be.$$.fragment,e),p(Ge.$$.fragment,e),p(Se.$$.fragment,e),p(je.$$.fragment,e),p(Oe.$$.fragment,e),p(We.$$.fragment,e),p(Re.$$.fragment,e),p(Ue.$$.fragment,e),p(Ye.$$.fragment,e),p(Ze.$$.fragment,e),p(Xe.$$.fragment,e),p(Je.$$.fragment,e),p(Ke.$$.fragment,e),p(et.$$.fragment,e),p(tt.$$.fragment,e),p(nt.$$.fragment,e),p(ot.$$.fragment,e),p(rt.$$.fragment,e),p(at.$$.fragment,e),p(st.$$.fragment,e),p(it.$$.fragment,e),p(dt.$$.fragment,e),p(lt.$$.fragment,e),p(mt.$$.fragment,e),p(ct.$$.fragment,e),p(pt.$$.fragment,e),p(ft.$$.fragment,e),p(gt.$$.fragment,e),p(ut.$$.fragment,e),p(ht.$$.fragment,e),p(_t.$$.fragment,e),p(bt.$$.fragment,e),p(vt.$$.fragment,e),p(yt.$$.fragment,e),p($t.$$.fragment,e),p(qt.$$.fragment,e),p(xt.$$.fragment,e),p(Ct.$$.fragment,e),p(zt.$$.fragment,e),p(wt.$$.fragment,e),p(Tt.$$.fragment,e),p(kt.$$.fragment,e),p(Lt.$$.fragment,e),p(Pt.$$.fragment,e),p(Dt.$$.fragment,e),p(At.$$.fragment,e),p(Ht.$$.fragment,e),p(Mt.$$.fragment,e),p(Qt.$$.fragment,e),p(Nt.$$.fragment,e),p(Ft.$$.fragment,e),p(Et.$$.fragment,e),p(Vt.$$.fragment,e),p(Le.$$.fragment,e),p(It.$$.fragment,e),p(Bt.$$.fragment,e),p(Gt.$$.fragment,e),p(St.$$.fragment,e),p(jt.$$.fragment,e),p(Ot.$$.fragment,e),p(Wt.$$.fragment,e),p(Rt.$$.fragment,e),p(Ut.$$.fragment,e),p(Yt.$$.fragment,e),p(Zt.$$.fragment,e),p(Xt.$$.fragment,e),Yo=!1},d(e){e&&(r(G),r(z),r(D),r(x),r(H),r(fo),r(Qe),r(go),r(uo),r(ho),r(M),r(_o),r(bo),r(Q),r(vo),r(yo),r(N),r($o),r(qo),r(F),r(xo),r(Co),r(E),r(zo),r(wo),r(T),r(To),r(ko),r(q),r(Lo),r(Po),r(v),r(Do),r(Ao),r(V),r(Ho),r(Mo),r(k),r(Qo),r(No),r(U),r(Fo),r(Eo),r(L),r(Vo),r(Io),r(P),r(Bo),r(Go),r(Y),r(So),r(jo),r(I),r(Oo),r(Wo),r(B),r(Ro),r(Uo),r(po)),r($),f(A,e),f(X,e),f(Ne,e),f(Fe),f(Ee),f(Ve,e),f(Ie),f(Be),f(Ge,e),f(Se),f(je),f(Oe,e),f(We),f(Re),f(Ue,e),f(Ye),f(Ze),f(Xe,e),f(Je),f(Ke),f(et),f(tt),f(nt,e),f(ot),f(rt),f(at),f(st),f(it),f(dt,e),f(lt),f(mt),f(ct),f(pt),f(ft),f(gt),f(ut),f(ht),f(_t),f(bt),f(vt),f(yt),f($t),f(qt),f(xt,e),f(Ct),f(zt),f(wt,e),f(Tt),f(kt),f(Lt),f(Pt),f(Dt,e),f(At),f(Ht,e),f(Mt),f(Qt),f(Nt),f(Ft),f(Et,e),f(Vt),f(Le),f(It),f(Bt),f(Gt,e),f(St),f(jt),f(Ot,e),f(Wt),f(Rt),f(Ut,e),f(Yt),f(Zt),f(Xt,e)}}}const Ni='{"title":"Quantization","local":"quantization","sections":[{"title":"QuantoConfig","local":"transformers.QuantoConfig","sections":[],"depth":2},{"title":"AqlmConfig","local":"transformers.AqlmConfig","sections":[],"depth":2},{"title":"VptqConfig","local":"transformers.VptqConfig","sections":[],"depth":2},{"title":"AwqConfig","local":"transformers.AwqConfig","sections":[],"depth":2},{"title":"EetqConfig","local":"transformers.EetqConfig","sections":[],"depth":2},{"title":"GPTQConfig","local":"transformers.GPTQConfig","sections":[],"depth":2},{"title":"BitsAndBytesConfig","local":"transformers.BitsAndBytesConfig","sections":[],"depth":2},{"title":"HfQuantizer","local":"transformers.quantizers.HfQuantizer","sections":[],"depth":2},{"title":"HiggsConfig","local":"transformers.HiggsConfig","sections":[],"depth":2},{"title":"HqqConfig","local":"transformers.HqqConfig","sections":[],"depth":2},{"title":"FbgemmFp8Config","local":"transformers.FbgemmFp8Config","sections":[],"depth":2},{"title":"CompressedTensorsConfig","local":"transformers.CompressedTensorsConfig","sections":[],"depth":2},{"title":"TorchAoConfig","local":"transformers.TorchAoConfig","sections":[],"depth":2},{"title":"BitNetConfig","local":"transformers.BitNetConfig","sections":[],"depth":2},{"title":"SpQRConfig","local":"transformers.SpQRConfig","sections":[],"depth":2},{"title":"FineGrainedFP8Config","local":"transformers.FineGrainedFP8Config","sections":[],"depth":2}],"depth":1}';function Fi(Kt){return zi(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Oi extends wi{constructor($){super(),Ti(this,$,Fi,Qi,Ci,{})}}export{Oi as component};
