llava

GitHub

LLaVA是开源视觉语言模型,支持VQA、图像描述及多轮对话。适用于构建视觉聊天机器人、文档理解等场景,提供多种参数量级选择,具备GPT-4V级别能力。

optional-skills/mlops/llava/SKILL.md NousResearch/hermes-agent

Trigger Scenarios

视觉问答 图像描述生成 多轮图像对话 视觉指令遵循 文档图像理解

Install

npx skills add NousResearch/hermes-agent --skill llava -g -y
More Options

Non-standard path

npx skills add https://github.com/NousResearch/hermes-agent/tree/main/optional-skills/mlops/llava -g -y

Use without installing

npx skills use NousResearch/hermes-agent@llava

指定 Agent (Claude Code)

npx skills add NousResearch/hermes-agent --skill llava -a claude-code -g -y

安装 repo 全部 skill

npx skills add NousResearch/hermes-agent --all -g -y

预览 repo 内 skill

npx skills add NousResearch/hermes-agent --list

SKILL.md

Frontmatter
{
    "name": "llava",
    "author": "Orchestra Research",
    "license": "MIT",
    "version": "1.0.0",
    "metadata": {
        "hermes": {
            "tags": [
                "LLaVA",
                "Vision-Language",
                "Multimodal",
                "Visual Question Answering",
                "Image Chat",
                "CLIP",
                "Vicuna",
                "Conversational AI",
                "Instruction Tuning",
                "VQA"
            ]
        }
    },
    "platforms": [
        "linux",
        "macos",
        "windows"
    ],
    "description": "Vision-language chat: VQA, captioning, image dialogue.",
    "dependencies": [
        "transformers",
        "torch",
        "pillow"
    ]
}

LLaVA - Large Language and Vision Assistant

Open-source vision-language model for conversational image understanding.

When to use LLaVA

Use when:

  • Building vision-language chatbots
  • Visual question answering (VQA)
  • Image description and captioning
  • Multi-turn image conversations
  • Visual instruction following
  • Document understanding with images

Metrics:

  • 23,000+ GitHub stars
  • GPT-4V level capabilities (targeted)
  • Apache 2.0 License
  • Multiple model sizes (7B-34B params)

Use alternatives instead:

  • GPT-4V: Highest quality, API-based
  • CLIP: Simple zero-shot classification
  • BLIP-2: Better for captioning only
  • Flamingo: Research, not open-source

Quick start

Installation

# Clone repository
git clone https://github.com/haotian-liu/LLaVA
cd LLaVA

# Install
pip install -e .

Basic usage

from llava.model.builder import load_pretrained_model
from llava.mm_utils import get_model_name_from_path, process_images, tokenizer_image_token
from llava.constants import IMAGE_TOKEN_INDEX, DEFAULT_IMAGE_TOKEN
from llava.conversation import conv_templates
from PIL import Image
import torch

# Load model
model_path = "liuhaotian/llava-v1.5-7b"
tokenizer, model, image_processor, context_len = load_pretrained_model(
    model_path=model_path,
    model_base=None,
    model_name=get_model_name_from_path(model_path)
)

# Load image
image = Image.open("image.jpg")
image_tensor = process_images([image], image_processor, model.config)
image_tensor = image_tensor.to(model.device, dtype=torch.float16)

# Create conversation
conv = conv_templates["llava_v1"].copy()
conv.append_message(conv.roles[0], DEFAULT_IMAGE_TOKEN + "\nWhat is in this image?")
conv.append_message(conv.roles[1], None)
prompt = conv.get_prompt()

# Generate response
input_ids = tokenizer_image_token(prompt, tokenizer, IMAGE_TOKEN_INDEX, return_tensors='pt').unsqueeze(0).to(model.device)

with torch.inference_mode():
    output_ids = model.generate(
        input_ids,
        images=image_tensor,
        do_sample=True,
        temperature=0.2,
        max_new_tokens=512
    )

response = tokenizer.decode(output_ids[0], skip_special_tokens=True).strip()
print(response)

Available models

