🚀 視覺問答項目
本項目是一個視覺問答應用,基於特定模型訓練,可根據圖像回答相關問題,為圖像理解和交互提供了便捷的方式。
🚀 快速開始
本項目使用 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許可證。