视频笔记-七月在线学习-nlp小样本学习:如何利用20条数据完成文本分类?

什么是小样本学习

模型在学习了一定类别的大量数据后,对于新的类别,只需要少量的样本就能快速学习,这就是few shot learning 要解决的问题。

视频笔记-七月在线学习-nlp小样本学习:如何利用20条数据完成文本分类?_第1张图片
视频笔记-七月在线学习-nlp小样本学习:如何利用20条数据完成文本分类?_第2张图片
对比学习拉近同类样本的距离,拉远异类样本的距离。


GPT3 基于transformer的encoder的模型。1600亿的参数。bert-base 一亿参数。
无法部署GPT3,但是可以借鉴思想。

  • GPT3的零样本学习实际上做的是续写的任务,只不过这个续写的任务可以看作是翻译任务。先告诉你我要做什么事,再给你续写任务。
  • GPT3的单样本,不光告诉你我要做什么事情,还告诉你了一个例子,你再接着做续写任务。
  • GPT3的小样本,多了几个例子。
  • 可以看到GPT提供了一种prompt的方法,先预先提供一个模板,然后让模型去预测后面的内容,这就是典型的Autoregressive的思想。
  • T5效果没有GPT3好
    视频笔记-七月在线学习-nlp小样本学习:如何利用20条数据完成文本分类?_第3张图片
  • Autoregressive:单向的 从左往右的结构
  • AutoEncoding:用上下文预测中间 是双向的

基于prompt的小样本学习

视频笔记-七月在线学习-nlp小样本学习:如何利用20条数据完成文本分类?_第4张图片预训练的时候做的任务是MLM,那么我做预测任务的时候我仍然做MLM。
让P(sports | News:xxxxxx)概率值越大越好。
视频笔记-七月在线学习-nlp小样本学习:如何利用20条数据完成文本分类?_第5张图片
输入输出是这样的,完形填空。
视频笔记-七月在线学习-nlp小样本学习:如何利用20条数据完成文本分类?_第6张图片
prompt帮你节省很多人力成本

prompt实战演练

情感分类的例子 二分类 正类or负类
transformer这个库是预训练语言模型用的比较多的,比较成熟的库。
视频笔记-七月在线学习-nlp小样本学习:如何利用20条数据完成文本分类?_第7张图片

  • 加载roberta的参数
  • 初始化trainer

视频笔记-七月在线学习-nlp小样本学习:如何利用20条数据完成文本分类?_第8张图片

  • 构造模板
  • 需要mask的位置是2这个位置(因为有cls标志位,所以是2)
  • 正例下标
  • 负例下标
    -视频笔记-七月在线学习-nlp小样本学习:如何利用20条数据完成文本分类?_第9张图片
  • 读取训练数据
  • 读取测试数据
  • 对数据进行预处理pattern_data视频笔记-七月在线学习-nlp小样本学习:如何利用20条数据完成文本分类?_第10张图片
  • -100 就是如果这个值是-100 crossentropyloss有一个ignore_index不会计算,节省算力
  • 如果你的lable是-100 那它不会计算视频笔记-七月在线学习-nlp小样本学习:如何利用20条数据完成文本分类?_第11张图片视频笔记-七月在线学习-nlp小样本学习:如何利用20条数据完成文本分类?_第12张图片

在这里插入图片描述

  • 配置模型优化器
    视频笔记-七月在线学习-nlp小样本学习:如何利用20条数据完成文本分类?_第13张图片
  • output forword方法的返回值
  • output.logits 就是下面这个logits视频笔记-七月在线学习-nlp小样本学习:如何利用20条数据完成文本分类?_第14张图片
    -targets_ids是下标
    output的维度[batch_sieze, seq_len, vocab_size]
    “好”和“坏”在词典中的位置

你可能感兴趣的:(提示学习,自然语言处理,提示学习)