LogoTensorFusion 文档
LogoTensorFusion 文档
首页

快速开始

TensorFusion 概览在 Kubernetes 安装在虚拟机/服务器安装(K3S)Helm 快速安装在宿主机/虚拟机安装TensorFusion 架构

应用操作

创建 AI 应用注解使用场景配置自动扩缩容迁移现有应用最佳实践

自定义AI基础设施

生产级部署指南QoS 级别与计价云厂商集成(BYOC)管理许可证

维护与优化

组件更新配置告警GPU 热迁移预加载模型优化 GPU 效率

故障排除

问题处理手册链路追踪/性能分析查询指标和日志

参考

对比

与 NVIDIA vGPU 对比与 MIG/MPS 对比与趋动科技对比与 NVIDIA Run:ai 对比与 HAMi 的对比

预加载模型

TensorFusion 在缩短模型冷启动上做了什么、没做什么,以及怎么用 Kubernetes 标准卷缓存模型权重

预加载模型是指在 Pod 需要之前就把模型权重准备好,让新副本更快开始服务。TensorFusion 目前没有模型预加载功能:没有任何 CRD 字段、注解或组件负责下载、缓存或预热模型。本页说明冷启动的各个阶段里 TensorFusion 管哪些,并给出可以与它搭配使用的 Kubernetes 做法。

冷启动里 TensorFusion 管哪些

冷启动阶段TensorFusion 是否处理
等待 GPU 节点部分处理。资源池的 capacityConfig.warmResources 用来预留一部分空闲的 TFLOPS 和显存:节点合并不会回收会让空闲量低于这个值的节点;在 Provisioned 和 Karpenter 模式的资源池里,空闲量低于它时 TensorFusion 还会主动加节点
拉取容器镜像不处理
下载模型权重不处理
把权重加载进显存不处理

SchedulingConfigTemplate 里有一个 hypervisor.autoFreezeAndResume.intelligenceWarmup 配置块,chart 的默认模板也填了值。但 controller 和 hypervisor 都不读取它,这段配置没有任何效果。

把模型权重缓存到卷上

在有内置功能之前,把权重放在生命周期比 Pod 长的卷上即可。TensorFusion 的 webhook 只往 Pod 里添加自己的卷和 init 容器,不改动你定义的卷,所以用不用 vGPU 做法都一样。

  1. 为缓存创建一个 PersistentVolumeClaim。多个副本共用时,选择支持 ReadWriteMany 的存储类。

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: model-cache
    spec:
      accessModes: [ReadWriteMany]
      resources:
        requests:
          storage: 100Gi
  2. 在工作负载里挂载它,并把框架的缓存目录指过去。下面以 Hugging Face 的缓存变量 HF_HOME 为例:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: llm-server
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: llm-server
      template:
        metadata:
          labels:
            app: llm-server
            tensor-fusion.ai/enabled: "true"
          annotations:
            tensor-fusion.ai/tflops-request: "10"
            tensor-fusion.ai/tflops-limit: "20"
            tensor-fusion.ai/vram-request: "8Gi"
            tensor-fusion.ai/vram-limit: "8Gi"
        spec:
          containers:
            - name: server
              image: <your-inference-image>
              env:
                - name: HF_HOME
                  value: /models
              volumeMounts:
                - name: model-cache
                  mountPath: /models
          volumes:
            - name: model-cache
              persistentVolumeClaim:
                claimName: model-cache
  3. 先把工作负载启动一次,第一个 Pod 会把权重下载到卷里。然后删掉它,观察新 Pod 的启动过程:

    kubectl delete pod -l app=llm-server
    kubectl logs -f deploy/llm-server

    第二次启动不再下载,直接进入加载模型的阶段。

预留 GPU 容量

如果新副本慢是慢在等 GPU 节点,而不是等权重,就调大资源池的预留容量。在 TensorFusionCluster 的 spec.gpuPools[].specTemplate 下设置:

capacityConfig:
  warmResources:
    tflops: "100"
    vram: 40Gi

用 Helm chart 安装时,对应的 value 是 cluster.pool.capacityConfig.warmResources。

下一步

  • 创建 AI 应用:上面用到的标签和注解。
  • 优化 GPU 效率:预留容量和节点合并之间的关系。

GPU 热迁移

GPU 上下文快照和热迁移目前能做什么,以及没有热迁移时怎么挪动 GPU 工作负载

优化 GPU 效率

先量出资源池分配了多少、实际用了多少,再调整工作负载的资源配置、让负载排得更紧凑,并释放空闲节点

目录

冷启动里 TensorFusion 管哪些
把模型权重缓存到卷上
预留 GPU 容量
下一步