个人总结
- bg:2本中9硕,无论文,无大厂实习经历,单纯对 RL 特别熟悉,把 VERL 的框架改了又改,所以了解得深入。秋招面试主讲强化学习项目。
- 主包:4 月学习 RLHF,看了小红书 RZ 的帖子了解流程,上手做项目,找到实习后疯狂看代码。
- 小红书 RZ 的帖子了解流程
- 学强化学习基础部分
- 学习 RLHF 手写代码
- 简历项目:RLHF训练医学大模型
训练医疗大模型,实现了包括有监督微调、RLHF,Base model:Llama3.2-3B,Qwen2.5-3B
n1,n2,n3,n4,n5 都是数字
SFT:针对基于 n1k 通用数据以及 n2k 医疗数据上微调模型后在 CEval 医疗指标上成绩会下降的问题。将 CEval 医疗指标验证集使用某个向量模型进行向量化,作为目标数据分布,再将 shibing624/medical 中 200w 条数据向量化。将向量做相似度匹配,选出匹配度大于某个值的数据作为微调数据集。CEval 中 physician 成绩由 xxx 提高到 xxx。在 1k 医疗数据上 ppl 由 xxx 下降至 xxx。(面试官可能会评价,把评测集当做目标来召回是不是作弊?)
PPO:将 shibing624/medical 数据集使用医疗大模型构造病人病历特征得到 n3k 数据,再由 Baichuan4-Turbo 基于病人病情以及病历特征构造出推理数据,并由此生成 n4k 偏好数据集。将 n4k 偏好数据集混入通用偏好数据 n5k 构造出 10k 偏好数据集,先训练 reward model,再基于 SFT 后的模型进行 PPO 训练。模型最终具有医学推理能力。
GRPO:怎么样怎么样
修改奖励函数:怎么样怎么样
根据评测集进行召回的相关数据更新:
当时召回用的一些中间数据(评测集三个维度,CEval 的评测集)
使用 GLM-embedding-3 模型针对评测集做的向量化,得到评测集向量文件:
有了评测集的 向量文件后,要与原始几百万条向量化数据做召回(原始文件找不到了)。
召回代码:
召回输出的数据集:
- full_output_with_all_fields_clinical_medicine.jsonl
- full_output_with_all_fields_basic_medicine.jsonl
- full_output_with_all_fields_physician.jsonl
匹配后组合的训练数据集:
- 找到实习
- 用时一个月,打基础
- 学强化学习进阶部分
- 学习公式推导
- 实习工作
- Debug VERL 并修改框架
- 理解VERL 的核心代码,明白了不少RL增加稳定性与减小方差的trick ,从自己理解总结了两点RLHF的发展路径以及一直在优化的两个问题:
- 主要看这个代码文件
- 靠这些RL理解冲到了 两个基座,一个淘天sspoffer,美团感谢信
可以参考的复现项目
做简历的时候可以写这两个项目,更推荐第二个,因为更好讲故事
打基础
LLM 整体知识文档(包含八股)
R.Z 小红书博主 帖子
最好自己学习下LLM大体流程,这是基础
博客/UP主/手写博主(包含RL与LLM)
可以每个博主先看一眼,按需取用。每个博主都有特色,这是我筛选出来质量很好的博主
- 你可是处女座啊
- B站用户 45156039(主页)
- B站用户 288748846(主页)
- B站用户 349950942(主页)
- B站用户 12420432(主页)
- YouTube:7xTGNNLPyMI
- B站用户 18235884(主页)
手写LLM与Agent的教程,按需使用
- karpathy/build-nanogpt
- Datawhale:So Large LM
- Datawhale:hugging-llm
- Datawhale:easy-rl
- LLMs-from-scratch
进阶
系统学习强化学习
配合R.Z笔记食用更佳
学习RLHF 的 手写代码: