ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

LLaVA 在 Windows 上的安装与 16 位推理实战指南

LLaVA 在 Windows 上的安装与 16 位推理实战指南 LLaVA 在 Windows 上的安装与 16 位推理实战指南【免费下载链接】LLaVA[NeurIPS23 Oral] Visual Instruction Tuning (LLaVA) built towards GPT-4V level capabilities and beyond.项目地址: https://gitcode.com/gh_mirrors/ll/LLaVALLaVALarge Language and Vision Assistant是面向 GPT-4 级别多模态能力构建的视觉指令微调模型其官方训练与推理主要在 Linux CUDA 环境下完成。本指南以仓库中的 Windows 支持文档 为核心完整讲解在原生 Windows 上安装 LLaVA 环境的步骤、运行 CLI 与 Web 演示的方法并结合仓库源码解释 16 位推理、bitsandbytes 卸载等关键设计背后的原理帮助读者在 Windows 上快速跑通 LLaVA 的视觉对话推理。Windows 支持范围16 位推理与已知限制官方文档在开头就给出了一条明确结论LLaVA 在 Windows 上并未被完全支持当前仅支持 16-bitFP16推理。对于更完整的功能支持官方建议暂时使用 WSL2 运行Windows 上的更多功能仍在陆续补充中。这一限制并非空穴来风从源码中可以找到对应证据。在 llava/model/builder.py 的load_pretrained_model函数中模型的加载路径是这样分流的传入load_8bit时设置kwargs[load_in_8bit] True传入load_4bit时设置load_in_4bit与BitsAndBytesConfig4 位量化依赖bitsandbytes库两者都不传时统一设置kwargs[torch_dtype] torch.float16即默认以 FP16 精度加载模型——这正是 Windows 上唯一受支持的推理模式。此外pyproject.toml 的依赖列表中显式包含bitsandbytes而该库对原生 Windows 的支持并不完善因此官方安装步骤要求安装完成后将其卸载以保证在 Windows 上不会因量化相关依赖引发运行时错误。一句话总结当前能力边界能力Windows 原生支持情况16-bitFP16推理✅ 支持4-bit / 8-bit 量化推理❌ 不支持Gradio Web 演示✅ 支持需自行启动服务CLI 命令行对话✅ 支持训练 / 完整功能❌ 建议使用 WSL2安装前准备在开始之前请确认以下前置条件64 位 Windows 10 / Windows 11 系统NVIDIA GPU 与已安装的 NVIDIA 驱动支持 CUDA 11.7 或兼容版本因为安装步骤中的 PyTorch 为 CUDA 11.7cu117构建版本Anaconda 或 Miniconda用于创建隔离的 Python 环境官方指定 Python 3.10本仓库的代码可通过 git clone 获取见下文。若你的显卡显存较小需要注意由于 Windows 上无法使用 4-bit / 8-bit 量化来压缩显存占用请根据模型大小评估显存是否充足。例如 LLaVA-1.5-7B 以 FP16 加载大约需要 14GB 以上显存13B 模型则需要更多这也是官方文档中目前仅支持 16 位推理对硬件要求的实际含义。完整安装步骤1. 克隆仓库并进入目录git clone https://gitcode.com/gh_mirrors/ll/LLaVA.git cd LLaVA2. 创建并激活 Conda 环境conda create -n llava python3.10 -y conda activate llavaPython 3.10 是官方在 Windows 与 macOS 安装文档中统一指定的版本与仓库 pyproject.toml 声明的requires-python 3.8兼容。3. 升级 pip 并安装 CUDA 版 PyTorchpython -m pip install --upgrade pip # enable PEP 660 support pip install torch2.0.1cu117 torchvision0.15.2cu117 torchaudio2.0.2 --index-url https://download.pytorch.org/whl/cu117这里有两个值得注意的细节--upgrade pip的目的注释中写明是为了启用 PEP 660 支持。PEP 660 定义了可编辑安装editable install的标准构建方式pip install -e .依赖它才能正确安装当前仓库这种基于pyproject.toml构建的包固定 CUDA 版本torch2.0.1cu117表示 PyTorch 2.0.1 的 CUDA 11.7 构建版本需从 PyTorch 官方 wheel 源安装--index-url参数指定了下载源请勿省略该参数否则默认源可能安装 CPU 版本或版本不匹配。4. 以可编辑模式安装 LLaVA 包pip install -e .-e .会依据 pyproject.toml 读取项目元数据与依赖torch、transformers、accelerate、bitsandbytes、gradio等并将llava包以开发模式链接进当前环境后续git pull更新代码后无需重新安装即可生效。5. 卸载 bitsandbytespip uninstall bitsandbytes这是 Windows 安装流程中不可省略的一步。尽管bitsandbytes是 pyproject.toml 中声明的常规依赖用于 4-bit / 8-bit 量化推理但它在原生 Windows 上的支持不完整且 Windows 版 LLaVA 仅支持 16 位推理量化能力派不上用场。卸载它可以避免load_pretrained_model在初始化量化配置时因底层库兼容性问题报错。安装自检安装完成后可以在llava环境中执行以下命令做一次快速验证python -c import torch; print(torch.__version__, torch.cuda.is_available()) python -c from llava.model.builder import load_pretrained_model; print(ok)第一行应输出2.0.1cu117且torch.cuda.is_available()为True前提是驱动与 CUDA 环境正常第二行验证 LLaVA 包可正常导入。运行 DemoCLI 与 Gradio Web 两种方式官方文档指出Demo 的具体启动方式参见项目 README。在 Windows 上Demo 有两条路径CLI 交互式对话与Gradio Web 界面。两者都以 16 位精度推理均不支持追加--load-4bit/--load-8bit参数。方式一CLI 交互式推理CLI 入口位于 llava/serve/cli.py它会加载模型后进入命令行循环用户输入文字即可与模型围绕图片进行多轮对话。启动命令python -m llava.serve.cli \ --model-path liuhaotian/llava-v1.5-7b \ --image-file path/to/your/image.jpg \ --temperature 0.2 \ --max-new-tokens 512其中--model-path既可以是 HuggingFace 模型仓库名首次运行会自动下载权重也可以是本地权重目录--image-file支持本地路径。关键参数与默认值如下见 cli.py参数默认值说明--model-pathfacebook/opt-350m模型路径或 HuggingFace 仓库名--model-baseNone加载未合并的 LoRA 权重时指定基础 LLM--image-file必填待对话图片路径--devicecuda推理设备Windows 上保持默认--temperature0.2采样温度0时开启采样--max-new-tokens512最大生成 token 数--load-8bit/--load-4bit关闭Windows 上不可使用CLI 的完整推理流程可参考 cli.py从load_pretrained_model加载 tokenizer / 模型 / 图像处理器经过process_images预处理图片、tokenizer_image_token将image占位符替换为图像 token最后调用model.generate流式输出文本。下图展示了 CLI 模式下的实际运行效果与本地图片 文字对话的交互界面方式二Gradio Web 界面Web 演示采用「控制器 Web 服务器 模型工作节点」的三段式架构需要依次启动三个进程参见 README 的 Demo 章节① 启动 ControllerAPI 服务器端口 10000python -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启动后按屏幕输出的 URL 在浏览器中打开界面。此时模型列表为空属正常现象——模型工作节点尚未启动列表会在工作节点注册后自动刷新。③ 启动模型工作节点实际执行推理的 GPU 进程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 running on ... 后刷新 Web 界面即可看到该模型出现在列表里。若显存不足可将--model-path换成 7B 模型如需在同一界面对比多个模型可启动多个 worker只需保持--controller不变、为每个 worker 分配不同的--port与--worker端口。需要特别强调的是在 Windows 上请勿为model_worker追加--load-4bit或--load-8bit。从 model_worker.py 的参数定义可以看到这两个开关存在但它们会触发bitsandbytes量化路径而该库已在安装步骤中被卸载且 Windows 仅支持 16 位推理。同理--use-flash-attnFlashAttention-2也属于可选加速项若未安装对应依赖不建议开启。深入源码Windows 上 16 位推理是如何工作的为了让 Windows 上的部署不踩坑有必要理解底层加载逻辑。在 llava/model/builder.py 的load_pretrained_model中def load_pretrained_model(model_path, model_base, model_name, load_8bitFalse, load_4bitFalse, device_mapauto, devicecuda, use_flash_attnFalse, **kwargs): kwargs {device_map: device_map, **kwargs} if device ! cuda: kwargs[device_map] {: device} if load_8bit: kwargs[load_in_8bit] True elif load_4bit: kwargs[load_in_4bit] True kwargs[quantization_config] BitsAndBytesConfig(...) else: kwargs[torch_dtype] torch.float16可以提炼出三点默认即 FP16未显式请求量化时模型以torch.float16精度加载与Windows 仅支持 16-bit 推理的限制完全对应量化与bitsandbytes强绑定4-bit 分支显式构造BitsAndBytesConfig8-bit 分支依赖load_in_8bit两者都需要bitsandbytes在环境中可用这也是 Windows 安装必须卸载它的根本原因设备映射逻辑当device ! cuda时会将device_map强制设为{: device}确保模型整体落在指定设备上Windows 上保持默认cuda即可。图片预处理链路同样值得了解。llava/mm_utils.py 的process_images会根据模型配置的image_aspect_ratio选择处理方式pad模式将非方形图片填充为方形expand2squareanyres模式做任意分辨率切块默认模式直接走图像处理器的标准预处理随后tokenizer_image_tokenmm_utils.py把 prompt 中的image占位符替换为图像 token 索引送入模型。整个推理链路与 Linux 完全一致因此只要环境依赖正确Windows 上同样可以稳定产出推理结果。常见问题与建议Q1为什么量化不可用Windows 版 LLaVA 官方只支持 16 位推理4-bit / 8-bit 依赖的bitsandbytes在原生 Windows 上支持不完整。官方明确表示会陆续补充 4-bit 支持请关注文档更新。Q2显存不足怎么办由于无法量化只能通过选择更小的模型如 7B 而非 13B或降低并发model_worker的--limit-model-concurrency参数默认 5来缓解显存压力。如果显存实在紧张官方建议切换到 WSL2 环境以获得完整功能支持。Q3需要完整功能如训练、量化怎么办请使用 WSL2。Windows 上的 LLaVA 目前定位为可用的 16 位推理环境训练、评估脚本的完整运行支持仍以 Linux含 WSL2为主。若读者使用 Apple Silicon可参考 macOS 支持文档其思路类似仅 16 位推理、需卸载 bitsandbytes、使用--device mps指定设备。Q4更新代码后如何同步在llava环境下执行git pull后重新运行pip install -e .即可可编辑安装模式下依赖更新同样需要重新执行。小结LLaVA 在 Windows 上的官方支持路线清晰且克制完整继承官方安装步骤conda Python 3.10 CUDA 11.7 版 PyTorch 可编辑安装 卸载 bitsandbytes以 16 位精度运行 CLI 或 Gradio 演示。通过 Windows 支持文档 与 模型加载源码 的对照可以看到这一限制根植于量化库的跨平台兼容性而非模型本身。对于希望在本机 Windows 上快速体验多模态视觉对话的开发者而言按照本指南即可完成从环境搭建到实际推理的完整闭环若需要训练或量化等更完整的能力则建议转入 WSL2 环境。【免费下载链接】LLaVA[NeurIPS23 Oral] Visual Instruction Tuning (LLaVA) built towards GPT-4V level capabilities and beyond.项目地址: https://gitcode.com/gh_mirrors/ll/LLaVA创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表