Torch 是一个老牌开源机器学习库,其底层实现基于 C/C++。Torch 提供了强大的张量计算功能以及一套完整的深度学习框架,支持高效的 GPU 加速计算和自动求导机制。
PyTorch 可以看作是 Torch 的一个分支或者后继者,保留了 Torch 的一些核心理念和技术优势,同时通过采用 Python 这一流行的数据科学和机器学习领域的编程语言,极大地提高了用户友好度和生态系统的兼容性。目前一般所说的“Torch版本”可以理解为PyTorch项目的版本号。
CUDA是由 NVIDIA 公司推出的一种并行计算平台和编程模型,它使得开发者能够利用 NVIDIA 的 GPU 进行大规模并行计算,从而极大地加速数据密集型任务,尤其是在处理深度学习中大量浮点运算时的优势尤为明显。
PyTorch 依赖 CUDA ,不同版本的 PyTorch 需要特定版本的 CUDA。
Sota实际上就是State of the arts 的缩写,指的是在某一个领域做的Performance最好的model,一般就是指在一些benchmark的数据集上跑分非常高的那些模型。
SOTA model:并不是特指某个具体的模型,而是指在该项研究任务中,目前最好/最先进的模型。
SOTA result:指的是在该项研究任务中,目前最好的模型的结果/性能/表现。
传统机器学习的流程往往由多个独立的模块组成,比如在一个典型的自然语言处理(Natural Language Processing)问题中,包括分词、词性标注、句法分析、语义分析等多个独立步骤,每个步骤是一个独立的任务,其结果的好坏会影响到下一步骤,从而影响整个训练的结果,这是非端到端的。
从输入端到输出端会得到一个预测结果,将预测结果和真实结果进行比较得到误差,将误差反向传播到网络的各个层之中,调整网络的权重和参数直到模型收敛或者达到预期的效果为止,中间所有的操作都包含在神经网络内部,不再分成多个模块处理。由原始数据输入,到结果输出,从输入端到输出端,中间的神经网络自成一体(也可以当做黑盒子看待),这是端到端的。
Benchmark和baseline都是指最基础的比较对象。你论文的motivation来自于想超越现有的baseline/benchmark,你的实验数据都需要以baseline/benckmark为基准来判断是否有提高。唯一的区别就是baseline讲究一套方法,而benchmark更偏向于一个目前最高的指标,比如precision,recall等等可量化的指标。举个例子,NLP任务中BERT是目前的SOTA,你有idea可以超过BERT。那在论文中的实验部分你的方法需要比较的baseline就是BERT,而需要比较的benchmark就是BERT具体的各项指标。