J.P.Liu

机器学习从业者

  
点击率模型负采样后校准方法
点击率模型训练时,由于性能或其他原因,对负样本经常会降采样,导致预测值与真实值偏差,而线上排序时很多情况下需要真实值,所以需要进行校准。比较简单的校准方法有三种,分别介绍一下。
点击率预估中的用户行为序列建模
特征工程是CTR建模中最重要的问题。DNN时代之前,主要是人工构造组合特征和FM类自动交叉。迁移DNN初期,主要是FNN、PNN、DeppFM、Wide&Deep这类模型,特点是特征交互基本沿用了浅层模型的方法,区别是后接了MLP。此后,DNN在CTR领域站稳脚跟后,才开始真正的面向DNN,思考怎样进行特征交互建模,比如吸收了Attention等NLP领域的技术,这一阶段主要思考通用的特征交互方法。近几年,又开始面向某类特征,设计专用的特征交互方法,值得一提的是一系列用户行为序列建模的方法在工业界取得了非常大的收益。本文对用户行为序列建模做个概要的思路整理。
点击率预估中的特征交互方法
我从事广告算法多年了,经历过点击率模型从XGBoost、大规模离散逻辑回归、FFM到后来DNN的演进。2017年从FFM迁移DNN时,主要考察的是FNN、PNN、DeppFM、Wide&Deep这类模型,特点是特征交互基本沿用了浅层模型的方法,区别是后接了MLP。此后,DNN在CTR领域站稳脚跟后,才开始真正的面向DNN,思考怎样进行特征交互建模,比如吸收了Attention等NLP领域的技术,这一阶段主要思考通用的特征交互方法。近几年,又开始面向某类特征,设计专用的特征交互方法,值得一提的是一系列用户行为序列建模的方法在工业界取得了非常大的收益。本文记录一下对前两个阶段的一些工作的理解,第三阶段以后单独开一篇。
同步模式模型训练中存在的一个简单但普遍的问题
点击率预估模型训练,在早期阶段由于模型结构比较简单,稀疏Embedding占比非常大而稠密参数较少,因此异步训练存在的参数更新冲突和延迟问题并不严重,异步训练是普遍采用的方式。随着Attention等复杂结构在稠密网络部分的应用,稠密参数的影响力变大,异步训练带来的参数更新问题越来越严重,制约着模型训练效果,另外随着GPU的应用,同步训练的性能问题也有缓解,所以同步训练渐渐成为主流。同步训练有两种方式,一种是基于Parameter Server的同步训练,一种是基于AllReduce方式的训练。以目前推荐系统领域依然重度使用的TensorFlow为例,第一种经常采用TensorFlow SyncReplicasOptimizer,第二种经常采用Horovod TensorFlow。但这两种方式都存在一个简单却多年无人去解决的问题,对于用户群体这么大的框架来说,有点匪夷所思。
DeepSpeed-Chat强化学习策略
ChatGPT出现后,已经有许多开源项目尝试复现其效果,包括LLaMa、DeepSpeed-Chat、ColossalChat、ChatGLM等。其中DeepSpeed-Chat是微软Deep Speed团队的开源项目,其完整的提供了Supervised Fine-tuning、Reward Model Training、RLHF PPO Traing三阶段的代码,逻辑简单,模块划分清晰,另外也由于Deep Speed在大模型训练中的使用非常普遍,所以笔者近期正在研究DeepSpeed-Chat的代码。本文以DeepSpeed-Chat的实现为例,详细介绍下RLHF——基于人类反馈的强化学习策略,并与经典Off-Policy Actor-Critic策略做对比。
DeepSpeed-Chat全流程训练实战
ChatGPT出现后,已经有许多开源项目尝试复现其效果,包括LLaMa、DeepSpeed-Chat、ColossalChat、ChatGLM等。其中DeepSpeed-Chat是微软Deep Speed团队的开源项目,其完整的提供了Supervised Fine-tuning、Reward Model Training、RLHF PPO Traing三阶段的代码,逻辑简单,模块划分清晰,另外也由于Deep Speed在大模型训练中的使用非常普遍,所以笔者近期正在研究DeepSpeed-Chat的代码。本文介绍下在13b模型上运行SFT、RW、RLHF全部三阶段的实战情况。
模型召回如何打压热门内容
搜广推召回建模中,正样本中热门item的占比往往非常大,为了降低整体训练loss,最终得到的用户向量和热门item的向量往往分数更高,这样就导致线上召回时top K也被热门item占领,和业务目标偏离。本文讨论热门item打压的几种办法。
ChatGPT量化分析(三) - 计算量分析
ChatGPT出现后,惊人的效果完全颠覆了业界人员包括笔者的认知,抛开其模型细节层面的因素,已公开的训练方法,需要巨量的数据和计算资源,门槛非常高。本文基于公开资料,希望以量化方式分多篇介绍ChatGPT的分析结论,本文为计算量分析篇。ChatGPT模型结构为Transformer,下面对计算细节拆解分析。
ChatGPT量化分析(二) - 存储占用分析
ChatGPT出现后,惊人的效果完全颠覆了业界人员包括笔者的认知,抛开其模型细节层面的因素,已公开的训练方法,需要巨量的数据和计算资源,门槛非常高。本文基于公开资料,希望以量化方式分多篇介绍ChatGPT的分析结论,本文为存储占用分析篇。ChatGPT模型结构为Transformer,Transformer模型运行时存储可以分成两部分,其一是模型参数,这部分规模是固定的,其二是中间激活,这部分和batch size、sequence length有线性关系,下面对两者分别分析。