ServerlessLLM 开发者手册:如何为新硬件添加支持与贡献代码

📅2026/7/12 13:04:13 👁️次浏览
ServerlessLLM 开发者手册:如何为新硬件添加支持与贡献代码
ServerlessLLM 开发者手册如何为新硬件添加支持与贡献代码【免费下载链接】ServerlessLLMServerlessLLM is a distributed model deployment system that supports efficient multi-checkpoint saving, offering fast cold starts and serverless deployment capabilities项目地址: https://gitcode.com/openeuler/ServerlessLLM前往项目官网免费下载https://ar.openeuler.org/ar/ServerlessLLM 是一个分布式模型部署系统支持高效的多检查点保存提供快速冷启动和无服务器部署能力。本指南将帮助开发者为新硬件添加支持并贡献代码让 ServerlessLLM 生态更加完善。为什么要为 ServerlessLLM 添加硬件支持随着人工智能技术的快速发展新的硬件加速设备不断涌现。为 ServerlessLLM 添加对新硬件的支持不仅能拓展其应用场景还能提升模型部署的效率和性能。无论是 GPU、NPU 还是其他专用芯片都可以通过本指南的步骤实现兼容。ServerlessLLM 架构概览在开始之前让我们先了解一下 ServerlessLLM 的整体架构。下图展示了 ServerlessLLM 的完整架构包括用户界面、控制平面和数据平面等核心组件。从架构图中可以看到ServerlessLLM 主要分为控制平面和数据平面。控制平面负责资源调度和模型管理数据平面则处理实际的推理请求。这种分离的设计使得系统具有良好的可扩展性也为添加新硬件支持提供了便利。硬件支持的标准要让 ServerlessLLM 支持新硬件需要满足以下两个条件所使用的推理后端如 Transformers、vLLM能够在该硬件上运行模型推理。ServerlessLLM Store 能够在该硬件上成功加载模型检查点。只有同时满足这两个条件新硬件才能被视为完全支持。接下来我们将详细介绍如何实现这两个条件。为新硬件添加支持的步骤步骤一检查推理后端兼容性首先需要确认目标硬件是否被现有的推理后端支持。ServerlessLLM 目前支持 Transformers 和 vLLM 两种后端你可以参考它们的官方文档来检查硬件兼容性。如果目标硬件不被支持你可能需要为推理后端添加硬件支持或者实现一个新的后端。后端相关的代码位于sllm/serve/backends/目录下你可以参考现有的实现来开发新的后端。步骤二配置 ServerlessLLM StoreServerlessLLM Store 负责模型检查点的管理和加载是支持新硬件的关键组件。根据硬件的特性你可能需要进行以下配置针对 CUDA 兼容 API 的硬件如果新硬件提供了 CUDA 兼容的 API如 ROCm你只需要调整构建脚本sllm_store/CMakeLists.txt添加必要的编译器标志即可。针对非 CUDA 兼容 API 的硬件对于不支持 CUDA 兼容 API 的硬件你需要实现自定义的检查点加载函数。这涉及到修改sllm_store/csrc/checkpoint/目录下的 C 代码以及sllm_store/sllm_store/torch.py中的 Python 接口。步骤三实现设备映射逻辑设备映射逻辑决定了模型如何在不同的硬件设备上分配资源。你需要修改sllm_store/sllm_store/device_map_utils.py文件实现新硬件的设备映射算法。该文件中的_compute_device_placement_from_map和_compute_device_placement_from_map_fast函数负责设备分配策略你可以根据新硬件的特性调整这些算法。步骤四模型加载流程模型加载是新硬件支持的核心环节。下图展示了 ServerlessLLM 的模型加载流程你需要确保新硬件能够正确执行图中的每一个步骤特别是以下几个关键点从磁盘读取模型配置和张量数据通过 Transformers API 或 PyTorch API 加载模型将张量数据恢复到正确的设备上相关的代码实现可以在sllm_store/sllm_store/transformers.py和sllm_store/sllm_store/torch.py文件中找到。验证硬件支持完成上述步骤后你需要验证新硬件是否能够正常工作。可以按照以下步骤进行验证运行 快速入门指南 中的示例检查检查点加载和推理功能是否正常。如果新硬件无法公开获取即 ServerlessLLM 团队无法测试需要提供成功执行快速入门示例的截图或输出日志。贡献代码的流程完成新硬件支持后你可以将代码贡献给 ServerlessLLM 项目。以下是贡献代码的详细流程步骤一准备开发环境首先克隆 ServerlessLLM 仓库git clone https://gitcode.com/openeuler/ServerlessLLM然后安装必要的依赖pip install -r requirements-lint.txt pre-commit install --install-hooks步骤二创建分支在开始开发前创建一个新的分支git checkout -b feature/support-new-hardware步骤三开发和测试根据前面的步骤实现新硬件支持并编写相应的测试用例。测试代码可以放在tests/目录下确保所有测试都能通过。步骤四提交代码提交代码时需要遵循 Angular 提交格式git commit -s -m feat: add support for new hardware XYZ提交信息应包括类型、摘要和详细描述。类型可以是feat新功能、fix修复、docs文档等。步骤五创建 Pull Request将你的分支推送到远程仓库并创建一个 Pull Request。PR 描述应包括以下内容实现的功能或修复的问题测试方法和结果相关的 issue 编号如果有PR 将经过代码审查通过后会被合并到主分支。总结通过本指南你已经了解了如何为 ServerlessLLM 添加新硬件支持并贡献代码。这不仅能提升 ServerlessLLM 的兼容性还能为开源社区做出贡献。如果你在开发过程中遇到任何问题可以参考 官方文档 或联系 ServerlessLLM 团队。希望本指南能帮助你顺利完成新硬件支持的开发期待你的贡献 【免费下载链接】ServerlessLLMServerlessLLM is a distributed model deployment system that supports efficient multi-checkpoint saving, offering fast cold starts and serverless deployment capabilities项目地址: https://gitcode.com/openeuler/ServerlessLLM创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考