当前位置: 首页 > 科技观察

特斯拉前AI总监Karpathy狂赞:单台A100,10秒训练CIFAR-10,打破世界纪录!

时间:2023-03-18 01:09:15 科技观察

打破世界纪录!600行代码,在单台A100上,不到10秒就完成了CIFAR-10数据集的训练,准确率高达94%。特斯拉前AI总监AndrejKarpathy连发3条推文,疯狂点赞。Karpathy之所以如此兴奋,是因为12年前,他尝试手动对CIFAR-10进行分类,并获得了94%!当时SOTA只有80%。项目介绍项目地址:https://github.com/tysam-code/hlb-CIFAR10gitclonehttps://github.com/tysam-code/hlb-CIFAR10&&cdhlb-CIFAR10&&python-mpipinstall-rrequirements.txt&&pythonmain.py这段代码可以直接在Colab上使用,其实——大部分都是在Colab上开发的。这位名叫Tysam的小哥给自己定下了简单易学的目标,只需要torch和python的通用代码,几乎没有任何外部依赖(目前只有torch和torchvision),打破单GPU训练时间世界纪录(之前世界A100上的记录是18.1秒,Tysam用了2年的时间打破了世界纪录——不到10秒,让训练时间不到2秒为了实现快速训练神经网络的实现,Tysam参考了DavidPage的CIFAR——10image用于在分类数据集上有效训练残差网络的代码,但几乎是从头开始编写的。这种方法的好处是Tysam代码现在保持着CIFAR-10上单GPU训练速度的世界纪录——在A100上不到10秒!Tysam在DavidPage的代码基础上做了以下改动:压缩和激发层(squeezeandexcitelayers)大量超参数调整复杂的架构修整(mis??cellaneousarchitecturetrimmings)改变内存格式,更好地使用张量核等。Tysam的代码都在一个文件中,与原始代码相比非常扁平。此外,所有的pipeline也都已经公开,感兴趣的朋友可以在里面快速探索自己的想法。至于为什么选择了ConvNet而不是最流行的Transformer?在Tysam看来,虽然Transformer是一个新生事物,但信息从训练集压缩到神经网络的方式其实一直遵循着同一套基本的数学原理。Tysam希望在一两年内在2秒内训练这个代码库,在四到五年内在1秒内训练。Karpathy疯狂地称赞Tysam的代码,Karpathy满脸钦佩,毫不吝啬地夸赞——“我喜欢这种极简主义的设计美学,它让阅读代码不再是一场令人筋疲力尽的寻宝。你不需要把代码散布在一个复杂的嵌套目录结构,然后用各种指令使事情变得过于复杂。”后来,Karpathy还表示,这让他想起了12年前做过的测试:12年前,“肉眼”分类在未知的时间内达到了94%的准确率。12年后,600行代码在不到10秒的时间内达到了94%的准确率。当时的过程大致是:在一个普通的周末,Karpathy突然想看看人类在这个数据集上能达到什么样的准确率。于是赶紧手搓了一段MATLAB代码进行测试。界面是这样的:测试的时候,程序会先一张一张的显示图片,然后Karpathy会按0-9(10个键),对应他认为这张图片的类别(10个类别)。不知过了多久,Karpathy终于完成了对400张图像的分类,准确率约为94%。那么,为什么不是100%?Karpathy:“因为有些图像真的很荒谬!”比如下面这个:难怪Karpathy预测AI能达到的极限是85-90%(笑)。当然后来的结果大家都知道了,CIFAR-10分类的准确率早就被刷到了99.5%。大名鼎鼎的CIFAR-10众所周知,CIFAR-10是GeoffreyHinton和他的学生AlexKrizhevsky和??IlyaSutskever编写的用于识别通用对象的小型数据集。它也是当今机器学习研究中使用最广泛的数据集之一。一。CIFAR-10数据集由10类32x32彩色图片组成,共包含60000张图片,其中50000张图片作为训练集,10000张图片作为测试集。这10类分别是:飞机(airplane)、汽车(automobile)、鸟(bird)、猫(cat)、鹿(deer)、狗(dog)、青蛙(frog)、马(horse)、船(ship)和卡车(货车)。参考:https://github.com/tysam-code/hlb-CIFAR10