딥러닝
-
Abstract Open-Domain Question Answering은 후보 context를 선택하기 위한 Passage Retrieval(문단 검색)이 중요하다. 기존에는 TF-IDF나 BM25같은 sparse vector space model을 사용하지만 본 논문에서는 dual-encoder를 통해 적은 양의 데이터로 학습된 dense representation을 사용한 retrieval을 제안한다. 1. Introduction ODQA는 대량의 문서를 이용해 사실에 입각한 질문에 대한 답을 찾는 Task이다. ODQA는 아래와 같은 두 단계의 프레임워크로 이루어져있다. 기존 연구에서는 Retrieval 하기 위해서 inverted index를 활용해 키워드를 기반으로 탐색하는 TF-IDF나 BM2..
[Paper Review] Dense Passage Retrieval for Open-Domain Question AnsweringAbstract Open-Domain Question Answering은 후보 context를 선택하기 위한 Passage Retrieval(문단 검색)이 중요하다. 기존에는 TF-IDF나 BM25같은 sparse vector space model을 사용하지만 본 논문에서는 dual-encoder를 통해 적은 양의 데이터로 학습된 dense representation을 사용한 retrieval을 제안한다. 1. Introduction ODQA는 대량의 문서를 이용해 사실에 입각한 질문에 대한 답을 찾는 Task이다. ODQA는 아래와 같은 두 단계의 프레임워크로 이루어져있다. 기존 연구에서는 Retrieval 하기 위해서 inverted index를 활용해 키워드를 기반으로 탐색하는 TF-IDF나 BM2..
2022.12.19 -
Abstract AEDA는 원 문장의 Sequence length를 기준으로 1/3 ~ 1 사이의 숫자를 랜덤으로 선택하여 6가지 punctuation (".", ";", "?", ":", "!", ",") 중 하나를 랜덤으로 대체시키는 기법이다. AEDA 기법은 EDA 기법(Wei and Zou, 2019)보다 더 간단한 기법이다. 또한 본 논문은 text classification을 위한 5개의 데이터셋에 대해 EDA기법과 AEDA기법에 대해 성능을 비교했을 때 AEDA에 대해 좀 더 좋은 성능을 보임을 확인하였다. Related Works Text Augmentation 기법들의 종류는 아래와 같다. 1. Neural Machine Translation 영어로 된 문장을 프랑스어로 translati..
[Paper Review] AEDA: An Easier Data Augmentation Technique for Text ClassificationAbstract AEDA는 원 문장의 Sequence length를 기준으로 1/3 ~ 1 사이의 숫자를 랜덤으로 선택하여 6가지 punctuation (".", ";", "?", ":", "!", ",") 중 하나를 랜덤으로 대체시키는 기법이다. AEDA 기법은 EDA 기법(Wei and Zou, 2019)보다 더 간단한 기법이다. 또한 본 논문은 text classification을 위한 5개의 데이터셋에 대해 EDA기법과 AEDA기법에 대해 성능을 비교했을 때 AEDA에 대해 좀 더 좋은 성능을 보임을 확인하였다. Related Works Text Augmentation 기법들의 종류는 아래와 같다. 1. Neural Machine Translation 영어로 된 문장을 프랑스어로 translati..
2022.10.10 -
본 논문에서는 Pretrain된 multilingual LM과 monolingual LM의 체계적이고 포괄적인 경험적 비교를 제공한다. 또한 기존 방법론들의 경우에는 더 좋은 model을 사용하거나 더 큰 dataset을 사용하는 방식에 집중하는 반면 본 논문은 Tokenizer를 변인으로 지정하고 모델 성능에 미치는 영향을 비교하였다. Monolingual LM : 단일 언어로 학습된 Language Model (ex. BERT, GPT-2) Multilingual LM : 여러 개의 언어로 학습 된 Language Model (ex. mBERT, XLM-R)- Multilingual LM의 capacity가 고정이 되어 있다면 학습하는 언어의 개수를 늘릴 수록 언어 당 할당할 수 있는 공간이 적어지기..
[Paper Review] How good is your tokenizer?본 논문에서는 Pretrain된 multilingual LM과 monolingual LM의 체계적이고 포괄적인 경험적 비교를 제공한다. 또한 기존 방법론들의 경우에는 더 좋은 model을 사용하거나 더 큰 dataset을 사용하는 방식에 집중하는 반면 본 논문은 Tokenizer를 변인으로 지정하고 모델 성능에 미치는 영향을 비교하였다. Monolingual LM : 단일 언어로 학습된 Language Model (ex. BERT, GPT-2) Multilingual LM : 여러 개의 언어로 학습 된 Language Model (ex. mBERT, XLM-R)- Multilingual LM의 capacity가 고정이 되어 있다면 학습하는 언어의 개수를 늘릴 수록 언어 당 할당할 수 있는 공간이 적어지기..
2022.09.13 -
데이터의 계층적인 표현을 학습하는 다층 레이어를 사용하는 딥러닝 기법은 많은 도메인에서 state-of-the-art 결과를 내고 있다. 본 논문은 수많은 NLP 과제에 적용된 딥러닝 모델들과 기법을 살펴보고 비교함으로써 NLP의 과거,현재,미래를 이해해보고자 한다. Ⅰ. Introduction NLP는 인간 언어의 분석과 표현을 자동화하기 위한 계산 기법이다. 지난 수십년간, 머신러닝은 NLP 문제를 풀기위해 고차원이면서 sparse한 feature들을 학습한 얕은 모델(shallow models: SVM, logistic regression, etc..)을 사용했었다. 그리고 최근 수년간, dense vector representation에 기반한 뉴럴 네트워크가 NLP 문제에서 뛰어난 성능을 보여주..
[Paper Review] Recent Trends in Deep Learning Based Natural Language Processing (2017)데이터의 계층적인 표현을 학습하는 다층 레이어를 사용하는 딥러닝 기법은 많은 도메인에서 state-of-the-art 결과를 내고 있다. 본 논문은 수많은 NLP 과제에 적용된 딥러닝 모델들과 기법을 살펴보고 비교함으로써 NLP의 과거,현재,미래를 이해해보고자 한다. Ⅰ. Introduction NLP는 인간 언어의 분석과 표현을 자동화하기 위한 계산 기법이다. 지난 수십년간, 머신러닝은 NLP 문제를 풀기위해 고차원이면서 sparse한 feature들을 학습한 얕은 모델(shallow models: SVM, logistic regression, etc..)을 사용했었다. 그리고 최근 수년간, dense vector representation에 기반한 뉴럴 네트워크가 NLP 문제에서 뛰어난 성능을 보여주..
2022.09.10 -
Automatic Mixed prcision이란, torch에서 몇가지 연산은 torch.float32(FP32, single-precision) 타입을 쓰고 어떤 연산은 torch.float16(FP16, half, half-precision)를 쓴다. 당연하게도 float16이 연산속도가 빠르지만 비정확하다. 그리고 타입이 다른 행렬끼리의 연산은 시간이 오래걸린다. 그래서 Mixed precision learning은 필요에 따라 FP16 연산 혹은 FP32 연산을 혼합하여 모델 학습을 진행하는 것으로 단순히 FP32 연산만을 사용하여 모델 학습하는 것에 비해 메모리 사용 감소, 에너지 사용 감소, 계산 속도 향상의 장점이 있다. torch.cuda.amp.GradScaler( ) FP16 데이터 타..
Automatic Mixed PrecisionAutomatic Mixed prcision이란, torch에서 몇가지 연산은 torch.float32(FP32, single-precision) 타입을 쓰고 어떤 연산은 torch.float16(FP16, half, half-precision)를 쓴다. 당연하게도 float16이 연산속도가 빠르지만 비정확하다. 그리고 타입이 다른 행렬끼리의 연산은 시간이 오래걸린다. 그래서 Mixed precision learning은 필요에 따라 FP16 연산 혹은 FP32 연산을 혼합하여 모델 학습을 진행하는 것으로 단순히 FP32 연산만을 사용하여 모델 학습하는 것에 비해 메모리 사용 감소, 에너지 사용 감소, 계산 속도 향상의 장점이 있다. torch.cuda.amp.GradScaler( ) FP16 데이터 타..
2022.08.01 -
Batch Size가 클수록 forward & backward의 횟수를 줄여주어 학습의 속도를 높여준다. 또한 Batch size에 따라 모델 성능이 달라진다. 작은 batch size는 local minima를 탈출할 수 있다고 알려져있으나 큰 데이터셋에서는 batch size가 클수록 오히려 성능이 높아지는 경우가 있다. → 모델의 성능이 떨어지지않는 한도 내에서 Batch size를 최대로 하여 학습을 빠르게 진행할 수 있다. (SGD를 사용할 경우 LR과 Batch size는 비례 관계를 갖게 되는데 Adam을 사용할 경우 LR을 크게 신경 쓸 필요가 없다.) 그러나 개인 단일 GPU로 학습하는 경우 메모리에 제한이 있어 큰 배치사이즈를 가지지 못하는 문제가 존재한다. 이런 문제를 해결하기 위한 ..
Gradient AccumulationBatch Size가 클수록 forward & backward의 횟수를 줄여주어 학습의 속도를 높여준다. 또한 Batch size에 따라 모델 성능이 달라진다. 작은 batch size는 local minima를 탈출할 수 있다고 알려져있으나 큰 데이터셋에서는 batch size가 클수록 오히려 성능이 높아지는 경우가 있다. → 모델의 성능이 떨어지지않는 한도 내에서 Batch size를 최대로 하여 학습을 빠르게 진행할 수 있다. (SGD를 사용할 경우 LR과 Batch size는 비례 관계를 갖게 되는데 Adam을 사용할 경우 LR을 크게 신경 쓸 필요가 없다.) 그러나 개인 단일 GPU로 학습하는 경우 메모리에 제한이 있어 큰 배치사이즈를 가지지 못하는 문제가 존재한다. 이런 문제를 해결하기 위한 ..
2022.08.01 -
ModelCheckpoint ModelCheckpoint(filepath, monitor='val_loss', verbose=0, save_best_only=False, save_weights_only=False, mode='auto', period=1) filepath : weights.{epoch:02d}-{val_loss:.2f}와 같은 이름으로 설정한다면 epoch와 val_loss를 넣어서 저장할 수 있다. monitor : 모니터링 할 지표 ex) loss save_best_only: 가장 좋은 성능만을 저장할 지 여부 save_weights_only: Weights만 저장할지 여부 mode: 모니터링 할 지표가 감소해야할 경우 min, 증가해야 할 경우 max, auto는 monitor 파라..
Keras Callback - ModelCheckpoint, ReduceLROnPlateau, EarlyStoppingModelCheckpoint ModelCheckpoint(filepath, monitor='val_loss', verbose=0, save_best_only=False, save_weights_only=False, mode='auto', period=1) filepath : weights.{epoch:02d}-{val_loss:.2f}와 같은 이름으로 설정한다면 epoch와 val_loss를 넣어서 저장할 수 있다. monitor : 모니터링 할 지표 ex) loss save_best_only: 가장 좋은 성능만을 저장할 지 여부 save_weights_only: Weights만 저장할지 여부 mode: 모니터링 할 지표가 감소해야할 경우 min, 증가해야 할 경우 max, auto는 monitor 파라..
2022.07.28 -
독일어를 영어로 번역하는 task를 논문의 Sequence to Sequence architecture로 구현하고자 한다. 1. 영어, 독일어 Tokenizer 정의 import spacy spacy_en = spacy.load("en_core_web_sm") spacy_de = spacy.load("nl_core_news_sm") # Tokenizer 함수 정의 def tokenizer_de(text): """ 논문에서 토큰의 순서를 거꾸로 뒤집어서 넣었을 때 성능이 향상됨을 보였으므로 토큰의 순서를 뒤집어서 반환 """ return [token.text for token in spacy_de.tokenizer(text)][::-1] def tokenizer_en(text): return [token...
[Implementation] Sequence to Sequence Learning with Neural Networks독일어를 영어로 번역하는 task를 논문의 Sequence to Sequence architecture로 구현하고자 한다. 1. 영어, 독일어 Tokenizer 정의 import spacy spacy_en = spacy.load("en_core_web_sm") spacy_de = spacy.load("nl_core_news_sm") # Tokenizer 함수 정의 def tokenizer_de(text): """ 논문에서 토큰의 순서를 거꾸로 뒤집어서 넣었을 때 성능이 향상됨을 보였으므로 토큰의 순서를 뒤집어서 반환 """ return [token.text for token in spacy_de.tokenizer(text)][::-1] def tokenizer_en(text): return [token...
2022.07.26