KcBERT란?
KcBERT는 네이버 뉴스에서 댓글과 대댓글을 수집해, 토크나이저와 BERT 모델을 처음부터 학습한 Pretrained BERT 모델
Huggingface의 Transformers 라이브러리를 통해 간편히 불러와 사용할 수 있다.
(별도의 파일 다운로드가 필요하지 않습니다.)
위의 학습을 바탕으로 의미를 함축해, 데이터와 검색어를 vector로 표현해주는 모델
Embedding
자연어처리 분야에서 임베딩은 사람이 쓰는 자연어를 기계가 이해할 수 있는 형태인 vector로 바꾼 결과 혹은 그 일련의 과정 전체를 의미한다.
임베딩의 역할
- 단어/문장 간 관련도 계산
- 의미적/문법적 정보 함축
- 전이 학습
- 품질 좋은 임베딩은 모형의 성능과 모형의 수렴속도가 빨라지는데 이런 품질 좋은 임베딩을 다른 딥러닝 모델의 입력값으로 사용하는 것을 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 |