Papers › Visual Instruction Tuning

Visual Instruction Tuning

17 Apr 2023NeurIPS 2023 11arXiv:2304.08485archive 2025-07-28

Haotian Liu, Chunyuan Li, Qingyang Wu, Yong Jae Lee

Instruction tuning large language models (LLMs) using machine-generated instruction-following data has improved zero-shot capabilities on new tasks, but the idea is less explored in the multimodal field. In this paper, we present the first attempt to use language-only GPT-4 to generate multimodal language-image instruction-following data. By instruction tuning on such generated data, we introduce LLaVA: Large Language and Vision Assistant, an end-to-end trained large multimodal model that connects a vision encoder and LLM for general-purpose visual and language understanding.Our early experiments show that LLaVA demonstrates impressive multimodel chat abilities, sometimes exhibiting the behaviors of multimodal GPT-4 on unseen images/instructions, and yields a 85.1% relative score compared with GPT-4 on a synthetic multimodal instruction-following dataset. When fine-tuned on Science QA, the synergy of LLaVA and GPT-4 achieves a new state-of-the-art accuracy of 92.53%. We make GPT-4 generated visual instruction tuning data, our model and code base publicly available.

PaperPDFConference PDFCodeCode Syntology ran

In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.

For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="2304.08485")

Code

Syntology Ran 16 of 51 code samples harvested from 12 repositories linked to this paper; 35 have no recorded run. Of those that ran: 1 ran · violated contract; 4 ran · our draft was wrong; 4 ran · fixture could not drive it; 7 ran with no contract checked.

By repository: official repository: 12 samples from 1 repository, 4 ran; named in the paper: 5 samples from 1 repository, 2 ran; community (archive-listed): 29 samples from 7 repositories, 9 ran; community: 5 samples from 3 repositories, 1 ran. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

13 repositories listed; official and paper-mentioned ones first.

haotian-liu/LLaVA officialmentioned on GitHubpytorch report
llava-annonymous/llava mentioned in papermentioned on GitHubpytorch report
LLaVA-VL/LLaVA-NeXT mentioned on GitHubpytorch report
ZhangYiqun018/StickerConv mentioned on GitHubpytorch report
camenduru/llava-colab mentioned on GitHub report
dinhvietcuong1996/icme25-inova mentioned on GitHubpytorch report
huggingface/transformers mentioned on GitHubpytorch report
qiujihao19/artemis mentioned on GitHubpytorch report
skunkworksai/bakllava mentioned on GitHubpytorch report
sshh12/multi_token mentioned on GitHubpytorch report
sunsmarterjie/chatterbox mentioned on GitHubpytorch report
tabtoyou/kollava mentioned on GitHubpytorch report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

51 samples harvested; 16 ran; 0 honoured the contract we drafted; 35 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.

1ran · violated contract
4ran · our draft was wrong
4ran · fixture could not drive it
7ran
35unverified

Licence: 0 of the 51 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.

Harvested from 12 repositories linked to this paper, official or community; each sample names its own and says which. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.

Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.

Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted. community: Not in the archive's code links for this paper; a community repository Syntology harvested. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.