Model Parameters VRAM Quality
LLaVA-v1.5-7B 7B ~14 GB Good
LLaVA-v1.5-13B 13B ~28 GB Better
LLaVA-v1.6-34B 34B ~70 GB Best
# Load different models
model_7b = "liuhaotian/llava-v1.5-7b"
model_13b = "liuhaotian/llava-v1.5-13b"
model_34b = "liuhaotian/llava-v1.6-34b"

# 4-bit quantization for lower VRAM
load_4bit = True  # Reduces VRAM by ~4×

CLI usage

# Single image query
python -m llava.serve.cli \
    --model-path liuhaotian/llava-v1.5-7b \
    --image-file image.jpg \
    --query "What is in this image?"

# Multi-turn conversation
python -m llava.serve.cli \
    --model-path liuhaotian/llava-v1.5-7b \
    --image-file image.jpg
# Then type questions interactively

Web UI (Gradio)

# Launch Gradio interface
python -m llava.serve.gradio_web_server \
    --model-path liuhaotian/llava-v1.5-7b \
    --load-4bit  # Optional: reduce VRAM

# Access at http://localhost:7860

Multi-turn conversations

# Initialize conversation
conv = conv_templates["llava_v1"].copy()

# Turn 1
conv.append_message(conv.roles[0], DEFAULT_IMAGE_TOKEN + "\nWhat is in this image?")
conv.append_message(conv.roles[1], None)
response1 = generate(conv, model, image)  # "A dog playing in a park"

# Turn 2
conv.messages[-1][1] = response1  # Add previous response
conv.append_message(conv.roles[0], "What breed is the dog?")
conv.append_message(conv.roles[1], None)
response2 = generate(conv, model, image)  # "Golden Retriever"

# Turn 3
conv.messages[-1][1] = response2
conv.append_message(conv.roles[0], "What time of day is it?")
conv.append_message(conv.roles[1], None)
response3 = generate(conv, model, image)

Common tasks

Image captioning

question = "Describe this image in detail."
response = ask(model, image, question)

Visual question answering

question = "How many people are in the image?"
response = ask(model, image, question)

Object detection (textual)

question = "List all the objects you can see in this image."
response = ask(model, image, question)

Scene understanding

question = "What is happening in this scene?"
response = ask(model, image, question)

Document understanding

question = "What is the main topic of this document?"
response = ask(model, document_image, question)

Training custom model

# Stage 1: Feature alignment (558K image-caption pairs)
bash scripts/v1_5/pretrain.sh

# Stage 2: Visual instruction tuning (150K instruction data)
bash scripts/v1_5/finetune.sh

Quantization (reduce VRAM)

# 4-bit quantization
tokenizer, model, image_processor, context_len = load_pretrained_model(
    model_path="liuhaotian/llava-v1.5-13b",
    model_base=None,
    model_name=get_model_name_from_path("liuhaotian/llava-v1.5-13b"),
    load_4bit=True  # Reduces VRAM ~4×
)

# 8-bit quantization
load_8bit=True  # Reduces VRAM ~2×

Best practices

  1. Start with 7B model - Good quality, manageable VRAM
  2. Use 4-bit quantization - Reduces VRAM significantly
  3. GPU required - CPU inference extremely slow
  4. Clear prompts - Specific questions get better answers
  5. Multi-turn conversations - Maintain conversation context
  6. Temperature 0.2-0.7 - Balance creativity/consistency
  7. max_new_tokens 512-1024 - For detailed responses
  8. Batch processing - Process multiple images sequentially

Performance

Model VRAM (FP16) VRAM (4-bit) Speed (tokens/s)
7B ~14 GB ~4 GB ~20
13B ~28 GB ~8 GB ~12
34B ~70 GB ~18 GB ~5

On A100 GPU

Benchmarks

LLaVA achieves competitive scores on:

  • VQAv2: 78.5%
  • GQA: 62.0%
  • MM-Vet: 35.4%
  • MMBench: 64.3%

