心法利器

本栏目主要和大家一起讨论近期自己学习的心得和体会,与大家一起成长。具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有。

2022年新一版的文章合集已经发布,累计已经60w字了,获取方式看这里:CS的陋室60w字原创算法经验分享-2022版。

往期回顾

  • 心法利器[66] | 算法性能评估指南

  • 心法利器[67] | 算法性能优化指南

  • 心法利器[68] | 数据指导技术优化与提升

  • 心法利器[69] | 聊聊数据敏感性

  • 心法利器[70] | 短文本理解的难点和解决方案

最近又和朋友们聊起了有关NLP的学习问题,随着NLP的逐步发展和成熟,学习思路好像也和之前的有所不同了,因此今天我就来聊聊,现阶段我理解的NLP,该怎么入门和进阶,并且持续学习。

就单纯聊聊,可能会有不严谨的地方,大家可以在评论区补充吧。

新手入门

虽然环境依旧困难,但是仍有很多萌新想要入行NLP算法,新鲜血液的输入对这个跨领域始终是好事,但是和我那时候入门相比,现在的NLP知识体系已经比原来扩大很多,内容也比原来丰富了很多,还像以前那样的学习肯定是不合适的,所以想给大家整理一下现阶段新手入门最好掌握的东西,新手可以按需整理自己的学习计划。

先修知识

这应该是一些和算法无关但是仍旧需要掌握的东西,虽说已经过了很久,但是最基础的东西仍旧不变,逃课的短期可能没什么事,但是长期来说,始终会受到影响,如果是在校学生,空余时间比较多还是希望能花点时间学起来,已经工作的,还是希望日常能抽空补回来吧。不要以为逃了能省时间,最后始终要花时间还回来的。

这块因为内容仍旧比较稳定,所以原来写的东西好像还是能用的,直接放这里了,不展开聊了:

  • ML&DEV[1] | 机器学习数学基础入门线路

  • ML&DEV[2] | 机器学习开发技能入门线路

当然,这里有些补充的内容,我直接列举在这:

  • pytorch深度学习框架,要求能完成模型搭建和存取、训练预测评估pipeline等能力。

  • transformers(huggingface)整套预训练库的使用。

其他的,好像和原来的基本都一样了,这块的技术好像已经基本稳定了,没有很大的变化。

NLP基础

相比之前,现在NLP入门需要的基础知识,厚度比原来高了很多,之所以说厚度,是因为其实不是量的问题,而是取决于后续自己的工作来进行选择了。如果是只是考虑简单应用,掉个包,其实已经有很简单直接的工具,或者是开源的代码能直接搬,不论效果,实现一些基础算法的难度相比以前门槛确实低了很多,而如果是要考虑深度,考虑对业务进行一些进一步的优化,确实是需要比较深的基础功底。这里聊聊选择的学习内容以及对应的背景。

首先是科研向,大部分开始学NLP的人,都是从学校开始,既然是科研,学习的内容,当然是要从比较前沿的基础部分开始,首先需要考虑的就是把预训练模型整套知识体系学明白,包括模型结构、主要的预训练任务以及常用的预训练模型,毕竟现在的科研现状,论文里不出现BERT,基本上是发不出来的,所以这个基础必须学会,而且因为huggingface的存在,预训练模型的实现难度已经大大降低。

其次,是找工作方向的。放在2022年秋招的时间线,现在无论是社招还是校招其实否非常卷了,而正因为后续工作过程要用到很多基础的东西,所以即使是招聘,也要求基础的东西不能出错。一方面,涉及科研的部分肯定是要熟悉的,另一点方面,自己要有一些能拿得出手的任务,简单到文本分类,复杂到机器翻译、文本生成之类的东西,自己多少都要有能拿得出手的,所谓能拿得出手,是指自己能对这个领域的常用方案和前沿方案都有一定了解,不仅是八股级别的知识点,还有各个方案之前的理解和区别,优缺点,要能讲的出来,挺重要的。

