본문 바로가기
Dev Notes/ML

[debug] tokenizer special token 추가 시 임베딩 사이즈 조절 하기

by yooonlp 2024. 7. 30.
    tokenizer = AutoTokenizer.from_pretrained(base_model)
    tokenizer.add_special_tokens({'additional_special_tokens': special_tokens})
    padding_value = tokenizer.pad_token_id
    print("Trying to load model with transformers...")
    query_enc = QueryEncoder(base_model=base_model)
    passage_enc = PassageEncoder(base_model=base_model)

    #### special token을 추가하면 resize_token_embeddings를 해줘야 함
    query_enc.query_encoder.resize_token_embeddings(len(tokenizer))
    passage_enc.passage_encoder.resize_token_embeddings(len(tokenizer))

 

Trainer 클래스 커스텀해주는데 자꾸 에러가 나서 accelerate 관련 에러 인줄 알고 삽질하다가

아래 글을 보고 임베딩에 문제가 있다고...?

생각해보니 special token을 추가해서 기존 50032을 넘어가는 토큰 번호가 생겨서 생기는 에러였다.

 

https://discuss.pytorch.org/t/solved-assertion-srcindex-srcselectdimsize-failed-on-gpu-for-torch-cat/1804/11