← 返回题目列表

多租户大模型推理如何隔离资源?

中等 第 19 / 25 题 更新于 2026/09/18
大模型推理优化AI技术大模型面试题

简化版

多租户隔离要同时覆盖安全、性能和成本。安全上隔离 Prompt、KV/前缀缓存、Adapter、日志与密钥;性能上限制每租户并发、Token 速率、KV 占用和队列份额;成本上做可归因计量,防止一个租户的长上下文或长输出拖垮所有人。

实现通常采用“身份与权限校验 → 租户级准入 → 加权公平队列 → 独立缓存命名空间 → 运行时硬预算 → 分租户监控”。高风险或强 SLA 租户使用独立实例/MIG,普通流量可共享 GPU,但必须保留配额、最低份额和故障域边界。

详细版

仅靠 API Key 区分租户不等于隔离。请求进入后,每一层资源都要携带可信 tenant ID,并禁止用户输入覆盖它。

隔离层主要风险常见控制
数据Prompt、缓存、日志泄露命名空间、加密、脱敏、权限过滤
计算噪声邻居抢占 GPU并发/Token 配额、公平调度
显存长请求耗尽 KVKV 预算、长度上限、准入
模型Adapter 或版本串用版本绑定、独立加载上下文
运维指标聚合掩盖违约分租户 SLI、审计与计费

隔离强度是分级的:共享进程成本最低但故障半径大;独立进程/实例更强;MIG 或独占 GPU 提供更明确硬件边界但降低池化效率。应按数据敏感度、SLO 与成本选择,而不是所有租户一刀切。

完整版教学

1. 隔离要解决三类问题

数据隔离防止跨租户读取 Prompt、输出和缓存;性能隔离防止噪声邻居拖慢他人;故障隔离防止某租户触发 OOM 或崩溃影响整个实例。

三者不能互相替代。独立队列可改善性能,却不自动解决缓存越权;缓存命名空间正确,也不能阻止长请求耗尽 GPU。

2. 租户身份必须来自可信边界

网关完成认证后生成不可伪造的 tenant ID,并通过受保护的内部元数据传递。不能从 Prompt、请求 JSON 的自由字段或模型输出中决定权限。

credential -> gateway authentication -> trusted tenant context
                                      -> quota / routing / cache namespace

所有日志、缓存键、工具凭证和计费记录都应关联同一身份链路。

3. 数据与日志怎样隔离

传输和存储使用加密,日志默认脱敏,不记录不必要的完整 Prompt。调试采样要有租户授权、保留期限和访问审计。

RAG 检索必须在召回前按 ACL 过滤,不能先跨租户检索再让模型“不要泄露”。备份、离线评测数据和失败样本回流也属于隔离范围。

4. KV 与前缀缓存为何危险

前缀内容相同不代表允许跨租户共享。缓存键至少绑定租户/权限域、模型、Tokenizer、模板和 Adapter 版本。

共享块需引用计数和只读保护;租户删除数据或权限变更时,要能定向失效相关条目。高敏感场景可完全禁用跨请求共享。

5. 配额为什么应按 Token

请求数无法反映资源差异。应组合限制并发、输入 Token、输出 Token、KV 块和单位时间 Token:

admit if
  concurrent < tenant_concurrency_limit
  and token_bucket >= estimated_tokens
  and kv_reserved + estimated_kv <= tenant_kv_limit

运行时还要有最大输出和 Deadline,防止预测偏差突破边界。

6. 调度如何抵抗噪声邻居

使用租户级队列和加权公平调度,在拥塞时按合同权重分配 Token;等待老化保证低权重请求不会永久饥饿。

空闲配额可被其他租户借用,提高利用率;原租户恢复时停止新增借用,而非立即杀死大量在途请求,避免抖动。

调度记账应以实际输入/输出 Token 或估算 GPU 时间为单位,并按固定窗口比较“实际份额/合同份额”。当某租户持续超额时,先降低其新请求准入与调度权重;已经开始的高风险工具任务则按业务规则安全收尾,避免为回收份额制造副作用。

7. 隔离级别如何选择

方式隔离强度资源效率适用情况
同进程共享 Batch较低最高普通同等级流量
独立进程/副本不同模型或 SLO
MIG/硬件分区较高较低强性能边界
独占 GPU/集群最高最低强合规、高价值租户

选择依据是威胁模型、SLA 和成本。软件缺陷风险很高时,逻辑命名空间可能不够。

8. Adapter 多租户如何保护

动态 LoRA 服务要把 Adapter ID 与租户授权绑定,并校验基础模型、Rank 和目标模块兼容。加载缓存不能让租户枚举或命中他人的私有 Adapter。

切换 Adapter 时避免残留状态污染下一请求;发布与回滚记录需要能追溯“哪个租户、哪个请求、哪个权重版本”。

9. 故障域怎样缩小

单租户异常长度、恶意请求或 Adapter 加载失败,不应导致共享 Worker OOM。准入、内存上限和进程级熔断是第一层;重要租户可用独立副本池。

若共享实例崩溃,路由器应限制重试并打散恢复,避免所有请求同时转移到其他池造成级联过载。

10. 指标与计费如何归因

至少按租户记录输入/输出 Token、GPU 时间估算、KV 峰值、缓存命中、拒绝、TTFT/TPOT 和错误。高基数标签需通过受控聚合避免监控系统本身过载。

计费与限额口径要一致。若缓存命中降低实际成本,可选择按逻辑 Token 或实际资源计价,但合同中必须明确。

11. 如何防侧信道

共享缓存命中会改变 TTFT,攻击者可能用时序猜测某前缀是否存在。敏感租户使用独立命名空间,必要时避免跨用户前缀共享。

资源争用也可能暴露其他租户活跃程度。强隔离场景采用硬件分区或独占池,并限制可观察的细粒度系统指标。

12. 如何测试隔离

做跨租户缓存探测、错误 Adapter 请求、长上下文压测、配额绕过、日志查询和租户删除测试。安全测试要证明 A 无法读到 B,性能测试要证明 A 过载时 B 仍满足保底 SLO。

灰度时观察分租户 P99、配额拒绝、份额偏差与故障传播。全局平均正常不能证明隔离有效。

多租户隔离的最低标准,是一个租户不能读取、耗尽或破坏另一个租户被承诺的资源。

13. 常见误区与追问

  • 误区:有 API Key 就完成了租户隔离。 身份必须贯穿缓存、调度、日志和工具。
  • 误区:按请求数限流足够。 长度差异使 Token 与 KV 配额更重要。
  • 误区:内容哈希相同就能共享前缀。 权限域必须先一致。
  • 误区:所有租户独占 GPU 最安全也最合理。 隔离增强但利用率和成本可能不可接受。
  • 误区:全局 SLA 达标代表每个租户达标。 噪声邻居影响需用分租户指标发现。
  • 追问:何时使用 MIG? 需要明确算力/显存边界且能接受分区效率损失时。
  • 追问:空闲配额能否共享? 可以借用,但要有安全收回和最低保障。

14. 加强记忆

  1. 先记三隔离:数据、性能、故障。
  2. 再记身份:可信 tenant ID 贯穿全链路。
  3. 再记缓存:权限命名空间优先于命中率。
  4. 再记资源:并发、Token、KV 和 Deadline 联合配额。
  5. 再记调度:加权份额、老化与安全借用。
  6. 再记分级:共享、独立进程、MIG、独占集群。
  7. 最后记验收:既证明无越权,也证明噪声邻居下 SLO 仍成立。