import{s as Bt,f as Zt,o as St,n as ut}from"../chunks/scheduler.9bc65507.js";import{S as Et,i as Ht,g as i,s as a,r as f,A as qt,h as l,f as o,c as s,j as N,u as h,x as m,k as J,y as c,a as n,v as g,d as u,t as v,w as _}from"../chunks/index.707bf1b6.js";import{T as Rt}from"../chunks/Tip.c2ecdbf4.js";import{D as we}from"../chunks/Docstring.17db21ae.js";import{C as Ke}from"../chunks/CodeBlock.54a9f38d.js";import{E as Nt}from"../chunks/ExampleCodeBlock.4f515aa9.js";import{P as At}from"../chunks/PipelineTag.44585822.js";import{H as B}from"../chunks/Heading.342b1fa6.js";function Qt(F){let d,w="Example:",b,p,T;return p=new Ke({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMExsYXZhRm9yQ29uZGl0aW9uYWxHZW5lcmF0aW9uJTJDJTIwTGxhdmFDb25maWclMkMlMjBDTElQVmlzaW9uQ29uZmlnJTJDJTIwTGxhbWFDb25maWclMEElMEElMjMlMjBJbml0aWFsaXppbmclMjBhJTIwQ0xJUC12aXNpb24lMjBjb25maWclMEF2aXNpb25fY29uZmlnJTIwJTNEJTIwQ0xJUFZpc2lvbkNvbmZpZygpJTBBJTBBJTIzJTIwSW5pdGlhbGl6aW5nJTIwYSUyMExsYW1hJTIwY29uZmlnJTBBdGV4dF9jb25maWclMjAlM0QlMjBMbGFtYUNvbmZpZygpJTBBJTBBJTIzJTIwSW5pdGlhbGl6aW5nJTIwYSUyMExsYXZhJTIwbGxhdmEtMS41LTdiJTIwc3R5bGUlMjBjb25maWd1cmF0aW9uJTBBY29uZmlndXJhdGlvbiUyMCUzRCUyMExsYXZhQ29uZmlnKHZpc2lvbl9jb25maWclMkMlMjB0ZXh0X2NvbmZpZyklMEElMEElMjMlMjBJbml0aWFsaXppbmclMjBhJTIwbW9kZWwlMjBmcm9tJTIwdGhlJTIwbGxhdmEtMS41LTdiJTIwc3R5bGUlMjBjb25maWd1cmF0aW9uJTBBbW9kZWwlMjAlM0QlMjBMbGF2YUZvckNvbmRpdGlvbmFsR2VuZXJhdGlvbihjb25maWd1cmF0aW9uKSUwQSUwQSUyMyUyMEFjY2Vzc2luZyUyMHRoZSUyMG1vZGVsJTIwY29uZmlndXJhdGlvbiUwQWNvbmZpZ3VyYXRpb24lMjAlM0QlMjBtb2RlbC5jb25maWc=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> LlavaForConditionalGeneration, LlavaConfig, CLIPVisionConfig, LlamaConfig

<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># Initializing a CLIP-vision config</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>vision_config = CLIPVisionConfig()

<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># Initializing a Llama config</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>text_config = LlamaConfig()

<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># Initializing a Llava llava-1.5-7b style configuration</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>configuration = LlavaConfig(vision_config, text_config)

<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># Initializing a model from the llava-1.5-7b style configuration</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>model = LlavaForConditionalGeneration(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`,wrap:!1}}),{c(){d=i("p"),d.textContent=w,b=a(),f(p.$$.fragment)},l(r){d=l(r,"P",{"data-svelte-h":!0}),m(d)!=="svelte-11lpom8"&&(d.textContent=w),b=s(r),h(p.$$.fragment,r)},m(r,y){n(r,d,y),n(r,b,y),g(p,r,y),T=!0},p:ut,i(r){T||(u(p.$$.fragment,r),T=!0)},o(r){v(p.$$.fragment,r),T=!1},d(r){r&&(o(d),o(b)),_(p,r)}}}function Xt(F){let d,w=`Although the recipe for forward pass needs to be defined within this function, one should call the <code>Module</code>
instance afterwards instead of this since the former takes care of running the pre and post processing steps while
the latter silently ignores them.`;return{c(){d=i("p"),d.innerHTML=w},l(b){d=l(b,"P",{"data-svelte-h":!0}),m(d)!=="svelte-fincs2"&&(d.innerHTML=w)},m(b,p){n(b,d,p)},p:ut,d(b){b&&o(d)}}}function Yt(F){let d,w="Example:",b,p,T;return p=new Ke({props:{code:"ZnJvbSUyMFBJTCUyMGltcG9ydCUyMEltYWdlJTBBaW1wb3J0JTIwcmVxdWVzdHMlMEFmcm9tJTIwdHJhbnNmb3JtZXJzJTIwaW1wb3J0JTIwQXV0b1Byb2Nlc3NvciUyQyUyMExsYXZhRm9yQ29uZGl0aW9uYWxHZW5lcmF0aW9uJTBBJTBBbW9kZWwlMjAlM0QlMjBMbGF2YUZvckNvbmRpdGlvbmFsR2VuZXJhdGlvbi5mcm9tX3ByZXRyYWluZWQoJTIybGxhdmEtaGYlMkZsbGF2YS0xLjUtN2ItaGYlMjIpJTBBcHJvY2Vzc29yJTIwJTNEJTIwQXV0b1Byb2Nlc3Nvci5mcm9tX3ByZXRyYWluZWQoJTIybGxhdmEtaGYlMkZsbGF2YS0xLjUtN2ItaGYlMjIpJTBBJTBBcHJvbXB0JTIwJTNEJTIwJTIyJTNDaW1hZ2UlM0UlNUNuVVNFUiUzQSUyMFdoYXQncyUyMHRoZSUyMGNvbnRlbnQlMjBvZiUyMHRoZSUyMGltYWdlJTNGJTVDbkFTU0lTVEFOVCUzQSUyMiUwQXVybCUyMCUzRCUyMCUyMmh0dHBzJTNBJTJGJTJGd3d3LmlsYW5rZWxtYW4ub3JnJTJGc3RvcHNpZ25zJTJGYXVzdHJhbGlhLmpwZyUyMiUwQWltYWdlJTIwJTNEJTIwSW1hZ2Uub3BlbihyZXF1ZXN0cy5nZXQodXJsJTJDJTIwc3RyZWFtJTNEVHJ1ZSkucmF3KSUwQSUwQWlucHV0cyUyMCUzRCUyMHByb2Nlc3Nvcih0ZXh0JTNEdGV4dCUyQyUyMGltYWdlcyUzRGltYWdlJTJDJTIwcmV0dXJuX3RlbnNvcnMlM0QlMjJwdCUyMiklMEElMEElMjMlMjBHZW5lcmF0ZSUwQWdlbmVyYXRlX2lkcyUyMCUzRCUyMG1vZGVsLmdlbmVyYXRlKCoqaW5wdXRzJTJDJTIwbWF4X2xlbmd0aCUzRDMwKSUwQXRva2VuaXplci5iYXRjaF9kZWNvZGUoZ2VuZXJhdGVfaWRzJTJDJTIwc2tpcF9zcGVjaWFsX3Rva2VucyUzRFRydWUlMkMlMjBjbGVhbl91cF90b2tlbml6YXRpb25fc3BhY2VzJTNERmFsc2UpJTVCMCU1RA==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> PIL <span class="hljs-keyword">import</span> Image
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">import</span> requests
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoProcessor, LlavaForConditionalGeneration

<span class="hljs-meta">&gt;&gt;&gt; </span>model = LlavaForConditionalGeneration.from_pretrained(<span class="hljs-string">&quot;llava-hf/llava-1.5-7b-hf&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>processor = AutoProcessor.from_pretrained(<span class="hljs-string">&quot;llava-hf/llava-1.5-7b-hf&quot;</span>)

<span class="hljs-meta">&gt;&gt;&gt; </span>prompt = <span class="hljs-string">&quot;&lt;image&gt;\\nUSER: What&#x27;s the content of the image?\\nASSISTANT:&quot;</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>url = <span class="hljs-string">&quot;https://www.ilankelman.org/stopsigns/australia.jpg&quot;</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>image = Image.<span class="hljs-built_in">open</span>(requests.get(url, stream=<span class="hljs-literal">True</span>).raw)

<span class="hljs-meta">&gt;&gt;&gt; </span>inputs = processor(text=text, images=image, 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, 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;There seems to be a stop sign&quot;</span>`,wrap:!1}}),{c(){d=i("p"),d.textContent=w,b=a(),f(p.$$.fragment)},l(r){d=l(r,"P",{"data-svelte-h":!0}),m(d)!=="svelte-11lpom8"&&(d.textContent=w),b=s(r),h(p.$$.fragment,r)},m(r,y){n(r,d,y),n(r,b,y),g(p,r,y),T=!0},p:ut,i(r){T||(u(p.$$.fragment,r),T=!0)},o(r){v(p.$$.fragment,r),T=!1},d(r){r&&(o(d),o(b)),_(p,r)}}}function Dt(F){let d,w,b,p,T,r,y,Ce,Z,vt="LLaVa is an open-source chatbot trained by fine-tuning LlamA/Vicuna on GPT-generated multimodal instruction-following data. It is an auto-regressive language model, based on the transformer architecture. In other words, it is an multi-modal version of LLMs fine-tuned for chat / instructions.",xe,S,_t='The LLaVa model was proposed in <a href="https://arxiv.org/abs/2304.08485" rel="nofollow">Visual Instruction Tuning</a> and improved in <a href="https://arxiv.org/pdf/2310.03744" rel="nofollow">Improved Baselines with Visual Instruction Tuning</a> by Haotian Liu, Chunyuan Li, Yuheng Li and Yong Jae Lee.',ke,E,bt="The abstract from the paper is the following:",Je,H,Tt="<em>Large multimodal models (LMM) have recently shown encouraging progress with visual instruction tuning. In this note, we show that the fully-connected vision-language cross-modal connector in LLaVA is surprisingly powerful and data-efficient. With simple modifications to LLaVA, namely, using CLIP-ViT-L-336px with an MLP projection and adding academic-task-oriented VQA data with simple response formatting prompts, we establish stronger baselines that achieve state-of-the-art across 11 benchmarks. Our final 13B checkpoint uses merely 1.2M publicly available data, and finishes full training in ∼1 day on a single 8-A100 node. We hope this can make state-of-the-art LMM research more accessible. Code and model will be publicly available</em>",Fe,U,yt,Ue,q,$t='LLaVa architecture. Taken from the <a href="https://arxiv.org/abs/2304.08485">original paper.</a>',je,R,Lt=`This model was contributed by <a href="https://huggingface.co/ArthurZ" rel="nofollow">ArthurZ</a> and <a href="https://huggingface.co/ybelkada" rel="nofollow">ybelkada</a>.
The original code can be found <a href="https://github.com/haotian-liu/LLaVA/tree/main/llava" rel="nofollow">here</a>.`,ze,A,Ie,Q,wt="<li><p>We advise users to use <code>padding_side=&quot;left&quot;</code> when computing batched generation as it leads to more accurate results. Simply make sure to call <code>processor.tokenizer.padding_side = &quot;left&quot;</code> before generating.</p></li> <li><p>Note the model has not been explicitly trained to process multiple images in the same prompt, although this is technically possible, you may experience inaccurate results.</p></li> <li><p>For better results, we recommend users to prompt the model with the correct prompt format:</p></li>",Pe,X,Ge,Y,Mt="For multiple turns conversation:",We,D,Ve,O,Ne,K,Ct='Flash Attention 2 is an even faster, optimized version of the previous optimization, please refer to the <a href="https://huggingface.co/docs/transformers/perf_infer_gpu_one" rel="nofollow">Flash Attention 2 section of performance docs</a>.',Be,ee,Ze,te,xt="A list of official Hugging Face and community (indicated by 🌎) resources to help you get started with BEiT.",Se,oe,Ee,ne,kt='<li>A <a href="https://colab.research.google.com/drive/1qsl6cd2c8gGtEW1xV5io7S8NHh-Cp1TV?usp=sharing" rel="nofollow">Google Colab demo</a> on how to run Llava on a free-tier Google colab instance leveraging 4-bit inference.</li> <li>A <a href="https://github.com/NielsRogge/Transformers-Tutorials/blob/master/LLaVa/Inference_with_LLaVa_for_multimodal_generation.ipynb" rel="nofollow">similar notebook</a> showcasing batched inference. 🌎</li>',He,ae,qe,$,se,et,he,Jt=`This is the configuration class to store the configuration of a <a href="/docs/transformers/v4.36.0/en/model_doc/llava#transformers.LlavaForConditionalGeneration">LlavaForConditionalGeneration</a>. It is used to instantiate an
Llava 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 Llava-9B.`,tt,ge,Ft='e.g. <a href="https://huggingface.co/llava-hf/llava-9b" rel="nofollow">llava-hf/llava-9b</a>',ot,ue,Ut=`Configuration objects inherit from <a href="/docs/transformers/v4.36.0/en/main_classes/configuration#transformers.PretrainedConfig">PretrainedConfig</a> and can be used to control the model outputs. Read the
documentation from <a href="/docs/transformers/v4.36.0/en/main_classes/configuration#transformers.PretrainedConfig">PretrainedConfig</a> for more information.`,nt,j,Re,re,Ae,L,ie,at,ve,jt="Constructs a Llava processor which wraps a Llava image processor and a Llava tokenizer into a single processor.",st,_e,zt=`<a href="/docs/transformers/v4.36.0/en/model_doc/llava#transformers.LlavaProcessor">LlavaProcessor</a> offers all the functionalities of <a href="/docs/transformers/v4.36.0/en/model_doc/clip#transformers.CLIPImageProcessor">CLIPImageProcessor</a> and <a href="/docs/transformers/v4.36.0/en/model_doc/llama2#transformers.LlamaTokenizerFast">LlamaTokenizerFast</a>. See the
<code>__call__()</code> and <a href="/docs/transformers/v4.36.0/en/model_doc/llava#transformers.LlavaProcessor.decode">decode()</a> for more information.`,rt,z,le,it,be,It=`This method forwards all its arguments to LlamaTokenizerFast’s <a href="/docs/transformers/v4.36.0/en/model_doc/speecht5#transformers.SpeechT5Tokenizer.batch_decode">batch_decode()</a>. Please
refer to the docstring of this method for more information.`,lt,I,de,dt,Te,Pt=`This method forwards all its arguments to LlamaTokenizerFast’s <a href="/docs/transformers/v4.36.0/en/model_doc/speecht5#transformers.SpeechT5Tokenizer.decode">decode()</a>. Please refer to
the docstring of this method for more information.`,Qe,ce,Xe,M,me,ct,ye,Gt=`The LLAVA model which consists of a vision backbone and a language model.
This model inherits from <a href="/docs/transformers/v4.36.0/en/main_classes/model#transformers.PreTrainedModel">PreTrainedModel</a>. 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.)`,mt,$e,Wt=`This model is also a PyTorch <a href="https://pytorch.org/docs/stable/nn.html#torch.nn.Module" rel="nofollow">torch.nn.Module</a> subclass.
Use it as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage
and behavior.`,pt,k,pe,ft,Le,Vt='The <a href="/docs/transformers/v4.36.0/en/model_doc/llava#transformers.LlavaForConditionalGeneration">LlavaForConditionalGeneration</a> forward method, overrides the <code>__call__</code> special method.',ht,P,gt,G,Ye,Me,De;return T=new B({props:{title:"LLaVa",local:"llava",headingTag:"h1"}}),y=new B({props:{title:"Overview",local:"overview",headingTag:"h2"}}),A=new B({props:{title:"Usage tips",local:"usage-tips",headingTag:"h2"}}),X=new Ke({props:{code:"JTIyVVNFUiUzQSUyMCUzQ2ltYWdlJTNFJTVDbiUzQ3Byb21wdCUzRUFTU0lTVEFOVCUzQSUyMg==",highlighted:'<span class="hljs-string">&quot;USER: &lt;image&gt;\\n&lt;prompt&gt;ASSISTANT:&quot;</span>',wrap:!1}}),D=new Ke({props:{code:"JTIyVVNFUiUzQSUyMCUzQ2ltYWdlJTNFJTVDbiUzQ3Byb21wdDElM0VBU1NJU1RBTlQlM0ElMjAlM0NhbnN3ZXIxJTNFVVNFUiUzQSUyMCUzQ3Byb21wdDIlM0VBU1NJU1RBTlQlM0ElMjAlM0NhbnN3ZXIyJTNFVVNFUiUzQSUyMCUzQ3Byb21wdDMlM0VBU1NJU1RBTlQlM0ElMjI=",highlighted:'<span class="hljs-string">&quot;USER: &lt;image&gt;\\n&lt;prompt1&gt;ASSISTANT: &lt;answer1&gt;USER: &lt;prompt2&gt;ASSISTANT: &lt;answer2&gt;USER: &lt;prompt3&gt;ASSISTANT:&quot;</span>',wrap:!1}}),O=new B({props:{title:"Using Flash Attention 2",local:"using-flash-attention-2",headingTag:"h3"}}),ee=new B({props:{title:"Resources",local:"resources",headingTag:"h2"}}),oe=new At({props:{pipeline:"image-to-text"}}),ae=new B({props:{title:"LlavaConfig",local:"transformers.LlavaConfig",headingTag:"h2"}}),se=new we({props:{name:"class transformers.LlavaConfig",anchor:"transformers.LlavaConfig",parameters:[{name:"vision_config",val:" = None"},{name:"text_config",val:" = None"},{name:"ignore_index",val:" = -100"},{name:"image_token_index",val:" = 32000"},{name:"projector_hidden_act",val:" = 'gelu'"},{name:"vision_feature_select_strategy",val:" = 'default'"},{name:"vision_feature_layer",val:" = -2"},{name:"vocab_size",val:" = 32000"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.LlavaConfig.vision_config",description:`<strong>vision_config</strong> (<code>LlavaVisionConfig</code>,  <em>optional</em>) &#x2014;
Custom vision config or dict`,name:"vision_config"},{anchor:"transformers.LlavaConfig.text_config",description:`<strong>text_config</strong> (<code>Union[AutoConfig, dict]</code>, <em>optional</em>) &#x2014;
The config object of the text backbone. Can be any of <code>LlamaConfig</code> or <code>MistralConfig</code>.`,name:"text_config"},{anchor:"transformers.LlavaConfig.ignore_index",description:`<strong>ignore_index</strong> (<code>int</code>, <em>optional</em>, defaults to -100) &#x2014;
The ignore index for the loss function.`,name:"ignore_index"},{anchor:"transformers.LlavaConfig.image_token_index",description:`<strong>image_token_index</strong> (<code>int</code>, <em>optional</em>, defaults to 32000) &#x2014;
The image token index to encode the image prompt.`,name:"image_token_index"},{anchor:"transformers.LlavaConfig.projector_hidden_act",description:`<strong>projector_hidden_act</strong> (<code>str</code>, <em>optional</em>, defaults to <code>&quot;gelu&quot;</code>) &#x2014;
The activation function used by the multimodal projector.`,name:"projector_hidden_act"},{anchor:"transformers.LlavaConfig.vision_feature_select_strategy",description:`<strong>vision_feature_select_strategy</strong> (<code>str</code>, <em>optional</em>, defaults to <code>&quot;default&quot;</code>) &#x2014;
The feature selection strategy used to select the vision feature from the CLIP backbone.`,name:"vision_feature_select_strategy"},{anchor:"transformers.LlavaConfig.vision_feature_layer",description:`<strong>vision_feature_layer</strong> (<code>int</code>, <em>optional</em>, defaults to -2) &#x2014;
The index of the layer to select the vision feature.`,name:"vision_feature_layer"},{anchor:"transformers.LlavaConfig.vocab_size",description:`<strong>vocab_size</strong> (<code>int</code>, <em>optional</em>, defaults to 32000) &#x2014;
Vocabulary size of the Llava 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.36.0/en/model_doc/llava#transformers.LlavaForConditionalGeneration">~LlavaForConditionalGeneration</a>`,name:"vocab_size"}],source:"https://github.com/huggingface/transformers/blob/v4.36.0/src/transformers/models/llava/configuration_llava.py#L28"}}),j=new Nt({props:{anchor:"transformers.LlavaConfig.example",$$slots:{default:[Qt]},$$scope:{ctx:F}}}),re=new B({props:{title:"LlavaProcessor",local:"transformers.LlavaProcessor",headingTag:"h2"}}),ie=new we({props:{name:"class transformers.LlavaProcessor",anchor:"transformers.LlavaProcessor",parameters:[{name:"image_processor",val:" = None"},{name:"tokenizer",val:" = None"}],parametersDescription:[{anchor:"transformers.LlavaProcessor.image_processor",description:`<strong>image_processor</strong> (<a href="/docs/transformers/v4.36.0/en/model_doc/clip#transformers.CLIPImageProcessor">CLIPImageProcessor</a>, <em>optional</em>) &#x2014;
The image processor is a required input.`,name:"image_processor"},{anchor:"transformers.LlavaProcessor.tokenizer",description:`<strong>tokenizer</strong> (<a href="/docs/transformers/v4.36.0/en/model_doc/llama2#transformers.LlamaTokenizerFast">LlamaTokenizerFast</a>, <em>optional</em>) &#x2014;
The tokenizer is a required input.`,name:"tokenizer"}],source:"https://github.com/huggingface/transformers/blob/v4.36.0/src/transformers/models/llava/processing_llava.py#L29"}}),le=new we({props:{name:"batch_decode",anchor:"transformers.LlavaProcessor.batch_decode",parameters:[{name:"*args",val:""},{name:"**kwargs",val:""}],source:"https://github.com/huggingface/transformers/blob/v4.36.0/src/transformers/models/llava/processing_llava.py#L116"}}),de=new we({props:{name:"decode",anchor:"transformers.LlavaProcessor.decode",parameters:[{name:"*args",val:""},{name:"**kwargs",val:""}],source:"https://github.com/huggingface/transformers/blob/v4.36.0/src/transformers/models/llava/processing_llava.py#L124"}}),ce=new B({props:{title:"LlavaForConditionalGeneration",local:"transformers.LlavaForConditionalGeneration",headingTag:"h2"}}),me=new we({props:{name:"class transformers.LlavaForConditionalGeneration",anchor:"transformers.LlavaForConditionalGeneration",parameters:[{name:"config",val:": LlavaConfig"}],parametersDescription:[{anchor:"transformers.LlavaForConditionalGeneration.config",description:`<strong>config</strong> (<a href="/docs/transformers/v4.36.0/en/model_doc/llava#transformers.LlavaConfig">LlavaConfig</a> or <code>LlavaVisionConfig</code>) &#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.36.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.36.0/src/transformers/models/llava/modeling_llava.py#L228"}}),pe=new we({props:{name:"forward",anchor:"transformers.LlavaForConditionalGeneration.forward",parameters:[{name:"input_ids",val:": LongTensor = None"},{name:"pixel_values",val:": FloatTensor = 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:"vision_feature_layer",val:": typing.Optional[int] = None"},{name:"vision_feature_select_strategy",val:": typing.Optional[str] = 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.LlavaForConditionalGeneration.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.36.0/en/model_doc/auto#transformers.AutoTokenizer">AutoTokenizer</a>. See <a href="/docs/transformers/v4.36.0/en/main_classes/tokenizer#transformers.PreTrainedTokenizerFast.encode">PreTrainedTokenizer.encode()</a> and
<a href="/docs/transformers/v4.36.0/en/model_doc/perceiver#transformers.PerceiverTokenizer.__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.LlavaForConditionalGeneration.forward.pixel_values",description:'<strong>pixel_values</strong> (<code>torch.FloatTensor</code> of shape <code>(batch_size, num_channels, image_size, image_size)) -- The tensors corresponding to the input images. Pixel values can be obtained using [AutoImageProcessor](/docs/transformers/v4.36.0/en/model_doc/auto#transformers.AutoImageProcessor). See [CLIPImageProcessor.__call__()](/docs/transformers/v4.36.0/en/model_doc/conditional_detr#transformers.ConditionalDetrFeatureExtractor.__call__) for details ([]</code>LlavaProcessor`] uses\n<a href="/docs/transformers/v4.36.0/en/model_doc/clip#transformers.CLIPImageProcessor">CLIPImageProcessor</a> for processing images).',name:"pixel_values"},{anchor:"transformers.LlavaForConditionalGeneration.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.36.0/en/model_doc/auto#transformers.AutoTokenizer">AutoTokenizer</a>. See <a href="/docs/transformers/v4.36.0/en/main_classes/tokenizer#transformers.PreTrainedTokenizerFast.encode">PreTrainedTokenizer.encode()</a> and
<a href="/docs/transformers/v4.36.0/en/model_doc/perceiver#transformers.PerceiverTokenizer.__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.LlavaForConditionalGeneration.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>. <a href="../glossary#position-ids">What are position IDs?</a>`,name:"position_ids"},{anchor:"transformers.LlavaForConditionalGeneration.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.LlavaForConditionalGeneration.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.LlavaForConditionalGeneration.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.LlavaForConditionalGeneration.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.LlavaForConditionalGeneration.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.LlavaForConditionalGeneration.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.36.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.36.0/src/transformers/models/llava/modeling_llava.py#L322",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>


<p>A <code>transformers.models.llava.modeling_llava.LlavaCausalLMOutputWithPast</code> 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.36.0/en/model_doc/llava#transformers.LlavaConfig"
>LlavaConfig</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) — 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>) — 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>) — 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>) — 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>) — 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>
<li>
<p><strong>image_hidden_states</strong> (<code>tuple(torch.FloatTensor)</code>, <em>optional</em>) — Tuple of <code>torch.FloatTensor</code> (one for the output of the image embeddings, <code>(batch_size, num_images, sequence_length, hidden_size)</code>.</p>
<p>image_hidden_states of the model produced by the vision encoder, and optionally by the perceiver</p>
</li>
</ul>
`,returnType:`<script context="module">export const metadata = 'undefined';<\/script>


<p><code>transformers.models.llava.modeling_llava.LlavaCausalLMOutputWithPast</code> or <code>tuple(torch.FloatTensor)</code></p>
`}}),P=new Rt({props:{$$slots:{default:[Xt]},$$scope:{ctx:F}}}),G=new Nt({props:{anchor:"transformers.LlavaForConditionalGeneration.forward.example",$$slots:{default:[Yt]},$$scope:{ctx:F}}}),{c(){d=i("meta"),w=a(),b=i("p"),p=a(),f(T.$$.fragment),r=a(),f(y.$$.fragment),Ce=a(),Z=i("p"),Z.textContent=vt,xe=a(),S=i("p"),S.innerHTML=_t,ke=a(),E=i("p"),E.textContent=bt,Je=a(),H=i("p"),H.innerHTML=Tt,Fe=a(),U=i("img"),Ue=a(),q=i("small"),q.innerHTML=$t,je=a(),R=i("p"),R.innerHTML=Lt,ze=a(),f(A.$$.fragment),Ie=a(),Q=i("ul"),Q.innerHTML=wt,Pe=a(),f(X.$$.fragment),Ge=a(),Y=i("p"),Y.textContent=Mt,We=a(),f(D.$$.fragment),Ve=a(),f(O.$$.fragment),Ne=a(),K=i("p"),K.innerHTML=Ct,Be=a(),f(ee.$$.fragment),Ze=a(),te=i("p"),te.textContent=xt,Se=a(),f(oe.$$.fragment),Ee=a(),ne=i("ul"),ne.innerHTML=kt,He=a(),f(ae.$$.fragment),qe=a(),$=i("div"),f(se.$$.fragment),et=a(),he=i("p"),he.innerHTML=Jt,tt=a(),ge=i("p"),ge.innerHTML=Ft,ot=a(),ue=i("p"),ue.innerHTML=Ut,nt=a(),f(j.$$.fragment),Re=a(),f(re.$$.fragment),Ae=a(),L=i("div"),f(ie.$$.fragment),at=a(),ve=i("p"),ve.textContent=jt,st=a(),_e=i("p"),_e.innerHTML=zt,rt=a(),z=i("div"),f(le.$$.fragment),it=a(),be=i("p"),be.innerHTML=It,lt=a(),I=i("div"),f(de.$$.fragment),dt=a(),Te=i("p"),Te.innerHTML=Pt,Qe=a(),f(ce.$$.fragment),Xe=a(),M=i("div"),f(me.$$.fragment),ct=a(),ye=i("p"),ye.innerHTML=Gt,mt=a(),$e=i("p"),$e.innerHTML=Wt,pt=a(),k=i("div"),f(pe.$$.fragment),ft=a(),Le=i("p"),Le.innerHTML=Vt,ht=a(),f(P.$$.fragment),gt=a(),f(G.$$.fragment),Ye=a(),Me=i("p"),this.h()},l(e){const t=qt("svelte-u9bgzb",document.head);d=l(t,"META",{name:!0,content:!0}),t.forEach(o),w=s(e),b=l(e,"P",{}),N(b).forEach(o),p=s(e),h(T.$$.fragment,e),r=s(e),h(y.$$.fragment,e),Ce=s(e),Z=l(e,"P",{"data-svelte-h":!0}),m(Z)!=="svelte-xhhjdz"&&(Z.textContent=vt),xe=s(e),S=l(e,"P",{"data-svelte-h":!0}),m(S)!=="svelte-iilyg8"&&(S.innerHTML=_t),ke=s(e),E=l(e,"P",{"data-svelte-h":!0}),m(E)!=="svelte-vfdo9a"&&(E.textContent=bt),Je=s(e),H=l(e,"P",{"data-svelte-h":!0}),m(H)!=="svelte-a2g4ox"&&(H.innerHTML=Tt),Fe=s(e),U=l(e,"IMG",{src:!0,alt:!0,width:!0}),Ue=s(e),q=l(e,"SMALL",{"data-svelte-h":!0}),m(q)!=="svelte-16ml59q"&&(q.innerHTML=$t),je=s(e),R=l(e,"P",{"data-svelte-h":!0}),m(R)!=="svelte-3u37is"&&(R.innerHTML=Lt),ze=s(e),h(A.$$.fragment,e),Ie=s(e),Q=l(e,"UL",{"data-svelte-h":!0}),m(Q)!=="svelte-5bb4g0"&&(Q.innerHTML=wt),Pe=s(e),h(X.$$.fragment,e),Ge=s(e),Y=l(e,"P",{"data-svelte-h":!0}),m(Y)!=="svelte-mnlzle"&&(Y.textContent=Mt),We=s(e),h(D.$$.fragment,e),Ve=s(e),h(O.$$.fragment,e),Ne=s(e),K=l(e,"P",{"data-svelte-h":!0}),m(K)!=="svelte-15nzlnu"&&(K.innerHTML=Ct),Be=s(e),h(ee.$$.fragment,e),Ze=s(e),te=l(e,"P",{"data-svelte-h":!0}),m(te)!=="svelte-1bkfbxv"&&(te.textContent=xt),Se=s(e),h(oe.$$.fragment,e),Ee=s(e),ne=l(e,"UL",{"data-svelte-h":!0}),m(ne)!=="svelte-qnejrc"&&(ne.innerHTML=kt),He=s(e),h(ae.$$.fragment,e),qe=s(e),$=l(e,"DIV",{class:!0});var C=N($);h(se.$$.fragment,C),et=s(C),he=l(C,"P",{"data-svelte-h":!0}),m(he)!=="svelte-jqdkud"&&(he.innerHTML=Jt),tt=s(C),ge=l(C,"P",{"data-svelte-h":!0}),m(ge)!=="svelte-d825u1"&&(ge.innerHTML=Ft),ot=s(C),ue=l(C,"P",{"data-svelte-h":!0}),m(ue)!=="svelte-1qljms5"&&(ue.innerHTML=Ut),nt=s(C),h(j.$$.fragment,C),C.forEach(o),Re=s(e),h(re.$$.fragment,e),Ae=s(e),L=l(e,"DIV",{class:!0});var x=N(L);h(ie.$$.fragment,x),at=s(x),ve=l(x,"P",{"data-svelte-h":!0}),m(ve)!=="svelte-api29h"&&(ve.textContent=jt),st=s(x),_e=l(x,"P",{"data-svelte-h":!0}),m(_e)!=="svelte-jh6b7l"&&(_e.innerHTML=zt),rt=s(x),z=l(x,"DIV",{class:!0});var fe=N(z);h(le.$$.fragment,fe),it=s(fe),be=l(fe,"P",{"data-svelte-h":!0}),m(be)!=="svelte-1ls8r2j"&&(be.innerHTML=It),fe.forEach(o),lt=s(x),I=l(x,"DIV",{class:!0});var Oe=N(I);h(de.$$.fragment,Oe),dt=s(Oe),Te=l(Oe,"P",{"data-svelte-h":!0}),m(Te)!=="svelte-60ccnp"&&(Te.innerHTML=Pt),Oe.forEach(o),x.forEach(o),Qe=s(e),h(ce.$$.fragment,e),Xe=s(e),M=l(e,"DIV",{class:!0});var W=N(M);h(me.$$.fragment,W),ct=s(W),ye=l(W,"P",{"data-svelte-h":!0}),m(ye)!=="svelte-gh95z7"&&(ye.innerHTML=Gt),mt=s(W),$e=l(W,"P",{"data-svelte-h":!0}),m($e)!=="svelte-hswkmf"&&($e.innerHTML=Wt),pt=s(W),k=l(W,"DIV",{class:!0});var V=N(k);h(pe.$$.fragment,V),ft=s(V),Le=l(V,"P",{"data-svelte-h":!0}),m(Le)!=="svelte-189j1nh"&&(Le.innerHTML=Vt),ht=s(V),h(P.$$.fragment,V),gt=s(V),h(G.$$.fragment,V),V.forEach(o),W.forEach(o),Ye=s(e),Me=l(e,"P",{}),N(Me).forEach(o),this.h()},h(){J(d,"name","hf:doc:metadata"),J(d,"content",Ot),Zt(U.src,yt="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/model_doc/llava_architecture.jpg")||J(U,"src",yt),J(U,"alt","drawing"),J(U,"width","600"),J($,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),J(z,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),J(I,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),J(L,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),J(k,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),J(M,"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,t){c(document.head,d),n(e,w,t),n(e,b,t),n(e,p,t),g(T,e,t),n(e,r,t),g(y,e,t),n(e,Ce,t),n(e,Z,t),n(e,xe,t),n(e,S,t),n(e,ke,t),n(e,E,t),n(e,Je,t),n(e,H,t),n(e,Fe,t),n(e,U,t),n(e,Ue,t),n(e,q,t),n(e,je,t),n(e,R,t),n(e,ze,t),g(A,e,t),n(e,Ie,t),n(e,Q,t),n(e,Pe,t),g(X,e,t),n(e,Ge,t),n(e,Y,t),n(e,We,t),g(D,e,t),n(e,Ve,t),g(O,e,t),n(e,Ne,t),n(e,K,t),n(e,Be,t),g(ee,e,t),n(e,Ze,t),n(e,te,t),n(e,Se,t),g(oe,e,t),n(e,Ee,t),n(e,ne,t),n(e,He,t),g(ae,e,t),n(e,qe,t),n(e,$,t),g(se,$,null),c($,et),c($,he),c($,tt),c($,ge),c($,ot),c($,ue),c($,nt),g(j,$,null),n(e,Re,t),g(re,e,t),n(e,Ae,t),n(e,L,t),g(ie,L,null),c(L,at),c(L,ve),c(L,st),c(L,_e),c(L,rt),c(L,z),g(le,z,null),c(z,it),c(z,be),c(L,lt),c(L,I),g(de,I,null),c(I,dt),c(I,Te),n(e,Qe,t),g(ce,e,t),n(e,Xe,t),n(e,M,t),g(me,M,null),c(M,ct),c(M,ye),c(M,mt),c(M,$e),c(M,pt),c(M,k),g(pe,k,null),c(k,ft),c(k,Le),c(k,ht),g(P,k,null),c(k,gt),g(G,k,null),n(e,Ye,t),n(e,Me,t),De=!0},p(e,[t]){const C={};t&2&&(C.$$scope={dirty:t,ctx:e}),j.$set(C);const x={};t&2&&(x.$$scope={dirty:t,ctx:e}),P.$set(x);const fe={};t&2&&(fe.$$scope={dirty:t,ctx:e}),G.$set(fe)},i(e){De||(u(T.$$.fragment,e),u(y.$$.fragment,e),u(A.$$.fragment,e),u(X.$$.fragment,e),u(D.$$.fragment,e),u(O.$$.fragment,e),u(ee.$$.fragment,e),u(oe.$$.fragment,e),u(ae.$$.fragment,e),u(se.$$.fragment,e),u(j.$$.fragment,e),u(re.$$.fragment,e),u(ie.$$.fragment,e),u(le.$$.fragment,e),u(de.$$.fragment,e),u(ce.$$.fragment,e),u(me.$$.fragment,e),u(pe.$$.fragment,e),u(P.$$.fragment,e),u(G.$$.fragment,e),De=!0)},o(e){v(T.$$.fragment,e),v(y.$$.fragment,e),v(A.$$.fragment,e),v(X.$$.fragment,e),v(D.$$.fragment,e),v(O.$$.fragment,e),v(ee.$$.fragment,e),v(oe.$$.fragment,e),v(ae.$$.fragment,e),v(se.$$.fragment,e),v(j.$$.fragment,e),v(re.$$.fragment,e),v(ie.$$.fragment,e),v(le.$$.fragment,e),v(de.$$.fragment,e),v(ce.$$.fragment,e),v(me.$$.fragment,e),v(pe.$$.fragment,e),v(P.$$.fragment,e),v(G.$$.fragment,e),De=!1},d(e){e&&(o(w),o(b),o(p),o(r),o(Ce),o(Z),o(xe),o(S),o(ke),o(E),o(Je),o(H),o(Fe),o(U),o(Ue),o(q),o(je),o(R),o(ze),o(Ie),o(Q),o(Pe),o(Ge),o(Y),o(We),o(Ve),o(Ne),o(K),o(Be),o(Ze),o(te),o(Se),o(Ee),o(ne),o(He),o(qe),o($),o(Re),o(Ae),o(L),o(Qe),o(Xe),o(M),o(Ye),o(Me)),o(d),_(T,e),_(y,e),_(A,e),_(X,e),_(D,e),_(O,e),_(ee,e),_(oe,e),_(ae,e),_(se),_(j),_(re,e),_(ie),_(le),_(de),_(ce,e),_(me),_(pe),_(P),_(G)}}}const Ot='{"title":"LLaVa","local":"llava","sections":[{"title":"Overview","local":"overview","sections":[],"depth":2},{"title":"Usage tips","local":"usage-tips","sections":[{"title":"Using Flash Attention 2","local":"using-flash-attention-2","sections":[],"depth":3}],"depth":2},{"title":"Resources","local":"resources","sections":[],"depth":2},{"title":"LlavaConfig","local":"transformers.LlavaConfig","sections":[],"depth":2},{"title":"LlavaProcessor","local":"transformers.LlavaProcessor","sections":[],"depth":2},{"title":"LlavaForConditionalGeneration","local":"transformers.LlavaForConditionalGeneration","sections":[],"depth":2}],"depth":1}';function Kt(F){return St(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class lo extends Et{constructor(d){super(),Ht(this,d,Kt,Dt,Bt,{})}}export{lo as component};
