在GPU上运行hugging face transformer的时候出现如下报错:
RuntimeError: CUDA error: CUBLAS_STATUS_EXECUTION_FAILED when calling `cublasLtMatmul( ltHandle, computeDesc.descriptor(), &alpha_val, mat1_ptr, Adesc.descriptor(), mat2_ptr, Bdesc.descriptor(), &beta_val, result_ptr, Cdesc.descriptor(), result_ptr, Cdesc.descriptor(), &heuristicResult.algo, workspace.data_ptr(), workspaceSize, at::cuda::getCurrentCUDAStream())`
切换至cpu之后,报错:
-> 1724 return torch.embedding(weight, input, padding_idx, scale_grad_by_freq, sparse)
1725
1726
IndexError: index out of range in self
根据cpu上的报错内容,判断为模型输入太长,超过了模型的embedding最大尺寸,可以在tokenizer设置max_len
来进行截断(truncation)。
batch = tokenizer([input_text],truncation=True,padding='longest',
max_length=max_length, return_tensors="pt").to(torch_device)
由于GPU上的报错一般都比较抽象,建议先在cpu上debug。有可能你的GPU报错和我的一样,但是cpu报错不同,也就是实际导致错误的原因是不一样的。
参考:
IndexError: index out of range in self #5611
文章出处登录后可见!
已经登录?立即刷新