所有文章 (80)
less is more
混合精度训练真的降低显存占用吗
·约 735 字·2 分钟
AI摘要: 本文探讨了混合精度训练(AMP)是否真的能降低显存占用。通过分析模型参数、梯度、优化器参数和激活值在FP32与FP16下的存储需求,指出虽然前向推理时显存减半,但反向传播因数值范围限制需转回FP32并保留原始FP32模型副本,导致总显存变为原来的1.5倍。然而实际训练中梯度和激活值才是主要开销,综合计算显示混合精度仍可减少整体显存使用量(如7B模型从112G降至84G),同时提升计算速度。...
混合精度训练AMPFP32/FP16转换显存优化梯度溢出优化器动量激活值存储反向传播精度损失双份模型参数保存Pytorch爆显存的一些常见解决办法
·约 3707 字·8 分钟
AI摘要: 本文针对PyTorch训练过程中显存爆炸的问题提供了两种解决方案:一是通过`torch.cuda.memory_allocated(device)`逐步骤监控显存占用情况以定位瓶颈;二是分析计算图累积机制,指出在循环中不当操作(如append/累加loss)会导致历史变量长期驻留内存,并强调需使用detach或item主动释放张量而非仅依赖no_grad()。文中还展示了自定义Trainer类的实现案例,说明如何避免hidden_states等中间结果被意外保留。...
显存监控计算图累积torch.cuda.memory_allocatedno_grad限制detach释放张量hidden_states管理对比学习损失优化SupConTrainer定制什么是Vercel的Fluid计算
·约 723 字·2 分钟
AI摘要: 本文深入解析了Vercel推出的Fluid计算技术,该技术通过类似操作系统线程池的机制解决传统Serverless架构中的冷启动问题。其核心在于复用已创建的Node.js实例而非频繁新建,实现实时扩展、资源预占、按实际用量计费等特性,并支持流式传输和响应后处理等高级功能。文章指出这种设计模式与计算机操作系统的资源调度策略高度相似,体现了底层系统工程思想在云原生领域的创新应用。...
VercelFluid ComputeServerless冷启动线程池类比Node.js实例复用实时扩展性预热机制按需计费模型流式传输处理Rust的trait特征
·约 1099 字·3 分钟
AI摘要: 本文详细介绍了Rust语言中的trait特性,包括其基本用法、继承与多继承操作、静态分发和动态分发机制。通过示例代码展示了如何定义和实现trait,以及使用Send和Sync约束实现者的能力。文章还对比了trait与接口的不同之处,解释了静态分发(编译时确定类型并生成高效代码)和动态分发(运行时查找具体实现)的原理及性能差异。...
RusttraitSendSync静态分发动态分发impldyn泛型编程多态性Rust基础知识回顾
·约 2609 字·6 分钟
AI摘要: 本文系统回顾了Rust语言的核心机制,包括所有权转移(通过赋值和into实现)、单线程共享的Rc智能指针、跨线程安全的Arc智能指针、互斥锁Mutex用于多线程数据保护、借用辅助函数as_ref/as_deref进行安全引用转换,以及Option/Result的错误处理模式和生命周期注解规则。重点解析了这些特性在内存管理、并发编程中的实现原理与应用场景。...
所有权转移From traitRc<T>Arc<T>Mutex<T>as_refas_derefOption::mapResult::map_err生命周期标注