LlavaConfig haotian-liu/LLaVA/llava/model/language_model/llava_llama.py official repository ran · metamorphic tier: deterministic Apache-2.0 (permissive) · f01242335a1498b3 · report
get_anyres_image_grid_shape haotian-liu/LLaVA/llava/model/language_model/llava_llama.py official repository ran · fixture could not drive it Apache-2.0 (permissive) · 2ff0d742a84cb8e2 · report
split_to_even_chunks haotian-liu/LLaVA/llava/train/llava_trainer.py official repository ran · fixture could not drive it Apache-2.0 (permissive) · 10893c4608c08075 · report
unpad_image haotian-liu/LLaVA/llava/model/llava_arch.py official repository ran · fixture could not drive it fingerprinted Apache-2.0 (permissive) · 55c32993da87759b · report
CLIPVisionTowerS2 haotian-liu/LLaVA/llava/model/language_model/llava_llama.py official repository unverified Apache-2.0 (permissive) · 5d1c9ab7042cee8d · report
LlavaLlamaForCausalLM haotian-liu/LLaVA/llava/model/language_model/llava_llama.py official repository unverified Apache-2.0 (permissive) · 4363aef6226bb213 · report
LlavaLlamaModel haotian-liu/LLaVA/llava/model/language_model/llava_llama.py official repository unverified Apache-2.0 (permissive) · 9707b7b56a48db85 · report
LlavaMetaForCausalLM haotian-liu/LLaVA/llava/model/language_model/llava_llama.py official repository unverified Apache-2.0 (permissive) · 8e3647258cae7507 · report
LlavaMetaModel haotian-liu/LLaVA/llava/model/language_model/llava_llama.py official repository unverified Apache-2.0 (permissive) · 0bfdaed6a43a5263 · report
build_vision_tower haotian-liu/LLaVA/llava/model/language_model/llava_llama.py official repository unverified Apache-2.0 (permissive) · 3ee345b55cc88a11 · report
get_mm_adapter_state_maybe_zero_3 haotian-liu/LLaVA/llava/train/llava_trainer.py official repository unverified Apache-2.0 (permissive) · bb35e3ac741bb2c9 · report
maybe_zero_3 haotian-liu/LLaVA/llava/train/llava_trainer.py official repository unverified Apache-2.0 (permissive) · 735025744c1ab0cf · report
LlavaConfig llava-annonymous/llava/llava/model/llava.py named in the paper ran Apache-2.0 (permissive) · 92cb18f9e27a4e39 · report
convert_caps llava-annonymous/llava/llava/eval/eval_science_qa.py named in the paper ran · our draft was wrong Apache-2.0 (permissive) · 94fda0761ce0d5b9 · report
LlavaLlamaForCausalLM llava-annonymous/llava/llava/model/llava.py named in the paper unverified Apache-2.0 (permissive) · 7adeedb5a7dcbd7a · report
LlavaLlamaModel llava-annonymous/llava/llava/model/llava.py named in the paper unverified Apache-2.0 (permissive) · e992c05c75e7c542 · report
get_pred_idx llava-annonymous/llava/llava/eval/eval_science_qa.py named in the paper unverified Apache-2.0 (permissive) · 268b6194c5c23103 · report
IdentityMap dinhvietcuong1996/icme25-inova/llava/model/language_model/llava_llama.py community (archive-listed) ran · metamorphic tier: invariant fingerprinted Apache-2.0 (permissive) · 1707c6987676247e · report
LlavaConfig dinhvietcuong1996/icme25-inova/llava/model/language_model/llava_llama.py community (archive-listed) ran · metamorphic tier: deterministic Apache-2.0 (permissive) · dbe52eb96f05b6db · report
LlavaLlamaModel sunsmarterjie/chatterbox/model/llava/model/llava.py community (archive-listed) ran Apache-2.0 (permissive) · e6460881f1cf311c · report
SimpleResBlock dinhvietcuong1996/icme25-inova/llava/model/language_model/llava_llama.py community (archive-listed) ran · metamorphic tier: deterministic fingerprinted Apache-2.0 (permissive) · 4a7e5ec29fb79acb · report
_MLPVectorProjector sshh12/multi_token/multi_token/modalities/projectors.py community (archive-listed) ran fingerprinted Apache-2.0 (permissive) · 078a686c14a5d016 · report
build_vision_projector dinhvietcuong1996/icme25-inova/llava/model/language_model/llava_llama.py community (archive-listed) ran · our draft was wrong Apache-2.0 (permissive) · ea7ba84c548c5a33 · report
build_vision_resampler dinhvietcuong1996/icme25-inova/llava/model/language_model/llava_llama.py community (archive-listed) ran · our draft was wrong Apache-2.0 (permissive) · 10f2142755f4bbb5 · report
should_only_save_mm_adapter LLaVA-VL/LLaVA-NeXT/llava/train/llava_trainer.py community (archive-listed) ran · violated contract Apache-2.0 (permissive) · 08787a49ef19e0aa · report
unpad_image LLaVA-VL/LLaVA-NeXT/llava/model/llava_arch.py community (archive-listed) ran · fixture could not drive it fingerprinted Apache-2.0 (permissive) · 7606525af238fb64 · report
CLIPVisionTower dinhvietcuong1996/icme25-inova/llava/model/language_model/llava_llama.py community (archive-listed) unverified Apache-2.0 (permissive) · 98e6fcd805f498d1 · report
CLIPVisionTowerS2 dinhvietcuong1996/icme25-inova/llava/model/language_model/llava_llama.py community (archive-listed) unverified Apache-2.0 (permissive) · d7be74cc1bd52de7 · report
LlavaConfig sunsmarterjie/chatterbox/model/llava/model/llava.py community (archive-listed) unverified Apache-2.0 (permissive) · d2904a880e39bfc2 · report
LlavaLlamaForCausalLM dinhvietcuong1996/icme25-inova/llava/model/language_model/llava_llama.py community (archive-listed) unverified Apache-2.0 (permissive) · 1717d5d0a430f17f · report
LlavaLlamaForCausalLM ZhangYiqun018/StickerConv/sticker_process/llava/model/language_model/llava_llama.py community (archive-listed) unverified Apache-2.0 (permissive) · 44969b8364ff17f1 · report
LlavaLlamaForCausalLM skunkworksai/bakllava/llava/model/language_model/llava_llama.py community (archive-listed) unverified Apache-2.0 (permissive) · e589073e81d58266 · report
LlavaLlamaForCausalLM sunsmarterjie/chatterbox/model/llava/model/llava.py community (archive-listed) unverified Apache-2.0 (permissive) · d138a906d3799efb · report
LlavaLlamaForCausalLM tabtoyou/kollava/llava/model/language_model/llava_llama.py community (archive-listed) unverified Apache-2.0 (permissive) · d70c330590b6be51 · report
LlavaLlamaModel dinhvietcuong1996/icme25-inova/llava/model/language_model/llava_llama.py community (archive-listed) unverified Apache-2.0 (permissive) · a39a4ca102cca6cc · report
LlavaLlamaModel ZhangYiqun018/StickerConv/sticker_process/llava/model/language_model/llava_llama.py community (archive-listed) unverified Apache-2.0 (permissive) · 7fc60199325c39f5 · report
LlavaLlamaModel skunkworksai/bakllava/llava/model/language_model/llava_llama.py community (archive-listed) unverified Apache-2.0 (permissive) · d9cce1fb106ab082 · report
LlavaMetaForCausalLM LLaVA-VL/LLaVA-NeXT/llava/model/llava_arch.py community (archive-listed) unverified Apache-2.0 (permissive) · 39343c26374462af · report
LlavaMetaForCausalLM dinhvietcuong1996/icme25-inova/llava/model/language_model/llava_llama.py community (archive-listed) unverified Apache-2.0 (permissive) · 31bedbeb8856618e · report
LlavaMetaForCausalLM ZhangYiqun018/StickerConv/sticker_process/llava/model/language_model/llava_llama.py community (archive-listed) unverified Apache-2.0 (permissive) · abf7b5851a13bc76 · report
LlavaMetaForCausalLM tabtoyou/kollava/llava/model/language_model/llava_llama.py community (archive-listed) unverified Apache-2.0 (permissive) · 2efb2d959762f4ed · report
LlavaMetaModel dinhvietcuong1996/icme25-inova/llava/model/language_model/llava_llama.py community (archive-listed) unverified Apache-2.0 (permissive) · 7732a5ae006ababd · report
LlavaMetaModel ZhangYiqun018/StickerConv/sticker_process/llava/model/language_model/llava_llama.py community (archive-listed) unverified Apache-2.0 (permissive) · 38d280bea74c1e01 · report
LlavaMetaModel skunkworksai/bakllava/llava/model/language_model/llava_llama.py community (archive-listed) unverified Apache-2.0 (permissive) · 5990c8af59a1551f · report
build_vision_tower dinhvietcuong1996/icme25-inova/llava/model/language_model/llava_llama.py community (archive-listed) unverified Apache-2.0 (permissive) · 875ebbe8f3a0c711 · report
build_vision_tower ZhangYiqun018/StickerConv/sticker_process/llava/model/language_model/llava_llama.py community (archive-listed) unverified Apache-2.0 (permissive) · 014050859277825c · report
image_parser ictnlp/LLaVA-Mini/llavamini/eval/run_llava_mini.py community ran · our draft was wrong Apache-2.0 (permissive) · a7bee88c1c7fd6a3 · report
convert_caps LLaVA-VL/LLaVA-Plus-Codebase/llava/eval/eval_science_qa.py community unverified Apache-2.0 (permissive) · 150a20daa039f495 · report
get_pred_idx LLaVA-VL/LLaVA-Plus-Codebase/llava/eval/eval_science_qa.py community unverified Apache-2.0 (permissive) · 63959934f6d1fa06 · report
save_image_to_local PKU-YuanGroup/MoE-LLaVA/moellava/serve/gradio_web_server.py community unverified Apache-2.0 (permissive) · e2e5c3a95a6aebb4 · report
save_video_to_local PKU-YuanGroup/MoE-LLaVA/moellava/serve/gradio_web_server.py community unverified Apache-2.0 (permissive) · 22930d58d32e2d08 · report

