张镈麟:DeepSeek模型服务化部署的工程实践与技术优化

发布时间:2025-03-25
浏览次数:

背景

  近年来,随着人工智能技术的飞速发展,大型语言模型在医疗领域展现出巨大潜力。特别是在这一背景下,由深度求索公司开发的智能对话系统DeepSeek凭借其强大的高效推理能力和多轮对话交互特性,在众多AI模型中脱颖而出。目前多家国内知名医疗机构已开展DeepSeek模型的部署工作,并通过专业期刊发布相关应用案例报告。这些权威医疗机构的实践经验表明,DeepSeek不仅能够显著提高医疗服务效率,还能为临床决策提供有力支持,在智慧医疗建设中发挥重要作用。这一系列应用案例的成功实践,充分证明了DeepSeek模型在医疗领域的独特价值,标志着人工智能技术正在深刻改变现代医疗服务体系。

  本文将从技术实现的角度出发,深入探讨DeepSeek模型API部署过程中遇到的问题及其解决思路和实践经验,为医疗领域智能系统的开发与应用提供有价值的参考。

调研

  在前期调研中,清华大学附属北京清华长庚医院(简称“北京清华长庚医院”)发现网络上存在大量关于DeepSeek模型的部署文档和指南,但这些资料主要集中在使用层面,缺乏针对具体环境的深度指导。因此,医院决定从零开始,逐步构建完整的系统架构。

硬件和系统环境

  在进行DeepSeek模型的本地化部署过程中,硬件环境的选择至关重要。目前北京清华长庚医院所使用的是一台配备8张80G GPU显卡的专业服务器。该显卡凭借其高计算性能和大显存容量,在处理大规模语言模型时具有显著优势。

  关于操作系统选型,北京清华长庚医院推荐使用前一个 LTS 版本的系统进行部署。因为最新发布的 LTS 版本系统的稳定性、驱动兼容性以及软件生态仍有待市场进一步验证。因此,北京清华长庚医院采取了稳妥的策略,选择了经过充分测试的前一个 LTS 版本作为底层操作系统。

  在系统部署过程中,医院采用了Docker容器化技术为上层服务提供运行环境。这种方案不仅能够实现资源的有效隔离,还能通过容器编排快速扩展服务规模,将推理服务、API网关服务、驱动、用户交互界面等不同功能组件分别打包成独立容器,在提升系统可维护性的同时,也为后续的功能扩展预留了充足的空间。

显卡驱动

  在DeepSeek模型的部署过程中,安装显卡驱动是一个关键步骤。目前,较为常见的做法是从英伟达官方网站下载离线驱动包,并通过该安装包进行驱动的部署。然而,这一方案存在一个显著的问题:显卡驱动与操作系统内核版本之间具有严格的绑定关系。一旦操作系统更新了内核版本,原有的显卡驱动可能会出现兼容性问题,导致显卡无法正常工作,从而影响到依赖显卡计算的任务运行。

1.jpg

  针对上述问题,北京清华长庚医院使用了一种新的驱动部署方案,架构图如上。具体来说,医院将显卡硬件通过设备直通的方式直接挂载到显卡驱动容器,并在该容器内部完成显卡驱动的安装与配置。然后,医院将此显卡驱动容器设置为随系统自动启动。这样一来,只要该显卡驱动容器能够正常运行,即使操作系统内核进行小幅度更新,也不会导致显卡驱动出现兼容性问题或丢失的情况。

  这一方案不仅解决了传统显卡驱动部署方式中存在的稳定性隐患,还显著提升了系统的整体可靠性。通过将显卡驱动的安装与管理限制在特定容器环境中,北京清华长庚医院实现了对系统底层环境的高度隔离,从而避免了因操作系统更新所带来的潜在风险。这种做法为后续深度学习模型的稳定运行提供了有力的技术保障。

推理框架选择

  北京清华长庚医院选择Docker容器化技术作为部署Ollama实例的基础方案,通过构建标准化的容器环境为后续应用程序提供稳定可靠的API服务支持。同时,在前端交互层面引入了OpenWebUI作为用户界面组件,确保用户能够便捷地体验DeepSeek模型的强大推理能力。

  在这一过程中,北京清华长庚医院重点研究了模型的加载、资源分配以及服务稳定性等问题。尽管这条技术路线具有技术门槛较低、部署快速的特点,但在实际运行中,医院发现以下问题需解决:

  1.模型自动卸载

  Ollama会在空闲状态下自动卸载已加载的模型,导致用户下次提问时需要较长时间重新加载。

  2.并发性能受限

  虽然支持多请求并发处理,但默认情况下每个模型仅绑定单张显卡进行计算,无法充分利用多GPU资源实现负载均衡。

  3.服务中断风险

  由于缺乏高可用性机制,Ollama服务重启会导致API短暂不可用。

  4.安全漏洞隐患

  无认证机制限制,所有请求均会被响应,存在潜在的安全风险。

