티스토리 뷰
공식 문서에서 위 방법을 제시하고 있다.
나의 경우 내 개인모델을 사용중인데 위 방법대로 하면 토크나이징은 잘 되나 model.encode() 코드 부분에서 에러가 났다.
(에러 메시지: torch.nn.modules.module.ModuleAttributeError: 'Transformer' object has no attribute 'encode')
그래서 아래 방법을 사용했다.
from sentence_transformers import SentenceTransformer, models
model = SentenceTransformer("MY MODEL")
tokens = ["TOK1", "TOK2"]
word_embedding_model = model._first_module()
word_embedding_model.tokenizer.add_tokens(tokens, special_tokens=True)
word_embedding_model.auto_model.resize_token_embeddings(len(word_embedding_model.tokenizer))
pooling_model = models.Pooling(word_embedding_model.get_word_embedding_dimension())
model = SentenceTransformer(modules=[word_embedding_model, pooling_model])
Tokenize된 결과는 아래 코드로 확인할 수 있다.
text = "텍스트를 입력하세요."
model.tokenizer.convert_ids_to_tokens(model.tokenize([text])["input_ids"][0])
반응형
'AI > NLP' 카테고리의 다른 글
Huggingface에 모델 포팅하기 (0) | 2022.07.29 |
---|---|
Embedding vs Encoding (0) | 2022.07.11 |
FAISS 설명 및 사용법 (0) | 2022.04.28 |
BERT의 출력 (sequence_output, pooled_output) (0) | 2022.04.28 |
[BlenderBot 2.0] Beyond Goldfish Memory: Long-Term Open-Domain Conversation 논문 리뷰 (0) | 2022.04.06 |
댓글