Tasks

1 Image, 2*2 Stitching3D Question Answering (3D-QA)Image ClassificationImage RetrievalInstruction FollowingMMR totalReferring Expression ComprehensionReferring expression generationSpatial ReasoningVideo Question AnsweringVisual Question AnsweringVisual Reasoningvisual instruction following

Datasets

Introduced by this paper, per the archive.

LLaVA-Bench

Results from the paper archive 2025-07-28

TaskDatasetModelMetricValueRank at snapshotLeaderboardReport
3D Question Answering (3D-QA) ScanQA Test w/ objects LL3DA BLEU-1 - #18 of 18 Archive leaderboard report
3D Question Answering (3D-QA) ScanQA Test w/ objects LL3DA BLEU-4 13.5 #18 of 18 Archive leaderboard report
3D Question Answering (3D-QA) ScanQA Test w/ objects LL3DA CIDEr 76.8 #18 of 18 Archive leaderboard report
3D Question Answering (3D-QA) ScanQA Test w/ objects LL3DA Exact Match - #18 of 18 Archive leaderboard report
3D Question Answering (3D-QA) ScanQA Test w/ objects LL3DA METEOR 15.9 #18 of 18 Archive leaderboard report
3D Question Answering (3D-QA) ScanQA Test w/ objects LL3DA ROUGE 37.3 #18 of 18 Archive leaderboard report
Image Classification ColonINST-v1 (Seen) LLaVA-v1 (w/ LoRA, w/ extra data) Accuray 89.61 #15 of 17 Archive leaderboard report
Image Classification ColonINST-v1 (Seen) LLaVA-v1 (w/ LoRA, w/o extra data) Accuray 87.86 #16 of 17 Archive leaderboard report
Image Classification ColonINST-v1 (Unseen) LLaVA-v1 (w/ LoRA, w/o extra data) Accuray 72.08 #15 of 17 Archive leaderboard report
Image Classification ColonINST-v1 (Unseen) LLaVA-v1 (w/ LoRA, w/ extra data) Accuray 42.17 #17 of 17 Archive leaderboard report
MMR total MRR-Benchmark LLaVA-NEXT-34B Total Column Score 412 #4 of 14 Archive leaderboard report
MMR total MRR-Benchmark LLaVA-NEXT-13B Total Column Score 335 #8 of 14 Archive leaderboard report
MMR total MRR-Benchmark LLaVA-1.5-13B Total Column Score 243 #11 of 14 Archive leaderboard report
Referring expression generation ColonINST-v1 (Seen) LLaVA-v1 (w/ LoRA, w/ extra data) Accuray 86.87 #16 of 17 Archive leaderboard report
Referring expression generation ColonINST-v1 (Seen) LLaVA-v1 (w/ LoRA, w/o extra data) Accuray 84.55 #17 of 17 Archive leaderboard report
Referring expression generation ColonINST-v1 (Unseen) LLaVA-v1 (w/ LoRA, w/o extra data) Accuray 68.11 #16 of 17 Archive leaderboard report
Referring expression generation ColonINST-v1 (Unseen) LLaVA-v1 (w/ LoRA, w/ extra data) Accuray 46.85 #17 of 17 Archive leaderboard report
Spatial Reasoning EmbSpatial-Bench LLaVA-1.6 Generation 35.19 #4 of 5 Archive leaderboard report
Video Question Answering MVBench LLaVa Avg. 36.0 #17 of 22 Archive leaderboard report
Visual Question Answering BenchLMM LLaVA-1.5-7B GPT-3.5 score 46.83 #4 of 10 Archive leaderboard report
Visual Question Answering BenchLMM LLaVA-1-13B GPT-3.5 score 43.50 #7 of 10 Archive leaderboard report

Ranks are positions in the archive's leaderboards as they stood at the 2025-07-28 snapshot. Results published since then are not among these rows, so a rank here is not a current standing.

Methods

Absolute Position EncodingsAdamAttentionBASEBPEDense ConnectionsDropoutGPT-4Label SmoothingLayer NormalizationLinear LayerMulti-Head AttentionPosition-Wise Feed-Forward LayerResidual ConnectionSoftmaxTransformer

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections