KoBERT를 Huggingface.co 기반으로 사용할 수 있게 Wrapping 작업을 수행하였습니다.
- Python >= 3.6
- PyTorch >= 1.8.1
- transformers >= 4.8.2
- sentencepiece >= 0.1.91
pip install 'git+https://github.com/SKTBrain/KoBERT.git#egg=kobert_tokenizer&subdirectory=kobert_hf'
XLNetTokenizer를 활용하여 Wrapping 작업을 진행하였습니다.
기존 Tokenizer와 동일하게 사전 크기는 8,002개 입니다.
일반적인 토크나이저 사용시(예: inference) 아래와 같이 사용하면 됩니다.
> from kobert_tokenizer import KoBERTTokenizer
> tokenizer = KoBERTTokenizer.from_pretrained('skt/kobert-base-v1')
> tokenizer.encode("한국어 모델을 공유합니다.")
[2, 4958, 6855, 2046, 7088, 1050, 7843, 54, 3]
BPE-dropout
을 이용하면 서비스에 적합한 띄어쓰기에 강건한 모델로 튜닝 할 수 있습니다. 학습시 아래와 유사한 토크나이저 설정으로 학습을 진행할 수 있습니다. 자세한 옵션 설명은 이곳을 참고하세요.
> from kobert_tokenizer import KoBERTTokenizer
> tokenizer = KoBERTTokenizer.from_pretrained('skt/kobert-base-v1', sp_model_kwargs={'nbest_size': -1, 'alpha': 0.6, 'enable_sampling': True})
> tokenizer.encode("한국어 모델을 공유합니다.")
[2, 4958, 6855, 2046, 7088, 1023, 7063, 7843, 54, 3]
> import torch
> from transformers import BertModel
> model = BertModel.from_pretrained('skt/kobert-base-v1')
> text = "한국어 모델을 공유합니다."
> inputs = tokenizer.batch_encode_plus([text])
> out = model(input_ids = torch.tensor(inputs['input_ids']),
attention_mask = torch.tensor(inputs['attention_mask']))
> out.pooler_output.shape
torch.Size([1, 768])
KoBERT
는 Apache-2.0 라이선스 하에 공개되어 있습니다. 모델 및 코드를 사용할 경우 라이선스 내용을 준수해주세요. 라이선스 전문은 LICENSE
파일에서 확인하실 수 있습니다.