参数调优

2.jpg

  在正式部署过程中,北京清华长庚医院针对上述问题提出了以下优化方案,架构图如上:

  1.模型自动卸载

  在Ollama容器启动时添加了环境变量"OLLAMA_KEEP_ALIVE=-1",确保模型常驻内存,避免模型被自动卸载,从而减少用户等待时间。

  2.并发性能优化与服务高可用

  ■ 启动8个Ollama容器实例,每个实例分配1张显卡,并将每个容器的~/.ollama目录挂载到服务器上的同一路径,确保所有实例共享一致的模型文件。

  ■ 在Docker中创建一个专用网络(命名为ollama-backend),将所有Ollama容器实例接入该网络以实现服务间通信。

  ■ 部署Traefik容器并将其加入ollama-backend网络,利用其Service Auto-Discovery功能自动发现8个Ollama实例。通过配置Traefik的路由和服务规则,实现了前端API请求的负载均衡,充分利用多GPU资源提升并发处理能力,并确保服务高可用性。

  3.安全增强

  针对Ollama缺乏认证机制的问题,在Traefik的Ollama路由中集成了IP白名单中间件(middlewares),对入站流量进行严格过滤,仅允许来自授权IP地址的请求通过,有效降低了潜在的安全风险。

模型选择

  基于现有计算GPU资源,为提升任务处理的并发能力,北京清华长庚医院按照如下策略进行GPU资源分配。分别在8个单GPU实例上部署了DeepSeek-R1-Distill-Qwen-32B模型,以最大化处理任务的并行性;同时,启动一个配备8张GPU卡的容器实例,用于运行更大规模的671B模型以及其他所需模型,以支持复杂的临床科研任务和高效的数据处理需求。

展望

  1.推理框架替换

  除了当前使用的Ollama框架外,北京清华长庚医院还对其他主流推理框架进行了调研。发现VLLM框架在推理并发性能上表现尤为突出,最高可达到Ollama的24倍。在未来的工作中,医院会将现有Ollama框架逐步迁移至VLLM框架,以提升整体处理效率和服务能力。

  2.多机多卡集群部署

  当前系统采用的是单机多卡部署方式,虽然能够充分利用本地资源,但随着请求量的增加,这种模式在扩展性和可用性上将面临瓶颈。目前,清华长庚医院调研了较为成熟的解决方案Ray + VLLM的组合。该方案通过Ray的任务调度框架和VLLM的高效推理能力相结合,能够实现多机多卡的分布式部署,从而进一步提升系统的吞吐量和稳定性。

结束语

  通过本次DeepSeek模型的API部署实践,北京清华长庚医院成功构建了一套兼顾性能与稳定性的智能服务系统。在硬件环境配置、驱动管理、容器编排等关键环节的创新性解决方案,有效克服了模型服务化过程中的技术障碍。特别是采用容器化隔离策略与多实例负载均衡架构,实现了GPU资源的优化利用,为医疗机构的实时交互场景提供了可靠的技术支撑。

  展望未来,随着VLLM推理框架的引入和Ray分布式计算集群的构建,系统将向更高性能、更强扩展性的方向持续演进。北京清华长庚医院期待通过技术创新与工程实践的深度融合,推动人工智能技术在医疗领域的价值释放,为构建更智能、更高效的医疗服务体系注入持续动力。

  作者简介

3.jpg

  张镈麟,北京清华长庚医院信息管理部工程师,CCIE认证资深网络工程师,拥有8年全栈开发及IT架构设计经验。主导完成二大核心项目:1)医疗科研系统容器化转型方案制定与落地(基于Kubernetes+Docker技术栈);2)构建多机多卡GPU集群支撑DeepSeek大模型后端架构,加速AI技术在医疗场景的应用转化。深耕网络自动化领域,持有CCNP/CCNA认证,掌握Python/Flask/Vue全栈技术栈及Docker/K8s容器化体系,具备从网络拓扑规划到代码实现的端到端实施能力,通过技术创新驱动医疗信息化系统效能提升。