当前位置: 首页 > news >正文

宣讲家网站两学一做英文建站网站

宣讲家网站两学一做,英文建站网站,wordpress小看板娘,做胃镜多少钱天津津门网站I目录三模型架构BERTGPTELMO三者差异点三模型架构 BERT 优点 在11个NLP任务上取得SOAT成绩.利用了Transformer的并行化能力以及长语句捕捉语义依赖和结构依赖.BERT实现了双向Transformer并为后续的微调任务留出足够的空间. 缺点 BERT模型太大, 太慢.BERT模型中的中文模型是以…

目录

    • 三模型架构
    • BERT
    • GPT
    • ELMO
    • 三者差异点

三模型架构

![在这里插入图.csdnimg.cn/c03e5bd0d73544bb99ee615a8ca08f2c.png)

BERT

优点

  • 在11个NLP任务上取得SOAT成绩.
  • 利用了Transformer的并行化能力以及长语句捕捉语义依赖和结构依赖.
  • BERT实现了双向Transformer并为后续的微调任务留出足够的空间.

缺点

  • BERT模型太大, 太慢.
  • BERT模型中的中文模型是以字为基本token单位的, 无法利用词向量, 无法识别生僻词.
  • BERT模型中的MLM任务, [MASK]标记在训练阶段出现, 预测阶段不出现, 这种偏差会对模型有一定影响.
  • BERT模型的MLM任务, 每个batch只有15%的token参与了训练, 造成大量文本数据的"无用", 收敛速度慢, 需要的算力和算时都大大提高.

文本截断处理方式
第一种方式就是只保留前面510个token.
第二种方式就是只保留后面510个token.
第三种方式就是前后分别保留一部分token, 总数是510.

BERT预训练模型所接收的最大sequence长度是512

bert + 迁移学习 简单练习代码
步骤:

微调脚本

# 使用python运行微调脚本
# --model_name_or_path: 选择具体的模型或者变体
# --task_name: 它将代表对应的任务类型, 如MRPC代表句子对二分类任务
# --do_train: 使用微调脚本进行训练
# --do_eval: 使用微调脚本进行验证
# --max_seq_length: 输入句子的最大长度, 超过则截断, 不足则补齐
# --learning_rate: 学习率
# --num_train_epochs: 训练轮数
# --output_dir $SAVE_DIR: 训练后的模型保存路径
# --overwrite_output_dir: 再次训练时将清空之前的保存路径内容重新写入# 该命令已在虚拟机执行,再次执行会覆盖缓存的模型python run_glue.py \--model_name_or_path bert-base-chinese \--task_name sst2 \--do_train \--do_eval \--max_seq_length 128 \--learning_rate 2e-5 \--num_train_epochs 1.0 \--output_dir bert-base-chinese-sst2-finetuning
import torch
# 0 找到自己预训练模型的路径
mymodelname = '/Users/lizhipeng/PycharmProjects/newProject/fasttext/transformers/examples/pytorch/text-classification/bert-base-chinese-sst2-finetuning'
print(mymodelname)# 1 本地加载预训练模型的tokenizer
tokenizer = AutoTokenizer.from_pretrained(mymodelname)# 2 本地加载 预训练模型 带分类模型头
model = AutoModelForSequenceClassification.from_pretrained(mymodelname)text = "早餐不好,服务不到位,晚餐无西餐,早餐晚餐相同,房间条件不好"
index = tokenizer.encode(text)
tokens_tensor = torch.tensor([index])# 使用评估模式
with torch.no_grad():# 使用模型预测获得结果result = model(tokens_tensor)print(result[0])predicted_label = torch.argmax(result[0]).item()
print('预测标签为>', predicted_label)text1 = "房间应该超出30平米,是HK同级酒店中少有的大;重装之后,设备也不错."
index = tokenizer.encode(text1)
tokens_tensor = torch.tensor([index])# 使用评估模式
with torch.no_grad():# 使用模型预测获得结果result = model(tokens_tensor)print(result[0])predicted_label = torch.argmax(result[0]).item()
print('预测标签为>', predicted_label)

