반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
Tags
- GPT-3
- 선형회귀
- 밑시딥2
- 밑바닥부터 시작하는 딥러닝
- 딥페이크
- 학습 자동 중단
- ESG
- 독서 #독서후기 #피로사회 #행동과잉 #긍정과잉
- 안드로이드
- nlp
- 안드로이드 구조
- 코틀린
- 모두의 딥러닝
- MRC
- 보이스피싱
- 면접왕 이형
- 경제신문스크랩
- andoriod with kotlin
- 밑시딥
- 베스트 모델
- 과적합
- ESG 채권
- 뉴로 심볼릭
- 예측선
- 면접왕이형
- 다중분류
- gradiant descent
- 경사하강법
- k겹 교차검증
- 로지스틱 회귀법
Archives
- Today
- Total
Practice makes perfect!
Week 11 (3) Generation-based MRC 본문
1. Generation-based MRC
1) 문제 정의
- 주어진 지문과 질의 (question)를 보고, 답변을 생성 ⇒ 생성 문제 (generation)
- 모든 Extraction-based mrc 문제는 generation-based mrc 문제로 치환할 수 있음
- 정답이 주어진 지문 내에 있다할지라도, 그 위치를 파악하는 것이 아니라 모델이 해당 정답을 생성할 수 있도록 유도함.
2) Overview
- 시작,끝점으로 예측했던 것과 달리 모델이 바로 정답까지 생성해줌
- 일종의 seq-to-seq 모델
- BERT는 encoder만 있고 decoder가 없기 때문에 generation-based mrc에 활용할 수 없음
3) Generation-based MRC & Extraction-based MRC 비교
- MRC 모델 구조
- Seq-to-seq PLM 구조 (generation) vs. PLM + Classifier구조 (extraction)
- extraction은 decoder가 없는 PLM
- Loss 계산을 위한 답의 형태 / Prediction의 형태
- Free-form text 형태 (generation) vs. 지문 내 답의 위치에 대한 확률분포 (extraction)
- ⇒ Extraction-based MRC: F1 계산을 위해 text로의 별도 변환 과정이 필요
- generation 방식에선 text를 decoding할 때 teacher forcing과 같은 방법으로 학습하여 정답 도출
2. Pre-processing
- extraction보다 procssing 과정 심플
- input 단계는 동일하고, extrction은 해당 정답의 위치를 특정해야했는데 generation은 정답 그대로 넘겨주면 됨.
1) 입력 표현 - 토큰화
- Extraction-based MRC 와 같이 WordPiece Tokenizer를 사용함
- WordPiece Tokenizer 사전학습 단계에서 먼저 학습에 사용한 전체 데이터 집합(코퍼스)에 대해서 구축되어 있어야 함
- 구축 과정에서 미리 각 단어 토큰들에 대해 순서대로 번호(인덱스)를 부여해둠
- Tokenizer 은 입력 텍스트를 토큰화한 뒤, 각 토큰을 미리 만들어둔 단어 사전에 따라 인덱스로 변환함
2) 입력 표현 - Special Token
학습 시에만 사용되며 단어 자체의 의미는 가지지 않는 특별한 토큰
- SOS(Start Of Sentence), EOS(End Of Sentence), CLS, SEP, PAD, UNK.. 등등
⇒ Extraction-based MRC : CLS, SEP, PAD 토큰을 사용
⇒ Generation-based MRC : PAD 토큰은 사용됨. CLS, SEP 토큰 또한 사용할 수 있으나, 자연어를 이용하여 정해진 텍스트 포맷(format)으로 데이터를 생성
3) 입력 표현 - additional information
- Attention mask
- Extraction-based MRC 와 똑같이 어텐션 연산을 수행할 지 결정하는 어텐션 마스크 존재
- 무시할 단어들에 대해 표시
- Token type ids
- BERT 와 달리 BART 에서는 입력시퀀스에 대한 구분이 없어 token_type_ids 가 존재하지 않음
- 따라서 Extraction-based MRC 와 달리 입력에 token_type_ids 가 들어가지 않음
- 스페셜 토큰이 있으면 token_type_id가 제공되지 않아도 모델이 어느정도 구분할 수 있음
4) 출력 표현 - 정답 출력
Sequence of token ids
- Extraction-based MRC에서는 시작/끝 토큰의 위치를 출력하는 것이 모델의 최종 목표였음
- Generation-based MRC는 그보다 조금 더 어려운 실제 텍스트를 생성하는 과제를 수행
- task 자체는 좀 더 어렵지만 formultaion은 simple
- 전체 시퀀스의 각 위치 마다 모델이 아는 모든 단어들 중 하나의 단어를 맞추는 classification 문제
- 디코딩
- 모델의 출력을 선형 레이어에 넣음
- seq length 내 각 위치마다 들어가야 할 단어를 하나씩 선택
- 정해진 횟수 또는 전체 길이의 수만큼 반복
3. Model
1) BART
- 기계 독해, 기계 번역, 요약, 대화 등 sequence to sequence 문제의 pre-training을 위한 denoising autoencoder (노이즈 injection 후 노이즈 없었던 원래 버전을 reconstructor하는 문제)
- BERT는 인코더만 존재, BART는 실제로 text를 내보내는 방식
- pre-train할 때도 BERT는 단어 2개를 마스킹한 후 알아맞히는 방식, BART는 기존 문장을 비슷하게 마스킹하지만 이를 알아맞히는 것이 아니고 정답을 생성하는 방식으로 진행됨. GPT는 심플하게 다음 단어를 맞히는 방식으로 진행.
2) Pre-training BART
BART는 텍스트에 노이즈를 주고 원래 텍스트를 복구하는 문제를 푸는 것으로 pre-training함
4. Post-processing
- BART는 디코딩하는 방식으로 text 생성 -> 이전 스텝에서의 출력을 다음 스텝의 입력으로 사용
- 맨 처음 입력은 문장의 시작을 뜻하는 스페셜 토큰 활용
Searching
- Greedy search : 속도 빠름, decision making을 early stage에서 해 최종적으로 안좋은 결과가 나올 수 있음
- Exhaustive search : 모든 가능성을 다 살펴봄, 문장의 길이와 vocab 사이즈가 조금만 커져도 불가능한 방법
- Beam search : 각 time step마다 가장 점수가 높은 top-k만 유지. candidate list 개수는 유지됨.
반응형
'Study > AI Tech' 카테고리의 다른 글
Week 11 (5) Passage Retrieval - Dense Embedding (0) | 2021.10.14 |
---|---|
Week 11 (4) Passage Retrieval - Sparse Embedding (0) | 2021.10.14 |
Week 11 (2) Extraction-based MRC (0) | 2021.10.13 |
Week 11 (1) MRC Intro (0) | 2021.10.12 |
Week 10 (1) GPT 언어 모델 (0) | 2021.10.05 |
Comments