Limitations

  1. Hallucinations - May describe things not in image
  2. Spatial reasoning - Struggles with precise locations
  3. Small text - Difficulty reading fine print
  4. Object counting - Imprecise for many objects
  5. VRAM requirements - Need powerful GPU
  6. Inference speed - Slower than CLIP

Integration with frameworks

LangChain

from langchain.llms.base import LLM

class LLaVALLM(LLM):
    def _call(self, prompt, stop=None):
        # Custom LLaVA inference
        return response

llm = LLaVALLM()

Gradio App

import gradio as gr

def chat(image, text, history):
    response = ask_llava(model, image, text)
    return response

demo = gr.ChatInterface(
    chat,
    additional_inputs=[gr.Image(type="pil")],
    title="LLaVA Chat"
)
demo.launch()

Resources

Version History

  • e0dfcf2 Current 2026-07-25 11:37

Dependencies

Same Skill Collection

optional-skills/autonomous-ai-agents/antigravity-cli/SKILL.md
optional-skills/autonomous-ai-agents/blackbox/SKILL.md
optional-skills/autonomous-ai-agents/grok/SKILL.md
optional-skills/autonomous-ai-agents/honcho/SKILL.md
optional-skills/autonomous-ai-agents/openhands/SKILL.md
optional-skills/blockchain/evm/SKILL.md
optional-skills/blockchain/hyperliquid/SKILL.md
optional-skills/blockchain/solana/SKILL.md
optional-skills/creative/audiocraft-audio-generation/SKILL.md
optional-skills/creative/baoyu-article-illustrator/SKILL.md
optional-skills/creative/baoyu-comic/SKILL.md
optional-skills/creative/blender-mcp/SKILL.md
optional-skills/creative/concept-diagrams/SKILL.md
optional-skills/creative/creative-ideation/SKILL.md
optional-skills/creative/heartmula/SKILL.md
optional-skills/creative/kanban-video-orchestrator/SKILL.md
optional-skills/creative/meme-generation/SKILL.md
optional-skills/creative/pixel-art/SKILL.md
optional-skills/creative/tldraw-offline/SKILL.md
optional-skills/creative/unreal-mcp/SKILL.md
optional-skills/data-science/jupyter-notebook/SKILL.md
optional-skills/devops/cli/SKILL.md
optional-skills/devops/docker-management/SKILL.md
optional-skills/devops/hermes-s6-container-supervision/SKILL.md
optional-skills/devops/pinggy-tunnel/SKILL.md
optional-skills/devops/watchers/SKILL.md
optional-skills/dogfood/adversarial-ux-test/SKILL.md
optional-skills/finance/3-statement-model/SKILL.md
optional-skills/finance/comps-analysis/SKILL.md
optional-skills/finance/dcf-model/SKILL.md
optional-skills/finance/excel-author/SKILL.md
optional-skills/finance/lbo-model/SKILL.md
optional-skills/finance/stocks/SKILL.md
optional-skills/gaming/minecraft-modpack-server/SKILL.md
optional-skills/health/fitness-nutrition/SKILL.md
optional-skills/health/neuroskill-bci/SKILL.md
optional-skills/mcp/mcp-oauth-remote-gateway/SKILL.md
optional-skills/mcp/mcporter/SKILL.md
optional-skills/migration/openclaw-migration/SKILL.md
optional-skills/mlops/accelerate/SKILL.md
optional-skills/mlops/clip/SKILL.md
optional-skills/mlops/flash-attention/SKILL.md
optional-skills/mlops/guidance/SKILL.md
optional-skills/mlops/huggingface-tokenizers/SKILL.md
optional-skills/mlops/inference/outlines/SKILL.md
optional-skills/mlops/models/segment-anything-model/SKILL.md
optional-skills/mlops/nemo-curator/SKILL.md
optional-skills/mlops/obliteratus/SKILL.md
optional-skills/mlops/peft/SKILL.md

Metadata

Files
0
Version
e0dfcf2
Hash
ee0406e4
Indexed
2026-07-25 11:37

Главная - Вики-сайт
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-05 07:02
浙ICP备14020137号-1 $Гость$