LLaVA

GitHub
24.6k 2.8k 中等 1 次阅读 今天Apache-2.0其他语言模型开发框架
AI 解读 由 AI 自动生成,仅供参考

LLaVA(Large Language and Vision Assistant)是一款开源的多模态人工智能模型,旨在让大语言模型具备理解和分析图像的能力。它通过“视觉指令微调”技术,将强大的语言模型与视觉编码器相结合,使用户能够像与 GPT-4V 交互一样,直接上传图片并询问关于图片内容的问题,例如描述场景、识别物体或解答图表数据。

LLaVA 主要解决了传统大语言模型无法直接“看”图的局限,打破了文本与视觉信息之间的壁垒。它无需复杂的专用训练,即可在零样本情况下展现出惊人的图像理解力,甚至在部分基准测试中超越了早期的商业闭源模型。其独特的技术亮点在于高效的视觉指令微调方法,以及最新 LLaVA-NeXT 版本对更高分辨率图像、视频任务的支持,并能灵活适配 Llama-3、Qwen 等主流基座模型。

这款工具非常适合 AI 研究人员探索多模态前沿技术,也适合开发者将其集成到需要图像理解功能的应用程序中。同时,由于社区提供了便捷的演示和部署方案,对多模态交互感兴趣的普通用户和技术爱好者也能轻松体验其能力。无论是构建智能助手、自动化数据分析,还是进行学术研究,LLaVA 都提供了一个强大且开放的基石。

使用场景

某电商平台的客服团队每天需处理成千上万张用户上传的商品破损或发错货的照片,传统流程依赖人工逐一查看并录入系统。

没有 LLaVA 时

  • 客服人员必须肉眼仔细辨别图片细节,耗时费力且容易因疲劳产生误判。
  • 无法直接通过自然语言询问图片内容(如“这个划痕在什么位置?”),只能依靠人工描述转录。
  • 遇到复杂场景(如包装完好但内部物品碎裂)时,非专业人员难以准确界定责任归属。
  • 大量图片数据沉睡在服务器中,无法转化为结构化文本数据用于后续的质量分析。
  • 响应速度慢,用户往往需要等待数小时甚至隔天才能收到初步反馈,严重影响体验。

使用 LLaVA 后

  • LLaVA 能自动“看懂”用户上传的图片,瞬间识别出破损类型、位置及严重程度,并生成详细文字报告。
  • 支持多轮视觉对话,系统可直接回答“包装盒是否变形”或“标签是否匹配”等具体问题,无需人工介入。
  • 面对复杂场景,LLaVA 结合视觉与逻辑推理能力,能准确判断是物流问题还是发货错误,辅助定责。
  • 自动将图片信息转化为结构化数据存入数据库,为产品质检和物流优化提供实时数据支撑。
  • 实现秒级自动回复,用户上传图片后立即获得初步解决方案,大幅缩短客诉处理周期。

LLaVA 将原本割裂的视觉感知与语言理解能力深度融合,让机器真正具备了像人类专家一样“看图说话”并解决实际问题的高效生产力。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU
  • 训练必需 NVIDIA GPU (如 8xA100, RTX 3090, RTX A6000)
  • 推理支持 4-bit 量化在 12GB VRAM 上运行,也支持 Intel dGPU 和 CPU
内存

未说明

依赖
notes非 Linux 用户需参考专门的 macOS 或 Windows 文档。训练建议安装 flash-attn(无隔离构建)。支持 LoRA 微调以降低显存需求。支持 llama.cpp 进行 4-bit/5-bit 量化推理。项目依赖的基础模型(如 LLaMA)和数据集需遵守各自的原始许可证。
python3.10
torch
transformers
accelerate
peft
flash-attn
deepspeed
scikit-learn
sentencepiece
bitsandbytes
LLaVA hero image

快速开始

🌋 LLaVA:大型语言与视觉助手

面向具备 GPT-4 级别能力的大型语言和视觉模型的视觉指令微调。

[📢 LLaVA-NeXT 博客] [项目页面] [演示] [数据] [模型库]

🤝社区贡献:[llama.cpp] [Colab] [🤗Space] [Replicate] [AutoGen] [BakLLaVA]

通过视觉指令微调改进基线模型 [论文] [HF]
刘浩天, 李春元, 李宇恒, 李永宰

视觉指令微调(NeurIPS 2023,口头报告)[论文] [HF]
刘浩天*, 李春元*, 吴庆阳, 李永宰 (同等贡献)

