HuggingFace 활용

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.'}]



댓글 쓰기

다음 이전