분류 전체보기
-
Passage RetrievalNLP/MRC 2021. 10. 13. 11:57
Passage Retrieval 질문에 맞는 문서를 찾는 것. Open-domain Question Answering 대규모의 문서 중에서 질문에 대한 답을 찾기 Passage Retrieval + MRC의 2 stage Passage Embedding Space Passage Embedding의 벡터 공간 벡터화된 passage를 이용하여 passage 간 유사도 등을 알고리즘으로 계산할 수 있다. Sparse Embedding BoW → n-gram Term Value를 결정하는 방법 특징 Dimension of embedding vector = number of terms (등장하는 단어가 많을 수록 커짐, n이 커질수록 증가) Term overlap을 잡아낼 때 유용 의미가 비슷하지만 다른 단어를..
-
Generation based MRCNLP/MRC 2021. 10. 13. 11:20
주어진 지문과 질의를 보고 답변을 생성 MRC 모델 구조 Seq-to-seq PLM 구조 (generation) vs. PLM + classifier 구조 (extraction) loss 계산을 위한 답의 형태 Prediction의 형태 Free form text 형태 (generation) vs. 지문 내 답의 위치 (extraction) 입력 표현 Special Token 학습 시에만 사용되며 단어 자체의 의미는 가지지 않는 특별한 토큰 Attention mask Token type ids BART에는 입력시퀀스에 대한 구분이 없어 token_type_ids가 존재하지 않음 따라서 입력에 token_type_ids가 안들어감 BART 기계독해, 기계번역, 요약, 대화 등 seq2seq 문제 pre-t..
-
Extraction-Based MRCNLP/MRC 2021. 10. 12. 16:57
Pre-processing Tokenization → OOV 문제를 해결하기 위해 BPE를 주로 사용 Attention Mask → 입력 시퀀스 중에서 attention 연산할 때 무시할 토큰 표시 Token Type IDs → 입력이 2개 이상의 시퀀스일때 각각에 ID를 부여하여 모델이 구분해서 해석하도록 유도 Post-processing 불가능한 답 제거하기 End position이 start 보다 앞에 있는 경우 예측한 위치가 context를 벗어난 경우 미리 설정한 max_answer_length 보다 길이가 더 긴 경우 최적의 답안 찾기 start/end position prediction에서 score 가 가장 높은 N개를 각각 찾는다 불가능한 start/end 조합을 제가 가능한 조합들을 s..
-
Introduction to MRCNLP/MRC 2021. 10. 12. 13:04
MRC란? 주어진 지문 (Context)을 이해하고, 주어진 질의 (Query/Question)의 답변을 추론하는 문제 MRC의 종류 Extractive Answer Datasets: 질의에 대한 답이 항상 주어진 지문의 segment/span으로 존재 Descriptive/Narrative Answer Datasets: 답이 지문 내에서 추출한 span이 아니라, 질의를 보고 생성된 sentence의 형태 Multiple-choice Datasets: 질의에 대한 답을 여러개의 answer candidate 중 하나로 고르는 형태 Challenges in MRC Paraphrase 된 문장을 이해해야함 Coreference resolution → 대명사가 무엇을 의미하는지 알아야함 'No Answer'..
-
GPT 모델 사용해보기NLP/KLUE 2021. 10. 12. 01:36
자연어 생성 Grid Search 방식 model.generate를 사용하면 가장 확률 값이 높은 결과를 선택 Beam Search 방식 확률의 합이 가장 커지는 방식 (문장 자체의 문법적 확률이 높아짐) 시간이 오래걸림 no_repeat_n_gram_size를 설정하여 결과가 반복되는 것을 막을 수 있음 output = model.generate( input_ids, max_length=30, num_beams=5, no_repeat_ngram_size=2, early_stopping=True ) Beam Search 방식은 유사한 문장을 많이 만들어냄 인간이 자연어를 생성할 때, 높은 확률의 문장만 만드는 것이 아님 → temperature 설정, random sampling, top_k_sampl..
-
NotesNLP/KLUE 2021. 9. 28. 15:36
ko-electra가 공개된 Huggingface 모델 중에 성능이 가장 좋다. vocab을 정의할 때 3만개 정도면 적절하다. BERT 학습시 개인정보를 잘 지우는 것이 중요 MASK로 개인정보를 예측하게 할 수 있음 (e.g. Obama was born in [MASK] → Honolulu) short seq prob으로 seq 길이를 랜덤하게 학습 kor_ner 한국해양대학교 자연어 처리 연구실에서 공개한 한국어 NER 데이터셋 NER 데이터셋은 POS tagging도 같이 BIO 태그로 구성 (begin, inner, out → entity의 종류와 위치를 알려주는 태그 e.g 스포츠 (B-ORG), 동아(I-ORG)) 형태소 단위의 토큰을 음절단위의 토큰으로 분해하는 것이 좋음
-
자연어 전처리NLP/KLUE 2021. 9. 28. 11:26
전처리 원시 데이터를 기계학습 모델이 학습하는데 적합하게 만드는 프로세스 학습에 사용될 데이터를 수집&가공하는 프로세스 자연어 처리 단계 task 설계 필요 데이터 수집 통계학적 분석 token의 개수 (아웃라이어 제거) 빈도 확인 tagging tokenizing - 자연어를 어떤 단위로 살펴볼것인지 모델 설계 모델 구현 성능 평가 완료 Python String 관련 함수 한국어 토큰화 토큰의 기준은 다를 수 있음 (어절, 단어, 형태소, 음절, 자소 등) 어절 단위 문장을 띄어쓰기 단위로 분리 spilt 함수 이용 형태소 단위 형태소 분석기 이용 (mecab, khaiii 등) 음절단위 자연어를 한 글자씩 분리 자소 단위 초성, 중성, 종성으로 분리 hgtk 라이브러리 이용 WordPiece 단위 한..
-
인공지능 & 자연어 처리 타임라인NLP/KLUE 2021. 9. 27. 12:02
자연어 단어 임베딩 가장 단순한 표현 방법은 One-hot encoding 방식 → n개의 벡터를 n차원으로 표현 one-hot encoding 방식은 sparse 해서 단어가 가지는 의미를 벡터 공간에 표현하기 어렵다 이러한 단점을 극복하기 위한 것이 Word2Vec 이다. → 한 단어의 주변 단어들을 통해, 그 단어의 의미를 파악 (skip-gram) Word2Vec 장점 - 단어간의 유사도 측정에 용이 - 단어간의 관계 파악 - 벡터 연산을 통한 추론 가능 (한국 - 서울 + 파리 = 프랑스) 단점 - 단어의 subword information 무시 (e.g. 서울 vs 서울시 vs 고양시) - out of vocabulary(OOV)에서 적용 불가능 FastText 기존의 word2vec과 유사하..