import{S as xa,i as Sa,s as Pa,e as n,k as h,w as y,t as s,M as Ia,c as a,d as t,m,a as i,x as w,h as r,b as l,G as e,g,y as T,q as k,o as L,B as $,v as qa,L as Ea}from"../../chunks/vendor-hf-doc-builder.js";import{T as Jn}from"../../chunks/Tip-hf-doc-builder.js";import{D as qe}from"../../chunks/Docstring-hf-doc-builder.js";import{C as Fa}from"../../chunks/CodeBlock-hf-doc-builder.js";import{I as oo}from"../../chunks/IconCopyLink-hf-doc-builder.js";import{E as za}from"../../chunks/ExampleCodeBlock-hf-doc-builder.js";function Wa(x){let d,v;return d=new Fa({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyME9wZW5MbGFtYU1vZGVsJTJDJTIwT3BlbkxsYW1hQ29uZmlnJTBBJTBBJTIzJTIwSW5pdGlhbGl6aW5nJTIwYSUyME9wZW4tTGxhbWElMjBvcGVuX2xsYW1hLTdiJTIwc3R5bGUlMjBjb25maWd1cmF0aW9uJTBBY29uZmlndXJhdGlvbiUyMCUzRCUyME9wZW5MbGFtYUNvbmZpZygpJTBBJTBBJTIzJTIwSW5pdGlhbGl6aW5nJTIwYSUyMG1vZGVsJTIwZnJvbSUyMHRoZSUyMG9wZW5fbGxhbWEtN2IlMjBzdHlsZSUyMGNvbmZpZ3VyYXRpb24lMEFtb2RlbCUyMCUzRCUyME9wZW5MbGFtYU1vZGVsKGNvbmZpZ3VyYXRpb24pJTBBJTBBJTIzJTIwQWNjZXNzaW5nJTIwdGhlJTIwbW9kZWwlMjBjb25maWd1cmF0aW9uJTBBY29uZmlndXJhdGlvbiUyMCUzRCUyMG1vZGVsLmNvbmZpZw==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> OpenLlamaModel, OpenLlamaConfig

<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># Initializing a Open-Llama open_llama-7b style configuration</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>configuration = OpenLlamaConfig()

<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># Initializing a model from the open_llama-7b style configuration</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>model = OpenLlamaModel(configuration)

<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># Accessing the model configuration</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>configuration = model.config`}}),{c(){y(d.$$.fragment)},l(c){w(d.$$.fragment,c)},m(c,_){T(d,c,_),v=!0},p:Ea,i(c){v||(k(d.$$.fragment,c),v=!0)},o(c){L(d.$$.fragment,c),v=!1},d(c){$(d,c)}}}function Ua(x){let d,v,c,_,b;return{c(){d=n("p"),v=s("Although the recipe for forward pass needs to be defined within this function, one should call the "),c=n("code"),_=s("Module"),b=s(`
instance afterwards instead of this since the former takes care of running the pre and post processing steps while
the latter silently ignores them.`)},l(p){d=a(p,"P",{});var u=i(d);v=r(u,"Although the recipe for forward pass needs to be defined within this function, one should call the "),c=a(u,"CODE",{});var C=i(c);_=r(C,"Module"),C.forEach(t),b=r(u,`
instance afterwards instead of this since the former takes care of running the pre and post processing steps while
the latter silently ignores them.`),u.forEach(t)},m(p,u){g(p,d,u),e(d,v),e(d,c),e(c,_),e(d,b)},d(p){p&&t(d)}}}function Aa(x){let d,v,c,_,b;return{c(){d=n("p"),v=s("Although the recipe for forward pass needs to be defined within this function, one should call the "),c=n("code"),_=s("Module"),b=s(`
instance afterwards instead of this since the former takes care of running the pre and post processing steps while
the latter silently ignores them.`)},l(p){d=a(p,"P",{});var u=i(d);v=r(u,"Although the recipe for forward pass needs to be defined within this function, one should call the "),c=a(u,"CODE",{});var C=i(c);_=r(C,"Module"),C.forEach(t),b=r(u,`
instance afterwards instead of this since the former takes care of running the pre and post processing steps while
the latter silently ignores them.`),u.forEach(t)},m(p,u){g(p,d,u),e(d,v),e(d,c),e(c,_),e(d,b)},d(p){p&&t(d)}}}function Ja(x){let d,v,c,_,b;return _=new Fa({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Ub2tlbml6ZXIlMkMlMjBPcGVuTGxhbWFGb3JDYXVzYWxMTSUwQSUwQW1vZGVsJTIwJTNEJTIwT3BlbkxsYW1hRm9yQ2F1c2FsTE0uZnJvbV9wcmV0cmFpbmVkKFBBVEhfVE9fQ09OVkVSVEVEX1dFSUdIVFMpJTBBdG9rZW5pemVyJTIwJTNEJTIwQXV0b1Rva2VuaXplci5mcm9tX3ByZXRyYWluZWQoUEFUSF9UT19DT05WRVJURURfVE9LRU5JWkVSKSUwQSUwQXByb21wdCUyMCUzRCUyMCUyMkhleSUyQyUyMGFyZSUyMHlvdSUyMGNvbnNjaW91cnMlM0YlMjBDYW4lMjB5b3UlMjB0YWxrJTIwdG8lMjBtZSUzRiUyMiUwQWlucHV0cyUyMCUzRCUyMHRva2VuaXplcihwcm9tcHQlMkMlMjByZXR1cm5fdGVuc29ycyUzRCUyMnB0JTIyKSUwQSUwQSUyMyUyMEdlbmVyYXRlJTBBZ2VuZXJhdGVfaWRzJTIwJTNEJTIwbW9kZWwuZ2VuZXJhdGUoaW5wdXRzLmlucHV0X2lkcyUyQyUyMG1heF9sZW5ndGglM0QzMCklMEF0b2tlbml6ZXIuYmF0Y2hfZGVjb2RlKGdlbmVyYXRlX2lkcyUyQyUyMHNraXBfc3BlY2lhbF90b2tlbnMlM0RUcnVlJTJDJTIwY2xlYW5fdXBfdG9rZW5pemF0aW9uX3NwYWNlcyUzREZhbHNlKSU1QjAlNUQ=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer, OpenLlamaForCausalLM

<span class="hljs-meta">&gt;&gt;&gt; </span>model = OpenLlamaForCausalLM.from_pretrained(PATH_TO_CONVERTED_WEIGHTS)
<span class="hljs-meta">&gt;&gt;&gt; </span>tokenizer = AutoTokenizer.from_pretrained(PATH_TO_CONVERTED_TOKENIZER)

<span class="hljs-meta">&gt;&gt;&gt; </span>prompt = <span class="hljs-string">&quot;Hey, are you consciours? Can you talk to me?&quot;</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>inputs = tokenizer(prompt, return_tensors=<span class="hljs-string">&quot;pt&quot;</span>)

<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># Generate</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>generate_ids = model.generate(inputs.input_ids, max_length=<span class="hljs-number">30</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>tokenizer.batch_decode(generate_ids, skip_special_tokens=<span class="hljs-literal">True</span>, clean_up_tokenization_spaces=<span class="hljs-literal">False</span>)[<span class="hljs-number">0</span>]
<span class="hljs-string">&quot;Hey, are you consciours? Can you talk to me?\\nI&#x27;m not consciours, but I can talk to you.&quot;</span>`}}),{c(){d=n("p"),v=s("Example:"),c=h(),y(_.$$.fragment)},l(p){d=a(p,"P",{});var u=i(d);v=r(u,"Example:"),u.forEach(t),c=m(p),w(_.$$.fragment,p)},m(p,u){g(p,d,u),e(d,v),g(p,c,u),T(_,p,u),b=!0},p:Ea,i(p){b||(k(_.$$.fragment,p),b=!0)},o(p){L(_.$$.fragment,p),b=!1},d(p){p&&t(d),p&&t(c),$(_,p)}}}function Na(x){let d,v,c,_,b;return{c(){d=n("p"),v=s("Although the recipe for forward pass needs to be defined within this function, one should call the "),c=n("code"),_=s("Module"),b=s(`
instance afterwards instead of this since the former takes care of running the pre and post processing steps while
the latter silently ignores them.`)},l(p){d=a(p,"P",{});var u=i(d);v=r(u,"Although the recipe for forward pass needs to be defined within this function, one should call the "),c=a(u,"CODE",{});var C=i(c);_=r(C,"Module"),C.forEach(t),b=r(u,`
instance afterwards instead of this since the former takes care of running the pre and post processing steps while
the latter silently ignores them.`),u.forEach(t)},m(p,u){g(p,d,u),e(d,v),e(d,c),e(c,_),e(d,b)},d(p){p&&t(d)}}}function Va(x){let d,v,c,_,b,p,u,C,Yo,Mo,A,Y,to,pe,Ho,no,Qo,Co,H,Ko,he,et,ot,zo,We,tt,Eo,S,nt,me,at,st,fe,rt,it,ue,lt,dt,Fo,J,Q,ao,ge,ct,so,pt,xo,E,_e,ht,N,mt,Ue,ft,ut,ve,gt,_t,vt,V,bt,Ae,yt,wt,Je,Tt,kt,Lt,K,So,j,ee,ro,be,$t,io,Ot,Po,M,ye,Mt,we,Ct,Ne,zt,Et,Ft,Te,xt,ke,St,Pt,It,oe,qt,lo,Wt,Ut,co,At,Jt,I,Le,Nt,B,Vt,Ve,jt,Bt,po,Gt,Zt,Dt,te,Io,G,ne,ho,$e,Rt,mo,Xt,qo,Z,Oe,Yt,P,Me,Ht,D,Qt,je,Kt,en,fo,on,tn,nn,ae,an,se,Wo,R,re,uo,Ce,sn,go,rn,Uo,O,ze,ln,_o,dn,cn,Be,Ge,pn,hn,mn,F,fn,vo,un,gn,bo,_n,vn,yo,bn,yn,wo,wn,Tn,kn,Ee,Ln,Ze,$n,On,Mn,Fe,Cn,xe,zn,En,Fn,q,Se,xn,X,Sn,De,Pn,In,To,qn,Wn,Un,ie,Ao;return p=new oo({}),pe=new oo({}),ge=new oo({}),_e=new qe({props:{name:"class transformers.OpenLlamaConfig",anchor:"transformers.OpenLlamaConfig",parameters:[{name:"vocab_size",val:" = 100000"},{name:"hidden_size",val:" = 4096"},{name:"intermediate_size",val:" = 11008"},{name:"num_hidden_layers",val:" = 32"},{name:"num_attention_heads",val:" = 32"},{name:"hidden_act",val:" = 'silu'"},{name:"max_position_embeddings",val:" = 2048"},{name:"initializer_range",val:" = 0.02"},{name:"rms_norm_eps",val:" = 1e-06"},{name:"use_cache",val:" = True"},{name:"pad_token_id",val:" = 0"},{name:"bos_token_id",val:" = 1"},{name:"eos_token_id",val:" = 2"},{name:"tie_word_embeddings",val:" = False"},{name:"use_memory_efficient_attention",val:" = True"},{name:"hidden_dropout_prob",val:" = 0.1"},{name:"attention_dropout_prob",val:" = 0.1"},{name:"use_stable_embedding",val:" = True"},{name:"shared_input_output_embedding",val:" = True"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.OpenLlamaConfig.vocab_size",description:`<strong>vocab_size</strong> (<code>int</code>, <em>optional</em>, defaults to 32000) &#x2014;
Vocabulary size of the Open-Llama model. Defines the number of different tokens that can be represented by
the <code>inputs_ids</code> passed when calling <a href="/docs/transformers/v4.30.0/en/model_doc/open-llama#transformers.OpenLlamaModel">OpenLlamaModel</a>`,name:"vocab_size"},{anchor:"transformers.OpenLlamaConfig.hidden_size",description:`<strong>hidden_size</strong> (<code>int</code>, <em>optional</em>, defaults to 4096) &#x2014;
Dimension of the hidden representations.`,name:"hidden_size"},{anchor:"transformers.OpenLlamaConfig.intermediate_size",description:`<strong>intermediate_size</strong> (<code>int</code>, <em>optional</em>, defaults to 11008) &#x2014;
Dimension of the MLP representations.`,name:"intermediate_size"},{anchor:"transformers.OpenLlamaConfig.num_hidden_layers",description:`<strong>num_hidden_layers</strong> (<code>int</code>, <em>optional</em>, defaults to 32) &#x2014;
Number of hidden layers in the Transformer encoder.`,name:"num_hidden_layers"},{anchor:"transformers.OpenLlamaConfig.num_attention_heads",description:`<strong>num_attention_heads</strong> (<code>int</code>, <em>optional</em>, defaults to 32) &#x2014;
Number of attention heads for each attention layer in the Transformer encoder.`,name:"num_attention_heads"},{anchor:"transformers.OpenLlamaConfig.hidden_act",description:`<strong>hidden_act</strong> (<code>str</code> or <code>function</code>, <em>optional</em>, defaults to <code>&quot;silu&quot;</code>) &#x2014;
The non-linear activation function (function or string) in the decoder.`,name:"hidden_act"},{anchor:"transformers.OpenLlamaConfig.max_position_embeddings",description:`<strong>max_position_embeddings</strong> (<code>int</code>, <em>optional</em>, defaults to 2048) &#x2014;
The maximum sequence length that this model might ever be used with. Typically set this to something large
just in case (e.g., 512 or 1024 or 2048).`,name:"max_position_embeddings"},{anchor:"transformers.OpenLlamaConfig.initializer_range",description:`<strong>initializer_range</strong> (<code>float</code>, <em>optional</em>, defaults to 0.02) &#x2014;
The standard deviation of the truncated_normal_initializer for initializing all weight matrices.`,name:"initializer_range"},{anchor:"transformers.OpenLlamaConfig.rms_norm_eps",description:`<strong>rms_norm_eps</strong> (<code>float</code>, <em>optional</em>, defaults to 1e-12) &#x2014;
The epsilon used by the rms normalization layers.`,name:"rms_norm_eps"},{anchor:"transformers.OpenLlamaConfig.use_cache",description:`<strong>use_cache</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) &#x2014;
Whether or not the model should return the last key/values attentions (not used by all models). Only
relevant if <code>config.is_decoder=True</code>.`,name:"use_cache"},{anchor:"transformers.OpenLlamaConfig.tie_word_embeddings(bool,",description:`<strong>tie_word_embeddings(<code>bool</code>,</strong> <em>optional</em>, defaults to <code>False</code>) &#x2014;
Whether to tie weight embeddings
Example &#x2014;`,name:"tie_word_embeddings(bool,"}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/models/open_llama/configuration_open_llama.py#L33"}}),K=new za({props:{anchor:"transformers.OpenLlamaConfig.example",$$slots:{default:[Wa]},$$scope:{ctx:x}}}),be=new oo({}),ye=new qe({props:{name:"class transformers.OpenLlamaModel",anchor:"transformers.OpenLlamaModel",parameters:[{name:"config",val:": OpenLlamaConfig"}],parametersDescription:[{anchor:"transformers.OpenLlamaModel.config",description:`<strong>config</strong> (<a href="/docs/transformers/v4.30.0/en/model_doc/open-llama#transformers.OpenLlamaConfig">OpenLlamaConfig</a>) &#x2014;
Model configuration class with all the parameters of the model. Initializing with a config file does not
load the weights associated with the model, only the configuration. Check out the
<a href="/docs/transformers/v4.30.0/en/main_classes/model#transformers.PreTrainedModel.from_pretrained">from_pretrained()</a> method to load the model weights.
config &#x2014; OpenLlamaConfig`,name:"config"}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/models/open_llama/modeling_open_llama.py#L459"}}),Le=new qe({props:{name:"forward",anchor:"transformers.OpenLlamaModel.forward",parameters:[{name:"input_ids",val:": LongTensor = None"},{name:"attention_mask",val:": typing.Optional[torch.Tensor] = None"},{name:"position_ids",val:": typing.Optional[torch.LongTensor] = None"},{name:"past_key_values",val:": typing.Optional[typing.List[torch.FloatTensor]] = None"},{name:"inputs_embeds",val:": typing.Optional[torch.FloatTensor] = None"},{name:"use_cache",val:": typing.Optional[bool] = None"},{name:"output_attentions",val:": typing.Optional[bool] = None"},{name:"output_hidden_states",val:": typing.Optional[bool] = None"},{name:"return_dict",val:": typing.Optional[bool] = None"}],parametersDescription:[{anchor:"transformers.OpenLlamaModel.forward.input_ids",description:`<strong>input_ids</strong> (<code>torch.LongTensor</code> of shape <code>(batch_size, sequence_length)</code>) &#x2014;
Indices of input sequence tokens in the vocabulary. Padding will be ignored by default should you provide
it.</p>
<p>Indices can be obtained using <a href="/docs/transformers/v4.30.0/en/model_doc/auto#transformers.AutoTokenizer">AutoTokenizer</a>. See <a href="/docs/transformers/v4.30.0/en/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode">PreTrainedTokenizer.encode()</a> and
<a href="/docs/transformers/v4.30.0/en/model_doc/speecht5#transformers.SpeechT5Tokenizer.__call__">PreTrainedTokenizer.<strong>call</strong>()</a> for details.</p>
<p><a href="../glossary#input-ids">What are input IDs?</a>`,name:"input_ids"},{anchor:"transformers.OpenLlamaModel.forward.attention_mask",description:`<strong>attention_mask</strong> (<code>torch.Tensor</code> of shape <code>(batch_size, sequence_length)</code>, <em>optional</em>) &#x2014;
Mask to avoid performing attention on padding token indices. Mask values selected in <code>[0, 1]</code>:</p>
<ul>
<li>1 for tokens that are <strong>not masked</strong>,</li>
<li>0 for tokens that are <strong>masked</strong>.</li>
</ul>
<p><a href="../glossary#attention-mask">What are attention masks?</a></p>
<p>Indices can be obtained using <a href="/docs/transformers/v4.30.0/en/model_doc/auto#transformers.AutoTokenizer">AutoTokenizer</a>. See <a href="/docs/transformers/v4.30.0/en/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode">PreTrainedTokenizer.encode()</a> and
<a href="/docs/transformers/v4.30.0/en/model_doc/speecht5#transformers.SpeechT5Tokenizer.__call__">PreTrainedTokenizer.<strong>call</strong>()</a> for details.</p>
<p>If <code>past_key_values</code> is used, optionally only the last <code>decoder_input_ids</code> have to be input (see
<code>past_key_values</code>).</p>
<p>If you want to change padding behavior, you should read <code>modeling_opt._prepare_decoder_attention_mask</code>
and modify to your needs. See diagram 1 in <a href="https://arxiv.org/abs/1910.13461" rel="nofollow">the paper</a> for more
information on the default strategy.</p>
<ul>
<li>1 indicates the head is <strong>not masked</strong>,</li>
<li>0 indicates the head is <strong>masked</strong>.</li>
</ul>`,name:"attention_mask"},{anchor:"transformers.OpenLlamaModel.forward.position_ids",description:`<strong>position_ids</strong> (<code>torch.LongTensor</code> of shape <code>(batch_size, sequence_length)</code>, <em>optional</em>) &#x2014;
Indices of positions of each input sequence tokens in the position embeddings. Selected in the range <code>[0, config.n_positions - 1]</code>.</p>
<p><a href="../glossary#position-ids">What are position IDs?</a>`,name:"position_ids"},{anchor:"transformers.OpenLlamaModel.forward.past_key_values",description:`<strong>past_key_values</strong> (<code>tuple(tuple(torch.FloatTensor))</code>, <em>optional</em>, returned when <code>use_cache=True</code> is passed or when <code>config.use_cache=True</code>) &#x2014;
Tuple of <code>tuple(torch.FloatTensor)</code> of length <code>config.n_layers</code>, with each tuple having 2 tensors of shape
<code>(batch_size, num_heads, sequence_length, embed_size_per_head)</code>) and 2 additional tensors of shape
<code>(batch_size, num_heads, encoder_sequence_length, embed_size_per_head)</code>.</p>
<p>Contains pre-computed hidden-states (key and values in the self-attention blocks and in the cross-attention
blocks) that can be used (see <code>past_key_values</code> input) to speed up sequential decoding.</p>
<p>If <code>past_key_values</code> are used, the user can optionally input only the last <code>decoder_input_ids</code> (those that
don&#x2019;t have their past key value states given to this model) of shape <code>(batch_size, 1)</code> instead of all
<code>decoder_input_ids</code> of shape <code>(batch_size, sequence_length)</code>.`,name:"past_key_values"},{anchor:"transformers.OpenLlamaModel.forward.inputs_embeds",description:`<strong>inputs_embeds</strong> (<code>torch.FloatTensor</code> of shape <code>(batch_size, sequence_length, hidden_size)</code>, <em>optional</em>) &#x2014;
Optionally, instead of passing <code>input_ids</code> you can choose to directly pass an embedded representation. This
is useful if you want more control over how to convert <code>input_ids</code> indices into associated vectors than the
model&#x2019;s internal embedding lookup matrix.`,name:"inputs_embeds"},{anchor:"transformers.OpenLlamaModel.forward.use_cache",description:`<strong>use_cache</strong> (<code>bool</code>, <em>optional</em>) &#x2014;
If set to <code>True</code>, <code>past_key_values</code> key value states are returned and can be used to speed up decoding (see
<code>past_key_values</code>).`,name:"use_cache"},{anchor:"transformers.OpenLlamaModel.forward.output_attentions",description:`<strong>output_attentions</strong> (<code>bool</code>, <em>optional</em>) &#x2014;
Whether or not to return the attentions tensors of all attention layers. See <code>attentions</code> under returned
tensors for more detail.`,name:"output_attentions"},{anchor:"transformers.OpenLlamaModel.forward.output_hidden_states",description:`<strong>output_hidden_states</strong> (<code>bool</code>, <em>optional</em>) &#x2014;
Whether or not to return the hidden states of all layers. See <code>hidden_states</code> under returned tensors for
more detail.`,name:"output_hidden_states"},{anchor:"transformers.OpenLlamaModel.forward.return_dict",description:`<strong>return_dict</strong> (<code>bool</code>, <em>optional</em>) &#x2014;
Whether or not to return a <a href="/docs/transformers/v4.30.0/en/main_classes/output#transformers.utils.ModelOutput">ModelOutput</a> instead of a plain tuple.`,name:"return_dict"}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/models/open_llama/modeling_open_llama.py#L514"}}),te=new Jn({props:{$$slots:{default:[Ua]},$$scope:{ctx:x}}}),$e=new oo({}),Oe=new qe({props:{name:"class transformers.OpenLlamaForCausalLM",anchor:"transformers.OpenLlamaForCausalLM",parameters:[{name:"config",val:""}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/models/open_llama/modeling_open_llama.py#L647"}}),Me=new qe({props:{name:"forward",anchor:"transformers.OpenLlamaForCausalLM.forward",parameters:[{name:"input_ids",val:": LongTensor = None"},{name:"attention_mask",val:": typing.Optional[torch.Tensor] = None"},{name:"position_ids",val:": typing.Optional[torch.LongTensor] = None"},{name:"past_key_values",val:": typing.Optional[typing.List[torch.FloatTensor]] = None"},{name:"inputs_embeds",val:": typing.Optional[torch.FloatTensor] = None"},{name:"labels",val:": typing.Optional[torch.LongTensor] = None"},{name:"use_cache",val:": typing.Optional[bool] = None"},{name:"output_attentions",val:": typing.Optional[bool] = None"},{name:"output_hidden_states",val:": typing.Optional[bool] = None"},{name:"return_dict",val:": typing.Optional[bool] = None"}],parametersDescription:[{anchor:"transformers.OpenLlamaForCausalLM.forward.input_ids",description:`<strong>input_ids</strong> (<code>torch.LongTensor</code> of shape <code>(batch_size, sequence_length)</code>) &#x2014;
Indices of input sequence tokens in the vocabulary. Padding will be ignored by default should you provide
it.</p>
<p>Indices can be obtained using <a href="/docs/transformers/v4.30.0/en/model_doc/auto#transformers.AutoTokenizer">AutoTokenizer</a>. See <a href="/docs/transformers/v4.30.0/en/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode">PreTrainedTokenizer.encode()</a> and
<a href="/docs/transformers/v4.30.0/en/model_doc/speecht5#transformers.SpeechT5Tokenizer.__call__">PreTrainedTokenizer.<strong>call</strong>()</a> for details.</p>
<p><a href="../glossary#input-ids">What are input IDs?</a>`,name:"input_ids"},{anchor:"transformers.OpenLlamaForCausalLM.forward.attention_mask",description:`<strong>attention_mask</strong> (<code>torch.Tensor</code> of shape <code>(batch_size, sequence_length)</code>, <em>optional</em>) &#x2014;
Mask to avoid performing attention on padding token indices. Mask values selected in <code>[0, 1]</code>:</p>
<ul>
<li>1 for tokens that are <strong>not masked</strong>,</li>
<li>0 for tokens that are <strong>masked</strong>.</li>
</ul>
<p><a href="../glossary#attention-mask">What are attention masks?</a></p>
<p>Indices can be obtained using <a href="/docs/transformers/v4.30.0/en/model_doc/auto#transformers.AutoTokenizer">AutoTokenizer</a>. See <a href="/docs/transformers/v4.30.0/en/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode">PreTrainedTokenizer.encode()</a> and
<a href="/docs/transformers/v4.30.0/en/model_doc/speecht5#transformers.SpeechT5Tokenizer.__call__">PreTrainedTokenizer.<strong>call</strong>()</a> for details.</p>
<p>If <code>past_key_values</code> is used, optionally only the last <code>decoder_input_ids</code> have to be input (see
<code>past_key_values</code>).</p>
<p>If you want to change padding behavior, you should read <code>modeling_opt._prepare_decoder_attention_mask</code>
and modify to your needs. See diagram 1 in <a href="https://arxiv.org/abs/1910.13461" rel="nofollow">the paper</a> for more
information on the default strategy.</p>
<ul>
<li>1 indicates the head is <strong>not masked</strong>,</li>
<li>0 indicates the head is <strong>masked</strong>.</li>
</ul>`,name:"attention_mask"},{anchor:"transformers.OpenLlamaForCausalLM.forward.position_ids",description:`<strong>position_ids</strong> (<code>torch.LongTensor</code> of shape <code>(batch_size, sequence_length)</code>, <em>optional</em>) &#x2014;
Indices of positions of each input sequence tokens in the position embeddings. Selected in the range <code>[0, config.n_positions - 1]</code>.</p>
<p><a href="../glossary#position-ids">What are position IDs?</a>`,name:"position_ids"},{anchor:"transformers.OpenLlamaForCausalLM.forward.past_key_values",description:`<strong>past_key_values</strong> (<code>tuple(tuple(torch.FloatTensor))</code>, <em>optional</em>, returned when <code>use_cache=True</code> is passed or when <code>config.use_cache=True</code>) &#x2014;
Tuple of <code>tuple(torch.FloatTensor)</code> of length <code>config.n_layers</code>, with each tuple having 2 tensors of shape
<code>(batch_size, num_heads, sequence_length, embed_size_per_head)</code>) and 2 additional tensors of shape
<code>(batch_size, num_heads, encoder_sequence_length, embed_size_per_head)</code>.</p>
<p>Contains pre-computed hidden-states (key and values in the self-attention blocks and in the cross-attention
blocks) that can be used (see <code>past_key_values</code> input) to speed up sequential decoding.</p>
<p>If <code>past_key_values</code> are used, the user can optionally input only the last <code>decoder_input_ids</code> (those that
don&#x2019;t have their past key value states given to this model) of shape <code>(batch_size, 1)</code> instead of all
<code>decoder_input_ids</code> of shape <code>(batch_size, sequence_length)</code>.`,name:"past_key_values"},{anchor:"transformers.OpenLlamaForCausalLM.forward.inputs_embeds",description:`<strong>inputs_embeds</strong> (<code>torch.FloatTensor</code> of shape <code>(batch_size, sequence_length, hidden_size)</code>, <em>optional</em>) &#x2014;
Optionally, instead of passing <code>input_ids</code> you can choose to directly pass an embedded representation. This
is useful if you want more control over how to convert <code>input_ids</code> indices into associated vectors than the
model&#x2019;s internal embedding lookup matrix.`,name:"inputs_embeds"},{anchor:"transformers.OpenLlamaForCausalLM.forward.use_cache",description:`<strong>use_cache</strong> (<code>bool</code>, <em>optional</em>) &#x2014;
If set to <code>True</code>, <code>past_key_values</code> key value states are returned and can be used to speed up decoding (see
<code>past_key_values</code>).`,name:"use_cache"},{anchor:"transformers.OpenLlamaForCausalLM.forward.output_attentions",description:`<strong>output_attentions</strong> (<code>bool</code>, <em>optional</em>) &#x2014;
Whether or not to return the attentions tensors of all attention layers. See <code>attentions</code> under returned
tensors for more detail.`,name:"output_attentions"},{anchor:"transformers.OpenLlamaForCausalLM.forward.output_hidden_states",description:`<strong>output_hidden_states</strong> (<code>bool</code>, <em>optional</em>) &#x2014;
Whether or not to return the hidden states of all layers. See <code>hidden_states</code> under returned tensors for
more detail.`,name:"output_hidden_states"},{anchor:"transformers.OpenLlamaForCausalLM.forward.return_dict",description:`<strong>return_dict</strong> (<code>bool</code>, <em>optional</em>) &#x2014;
Whether or not to return a <a href="/docs/transformers/v4.30.0/en/main_classes/output#transformers.utils.ModelOutput">ModelOutput</a> instead of a plain tuple.</p>
<p>Args &#x2014;
labels (<code>torch.LongTensor</code> of shape <code>(batch_size, sequence_length)</code>, <em>optional</em>):
Labels for computing the masked language modeling loss. Indices should either be in <code>[0, ..., config.vocab_size]</code> or -100 (see <code>input_ids</code> docstring). Tokens with indices set to <code>-100</code> are ignored
(masked), the loss is only computed for the tokens with labels in <code>[0, ..., config.vocab_size]</code>.`,name:"return_dict"}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/models/open_llama/modeling_open_llama.py#L677",returnDescription:`
<p>A <a
  href="/docs/transformers/v4.30.0/en/main_classes/output#transformers.modeling_outputs.CausalLMOutputWithPast"
>transformers.modeling_outputs.CausalLMOutputWithPast</a> or a tuple of
<code>torch.FloatTensor</code> (if <code>return_dict=False</code> is passed or when <code>config.return_dict=False</code>) comprising various
elements depending on the configuration (<a
  href="/docs/transformers/v4.30.0/en/model_doc/open-llama#transformers.OpenLlamaConfig"
>OpenLlamaConfig</a>) and inputs.</p>
<ul>
<li>
<p><strong>loss</strong> (<code>torch.FloatTensor</code> of shape <code>(1,)</code>, <em>optional</em>, returned when <code>labels</code> is provided) \u2014 Language modeling loss (for next-token prediction).</p>
</li>
<li>
<p><strong>logits</strong> (<code>torch.FloatTensor</code> of shape <code>(batch_size, sequence_length, config.vocab_size)</code>) \u2014 Prediction scores of the language modeling head (scores for each vocabulary token before SoftMax).</p>
</li>
<li>
<p><strong>past_key_values</strong> (<code>tuple(tuple(torch.FloatTensor))</code>, <em>optional</em>, returned when <code>use_cache=True</code> is passed or when <code>config.use_cache=True</code>) \u2014 Tuple of <code>tuple(torch.FloatTensor)</code> of length <code>config.n_layers</code>, with each tuple having 2 tensors of shape
<code>(batch_size, num_heads, sequence_length, embed_size_per_head)</code>)</p>
<p>Contains pre-computed hidden-states (key and values in the self-attention blocks) that can be used (see
<code>past_key_values</code> input) to speed up sequential decoding.</p>
</li>
<li>
<p><strong>hidden_states</strong> (<code>tuple(torch.FloatTensor)</code>, <em>optional</em>, returned when <code>output_hidden_states=True</code> is passed or when <code>config.output_hidden_states=True</code>) \u2014 Tuple of <code>torch.FloatTensor</code> (one for the output of the embeddings, if the model has an embedding layer, +
one for the output of each layer) of shape <code>(batch_size, sequence_length, hidden_size)</code>.</p>
<p>Hidden-states of the model at the output of each layer plus the optional initial embedding outputs.</p>
</li>
<li>
<p><strong>attentions</strong> (<code>tuple(torch.FloatTensor)</code>, <em>optional</em>, returned when <code>output_attentions=True</code> is passed or when <code>config.output_attentions=True</code>) \u2014 Tuple of <code>torch.FloatTensor</code> (one for each layer) of shape <code>(batch_size, num_heads, sequence_length, sequence_length)</code>.</p>
<p>Attentions weights after the attention softmax, used to compute the weighted average in the self-attention
heads.</p>
</li>
</ul>
`,returnType:`
<p><a
  href="/docs/transformers/v4.30.0/en/main_classes/output#transformers.modeling_outputs.CausalLMOutputWithPast"
>transformers.modeling_outputs.CausalLMOutputWithPast</a> or <code>tuple(torch.FloatTensor)</code></p>
`}}),ae=new Jn({props:{$$slots:{default:[Aa]},$$scope:{ctx:x}}}),se=new za({props:{anchor:"transformers.OpenLlamaForCausalLM.forward.example",$$slots:{default:[Ja]},$$scope:{ctx:x}}}),Ce=new oo({}),ze=new qe({props:{name:"class transformers.OpenLlamaForSequenceClassification",anchor:"transformers.OpenLlamaForSequenceClassification",parameters:[{name:"config",val:""}],parametersDescription:[{anchor:"transformers.OpenLlamaForSequenceClassification.config",description:`<strong>config</strong> (<a href="/docs/transformers/v4.30.0/en/model_doc/open-llama#transformers.OpenLlamaConfig">OpenLlamaConfig</a>) &#x2014;
Model configuration class with all the parameters of the model. Initializing with a config file does not
load the weights associated with the model, only the configuration. Check out the
<a href="/docs/transformers/v4.30.0/en/main_classes/model#transformers.PreTrainedModel.from_pretrained">from_pretrained()</a> method to load the model weights.`,name:"config"}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/models/open_llama/modeling_open_llama.py#L822"}}),Se=new qe({props:{name:"forward",anchor:"transformers.OpenLlamaForSequenceClassification.forward",parameters:[{name:"input_ids",val:": LongTensor = None"},{name:"attention_mask",val:": typing.Optional[torch.Tensor] = None"},{name:"position_ids",val:": typing.Optional[torch.LongTensor] = None"},{name:"past_key_values",val:": typing.Optional[typing.List[torch.FloatTensor]] = None"},{name:"inputs_embeds",val:": typing.Optional[torch.FloatTensor] = None"},{name:"labels",val:": typing.Optional[torch.LongTensor] = None"},{name:"use_cache",val:": typing.Optional[bool] = None"},{name:"output_attentions",val:": typing.Optional[bool] = None"},{name:"output_hidden_states",val:": typing.Optional[bool] = None"},{name:"return_dict",val:": typing.Optional[bool] = None"}],parametersDescription:[{anchor:"transformers.OpenLlamaForSequenceClassification.forward.input_ids",description:`<strong>input_ids</strong> (<code>torch.LongTensor</code> of shape <code>(batch_size, sequence_length)</code>) &#x2014;
Indices of input sequence tokens in the vocabulary. Padding will be ignored by default should you provide
it.</p>
<p>Indices can be obtained using <a href="/docs/transformers/v4.30.0/en/model_doc/auto#transformers.AutoTokenizer">AutoTokenizer</a>. See <a href="/docs/transformers/v4.30.0/en/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode">PreTrainedTokenizer.encode()</a> and
<a href="/docs/transformers/v4.30.0/en/model_doc/speecht5#transformers.SpeechT5Tokenizer.__call__">PreTrainedTokenizer.<strong>call</strong>()</a> for details.</p>
<p><a href="../glossary#input-ids">What are input IDs?</a>`,name:"input_ids"},{anchor:"transformers.OpenLlamaForSequenceClassification.forward.attention_mask",description:`<strong>attention_mask</strong> (<code>torch.Tensor</code> of shape <code>(batch_size, sequence_length)</code>, <em>optional</em>) &#x2014;
Mask to avoid performing attention on padding token indices. Mask values selected in <code>[0, 1]</code>:</p>
<ul>
<li>1 for tokens that are <strong>not masked</strong>,</li>
<li>0 for tokens that are <strong>masked</strong>.</li>
</ul>
<p><a href="../glossary#attention-mask">What are attention masks?</a></p>
<p>Indices can be obtained using <a href="/docs/transformers/v4.30.0/en/model_doc/auto#transformers.AutoTokenizer">AutoTokenizer</a>. See <a href="/docs/transformers/v4.30.0/en/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode">PreTrainedTokenizer.encode()</a> and
<a href="/docs/transformers/v4.30.0/en/model_doc/speecht5#transformers.SpeechT5Tokenizer.__call__">PreTrainedTokenizer.<strong>call</strong>()</a> for details.</p>
<p>If <code>past_key_values</code> is used, optionally only the last <code>decoder_input_ids</code> have to be input (see
<code>past_key_values</code>).</p>
<p>If you want to change padding behavior, you should read <code>modeling_opt._prepare_decoder_attention_mask</code>
and modify to your needs. See diagram 1 in <a href="https://arxiv.org/abs/1910.13461" rel="nofollow">the paper</a> for more
information on the default strategy.</p>
<ul>
<li>1 indicates the head is <strong>not masked</strong>,</li>
<li>0 indicates the head is <strong>masked</strong>.</li>
</ul>`,name:"attention_mask"},{anchor:"transformers.OpenLlamaForSequenceClassification.forward.position_ids",description:`<strong>position_ids</strong> (<code>torch.LongTensor</code> of shape <code>(batch_size, sequence_length)</code>, <em>optional</em>) &#x2014;
Indices of positions of each input sequence tokens in the position embeddings. Selected in the range <code>[0, config.n_positions - 1]</code>.</p>
<p><a href="../glossary#position-ids">What are position IDs?</a>`,name:"position_ids"},{anchor:"transformers.OpenLlamaForSequenceClassification.forward.past_key_values",description:`<strong>past_key_values</strong> (<code>tuple(tuple(torch.FloatTensor))</code>, <em>optional</em>, returned when <code>use_cache=True</code> is passed or when <code>config.use_cache=True</code>) &#x2014;
Tuple of <code>tuple(torch.FloatTensor)</code> of length <code>config.n_layers</code>, with each tuple having 2 tensors of shape
<code>(batch_size, num_heads, sequence_length, embed_size_per_head)</code>) and 2 additional tensors of shape
<code>(batch_size, num_heads, encoder_sequence_length, embed_size_per_head)</code>.</p>
<p>Contains pre-computed hidden-states (key and values in the self-attention blocks and in the cross-attention
blocks) that can be used (see <code>past_key_values</code> input) to speed up sequential decoding.</p>
<p>If <code>past_key_values</code> are used, the user can optionally input only the last <code>decoder_input_ids</code> (those that
don&#x2019;t have their past key value states given to this model) of shape <code>(batch_size, 1)</code> instead of all
<code>decoder_input_ids</code> of shape <code>(batch_size, sequence_length)</code>.`,name:"past_key_values"},{anchor:"transformers.OpenLlamaForSequenceClassification.forward.inputs_embeds",description:`<strong>inputs_embeds</strong> (<code>torch.FloatTensor</code> of shape <code>(batch_size, sequence_length, hidden_size)</code>, <em>optional</em>) &#x2014;
Optionally, instead of passing <code>input_ids</code> you can choose to directly pass an embedded representation. This
is useful if you want more control over how to convert <code>input_ids</code> indices into associated vectors than the
model&#x2019;s internal embedding lookup matrix.`,name:"inputs_embeds"},{anchor:"transformers.OpenLlamaForSequenceClassification.forward.use_cache",description:`<strong>use_cache</strong> (<code>bool</code>, <em>optional</em>) &#x2014;
If set to <code>True</code>, <code>past_key_values</code> key value states are returned and can be used to speed up decoding (see
<code>past_key_values</code>).`,name:"use_cache"},{anchor:"transformers.OpenLlamaForSequenceClassification.forward.output_attentions",description:`<strong>output_attentions</strong> (<code>bool</code>, <em>optional</em>) &#x2014;
Whether or not to return the attentions tensors of all attention layers. See <code>attentions</code> under returned
tensors for more detail.`,name:"output_attentions"},{anchor:"transformers.OpenLlamaForSequenceClassification.forward.output_hidden_states",description:`<strong>output_hidden_states</strong> (<code>bool</code>, <em>optional</em>) &#x2014;
Whether or not to return the hidden states of all layers. See <code>hidden_states</code> under returned tensors for
more detail.`,name:"output_hidden_states"},{anchor:"transformers.OpenLlamaForSequenceClassification.forward.return_dict",description:`<strong>return_dict</strong> (<code>bool</code>, <em>optional</em>) &#x2014;
Whether or not to return a <a href="/docs/transformers/v4.30.0/en/main_classes/output#transformers.utils.ModelOutput">ModelOutput</a> instead of a plain tuple.`,name:"return_dict"},{anchor:"transformers.OpenLlamaForSequenceClassification.forward.labels",description:`<strong>labels</strong> (<code>torch.LongTensor</code> of shape <code>(batch_size,)</code>, <em>optional</em>) &#x2014;
Labels for computing the sequence classification/regression loss. Indices should be in <code>[0, ..., config.num_labels - 1]</code>. If <code>config.num_labels == 1</code> a regression loss is computed (Mean-Square loss), If
<code>config.num_labels &gt; 1</code> a classification loss is computed (Cross-Entropy).`,name:"labels"}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/models/open_llama/modeling_open_llama.py#L840"}}),ie=new Jn({props:{$$slots:{default:[Na]},$$scope:{ctx:x}}}),{c(){d=n("meta"),v=h(),c=n("h1"),_=n("a"),b=n("span"),y(p.$$.fragment),u=h(),C=n("span"),Yo=s("Open-Llama"),Mo=h(),A=n("h2"),Y=n("a"),to=n("span"),y(pe.$$.fragment),Ho=h(),no=n("span"),Qo=s("Overview"),Co=h(),H=n("p"),Ko=s("The Open-Llama model was proposed in "),he=n("a"),et=s("Open-Llama project"),ot=s(" by community developer s-JoL."),zo=h(),We=n("p"),tt=s(`The model is mainly based on LLaMA with some modifications, incorporating memory-efficient attention from Xformers, stable embedding from Bloom, and shared input-output embedding from PLAM.
And the model is pre-trained on both Chinese and English, which gives it better performance on Chinese language tasks.`),Eo=h(),S=n("p"),nt=s("This model was contributed by "),me=n("a"),at=s("s-JoL"),st=s(`.
The original code can be found `),fe=n("a"),rt=s("Open-Llama"),it=s(`.
Checkpoint and usage can be found at `),ue=n("a"),lt=s("s-JoL/Open-Llama-V1"),dt=s("."),Fo=h(),J=n("h2"),Q=n("a"),ao=n("span"),y(ge.$$.fragment),ct=h(),so=n("span"),pt=s("OpenLlamaConfig"),xo=h(),E=n("div"),y(_e.$$.fragment),ht=h(),N=n("p"),mt=s("This is the configuration class to store the configuration of a "),Ue=n("a"),ft=s("OpenLlamaModel"),ut=s(`. It is used to instantiate an
Open-Llama model according to the specified arguments, defining the model architecture. Instantiating a
configuration with the defaults will yield a similar configuration to that of the
`),ve=n("a"),gt=s("s-JoL/Open-Llama-V1"),_t=s("."),vt=h(),V=n("p"),bt=s("Configuration objects inherit from "),Ae=n("a"),yt=s("PretrainedConfig"),wt=s(` and can be used to control the model outputs. Read the
documentation from `),Je=n("a"),Tt=s("PretrainedConfig"),kt=s(" for more information."),Lt=h(),y(K.$$.fragment),So=h(),j=n("h2"),ee=n("a"),ro=n("span"),y(be.$$.fragment),$t=h(),io=n("span"),Ot=s("OpenLlamaModel"),Po=h(),M=n("div"),y(ye.$$.fragment),Mt=h(),we=n("p"),Ct=s(`The bare Open-Llama Model outputting raw hidden-states without any specific head on top.
This model inherits from `),Ne=n("a"),zt=s("PreTrainedModel"),Et=s(`. Check the superclass documentation for the generic methods the
library implements for all its model (such as downloading or saving, resizing the input embeddings, pruning heads
etc.)`),Ft=h(),Te=n("p"),xt=s("This model is also a PyTorch "),ke=n("a"),St=s("torch.nn.Module"),Pt=s(` subclass.
Use it as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage
and behavior.`),It=h(),oe=n("p"),qt=s("Transformer decoder consisting of "),lo=n("em"),Wt=s("config.num_hidden_layers"),Ut=s(" layers. Each layer is a "),co=n("code"),At=s("OpenLlamaDecoderLayer"),Jt=h(),I=n("div"),y(Le.$$.fragment),Nt=h(),B=n("p"),Vt=s("The "),Ve=n("a"),jt=s("OpenLlamaModel"),Bt=s(" forward method, overrides the "),po=n("code"),Gt=s("__call__"),Zt=s(" special method."),Dt=h(),y(te.$$.fragment),Io=h(),G=n("h2"),ne=n("a"),ho=n("span"),y($e.$$.fragment),Rt=h(),mo=n("span"),Xt=s("OpenLlamaForCausalLM"),qo=h(),Z=n("div"),y(Oe.$$.fragment),Yt=h(),P=n("div"),y(Me.$$.fragment),Ht=h(),D=n("p"),Qt=s("The "),je=n("a"),Kt=s("OpenLlamaForCausalLM"),en=s(" forward method, overrides the "),fo=n("code"),on=s("__call__"),tn=s(" special method."),nn=h(),y(ae.$$.fragment),an=h(),y(se.$$.fragment),Wo=h(),R=n("h2"),re=n("a"),uo=n("span"),y(Ce.$$.fragment),sn=h(),go=n("span"),rn=s("OpenLlamaForSequenceClassification"),Uo=h(),O=n("div"),y(ze.$$.fragment),ln=h(),_o=n("p"),dn=s("The LLaMa Model transformer with a sequence classification head on top (linear layer)."),cn=h(),Be=n("p"),Ge=n("a"),pn=s("OpenLlamaForSequenceClassification"),hn=s(` uses the last token in order to do the classification, as other causal
models (e.g. GPT-2) do.`),mn=h(),F=n("p"),fn=s(`Since it does classification on the last token, it requires to know the position of the last token. If a
`),vo=n("code"),un=s("pad_token_id"),gn=s(` is defined in the configuration, it finds the last token that is not a padding token in each row. If
no `),bo=n("code"),_n=s("pad_token_id"),vn=s(` is defined, it simply takes the last value in each row of the batch. Since it cannot guess the
padding tokens when `),yo=n("code"),bn=s("inputs_embeds"),yn=s(" are passed instead of "),wo=n("code"),wn=s("input_ids"),Tn=s(`, it does the same (take the last value in
each row of the batch).`),kn=h(),Ee=n("p"),Ln=s("This model inherits from "),Ze=n("a"),$n=s("PreTrainedModel"),On=s(`. Check the superclass documentation for the generic methods the
library implements for all its model (such as downloading or saving, resizing the input embeddings, pruning heads
etc.)`),Mn=h(),Fe=n("p"),Cn=s("This model is also a PyTorch "),xe=n("a"),zn=s("torch.nn.Module"),En=s(` subclass.
Use it as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage
and behavior.`),Fn=h(),q=n("div"),y(Se.$$.fragment),xn=h(),X=n("p"),Sn=s("The "),De=n("a"),Pn=s("OpenLlamaForSequenceClassification"),In=s(" forward method, overrides the "),To=n("code"),qn=s("__call__"),Wn=s(" special method."),Un=h(),y(ie.$$.fragment),this.h()},l(o){const f=Ia('[data-svelte="svelte-1phssyn"]',document.head);d=a(f,"META",{name:!0,content:!0}),f.forEach(t),v=m(o),c=a(o,"H1",{class:!0});var Pe=i(c);_=a(Pe,"A",{id:!0,class:!0,href:!0});var ko=i(_);b=a(ko,"SPAN",{});var Lo=i(b);w(p.$$.fragment,Lo),Lo.forEach(t),ko.forEach(t),u=m(Pe),C=a(Pe,"SPAN",{});var $o=i(C);Yo=r($o,"Open-Llama"),$o.forEach(t),Pe.forEach(t),Mo=m(o),A=a(o,"H2",{class:!0});var Ie=i(A);Y=a(Ie,"A",{id:!0,class:!0,href:!0});var Nn=i(Y);to=a(Nn,"SPAN",{});var Vn=i(to);w(pe.$$.fragment,Vn),Vn.forEach(t),Nn.forEach(t),Ho=m(Ie),no=a(Ie,"SPAN",{});var jn=i(no);Qo=r(jn,"Overview"),jn.forEach(t),Ie.forEach(t),Co=m(o),H=a(o,"P",{});var Jo=i(H);Ko=r(Jo,"The Open-Llama model was proposed in "),he=a(Jo,"A",{href:!0,rel:!0});var Bn=i(he);et=r(Bn,"Open-Llama project"),Bn.forEach(t),ot=r(Jo," by community developer s-JoL."),Jo.forEach(t),zo=m(o),We=a(o,"P",{});var Gn=i(We);tt=r(Gn,`The model is mainly based on LLaMA with some modifications, incorporating memory-efficient attention from Xformers, stable embedding from Bloom, and shared input-output embedding from PLAM.
And the model is pre-trained on both Chinese and English, which gives it better performance on Chinese language tasks.`),Gn.forEach(t),Eo=m(o),S=a(o,"P",{});var le=i(S);nt=r(le,"This model was contributed by "),me=a(le,"A",{href:!0,rel:!0});var Zn=i(me);at=r(Zn,"s-JoL"),Zn.forEach(t),st=r(le,`.
The original code can be found `),fe=a(le,"A",{href:!0,rel:!0});var Dn=i(fe);rt=r(Dn,"Open-Llama"),Dn.forEach(t),it=r(le,`.
Checkpoint and usage can be found at `),ue=a(le,"A",{href:!0,rel:!0});var Rn=i(ue);lt=r(Rn,"s-JoL/Open-Llama-V1"),Rn.forEach(t),dt=r(le,"."),le.forEach(t),Fo=m(o),J=a(o,"H2",{class:!0});var No=i(J);Q=a(No,"A",{id:!0,class:!0,href:!0});var Xn=i(Q);ao=a(Xn,"SPAN",{});var Yn=i(ao);w(ge.$$.fragment,Yn),Yn.forEach(t),Xn.forEach(t),ct=m(No),so=a(No,"SPAN",{});var Hn=i(so);pt=r(Hn,"OpenLlamaConfig"),Hn.forEach(t),No.forEach(t),xo=m(o),E=a(o,"DIV",{class:!0});var de=i(E);w(_e.$$.fragment,de),ht=m(de),N=a(de,"P",{});var Re=i(N);mt=r(Re,"This is the configuration class to store the configuration of a "),Ue=a(Re,"A",{href:!0});var Qn=i(Ue);ft=r(Qn,"OpenLlamaModel"),Qn.forEach(t),ut=r(Re,`. It is used to instantiate an
Open-Llama model according to the specified arguments, defining the model architecture. Instantiating a
configuration with the defaults will yield a similar configuration to that of the
`),ve=a(Re,"A",{href:!0,rel:!0});var Kn=i(ve);gt=r(Kn,"s-JoL/Open-Llama-V1"),Kn.forEach(t),_t=r(Re,"."),Re.forEach(t),vt=m(de),V=a(de,"P",{});var Xe=i(V);bt=r(Xe,"Configuration objects inherit from "),Ae=a(Xe,"A",{href:!0});var ea=i(Ae);yt=r(ea,"PretrainedConfig"),ea.forEach(t),wt=r(Xe,` and can be used to control the model outputs. Read the
documentation from `),Je=a(Xe,"A",{href:!0});var oa=i(Je);Tt=r(oa,"PretrainedConfig"),oa.forEach(t),kt=r(Xe," for more information."),Xe.forEach(t),Lt=m(de),w(K.$$.fragment,de),de.forEach(t),So=m(o),j=a(o,"H2",{class:!0});var Vo=i(j);ee=a(Vo,"A",{id:!0,class:!0,href:!0});var ta=i(ee);ro=a(ta,"SPAN",{});var na=i(ro);w(be.$$.fragment,na),na.forEach(t),ta.forEach(t),$t=m(Vo),io=a(Vo,"SPAN",{});var aa=i(io);Ot=r(aa,"OpenLlamaModel"),aa.forEach(t),Vo.forEach(t),Po=m(o),M=a(o,"DIV",{class:!0});var W=i(M);w(ye.$$.fragment,W),Mt=m(W),we=a(W,"P",{});var jo=i(we);Ct=r(jo,`The bare Open-Llama Model outputting raw hidden-states without any specific head on top.
This model inherits from `),Ne=a(jo,"A",{href:!0});var sa=i(Ne);zt=r(sa,"PreTrainedModel"),sa.forEach(t),Et=r(jo,`. Check the superclass documentation for the generic methods the
library implements for all its model (such as downloading or saving, resizing the input embeddings, pruning heads
etc.)`),jo.forEach(t),Ft=m(W),Te=a(W,"P",{});var Bo=i(Te);xt=r(Bo,"This model is also a PyTorch "),ke=a(Bo,"A",{href:!0,rel:!0});var ra=i(ke);St=r(ra,"torch.nn.Module"),ra.forEach(t),Pt=r(Bo,` subclass.
Use it as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage
and behavior.`),Bo.forEach(t),It=m(W),oe=a(W,"P",{});var Oo=i(oe);qt=r(Oo,"Transformer decoder consisting of "),lo=a(Oo,"EM",{});var ia=i(lo);Wt=r(ia,"config.num_hidden_layers"),ia.forEach(t),Ut=r(Oo," layers. Each layer is a "),co=a(Oo,"CODE",{});var la=i(co);At=r(la,"OpenLlamaDecoderLayer"),la.forEach(t),Oo.forEach(t),Jt=m(W),I=a(W,"DIV",{class:!0});var Ye=i(I);w(Le.$$.fragment,Ye),Nt=m(Ye),B=a(Ye,"P",{});var He=i(B);Vt=r(He,"The "),Ve=a(He,"A",{href:!0});var da=i(Ve);jt=r(da,"OpenLlamaModel"),da.forEach(t),Bt=r(He," forward method, overrides the "),po=a(He,"CODE",{});var ca=i(po);Gt=r(ca,"__call__"),ca.forEach(t),Zt=r(He," special method."),He.forEach(t),Dt=m(Ye),w(te.$$.fragment,Ye),Ye.forEach(t),W.forEach(t),Io=m(o),G=a(o,"H2",{class:!0});var Go=i(G);ne=a(Go,"A",{id:!0,class:!0,href:!0});var pa=i(ne);ho=a(pa,"SPAN",{});var ha=i(ho);w($e.$$.fragment,ha),ha.forEach(t),pa.forEach(t),Rt=m(Go),mo=a(Go,"SPAN",{});var ma=i(mo);Xt=r(ma,"OpenLlamaForCausalLM"),ma.forEach(t),Go.forEach(t),qo=m(o),Z=a(o,"DIV",{class:!0});var Zo=i(Z);w(Oe.$$.fragment,Zo),Yt=m(Zo),P=a(Zo,"DIV",{class:!0});var ce=i(P);w(Me.$$.fragment,ce),Ht=m(ce),D=a(ce,"P",{});var Qe=i(D);Qt=r(Qe,"The "),je=a(Qe,"A",{href:!0});var fa=i(je);Kt=r(fa,"OpenLlamaForCausalLM"),fa.forEach(t),en=r(Qe," forward method, overrides the "),fo=a(Qe,"CODE",{});var ua=i(fo);on=r(ua,"__call__"),ua.forEach(t),tn=r(Qe," special method."),Qe.forEach(t),nn=m(ce),w(ae.$$.fragment,ce),an=m(ce),w(se.$$.fragment,ce),ce.forEach(t),Zo.forEach(t),Wo=m(o),R=a(o,"H2",{class:!0});var Do=i(R);re=a(Do,"A",{id:!0,class:!0,href:!0});var ga=i(re);uo=a(ga,"SPAN",{});var _a=i(uo);w(Ce.$$.fragment,_a),_a.forEach(t),ga.forEach(t),sn=m(Do),go=a(Do,"SPAN",{});var va=i(go);rn=r(va,"OpenLlamaForSequenceClassification"),va.forEach(t),Do.forEach(t),Uo=m(o),O=a(o,"DIV",{class:!0});var z=i(O);w(ze.$$.fragment,z),ln=m(z),_o=a(z,"P",{});var ba=i(_o);dn=r(ba,"The LLaMa Model transformer with a sequence classification head on top (linear layer)."),ba.forEach(t),cn=m(z),Be=a(z,"P",{});var An=i(Be);Ge=a(An,"A",{href:!0});var ya=i(Ge);pn=r(ya,"OpenLlamaForSequenceClassification"),ya.forEach(t),hn=r(An,` uses the last token in order to do the classification, as other causal
models (e.g. GPT-2) do.`),An.forEach(t),mn=m(z),F=a(z,"P",{});var U=i(F);fn=r(U,`Since it does classification on the last token, it requires to know the position of the last token. If a
`),vo=a(U,"CODE",{});var wa=i(vo);un=r(wa,"pad_token_id"),wa.forEach(t),gn=r(U,` is defined in the configuration, it finds the last token that is not a padding token in each row. If
no `),bo=a(U,"CODE",{});var Ta=i(bo);_n=r(Ta,"pad_token_id"),Ta.forEach(t),vn=r(U,` is defined, it simply takes the last value in each row of the batch. Since it cannot guess the
padding tokens when `),yo=a(U,"CODE",{});var ka=i(yo);bn=r(ka,"inputs_embeds"),ka.forEach(t),yn=r(U," are passed instead of "),wo=a(U,"CODE",{});var La=i(wo);wn=r(La,"input_ids"),La.forEach(t),Tn=r(U,`, it does the same (take the last value in
each row of the batch).`),U.forEach(t),kn=m(z),Ee=a(z,"P",{});var Ro=i(Ee);Ln=r(Ro,"This model inherits from "),Ze=a(Ro,"A",{href:!0});var $a=i(Ze);$n=r($a,"PreTrainedModel"),$a.forEach(t),On=r(Ro,`. Check the superclass documentation for the generic methods the
library implements for all its model (such as downloading or saving, resizing the input embeddings, pruning heads
etc.)`),Ro.forEach(t),Mn=m(z),Fe=a(z,"P",{});var Xo=i(Fe);Cn=r(Xo,"This model is also a PyTorch "),xe=a(Xo,"A",{href:!0,rel:!0});var Oa=i(xe);zn=r(Oa,"torch.nn.Module"),Oa.forEach(t),En=r(Xo,` subclass.
Use it as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage
and behavior.`),Xo.forEach(t),Fn=m(z),q=a(z,"DIV",{class:!0});var Ke=i(q);w(Se.$$.fragment,Ke),xn=m(Ke),X=a(Ke,"P",{});var eo=i(X);Sn=r(eo,"The "),De=a(eo,"A",{href:!0});var Ma=i(De);Pn=r(Ma,"OpenLlamaForSequenceClassification"),Ma.forEach(t),In=r(eo," forward method, overrides the "),To=a(eo,"CODE",{});var Ca=i(To);qn=r(Ca,"__call__"),Ca.forEach(t),Wn=r(eo," special method."),eo.forEach(t),Un=m(Ke),w(ie.$$.fragment,Ke),Ke.forEach(t),z.forEach(t),this.h()},h(){l(d,"name","hf:doc:metadata"),l(d,"content",JSON.stringify(ja)),l(_,"id","openllama"),l(_,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),l(_,"href","#openllama"),l(c,"class","relative group"),l(Y,"id","overview"),l(Y,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),l(Y,"href","#overview"),l(A,"class","relative group"),l(he,"href","https://github.com/s-JoL/Open-Llama"),l(he,"rel","nofollow"),l(me,"href","https://huggingface.co/s-JoL"),l(me,"rel","nofollow"),l(fe,"href","https://github.com/s-JoL/Open-Llama"),l(fe,"rel","nofollow"),l(ue,"href","https://huggingface.co/s-JoL/Open-Llama-V1"),l(ue,"rel","nofollow"),l(Q,"id","transformers.OpenLlamaConfig"),l(Q,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),l(Q,"href","#transformers.OpenLlamaConfig"),l(J,"class","relative group"),l(Ue,"href","/docs/transformers/v4.30.0/en/model_doc/open-llama#transformers.OpenLlamaModel"),l(ve,"href","https://huggingface.co/s-JoL/Open-Llama-V1"),l(ve,"rel","nofollow"),l(Ae,"href","/docs/transformers/v4.30.0/en/main_classes/configuration#transformers.PretrainedConfig"),l(Je,"href","/docs/transformers/v4.30.0/en/main_classes/configuration#transformers.PretrainedConfig"),l(E,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),l(ee,"id","transformers.OpenLlamaModel"),l(ee,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),l(ee,"href","#transformers.OpenLlamaModel"),l(j,"class","relative group"),l(Ne,"href","/docs/transformers/v4.30.0/en/main_classes/model#transformers.PreTrainedModel"),l(ke,"href","https://pytorch.org/docs/stable/nn.html#torch.nn.Module"),l(ke,"rel","nofollow"),l(Ve,"href","/docs/transformers/v4.30.0/en/model_doc/open-llama#transformers.OpenLlamaModel"),l(I,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),l(M,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),l(ne,"id","transformers.OpenLlamaForCausalLM"),l(ne,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),l(ne,"href","#transformers.OpenLlamaForCausalLM"),l(G,"class","relative group"),l(je,"href","/docs/transformers/v4.30.0/en/model_doc/open-llama#transformers.OpenLlamaForCausalLM"),l(P,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),l(Z,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),l(re,"id","transformers.OpenLlamaForSequenceClassification"),l(re,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),l(re,"href","#transformers.OpenLlamaForSequenceClassification"),l(R,"class","relative group"),l(Ge,"href","/docs/transformers/v4.30.0/en/model_doc/open-llama#transformers.OpenLlamaForSequenceClassification"),l(Ze,"href","/docs/transformers/v4.30.0/en/main_classes/model#transformers.PreTrainedModel"),l(xe,"href","https://pytorch.org/docs/stable/nn.html#torch.nn.Module"),l(xe,"rel","nofollow"),l(De,"href","/docs/transformers/v4.30.0/en/model_doc/open-llama#transformers.OpenLlamaForSequenceClassification"),l(q,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),l(O,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8")},m(o,f){e(document.head,d),g(o,v,f),g(o,c,f),e(c,_),e(_,b),T(p,b,null),e(c,u),e(c,C),e(C,Yo),g(o,Mo,f),g(o,A,f),e(A,Y),e(Y,to),T(pe,to,null),e(A,Ho),e(A,no),e(no,Qo),g(o,Co,f),g(o,H,f),e(H,Ko),e(H,he),e(he,et),e(H,ot),g(o,zo,f),g(o,We,f),e(We,tt),g(o,Eo,f),g(o,S,f),e(S,nt),e(S,me),e(me,at),e(S,st),e(S,fe),e(fe,rt),e(S,it),e(S,ue),e(ue,lt),e(S,dt),g(o,Fo,f),g(o,J,f),e(J,Q),e(Q,ao),T(ge,ao,null),e(J,ct),e(J,so),e(so,pt),g(o,xo,f),g(o,E,f),T(_e,E,null),e(E,ht),e(E,N),e(N,mt),e(N,Ue),e(Ue,ft),e(N,ut),e(N,ve),e(ve,gt),e(N,_t),e(E,vt),e(E,V),e(V,bt),e(V,Ae),e(Ae,yt),e(V,wt),e(V,Je),e(Je,Tt),e(V,kt),e(E,Lt),T(K,E,null),g(o,So,f),g(o,j,f),e(j,ee),e(ee,ro),T(be,ro,null),e(j,$t),e(j,io),e(io,Ot),g(o,Po,f),g(o,M,f),T(ye,M,null),e(M,Mt),e(M,we),e(we,Ct),e(we,Ne),e(Ne,zt),e(we,Et),e(M,Ft),e(M,Te),e(Te,xt),e(Te,ke),e(ke,St),e(Te,Pt),e(M,It),e(M,oe),e(oe,qt),e(oe,lo),e(lo,Wt),e(oe,Ut),e(oe,co),e(co,At),e(M,Jt),e(M,I),T(Le,I,null),e(I,Nt),e(I,B),e(B,Vt),e(B,Ve),e(Ve,jt),e(B,Bt),e(B,po),e(po,Gt),e(B,Zt),e(I,Dt),T(te,I,null),g(o,Io,f),g(o,G,f),e(G,ne),e(ne,ho),T($e,ho,null),e(G,Rt),e(G,mo),e(mo,Xt),g(o,qo,f),g(o,Z,f),T(Oe,Z,null),e(Z,Yt),e(Z,P),T(Me,P,null),e(P,Ht),e(P,D),e(D,Qt),e(D,je),e(je,Kt),e(D,en),e(D,fo),e(fo,on),e(D,tn),e(P,nn),T(ae,P,null),e(P,an),T(se,P,null),g(o,Wo,f),g(o,R,f),e(R,re),e(re,uo),T(Ce,uo,null),e(R,sn),e(R,go),e(go,rn),g(o,Uo,f),g(o,O,f),T(ze,O,null),e(O,ln),e(O,_o),e(_o,dn),e(O,cn),e(O,Be),e(Be,Ge),e(Ge,pn),e(Be,hn),e(O,mn),e(O,F),e(F,fn),e(F,vo),e(vo,un),e(F,gn),e(F,bo),e(bo,_n),e(F,vn),e(F,yo),e(yo,bn),e(F,yn),e(F,wo),e(wo,wn),e(F,Tn),e(O,kn),e(O,Ee),e(Ee,Ln),e(Ee,Ze),e(Ze,$n),e(Ee,On),e(O,Mn),e(O,Fe),e(Fe,Cn),e(Fe,xe),e(xe,zn),e(Fe,En),e(O,Fn),e(O,q),T(Se,q,null),e(q,xn),e(q,X),e(X,Sn),e(X,De),e(De,Pn),e(X,In),e(X,To),e(To,qn),e(X,Wn),e(q,Un),T(ie,q,null),Ao=!0},p(o,[f]){const Pe={};f&2&&(Pe.$$scope={dirty:f,ctx:o}),K.$set(Pe);const ko={};f&2&&(ko.$$scope={dirty:f,ctx:o}),te.$set(ko);const Lo={};f&2&&(Lo.$$scope={dirty:f,ctx:o}),ae.$set(Lo);const $o={};f&2&&($o.$$scope={dirty:f,ctx:o}),se.$set($o);const Ie={};f&2&&(Ie.$$scope={dirty:f,ctx:o}),ie.$set(Ie)},i(o){Ao||(k(p.$$.fragment,o),k(pe.$$.fragment,o),k(ge.$$.fragment,o),k(_e.$$.fragment,o),k(K.$$.fragment,o),k(be.$$.fragment,o),k(ye.$$.fragment,o),k(Le.$$.fragment,o),k(te.$$.fragment,o),k($e.$$.fragment,o),k(Oe.$$.fragment,o),k(Me.$$.fragment,o),k(ae.$$.fragment,o),k(se.$$.fragment,o),k(Ce.$$.fragment,o),k(ze.$$.fragment,o),k(Se.$$.fragment,o),k(ie.$$.fragment,o),Ao=!0)},o(o){L(p.$$.fragment,o),L(pe.$$.fragment,o),L(ge.$$.fragment,o),L(_e.$$.fragment,o),L(K.$$.fragment,o),L(be.$$.fragment,o),L(ye.$$.fragment,o),L(Le.$$.fragment,o),L(te.$$.fragment,o),L($e.$$.fragment,o),L(Oe.$$.fragment,o),L(Me.$$.fragment,o),L(ae.$$.fragment,o),L(se.$$.fragment,o),L(Ce.$$.fragment,o),L(ze.$$.fragment,o),L(Se.$$.fragment,o),L(ie.$$.fragment,o),Ao=!1},d(o){t(d),o&&t(v),o&&t(c),$(p),o&&t(Mo),o&&t(A),$(pe),o&&t(Co),o&&t(H),o&&t(zo),o&&t(We),o&&t(Eo),o&&t(S),o&&t(Fo),o&&t(J),$(ge),o&&t(xo),o&&t(E),$(_e),$(K),o&&t(So),o&&t(j),$(be),o&&t(Po),o&&t(M),$(ye),$(Le),$(te),o&&t(Io),o&&t(G),$($e),o&&t(qo),o&&t(Z),$(Oe),$(Me),$(ae),$(se),o&&t(Wo),o&&t(R),$(Ce),o&&t(Uo),o&&t(O),$(ze),$(Se),$(ie)}}}const ja={local:"openllama",sections:[{local:"overview",title:"Overview"},{local:"transformers.OpenLlamaConfig",title:"OpenLlamaConfig"},{local:"transformers.OpenLlamaModel",title:"OpenLlamaModel"},{local:"transformers.OpenLlamaForCausalLM",title:"OpenLlamaForCausalLM"},{local:"transformers.OpenLlamaForSequenceClassification",title:"OpenLlamaForSequenceClassification"}],title:"Open-Llama"};function Ba(x){return qa(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ha extends xa{constructor(d){super();Sa(this,d,Ba,Va,Pa,{})}}export{Ha as default,ja as metadata};