输出:
输入文本为: 早餐不好,服务不到位,晚餐无西餐,早餐晚餐相同,房间条件不好
预测标签为: 0
输入文本为: 房间应该超出30平米,是HK同级酒店中少有的大;重装之后,设备也不错.
预测标签为: 1

GPT

优点

GPT使用了Transformer提取特征, 使得模型能力大幅提升.

缺点

GPT只使用了单向Decoder, 无法融合未来的信息.

ELMO

优点

-ELMo根据上下文动态调整word embedding, 可以解决多义词的问题.

缺点

  • ELMo使用LSTM提取特征的能力弱于Transformer
  • ELMo使用向量拼接的方式融合上下文特征的能力弱于Transformer

三者差异点

关于特征提取器

  • ELMo采用两部分双层双向LSTM进行特征提取, 然后再进行特征拼接来融合语义信息.
  • GPT和BERT采用Transformer进行特征提取.
  • 很多NLP任务表明Transformer的特征提取能力强于LSTM, 对于ELMo而言, 采用1层静态token embedding + 2层LSTM, 提取特征的能力有限.

单/双向语言模型

  • 三者之中, 只有GPT采用单向语言模型, 而ELMo和BERT都采用双向语言模型.
  • ELMo虽然被认为采用了双向语言模型, 但实际上是左右两个单向语言模型分别提取特征, 然后进行特征拼接, 这种融合特征的能力比BERT一体化的融合特征方式弱.
  • 三者之中, 只有ELMo没有采用Transformer. GPT和BERT都源于Transformer架构, GPT的单向语言模型采用了经过修改后的Decoder模块, Decoder采用了look-ahead mask, 只能看到context before上文信息, 未来的信息都被mask掉了. 而BERT的双向语言模型采用了Encoder模块, Encoder只采用了padding mask, 可以同时看到context before上文信息, 以及context after下文信息.

心得:模型已浅知,内化成自己掌握的知识还需多学多看

http://www.yayakq.cn/news/323621/

相关文章:

  • 济南学习做网站北京网站建设新鸿
  • 号码网站建设网站关键词找不到
  • 百度网站架构建设电商网站需要什么硬件
  • 深圳市城乡住房和建设局网站首页建站房的公司
  • 网站软件定制开发制作推广网站名是什么
  • 网站的弹窗广告怎么做关于网站建设公司大全
  • 扬州市网站建设网站网址大全
  • 汉南公司网站建设wordpress批量导入tag
  • 建湖建网站的公司优秀网站建设评选活动海报
  • 网络公司+网站建设+小程序phpcms 网站栏目
  • 各大电商购物网站转化率报表中搜seo
  • 部门网站建设的工作汇报景区门户网站建设的必要性
  • 如何跑网站建设业务写一篇软文1000字
  • iis网站管理助手ui设计是什么职业
  • 万网网站模板购买宝塔wordpress内链打开404
  • wordpress 设置常规站点地址吉祥物在线设计网站
  • 徐州免费网站建站模板js 抽奖网站
  • 网站自助授权系统登不上学校的网站该怎么做
  • 做网站一个月20g流量够吗网站建设产品话术
  • 怎么创建个网站小程序制作开发
  • 做贷款的网站有哪些推荐一个免费的网站
  • 河北省建设厅国内seo排名
  • 百度网站地址提交wordpress 网站生成app
  • 做网站需要去哪里备案手机网站开发方式
  • 网站注册账号有风险吗wordpress 注册 登陆不了
  • 如何搭建手机网站快手营销软件
  • 寻找网站开发做网站frontpage 2003
  • 如何做好集团网站建设深圳的网站建设公司pestl分析
  • 邢台哪个公司做网站好一级a做爰片免费网站迅雷下载
  • 网站培训机构网站开发培训学院