HuggingFace
는 딥러닝을 위한 오픈소스 라이브러리 제공 회사
파이썬과 PyTorch, TensorFlow를 위한 최신의 Transformer 아키텍처 제공
다양한 사전 학습된 모델(Pre-Trained Model) 제공
BERT, GPT-2, RoBERTa, XLM, DistilBert, XLNet 등과 같은 주요 모델들 포함
1. 각 모델은 각 모델에 맵핑되는 토크나이저가 존재함
- 예를 들어, A 모델을 사용한다면 A 모델의 토크나이저를 사용해야 함
# hugging face transformers 라이브러리 설치
!pip install transformers
AutoTokenizer.from_pretrained
from transformers import AutoTokenizer
from transformers import TFBertForMaskedLM
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
masked_model = TFBertForMaskedLM.from_pretrained("bert-base-uncased")
AutoModelForCausalLM.from_pretrained
model = AutoModelForCausalLM.from_pretrained(model_dir)
tokenizer
print(tokenizer)
토큰으로 단순 쪼갠다.
tokenizer.tokenize('Here is the sentence I want embeddings for.')
단어사전(단어to인덱스)에 있는지 확인한다.
tokenizer.vocab['sentence']
단어사전에 없는 경우, 오류 발생.
tokenizer.vocab['embeddings']
단어사전에 없는 경우, 단어사전에 존재하는 단어묶음으로 세분화 한다.
tokenizer.tokenize('embeddings')
['em', '##bed', '##ding', '##s']
Masked 언어 모델
# [MASK] 토큰 예측하기
from transformers import FillMaskPipeline
mask_pip = FillMaskPipeline(model=masked_model, tokenizer = tokenizer)
[MASK] 부분에 올 단어를 예측한다.
mask_pip("python is really [MASK].")
[{'score': 0.2170625478029251, 'token': 2204, 'token_str': 'good', 'sequence': 'python is really good.'}, {'score': 0.07908610999584198, 'token': 5875, 'token_str': 'interesting', 'sequence': 'python is really interesting.'}, {'score': 0.04294554889202118, 'token': 4569, 'token_str': 'fun', 'sequence': 'python is really fun.'}, {'score': 0.034188829362392426, 'token': 2590, 'token_str': 'important', 'sequence': 'python is really important.'}, {'score': 0.028075825423002243, 'token': 2759, 'token_str': 'popular', 'sequence': 'python is really popular.'}]
Tags:
AI개발_Tool