发布

  • [2024/05/10] 🔥 LLaVA-NeXT(更强)模型发布,支持 LLama-3(8B)和 Qwen-1.5(72B/110B)的更强大的 LMM。[博客] [检查点] [演示] [代码]
  • [2024/05/10] 🔥 LLaVA-NeXT(视频)发布。仅基于图像训练的 LLaVA-NeXT 模型在视频任务上表现出惊人的强大性能,实现了零样本模态迁移。通过对视频进行 AI 反馈的 DPO 训练可以显著提升性能。[博客] [检查点] [代码]
  • [03/10] 发布 LMMs-Eval,这是我们开发 LLaVA-NeXT 时使用的高效评估流水线。它支持对数十个公开数据集上的 LMM 进行评估,并允许新数据集的接入,从而大大加快了新 LMM 的开发速度。[博客] [代码库]
  • [1/30] 🔥 LLaVA-NeXT(LLaVA-1.6)发布!通过对 LLaVA-1.5 进一步扩展,LLaVA-NeXT-34B 在某些基准测试中超越了 Gemini Pro。现在它可以处理 4 倍于以往的像素,并执行更多任务和应用。请查看 博客文章 并体验 演示!模型可在 模型库 中找到。训练/评估数据和脚本将很快发布。
  • [11/10] LLaVA-Plus 发布:学习使用工具创建多模态智能体,配备 LLaVA-Plus(可插拔并学习技能的 LLaVA)。[项目页面] [演示] [代码] [论文]
  • [11/2] LLaVA-Interactive 发布:通过一体化演示体验人机多模态交互的未来,涵盖图像聊天、分割、生成和编辑等功能。[项目页面] [演示] [代码] [论文]
  • [10/26] 🔥 使用 LoRA 的 LLaVA-1.5 获得了与全模型微调相当的性能,同时降低了 GPU 内存需求(检查点脚本)。我们还提供了一份 文档,介绍如何使用 LoRA 在您自己的数据集上对 LLaVA-1.5 进行微调。
  • [10/12] 请查看由 ETRI 创造的韩语版 LLaVA(Ko-LLaVA),ETRI 慷慨地支持了我们的研究![🤗 演示]
  • [10/5] 🔥 LLaVA-1.5 发布!在 11 个基准测试中达到 SOTA 水平,仅通过对原始 LLaVA 进行简单修改,便利用了所有公开数据,在单个 8-A100 节点上约 1 天内完成训练,超越了诸如 Qwen-VL-Chat 等使用数十亿规模数据的方法。请查看 技术报告,并体验 演示!模型可在 模型库 中找到。LLaVA-1.5 的训练数据和脚本已在 这里 发布,评估脚本则在 这里 发布!
  • [9/26] LLaVA 通过人类反馈强化学习(RLHF)进行了改进,以提高事实准确性并减少幻觉现象。请在项目 [LLavA-RLHF] 中查看新的 SFT 和 RLHF 检查点。
  • [9/22] LLaVA 被 NeurIPS 2023 接受为 口头报告,而 LLaVA-Med 则被 NeurIPS 2023 数据集与基准测试赛道接受为 亮点报告
更多

  • [7/19] 🔥 我们发布了重大升级,包括对 LLaMA-2 的支持、LoRA 训练、4/8 位推理、更高分辨率(336x336)等功能。同时,我们还发布了 LLaVA Bench,用于基准测试开放式视觉聊天任务,并提供了 Bard 和 Bing-Chat 的评测结果。此外,我们也支持并验证了在 RTX 3090 和 RTX A6000 上的训练。请查看 LLaVA-from-LLaMA-2,以及我们的 模型库
  • [6/26] CVPR 2023 教程主题为 大型多模态模型:迈向构建并超越多模态 GPT-4!请查看 [幻灯片] [笔记] [YouTube] [Bilibili]。
  • [6/11] 我们发布了最受期待功能的预览版:DeepSpeed 和 LoRA 支持!请参阅相关文档 这里
  • [6/1] 我们发布了 LLaVA-Med:生物医学领域的大型语言与视觉助手,这是朝着构建具备 GPT-4 级别能力的生物医学领域大型语言与视觉模型迈出的重要一步。请查看 论文项目页面
  • [5/6] 我们正在发布 LLaVA-Lighting-MPT-7B-preview,基于 MPT-7B-Chat!更多详情请见 这里
  • [5/2] 🔥 我们发布了 LLaVA-Lighting!只需花费 40 美元,在 3 小时内即可训练出一个轻量级的多模态 GPT-4!更多详情请见 这里
  • [4/27] 感谢社区的努力,LLaVA-13B 结合 4 位量化技术,现在可以在仅配备 12GB 显存的 GPU 上运行!您可在此体验 这里
  • [4/17] 🔥 我们发布了 LLaVA:大型语言与视觉助手。我们提出了视觉指令微调方法,旨在构建具备 GPT-4 级别能力的大规模语言与视觉模型。请查看 论文演示

