2025秋招NLP算法面试真题(十六)-UniLM:给Bert插上文本生成的翅膀

今天分享一个论文UniLM,核心点是掌握三种LM任务形式:单向LM,双向LM,序列到序列LM;

1. 生成任务

NLP任务大致可以分为NLU和NLG两种;Bert在NLU任务上效果很好,但是天生不适合处理生成任务。

原因在于Bert的预训练过程是使用的MLM,和生成任务的目标并不一致。

生成任务目标是每次蹦出来一个词,只能看到当前位置之前的词汇。

而Bert采用的是双向的语言模型,除了mask的单词,两个方向的词汇都可以被看到。

所以对Bert的一个改进思路就是让它在具有NLU能力的时候,同时兼备NLG能力。

2. 三种LM任务

UniLM做的就是这样一个事情。

具体的实现方式是设计了一系列的完形填空任务,这些完形填空任务的不同之处在于对上下文的定义。

  1. 从左到右的LM:使用mask单词的左侧单词来预测被遮掩的单词
  2. 从右到左的LM:和上面第一个相比就是方向的变化,使用mask单词的右侧单词来预测遮掩的单词
  3. 双向LM:就是当前mask的左右词汇都可以看到
  4. sequence-to-sequence LM:这个就是UniLM能够具有生成能力的关键。我们的输入是source句子和target句子,mask单词在target上,那么当前mask的上下文就是source句子的所有单词和ta

相关推荐

  1. 2024届SLAMer算法面试总结

    2024-07-11 20:40:02       31 阅读
  2. 25面试算法 (Go版本)

    2024-07-11 20:40:02       25 阅读
  3. 2023上岸必备软件测试面试

    2024-07-11 20:40:02       59 阅读
  4. 大模型/NLP/算法面试总结3——BERT和T5区别?

    2024-07-11 20:40:02       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 20:40:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 20:40:02       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 20:40:02       58 阅读
  4. Python语言-面向对象

    2024-07-11 20:40:02       69 阅读

热门阅读

  1. vue2 使用 Socket.io 实现 WebSocket

    2024-07-11 20:40:02       24 阅读
  2. flink 大数据处理资源分配

    2024-07-11 20:40:02       19 阅读
  3. LiteOS GPIO中断处理

    2024-07-11 20:40:02       20 阅读
  4. python如何与前端交互

    2024-07-11 20:40:02       16 阅读
  5. 模型需要从txt中长文本中精准提炼出来文字

    2024-07-11 20:40:02       22 阅读
  6. vue3 学习笔记04 -- axios的使用及封装

    2024-07-11 20:40:02       24 阅读
  7. 大模型融入云平台,信息化走向数智化

    2024-07-11 20:40:02       20 阅读
  8. 开源项目有哪些机遇与挑战?

    2024-07-11 20:40:02       22 阅读
  9. 精通 mysqldumpslow:深度分析 MySQL 慢查询日志

    2024-07-11 20:40:02       22 阅读
  10. 定个小目标之刷LeetCode热题(41)

    2024-07-11 20:40:02       19 阅读
  11. 详细介绍一下TypeScript

    2024-07-11 20:40:02       23 阅读