전체 글 84

T5 : Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer [arXiv 2019]

논문의 제목보다 이름으로 유명한 T5 모델의 제안 논문입니다. T5 라는 이름은 Text-to-Text Transfer Transformer 에 T가 5개 있어서 저 이름을 요약한 이름입니다. 즉, Text-to-text 전이학습 트랜스포머 라는 이름이죠. T5는 구글이 개발한 자연어 처리 모델입니다. 이름에서도 유추할 수 있겠지만 Transfer learning을 한다는 것은 다양한 task에 접목시킬 수 있다는 것을 의미하죠. 기계 번역, 질의 응답, 요약, 문장 생성 등 다양한 NLP Task에서 좋은 성능을 보입니다. Transformer 아키텍처를 기반으로 입출력이 text인 일반적인 프레임워크를 가집니다. 이 논문은 여러 방법들에 대한 비교를 보여주는 논문이라 양이 많기 때문에 전체적으로 정리..

LoRA: Low-Rank Adaptation of Large Language Models (ICLR 2022)

LoRA(Low-Rank Adaptation) 은 PEFT(Parameter Efficient Fine Tuning) 기법 중 대표적인 예시로, pretrained model의 모든 weight를 fine-tuning 하는 방법 대신 pretrained model weight를 모두 freeze하고, downstream task를 수행하기 위해 학습이 가능한 rank decomposition matrice를 추가함으로써 효율적으로 fine-tuning하는 방법을 제안하는 논문입니다. 기존의 PEFT를 위해 제안되었던 방법들은 adapters를 사용하는 것이었습니다. 여기서 말하는 adapters란 이미 학습이 완료된 모델, pre-trained model의 사이사이에 학습 가능한 작은 feed-forwa..

ToTTo: A Controlled Table-To-Text Generation Dataset (EMNLP 2020)

구글 리서치에서 발표한 ToTTo 데이터셋에 대한 논문입니다. Table-to-Text generation 을 위한 데이터셋인데, 기존의 데이터셋을 이용한 텍스트 요약, Data-to-text dataset 등에서는 할루시네이션을 잘 일으킨다는 문제가 있었습니다. 이 때 할루시네이션은 맥락 상 말도 안되는 내용을 쓴다기 보다는 원문(source)에 충실하지 않은 텍스트 생성을 전반적으로 의미합니다. 이 할루시네이션 때문에 의료와 같이 높은 정확도가 요구되는 응용 분야에서는 사용 못하게 될 수도 있죠. Wikibio 데이터셋에 대한 베이스라인 신경망 모델의 예측 결과입니다. 벨기에 축구 스타디움에 대한 infobox 항목을 요약하는데, 피겨스케이트 선수라고 잘못 요약한 것을 확인할 수 있습니다. 이 같은 ..

Table-to-Text Generation with Effective Hierarchical Encoder on Three Dimensions (Row, Column and Time) (IJCNLP 2019 )

Table-to-Text generation을 위한 Efficient Hierachical Encoder을 제안하는 논문입니다. 이번 논문의 모델은 3개의 Layer로 구성되어 있습니다. 1) Record Encoder 2) Record Fusion gate 3) Row-level Encoder (content selection gate) 로 구성됩니다. 1) 행 차원, 열 차원, 시간 차원 총 3차원에 대해 self-attention 등의 기법을 사용해 정보를 추출하여 각 context vector 생성 2) 이를 Record Fusion gate에서 통합하여 하나의 Cell representation을 만듭니다. 3) Row-level Encoder에서는 Cell representation 들에 대해..

Generative model vs Discriminative model (생성 모델과 판별 모델)

이번 포스팅에서는 Generative / Discriminative model이 무엇이고, 이 둘의 차이점에 대해 다룹니다. 머신러닝 모델은 크게 2가지 타입, Generative model과 Discriminative model로 분류될 수 있습니다. 우리는 이미 이런 모델들을 사용해 이미지를 생성하기도 하고, 자연어를 처리하기도 하고, 객체 탐지나 세그멘테이션 등 꽤 어려운 task들을 수행해내고 있습니다. 그러나 근본적으로, 이 2개의 용어는 통계적인 분류 문제에 대한 모델을 설명하는 것에서 정의됩니다. Classification 의 정의를, 위 그림에 맞게 다시 설명해봅시다. 각 데이터 $X$가 있고, 레이블된 클래스 값 $Y$가 존재합니다. Classification는 입력 데이터를 사전에 정의..

