학교/졸프

KcBERT 실습해보기(2)

daykim 2021. 4. 21. 00:02

KcBERT란?

KcBERT는 네이버 뉴스에서 댓글과 대댓글을 수집해, 토크나이저와 BERT 모델을 처음부터 학습한 Pretrained BERT 모델

Huggingface의 Transformers 라이브러리를 통해 간편히 불러와 사용할 수 있다.

(별도의 파일 다운로드가 필요하지 않습니다.)

위의 학습을 바탕으로 의미를 함축해, 데이터와 검색어를 vector로 표현해주는 모델

 

Embedding

자연어처리 분야에서 임베딩은 사람이 쓰는 자연어를 기계가 이해할 수 있는 형태인 vector로 바꾼 결과 혹은 그 일련의 과정 전체를 의미한다.

 

임베딩의 역할

  1. 단어/문장 간 관련도 계산
  2. 의미적/문법적 정보 함축
  3. 전이 학습
    - 품질 좋은 임베딩은 모형의 성능과 모형의 수렴속도가 빨라지는데 이런 품질 좋은 임베딩을 다른 딥러닝 모델의 입력값으로 사용하는 것을 transfer learning 이라 한다.

문장 임베딩하기

from transformers import BertTokenizer
tokenizer = BertTokenizer.from_pretrained(
    "beomi/kcbert-base",
    do_lower_case=False,
)

from transformers import BertConfig, BertModel
pretrained_model_config = BertConfig.from_pretrained(
    "beomi/kcbert-base"
)

import torch
model = BertModel.from_pretrained(
    "beomi/kcbert-base",
    config=pretrained_model_config,
)

sentences = ["안녕하세요", "하이!"]
features = tokenizer(
    sentences,
    max_length=10,
    padding="max_length",
    truncation=True,
)

features = {k: torch.tensor(v) for k, v in features.items()}

outputs = model(**features)

print(outputs[1])

 

 

결과

tensor([[-0.1594,  0.0547,  0.1101,  ...,  0.2684,  0.1596, -0.9828], 
        [-0.9221,  0.2969, -0.0110,  ...,  0.4291,  0.0311, -0.9955]],
       grad_fn=<TanhBackward>)

 

 

- 참고 URL

ratsgo.github.io/nlpbook/docs/language_model/tutorial/#bert%EC%97%90-%ED%83%9C%EC%9A%B0%EA%B8%B0

'학교 > 졸프' 카테고리의 다른 글

TF-IDF  (0) 2021.05.05
Faiss  (0) 2021.05.01
KcBERT 실습해보기(1)  (0) 2021.04.16
자연어처리 및 언어모델  (0) 2021.04.12
BERT  (0) 2021.04.11