背景
前文讲了一些为啥部署这么多大模型,今天我们来开始实战,留存文档,备忘。
本文部署选择-国内常用为主
| 组件 | 选择技术 | 核心原因 | 替代方案 | 不选替代的原因 |
|---|---|---|---|---|
| Dify | Docker | 1. 官方支持Docker部署 2. 依赖复杂(数据库/Redis等) 3. 需要环境隔离 | 直接安装 | 依赖冲突,维护困难 |
| DeepSeek/Qwen | Ollama | 1. 模型格式支持好(GGUF) 2. 一条命令运行 3. 社区生态完善 | vLLM/TGI | 更复杂,需要更多配置 |
| Embedding/Rerank | Xinference | 1. 专门为向量模型优化 2. 支持多模型并发 3. 生产级API和管理 | 单独部署 | 需自建服务框架,成本高 |
技术匹配矩阵
| 需求特征 | Dify | LLM推理 | 向量模型 | 匹配技术 |
|---|---|---|---|---|
| 多服务编排 | ✅需要 | ❌不需要 | ❌不需要 | →Docker Compose |
| 简单易用 | ❌不是重点 | ✅核心需求 | ⚠️中等需求 | →Ollama最简 |
| 高性能API | ✅需要 | ✅需要 | ✅核心需求 | →Xinference专业 |
| 模型管理 | ❌不需要 | ✅需要 | ✅核心需求 | →Ollama/Xinference |
| 生产就绪 | ✅必须 | ⚠️可选 | ✅必须 | →Xinference企业级 |
一句话选择逻辑
- Dify用Docker:因为它是一套复杂Web应用,需要多个组件协同
- LLM用Ollama:因为你只想快速跑起来测试,不是生产部署
- 向量模型用Xinference:因为这是生产核心服务,需要性能和稳定性
国内最低成本部署方案(严格按三主线)
一、三主线最低成本方案总览
| 主线 | 组件 | 最低成本方案 | 月费用 | 替代方案 | 选择理由 |
|---|---|---|---|---|---|
| 主线1 | 腾讯云 + Docker + Dify | 腾讯云轻量服务器(2核4G6M) | ¥48/月 | 阿里云轻量(¥60) | 最便宜的有公网IP服务器 |
| 主线2 | Ollama + DeepSeek/Qwen | AutoDL RTX 3090(按量计费) | 约¥300-500 | 自己显卡/租赁 | 性价比最高的GPU方案 |
| 主线3 | Xinference + Embedding/Rerank | 与主线2共享AutoDL实例 | ¥0(已含) | 单独租实例 | 充分利用GPU资源 |
总月成本:¥350-550(最经济方案)
二、主线1:腾讯云服务器部署Dify(最便宜方案)
1. 购买最便宜服务器
购买路径:
- 访问:腾讯云轻量服务器
- 选择"2核4G6M"配置
- 地域:上海/广州(网络最好)
- 镜像:Ubuntu 22.04
- 时长:1个月(先测试)
- 价格:¥48元/月
2. 一键安装Docker和Dify(纯命令复制)
SSH登录服务器后,逐行执行:
# 1. 更新系统sudoaptupdate&&sudoaptupgrade -y# 2. 安装Docker(官方脚本)curl-fsSL https://get.docker.com -o get-docker.shsudoshget-docker.sh# 3. 安装Docker Composesudocurl-L"https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname-s)-$(uname-m)"-o /usr/local/bin/docker-composesudochmod+x /usr/local/bin/docker-compose# 4. 下载Dify配置mkdir-p ~/dify&&cd~/difywgethttps://github.com/langgenius/dify/raw/main/docker/docker-compose.yamlwgethttps://github.com/langgenius/dify/raw/main/docker/.env.example -O .env# 5. 修改配置(最小化资源)cat>docker-compose.override.yaml<<EOF version: '3' services: api: deploy: resources: limits: memory: 1G cpus: '1' ports: - "5001:5001" worker: deploy: resources: limits: memory: 1G cpus: '1' web: ports: - "3000:3000" EOF# 6. 启动Difydocker-composeup -d# 7. 查看状态(等待2分钟)sleep120&&docker-composeps3. 配置防火墙(必需)
在腾讯云控制台操作:
- 进入轻量服务器管理页面
- 点击"防火墙" → 添加规则
- 开放端口:3000、5001、80、443
- 保存
4. 访问Dify
- 地址:
http://你的服务器IP:3000 - 初始账号:
admin@example.com - 初始密码:查看容器日志获取
docker-composelogs web|grep"password"
三、主线2:AutoDL部署Ollama(最低成本GPU)
1. 选择最经济GPU实例
AutoDL操作步骤:
- 注册:AutoDL官网(手机号注册)
- 充值:¥100元(按量计费先充)
- 租用实例:
- 地区:北京A(最便宜)
- GPU:RTX 3090(24G显存,性价比最高)
- 镜像:Miniconda + Python 3.8
- 计费模式:按量计费(约¥2-3/小时)
- 开机:按需开机,不用时关机
2. 安装Ollama(复制执行)
在AutoDL终端中执行:
# 1. 安装Ollamacurl-fsSL https://ollama.com/install.sh|sh# 2. 启动Ollama服务ollama serve&# 保持后台运行# 3. 在另一个终端拉取模型(二选一)# 方案A:DeepSeek-Coder(6.7B,编程强)ollama pull deepseek-coder:6.7b# 方案B:Qwen2.5-7B(中文理解好)ollama pull qwen2.5:7b# 4. 测试模型ollama run qwen2.5:7b"你好"# 输入后按Ctrl+D结束3. 设置内网穿透(让腾讯云能访问)
使用AutoDL提供的代理:
- 在实例详情页找到"自定义服务"
- 添加映射:
- 本地端口:11434(Ollama默认)
- 协议:HTTP
- 获得代理地址:类似
https://xxxx.proxy.autodl.com - 测试访问:
应返回模型列表curlhttps://xxxx.proxy.autodl.com/api/tags
四、主线3:同一AutoDL部署Xinference(不额外花钱)
1. 在主线2的实例上安装Xinference
继续在AutoDL终端执行:
# 1. 安装Xinferencepipinstall"xinference[all]"-U# 2. 启动Xinference(使用不同端口)xinferencelocal--host0.0.0.0 --port9997&# 3. 启动Web UI(管理界面)xinferencelocal--host0.0.0.0 --port9998--web-ui&2. 部署Embedding和Rerank模型
# 1. 部署Embedding模型(二选一)# 方案A:BGE-M3(中文最强)xinference launch --model-name"bge-m3"--model-format"pytorch"--endpoint"http://localhost:9997"# 方案B:BGE-small-zh(轻量快速)xinference launch --model-name"bge-small-zh-v1.5"--model-format"pytorch"--endpoint"http://localhost:9997"# 2. 部署Rerank模型(二选一)# 方案A:BGE-reranker-v2xinference launch --model-name"bge-reranker-v2"--model-format"pytorch"--endpoint"http://localhost:9997"# 方案B:bce-reranker-base(轻量)xinference launch --model-name"bce-reranker-base_v1"--model-format"pytorch"--endpoint"http://localhost:9997"3. 配置第二个内网穿透
- 回到AutoDL控制台
- 再添加一个自定义服务:
- 本地端口:9997(Xinference API)
- 协议:HTTP
- 获得第二个代理地址
4. 验证服务
# 测试Embeddingcurl-X POST"你的代理地址/v1/embeddings"\-H"Content-Type: application/json"\-d'{"model": "bge-m3", "input": "测试文本"}'# 测试Rerankcurl-X POST"你的代理地址/v1/rerank"\-H"Content-Type: application/json"\-d'{"model": "bge-reranker-v2", "query": "问题", "documents": ["文档1", "文档2"]}'五、三主线连接配置
在Dify中配置模型端点
- 登录Dify(
http://服务器IP:3000) - 进入"模型供应商" → “添加模型”
配置Ollama(主线2):
- 模型类型:Ollama
- 基础URL:
https://你的ollama代理地址 - 模型名称:
qwen2.5:7b或deepseek-coder:6.7b
配置Xinference(主线3):
- 模型类型:OpenAI兼容
- 基础URL:
https://你的xinference代理地址/v1 - Embedding模型:
bge-m3 - Rerank模型:
bge-reranker-v2
配置工作流
- 在Dify创建"知识库应用"
- 上传PDF/TXT文档
- 配置处理流程:
用户提问 → Embedding检索 → Rerank重排序 → LLM生成 → 返回答案
六、成本控制与优化表
| 成本项 | 控制方法 | 月节省 | 风险 |
|---|---|---|---|
| 腾讯云服务器 | 轻量服务器(¥48)不升级 | ¥200+ | 性能有限 |
| AutoDL GPU | 按量计费 + 不用时关机 | ¥1000+ | 模型需重载 |
| 网络流量 | 国内服务器 + AutoDL国内节点 | ¥100+ | 延迟较低 |
| 模型存储 | 只用必要模型,及时删除 | ¥50+ | 重新下载耗时 |
每日关机策略:
# 创建定时任务(AutoDL实例)# 每天凌晨2点关机,早上9点开机(如需要)# 通过AutoDL控制台"定时任务"设置# 或使用API控制七、常见问题解决表
| 问题 | 现象 | 解决方法 |
|---|---|---|
| Dify访问慢 | 页面加载久 | 1. 检查服务器带宽 2. 优化Docker资源限制 |
| Ollama无响应 | 代理访问失败 | 1. 检查AutoDL实例状态 2. 重新配置内网穿透 |
| Xinference模型加载失败 | 显存不足 | 1. 改用小模型 2. 关闭不需要的服务 |
| 网络延迟高 | 问答响应慢 | 1. 确保所有服务在国内节点 2. 使用CDN加速 |
| 费用超预期 | AutoDL扣费快 | 1. 设置消费限额 2. 严格按时关机 |