1. 通过 vLLM 接入本地模型
vLLM 是一个高性能的 LLM 推理引擎,支持本地模型的低延迟、高吞吐部署。以下是具体步骤:
1.1 部署 vLLM 服务
- 安装 vLLM:
pip install vllm
- 启动本地模型服务(例如 Llama3):
参数说明:vllm serve --model /path/to/local_model --tensor-parallel-size 1 --port 8000
--tensor-parallel-size
:GPU 并行数量(单卡设为 1)。--port
:服务端口,后续通过 API 调用。
1.2 在 Dify/FastGPT/RagFlow 中配置 vLLM
-
Dify:
- 进入 Dify 的 模型供应商设置,选择 自定义模型。
- 填写 vLLM 的 API 地址(如
http://localhost:8000
)和模型名称。 - 测试连接后保存,即可在工作流中调用本地模型 。
-
FastGPT:
修改config.json
文件,添加 vLLM 的模型配置:{ "model": "vllm-local", "api_base": "http://localhost:8000/v1", "api_key": "none" }
重启 FastGPT 服务生效 。
-
RagFlow:
在ragflow.yml
配置文件中指定 vLLM 作为生成模型:llm: provider: vllm endpoint: "http://localhost:8000"
1.3 性能优化
- 使用
--gpu-memory-utilization 0.9
控制显存占用。 - 启用连续批处理(
--enforce-eager
)提升吞吐量 。
2. 通过 Xinference 接入本地模型
Xinference 是一个支持分布式推理的框架,适合多模型管理和异构硬件环境。
2.1 部署 Xinference 服务
- 安装 Xinference:
pip install "xinference[all]"
- 启动本地模型(例如 Qwen2):
服务默认运行在xinference launch --model-name qwen2 --model-format pytorch --model-path /path/to/local_model
http://localhost:9997
11。
2.2 配置 Dify/FastGPT/RagFlow
-
Dify:
- 在 模型供应商 中选择 Xinference。
- 输入模型 UID 和 API 地址(如
http://localhost:9997
)。 - 支持动态切换模型(如 Llama3、ChatGLM3)。
-
FastGPT:
通过 One-API 中转配置:{ "channel_type": "xinference", "base_url": "http://localhost:9997/v1" }
-
RagFlow:
修改docker-compose.yml
,添加 Xinference 作为 LLM 后端:environment: LLM_PROVIDER: xinference XINFERENCE_ENDPOINT: "http://xinference:9997"
2.3 高级功能
- 分布式推理:通过
--worker-num
启动多节点 。 - 模型量化:支持 4-bit/8-bit 量化降低显存占用 。
3. 对比与选型建议
工具 | vLLM 优势 | Xinference 优势 |
---|---|---|
性能 | 更高吞吐(PagedAttention 优化) | 支持多模型混合部署 |
扩展性 | 单机优化 | 支持集群和异构硬件 |
易用性 | 配置简单 | 提供 WebUI 管理模型 |
适用场景 | 高并发生成任务 | 多模型实验或企业级部署 |
- 推荐场景:
- 需要极致性能:选择 vLLM。
- 需要灵活管理多个本地模型:选择 Xinference 14。
4. 常见问题解决
- Dify 连接失败:检查 API 地址和端口,确保防火墙放行 。
- OOM 错误:降低
--gpu-memory-utilization
或启用 CPU offload 。 - 模型加载慢:使用
XINFERENCE_MODEL_SRC=modelscope
加速下载 。