🚀 视觉问答项目
本项目是一个视觉问答应用,基于特定模型训练,可根据图像回答相关问题,为图像理解和交互提供了便捷的方式。
🚀 快速开始
本项目使用 TinyLlama 作为基础模型,并借助 BakLlava 仓库进行训练。
✨ 主要特性
- 基于强大的基础模型进行训练,具备较好的视觉问答能力。
- 支持在不同设备上运行,可通过Gradio网页界面进行交互。
- 可以同时启动多个模型工作器,方便对比不同模型的效果。
📦 安装指南
如果您不使用Linux系统,请不要继续操作,请参考 macOS 和 Windows 的安装说明。
克隆仓库并进入目录
git clone https://github.com/haotian-liu/LLaVA.git
cd LLaVA
安装必要包
conda create -n llava python=3.10 -y
conda activate llava
pip install --upgrade pip # 启用PEP 660支持
pip install -e .
安装训练所需的额外包
pip install -e ".[train]"
pip install flash-attn --no-build-isolation
升级到最新代码库
git pull
pip install -e .
启动控制器
python -m llava.serve.controller --host 0.0.0.0 --port 10000
启动Gradio网页服务器
python -m llava.serve.gradio_web_server --controller http://localhost:10000 --model-list-mode reload
此时,您已经启动了Gradio网页界面。现在,您可以使用屏幕上打印的URL打开网页界面。您可能会注意到模型列表中没有模型,不用担心,因为我们还没有启动任何模型工作器。当您启动模型工作器时,列表会自动更新。
启动模型工作器
这是实际在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 ameywtf/tinyllava-1.1b-v0.1
等待进程完成模型加载,直到您看到 "Uvicorn running on ..."。现在,刷新您的Gradio网页界面,您将在模型列表中看到刚刚启动的模型。
您可以根据需要启动任意数量的工作器,并在同一个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芯片的苹果设备,可以使用 --device
标志指定mps设备:--device mps
。
💻 使用示例
基础用法
提问均为 "What is shown in the given image?"(给定图像中显示的是什么?)


📄 许可证
本项目采用Apache-2.0许可证。