Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG/Help] <title>ValueError: 130001 is not in list #596

Closed
1 task done
WanJuWuGo opened this issue Apr 13, 2023 · 8 comments
Closed
1 task done

[BUG/Help] <title>ValueError: 130001 is not in list #596

WanJuWuGo opened this issue Apr 13, 2023 · 8 comments

Comments

@WanJuWuGo
Copy link

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

ptuning时候max_steps改大一点点, 就会这样,是我哪里搞错了吗

Expected Behavior

Steps To Reproduce

Environment

- OS:
- Python:
- Transformers:
- PyTorch:
- CUDA Support (`python -c "import torch; print(torch.cuda.is_available())"`) :

Anything else?

@WanJuWuGo
Copy link
Author

代码和模型版本都是最新

@XiaTiaoQAQ
Copy link

#432
看看这个,应该替换下output模型内的文件就可以解决

@luolanfeixue
Copy link

mask_token = gMASK if gMASK in input_ids else MASK
这句代码有问题,input_ids为一个batch,一个batch只要有一个example中存在gMASK则mask_token就等于gMASK。

这样会导致下面这句报错(假设input_ids有一条数据存在gMASK,一条数据存在MASK)
mask_positions = [seq.tolist().index(mask_token) for seq in input_ids]

按照下面写 把原来那两句注释掉
mask_positions =[]
for seq in input_ids:
mask_token = gMASK if gMASK in seq else MASK
mask_positions.append(seq.tolist().index(mask_token))

@duzx16
Copy link
Member

duzx16 commented Apr 14, 2023

mask_token = gMASK if gMASK in input_ids else MASK 这句代码有问题,input_ids为一个batch,一个batch只要有一个example中存在gMASK则mask_token就等于gMASK。

这样会导致下面这句报错(假设input_ids有一条数据存在gMASK,一条数据存在MASK) mask_positions = [seq.tolist().index(mask_token) for seq in input_ids]

按照下面写 把原来那两句注释掉 mask_positions =[] for seq in input_ids: mask_token = gMASK if gMASK in seq else MASK mask_positions.append(seq.tolist().index(mask_token))

目前的实现里都是用gMASK的,如果没用gMASK就是出错了

@luolanfeixue
Copy link

mask_token = gMASK if gMASK in input_ids else MASK 这句代码有问题,input_ids为一个batch,一个batch只要有一个example中存在gMASK则mask_token就等于gMASK。
这样会导致下面这句报错(假设input_ids有一条数据存在gMASK,一条数据存在MASK) mask_positions = [seq.tolist().index(mask_token) for seq in input_ids]
按照下面写 把原来那两句注释掉 mask_positions =[] for seq in input_ids: mask_token = gMASK if gMASK in seq else MASK mask_positions.append(seq.tolist().index(mask_token))

目前的实现里都是用gMASK的,如果没用gMASK就是出错了

如果数据本身存在mask,在
tokenizer.build_inputs_with_special_tokens(a_ids, b_ids)就不会加入gMask

@luolanfeixue
Copy link

mask_token = gMASK if gMASK in input_ids else MASK 这句代码有问题,input_ids为一个batch,一个batch只要有一个example中存在gMASK则mask_token就等于gMASK。
这样会导致下面这句报错(假设input_ids有一条数据存在gMASK,一条数据存在MASK) mask_positions = [seq.tolist().index(mask_token) for seq in input_ids]
按照下面写 把原来那两句注释掉 mask_positions =[] for seq in input_ids: mask_token = gMASK if gMASK in seq else MASK mask_positions.append(seq.tolist().index(mask_token))

目前的实现里都是用gMASK的,如果没用gMASK就是出错了

那如果数据里有mask的情况,数据需要把mask去掉?

@duzx16
Copy link
Member

duzx16 commented Apr 14, 2023

mask_token = gMASK if gMASK in input_ids else MASK 这句代码有问题,input_ids为一个batch,一个batch只要有一个example中存在gMASK则mask_token就等于gMASK。
这样会导致下面这句报错(假设input_ids有一条数据存在gMASK,一条数据存在MASK) mask_positions = [seq.tolist().index(mask_token) for seq in input_ids]
按照下面写 把原来那两句注释掉 mask_positions =[] for seq in input_ids: mask_token = gMASK if gMASK in seq else MASK mask_positions.append(seq.tolist().index(mask_token))

目前的实现里都是用gMASK的,如果没用gMASK就是出错了

那如果数据里有mask的情况,数据需要把mask去掉?

哦原来是这样,我终于知道出现这种错误的都是什么情况了。

@duzx16
Copy link
Member

duzx16 commented Apr 14, 2023

mask_token = gMASK if gMASK in input_ids else MASK 这句代码有问题,input_ids为一个batch,一个batch只要有一个example中存在gMASK则mask_token就等于gMASK。
这样会导致下面这句报错(假设input_ids有一条数据存在gMASK,一条数据存在MASK) mask_positions = [seq.tolist().index(mask_token) for seq in input_ids]
按照下面写 把原来那两句注释掉 mask_positions =[] for seq in input_ids: mask_token = gMASK if gMASK in seq else MASK mask_positions.append(seq.tolist().index(mask_token))

目前的实现里都是用gMASK的,如果没用gMASK就是出错了

那如果数据里有mask的情况,数据需要把mask去掉?

现在应该已经修复了,不管数据里有没有 [MASK],tokenizer都会在末尾加入 [gMASK]。不过还是建议把数据里的 [MASK] 去掉。目前transformers 没有提供可以不编码这些special token的选项。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants