图文跨模态融合基础 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."
相关推荐
jerryinwuhan13 小时前
LORA时间
人工智能
码农葫芦侠13 小时前
Vercel Labs Skills:AI 编程安装「技能Skills」的工具
人工智能·ai·ai编程
宝贝儿好13 小时前
【强化学习】第十章:连续动作空间强化学习:随机高斯策略、DPG算法
人工智能·python·深度学习·算法·机器人
未来之窗软件服务13 小时前
AI人工智能(二十三)错误示范ASR 语音识别C#—东方仙盟练气期
人工智能·c#·语音识别·仙盟创梦ide·东方仙盟
金智维科技官方13 小时前
智能体,重构企业自动化未来
人工智能·自动化·agent·智能体·数字员工
桂花饼13 小时前
谷歌正式发布 Gemini 3.1 Pro:核心智能升级与国内极速接入指南
人工智能·qwen3-next·claude-sonnet·sora2pro·gemini-3.1pro·grok-420-fast·openclaw 配置教程
Mixtral14 小时前
2026年3款AI会议记录工具测评:告别会后整理
人工智能
Evand J14 小时前
【课题推荐】深度学习驱动的交通流量预测系统(基于LSTM的交通流量预测系统),MATLAB实现
人工智能·深度学习·matlab·课题简介
甲枫叶14 小时前
【claude热点资讯】Claude Code 更新:手机遥控电脑开发,Remote Control 功能上线
java·人工智能·智能手机·产品经理·ai编程
光头颜14 小时前
任务分解与子 Agent 调度:Controller/Worker 模式的最小可运行实现(SQL + 文档 RAG)
人工智能·智能体