兄弟们,最近在折腾AI模型部署,从单机推理到分布式集群,踩了一堆坑,分享点干货。
先说推理架构,别一上来就整大模型全量部署。现在主流做法是vLLM或TGI做服务化,配合Kubernetes自动扩缩容。我试过用FastAPI裸调HuggingFace,QPS稍微一高就炸,后来换成vLLM的PagedAttention,显存利用率直接翻倍。
再说训练基础设施,数据加载这块容易忽视。PyTorch的DataLoader如果不配多进程+预取,GPU等数据能吃满吗?不能。更别说大模型训练,数据管道得用WebDataset或MosaicML的流式加载,否则IO就是瓶颈。
部署层面,GPU虚拟化是关键。单卡跑一个模型太奢侈,用NVIDIA MIG或vGPU切分,或者直接上Kubernetes+NVIDIA operator管理GPU资源。我见过有人一个A100只跑一个BERT,资源利用率不到20%,看着心疼。
最后说显存优化。FlashAttention、bitsandbytes的4bit量化、DeepSpeed的ZeRO系列,该用就用。别迷信全精度,INT8推理精度损失在可接受范围内,但显存能省一半。
有个问题一直困扰我:大家在AI基础设施的监控告警上,都用什么方案?Prometheus+Granfana够用吗?还是得上商业方案?欢迎交流。 |