ai (8) 썸네일형 리스트형 Cross-encoder를 사용한 Open Named Entity Recognition 모델 개발 1. Introduction 개체명 인식(Named entity recogntion)은 텍스트에서 사람, 지역, 단위 등과 같은 개체명을 인식하는 문제다. 대부분의 개체명 인식은 미리 정해진 클래스 안에서 개체명을 분류하는 closed-ner 방식으로 이뤄진다. 하지만 closed-ner 방식은 새로운 클래스의 개체명 인식을 위해서 새로 데이터셋을 구축해야 한다는 단점이 있다. 이를 해소하기 위해 최근 새로운 클래스의 개체명도 인식할 수 있는 open-ner 연구가 제안되고 있다. 이 글에서는 cross-encoder 구조를 사용하여 open-ner 모델을 학습하는 방법에 대해 다룬다. 사용한 코드와 모델은 아래 url에서 확인할 수 있다. 코드, 영어 모델, 다국어 모델 2. UniversalNER C.. VIsual LAyout(VILA) 모델로 논문 PDF 파일에서 구조를 추출하는 방법 1. Introduction 논문은 대체로 서론, 관련 연구, 방법론, 실험, 결론과 같은 구조로 구성되어 있다. 하지만 PDF로 배포된 논문에서 위와 같은 구조를 자동으로 파악하는 것은 쉽지 않다. 이러한 문제를 해결하기 위해 다양한 Document-Image Understanding 모델들이 제안되었다. 그 중 VIsual LAyout (VILA) 모델을 사용하여 논문의 구조를 추출하는 과정을 진행해보았다. 2. VILA: VIsual LAyout VILA: Improving structured content extraction from scientific PDFs using visual layout groups 문서의 구조를 인식하는 Document Layout Analysis 문제는 주로 toke.. BERTScore Knowledge Distillation 1. Introduction BERTScore는 pretrained language model을 사용하여 두 문장의 유사도를 측정하는 방법이다. 주로 번역, 요약 등 문장 생성 모델을 평가하는 데 사용한다 [1]. language model의 크기가 클수록 BERTScore와 Human evalution의 상관 관계가 큰 경향이 있다. 하지만 큰 모델은 어플리케이션에서 실시간으로 사용되기 어렵다는 단점이 있다. 이를 해결하고자 Knowledge distillation을 통해 작은 모델이 큰 모델의 BERTScore를 따라하도록 학습시켰다. 결과 모델: yongsun-yoon/minilmv2-bertscore-distilled 2. Setup student model은 경량화된 모델 nreimers/Min.. Maximal Marginal Relevance를 사용한 뉴스 요약 1. Introduction 뉴스를 크롤링하여 주요 문장을 추출하여 요약 Maximal Marginal Relvance(MMR)을 사용한 unsupervised extractive summarization 구현 pretrained sentence transformer를 사용하여 sentence embedding 추출 2. Maximal Marginal Relevance 에서 제안된 방법 Marginal relevance: query와의 relevance가 높고, 이미 선택한 sentence와의 중복도가 낮은 sentence 선택 3. Code load_model 불필요한 모델 로딩을 방지하기 위해 cache 적용 read_article newsplease를 사용하여 뉴스 크롤링 clean_text kiw.. Hydra + Lightning Fabric으로 딥러닝 학습 template 만들기 0. 들어가며 Hydra는 python code의 configuration을 쉽게 관리하기 위한 라이브러리다. Lightning Fabric은 최소한의 코드 변경으로 Pytorch 모델의 효율적인 학습을 도와주는 라이브러리다. Fabric accelerates your PyTorch training or inference code with minimal changes required. Hydra와 Lightning Fabric을 사용하여 딥러닝 학습 코드 template을 만들었다. 예시를 위해 한국어 문장 분류 데이터인 KLUE YNAT 데이터를 사용했다. 1. 설치 hydra와 lightning을 설치한다. pip install hydra-core pip install lightning 2. Conf.. 꼬맨틀 풀이 프로그램 개발 0. 들어가며 꼬맨틀은 word embedding 기반 단어 유사도 추측 게임이다. 내가 입력한 단어와 정답 단어간의 유사도를 통해 정답 단어를 추측한다. facebook에서 공개한 한국어 fasttext 임베딩을 사용하여 꼬맨틀의 정답을 맞히는 프로그램을 개발했다. 1. FastText Facebook에서는 Common Crawl과 Wikipedia를 학습한 157개 언어의 fasttext embedding을 공개했다. url 공개한 모델은 huggingface에서 쉽게 다운로드 받을 수 있다. url code model_path = hf_hub_download(repo_id="facebook/fasttext-ko-vectors", filename="model.bin") model = fasttext... Transformer BERT Fine-tuning: Named Entity Recognition 0. 들어가며 Pretrained BERT를 KLUE NER 데이터셋에 fine-tuning 1. Setup import libraries import easydict import itertools from tqdm import tqdm from sklearn.metrics import f1_score from seqeval.metrics import f1_score as ner_f1_score from seqeval.scheme import IOB2 import torch from datasets import load_dataset from transformers import AutoTokenizer, AutoModelForTokenClassification config cfg = easydict.Ea.. Transformer T5 Fine-tuning: Question Answering 0. 들어가며 pretrained T5 모델을 KorQuAD 데이터로 finetuning하는 방법 1. Setup python libraries import numpy as np from tqdm import tqdm import torch from datasets import load_dataset from transformers import AutoTokenizer, AutoModelForSeq2SeqLM 주요 변수 DEVICE = 'cuda:0' DATA_NAME = 'KETI-AIR/korquad' MODEL_NAME = 'google/mt5-base' SAVE_PATH = 'mt5-base-korquad' BATCH_SIZE = 4 LEARNING_RATE = 1e-4 NUM_TRAINING_S.. 이전 1 다음