본문 바로가기

전체 글

(38)
Conversation Model Fine-Tuning for Classifying Client Utterances in Counseling Dialogues (Sungjoon Park et al., 2019) Conversation Model Fine-Tuning for Classifying Client Utterances in Counseling Dialogues(Sungjoon Park, Donghyun Kim, Alice Oh)는 2019년 NAACL에 게재된 논문이다. 1) Abstract 최근 텍스트 기반의 온라인 카운셀링이 발달하면서 전문 상담가와 환자의 대화 데이터를 수집 및 분석할 수 있게 되었으며, 이 데이터를 기반으로 환자의 말을 특정 의미있는 카테고리로 분류하는 모델을 만들면 상담가의 상담을 도와줄 수 있다. 이 논문은 이를 위해 1. 상담가와 환자의 대화를 얻었다. 2. 전문 상담가가 환자의 말을 의미있는 카테고리로 분류하였다. 3. ConvMFiT이라는 사전학습된 대화 모델을 제안했으며..
Doc2Vec (PV-DM) 문장들은 모여서 문단을 이루고 하나의 문서가 된다. 이러한 문단(paragraph) 혹은 문서(document)에 대한 representation learning 방법은 굉장히 다양하고 Doc2Vec은 그중 하나 이다. Doc2Vec은 Word2Vec의 확장 개념으로 문서를 임베딩하는 모델이며, 대표적으로는 PV-DM라고 하는 모델이 있다. 이 모델은 아래의 아키텍쳐에서 볼 수 있듯이, 다음 단어를 예측하며 로그 확률 평균을 최대화하는 과정에서 paragraph id에 대한 학습(paragraph representation)과정을 추가하여 paragraph embedding을 한다고 이해할 수 있다. 위의 그림에서 paragraph_id를 나타내는 embedding vector는 해당 paragraph(..
Pytorch로 병렬처리하기 / Multi GPU 사용하기(DataParallel) 딥러닝을 하게되면 GPU를 이용한 연산은 선택이 아닌 필수이다. 딥러닝은 기본적으로 매트릭스 연산 기반이기 때문에 GPU를 사용해야 우리가 감당할 수 있는 연산속도가 나온다. 하지만 딥러닝 모델의 사이즈가 크고 데이터의 양이 너무 많으면, GPU 한 장으로 연산이 힘든 경우가 생긴다. 연산이 너무 오래걸리거나 원하는 Batch_size로는 CUDA OUT OF MEMORY 에러가 떠버리는 현상이 발생하는 것이다. 만약 자신이 GPU 여러 장을 가지고 있다면, 여러 장의 GPU를 이용(병렬처리)해 이를 해결할 수 있다. Pytorch는 여러 장의 GPU를 사용할 수 있도록 병렬처리 기능들을 제공하는데, 이번 글에서는 이에 대해 소개해볼 것이다. 1. torch.nn.DataParallel 단순히 model..
Coreference Resolution 관련 논문 정리(5) - Pre-training Mention Representations in Coreference Models(Yuval Varkel et al., 2020) 상호참조해결 레이블을 얻는 것은 굉장히 어려운 일이다. 특히 한국어는 더 그렇다. 따라서 레이블이 없는 데이터를 최대한 활용해 coreference resolution model의 성능을 올릴 수 있다면 좋을 것이다. 이 논문에서는 그 방법에 대해 설명한다. 1. Introduction 최신 Coreference Resolution 모델들 중 대부분은 mention의 vector representation을 이용해 clustering을 진행한다. 따라서 이 mention representation은 굉장히 중요하다. SpanBERT를 이용해 embedding을 한 모델이 BERT로 embedding을 한 모델보다 성능이 우수하다는 점에서도 이를 알 수 있다. 하지만 BERT든 SpanBERT든 self-..
Coreference Resolution Metrics Key(GOLD) entity의 집합을 K라고 하고, Response(PREDICTED) entity의 집합을 R이라고 하자. 각 개체(Entity)는 한 개 이상의 언급(Mention)을 가진다. 각 메트릭들은 서로 다른 방식으로 Precision과 Recall을 측정한다. 1. MUC - 링크 기반 측정 방법으로 key와 response 각각에 대한 recall과 precision을 측정한다. - Recall : (The number of common links between entities in K and R) / (The number of links in K) - Precision : (The number of common links between entities in K and R) / (The..
BERT for Coreference Resolution 모델코딩 #pytorch #한국어 데이터 셋 총 124개의 서로 다른 주제의 documents 문장들, mention cluster 등이 json 형태로 구성 train data와 validation data의 비율은 8:2로 임의로 배분 이용 버전 torch==1.2.0 transformers==3.0.2 numpy==1.18.1 코드 1 . Config 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 ..
pytorch 모델 재현 가능하도록 만들기 모델은 재현이 가능해야한다. 그래야 내 실험 결과가 거짓이 아니라는 것을 보여줄 수 있고 모델을 최고 성능으로 재사용할 수 있다. 아래의 코드를 통해 모델은 재현이 가능해진다. torch.manual_seed(random_seed) torch.cuda.manual_seed(random_seed) torch.cuda.manual_seed_all(random_seed) # if use multi-GPU torch.backends.cudnn.deterministic = True torch.backends.cudnn.benchmark = False np.random.seed(random_seed) random.seed(random_seed)
Coreference Resolution 관련 논문 정리(4) - SpanBERT : Improving Pretraining by Representing and Predicting Spans(Mandar Joshi et al, 2020) SpanBERT : Improving Pretraining by Representing and Predicting Spans - Mandar Joshi et al, 2020 현재 Coreference Resolution분야에서 OntoNotes Benchmark에 대해 SOTA인 SpanBERT SpanBERT는 BERT large와 동일한 데이터로 학습되며, 파라미터의 개수도 동일하다. 하지만 기존의 BERT보다 Question Answering과 Coreference Resolution 등 여러 TASK에 효과적이다. BERT는 token을 masking한 뒤 masking된 token을 예측하는 방식의 self-supervised pretraining을 진행했다. 하지만 SpanBERT는 spans..