rookiebird
rookiebird
In model.py num 163-164 extra_zeros = tf.zeros((self._hps.batch_size, self._max_art_oovs)) vocab_dists_extended = [tf.concat(axis=1, values=[dist, extra_zeros]) for dist in vocab_dists] # list length max_dec_steps of shape (batch_size, extended_vsize) It padding the original vocab_dists...
I find that in the encoding step ,the input of oov is represented as unk_word. According to the code , if an oov is copied by model, that's to say...
@Riroaki 我也看了代码,好像是这个意思,但是他这个block 和论文上说的有出入: For instance,for RTE task, the token “?” within prompt template “[PRE][prompt tokens][HYP]?[prompt tokens][MASK]” is specially added as an anchor token and affects the performance a lot. 这代码写的,跟论文上的,不一样。。。。不仅prompt...
> 请问下你跑的时候emb size设置的是768吗,其他代码有改动吗?我这边跑的rte,指标很低只有三四十不知为何 确实比较神奇,我试着用cb这个script 跑了,发现报错,prompt embedding 默认值是128, 因此替换bert embedding对不上,但是cb 这个script 它又不指定embedding 这个参数值?
讲道理load_in_8bit=True的话,v100跑个程序应该会报错啊,我是一直报错的,后面改成了load_in_8bit=False 才正常,然后用了.half()来记载模型训练,否则32Gv100会报oom
我没有用8个v100, 我是两个啊, 一个v100 是32G的, 是你这样改的,然后micro_batch_size 是4, 好像我记得默认也是4, batch_size 我没改 > > 讲道理load_in_8bit=True的话,v100跑个程序应该会报错啊,我是一直报错的,后面改成了load_in_8bit=False 才正常,然后用了.half()来记载模型训练,否则32Gv100会报oom > > 请问是将finetune.py的这部分这样修改吗?
> > 我没有用8个v100, 我是两个啊, 一个v100 是32G的, 是你这样改的,然后micro_batch_size 是4, 好像我记得默认也是4, batch_size 我没改 > > > > 讲道理load_in_8bit=True的话,v100跑个程序应该会报错啊,我是一直报错的,后面改成了load_in_8bit=False 才正常,然后用了.half()来记载模型训练,否则32Gv100会报oom > > > > > > > > > 请问是将finetune.py的这部分这样修改吗? > > 好的,我试试,感谢。我想问问你之前load_in_8bit=True的时候,v100报错是什么呀?我也有bug信息,但是能执行fine-tune,就是loss不对;可是我换成A100,好像bug信息也没变,但是按照硬件信息,A100是支持8int的呀...
@Porraio @yxzero 感觉porria大佬的是对的,论文里面也确实mask token 的position1 id 和 bos token 的position 1 id 是一样的。最近在学习 chatglm tuning, 感觉对label, position id 和 attention mask的构造有点晕
之前我在issuse #54 的时候也提过这个问题,刚才又看了下tokenzier_config, 我觉得确实可能是tokenizer_config的问题, 我是下载的 decapoda-research/llama-7b-hf 这个llama 模型,他的tokenizer_config 默认eos_token 和 bos_token 都是空字符,这会导致eos_token_id 和 bos_token_id 都为零。我下huggingface 上默认的tokenizer_config 是这样的 `{"bos_token": "", "eos_token": "", "model_max_length": 1000000000000000019884624838656, "tokenizer_class": "LLaMATokenizer", "unk_token": ""} ` 下面是我tokenizer的测试
@Facico 先感谢大佬每次都很及时细心的回复。感觉你的输出也有点奇怪啊,你的tokenizer.bos_token是空字符吧, 所以输出的id 是0, 我怀疑你的tokenizer.eos_token 也是空字符, 但是为啥你的 tokenizer.eos_token_id和tokenizer.bos_token_id却是正确的对上了。。。我理解的顺序是, tokenizer_config.json用到的特殊字符会用来初始化LlamaTokenizer中的特殊字符,然后对应的eos_token_id, bos_token_id 应该是调用 self.convert_tokens_to_ids(special_token) 得到的。 但我也不是非常清楚这个流程。