IGLM复现笔记

疑问:

0.为什么gpt模型还要加掩码,这个掩码是什么鬼?

初步理解:掩码掩盖掉已知序列的一部分后,将序列作为输入的前部分继续生成后部分,只是前面有一部分被掩盖掉了

最后理解:初步理解有问题,生成式模型其实是生成的是掩码部分的序列

1.大数据量应该存放在哪里

相关文章大模型存储实践:性能、成本与多云 - JuiceFS 博客

思路:HDFS分布式系统,nosql数据库

我们采用 HDFS、JuiceFS 和云盘作为基础的物理存储解决方案,支撑整个机器学习平台的存储需求。

这个论文还是直接用csv文件存的那就不管

2.参数top_p是什么,和tempture对代码有什么影响答:似乎与预训练无关

3.研究一下配置文件,怎么用

4.代码跑起来了得检查一下tokenizer.cls_token,tokenizer.sep_token,tokenizer.unk_token_id这几个到底是什么。答:预训练没用到

5.为什么算损失的时候shift_logits = logits[..., eval_start:-1, :].contiguous()
shift_labels = token_seq[..., eval_start + 1:].contiguous().long()分数和label要这么取得,这样会不会对不上?

6.训练的轮数设置多少(看论文)随便设了三轮

7.数据集里面一行给那么多是什么鬼意思??也没有看到解释。不管了好像也不影响

8.这个模型输入要固定长度么。答:需要,只要是batch_size批量处理就需要设置,

长度设置为多少? 答:设置成所有序列填充到最长

9.可能会报错:chain和species可能得转成[]这种,已转化

流程:

数据预处理思路(怎么改成按照批次处理):先划分批次,然后再按批次先给每个序列加上掩码后,转化成id,并统一长度,最后输入到模型

输入

输出计算损失(困惑度)

反向传播

关键点

1.掩码长度

随机生成10到20连续的掩码

2.序列前的标签(放在序列最前面,有两种)

chain_token:序列类型,重链/轻链

species_token:序列的种类

论文

Introduction

Problem formulation

模型的输入:Cc+Cs+含掩码的一段序列+[sep]+掩码部分+[ans]。

把掩码部分移到sep后面,让模型去生成相当于就是gpt模型了,计算损失的时候就算最后预测的mask部分

Results

在测试集上测试,发现掩码加在框架区域的时候困惑度低,掩码加在cdr上的时候困惑度较高

代码

GPT2LMHeadModel带有语言建模头的GPT-2模型

完整抗体序列的生成:generate函数

重新设计抗体序列的跨度:infill函数

有什么区别:

  • generate函数:含有prompt(即开始的几个序列,让模型还原完整的序列)
  • infill函数:填充任务?这个模型到底在干什么

答:根据论文可知使用的其实是infill函数进行训练,是填充任务和gpt的一种结合变形

参数:num_to_generate是表示的序列的长度还是要生成序列的数量?答: 表示生成序列的数量

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值