最佳实践
基于 TensorFusion Annotation 的资源配置、性能与稳定性最佳实践。
本文聚焦 workload-annotation 的常见配置模式,帮助你在性能、成本和稳定性之间取得平衡。完整 Annotation 列表请参考 Workload Configuration。术语说明可查看 术语解释。
基础用法
1. requests + limits 精准使用算力/显存资源
推荐同时设置 tflops 和 vram 的 requests/limits,避免资源抖动或过度抢占:
metadata:
annotations:
tensor-fusion.ai/tflops-request: "10"
tensor-fusion.ai/tflops-limit: "20"
tensor-fusion.ai/vram-request: "4Gi"
tensor-fusion.ai/vram-limit: "4Gi"如果你需要用百分比控制计算资源,请使用 compute-percent-*,但不要与 tflops-* 同时配置。
你也可以在 Pod resources 中填写 GPU 的 requests/limits。系统会读取 limits 中的 nvidia.com/gpu(或其他厂商资源名),并将其转换为 compute-percent(默认 100%)。当未显式设置 tflops-* 时,requests 会继承 limits。此路径不一定会直接得到具体的 TFLOPs 数值(取决于是否已知 GPU 型号):
spec:
containers:
- name: trainer
resources:
requests:
nvidia.com/gpu: "1"
limits:
nvidia.com/gpu: "1"2. 优先开启本地 GPU 模式降低延迟
当任务对延迟敏感,建议开启本地 GPU 模式。Sidecar Worker 能进一步减少通信开销:
metadata:
annotations:
tensor-fusion.ai/is-local-gpu: "true"
tensor-fusion.ai/sidecar-worker: "true"3. 通过 WorkloadProfile 复用配置
多个工作负载共享相同资源模板时,优先使用 WorkloadProfile,再用 Annotation 覆盖差异项:
metadata:
annotations:
tensor-fusion.ai/workload-profile: "default-profile"
tensor-fusion.ai/tflops-request: "12" # 覆盖 profile 内默认值4. 多卡场景要显式声明
多卡任务需要设置 gpu-count:
metadata:
annotations:
tensor-fusion.ai/gpu-count: "2"5. 多容器 Pod 明确每个容器的 GPU 资源需求
当一个 Pod 内多个容器都需要使用 GPU 时,建议明确每个容器的 GPU 数量,避免调度歧义:
metadata:
annotations:
tensor-fusion.ai/container-gpu-count: '{"trainer":1,"sidecar":1}'如果未提供每个容器的 GPU 数量,系统默认所有容器共享同一组 GPU;此时无法正确累计 gpu-count,多卡场景可能会被误判为单卡。
高级用法
6. 选对 QoS,匹配业务优先级
对关键推理服务使用更高的 QoS,批处理或离线任务使用较低等级:
metadata:
annotations:
tensor-fusion.ai/qos: "high"7. 需要稳定性能时指定机型或独占 GPU
当模型对 GPU 型号敏感,或需要性能稳定性时:
metadata:
annotations:
tensor-fusion.ai/gpu-model: "A100"
tensor-fusion.ai/dedicated-gpu: "true"8. 自动化建议:先开 Autoscale,再用 WorkloadProfile 精细化配置
先用注解快速开启自动伸缩,再把细节参数放到 WorkloadProfile:
metadata:
annotations:
tensor-fusion.ai/autoscale: "true"
tensor-fusion.ai/autoscale-target: "all"
tensor-fusion.ai/workload-profile: "autoscale-default"compute:只自动调整计算资源(TFLOPs/compute-percent)vram:只自动调整显存all:同时自动调整计算 + 显存
WorkloadProfile 示例(基于历史用量自动设置资源):
apiVersion: tensor-fusion.ai/v1
kind: WorkloadProfile
metadata:
name: autoscale-default
spec:
autoScalingConfig:
autoSetResources:
enable: true
targetResource: all # compute | vram | all
historyDataPeriod: 2h
marginFraction: "0.15"9. 灰度开启 TensorFusion
在大规模集群中建议用 enabled-replicas 灰度开启:
metadata:
annotations:
tensor-fusion.ai/enabled-replicas: "1"10. 隔离模式按风险选择
soft: 默认,适合大部分共享训练/推理hard: 适合多租户或高风险场景partitioned: 需要硬件分区支持时启用
metadata:
annotations:
tensor-fusion.ai/isolation: "hard"常用模型/芯片算力参考
常用模型资源参考
用这个表格整理常见模型在不同场景下的 TFLOPs、显存需求建议;GPU 数量需结合卡型与集群情况灵活调整。
| 模型 / 任务 | 场景(训练/微调/推理) | 精度 | 目标 TFLOPs | 显存需求(大致范围) | 备注 |
|---|---|---|---|---|---|
| LLaMA 7B | 训练(全量) | FP16 | 200–400 TFLOPs | ~50–60 GB | 小规模训练/从头训练规模 |
| LLaMA 7B | 推理 | BF16/INT8 | 1–3 TFLOPs | ~12–14 GB | 实时推理需求较小 |
| GPT-2 1.5B | 训练(全量) | FP16 | 60–120 TFLOPs | ~10–20 GB | 小模型训练场景 |
| DeepSeek-7B | 微调 | FP16 | 60–100 TFLOPs | ~14–18 GB | LoRA / 指令微调 |
| DeepSeek-7B | 推理 | BF16 / INT8 | 1–3 TFLOPs | ~14–18 GB | 单卡在线服务 |
| DeepSeek-33B | 微调 | FP16 | 180–300 TFLOPs | ~60–80 GB | 主流企业微调 |
| DeepSeek-33B | 推理 | BF16 / INT8 | 6–12 TFLOPs | ~60–80 GB | 高质量对话 |
| DeepSeek-67B | 微调 | FP16 | 350–600 TFLOPs | ~120–140 GB | 大模型私有化 |
| DeepSeek-67B | 推理 | BF16 / INT8 | 12–25 TFLOPs | ~120–140 GB | 高并发需多卡 |
| Kimi-Base(≈30B) | 推理 | BF16 | 20–40 TFLOPs | ~60–70 GB | 长上下文主因 |
| Kimi-Base | 推理 | BF16 | 80–150 TFLOPs | ~80–150 GB | KV Cache 成本极高 |
| Kimi-Base | 微调 | FP16 | 250–400 TFLOPs | ~250–400 GB | 长文本训练 |
| Kimi-MoE(估) | 推理 | BF16 | 15–30 TFLOPs | ~60–70 GB | MoE 激活稀疏 |
| Qwen-7B | 微调 | FP16 | 60–100 TFLOPs | ~24–40 GB | / |
| Qwen-14B | 微调 | FP16 | 120–200 TFLOPs | ~48–60 GB | / |
| Baichuan-13B | 推理 | BF16 | 4–8 TFLOPs | ~24–26 GB | / |
不同芯片算力参考
此数据来源于不同厂商。
| GPU 型号 | 厂家 | FP16/BF16 峰值 TFLOPs |
|---|---|---|
| A100 | nvdia | 312 |
| H100 | nvidia | 800 |
| H200 | nvida | 989 |
| MI250X | amd | 383 |
| MI300X | amd | 1300+ |
| Ascend 910 | 华为 | 320 |
| Ascend 910B | 华为 | 400+ |
| Ascend 310P | 华为 | 16 |
TensorFusion 文档