Notice
Recent Posts
Recent Comments
Link
250x250
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- Bert
- matplotlib
- seaborn
- 딥러닝
- N2N
- AI Math
- mrc
- word2vec
- ODQA
- RNN
- dataset
- Attention
- 데이터 구축
- 2023 현대차·기아 CTO AI 경진대회
- Optimization
- Self-attention
- passage retrieval
- 현대자동차
- N21
- GPT
- Bart
- 데이터 시각화
- Data Viz
- 기아
- pyTorch
- nlp
- Transformer
- KLUE
- AI 경진대회
- Ai
Archives
- Today
- Total
쉬엄쉬엄블로그
(KLUE) BERT Pre-Training 본문
728x90
이 색깔은 주석이라 무시하셔도 됩니다.
한국어 언어 모델 학습 및 다중 과제 튜닝
BERT Pre-Training
BERT 모델 학습
BERT 학습의 단계
- Tokenizer 만들기
- 데이터셋 확보
- Next sentence prediction (NSP)
- Masking
이미 있는 거 쓰지, 왜 새로 학습해야 하는가?
도메인 특화 task의 경우, 도메인 특화된 학습 데이터만 사용하는 것이 성능이 더 좋다!

!

생물학, 생리학 자연어 task에 대해서 기존 BERT를 fine tuning하는 것 보다 생물학, 생리학 데이터로 바닥부터 학습한 모델의 성능이 더 좋음
학습을 위한 데이터 만들기


- BERT 입장에서 입력은 input_ids, token_type_ids, positional encoding 형태로 만들어야 함
- 이런 형태로 만든 것이 데이터셋 이라 함
- BERT 입장에서 입력은 input_ids, token_type_ids, positional encoding 형태로 만들어야 함
[BERT MASK Attack 실습] (공유 X)
- BERT 모델은 [MASK] token을 잘 예측하기 위해 학습한다.
그래서 [MASK] token을 예측하는 task를 통해 개인정보를 획득할 수도 있다.- BERT를 통해 지식 그래프가 확장될 수 있고 학습에 사용됐던 데이터가 드러날 수 있음
- 계좌번호, 직책, 소속 등 개인 정보를 알아낼 수도 있기 때문에 모델을 학습할 때 개인정보가 해소된 데이터를 활용해야 함
- 모델을 load한 후에는 제대로 토큰화가 되는지 확인하기 위해 반드시 토크나이저를 실행해봐야 함
[한국어 BERT Pre-Training 실습] (공유 X)
실제 현업에서 정확도 3~5%는 의미가 없기 때문에 BertConfig를 수정하여 모델 사이즈를 줄이기도 함
max_len 보다 길이가 긴 토큰들이 들어오면 문장1과 문장2의 토큰을 랜덤하게 하나씩 제거하는 코드
# 이제 126 token을 넘는다면 truncation을 해야한다. # 이 때, 126 token 이내로 들어온다면 행위를 멈추고, # 만약 126 token을 넘는다면, segmentA와 segmentB에서 랜덤하게 하나씩 제거한다. def truncate_seq_pair(tokens_a, tokens_b, max_num_tokens): """Truncates a pair of sequences to a maximum sequence length.""" while True: total_length = len(tokens_a) + len(tokens_b) if total_length <= max_num_tokens: break trunc_tokens = tokens_a if len(tokens_a) > len(tokens_b) else tokens_b assert len(trunc_tokens) >= 1 # We want to sometimes truncate from the front and sometimes from the # back to add more randomness and avoid biases. if random.random() < 0.5: del trunc_tokens[0] else: trunc_tokens.pop()
출처: 부스트캠프 AI Tech 4기(NAVER Connect Foundation)
'부스트캠프 AI Tech 4기' 카테고리의 다른 글
| (KLUE) BERT 언어모델 기반의 두 문장 관계 분류 (0) | 2023.08.18 |
|---|---|
| (KLUE) BERT 언어모델 기반의 단일 문장 분류 (0) | 2023.08.17 |
| (KLUE) BERT 언어모델 소개 (0) | 2023.08.15 |
| (KLUE) 자연어의 전처리 (0) | 2023.08.15 |
| (KLUE) 인공지능과 자연어 처리 (0) | 2023.08.11 |
Comments