Blog Category

NLP

QA with Phrase Retrieval

Phrase Retrieval in ODQA Current limitation of Retriever-Reader ODQA Error propagation Reader가 아무리 뛰어나도 Retreiver가 제대로 된 context를 전달하지 못한다면 전체 ...

Dense Embedding

Sparse Embedding의 문제점 Passage Embedding 중 Spare Embedding은 보통 90% 이상의 벡터값들이 0이다. 차원의 수가 매우 크다. compressed format으로 극복 가능 유사성을 고려하지...

Passage Retrieval

Passage Retrieval query에 맞는 문서(Passage)를 검색(Retrieval)하는 것.

Generation-based MRC

Generation-based MRC context와 question을 보고 답변을 생성하는 task. Extraction-based MRC가 context의 token별로 정답 확률을 추출했다면, Genration-based는 이름처럼 Generation task다.

Extraction-Based MRC

Extraction-Based MRC 질문의 답변이 항상 주어진 지문(context)내에 span으로 존재. 답변을 생성하지 않고 답변을 context에서 찾는 것으로 문제를 좁힐 수 있다. e.g.,) SQuAD, KorQuAD, NewsQA, Natural Questions

최신 모델

XLNet 기존의 모델들의 문제점 BERT [MASK] 토큰을 독립적으로 예측하기 때문에 Token 사이의 관계 학습이 불가능 Embedding length의 한계로 Segment간 관계 학습 불가능 GPT ...

GPT 언어 모델

BERT: embedding 모델 Transformer encoder 사용 GPT: 생성 모델 Transformer decoder 사용 GPT 개요

MRC

MRC 기계독해. Machine reading comprehension. 주어진 지문(context)를 이해하고, 질의(Query/Question)의 답변을 추론하는 task.

BERT 두 문장 관계 분류 task

두 문장 관계 분류 task 주어진 2개의 문장에 대해, 두 문장의 자연어 추론과 의미론적인 유사성을 측정하는 task.

Training BERT

Process Create Tokenizer Make Dataset NSP(Next Sentence Prediction) Masking

BERT 응용

주재걸 교수님 강의에서 길게 풀어썻던 내용들이다. 스마게 김성현 강사님의 수업과 함께 BERT 모델을 다시 요약해보자.

Transformer 실습

SDPA Scaled Dot-Product Attention. transformer를 배우면서 attention이 1개만 존재했던 그 모델이다.

Transformer

Background 기존의 rnn들도 sequence data들을 다룰 수 있지만, 위와 같이 원본 데이터에서 일부 데이터가 빠진 sequence data들에 대해서 다루기는 매우 어려웠다.

Back to top ↑

Algorithm

[프로그래머스] 튜플

https://programmers.co.kr/learn/courses/30/lessons/64065 ref: https://hazung.tistory.com/103

[백준] Z

https://www.acmicpc.net/problem/1074

[백준] 2048 (Easy)

ref blog 문제 우리가 흔히 아는 그 게임이다. 다만 제약조건이 추가된다. 한 번의 이동에서 이미 합쳐진 블록은 다시 못 합침 3개 이상의 블럭이 합쳐질 수 있다면, 이동하는 방향에 가장 가까운 것들부터 합친다. e.g., 위로 이동하는거면 위에 ...

[프로그래머스] 타겟 넘버(python)

문제 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 =...

Back to top ↑

ML-Basic

Reducing Training Bias

Definition of Bias Bias는 지양대상이 아니다. 하지만 일부 bias로 인해 모델의 성능에 악영향을 끼치는 경우가 있고, 이러한 bias issue는 해결해야 한다. ML/DL inductive bias(ref) ...

Ensemble

필드에서는 앙상블을 시도하기 위한 노력을 모델과 학습 파이프라인을 최적화시키는데 사용한다고 한다. 하지만 competition에서는 소수점 한자리 이하의 싸움이 있기 때문에 앙상블을 활용해서 점수를 올리는 것이 중요하다.

Training proecss

Gradient Accumulation gpu가 좋은 상황이 아닐 경우 사용할만한 방법이다.

추가적인 학습 기법들

amp nvidia에서 torch에 넣어준 그 ‘amp’다. FP16으로 계산하게 해준다 해서 사용할 계획.

parameter 수

수업을 기준으로 하는 2020년에는 parameter의 수를 줄이는 것이 관건이라고 했다. 왜냐하면 그럴수록 학습이 잘되고 일반적인 성능을 올리거나 generalize performance에도 좋다.

Optimizer 실습

