NLP
-
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과 유사하..
-
자연어 처리를 위한 언어 모델의 학습과 평가NLP/3주차 2021. 9. 24. 14:11
Language Modeling 주어진 문맥을 활용해 다음에 나타날 단어를 예측 P("오늘은 비가 온다") = P("오늘은") * P("비가"|"오늘은") * P("온다"|"오늘은 비가") 양방향 언어 모델링 ELMo(Embeddings from Language Models)에서 소개 순방향과 역방향으로 언어 모델링을 진행하고, 얻어진 양방향 embedding을 사용 언어 모델을 범용적으로 사용하여 모든 task에서 성능 향상을 이끌어냄 → LM의 가능성에 주목 → BERT의 등장 언어 모델의 평가 GLUE 벤치마크 (General Language Understanding Evaluation) Quora Question Pairs (QQP, 문장 유사도 평가) Question NLI (QNLI, 자연어 ..
-
캐글 팁NLP/3주차 2021. 9. 23. 14:00
유명 대회 플랫폼 캐글 데이콘 카카오 아레나 Why Kaggle? 실력을 인정받기 위해 성장을 위해 - 공유 문화 덕분에 배우기 좋다 캐글 대회 종류 Featured - 상업적 목적의 예측 대회 Reaserch - 연구 목적의 대회 Getting Started & Playground - 초심자를 위한 학습용 대회 Analytics - 데이터 분석 목적의 대회 Recruitment - 리크루팅 목적의 대회 대회 제출 방식 General Competition (리소스 제약 x) - submission.csv 파일만 제출 Code Competition (리소스 제약 o) - 캐글 노트북에서 코드를 실행시켜 제출을 해야함 대회를 위한 Pipeline 캐글 대회 우승을 위해 필요한 것 파이프라인의 효율적 반복 G..