2024 是我接触深度学习的第一年,也是进入大模型领域的第一年,也许未来某天回头看,今年会是做出众多重要选择的一年。
先上一下 Coding 的年度总结:
坐标北京普通 211 人工智能专业,前两年专攻 FPS 游戏段位,后面对前端开发兴趣浓厚,从 JS 学到 React,后面对 CS 产生兴趣并开始学一些公开课则是后话。计划做一个四年在校生活的回忆录,为了能畅所欲言就留到半年后再动笔,这里就只做 2024 年的记录。总之,在今年前我的想法是努力提升开发水平,本科或者出国读个一年硕后做 SDE,在专业课安排或多或少的影响下,AI 和学术在我眼中是一个很混乱的领域,除了用 GPT-4 帮忙写代码外不准备与 AI 有一点接触。
寒假:接触深度学习#
因为学校大三下要开 DL 课,所以准备寒假提前学一点。自从之前学 ML 发现西瓜书看得云里雾里,而发现 CS229 之类的国外公开课 / YouTube 教程比较对自己胃口,在谷歌一通后找到了 Andrej Karpathy 的 nn-zero-to-hero 教程,实在是令人惊喜!第一课就通过实现自动微分让我理解了深度学习的核心概念,十分推荐作为入门课程,b 站也有烤肉版:
在他的引导下,我一口气从 n-gram、word2vec 学到 CNN。卷积神经网络这个概念我在大一随便进了个课题组的组会上已经耳熟能详,但没有一个人能用人话让一个大一新生理解这些模型在做什么。最后,当亲手实现 GPT2 模型的那一刻,通往一个璀璨世界的大门在我眼前徐徐展开。我对 AI 的态度从变为了由衷着迷:哦原来我竟能窥探到 ChatGPT 这个 Killer APP 的底层一隅。
这里一个直观的感受是学前后端开发时接触到的工具链和思维会对学 DL 有一定帮助,最基本的就是配环境时能有个大概的概念,能从其它领域迁移一些直觉过来,因此直系学弟学妹来咨询我学习路线时,我基本都会让他们从学一点前 / 后端开发开始,以弥补学校教育对实践素养培养的缺乏,也顺便开开眼界。
这时也接触到了 @DIYgod 大佬的博客平台 xLog,初尝便毅然决然地把个人博客从 Hexo+gh-page 转到了 xLog 上,除了美观好用自定义功能支持全面之外,最重要的是有社区推流,能更好地提供给我正反馈🥹
欢迎参观!今年补完 MyGo 后头像和网站 Icon 都用的是东京阿农 🥰
实习:局外人看大模型局势#
今年 Kaggle 上 LLM 相关比赛众多,选择了谷歌赞助的一个 LLM Prompt Recovery 比赛做为重点投入对象,这里完全是看在大家普遍对这个比赛一头雾水,赌一手大力出奇迹。后面在数据上下了点功夫,在运气加持下最高达到了公榜第二名。后面实习和生活的双重压力下投入时间减少,最后勉强压线拿了人生中第一块竞赛银牌。
到了 3 月份,压力给到了暑期实习学分上,根据经验推断出学校安排的单位应该质量较低(后面结果出来故傲然一言难尽),故三月底开始在 BOSS 上投递简历,故对于给面的一些中小公司,由于和大模型没什么关系就没有考虑。当时天真的以为学完 Karpathy 的课,手撕了 Transformer、GPT2 就已经可以找到一份大模型实习了,不曾想学校背书能力不够,自己也没有其它亮点或 connection,陷入了很痛苦的漩涡,觉得大模型这条路对我来说已经走死了。
这时楼教主的 Pony.ai 有一个组想招一个对该领域有了解的实习生,工作内容是完整跟进一个内部项目,我觉得这也许是我当前阶段最好的机会,并且功利来讲能充实简历上的经历,故接 offer。大三下学期课程依然不值得学习,但好在老师们普遍对出勤要求较低,故在友好沟通后直接 all in 实习,每周基本出勤 4-5 天,来回通勤接近 3h,回想起来确实是痛并快乐的一段日子,同事和 mentor 都很 nice,此外利用专业知识挣到了人生中第一个 1w,让我对自己的未来重拾一点信心。
工作内容主要是调研大模型在内部数据标注任务的工作流,,前期主要就是调海量的 API 来实验,除了改善工作流,最重要的就是找到最好的模型。其间各家的 API 真的是随叫随到,有公司报销可以无痛多线程调用,印象里包括但不限于:字节的云雀 & 豆包,Kimi,阿里的开源和闭源模型 Qwen,百度 Ernie,腾讯混元,至于 Baseline 则是 GPT-3.5(要求数据不能出境故需国产模型 or 私有化部署),上述模型里唯一任务性能接近 OpenAI 的是 Kimi,但费用较高,因此开始着手调研其它模型。这时打 Kaggle 的 AI 数学竞赛时用 DeepSeek-7B-Math 体验很好,便了解到了深度求索这家公司,同时它们刚推出 DeepSeek V2,3rmb / 百万 tokenk 输入输出的定价直接吸引了我,在我的 benchmark 里测试发现性能远超 GPT-3.5,除了指令遵循偶尔会差一点外堪称完美。于是那段时间业务流水线里跑的模型变成了 DeepSeek。
本节说是以局外人身份看大模型领域发展正是因为如此:我的工作中并不接触到 LLM 的核心算法,而是在研究其具体应用,但是能从我的实验结果中看到各家模型的真实能力和自身的真实实力(这个业务确实很考验模型的指令遵循、信息抽取和推理能力,而且排名先后和 lmsys 大差不差),这让我对各厂商的营销完全脱敏,甚至可以靠刻板印象直接否定一些公司未来推出的高分刷榜模型。
至于后面,国内大模型厂商开始跟随 DeepSeek 迎来价格战,超级利好公司当前的业务。当然我并不关心豆包、文心的降价,但 Qwen 降价后变也列入了考虑名单内。6 月份,通义千问推出了 Qwen2.0 开源模型,测试后开始纳闷为什么阿里的开源模型远远好于闭源系列(如 qwen-plus,qwen2.0 甚至好于昂贵的 qwen-max,印象里这一颠倒现象在 8 月后才消失)。从这里开始对这两家国内公司的模型最有好感,DeepSeek 也成了我的梦中情司(还离我高中非常近,可以经常附中了🥹)。事实证明后来它们两家也继续保持了出色的势头,在外国开源社区讨论度也很高,以 Qwen2.5/QwQ 和近期 DeepSeek V3 为首,从很多人能接受把这两个模型放到 Cursor 里使用便可见一斑。
期间面基了回国实习的 @JerryYin777,和他聊天真的是非常 informative,了解了很多 LLM 领域的知识、学习路线和趣事。有机会再约饭!
本来计划找个暑研但因种种原因没有实现,所以一直实习到八月份。
离职当天的留念,公司环境和氛围都很好,下次还来:)
知识恶补和科研#
实习其间除了 Python 后端、LLM 应用落地和性能评估之外也在学习模型架构、训练流程等知识,现在看来这些都属于最基本的八股,满足于跑个 unsloth 实现的 LoRA 微调 7B 脚本。除此之外就是由于有一段时间公司要调研私有化部署,于是开始研究 vLLM 等,逼着自己去边学边输出于是接触到了 DataWhale 的 llm-deploy 项目,负责其中的并发部分教程,借此机会弥补了大量 mlsys 领域的知识空白。
但这会还是对于学习和发展路线十分迷茫,还好刷知乎看到了这篇文章:
最巧的是,大佬正在梦中情司 DeepSeek 工作,于是我把他在文章结尾提到的建议当作 bitter lesson 一样每天阅读以鞭策自己,现在对照着看一下进度:
- A. 在两张 2080Ti 上实现和比较过不同的流水算法的性能:学了 DeepSeed,Megetron 原理后,准备最近产出一下相关内容;
- B. 用 Triton 自己实现过一些算子:包括但不限于 凪 ovo:Triton 初尝:实现 Softmax 前向内核,准备这段时间深入学习后整理到一个 GitHub repo 里;
- C. 能讲出不同的大模型使用的 tokenizer 的差异:Karpathy 的课程博客记录LLM 演进史 (六):揭开 Tokenizer 的神秘面纱,实现 BPE 和了解 tiktoken 中的一些特点;
- D. 在 Python 以外的语言上有不错的开发能力(例如某些开源项目背书):也许有?Modern C++ 过了一遍,有一点前后端开发能力,主要是愿意去动手学🥹
- E. 实现过一个效果拔群的五子棋 AI(最好是 RL 算法):凪 ovo:从 MCTS 到 AlphaZero
舍友成了测试 AI 棋力的好帮手
复现了 AlphaZero,训练效果不错,主要是跟 O1 Reasoning 的风,并且对 RL 本身就很有兴趣(选 AI 专业的时候以为人工智能就是游戏 AI 一样的强化学习)
同时完整学习了强化学习基础,为 RLHF 等做准备
工业界也体验了,想来一段正式的科研经历。学校的一个新 AP 老师给了我一个 cv 领域的机会(同时也作为毕设),一直工作至今,毕业后肯定会专门写一下这段经历,并帮超级 nice 的老师宣传一下 🥳
大四开学后发现自己一直以来非常符合 ADHD 的症状,去医院基本确诊后反而看开了很多,相当于有了张身体的说明书。往好了想,这也是一个能让自己在感兴趣的领域保持 hyperfocus 的优势。
同时升学方面从读一年硕变为了考虑 PhD,但不确定这个选择能否带给我足够的动力,因此准备 GAP 实习 / RA 一年来慢慢看(话说回来我的 pub 也不够,所以也许要沉淀一下),当然凭我对自己的了解,无论是科研还是业界实习,我都只想从事有价值的工作,因此如果能有情司的实习机会我可能直接 all in 了(梦想还是要有的,毕竟这还依然是我的前进动力之一)。
展望 2025#
-
我把今年的目标定为磨练心性。在见识到众多同龄、同领域的大佬后难免焦虑,而以自己亲身经历来看只与昨天的自己比较容易陷入局部最小,因此需要做好追逐榜样 & 自我提升之间的 trade-off。
-
对于 Agent,长远的 planning 和局部的固定 workflow 之间也有这样的权衡,我希望尽量往远看的同时能走好每一步,小任务也要做的快做得好。
-
至于其它,在输出博客的同时运营下知乎 & 小红书 & X,在 genai 的时代保持表达能力也是一个挑战,毕竟日常生活还是不能完全交给 LLM 的 🥰
-
巩固基础,保持好奇。
至此年度回忆结束,感谢阅读,祝大家 Happy 2025 ~