colab 설정 %config InlineBackend.figure_format='retina' matplotlib와 같은 출력물의 해상도를 retina로 설정

NN & Multi layer perceptron

Neural Networks 인간이 가진 뇌의 신경망을 모방했기 때문에 잘 작동한다고도 한다. 어느 정도 맞는 말이다. 실제 뉴런의 형태를 모방해서 구현된 것이 NN의 node와 흡사하다.

DL

DL 모호하게 알고 있던 내용들을 부캠강의에서 명료하게 정리해줬다. 당연한 이야기들도 많은데 그냥 다 정리했다.

RNN

RNN 시퀸스 데이터(sequence) 소리, 문자열, 주가 등 순차적으로 진행되어야 하는 데이터. 독립동등분포(iid, independent and identically distributed)를 위배하기 쉽다. 가령, ‘개가 사람을 물었다’와 ‘사람이...

Gradient descent 증명

이 또한 notion에 여러번 정리했엇던 내용이다. 부캠에서 배운 내용만을 기준으로 재정리해봤다.

Gradient descent 기본

여러번 notion에 정리했던 내용인데 부캠에서 배운 내용 중심으로 다시 정리해봤다.

Matrix, Vector

Matrix 1학년 공수, 선대 이후로 수학 지식들이 삭제됐다.. 되새기는 겸으로 numpy 기호들과 기록.

Back to top ↑

NLP-Theory

NLP 헷갈렸던 점들

argmax, multinomial nlp 모델의 출력에 대해 argmax를 쓰지 않는 이유는 자명하다. 왜냐하면 argmax는 classification과 같이 모델의 출력이 하나의 답을 얻도록 유도하기 때문이다.

Recent trends of NLP

Question Anwering BERT, GPT와 같은 self-supervised learning의 가장 큰 수혜자라고 할 수 있는 영역이다.

Advanced Self-supervised Pre-training model

GPT-2 GPT-1과 기본적인 구조는 같다. Transformer layer를 보다 더 많이 쌓았다. 다음 단어를 예측하는 task로 학습을 진행. 더 많은 학습 데이터 사용 보다 양질의 데이터 사용 zero-shot settin...

Self-supervised Pre-training models

Recent trends transformer, self-attention은 기계번역 외의 분야에서도 쓰이고 있다! transformer 논문에서 제시된 것처럼 6개의 transformer를 쌓지 않고 12개, 24개 혹은 그 이상으로 쌓는 것만으로도 성능 향상이 있는 것...

Transformer 도입

‘Attention is all you need’(2017) 논문 이전의 attention은 LSTM, GRU에 add-on처럼 쓰일 뿐이었다. 해당 논문에서는 기존의 RNN 모델을 걷어내고 attention을 사용한 새로운 Seq2Seq 모델을 제시했다.

BLEU

일반적인 precision이나 recall을 계산하면 Seq2Seq에서는 모든 지표가 0에 가까울 것이다. 왜냐하면 step별로 비교하면 대부분 일치하지 않을 확률이 매우 높기 때문이다. 즉, 아래처럼 굉장히 유사한 문장의 지표가 0에 가깝게 나올 수도 있다.

Beam search

Greedy decoding 이전 포스팅의 attention이나 LSTM들은 특정 step에서 다음 단어를 예측할 때, 가장 확률이 높은 하나의 단어를 선택한다. 이러한 방법을 greedy decoding이라고 한다.

Attention

Seq2Seq with attention Seq2Seq with LSTM Seq2Seq는 RNN의 구조 중 many to many에 해당한다. 즉, 입출력 모두 sequenece인 word 단위의 문장.

LSTM, GRU

LSTM Long short-term memory.

RNNs

RNN

NLP 전처리

불용어(stopword) ref: https://bkshin.tistory.com/entry/NLP-3-%EB%B6%88%EC%9A%A9%EC%96%B4Stop-word-%EC%A0%9C%EA%B1%B0 분석에 큰 의미가 없는 단어들. a, an, the와 같은 관사나 I, my ...

Word Embedding

Word Embedding 문장의 단어들을 벡터 공간 상의 점으로 표현하기 위해, 단어들을 벡터로 변환하는 방법.

Bag-of-Words

Bag-of-Words 딥러닝 이전에 단어를 숫자로 나타내는 기법.

NLP 개요

NLP(Natural language processing) NLU와 NLG로 나뉜다. NLU(Natural language understanding): 언어에서 의도한 바를 이해하는 것 NLG(Natural language generation): machine이 nl을 어...

Back to top ↑

