面向机器人视觉理解(窗户开关、积水检测)。本仓库不包含、也不自动下载模型权重。
原 SmolVLM2 相关代码与数据已收拢到 smovlm2/、data/smolvlm2_test/;四模型统一推理与评测在仓库根目录。
VLMs/
├── Qwen3-VL-2B/ # infer.py + weights/ + DOWNLOAD.md
├── Qwen2.5-VL-3B/
├── Cosmos-Reason2-2B/
├── SmolVLM2-2.2B/
├── smovlm2/ # 既有 SmolVLM2 推理/评测(历史路径)
├── datasets/ # 统一 benchmark:test.json + images/
├── data/ # 既有测试数据(smolvlm2_test 等)
├── scripts/ # 推理 / evaluate / check_env
├── results/
├── docs/ENVIRONMENT.md
├── requirements.txt
└── requirements-jetson.txt
先只读体检(不装包):
conda activate smolvlm # 当前最接近需求的已有环境
python /home/gzz/Codes/VLMs/scripts/check_env.py
当前机器摘要见 docs/ENVIRONMENT.md。
若要新建环境(不会自动执行):
bash scripts/setup_env.sh # 只打印命令
conda create -n vlm-bench python=3.10 -y
conda activate vlm-bench
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu124
pip install -r requirements.txt
# 可选 4bit(x86):
pip install bitsandbytes
Qwen2.5-VL 官方还需要:
pip install qwen-vl-utils
不要修改系统 /usr/local/cuda(现为 11.8)。驱动已是 12.8,与 PyTorch cu124 可以并存。
把权重放到各模型的 weights/,目录内需有 config.json 和完整的 *.safetensors(不能只剩 .incomplete)。
~/.local/bin/modelscope(缺 zoneinfo)。先激活 smolvlm:conda activate smolvlm
which modelscope # 应为 .../envs/smolvlm/bin/modelscope
--local-dir(连字符):modelscope download Qwen/Qwen3-VL-2B-Instruct \
--local-dir /home/gzz/Codes/VLMs/Qwen3-VL-2B/weights
hf download <repo_id> --local-dir <dir>
# 旧写法 huggingface-cli download 仍可用,但会提示 deprecated
断点续传:空间不足或超时后,不要删 *.incomplete,对同一 --local-dir 再执行同一命令即可续传。
下完确认:无 .incomplete;Qwen2.5-VL-3B 应同时有 model-00001-of-00002.safetensors 与 model-00002-of-00002.safetensors。
conda activate smolvlm
# ModelScope(国内优先)
modelscope download Qwen/Qwen3-VL-2B-Instruct \
--local-dir /home/gzz/Codes/VLMs/Qwen3-VL-2B/weights
# Hugging Face
hf download Qwen/Qwen3-VL-2B-Instruct \
--local-dir /home/gzz/Codes/VLMs/Qwen3-VL-2B/weights
modelscope download Qwen/Qwen2.5-VL-3B-Instruct \
--local-dir /home/gzz/Codes/VLMs/Qwen2.5-VL-3B/weights
hf download Qwen/Qwen2.5-VL-3B-Instruct \
--local-dir /home/gzz/Codes/VLMs/Qwen2.5-VL-3B/weights
完整约 7.0 GB(两个 shard)。若只见一个完整 shard + 一个 .incomplete,说明未下完。
| 点 | 说明 |
|---|---|
| ModelScope | 无此模型,modelscope download nvidia/Cosmos-Reason2-2B → 404,属正常 |
| Hugging Face | gated:需登录并在模型页 Accept 许可后才能下 |
| 镜像 | HF_ENDPOINT=https://hf-mirror.com 对 gated 仓仍可能 403 |
官网:
通过许可后:
conda activate smolvlm
# 建议 unset 镜像后再下 gated 模型
unset HF_ENDPOINT
hf download nvidia/Cosmos-Reason2-2B \
--local-dir /home/gzz/Codes/VLMs/Cosmos-Reason2-2B/weights
或在网页手动下载,必下(约 4.6 GB):
model.safetensors(~4.5 GB)config.json、generation_config.jsonpreprocessor_config.json、video_preprocessor_config.jsontokenizer.json、tokenizer_config.json、chat_template.jsonmerges.txt、vocab.json可不下:README.md、.gitattributes、三张 PNG 展示图。
modelscope download HuggingFaceTB/SmolVLM2-2.2B-Instruct \
--local-dir /home/gzz/Codes/VLMs/SmolVLM2-2.2B/weights
hf download HuggingFaceTB/SmolVLM2-2.2B-Instruct \
--local-dir /home/gzz/Codes/VLMs/SmolVLM2-2.2B/weights
各模型目录还有 DOWNLOAD.md。
| 现象 | 原因 | 处理 |
|---|---|---|
No module named 'zoneinfo' | 系统 Python 3.8 的 modelscope | conda activate smolvlm 后再下 |
ModelScope Read timed out | 网络抖动 | 重试同一命令续传 |
ModelScope Cosmos 404 record not found | Hub 无此仓 | 改用 Hugging Face |
HF GatedRepoError / 403 | 未 Accept 许可或未登录 | 打开模型页同意许可,hf auth login |
| 磁盘 97% 满 | /home 空间不足 | 先清缓存再续传(勿删 .incomplete) |
默认 只读本地 weights(local_files_only=True)。不要加 --allow-download,除非你明确要联网。
conda activate smolvlm
cd /home/gzz/Codes/VLMs
python scripts/infer_qwen3_vl.py \
--image datasets/images/window/placeholder_closed.jpg \
--task window --precision bf16 --attn sdpa
python scripts/infer_qwen25_vl.py \
--image datasets/images/puddle/placeholder_water.jpg \
--task puddle --precision fp16 --quant 4bit
python scripts/infer_cosmos_reason2.py \
--image datasets/images/window/placeholder_open.jpg \
--task window --max-new-tokens 256
python scripts/infer_smolvlm2.py \
--image datasets/images/puddle/placeholder_dry.jpg \
--task puddle
也可在模型目录:python Qwen3-VL-2B/infer.py --image ...
python scripts/infer_qwen3_vl.py \
--image datasets/images/window \
--task window \
--output results/qwen3_window.json
| 参数 | 含义 | 显存 |
|---|---|---|
--precision bf16 | Ampere/Ada/Orin 推荐 | 权重 ≈ 2 bytes × 参数量 |
--precision fp16 | 兼容性更好 | 同 BF16 |
--quant 4bit | bitsandbytes NF4 | 权重大约 1/4;视觉激活仍可能是 FP16 |
--attn sdpa | 默认,Jetson 友好 | 比 eager 省、比 flash-attn 好装 |
--attn flash_attention_2 | 需编译 flash-attn | 多图/视频更省,Orin 上经常编不过 |
统一 JSON 字段:
{
"image": "",
"prompt": "",
"response": "",
"latency": "",
"gpu_memory": ""
}
机器人任务还会附加 pred_label 与:
{
"object": "",
"state": "",
"confidence": "",
"location_description": ""
}
标注格式见 datasets/test.json 与 datasets/README.md。
python scripts/evaluate_vlm.py \
--model qwen3-vl \
--dataset datasets/test.json \
--skip-missing \
--output results/qwen3-vl_eval.json
--model:qwen3-vl | qwen25-vl | cosmos-reason2 | smolvlm2
输出 summary:
accuracyconfusion_matrices(按 task)average_latency_secaverage_gpu_memory_gb / max_gpu_memory_gb占位图只用于通路检查,不能报真实准确率。
+cu124 包。--attn sdpa。max_pixels(Qwen 官方 256×28×28 ~ 1280×28×28)nvpmodel 拉到 MAXN,并注意散热;否则 token/s 会腰斩。--quant none。| 模型 | 类 | 备注 |
|---|---|---|
| Qwen3-VL-2B | Qwen3VLForConditionalGeneration | transformers ≥ 4.57 |
| Qwen2.5-VL-3B | Qwen2_5_VLForConditionalGeneration | qwen_vl_utils |
| Cosmos-Reason2-2B | 同上 Qwen3-VL | gated;文档 sdpa + fp16 |
| SmolVLM2-2.2B | AutoModelForImageTextToText | 官方示例 flash-attn,本仓库默认 sdpa |
9 commits
Python
77.2%
Shell
14.0%
Jupyter Notebook
8.4%
面向机器人视觉理解(窗户开关、积水检测)。本仓库不包含、也不自动下载模型权重。
原 SmolVLM2 相关代码与数据已收拢到 smovlm2/、data/smolvlm2_test/;四模型统一推理与评测在仓库根目录。
VLMs/
├── Qwen3-VL-2B/ # infer.py + weights/ + DOWNLOAD.md
├── Qwen2.5-VL-3B/
├── Cosmos-Reason2-2B/
├── SmolVLM2-2.2B/
├── smovlm2/ # 既有 SmolVLM2 推理/评测(历史路径)
├── datasets/ # 统一 benchmark:test.json + images/
├── data/ # 既有测试数据(smolvlm2_test 等)
├── scripts/ # 推理 / evaluate / check_env
├── results/
├── docs/ENVIRONMENT.md
├── requirements.txt
└── requirements-jetson.txt
先只读体检(不装包):
conda activate smolvlm # 当前最接近需求的已有环境
python /home/gzz/Codes/VLMs/scripts/check_env.py
当前机器摘要见 docs/ENVIRONMENT.md。
若要新建环境(不会自动执行):
bash scripts/setup_env.sh # 只打印命令
conda create -n vlm-bench python=3.10 -y
conda activate vlm-bench
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu124
pip install -r requirements.txt
# 可选 4bit(x86):
pip install bitsandbytes
Qwen2.5-VL 官方还需要:
pip install qwen-vl-utils
不要修改系统 /usr/local/cuda(现为 11.8)。驱动已是 12.8,与 PyTorch cu124 可以并存。
把权重放到各模型的 weights/,目录内需有 config.json 和完整的 *.safetensors(不能只剩 .incomplete)。
~/.local/bin/modelscope(缺 zoneinfo)。先激活 smolvlm:conda activate smolvlm
which modelscope # 应为 .../envs/smolvlm/bin/modelscope
--local-dir(连字符):modelscope download Qwen/Qwen3-VL-2B-Instruct \
--local-dir /home/gzz/Codes/VLMs/Qwen3-VL-2B/weights
hf download <repo_id> --local-dir <dir>
# 旧写法 huggingface-cli download 仍可用,但会提示 deprecated
断点续传:空间不足或超时后,不要删 *.incomplete,对同一 --local-dir 再执行同一命令即可续传。
下完确认:无 .incomplete;Qwen2.5-VL-3B 应同时有 model-00001-of-00002.safetensors 与 model-00002-of-00002.safetensors。
conda activate smolvlm
# ModelScope(国内优先)
modelscope download Qwen/Qwen3-VL-2B-Instruct \
--local-dir /home/gzz/Codes/VLMs/Qwen3-VL-2B/weights
# Hugging Face
hf download Qwen/Qwen3-VL-2B-Instruct \
--local-dir /home/gzz/Codes/VLMs/Qwen3-VL-2B/weights
modelscope download Qwen/Qwen2.5-VL-3B-Instruct \
--local-dir /home/gzz/Codes/VLMs/Qwen2.5-VL-3B/weights
hf download Qwen/Qwen2.5-VL-3B-Instruct \
--local-dir /home/gzz/Codes/VLMs/Qwen2.5-VL-3B/weights
完整约 7.0 GB(两个 shard)。若只见一个完整 shard + 一个 .incomplete,说明未下完。
| 点 | 说明 |
|---|---|
| ModelScope | 无此模型,modelscope download nvidia/Cosmos-Reason2-2B → 404,属正常 |
| Hugging Face | gated:需登录并在模型页 Accept 许可后才能下 |
| 镜像 | HF_ENDPOINT=https://hf-mirror.com 对 gated 仓仍可能 403 |
官网:
通过许可后:
conda activate smolvlm
# 建议 unset 镜像后再下 gated 模型
unset HF_ENDPOINT
hf download nvidia/Cosmos-Reason2-2B \
--local-dir /home/gzz/Codes/VLMs/Cosmos-Reason2-2B/weights
或在网页手动下载,必下(约 4.6 GB):
model.safetensors(~4.5 GB)config.json、generation_config.jsonpreprocessor_config.json、video_preprocessor_config.jsontokenizer.json、tokenizer_config.json、chat_template.jsonmerges.txt、vocab.json可不下:README.md、.gitattributes、三张 PNG 展示图。
modelscope download HuggingFaceTB/SmolVLM2-2.2B-Instruct \
--local-dir /home/gzz/Codes/VLMs/SmolVLM2-2.2B/weights
hf download HuggingFaceTB/SmolVLM2-2.2B-Instruct \
--local-dir /home/gzz/Codes/VLMs/SmolVLM2-2.2B/weights
各模型目录还有 DOWNLOAD.md。
| 现象 | 原因 | 处理 |
|---|---|---|
No module named 'zoneinfo' | 系统 Python 3.8 的 modelscope | conda activate smolvlm 后再下 |
ModelScope Read timed out | 网络抖动 | 重试同一命令续传 |
ModelScope Cosmos 404 record not found | Hub 无此仓 | 改用 Hugging Face |
HF GatedRepoError / 403 | 未 Accept 许可或未登录 | 打开模型页同意许可,hf auth login |
| 磁盘 97% 满 | /home 空间不足 | 先清缓存再续传(勿删 .incomplete) |
默认 只读本地 weights(local_files_only=True)。不要加 --allow-download,除非你明确要联网。
conda activate smolvlm
cd /home/gzz/Codes/VLMs
python scripts/infer_qwen3_vl.py \
--image datasets/images/window/placeholder_closed.jpg \
--task window --precision bf16 --attn sdpa
python scripts/infer_qwen25_vl.py \
--image datasets/images/puddle/placeholder_water.jpg \
--task puddle --precision fp16 --quant 4bit
python scripts/infer_cosmos_reason2.py \
--image datasets/images/window/placeholder_open.jpg \
--task window --max-new-tokens 256
python scripts/infer_smolvlm2.py \
--image datasets/images/puddle/placeholder_dry.jpg \
--task puddle
也可在模型目录:python Qwen3-VL-2B/infer.py --image ...
python scripts/infer_qwen3_vl.py \
--image datasets/images/window \
--task window \
--output results/qwen3_window.json
| 参数 | 含义 | 显存 |
|---|---|---|
--precision bf16 | Ampere/Ada/Orin 推荐 | 权重 ≈ 2 bytes × 参数量 |
--precision fp16 | 兼容性更好 | 同 BF16 |
--quant 4bit | bitsandbytes NF4 | 权重大约 1/4;视觉激活仍可能是 FP16 |
--attn sdpa | 默认,Jetson 友好 | 比 eager 省、比 flash-attn 好装 |
--attn flash_attention_2 | 需编译 flash-attn | 多图/视频更省,Orin 上经常编不过 |
统一 JSON 字段:
{
"image": "",
"prompt": "",
"response": "",
"latency": "",
"gpu_memory": ""
}
机器人任务还会附加 pred_label 与:
{
"object": "",
"state": "",
"confidence": "",
"location_description": ""
}
标注格式见 datasets/test.json 与 datasets/README.md。
python scripts/evaluate_vlm.py \
--model qwen3-vl \
--dataset datasets/test.json \
--skip-missing \
--output results/qwen3-vl_eval.json
--model:qwen3-vl | qwen25-vl | cosmos-reason2 | smolvlm2
输出 summary:
accuracyconfusion_matrices(按 task)average_latency_secaverage_gpu_memory_gb / max_gpu_memory_gb占位图只用于通路检查,不能报真实准确率。
+cu124 包。--attn sdpa。max_pixels(Qwen 官方 256×28×28 ~ 1280×28×28)nvpmodel 拉到 MAXN,并注意散热;否则 token/s 会腰斩。--quant none。| 模型 | 类 | 备注 |
|---|---|---|
| Qwen3-VL-2B | Qwen3VLForConditionalGeneration | transformers ≥ 4.57 |
| Qwen2.5-VL-3B | Qwen2_5_VLForConditionalGeneration | qwen_vl_utils |
| Cosmos-Reason2-2B | 同上 Qwen3-VL | gated;文档 sdpa + fp16 |
| SmolVLM2-2.2B | AutoModelForImageTextToText | 官方示例 flash-attn,本仓库默认 sdpa |
9 commits
Python
77.2%
Shell
14.0%
Jupyter Notebook
8.4%