代码许可证 使用与许可声明:本项目使用了某些数据集和检查点,这些资源受其各自原始许可证的约束。用户必须遵守所有这些原始许可证中的条款与条件,包括但不限于针对该数据集的 OpenAI 使用条款,以及针对使用该数据集训练的检查点所采用的基础语言模型的具体许可证(例如,针对 LLaMA-2 和 Vicuna-v1.5 的 Llama 社区许可证)。本项目不会施加超出原始许可证规定之外的任何额外限制。此外,提醒用户务必确保其对数据集和检查点的使用符合所有适用的法律法规。

目录

安装

如果您不使用 Linux,请不要继续操作,而是参阅适用于 macOSWindows 的说明。

  1. 克隆本仓库并进入 LLaVA 文件夹
git clone https://github.com/haotian-liu/LLaVA.git
cd LLaVA
  1. 安装软件包
conda create -n llava python=3.10 -y
conda activate llava
pip install --upgrade pip  # 启用 PEP 660 支持
pip install -e .
  1. 安装用于训练场景的附加包
pip install -e ".[train]"
pip install flash-attn --no-build-isolation

升级至最新代码库

git pull
pip install -e .

# 如果升级后出现一些导入错误,
# 请尝试运行以下命令(去掉 #)
# pip install flash-attn --no-build-isolation --no-cache-dir

HuggingFace 快速入门

示例代码
from llava.model.builder import load_pretrained_model
from llava.mm_utils import get_model_name_from_path
from llava.eval.run_llava import eval_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)
)

详细信息请参阅 llava/model/builder.py 中的 load_pretrained_model 函数。

您还可以使用 llava/eval/run_llava.py 中的 eval_model 函数轻松获取输出。通过这种方式,您可以在下载本仓库后直接在 Colab 上运行此代码。

model_path = "liuhaotian/llava-v1.5-7b"
prompt = "我来这里参观时需要注意些什么?"
image_file = "https://llava-vl.github.io/static/images/view.jpg"

args = type('Args', (), {
    "model_path": model_path,
    "model_base": None,
    "model_name": get_model_name_from_path(model_path),
    "query": prompt,
    "conv_mode": None,
    "image_file": image_file,
    "sep": ",",
    "temperature": 0,
    "top_p": None,
    "num_beams": 1,
    "max_new_tokens": 512
})()

eval_model(args)

LLaVA 权重

请查看我们的 模型动物园,以获取所有公开的 LLaVA 检查点,以及如何使用这些权重的说明。

演示

Gradio Web UI

要在本地启动 Gradio 演示,请依次运行以下命令。如果您计划启动多个模型工作节点来比较不同的检查点,只需一次启动控制器和 Web 服务器即可。

flowchart BT
    %% 声明节点
    gws("Gradio (UI 服务器)")
    c("控制器 (API 服务器):<br/>端口: 10000")
    mw7b("模型工作节点:<br/>llava-v1.5-7b<br/>端口: 40000")
    mw13b("模型工作节点:<br/>llava-v1.5-13b<br/>端口: 40001")
    sglw13b("SGLang 后端:<br/>llava-v1.6-34b<br/>http://localhost:30000")
    lsglw13b("SGLang 工作节点:<br/>llava-v1.6-34b<br/>端口: 40002")

    %% 声明样式
    classDef data fill:#3af,stroke:#48a,stroke-width:2px,color:#444
    classDef success fill:#8f8,stroke:#0a0,stroke-width:2px,color:#444
    classDef failure fill:#f88,stroke:#f00,stroke-width:2px,color:#444

    %% 分配样式
    class id,od data;
    class cimg,cs_s,scsim_s success;
    class ncimg,cs_f,scsim_f failure;

    subgraph 演示连接
        direction BT
        c<-->gws
        
        mw7b<-->c
        mw13b<-->c
        lsglw13b<-->c
        sglw13b<-->lsglw13b
    end

启动控制器

python -m llava.serve.controller --host 0.0.0.0 --port 10000

启动 Gradio Web 服务器。

