从 batch size 设多少到动态推理:重看 TensorRT 5 之后的演进Sep 26, 2026·3628 words·8 minsDeep-Learning TensorRT Inference CUDA Ml-Infra一个部署工程师的困惑 # 几年前我在做计算机视觉模型的部署,用的是 TensorRT 4 和 5。每次把训练好的模型转成 TensorRT engine,都绕不开一个参数:maxBatchSize。
推荐系统的动态算力:当机器跟不上流量,如何让 Workload 具备弹性Sep 16, 2026·4405 words·9 mins工程 Ml-Infra 推荐系统在 2022 年的年终总结里,我提过当时做的一个“动态算力”项目。那一年,我和另一位同事一起推进了这套系统,陆续接入腾讯新闻、QQ 音乐、全民 K 歌等业务,部分场景节省了约 30% 的成本。
当资源利用率开始影响 Quota:一次训练集群资源治理机制的设计与反思Sep 14, 2026·6323 words·13 minsDeep-Learning Ml-Infra Scheduler Quota Feedback-Loop起因 # 三年前我参与维护过一个多人共享的训练集群。集群上跑着各业务线的训练任务,用户通过一个队列系统提交,每个用户有自己的资源 Quota。
从 Docker 到 Kubernetes:目标状态与资源抽象Sep 12, 2026·3139 words·7 mins工程 K8s Docker 分布式系统 Ml-Infra起因 # 在上一篇《从进程视角重新理解 Docker》中,我总结了 Docker 最核心的价值:它通过 namespace 和 cgroup 给进程构造了独立的视图和资源限制,并把这套运行环境固化成了可以直接分发的 artifact。
为什么一个 Python Library 既要锁依赖,又不能锁依赖Sep 11, 2026·5605 words·12 mins工程 Python Packaging Uv Ml-Infra起因 # 最近在团队内部重新整理 Python 项目的打包、发布和依赖管理规范,逐渐把各个工程统一收敛到:
训练数据从哪里来:回看 2018 年的一套图片与视频采集系统Sep 10, 2026·4643 words·10 minsDeep-Learning Ml-Infra Data-Pipeline Scrapy起因 # 写训练代码的时候,经常从这里开始:
从一次训练集群卡顿,理解 Linux OvercommitSep 9, 2026·7429 words·15 minsDeep-Learning Linux K8s Ml-Infra Memory-Management起因 # 最近偶然看到一篇文章,里面提到一个 Linux 和 Windows 的差异:在 Linux 下,即使机器实际上没有足够的物理内存,一个很大的 malloc 仍然可能成功返回。而 Windows 对 committed memory 的管理要严格得多,类似的 allocation 更容易被直接拒绝。
从 Token ID 到 Dense Vector:Embedding 到底在做什么Sep 9, 2026·3814 words·8 minsDeep-Learning Embedding Tokenizer CS336 6.S191 Ml-Infra起因 # 最近在继续 CS336 和 MIT 6.S191。
从 Forward 到 Optimizer:再看一遍 Training LoopSep 6, 2026·2713 words·6 minsDeep-Learning Training 反向传播 Optimizer 6.S191 Ml-Infra起因 # CS336 的 training loop 里,loss.backward() 和 optimizer.step() 挨在一起。前者计算 gradient,后者更新 parameter;但 gradient 存在哪里、什么时候清零、optimizer 还维护什么状态,需要分开看。于是结合 MIT 6.S191 的 Lecture 1,把一次训练迭代重新过了一遍。
从推理到训练:模型调度中的显存约束Sep 5, 2026·2607 words·6 minsDeep-Learning Gpu-Memory Model-Scheduling Training Activation-Checkpointing CS336 Ml-Infra推理任务能放下,为什么训练任务放不下 # 上一篇讨论了模型调度中的 Capacity Constraint:一组模型到底能不能同时放进一张 GPU。
从 CS336 到 ML Infra:理解 Arithmetic Intensity、Accelerator Intensity,以及 Compute Bound / Memory BoundSep 3, 2026·6012 words·12 minsDeep-Learning CS336 Arithmetic-Intensity Roofline Gpu-Performance Inference Ml-Infra起因 # 这是 CS336 系列的又一篇。
从 reshape 到 einops:理解 Transformer 代码中的 Tensor Shape DSLAug 27, 2026·6243 words·13 minsDeep-Learning Einops CS336 PyTorch Transformer Ml-Infra起因 # 最近在做 CS336(Language Modeling from Scratch)的 Transformer 实现,代码里反复出现这种写法:
从线上模型切换问题理解 PyTorch CUDA Caching Allocator:为什么显存管理需要理解生命周期Aug 26, 2026·6437 words·13 minsDeep-Learning CUDA PyTorch Gpu-Memory Memory-Allocator Inference Ml-Infra起因 # 我们的线上推理系统中存在大量模型——MLP、GNN、MoE,以及它们的各种组合。这个 workload 有几个重要特点:
Lance 适合我们的训练特征存储吗?从 NumPy、mmap 到 GPFS I/O 的一次分析Aug 26, 2026·4556 words·10 minsDeep-Learning Ml-Infra Storage Lance Gpfs起因:一个来自运维同事的问题 # 前阵子运维同事找到我,大意是:
从 DataLoader 到 Remote DataLoader:如何让 GPU 不再等待数据Aug 23, 2026·4765 words·10 minsDeep-Learning Dataloader Ml-Infra 分布式系统 PyTorch起因:GPU 没吃满,但不是算力问题 # 最近组里有同学训练模型时,最直接的感受是:GPU utilization 上不去,step time 里总有一段在等数据。
从 AMP 到 Mixed Precision:训练和推理为什么不使用同一种精度Aug 21, 2026·5776 words·12 minsDeep-Learning Mixed-Precision AMP Quantization BF16 Inference Ml-Infra起因 # 以前在商汤做 CV 的时候,有一段时间在做目标检测模型的 INT8 量化。目标很直接:降低 inference latency,减少 model memory 和 bandwidth,同时利用 INT8 hardware throughput。
从 IEEE 754 到 BF16:理解 ML Infra 中的浮点精度选择Aug 19, 2026·6632 words·14 minsDeep-Learning Floating-Point BF16 FP16 TF32 Inference Ml-Infra起因 # 上一篇讨论模型显存时,我直接用了一张表:
从参数量到 Peak Memory:模型显存到底应该怎么算?Aug 17, 2026·5253 words·11 minsDeep-Learning Gpu-Memory Model-Scheduling Inference Training CS336 Ml-Infra起因 # 上一篇讨论了模型调度中的 Performance Constraint:一个模型放到 GPU 上以后,到底跑多快?
从 FLOPs 到 Latency:GPU 推理性能到底由什么决定?Aug 15, 2026·3136 words·7 minsDeep-Learning Gpu-Performance FLOPS Roofline Inference CS336 Ml-Infra起因 # 最近在做 CS336(Language Modeling from Scratch)的 resource accounting 作业,里面要求逐个列出 Transformer forward pass 中所有的 matmul,然后按 \(2MKN\) 计算 FLOPs。