原文链接:
https://www.xiaohongshu.com/explore/69d4c3dd0000000022001a9c?xsec_token=AB6aPOJR3aj5rH4RteTG72hBsrmMKJ_hSwDTay1FFOdo4=&xsec_source=pc_user
大模型后训练学习路线与面试复盘(2月-3月)
一、2月份:项目 + 八股,打基础
早早决定了转大模型,想做后训练,从2月9号开始发帖记录自己的学习历程,这一个月主要是项目+八股,我主要是通过小破站+知乎+论文的方式来进行学习。
1. 先学Transformer、Embedding、Positional Encoding,到Encoder-Decoder的每一个子层,再到LayerNorm、残差连接的作用和实现细节
- 每一个模块都单独拆出来学习
- 搞懂了为什么要这么设计,而不是只知道有这么个东西
- 然后再进行适当的扩展,比如说MHA、GQA等手册
2. 学习MDP、策略梯度、KL散度、信息熵、广义优势估计、时序差分、蒙特卡罗等一系列强化学习基础
- 这里非常推荐小破站的“东川路第一可爱猫猫虫”大佬的讲解视频
- 从强化学习基础到PPO的每一部分知识以及完整实现都有囊括
- 非常适合打基础
3. 学习PPO、DPO、GRPO等基础算法的概念、原理、公式、代码实现、伪代码手册
- 这三种算法的优缺点以及使用场景
- 这里可以看rethinkfun以及知乎的高质量解读文章
- 搞懂算法的核心思想是什么,解决了什么问题,是怎么一步步演化来的
- 去掉某一个部分行不行等等
4. 强化学习框架verl、llamafactory的源码实现以及具体的训练流程、分布式训练方法等等
- 搞懂各部分输入输出,方法调用以及具体的一些方法实现
- 比如说数据是如何加载构建预处理
- 模型是怎么做适配、量化、兼容
- 训练的时候各个算法trainer的实现
- 以及训练的时候一些评估指标
- 这里比较推荐知乎姜富春老师的解读以及实操笔记
5. 项目
- 我个人是自己想了两个项目,没有参考其他开源项目
- 如果参考开源项目的话,建议还是自己做一些改进
- 不然面试被问到实际落地问题时,很容易答不上来
二、3月份:投简历 + 刷题 + 面试复盘
1. 投简历与初期面试
- 3月初开始投简历 + 同步练习leetcode及算法手撕
- 大部分大厂算法岗一面都能过bar约面
- 但是自己面试水平初期比较菜,损失了比较多的机会
- 这里建议大家可以先面一些中小厂,熟悉一下自己对于项目以及八股还有哪些不熟悉的地方
2. 手撕代码的重点
- 手撕的话尽量还是要多练习一下
- 尤其是常考的一些leetcode高频题以及MHA、GQA、GRPO、KL散度等算法的手撕
- 不硬磕hard题,重点抓leetcode中等以及简单题
- 每天固定刷一些,重点在复习
- 但是出hot 100之外的题目也是有可能的,这个就看个人水平
- 我也遇到过实在不会的题目,面试官如果想要你的话会一步步提示引导的
3. 面试过程中的锻炼与复盘
- 面试过程中其实就是很好锻炼自己的机会
- 很多面试官喜欢问一些非常结合业务、工程类的问题,来考察实际的排查思路以及解决方案
- 这一部分建议大家仔细梳理一下,回答的时候要有逻辑性一些
- 比如说偏好数据的构建,RM怎么打分等等
4. 每日复盘方法
- 建议是白天面试,面试完之后晚上复盘今天的面试
- 比如说有哪些八股知识没答上来,或者有哪些实际的工程问题以及算法问题不是很懂
- 进行专项的一些查阅以及分类记录
- 我个人是喜欢用notion记录下平常的一些点,但是经常忘记整理,不太便于复习
5. 心态调整与策略
- 面试的时候答不上来其实是很正常的,就是一个问题也答不上来或者一道题也撕不上来,这个时候心态很重要
- 我是抱着学习的心态过来面试,有这么多不会的说明我还有很多能进步的地方
- 这段时间给予我的正反馈一直很强,每天进步一点点
- 不到10天的时间,我的面试状态和答题水平和初期投递完全不一样
- 对项目的理解、八股的深度、手撕的稳定性好了很多
- 这个时候再投大厂就有了很多二面三面以及offer
6. 关于面评与勇敢尝试
- 还是鼓励大家多尝试,做错了大不了就道歉
- 我个人不太care面评
- 因为自己有一次初期面得很差的大厂,过两个星期面另外一个部门也一样拿到了offer
- 就算是同一个部门,过几个月再面也是ok的
- 勇敢的迈出第一步最重要
- 祝大家都能找到合适的实习