python -m llava.serve.gradio_web_server --controller http://localhost:10000 --model-list-mode reload

您已经成功启动了 Gradio Web 界面。现在,您可以使用屏幕上打印的 URL 打开该界面。您可能会注意到模型列表中还没有任何模型。不用担心,因为我们尚未启动任何模型工作节点。当您启动一个模型工作节点时,模型列表会自动更新。

启动 SGLang 工作节点

这是以高吞吐量服务 LLaVA 模型的推荐方式,您需要先安装 SGLang。请注意,目前 SGLang-LLaVA 尚不支持 4-bit 量化。如果您 GPU 显存有限,请查看带有量化的模型工作节点。

pip install "sglang[all]"

首先,您将启动一个 SGLang 后端工作节点,它将在 GPU 上执行模型推理。请记住您设置的 --port,稍后会用到。

# 单 GPU
CUDA_VISIBLE_DEVICES=0 python3 -m sglang.launch_server --model-path liuhaotian/llava-v1.5-7b --tokenizer-path llava-hf/llava-1.5-7b-hf --port 30000

# 多 GPU 张量并行
CUDA_VISIBLE_DEVICES=0,1 python3 -m sglang.launch_server --model-path liuhaotian/llava-v1.5-13b --tokenizer-path llava-hf/llava-1.5-13b-hf --port 30000 --tp 2

临时分词器:llava-hf/llava-1.5-7b-hfllava-hf/llava-1.5-13b-hfliuhaotian/llava-v1.6-34b-tokenizer

接下来,您将启动一个 LLaVA-SGLang 工作节点,它负责在 LLaVA 控制器和 SGLang 后端之间通信,以路由请求。将 --sgl-endpoint 设置为 http://127.0.0.1:端口,其中 端口 是您刚刚设置的(默认为 30000)。

python -m llava.serve.sglang_worker --host 0.0.0.0 --controller http://localhost:10000 --port 40000 --worker http://localhost:40000 --sgl-endpoint http://127.0.0.1:30000

启动模型工作节点

这是实际在 GPU 上执行推理的工作节点。每个工作节点负责 --model-path 中指定的单个模型。

python -m llava.serve.model_worker --host 0.0.0.0 --controller http://localhost:10000 --port 40000 --worker http://localhost:40000 --model-path liuhaotian/llava-v1.5-13b

等待进程完成模型加载,并看到“Uvicorn 正在运行…”的消息。此时,刷新您的 Gradio Web 界面,您就会在模型列表中看到刚刚启动的模型。

您可以根据需要启动任意数量的工作节点,并在同一 Gradio 界面中比较不同模型的检查点。请保持 --controller 不变,但为每个工作节点修改 --port--worker 的端口号。

python -m llava.serve.model_worker --host 0.0.0.0 --controller http://localhost:10000 --port <不同于 40000,例如 40001> --worker http://localhost:<相应地更改,即 40001> --model-path <ckpt2>

如果您使用的是搭载 M1 或 M2 芯片的 Apple 设备,可以通过 --device 标志指定 mps 设备:--device mps

启动模型工作节点(多 GPU,当 GPU 显存 ≤ 24GB)

如果您的 GPU 显存小于 24GB(例如 RTX 3090、RTX 4090 等),可以尝试使用多 GPU 运行。我们最新的代码库会在您拥有多个 GPU 时自动尝试使用多 GPU。您可以通过 CUDA_VISIBLE_DEVICES 指定要使用的 GPU。以下是使用前两块 GPU 的示例:

CUDA_VISIBLE_DEVICES=0,1 python -m llava.serve.model_worker --host 0.0.0.0 --controller http://localhost:10000 --port 40000 --worker http://localhost:40000 --model-path liuhaotian/llava-v1.5-13b

启动模型工作节点(4-bit、8-bit 推理,量化)

您可以启动带有量化位数(4-bit、8-bit)的模型工作节点,这样可以减少 GPU 内存占用,从而可能在显存低至 12GB 的 GPU 上运行。请注意,使用量化位数进行推理的准确性可能不如全精度模型。只需在您正在执行的模型工作节点命令中添加 --load-4bit--load-8bit 即可。以下是使用 4-bit 量化运行的示例:

python -m llava.serve.model_worker --host 0.0.0.0 --controller http://localhost:10000 --port 40000 --worker http://localhost:40000 --model-path liuhaotian/llava-v1.5-13b --load-4bit

启动模型工作节点(LoRA 权重,未合并)

