728x90
from transformers import AutoTokenizer
tokenzer = AutoTokenizer.from_pretrained({model_path})
# new tokens
new_tokens = "[NEW]"
tokenizer.add_special_tokens({"additional_special_tokens" : [new_tokens]})
model.resize_token_embeddings(len(tokenizer))
resize_token_embeddings(len(tokenizer))를 안해주게 되면 임베딩 에러 발생
+ 추가
Sbert의 경우
# ADD tokens
tokens = ["[NEW]"]
embedding_model = model._first_module()
embedding_model.tokenizer.add_tokens(tokens, special_tokens=True)
embedding_model.auto_model.resize_token_embeddings(
len(embedding_model.tokenizer))
pooling_model = models.Pooling(
embedding_model.get_word_embedding_dimension())
model = SentenceTransformer(modules=[embedding_model, pooling_model])
반응형
'Machine learning > NLP' 카테고리의 다른 글
[NLP]. 크로스 인코더(Cross Encoder) Onnx Runtime 양자화 하기 (0) | 2023.05.16 |
---|---|
[NLP]. Ray와 Sklearn Pipeline을 사용하여 Pandas 데이터 전처리하기 (0) | 2023.04.05 |
[NLP]. MultipleNegativesRankingLoss 적용기(Sentence Transfomer) (0) | 2023.02.21 |
[NLP]. 인공지능에서 골드 라벨(Gold Label)은 뭘까? (feat. ChatGPT) (0) | 2023.02.21 |
[NLP]. 한국어 존댓말/반말 분류모델 (formal classifier) (0) | 2023.02.03 |