A Survey of Large Language Models in Medicine: Principles, Applications, and Challenges (Nature medicine 2023)

AI의 응용분야 중 다양한 접목 시도를 하고 있는 분야로 의료분야가 있습니다. 오늘의 논문은 LLM을 어떻게 의료 현장에서 사용하는지에 대한 응용, 원리, 해결해야 하는 과제 등을 전체적으로 다룬 리뷰 논문입니다. 전반적인 내용을 다루는 만큼 목차가 길기 때문에 원하는 부분에 대해 하이퍼 링크 부분을 참고해주시면 되겠습니다. 1. Introduction 2. The Principles of Medical Large Language Models 2.1 Pre-training 2.2 Fine-tuning 2.3 Prompting 3. Biomedical NLP Tasks 3.1 Discriminative Tasks 3.2 Generative Tasks 3.3 Performance Comparisons 4. ..

MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications (CVPR 2017)

이번 논문은 모바일 또는 임베디드 같은 소형 컴퓨터에서 사용할 수 있도록 경량화된 모델인 MobileNetV1 을 소개합니다. 어떻게 경량화했는가? 가 핵심 아이디어인데, Depthwise separable convolution 을 사용하여 모델의 성능을 크게 줄이지 않으면서 크게 경량화 시킨 논문입니다. MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications Abstract 본 논문에서는 모바일 및 임베디드 비전 어플리케이션을 위한 MobileNets 라는 효율적인 모델 클래스를 제안합니다. MobileNets는 depth-wise separable convolution을 사용해 신경망을 구축한 간소화된 아키텍..

BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding (NAACL 2019)

BERT 이전 기존 NLP에서도 Pre-trained 된 모델을 Fine-tuning 사용하는 기법은 존재했지만, Pre-train에서 양방향이 아닌 단방향의 아키텍처만 사용할 수 있다는 한계점이 있었습니다. 그러나 기존 모델들은 LSTM이나 RNN처럼 문장을 학습할 때 순차적으로(Left to Right) 읽을 수 밖에 없다는 문제점을 지니고 있었습니다. 단어 임베딩의 경우 Transformer를 사용해 Attention을 통해 관계성에 대해서는 잘 파악하도록 만들어낼 수 있지만, 결국 예측시에는 단방향으로 읽어 예측해야하기 때문에 이전 토큰만 참조할 수 있다는 단점이 있습니다. 따라서 이전 논문들은 양방향에서의 문맥 정보가 모두 중요한 token-level task에서 좋은 성능을 보이지 못했는데 이..

BFS 를 사용해 미로의 최단 경로 출력하기

미로 찾기 문제는 대표적인 스택과 큐의 응용 예제입니다. Ex. 7*15 미로 0 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 0 1 1 1 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 1 1 1 1 0 1 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 0 1 0 1 1은 벽이고, 0은 이동할 수 있는 길입니다. 이 문제의 경우 동서남북만 이동할 수 있는 것이 아니라 아래 처럼 8방향으로 모두 이동이 가능합니다. 실제 미로는 테두리로 1을 삥 두를 것이기 때문에 미로를 저장하는 배열은 maze[7][15] 이 아닌 maz..

Container class - Bag, Stack, Queue C++ pesudo code

컨테이너 클래스(Container class)란 다수의 데이터 객체들을 수용 또는 저장하는 자료 구조를 표현하는 클래스 를 말합니다. 컨테이너 클래스는 일반적으로 객체들을 삽입하거나 삭제할 수 있으며, 앞에서 보았던 배열도 컨테이너 클래스의 일종입니다. 앞으로 여러 형태의 컨테이너 클래스들을 보게 될텐데, 오늘은 C++ pesudo code 를 위주로 Bag, Stack, Queue 를 확인해보도록 하겠습니다. 각 개념에 대한 설명은 C 자료구조에서 자세히 해놨기 때문에 링크만 걸고 코드 위주로 보겠습니다. Bag 클래스란 이름 그대로 가방입니다. 삽입(Push)하고, 삭제(Pop)하고, 비었는지 확인하고(IsEmpty), 안에 몇 개가 들어가 있는지를 확인(Size)하는 기능이 담겨 있습니다. 템플릿 ..

728x90