您可以启动带有 LoRA 权重的模型工作节点,而不将其与基础检查点合并,以节省磁盘空间。虽然加载时间会有所增加,但推理速度与已合并的检查点相同。未合并的 LoRA 检查点在模型名称中没有 lora-merge,通常比已合并的检查点小得多(7B 的未合并版本小于 1GB,而 13B 的未合并版本约为 25GB)。

要加载未合并的 LoRA 权重,您只需传递一个额外的参数 --model-base,即用于训练 LoRA 权重的基础 LLM。您可以在 模型动物园中查看每组 LoRA 权重对应的基础 LLM。

python -m llava.serve.model_worker --host 0.0.0.0 --controller http://localhost:10000 --port 40000 --worker http://localhost:40000 --model-path liuhaotian/llava-v1-0719-336px-lora-vicuna-13b-v1.3 --model-base lmsys/vicuna-13b-v1.3

命令行推理

使用 LLaVA 在无需 Gradio 界面的情况下对图像进行对话。它还支持多 GPU、4 位和 8 位量化推理。采用 4 位量化后,对于我们的 LLaVA-1.5-7B 模型,在单个 GPU 上仅需不到 8GB 显存。

python -m llava.serve.cli \
    --model-path liuhaotian/llava-v1.5-7b \
    --image-file "https://llava-vl.github.io/static/images/view.jpg" \
    --load-4bit

训练

以下是 LLaVA v1.5 的最新训练配置。对于旧版本模型,请暂时参考 版本的 README。我们稍后会将其添加到单独的文档中。

LLaVA 的训练分为两个阶段:(1) 特征对齐阶段:使用我们从 LAION-CC-SBU 数据集中提取的 55.8 万张子集,将一个 冻结的预训练 视觉编码器与一个 冻结的 LLM 连接起来;(2) 视觉指令微调阶段:使用由 GPT 生成的 15 万条多模态指令遵循数据,再加上约 51.5 万条面向学术任务的 VQA 数据,来训练模型遵循多模态指令。

LLaVA 在 8 张 80GB 显存的 A100 GPU 上进行训练。如果希望在较少的 GPU 上训练,可以相应地减少 per_device_train_batch_size 并增加 gradient_accumulation_steps。务必保持全局批次大小不变:per_device_train_batch_size × gradient_accumulation_steps × num_gpus

超参数

我们在微调时使用了与 Vicuna 类似的超参数集合。以下同时提供了预训练和微调所使用的超参数。

  1. 预训练
超参数 全局批次大小 学习率 轮数 最大长度 权重衰减
LLaVA-v1.5-13B 256 1e-3 1 2048 0
  1. 微调
超参数 全局批次大小 学习率 轮数 最大长度 权重衰减
LLaVA-v1.5-13B 128 2e-5 1 2048 0

自动下载 Vicuna 检查点

我们的基础模型 Vicuna v1.5 是一个经过指令微调的聊天机器人,当您运行我们提供的训练脚本时,它会自动下载,无需任何操作。

预训练(特征对齐)

请从 这里 下载我们在论文中使用的带有 BLIP 字幕的 LAION-CC-SBU 数据集 55.8 万张子集。

由于分辨率提升至 336px,LLaVA-v1.5-13B 在 8 张 A100 (80G) 上预训练大约需要 5.5 小时。而 LLaVA-v1.5-7B 则大约需要 3.5 小时。

使用 DeepSpeed ZeRO-2 的训练脚本:pretrain.sh

  • --mm_projector_type mlp2x_gelu:两层 MLP 视觉-语言连接器。
  • --vision_tower openai/clip-vit-large-patch14-336:CLIP ViT-L/14 336px。
LLaVA-7B 在 8 张 V100 (32G) 上预训练大约需要 20 小时

我们在此提供使用 DeepSpeed 的训练脚本 here。 提示:

视觉指令微调

  1. 准备数据

请下载我们指令微调数据最终混合体的标注文件 llava_v1_5_mix665k.json,并从组成数据集的各个来源下载图像:

全部下载完成后,请按照以下方式在 ./playground/data 目录下组织数据:

├── coco
│   └── train2017
├── gqa
│   └── images
├── ocr_vqa
│   └── images
├── textvqa
│   └── train_images
└── vg
    ├── VG_100K
    └── VG_100K_2
  1. 开始训练!

您可以从 Model Zoo 下载我们预训练好的投影器。不建议使用旧版投影器,因为它们可能是用不同版本的代码库训练的,一旦有任何选项设置错误,模型将无法按预期运行或训练。