再者,就是工作后的新人,有关这块其实有专门写过文章聊过的:心法利器[30] | 算法新人如何在工作中成长。不过还是想额外聊点,我分点说吧:

  • 起初的工作,不要因为简单而感到苦恼,简单的工作是为了给你更多心思理解现有的工作环境和业务,人物本身简单,但是涉及一些背景,包括技术栈之类的,是需要时间适应的,一下子给复杂的工作,扎心地说真不一定能接受得了,你不仅要花时间适应,还要花时间来攻坚的话,项目可就把控不住了。

  • 很多人可能会接触到工程成分很高的工作,很正常,后续你会发现,算法工作确实是需要工程的,不是说有工程同事,你就完全不需要管工程了。

  • 结合现有工作,去深入理解和你的工作相关的任务的前沿和基础方案,依次为契机提高深度。

学习资料的问题

学习思路有了,那怎么学习呢。说实话,刀耕火种时代,这些东西压根没什么资料,最多就是论文,运气好的就是有源码。但是现阶段,大部分基础方案,多少都是有人准备的,所以,只要大家明确了要学什么,其实就可以学起来了。我分两个思路来给大家介绍下吧。

如果是希望能系统学习的,我最推荐的材料还是CS224N,是斯坦福的NLP课程,网上各种资料其实都有,至少能让你有个比较完整的全貌的理解吧,当然这里可能会有一些比较前沿的东西,加上是英文,难度可能就会比较大。中文的话,推荐两本书,一本是《自然语言处理从入门到实战》中国铁道出版社的,另一本是车万翔老师的《自然语言处理基于预训练模型的方法》,这两本书是我目前看着内容还不错的书,大家跟着看跟着学就好了。

如果是想快速入门的,有一个目标,例如你想做什么任务,就直接去看就好了,例如想做机器翻译,直接看机器翻译方面现在大家常用的方案,提的比较多的,直接取搜并且尝试重现就好了,注意找好大家比较常用来做例子的数据集,然后动手写就好了,这个效率会很高,属于奔着任务去做的,当然也有缺点,就是细节和基础不扎实,后续有空了就去补吧。多动手,多搜,这些基础,绝对不缺资料。

除了两个思路,另外还推荐一个自己看着还不错的一个开源项目,邱锡鹏老师开源的NLP项目:https://github.com/FudanNLP/nlp-beginner,大家按着这里的基础来做,自己动手做一遍,就能大概理解这些任务主要做的事和一些常见的方案,同时也能洞察一些任务和方案内存在的细节问题,当然这里因为时间原因,可能预训练这块的东西要求不高,自己可以酌情给自己加课。

最后补点必备知识点吧,只针对NLP,看着其实不少,感觉这些能全掌握,其实已经很不容易。

  • word-embedding,尤其是word2vector,训练与使用。

  • 常见的NLP任务,尤其是文本分类、NER和句子相似度(交互式和非交互式)的baseline方案,即非预训练模型的方案,要了解并且能实现。

  • Transformer和预训练模型bert,基础结构、常见预训练任务和finetuning的baseline方案,最好是能自己实现,训一个预训练模型可行性有些低,但是finetuning应该还是可以的。

技术进阶

技术的进阶其实之前有写过文章了,而且感觉隔得不是很久:心法利器[43] | 算法工程师的晋升思考,而不少人后台说希望我聊聊有关NLP这块的进阶,我就和大家多说点吧。

技术深度的修炼

首先,自己要有一两个,甚至是一个体系下知识点的完善,也就是“能拿出手的能力”,为了这个能力,你需要多了解目前的常用方案,而且非常自信地随时能用起来,可以说能如数家珍吧。当然,这点对科研同学要求更高,毕竟要是研究这个方向结果这方向还不熟,怎么做科研创新,而对于职场的人来说,也是需要花心思重点打造的,这优先级比广度优先级高那么一点点。

