【大模型】dify部署问题
·
http://host.docker.internal:11434
环境变量配置
在 D:\code\dify\docker\.env 文件中加入以下代理配置:
# Whether to Enable human input timeout check task
ENABLE_HUMAN_INPUT_TIMEOUT_TASK=true
# Human input timeout check interval in minutes
HUMAN_INPUT_TIMEOUT_TASK_INTERVAL=1
SANDBOX_EXPIRED_RECORDS_CLEAN_TASK_LOCK_TTL=90000
CUSTOM_MODEL_ENABLED=true
OLLAMA_API_BASE_URL=http://127.0.0.1:11434
HTTP_PROXY=http://host.docker.internal:7890
HTTPS_PROXY=http://host.docker.internal:7890
FILES_URL=http://localhost
INTERNAL_FILES_URL=http://api:5001
重启 Docker 服务
执行以下命令重启 Docker 容器:
docker compose down
docker compose up -d
Ollama 模型列表
执行 ollama list 后显示的模型信息如下:
NAME ID SIZE MODIFIED
qwen2.5vl:7b 5ced39dfa4ba 6.0 GB 3 hours ago
dengcao/Qwen3-Reranker-0.6B:Q8_0 c9da58824943 639 MB 4 hours ago
qwen3-embedding:0.6b ac6da0dfba84 639 MB 5 days ago
qwen3:8b 500a1f067a9f 5.2 GB 2 weeks ago
deepseek-r1:1.5b e0979632db5a 1.1 GB 2 weeks ago
结论:模型体积=参数量×精度;显存占用=权重+KV Cache+激活(+VL额外模块),多模态模型显存显著更高。
一、计算原理(核心公式)
-
模型大小(磁盘/显存权重)
- FP32:参数 × 4 byte
- FP16:参数 × 2 byte
- Q8:参数 × 1 byte
- Q4:参数 × 0.5 byte
因为做了量化(通常 Q4),8B 参数按 4bit 存储≈5GB,所以显示 5.2GB。
-
估算公式:模型大小≈参数量 × 每参数字节数
- Q4:0.5 byte → 8B × 0.5 ≈ 4GB(+结构开销≈5.2GB)
- Q8:1 byte → 8B × 1 ≈ 8GB
- FP16:2 byte → 8B × 2 ≈ 16GB
-
快速判断:
- 5.x GB → 基本是 Q4
- 8.x GB → Q8
- 16GB 左右 → 未量化(FP16)
-
运行显存
- 显存 ≈ 权重 + KV Cache + 激活 +(VL视觉模块)
二、你的模型对比(关键差异)
| 模型 | 类型 | 参数 | 权重大小 | 实际显存 |
|---|---|---|---|---|
| qwen3:8b | 纯文本 | 8B | 5.2GB(Q4) | ~8GB |
| qwen2.5vl:7b | 多模态 | 7B | 6.0GB | ~16GB+ |
三、为什么 7B 反而更吃显存
-
多模态开销(核心原因)
- 视觉编码器(ViT)额外占显存
- 图像 → token 数暴涨(远高于文本)
- KV Cache 随 token 数线性增长
-
纯文本模型更轻
- 无视觉分支
- token 数更少
- KV Cache 更小
四、快速判断规则(实战用)
-
看大小判断精度
- ~5GB → Q4
- ~8GB → Q8
- ~16GB → FP16
-
看显存是否异常
- 纯文本:显存 ≈ 权重 × 1.2~1.8
- 多模态:显存 ≈ 权重 × 2~4倍
更多推荐
所有评论(0)