BERT란?
· BERT 정의
Pre-training of Deep Bidirectional Trnasformers for Language Understanding
구글에서 개발한 NLP 사전 훈련 모델입니다. 특정 분야에 국한된 기술이 아니라 모든 자연어 처리 분야에서 좋은 성능을 내는 범용 Language Model로 알려져 있습니다.
· BERT 특징
- BERT는 트랜스포머를 이용하여 구현되었으며, 위키피디아(25억 단어)와 BooksCorpus(8억 단어)와 같은 레이블이 없는 텍스트 데이터로 사전 훈련되었습니다.
- 레이블이 없는 많은 데이터로 사전 훈련된 모델을 가지고, 파인 튜닝을 했기 때문에 성능이 높습니다.
- 파인 튜닝(Fine-tuning) 이란, 다른 작업에 대해서 파라미터 재조정을 위한 추가 훈련 과정을 뜻합니다.
<BERT 파인 튜닝 사례>
- 작업 목표가 스팸 메일 분류라고 하였을 때, 이미 위키피디아 등으로 사전 학습된 BERT 위에 분류를 위한 신경망을 한 층 추가합니다.
- BERT가 언어 모델 사전 학습 과정에서 얻은 지식을 활용할 수 있으므로 스팸 메일 분류에서 보다 더 좋은 성능을 얻을 수 있습니다.
· BERT Contextual Embedding
BERT는 문맥을 반영한 임베딩(Contextual Embedding)을 사용하고 있습니다.
- BERT의 입력: 기존 딥 러닝 모델들과 같이 임베딩 층을 가진 임베딩 벡터들
- BERT의 출력: 내부 연산을 거친 후, 동일하게 각 단어에 대해서 768차원의 벡터를 출력. 문맥을 모두 참고한 문맥을 반영한 임베딩이 됩니다.
- 위 예시 이미지) 입력: BERT가 각 768차원의 [CLS], I, love, you라는 4개의 벡터 → 출력: 동일하게 768차원의 4개의 벡터
- [CLS] 벡터는 BERT의 입력으로 사용되었을 당시) 단순히 임베딩 벡터였지만, BERT를 지나고 나서는 [CLS], I, love, you라는 모든 단어 벡터들을 모두 참고한 후에 문맥 정보를 가진 벡터가 됩니다!
- 이는 다른 벡터들도 전부 마찬가지입니다.
- 하나의 단어가 모든 문맥을 참고하는 연산은 사실 BERT의 12개의 층에서 전부 이루어지는 연산입니다.
- 셀프 어텐션 방식으로 12개의 층을 지난 후에 최종적으로 출력 임베딩을 얻게 된다고 합니다!
실습
https://github.com/uoneway/KoBertSum/blob/master/tutorials/EDA.ipynb
생각해볼 사항..
1) 영문으로 먼저 번역 후 영문 자연어 처리할지? or 한글로 자연어 처리 후 영문으로 번역할지? (개인적으로 후자)
2) 해설에서 키워드 추출 + 키워드에 대한 요약 생성
- KoBertSum
- TextRank
- ChatGPT
- (자연어 라이브러리)
https://www.dinolabs.ai/288 textrank
https://velog.io/@raqoon886/KorBertSum-SummaryBot
참고
'Machine Learning' 카테고리의 다른 글
[YOLO] Google Colab으로 YOLO v5 커스텀 데이터 학습시키기 (0) | 2023.05.04 |
---|---|
[YOLO] YOLO(You Only Look Once)란? (0) | 2023.05.02 |