说到方法,我觉得就是这么几个途径:

  • 多看论文,两个方向,一个是对应领域的经典论文,包括baseline,业界常用的方案,另一个是前沿方案,就是最近的研究动向,甚至是SOTA,能有了解,甚至还能评判出各自的优缺点。

  • 多看数据,洞察各种方法在数据体现上,有什么优缺点和特点,甚至发现一些现有的领域关键问题,最好还能有些自己的解决方案。

  • 多看源码,最近在翻simcse,感觉收获还不小,另外用于句子表征的通用任务工具SentEval也有拜读,感觉也是受益匪浅,后续有机会和大家聊聊。

  • 多动手尝试。自己可以动手试试看前沿或者常见的方法,有时候自己写会发现很多坑,多解决了,其实对问题的理解也有好处。

看论文这些事

看论文可以说是科研人和算法人的必修课了,这个我在很久的一篇文章里有聊过,是刚毕业趁热写的:我从研究生生活中得到的经验。这里再和大家挑重点说下。

  • 首先要明确读论文的目标,是专项调研还是日常泛读,是为了研究算法还是为了了解研究现状,甚至是不是为了看论文结构和写作手法(最终写论文的时候,这个也是可以从别的论文里参考的)。

  • 明确后看自己关注的部分就好了。例如了解研究现状,看intro或者review就好了。

  • 看完后及时做笔记,建议不要在论文上做,单独摘录总结出来。

至于论文的来源嘛,主要是这几个:

  • arxiv,“AI领域”很常见的读论文途径了。

  • 要搜索,谷歌学术和百度学术。

  • 有时候,CSDN或者知乎有论文解读和翻译,读论文可以参考的。

  • 各大顶会,NLP的也有几个自己专门的顶会,建议自己多百度查查有哪些。另外知乎也有写博主会快速进行分类的,大家可以关注下。

  • 媒体吹的多的,还是要关注下的,但是只跟媒体肯定不合理。

这句话有点扎心,但还是要说,有些时候不是不知道途径,只是懒得学罢了,但是如果还想要进步,还是得看得学,没那么多理由。

有关错过的基础知识

这个其实是职场人很容易犯的错,尤其是老人,老人一般已经深挖特定场景业务了,但问题在于,前沿和业务并不是齐头并进的,业务的速度总会比技术发展慢,业务深耕多了,技术上可能会落后,很多新的方法可能就没有关注了,毕竟很多时候,我们能通过很多trick把效果做的很高,但新的技术可能直接碾压老技术了,此时确实要刷新自己的技术栈,这也要求我们仍需要持续关注新的技术,例如预训练模型的来袭让预训练和非预训练有了技术的“代差”,后续又有了对预训练模型进一步的调教和优化。

当然,新技术我们是需要了解,但不是说非得用,有个说法叫“掉书袋”,就是指喜欢卖弄才学的人,我们作为技术人,更讲求实用性,一方面不能看啥新就用啥,要因地制宜实事求是,另一方面也不能忘本,只会新技术,老技术直接抛弃也不可取。学习是为了让我们在解决问题的时候多一个可以选择的方案,积累的多了,自然能力就上去了。

