티스토리 뷰
'RuntimeError: CUDA error: device-side assert triggered'
이 에러는 가질 수 있는 값의 범위를 벗어나는 값이 들어왔을 때 발생한다.
embed_tokens = nn.Embedding(vocab_size, hidden_size)
...
embeds = embed_tokens(input_ids) # 에러 발생
나의 경우, 위 부분에서 에러가 발생했다.
내가 사용한 사전학습 모델에서의 tokenizer의 vocab_size는 30000이었는데, 여기에 special token을 10개 추가하고 아래와 같이 resize를 해주어서 vocab_size를 30010으로 설정했다.
model.resize_token_embeddings(len(tokenizer))
(resize를 안 해준 경우에도 이 에러가 발생할 것이다)
그래서 토크나이징된 input_ids에서는 1~30010까지의 값이 존재했는데, 다른 코드 부분에서 꼬여서 embed_tokens를 만들 때 넘겨준 vocab_size가 30000이었다.
즉, 30000까지의 값을 받도록 선언된 객체에 30000보다 큰 값이 들어감으로써 에러가 발생한 것이다.
따라서 embed_tokens를 선언할 때의 vocab_size를 30010으로 맞춰주어서 에러를 해결하였다.
반응형
'에러 해결' 카테고리의 다른 글
댓글