图文跨模态融合基础 3:基于Windows和WSL构建LLaVA(视觉语言模型)研究环境

1.进入官方仓库,手动下载代码(git拉取可能会有网络问题)

官方repo:https://github.com/haotian-liu/LLaVA

2.把压缩包放到WSL能看到的地方(这里放的是:D:\repo_zips)

3.在WSL创建新用户(避免污染),创建过程中需要设置密码,填完后全按回车即可。

bash 复制代码
adduser llava

4.给用户权限,并转到用户,需要输入密码

bash 复制代码
usermod -aG sudo llava
su - llava

5.安装unzip工具包

bash 复制代码
sudo apt-get update
sudo apt-get install -y unzip

6.现在Linux文件home中创建work文件夹方便整理文件,解压官方库的压缩包(这里unzip 指令后跟着的是/mnt/ 加上本地存储路径)

bash 复制代码
mkdir -p ~/work && cd ~/work
unzip /mnt/d/repo_zips/LLaVA-main.zip
ls -lh

解压好后显示:

7.查看文件解压好后,拉wheel先装cuda,这里装的是50系显卡更适配的CUDA12.1,然后用清华镜像拉其他的包最大程度加快速度。

bash 复制代码
ls
python3 -m venv ~/venvs/llava_dev
source ~/venvs/llava_dev/bin/activate
python -m pip install -U pip setuptools wheel
pip uninstall -y torch torchvision torchaudio
pip install -U torch torchvision torchaudio \
  --index-url https://download.pytorch.org/whl/cu121 \
  --extra-index-url https://pypi.tuna.tsinghua.edu.cn/simple \
  --timeout 120 --retries 20

8.验证torch GPU可用

bash 复制代码
python - <<'PY'
import torch
print("torch:", torch.__version__)
print("cuda available:", torch.cuda.is_available())
if torch.cuda.is_available():
    print("gpu:", torch.cuda.get_device_name(0))
    print("cuda runtime:", torch.version.cuda)
PY

9.安装VLM依赖,并复查环境是否变化。因为-e可能会更改环境(有时候对于需求比较新的硬件是一个不好的现象)。

bash 复制代码
pip install -U transformers accelerate bitsandbytes pillow -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install -e . --no-deps
pip install -U transformers accelerate bitsandbytes pillow -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install -U "protobuf<5" -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install -U \
  einops==0.6.1 einops-exts==0.0.4 \
  sentencepiece==0.1.99 shortuuid \
  timm==0.6.13 \
  pydantic \
  -i https://pypi.tuna.tsinghua.edu.cn/simple
python -c "import torch; print(torch.__version__); print(torch.cuda.is_available()); print(torch.cuda.get_device_name(0) if torch.cuda.is_available() else None)"

10.验证editable是否安装成功

bash 复制代码
python -c "import llava; print('llava import OK:', llava.__file__)"

11.在D盘创建一个test文件夹,放入一个demo.jpg测试

12.手动拉取权重:https://huggingface.co/liuhaotian/llava-v1.5-7b/tree/main,下载到本地文件夹(这里放的是D:\repo_zips\llava_weight)。

13.手动拉取视觉塔(clip)依赖,openai/clip-vit-large-patch14-336 at main,下载到本地文件夹(这里放的是D:\repo_zips\llava_weight\openaiclip-vit-large-patch14-336)

14.更改CLIP索引路径,本质上是到文件夹中找到config文件进行修正,修改local的赋值,可以手动改。

bash 复制代码
python - <<'PY'
import json, shutil
p="/mnt/d/repo_zips/llava_weight/config.json"
bak=p+".bak"
shutil.copy2(p,bak)

cfg=json.load(open(p,"r",encoding="utf-8"))
local="/mnt/d/repo_zips\llava_weight\openaiclip-vit-large-patch14-336"

cfg["mm_vision_tower"]=local
json.dump(cfg, open(p,"w",encoding="utf-8"), ensure_ascii=False, indent=2)

print("updated mm_vision_tower ->", local)
print("backup saved ->", bak)
PY

15.跑8bit量化测试

bash 复制代码
export HF_HUB_OFFLINE=1
export TRANSFORMERS_OFFLINE=1

python -m llava.serve.cli \
  --model-path /mnt/d/repo_zips/llava_weight \
  --image-file /mnt/d/test/demo.jpg \
  --load-8bit \
  --max-new-tokens 128 \
  --query "Describe the image in detail: objects, people, and background."
相关推荐
阿_旭1 天前
基于YOLO26深度学习的铁轨部件缺陷检测与语音提示系统【python源码+Pyqt5界面+数据集+训练代码】
人工智能·python·深度学习·铁轨部件缺陷检测
胖祥1 天前
AI之Transform encoder/decoder抽象理解
人工智能
早睡早起好好code1 天前
Qwen2.5-VL研究_待完善...
图像处理·人工智能·笔记·深度学习·学习
zhqh1001 天前
Ubuntu24.04安装ollama,基于GPU,对接openclaw
人工智能·ubuntu·ollama·openclaw
Solar20251 天前
企业数据API对接选型指南:技术架构、评估标准与行业实践
大数据·运维·人工智能·架构·云计算
jghhh011 天前
运动图像的运动轨迹检测与特征点跟踪MATLAB实现
人工智能·计算机视觉·matlab
程序喵大人1 天前
OpenClaw的成功是AI Agent的“iPhone时刻”吗?
人工智能·ios·iphone·openclaw
徐先生 @_@|||1 天前
AI 大模型编程的软件开发范式:SDD(Specification-Driven Development)模式驱动开发
人工智能·驱动开发
weiyvyy1 天前
信息化建设常见误区与避坑指南-实施误区
人工智能·信息可视化·信息与通信·信息化系统
AC赳赳老秦1 天前
OpenClaw 全平台安装详解:Windows 10/11、macOS、Linux 零踩坑指南 (附一键脚本)
大数据·人工智能·python·django·去中心化·ai-native·openclaw