macheng6
macheng6
> char span是基于字符的实体start和end位置 > token span是经过bert tokenizer后,实体所在的新的start和end位置 对于中文来说,二者不应该一样吗,中文的bertTokenizer也是基于字符的吧
> > > char span是基于字符的实体start和end位置 > > > token span是经过bert tokenizer后,实体所在的新的start和end位置 > > > > > > 对于中文来说,二者不应该一样吗,中文的bertTokenizer也是基于字符的吧 > > 全部中文的话,差不多是一样的。 > 不过你不要考虑这些,你把char span设置好,在preprocess里的BuildData代码里会自动帮你生成tok span 看不懂代码,然后直接跑感觉不得劲儿
> @macheng6 中文里也会出现英文单词 嗯嗯,刚仔细看了一下,确实是这样,有char,token和ent(或者称为span)三层结构。还有我发现一个小bug,如果一个句子的第一个span就是ent,并且ent的第一个字符是空格,后面token会出现-1的情况,utils的310的那个函数
> 根据自己的需要,ground truth有span的就用whole span,没有的用whole text 好的,谢谢。
更改max_length和max_gen_length参数试试,不要用512,放小一点。
感谢回答,还有疑问是: 1. use_varlen_attn=True时,报错如下: File "/opt/conda/lib/python3.8/site-packages/transformers/models/qwen2/modeling_qwen2.py", line 748, in forward hidden_states, self_attn_weights, present_key_value = self.self_attn( File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1538, in _call_impl result = forward_call(*args, **kwargs) File "/nas/macheng.ma/projects/xtuner-main/xtuner/model/modules/dispatch/qwen2.py", line 317, in qwen2_varlen_attn_forward...
好的,感谢回答。
抱歉,公司电脑不太方便