Pytorch

pathlib

pathlib ref: https://brownbears.tistory.com/415

pytorch transfer

model 자체 코딩보다는 모델을 어떻게 다룰 것인지.

pytorch dataset, dataloader

졸업프로젝트 때 직접 dataset, dataloader를 구현했었는데 시간에 쫓겨서 개발한지라 정말 개발새발로 내 기억 속에 남아있다.. 이 참에 헷갈리거나 몰랐던 내용들 위주로 정리해봤다.

pytorch apply

nn.Module의 모든 하위 모듈들에 일괄적으로 적용하고 싶은 함수를 map과 같이 적용시켜주는 함수다.

pytorch hook

고등학생 때 DLL injection으로 피카츄 배구 해킹같은걸 했었는데, 그 때 사용했던 기법들이 일종의 hooking이다. 그런 기법들을 공식적으로 pytorch의 nn.Module에서 지원해준다.

pytorch template, tip

Template 지금까지 졸업프로젝트, 회사 인턴이나 알바들을 할 때 tf도 쓰고 pytroch도 썻지만 template이란 것들 정해두고 쓰지 않았다. 중구난방하게 필요에 따라서 디렉터리와 스크립트를 추가하고 분리하고 구현하고…

pytorch

init parameters pytorch에서 자동으로 해주기는한다. 하지만 수동으로 parameter를 원하는대로 초기화해야하는 경우가 분명 발생한다. 이를 수동으로 해결하는 방법은 기본적으로 아래와 같다.

Back to top ↑

Competition

Kaggle dataset

kaggle notebook을 안쓰고 개인 서버에서 train 해보려면 kaggle dataset을 전부 서버에 받아야한다. 대회에서 제공해주는 train/test 파일들만 쓴다면 kaggle api를 쓸 필요까지 없다.

Kaggle tip

경진대회 플랫폼 Kaggle 카카오 아레나: 계열사 전용이라고 한다. 데이콘: public 대회. Kaggle 스타일이 적용되는 중이라고 한다.

첫번째 Ai Competition 마무리

2주간의 짧은 시간이었지만, 계속 밤을 샜던지라 4주와도 같았던 시간이었다. 그 동안 시도했던 내용들, 다른 사람들이 사용했던 방법들을 정리해봤다.

마지막 점수 올리기

대회 막바지에 점수를 올리기 위해 사용했던 기법들이다. 극적인 성능 향상은 아니고 점수 굳히기 느낌이었다.

ai competition

접근방법 대회 시작하자마자 데이터 열어보지말고 overview check. EDA(Exploratory Data Analysis) 탐색적 데이터 탐색. input이 될 X에 대한 분석 target이 될 y에 대한 분석 X, y관계를 확인할 수 ...

Back to top ↑

Computer-Vision

Transformation(Albumentation)

Albumentation 속도, 다양성 면에서 pytorch 내장 transformation보다 좋길래 사용했다.

CutMix vertical

CutMix 본래 cutmix는 랜덤하게 이미지 패치를 샘플링한다. 해당 방식이 마스크 이미지에선느 썩 효과적이지 못할 수도 있다. 마스크를 착용여부, 성별, 나이를 알기 위해서는 얼굴만 detection해서 patch를 하는것이 가장 효과적일 것이다. 따라서 랜덤하게 패치하고자...

CutMix

CutMix https://hongl.tistory.com/223 random crop보다 효과 있다는 CutMix를 사용하기로 했다.

Generative model - 2

Latent Variable Models D.Kingma가 만든 모델이라고 한다. Adam, varitaional auto-encoder도 만든 대단한 분이라고 한다…

Back to top ↑

MLOps

Airflow and Kubernetes

ref: Line Engineering Blog - Airflow Kubernetes - 1, Line Engineering Blog - Airflow Kubernetes - 2

Full stack ML Engineer

ML Engineer ML/DL을 이해, 연구하고 Product을 만드는 Engineer.

AI model as Service

AI model as Researching Imagenet처럼 데이터셋이 명확하고, 이를 해결하기 위한 모델링에 집중한다.

MLOps 정리

MLOps framerwork, tool 부스트캠프에서 사용해볼만한 MLOps framerwork, tool. 필요한 것만 써보자.

Back to top ↑

Python

python3 container

huggingface나 코테에서 활용되는 python built-in container들을 정리했다. collections UserDict Docs 일반적인 python의 dictionary와 동일하다. 상속받거나 객체로써 다루기 쉽도록 만든 단순한 wrapper다.

