如何通过 empty_cache() 缓解显存碎片化:深度解析 CachingAllocator 机制
在深度学习模型的训练和推理过程中,尤其是在使用PyTorch时,我们经常会遇到一个棘手的问题:明明通过 nvidia-smi 看到显存(GPU Memory)还有剩余,但在尝试分配新的大张量时却报出了 OOM(Out of Memory)错...
在深度学习模型的训练和推理过程中,尤其是在使用PyTorch时,我们经常会遇到一个棘手的问题:明明通过 nvidia-smi 看到显存(GPU Memory)还有剩余,但在尝试分配新的大张量时却报出了 OOM(Out of Memory)错...
许多AI开发者在使用PyTorch进行训练或推理时,经常会遇到一个困惑:当我使用del删除张量后,或者模型明明只占用了几个GB的显存,但通过nvidia-smi查看时,GPU的显存占用率仍然居高不下。本文将深入解析PyTorch的显存分配机...
引言:理解AI公平性的内在矛盾 在AI模型的部署阶段,公平性(Fairness)是一个核心的质量指标。然而,公平性并非一个单一的概念,它通常被划分为两大主要流派:群体公平性(Group Fairness)和个体公平性(Individual ...
如何利用 Doc Values 磁盘列式存储提升 Elasticsearch 聚合性能 在Elasticsearch中,数据检索主要依赖倒排索引(Inverted Index)。然而,倒排索引是为快速搜索文档而优化的(即“哪些文档包含这个词...
在 PyTorch 中,当内置操作无法满足性能或功能需求时,我们需要自定义高性能的 C++/CUDA 算子。要让 PyTorch 的自动求导机制(Autograd)识别并正确计算这些自定义算子的梯度,我们必须使用 torch.autogra...
在AI模型被广泛应用于信贷审批、招聘推荐和医疗诊断等高风险场景时,模型决策的“黑箱”特性以及潜在的公平性偏差(Bias)成为了部署中不可回避的挑战。为了提升用户信任和满足监管要求,我们必须将公平性监控结果以用户友好的方式呈现。 本文将聚焦于...
高维向量搜索是现代推荐系统、图像识别和自然语言处理的核心技术。当数据集达到百万甚至数十亿级别时,线性搜索(暴力搜索)变得不可接受。HNSW(Hierarchical Navigable Small World,层级可导航小世界)是目前最流行...
在 PyTorch 的模型训练和推理过程中,为了节省内存或提高计算效率,我们经常会用到原地操作(Inplace Operations),例如使用 add_()、mul_() 而不是标准的 + 或 *****。然而,在涉及到梯度计算(即 re...
在 PyTorch 中,我们通常使用 torch.no_grad() 来关闭梯度追踪,以加速推理过程或节省内存。但如果我们需要在复杂的训练流程中,根据特定的条件(例如,在执行一个嵌入式评估函数时)动态地、有条件地控制梯度,标准的上下文管理器...
在 PyTorch 的模型推理阶段,我们通常需要禁用梯度计算,以节省内存和提高运行速度。最常用的方法是使用上下文管理器 torch.no_grad()。然而,PyTorch 1.9 版本引入了一个更强大的替代品:torch.inferenc...