2023nlp算法岗工作总结与跳槽历程记录


毕业以来做nlp算法近两年时间,终于在近期选择换个环境发光发热,就此总结这段时间的工作和经历,就当作职业生涯的里程碑了。

工作总结

笔者毕业之时,正是bert如日中天的时代,传统的机器学习方法在nlp领域几乎被bert+finetune的方式完爆,秉持着打不过就加入的态度,从入职起就从事着预训练模型finetune适配下游任务的工作,其中不乏新技术的调研应用,总体来看主要在做以下这些事:

1、知识发现

其实说到底是无监督数据的标注辅助,一批文本经过清洗,通过预训练模型向量化,对向量做聚类,完成后处理逻辑,最终还是需要人工判断结果。由于是新入职的第一个完整任务,重点放在熟悉环境与配置发布上,技术层面优化不多,甚至为了赶ddl直接拿当时比较新的roformer模型不做训练直接向量化,直接调用sklearn的birch聚类实现,只是在流程上用轮廓系数模拟了神经网络的反向传播机制对聚类半径做了自适应的工作,但sklearn适配gpu的问题没有解决,只能在cpu上跑规模不太大的数据。

2、文本匹配

这块可以说是主要工作了,也是在这个过程中去啃了bert的开源代码,对这段时间求职还是帮助蛮大的。主要实现策略仍然是向量化后的相似度计算,所以整个任务也就自然分为了两个阶段。向量化偏算法调优,相似度计算偏工程提速。首先说向量化,鉴于当时仍然是各类bert呼风唤雨的时代,所以仍然沿用了finetune的方式,加载预训练的模型后用业务方提供的数据做finetune(在此吐槽一些业务方提供的数据,真是一言难尽)这里面的小动作会比较多,比如送入模型的batch怎么构建(借鉴simCSE)模型样本怎么处理(pointwise、pairwise、listwise等等),模型结构怎么调整(固化部分层只训练特定层,config参数等)结果选取(项目中通常取最后一层的输出)等等,至于后期接入prompt的方式就不放在这了,整体来讲向量化算是项目中最能体现算法工程师价值的地方,能够去倒腾的点还是很多的;相似度计算,主要考虑到知识库体量的问题,使用的是一个典型的双塔模型,如果仅考虑排序,即先对知识库做向量化,文本输入后也做向量化,再计算文本向量和知识库向量的cosine值,按该值排序即可。如果知识库体量庞大的话就需要先做一步召回,方法多种多样,效果因数据而异(此处推荐一个索引工具annoy,用起来比较方便,但保存的向量文件需要占用一些存储空间,发布上线时需要考虑到这个情况)

3、对话系统

在离职前做的最后一块工作,这玩意怎么说呢,主要去解决多轮对话的一些问题,保证上下文连贯,涉及到比较多的技术点,包括但不限于意图识别、情感识别、实体识别、属性识别、关系识别等等,在关联后台知识库时还会涉及到图谱操作甚至nl2sql的内容,以及最终的返回文本生成,笔者主要负责policy模块,然而可笑的是就在第一版实验结果出来不久,chatGPT就冒出来了,瞬间感觉人家都平步青云了我们还在这玩过家家,现如今GPT4也已经发布,一如既往秉承着打不过就加入的态度,咱就是说也开始朝着这方面去琢磨了。

跳槽历程

今年春天的行情就像温度一样几乎看不到回暖的苗头,自打年前开始看机会,作准备,来回拉扯,也算是在月底即将入职新公司(没有断社保,在此感谢新公司补缴社保)
在年前面试的机会比较少,福报厂有一次(想让我去直管外包我拒绝了)另外在一家小公司面试通过了,但考虑到职业生涯最后还是放弃了这次机会,杭州的宇宙厂不知道为什么石沉大海。年后机会开始涌现,前前后后面了福报厂多个部门和业务线,最多的已经通过了终面但没有发offer(大概是hc满了),猪厂呢,刚和暴雪分家,机会比较少,菊厂很多(这里不得不吐槽一下这个万恶的od,从企业的角度能理解,但从个人的角度,我******,每天联系我的十有八九都是od)然后也有一些初创团队,依托的资源不错但我个人还是倾向于先去到比较完善的环境发展。薪资方面,两极分化比较严重吧,在chatGPT的冲击下有些会压得很低有些又会抬得很高,但还是能稳定在1.3n左右,对我来说环境大于薪资,见仁见智吧。
经验嘛,有一点但不多,只能说给同样做nlp不准备转行的同学做一个参考,首先在投递时要去评估工作内容与自己能力的相关程度,例如笔者从事过召回排序的项目,在一些搜索推荐的场景其实也适用;其次实事求是别吹牛,能够面试你的都是业内人士,情况都大致清楚;最后就是要尽量推进进度,现在更偏招聘方市场,不主动就会被遗忘。

接下来可能是大家比较关心的面试内容了,大致是以下这些:

transformers结构、bert结构
transformers优缺点、bert优缺点
XX模型相较bert-base有什么改进(XX来源于做过的项目用到的模型,例如笔者用到的roberta)
bert的attention block是怎么实现的
transformers中encoder和decoder的block有什么不同,mask的机制
bert的loss介绍一下(MLM和NSP)
layerNorm和batchNorm的区别,nlp领域为什么用layerNorm
self-attention的计算方法
multi-head的计算复杂度
word2vec中CBOW和skip-gram的区别
instruct GPT训练的方式(强化学习)
最近看过哪些新论文或者博客,关于你的任务曾经做过哪些调研
概率论相关知识和算法相关知识

总结

当前环境下跳槽需要勇气,但求职的过程也是一个承上启下的过程,准备好行囊再出发很重要。大家还有什么想沟通了解的可以留言,随缘回复哈哈哈(* ̄︶ ̄)如今已经开始每天四小时通勤去上班了,祝大家都能顺利吧!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值