tqdm with epoch statics

tqdm을 쓰면 원래 accuracy나 loss를 따로 찍어줘야한다. tqdm 내에서만 사용되는 변수를 update하는 것으로 이걸 해결해볼 수 있다. https://adamoudad.github.io/posts/progress_bar_with_tqdm/

Python decorator, property

@property decorator class의 getter, setter를 쉽게 사용 가능하게 해준다. 일반적인 getter, setter와 동일하게 제한, 하위호환성 등을 고려할 수 있다.

Back to top ↑

Visualization

facet

Facet 분할. 즉, 하나의 데이터 셋에 대해서 서로 다른 방법으로 시각화를 하는 것. 서로 다른 인코딩을 통한 다른 인사이트 같은 방법으로 동시에 여러 feature 보기 큰 관점, 작은 관점 등…

color

실습에 사용된 코드가 너무 많아, 코드 관련된 내용은 쥬피터 노트북에만 정리해놨다.

Bar plot

한번 봤던 내용들인데 복습 차 필사했다.

데이터 시각화

Data viz 데이터 시각화를 진행할 데이터 데이터셋 관점(global) 개별 데이터의 관점(local)

Back to top ↑

blog-building

Back to top ↑

ML-Math

베이즈 통계학

이것도 고등학교 때 배운 내용들이 많은데 까먹은 것도 많다…

통계론

통계론 모수 통계적 모델링 = 적절한 가정으로 확률 분포를 추정하는 것 기계학습과 통계학이 공통적으로 추구하는 목표.

확률론

작년에 lieklihood 관련해서 정리하면서도 이해가 잘 되지 않았던 내용들이다. 부캠 내용들 위주로 다시 재정리했다.

Back to top ↑

Computer Vision

CNN key concept

CNN ILSVRC ImageNet Large-Scale Visual Recognition Chagllenge Classification, Detection, Localization, Segmentation 1000 different categories

weight init

다른 캠퍼분이 정리해주신 내용이 있는데 공유한다. https://velog.io/@hanlyang0522/weight-init%EC%9D%84-%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0

Back to top ↑

GPU

nvidia-driver

부스트캠프에서 받은 서버와 aihub에서 받은 서버 2개를 사용 중인데, 종종 nvidia driver가 안 잡히는 문제가 있다.

Trouble shooting

GPUUtil nvidia-smi같은 모듈 gpu, mem 통계를 지속적으로 콘솔에 찍어준다.

Multi gpu

node system과 동일하게 쓰이는 용어

Back to top ↑

python

Python nested function

Nested function by decorator Nested function 함수를 중첩하여 사용가능하다. 일차원적으로 함수를 나열하는 것이 아니라, 복잡한 구조의 함수 결합체를 생성 가능.

Back to top ↑

AI

AI & Ethics

Bias 미국 Northpointe社의 재범가능성(recidivism)을 예측하는 COMPAS는 아래와 같이 인종, 성별에 관해서 편향된 추측을 하는 경향과 법률적 근거가 모호해 폐기된 전례가 있다.

AI 저작권법

개인적인 연구가 아니라 공개를 목적으로 한 프로젝트에서는 데이터의 저작권과 라이센스를 중요하게 다뤄야한다.

Back to top ↑

Linux

Linux server sleep

ref: https://www.unixtutorial.org/disable-sleep-on-ubuntu-server/

Back to top ↑

ML-Lightweight

경량화 대회

경량화의 관점 모델 크기(=파라미터 수)를 줄이자 속도를 빠르게만 해보자 연산횟수를 작게 바꿔보자

경량화 overview

Goal On device AI 사용자 개인 기기에 탑재되는 모델들이 가지는 제한사항을 극복 power usage RAM Storage Computing power AI on cloud ...

Back to top ↑

mac

Back to top ↑

Pandas

pandas

쓸 때마다 쓰기 싫고 사용법 익히자마자 잊어버리는 pandas다. 까먹지 않게 정리해둔다.

Back to top ↑

RL

Back to top ↑

Quant-Trading

Back to top ↑

Computer-Science

Regex 연습

import re password_checker = re.compile("^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*])[A-Za-z\d!@#$%^&*]{8,30}$" ) mat = re.search(password_checke...

Back to top ↑

AutoML

AutoML

Data Engineering Data Cleansing, Preprocessing Feature Engineering Select ML Algorithm DL: Select Backbone Model Set Hyperparamet...

Back to top ↑

ML-Engineering

Back to top ↑

Generative-model

Back to top ↑

gpu

Back to top ↑