欢迎关注我的公众号:YueTan

本文尝试总结常见的NLP模型,尤其是transformer系列

作为最早激励我开始转码和机器学习的领域,算是做过半年多数据标注。
同时,毕业后第一家公司是一家德国企业,上进的同事都开始学习德语,因为定期德国出差的缘故,我最后也只会蹦几个单词。但对语言进行了一点思考,这两点都让我当时对自然语言处理感兴趣。
补足推荐和NLP短板之后,离开。
选定Torch和框架之后,从baseline开始补足和实验各种技巧,疯狂学习,在越来越多的实验中得到快速成长。没有卡就租,已经靠运气在比赛中获得了不少奖金,该花就花掉。学习一个新比赛,那就从kaggle同类型的前十个比赛学习。

阶段1目标

  • 首先学习了一下huggingface的公开课/李宏毅,可以了解一下整体。书:OReilly.Natural.Language.Processing.with.Transformers.2022.2
  • 找到几个kaggle比赛,了解套路和trick,常见的优化自己都能正确的实现
  • 简历:熟悉NLP领域前沿技术与各项任务,文本分类、NER、关系抽取、阅读理解、文本匹配,知识图谱
  • 开始前的疑问: 如果这些trick是共识、大家都会,那么比赛的优势是来自哪儿呢

阶段2

  • 自己参加比赛,优化到Top10. 开始积累一套顺手的pipeline

summary

transformer

首先借助对transformer和bert对各个部分进行理解和练习

位置编码
  • postional embedding看起来比encoding效果更好些,毕竟是可学习的
多头注意力
  • 来自时序论文的讨论:置换不变性(permutation-invariant)和“反秩序”(anti-order)

bert

deberta

  • 多层之后,时间信息不可避免地丢失。每个transformer block都会重新加入position 的information

roberta

albert

electra

ernie

xlnet

nezha

前处理汇总

ast

import ast
train['annotation'] = train['annotation'].apply(ast.literal_eval)
Logo

分享最新、最前沿的AI大模型技术,吸纳国内前几批AI大模型开发者

更多推荐