1. 环境准备与离线资源获取在内网环境中部署AI模型服务最大的挑战就是如何在没有互联网连接的情况下获取所有必需的资源。我最近在一个金融客户的内网环境完成了Qwen3-8B模型的部署这里分享下我的实战经验。首先需要准备一台能访问外网的跳板机用于下载所有离线资源。对于GPU环境建议选择NVIDIA T4或A10这类企业级显卡显存最好在16GB以上。操作系统方面麒麟V10、CentOS 7.9或Ubuntu 20.04都是经过验证的稳定选择。模型文件可以从魔塔社区获取下载时要注意选择完整的模型目录结构。我遇到过只下载了模型权重文件却漏掉tokenizer的情况导致服务启动失败。完整的Qwen3-8B模型目录应该包含config.jsonmodel-00001-of-00002.safetensorstokenizer.jsongeneration_config.json对于Docker镜像建议直接使用vLLM官方提供的vllm-openai镜像。最新版本已经预装了CUDA 12.1和PyTorch 2.2省去了自己配置CUDA环境的麻烦。下载时记得同时保存镜像的sha256校验值避免内网传输过程中出现数据损坏。2. 内网资源迁移与验证资源迁移是内网部署的关键环节。我习惯用rsync配合校验脚本来确保文件完整性。对于大文件传输这里有个小技巧可以先用split命令将大文件分割成多个小文件传输完成后再用cat合并。模型文件迁移后建议先手动验证下模型完整性python -c from transformers import AutoModel; AutoModel.from_pretrained(/path/to/qwen3-8b)Docker镜像的离线迁移需要特别注意两点保存镜像时要使用save命令而非export保证保留所有元数据加载镜像前检查磁盘空间vLLM镜像解压后需要约20GB空间我整理了一个完整的迁移检查清单[ ] 模型文件MD5校验通过[ ] 镜像加载后tag信息完整[ ] 测试nvidia-smi在容器内可执行[ ] 检查CUDA版本匹配容器内外需一致3. 容器化部署实战启动容器时最容易踩坑的是GPU驱动问题。我建议先用测试命令验证基础环境docker run --rm --gpus all nvidia/cuda:12.1-base nvidia-smivLLM的启动参数直接影响服务性能。经过多次测试我总结出针对Qwen3-8B的最佳配置组合docker run -d --runtime nvidia \ --gpus all \ --ipchost \ -p 8000:8000 \ -v /path/to/models:/models \ -e PYTORCH_CUDA_ALLOC_CONFmax_split_size_mb:128 \ vllm/vllm-openai:v0.8.5.post1 \ --model /models/qwen3-8b \ --tensor-parallel-size 2 \ --gpu-memory-utilization 0.9 \ --max-num-seqs 16 \ --dtype float16几个关键参数说明tensor-parallel-size根据GPU数量设置单卡建议设为1gpu-memory-utilization建议0.8-0.95之间太高容易OOMmax-num-seqs并发请求数需要根据业务场景调整4. 常见问题排查指南在内网环境部署时我遇到过几个典型问题问题1GPU驱动不兼容现象启动容器时报错could not select device driver 解决方案检查主机驱动版本nvidia-smi安装匹配的nvidia-container-toolkit配置docker的daemon.json添加nvidia运行时问题2模型加载失败常见错误是Unable to load tokenizer或Missing config file 解决方法确认模型目录结构完整检查文件权限容器用户需要有读取权限尝试指定trust-remote-code参数问题3服务响应慢可能原因包括GPU内存不足降低gpu-memory-utilization请求队列过长调整max-num-seqs量化方式不当尝试使用autoawq量化我建议部署完成后立即进行压力测试使用locust等工具模拟并发请求观察GPU利用率和响应延迟。对于生产环境还需要考虑部署Prometheus监控来实时跟踪服务状态。5. 性能优化与生产建议经过多次调优测试我发现Qwen3-8B在T4显卡上的最佳batch size是4-8。如果使用A10显卡可以适当增大到16。对于长文本生成场景建议启用paged-attention功能--enable-paged-attention \ --block-size 16 \ --swap-space 4内存优化方面可以尝试以下组合--quantization awq \ --max-model-len 8192 \ --enforce-eager对于高可用部署我推荐使用docker-compose配合健康检查services: vllm: healthcheck: test: [CMD, curl, -f, http://localhost:8000/health] interval: 30s timeout: 10s retries: 3最后提醒一个容易忽视的点内网环境的时间同步。我曾遇到因为容器时间与宿主机不同步导致token校验失败的情况建议在启动时挂载/etc/localtime并设置TZ环境变量。