心法利器[71] | NLP的学习思考(新手和进阶)相关推荐

  1. 心法利器[54] | NLP任务上线前评测

    心法利器 本栏目主要和大家一起讨论近期自己学习的心得和体会,与大家一起成长.具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有. 近期,我再次总结了我的历史文章,累积起来有50w字,百余篇文章了,有兴 ...

  2. 心法利器[53] | 数据增强的现实应用思考

    心法利器 本栏目主要和大家一起讨论近期自己学习的心得和体会,与大家一起成长.具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有. 近期,我再次总结了我的历史文章,累积起来有50w字,百余篇文章了,有兴 ...

  3. 心法利器[55] | 算法工程师读论文思路

    心法利器 本栏目主要和大家一起讨论近期自己学习的心得和体会,与大家一起成长.具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有. 近期,我再次总结了我的历史文章,累积起来有50w字,百余篇文章了,有兴 ...

  4. 心法利器[52] | 口语化句子解析问题

    心法利器 本栏目主要和大家一起讨论近期自己学习的心得和体会,与大家一起成长.具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有. 近期,我再次总结了我的历史文章,累积起来有50w字,百余篇文章了,有兴 ...

  5. 心法利器[51] | 长短句语义相似问题探索

    心法利器 本栏目主要和大家一起讨论近期自己学习的心得和体会,与大家一起成长.具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有. 近期,我再次总结了我的历史文章,累积起来有50w字,百余篇文章了,有兴 ...

  6. 心法利器[88] | 有关大模型幻觉问题的思考

    心法利器 本栏目主要和大家一起讨论近期自己学习的心得和体会,与大家一起成长.具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有. 2022年新一版的文章合集已经发布,累计已经60w字了,获取方式看这里 ...

  7. 老刘说NLP:焦虑被大肆贩卖下的自然语言处理学习思考

    一.话题的由来 近期,有不少朋友来信,来询问如何看待自然语言处理这个方向,表示对当前的状态很不满,希望能够尽快地找到一个合适的方向.快速的学习方式,提升自己的自然语言处理能力,从而找到一个算法岗位的面 ...

  8. 心法利器[27] | 人工智能技术创新大赛决赛随想

    心法利器 本栏目主要和大家一起讨论近期自己学习的心得和体会,与大家一起成长.具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有. 往期回顾 心法利器[22] | 算法在岗3年小结:工作思路篇 心法利器 ...

  9. 心法利器[82] | chatgpt下query理解是否还有意义

    心法利器 本栏目主要和大家一起讨论近期自己学习的心得和体会,与大家一起成长.具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有. 2022年新一版的文章合集已经发布,累计已经60w字了,获取方式看这里 ...

最新文章

  1. python使用界面-如何使用python图形化界面wxPython
  2. SAP数据表(一)商品表
  3. 搜索2.0:利用用户点击记录改善搜索结果
  4. 高级特性(6)- 高级Swing
  5. LOJ 3156: 「NOI2019」回家路线
  6. Cloud Native Infrastructures Meetup 北京 | 活动安排
  7. css表示屏幕宽度和高度
  8. pip添加国内镜像源
  9. python修饰符号的使用_Python 函数修饰符(装饰器)的使用
  10. js调整数组某些元素到指定位置顺序_如何在JS数组特定索引处指定位置插入元素?...
  11. debian网络配置文件的写法
  12. 查看Anaconda内置的Python版本的方法
  13. newifi3 高恪魔改_新路由3高恪魔改固件
  14. unity算法面试_Unity面试准备
  15. 6163. 给定条件下构造矩阵——每日一难(phase2_day1)
  16. 取石子游戏,威佐夫博弈的推理
  17. QC质量管理七大手法
  18. PulseAudio安装流程
  19. CK-GW06-E01与恩基士PLC配置指南
  20. NVIDIA Jetson TX2:TX2平台介绍

热门文章

  1. Win7中设置共享文件夹(通过账户密码访问)
  2. 2022年G1工业锅炉司炉特种作业证考试题库及在线模拟考试
  3. 记宝塔使用webhook自动化同步gitee代码
  4. 最长上升子序列-python
  5. 设备接入交换机后无法ping通问题处理
  6. 三种监控 Kubernetes 集群证书过期方案
  7. 909万本科应届生被父母催找工作,95后:“别催了,已经在卷了”
  8. OSChina 周日乱弹 —— 什么时候可以在自己电脑上装鸿蒙
  9. 实分析笔记(1):康托尔基数理论
  10. 高可用性系统在大众点评的实践与经验