今年的日子似乎快一些。感觉上没有发生什么很大的事情,很多事情搜搜看要么是前几年的事情却好像就是今年,要么就是最近要做的事情却感觉忘记了很久。还能记住的事情基本都是今年一直在弄的几篇论文。
Polymorpic。从去年入学开始,一直弄到差不多今年暑假结束。从赶HPC到ASPLOS到ATC到MICRO,最后分数也不怎么样。做这个的过程中一直在学东西,但学到的东西和项目本身好像也没什么关系。不过至少是了解了比较基本的计算机体系架构的知识,看了些量化的方法,并为动手把常见的模型搭了起来,虽然错误很多。
Polymorpic结束之后有一个多月时间其实没做什么事情。最开始在研究能不能让SNN在GPU/CPU这种通用架构上也能有不错的推理速度,看了一些关于稀疏加速、LUT之类的东西,学着自己写了一些CUDA Kernel和Triton Kernel,不过基本是浅尝辄止,最后也没有得到什么比较好的效果。现在回头看还是profiling做得不够细致,并且对CUDA编程也没有一个特别好的了解。后面也许还会做这个事情的。
CVPR截稿前两周老板想出了一个论文idea,跟着师兄和老板一起快速做了一篇文章出来。代码基本上是师兄写的,没太去关注代码给后面项目出问题可能埋了伏笔。论文快速做了出来,主要是利用ST-BIF Neuron的电荷守恒性质+差分编码做输入,在视频流任务上面展示一些有趣的效果。由于做完差分之后frame会稀疏很多,输入网络之后的Spike Rate应当是下降的,这点在Energy上也得到了印证。同时由于LoCC的性质,以往ANN2SNN每次需要清零Membrane potential的(因为原ANN没有这些历史信息/量化误差,不清零会和原网络不等价)问题也解决了。是个很有趣的SNN算法工作,做这个工作是我第一次从头到尾完整跟一个项目,但实际上做的工作还是有限。
直到现在一直在做的项目是cvpr这个工作的改进,最开始的想法是通过Neuron改进+仿生抑制机制+改进SNN suited Attention,但是一直没什么进度。老板在这段时间教了很多做科研的方法,包括事情的组织、思考问题的方法。后面老板给了个Spike Allocator的点子,但做出来效果一直不好,可能直到今天才能正式给出一个这个东西不work的结论。后面是准备赶ICML的,看起来还是需要一些更高稀疏度的输入形式,比如事件相机。做这个项目的过程中调代码修bug花了非常长的时间,因为之前的代码不太熟悉,很多东西改的都不是很对。
今年的大部分工作都有LLM/Copilot like工具的参与,今年做了工作自己写代码的数量远少于GPT生成的代码,大部分时候都是想好一个大概的框架,喂给GPT生成一个代码框架,然后自己在框架的基础上做一些修改或者干脆让GPT修改。Cursor之类的工具也尝试过,但是总体来讲目前感觉效果最好的代码生成还是GPT O1。它写出来的代码包括做说明、理解prompt的能力都比4o以及其他尝试过的模型强很多。Claude的Sonnet3.5也做了尝试,代码质量不错,但是限额始终还是比较有限,尤其A家的风控实在是太激进了,我不太能接受平时经常用的生产工具要时常担心会不会被封号的问题。但今年的ChatBot没有前几年刚推出的时候那么让人兴奋了,大家都能看到ChatBot能做到的基本都是人能做到60分的事情,但是我们需要的经常是它能做到我们难以做到的90分的事情,而目前的大部分Agent/Bot/Model都和这个水平有一个很大的gap。包括目前能看到的一些针对LLM以及其他方向的研究,感觉大家逐渐走到了某个边界上,被算力 - 模型大小这样的边界束缚住。也许明年又会有新的范式带来一波热点吧。
明年的计划首先是结束CVPR这个工作的改进,目前想的做法包括换用事件相机、把之前一些比较minor的改进拼一拼凑个好用的之类的,不过都还不是更成熟。距离摘要截止只有三个星期了,感觉又是要快速赶工做出来的东西。另外还有些想尝试做的事情,比如重新做一下之前计划做的Arxiv Bot,可能做成一个服务之类的。想的是要包括对自定义的作者/关键做定向监控,然后加上带喜欢/不喜欢的刷论文推荐。另一个想做的东西可能是一个保质期管理APP,通过扫条形码+OCR登记商品信息+保质期,给家里买的东西做做监控。但是其实也没有特别强的动力去做,因为这个东西听起来不算最有趣的那类东西。实际要做的事情还有要毕业、实习。还是挺多事情要做的。