拓冰建站拓冰建站
首页 / 资讯中心 / 正文

DB-GPT 中的 SMMF:服务化多模型管理框架的设计、实现与落地

DB-GPT 中的 SMMF服务化多模型管理框架的设计、实现与落地【免费下载链接】DB-GPTopen-source agentic AI data assistant for the next generation of AI Data products.项目地址: https://gitcode.com/GitHub_Trending/db/DB-GPTSMMFService-oriented Multi-model Management Framework服务化多模型管理框架是 DB-GPT 解决大模型部署环境碎片化问题的核心架构应用层只需面向统一的模型服务接口编程底层的 vLLM、llama.cpp、FastChat 与各类云厂商 API 则由框架负责适配、注册与调度。读完本文你可以理解 SMMF 的分层架构与各组件职责知道如何在 DB-GPT 中按需在多种推理框架与代理模型之间切换并能对照 packages/dbgpt-core/src/dbgpt/model 下的源码验证 Model API、Model Controller、Model Worker 与设计文档的一一映射关系。背景为什么需要一套模型管理框架在 AIGC 应用的探索与生产落地过程中绕不开直接对接模型服务这件事。但当前大模型推理部署并没有事实标准新模型不断发布、新的训练与推理方法不断出现开发者需要持续适配不断变化的底层建模环境这在一定程度上制约了 AIGC 应用的探索与落地。为此DB-GPT 提出了 SMMF目标是简化模型适配过程、提升模型部署的效率与性能。从设计上看SMMF 由两部分组成模型推理层对应 vLLM、TGI、TensorRT 等模型推理框架真正承载模型权重与推理计算模型部署层向下对接推理层向上提供模型服务能力。部署框架在推理框架之上提供多模型实例、多推理框架、多云、自动扩缩容与可观测性等能力。需要特别说明的是SMMF 文档附录中明确指出自动扩缩容与可观测性这两项能力目前仍处于孵化阶段尚未实现。理解 SMMF 时应以已实现的能力与规划中的能力区分来看待。系统在 DB-GPT 中的具体形态SMMF 在 DB-GPT 中自上而下分为四层这也是阅读后续源码实现时的总体地图服务与应用层DB-GPT WebServer、Agents 系统、各类应用等是模型服务的消费方模型部署框架层包含面向应用层提供模型服务的API Server 与 Model Handler、负责整个部署框架元数据管理管控的Model ControllerControl Center、以及直接对接推理框架与底层环境的Model Worker推理框架层vLLM、llama.cpp 与 FastChat。值得注意的是由于 DB-GPT 直接使用 FastChat 的推理接口文档将 FastChat 也归类为推理框架框架内部部署着 Vicuna、Llama、Baichuan、ChatGLM 等大语言模型实际部署环境层Kubernetes、Ray、AWS、阿里云、私有云等。对照源码可以验证这套分层并非概念图packages/dbgpt-core/src/dbgpt/model/cluster 目录下恰好存在apiserver/Model API、controller/Model Controller含controller.py与ray_controller.py、worker/Model Worker与registry_impl/模型注册存储等子模块与设计文档中的组件划分一一对应。SMMF 的核心特性1. 多模型与多推理框架大模型领域日新月异新模型与新推理方法持续涌现且这种状态在可预见的未来还会延续。对多数探索 AIGC 应用的用户来说这带来一个典型弊端容易被模型牵着走不得不持续尝试和探索新模型、新推理框架。DB-GPT 对此的解法是无缝支持 FastChat、vLLM 与 llama.cpp——理论上即支持这三个框架所支持的全部模型。选型建议非常直接追求推理速度与战术能力如 PagedAttention 等显存/吞吐优化直接用 vLLM希望CPU 或 Mac 的 M1/M2 芯片也能获得好的推理性能用 llama.cpp另外DB-GPT 还支持代理模型proxy modelsOpenAI、Azure、Google Bard、通义、百川、讯飞星火、百度文心、智谱 AI 等。在代理模型这条路上DB-GPT 的覆盖面比文档列表更宽。从 packages/dbgpt-core/src/dbgpt/model/proxy/llms 的源码结构看目前已实现 DeepSeek、Claude、Gemini、Ollama、SiliconFlow、Moonshot、Minimax、通义、文心、星火、智谱、百川、Azure OpenAIchatgpt等二十余种代理 LLM 适配配合configs/目录下的示例配置如 dbgpt-proxy-openai.toml、dbgpt-proxy-deepseek.toml、dbgpt-local-vllm.toml、dbgpt-local-llama-cpp.toml、dbgpt-local-mlx.toml即可直接切换。开源模型原文档列出的受支持清单Vicuna、vicuna-13b-v1.5LLaMA2Llama-2-7b-chat-hfbaichuan2-13b、baichuan2-7bchatglm-6b、chatglm2-6b、chatglm3-6bfalcon-40binternlm-chat-7b、internlm-chat-20bqwen-7b-chat、qwen-14b-chatwizardlm-13borca-2-7b、orca-2-13bopenchat_3.5zephyr-7b-alphamistral-7b-instruct-v0.1Yi-34B-Chat代理模型OpenAI · ChatGPT百川 · Baichuan阿里云 · 通义Google · Bard百度 · 文心智谱 · ChatGLM讯飞 · 星火文档提示完整模型清单以源码为准可参考模型配置与适配代码原文档指向pilot/configs/model_config.py与pilot/model目录在当前版本中多模型相关实现已迁移到 packages/dbgpt-core/src/dbgpt/model。2. 可扩展性与稳定性云原生领域解决了海量计算资源在管理、控制、调度、利用率上的核心痛点。大模型领域同样关注推理时的计算资源爆发式需求因此具备调度超算能力的多模型管理是生产落地阶段的重点。文档明确借鉴了 Kubernetes、Istio 等计算调度层近年来的设计成果用于多模型管理与控制。一个相对完整的模型部署框架需要多个部件Model Worker直接对接底层推理框架。它必须可扩展——可以是专门部署大语言模型的 Worker也可以是部署 Embedding 模型的 Worker当前源码中对应 worker/default_worker.py 与 worker/embedding_worker.py也可以按部署环境物理机、Kubernetes、特定云选择云厂商提供的不同 WorkerModel Controller管理并维护多个模型组件、管理元数据同样需要可扩展——不同部署环境、不同管控要求应选择不同的 Controller源码中的 controller/controller.py 与 controller/ray_controller.py 分别对应本地与 Ray 两种实现Model API对外提供模型服务能力对应 cluster/apiserver/api.py。从技术视角看模型服务与传统微服务高度相似微服务中某个服务可以有多个服务实例所有实例统一注册到注册中心调用方按服务名从注册中心拉取实例列表再按负载均衡策略选择具体实例。模型部署可以采用同样的架构——某个模型可以有多个模型实例所有实例统一注册到模型注册中心模型服务调用方基于模型名拉取实例列表再按模型负载策略调用具体实例。文档进一步指出模型注册中心负责在 Model Controller 中存储模型实例元数据可直接复用现有微服务的注册中心如 nacos、eureka、etcd 等作为实现从而使整个部署系统获得高可用。在源码层面这一注册职责由 cluster/registry.py 定义接口、cluster/registry_impl/db_storage.py 提供基于数据库存储的实现并配有测试 registry_impl 测试 与 Controller 测试 验证。3. 高性能框架设计设计原则很明确框架层不应成为模型推理性能的瓶颈。大多数情况下硬件与推理框架决定了模型服务的能力而模型推理的部署与优化本身是复杂工程不当的框架设计只会增加复杂度。文档归纳了两点关键考量避免过度封装封装越多、链路越长排查性能问题就越困难。这一思想体现在当前源码结构上——应用侧通过AutoLLMClient之类的轻量入口adapter/auto_client.py按 provider 直接分发到具体适配客户端generate、generate_stream、count_token等方法全部透传给底层实现中间几乎不增加额外处理高性能通信设计由于 Python 在 AIGC 应用中占主导地位异步接口对服务性能至关重要。因此模型服务层只对外提供异步接口以兼容模型推理框架对接层若推理框架本身提供异步接口则直接对接否则用同步转异步的任务机制兜底。这一全异步特征可以从适配层源码得到印证例如 adapter/vllm_adapter.py、adapter/llama_cpp_adapter.py 中的aask、ask异步方法签名。4. 可管理、可监控在 AIGC 应用的探索与生产落地中模型部署系统必须具备一定管理能力能对通过 API 或命令行部署的模型实例执行上线、下线、重启、调试等管控操作。DB-GPT 当前提供的实际入口是模型命令行工具——packages/dbgpt-core/src/dbgpt/model/cli.py 中的dbgpt model命令可对模型进程执行 start/stop/online/offline/list 等操作这正是文档所述API 或命令行管控的落地形态。可观测性是生产系统的重要能力而 AIGC 应用的用户体验与人机交互更复杂因此除传统观测指标外还应关注用户输入信息、对应场景的上下文信息、调用的是哪个模型实例与哪组模型参数、模型输出内容与响应时间、用户反馈等。从这些信息中可以定位模型服务的性能瓶颈与用户体验数据例如响应延迟如何、是否解决了用户问题、能否从用户内容中提取满意度等作为进一步优化的依据。如前所述这项能力在原文档附录中被标注为仍在孵化、尚未实现但源码中的指标工具如 model/utils/llm_metrics.py与追踪工具dbgpt/util/tracer/表明相关基础设施已具备雏形。5. 轻量级考虑到支持的模型与推理框架众多SMMF 尽力避免不必要的依赖保证用户按需安装。原文档给出的按需安装命令为安装最基础依赖pip install -e .或pip install -e .[core]安装基础框架依赖pip install -e .[framework]安装 openai 代理模型依赖pip install -e .[openai]安装默认依赖pip install -e .[default]安装 vLLM 推理框架依赖pip install -e .[vllm]安装模型量化部署依赖pip install -e .[quantization]安装知识库相关依赖pip install -e .[knowledge]安装 pytorch 依赖pip install -e .[torch]安装 llama.cpp 依赖pip install -e .[llama_cpp]安装向量化数据库依赖pip install -e .[vstore]安装数据源依赖pip install -e .[datasource]需要注意版本演进以上 extras 对应早期 monorepo 布局。以当前仓库0.8.1 版本为例项目已拆分为多个 workspace 包见根 pyproject.toml 的[tool.uv.workspace]配置按需依赖被重新组织到核心包 packages/dbgpt-core/pyproject.toml 的[project.optional-dependencies]中且命名更贴合具体框架依赖组用途典型内容client客户端基础httpx、fastapi、tenacitysimple_framework轻量框架运行时SQLAlchemy、duckdb、uvicorn、msgpack 等framework基础框架扩展tokenizers、alembic、openpyxl、pyzmq 等hfHuggingFace 推理transformers、sentence-transformersllama_cpp/llama_cpp_serverllama.cpp 本地推理llama-cpp-python / llama-cpp-server-pyproxy_openaiOpenAI 系代理openai、tiktokenproxy_ollama/proxy_tongyi/proxy_qianfan/proxy_zhipuai/proxy_anthropic/proxy_litellm各厂商代理对应 SDKmodel_vl及hf_qwen3、hf_glm4、hf_kimi等特定开源模型适配对应版本的 transformers此外该文件还用[tool.uv].conflicts声明了hf_kimi与其他 transformers 版本组互斥等约束说明轻量 按需的思路在依赖管理层面依然成立只是具体的 extras 名称与安装命令应以当前仓库的 pyproject 为准。源码实现从文档到代码原文档的 Implementation 一节将多模型实现指向pilot/model。在当前仓库中SMMF 的实际实现位于 packages/dbgpt-core/src/dbgpt/model其目录结构清晰印证了前文所述的架构adapter/模型适配层fschat_adapter.py、vllm_adapter.py、llama_cpp_adapter.py、llama_cpp_py_adapter.py、hf_adapter.py、mlx_adapter.py、proxy_adapter.py分别对应文档提到的 FastChat、vLLM、llama.cpp含 server 形态、HuggingFace、MLX 与代理模型model_adapter.py与loader.py提供适配器的统一加载入口。AutoLLMClientauto_client.py通过get_model_adapter(provider, model_name...)按 provider 动态查找适配器若找不到则抛出明确错误这就是多推理框架无缝支持的最小实现单元llm/llm_out/各框架输出适配vllm_llm.py、llama_cpp_llm.py、mlx_llm.py、hf_chat_llm.py即 Model Worker 真正承载推理的部分proxy/代理模型基类base.py与数据隐私组件data_privacy/下的敏感信息检测与掩码/恢复覆盖文档代理模型特性的隐私配套cluster/SMMF 部署框架的核心——apiserver/对外 API、controller/管控与注册、worker/本地/远程/嵌入 Worker 及其管理、registry_impl/元数据存储、client.py服务客户端配套apiserver/tests/test_api.py、worker/tests/test_manager.py等测试用例可用来验证 API 与 Worker 生命周期行为。应用侧的典型用法是在configs/下的 TOML 配置中声明模型provider 决定走哪条适配链路服务启动时由 SMMF 加载为可管理的模型实例WebServer 与 Agents 等上层模块则统一通过模型客户端发起对话与嵌入请求——上层代码因此与底层是 vLLM 还是 llama.cpp 还是某家 API完全解耦这正是 SMMF 为 DB-GPT 带来的核心价值。小结SMMF 以模型部署层 模型推理层的双层结构把不断变化的模型与推理框架环境隔离在 DB-GPT 应用之下API Server / Model Handler 对上层提供统一服务Model Controller 管理实例元数据与生命周期Model Worker 对接具体推理框架与部署环境。其五大特性——多模型多框架、可扩展稳定借鉴微服务注册中心与云原生调度思想、高性能避免过度封装、全异步接口、可管理可监控命令行/API 管控 面向用户体验的观测数据、轻量按需安装依赖——在当前仓库的dbgpt/model源码中均有可验证的对应实现同时自动扩缩容与完整可观测性仍按原文档附录标注为孵化中能力。对需要同时驾驭本地开源模型与云 API 模型的团队来说SMMF 提供的是一套接口、多套后端的模型管理底座。【免费下载链接】DB-GPTopen-source agentic AI data assistant for the next generation of AI Data products.项目地址: https://gitcode.com/GitHub_Trending/db/DB-GPT创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门