由于分辨率提升至 336px,LLaVA-v1.5-13B 在 8 张 A100 (80G) 上视觉指令微调大约需要 20 小时。而 LLaVA-v1.5-7B 在 8 张 A100 (40G) 上则大约需要 10 小时。

使用 DeepSpeed ZeRO-3 的训练脚本:finetune.sh

如果您显存不足:

  • 使用 LoRA:finetune_lora.sh。我们可以在 8 张 A100-40G 或 8 张 A6000 上完成 13B 模型的训练,在 8 张 RTX3090 上完成 7B 模型的训练。请确保 per_device_train_batch_size*gradient_accumulation_steps 与提供的脚本一致,以获得最佳的可重复性。
  • zero3.json 替换为 zero3_offload.json,该文件会将部分参数卸载到 CPU 内存中。这会降低训练速度。

如果您有兴趣将 LLaVA 模型微调到自己的任务或数据上,请参阅 Finetune_Custom_Data.md

需要注意的新选项:

  • --mm_projector_type mlp2x_gelu:两层 MLP 视觉-语言连接器。
  • --vision_tower openai/clip-vit-large-patch14-336:CLIP ViT-L/14 336px。
  • --image_aspect_ratio pad:此选项会将非正方形图像填充为正方形,而不是裁剪它们;这可以略微减少幻觉现象。
  • --group_by_modality_length True:此选项仅应在您的指令微调数据集同时包含语言(例如 ShareGPT)和多模态(例如 LLaVA-Instruct)数据时使用。它会使训练采样器在训练过程中只采样单一模态(要么是图像,要么是语言),我们观察到这样可以使训练速度加快约 25%,且不会影响最终结果。

评估

在 LLaVA-1.5 中,我们使用一组多样化的 12 个基准测试来评估模型。为了确保可重复性,我们使用贪婪解码来评估模型。我们不使用束搜索进行评估,以使推理过程与实时输出的聊天演示保持一致。

详情请参阅 Evaluation.md

GPT辅助评估

我们提供的多模态建模GPT辅助评估流程,旨在全面了解视觉-语言模型的能力。更多详情请参阅我们的论文。

  1. 生成LLaVA响应
python model_vqa.py \
    --model-path ./checkpoints/LLaVA-13B-v0 \
    --question-file \
    playground/data/coco2014_val_qa_eval/qa90_questions.jsonl \
    --image-folder \
    /path/to/coco2014_val \
    --answers-file \
    /path/to/answer-file-our.jsonl
  1. 对生成的响应进行评估。在本例中,answer-file-ref.jsonl 是由纯文本GPT-4 (0314) 生成的响应,上下文包含说明文字和边界框信息。
OPENAI_API_KEY="sk-***********************************" python llava/eval/eval_gpt_review_visual.py \
    --question playground/data/coco2014_val_qa_eval/qa90_questions.jsonl \
    --context llava/eval/table/caps_boxes_coco2014_val_80.jsonl \
    --answer-list \
    /path/to/answer-file-ref.jsonl \
    /path/to/answer-file-our.jsonl \
    --rule llava/eval/table/rule.json \
    --output /path/to/review.json
  1. 总结评估结果
python summarize_gpt_review.py

引用

如果您发现LLaVA对您的研究和应用有所帮助,请使用以下BibTeX格式引用:

@misc{liu2024llavanext,
    title={LLaVA-NeXT:改进的推理能力、OCR与世界知识},
    url={https://llava-vl.github.io/blog/2024-01-30-llava-next/},
    author={刘浩天、李春元、李宇恒、李博、张元翰、沈胜、李勇宰},
    month={一月},
    year={2024}
}

@misc{liu2023improvedllava,
      title={通过视觉指令微调改进基线}, 
      author={刘浩天、李春元、李宇恒、李勇宰},
      publisher={arXiv:2310.03744},
      year={2023},
}

@misc{liu2023llava,
      title={视觉指令微调}, 
      author={刘浩天、李春元、吴清阳、李勇宰},
      publisher={NeurIPS},
      year={2023},
}

致谢

  • Vicuna:我们基于其代码库构建,并以此为基础模型Vicuna-13B,它拥有卓越的语言能力!

相关项目

如需未来项目创意,请查看:

版本历史

v1.2.02024/01/31
v1.1.32023/10/26
v1.1.12023/10/12
v1.1.02023/10/08
v1.0.22023/09/05
v1.0.12023/07/30

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|今天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|昨天
Agent图像开发框架