Retrieval-Augmented Diffusion model
Review of Retrieval-Augmented Diffusion model paper
Review of Retrieval-Augmented Diffusion model paper
Clinical NLP model
Paper review of condenser and coCondenser
Phrase Retrieval in ODQA Current limitation of Retriever-Reader ODQA Error propagation Reader가 아무리 뛰어나도 Retreiver가 제대로 된 context를 전달하지 못한다면 전체 ...
기존의 negative sampling
Open Domain Question Answering(ODQA)
Passage retrieal and Similarity Search
Sparse Embedding의 문제점 Passage Embedding 중 Spare Embedding은 보통 90% 이상의 벡터값들이 0이다. 차원의 수가 매우 크다. compressed format으로 극복 가능 유사성을 고려하지...
Passage Retrieval query에 맞는 문서(Passage)를 검색(Retrieval)하는 것.
Generation-based MRC context와 question을 보고 답변을 생성하는 task. Extraction-based MRC가 context의 token별로 정답 확률을 추출했다면, Genration-based는 이름처럼 Generation task다.
Extraction-Based MRC 질문의 답변이 항상 주어진 지문(context)내에 span으로 존재. 답변을 생성하지 않고 답변을 context에서 찾는 것으로 문제를 좁힐 수 있다. e.g.,) SQuAD, KorQuAD, NewsQA, Natural Questions
XLNet 기존의 모델들의 문제점 BERT [MASK] 토큰을 독립적으로 예측하기 때문에 Token 사이의 관계 학습이 불가능 Embedding length의 한계로 Segment간 관계 학습 불가능 GPT ...
BERT: embedding 모델 Transformer encoder 사용 GPT: 생성 모델 Transformer decoder 사용 GPT 개요
Unicode e.g., U+AC00
MRC 기계독해. Machine reading comprehension. 주어진 지문(context)를 이해하고, 질의(Query/Question)의 답변을 추론하는 task.
모델
의존 구문 분석
두 문장 관계 분류 task 주어진 2개의 문장에 대해, 두 문장의 자연어 추론과 의미론적인 유사성을 측정하는 task.
Process Create Tokenizer Make Dataset NSP(Next Sentence Prediction) Masking
주재걸 교수님 강의에서 길게 풀어썻던 내용들이다. 스마게 김성현 강사님의 수업과 함께 BERT 모델을 다시 요약해보자.
Language modeling Seq2Seq task다. 주어진 문맥을 활용해 다음 단어를 예측하는 task.
SDPA Scaled Dot-Product Attention. transformer를 배우면서 attention이 1개만 존재했던 그 모델이다.
Background 기존의 rnn들도 sequence data들을 다룰 수 있지만, 위와 같이 원본 데이터에서 일부 데이터가 빠진 sequence data들에 대해서 다루기는 매우 어려웠다.
https://programmers.co.kr/learn/courses/30/lessons/64065 ref: https://hazung.tistory.com/103
https://programmers.co.kr/learn/courses/30/lessons/77484?language=cpp
https://programmers.co.kr/learn/courses/30/lessons/92334?language=cpp ref: https://wadekang.tistory.com/6 C++ 재활 unordered_map<T, T> map과...
https://www.hackerrank.com/challenges/torque-and-development/problem
https://www.hackerrank.com/challenges/sherlock-and-cost/problem
https://www.hackerrank.com/challenges/climbing-the-leaderboard/problem
https://programmers.co.kr/learn/courses/30/lessons/60057
https://programmers.co.kr/learn/courses/30/lessons/49189
https://www.acmicpc.net/problem/1074
https://www.acmicpc.net/problem/2026
https://www.acmicpc.net/problem/1759
https://programmers.co.kr/learn/courses/30/lessons/12981
https://www.acmicpc.net/problem/14891
https://programmers.co.kr/learn/courses/30/lessons/43236?language=python3
https://programmers.co.kr/learn/courses/30/lessons/42885
https://programmers.co.kr/learn/courses/30/lessons/42747
https://programmers.co.kr/learn/courses/30/lessons/42578
https://programmers.co.kr/learn/courses/30/lessons/42577
https://programmers.co.kr/learn/courses/30/lessons/43238
ref blog 문제 우리가 흔히 아는 그 게임이다. 다만 제약조건이 추가된다. 한 번의 이동에서 이미 합쳐진 블록은 다시 못 합침 3개 이상의 블럭이 합쳐질 수 있다면, 이동하는 방향에 가장 가까운 것들부터 합친다. e.g., 위로 이동하는거면 위에 ...
https://programmers.co.kr/learn/courses/30/lessons/43163
https://www.acmicpc.net/problem/17297
문제 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 =...
Definition of Bias Bias는 지양대상이 아니다. 하지만 일부 bias로 인해 모델의 성능에 악영향을 끼치는 경우가 있고, 이러한 bias issue는 해결해야 한다. ML/DL inductive bias(ref) ...
필드에서는 앙상블을 시도하기 위한 노력을 모델과 학습 파이프라인을 최적화시키는데 사용한다고 한다. 하지만 competition에서는 소수점 한자리 이하의 싸움이 있기 때문에 앙상블을 활용해서 점수를 올리는 것이 중요하다.
Gradient Accumulation gpu가 좋은 상황이 아닐 경우 사용할만한 방법이다.
amp nvidia에서 torch에 넣어준 그 ‘amp’다. FP16으로 계산하게 해준다 해서 사용할 계획.
그 동안 헷갈리고 모호하게 알고 있던 내용들을 정리했다.
Hyperparameter tuning
수업을 기준으로 하는 2020년에는 parameter의 수를 줄이는 것이 관건이라고 했다. 왜냐하면 그럴수록 학습이 잘되고 일반적인 성능을 올리거나 generalize performance에도 좋다.
colab 설정 %config InlineBackend.figure_format='retina' matplotlib와 같은 출력물의 해상도를 retina로 설정
Neural Networks 인간이 가진 뇌의 신경망을 모방했기 때문에 잘 작동한다고도 한다. 어느 정도 맞는 말이다. 실제 뉴런의 형태를 모방해서 구현된 것이 NN의 node와 흡사하다.
DL 모호하게 알고 있던 내용들을 부캠강의에서 명료하게 정리해줬다. 당연한 이야기들도 많은데 그냥 다 정리했다.
RNN 시퀸스 데이터(sequence) 소리, 문자열, 주가 등 순차적으로 진행되어야 하는 데이터. 독립동등분포(iid, independent and identically distributed)를 위배하기 쉽다. 가령, ‘개가 사람을 물었다’와 ‘사람이...
Neural network
이 또한 notion에 여러번 정리했엇던 내용이다. 부캠에서 배운 내용만을 기준으로 재정리해봤다.
여러번 notion에 정리했던 내용인데 부캠에서 배운 내용 중심으로 다시 정리해봤다.
Matrix 1학년 공수, 선대 이후로 수학 지식들이 삭제됐다.. 되새기는 겸으로 numpy 기호들과 기록.
argmax, multinomial nlp 모델의 출력에 대해 argmax를 쓰지 않는 이유는 자명하다. 왜냐하면 argmax는 classification과 같이 모델의 출력이 하나의 답을 얻도록 유도하기 때문이다.
Question Anwering BERT, GPT와 같은 self-supervised learning의 가장 큰 수혜자라고 할 수 있는 영역이다.
GPT-2 GPT-1과 기본적인 구조는 같다. Transformer layer를 보다 더 많이 쌓았다. 다음 단어를 예측하는 task로 학습을 진행. 더 많은 학습 데이터 사용 보다 양질의 데이터 사용 zero-shot settin...
Recent trends transformer, self-attention은 기계번역 외의 분야에서도 쓰이고 있다! transformer 논문에서 제시된 것처럼 6개의 transformer를 쌓지 않고 12개, 24개 혹은 그 이상으로 쌓는 것만으로도 성능 향상이 있는 것...
‘Attention is all you need’(2017) 논문 이전의 attention은 LSTM, GRU에 add-on처럼 쓰일 뿐이었다. 해당 논문에서는 기존의 RNN 모델을 걷어내고 attention을 사용한 새로운 Seq2Seq 모델을 제시했다.
일반적인 precision이나 recall을 계산하면 Seq2Seq에서는 모든 지표가 0에 가까울 것이다. 왜냐하면 step별로 비교하면 대부분 일치하지 않을 확률이 매우 높기 때문이다. 즉, 아래처럼 굉장히 유사한 문장의 지표가 0에 가깝게 나올 수도 있다.
Greedy decoding 이전 포스팅의 attention이나 LSTM들은 특정 step에서 다음 단어를 예측할 때, 가장 확률이 높은 하나의 단어를 선택한다. 이러한 방법을 greedy decoding이라고 한다.
Seq2Seq with attention Seq2Seq with LSTM Seq2Seq는 RNN의 구조 중 many to many에 해당한다. 즉, 입출력 모두 sequenece인 word 단위의 문장.
LSTM Long short-term memory.
RNN
불용어(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 문장의 단어들을 벡터 공간 상의 점으로 표현하기 위해, 단어들을 벡터로 변환하는 방법.
Bag-of-Words 딥러닝 이전에 단어를 숫자로 나타내는 기법.
NLP(Natural language processing) NLU와 NLG로 나뉜다. NLU(Natural language understanding): 언어에서 의도한 바를 이해하는 것 NLG(Natural language generation): machine이 nl을 어...
pathlib ref: https://brownbears.tistory.com/415
model 자체 코딩보다는 모델을 어떻게 다룰 것인지.
졸업프로젝트 때 직접 dataset, dataloader를 구현했었는데 시간에 쫓겨서 개발한지라 정말 개발새발로 내 기억 속에 남아있다.. 이 참에 헷갈리거나 몰랐던 내용들 위주로 정리해봤다.
nn.Module의 모든 하위 모듈들에 일괄적으로 적용하고 싶은 함수를 map과 같이 적용시켜주는 함수다.
고등학생 때 DLL injection으로 피카츄 배구 해킹같은걸 했었는데, 그 때 사용했던 기법들이 일종의 hooking이다. 그런 기법들을 공식적으로 pytorch의 nn.Module에서 지원해준다.
Template 지금까지 졸업프로젝트, 회사 인턴이나 알바들을 할 때 tf도 쓰고 pytroch도 썻지만 template이란 것들 정해두고 쓰지 않았다. 중구난방하게 필요에 따라서 디렉터리와 스크립트를 추가하고 분리하고 구현하고…
numpy와 비슷하다.
init parameters pytorch에서 자동으로 해주기는한다. 하지만 수동으로 parameter를 원하는대로 초기화해야하는 경우가 분명 발생한다. 이를 수동으로 해결하는 방법은 기본적으로 아래와 같다.
kaggle notebook을 안쓰고 개인 서버에서 train 해보려면 kaggle dataset을 전부 서버에 받아야한다. 대회에서 제공해주는 train/test 파일들만 쓴다면 kaggle api를 쓸 필요까지 없다.
경진대회 플랫폼 Kaggle 카카오 아레나: 계열사 전용이라고 한다. 데이콘: public 대회. Kaggle 스타일이 적용되는 중이라고 한다.
2주간의 짧은 시간이었지만, 계속 밤을 샜던지라 4주와도 같았던 시간이었다. 그 동안 시도했던 내용들, 다른 사람들이 사용했던 방법들을 정리해봤다.
대회 막바지에 점수를 올리기 위해 사용했던 기법들이다. 극적인 성능 향상은 아니고 점수 굳히기 느낌이었다.
Data Generation
접근방법 대회 시작하자마자 데이터 열어보지말고 overview check. EDA(Exploratory Data Analysis) 탐색적 데이터 탐색. input이 될 X에 대한 분석 target이 될 y에 대한 분석 X, y관계를 확인할 수 ...
Albumentation 속도, 다양성 면에서 pytorch 내장 transformation보다 좋길래 사용했다.
CutMix 본래 cutmix는 랜덤하게 이미지 패치를 샘플링한다. 해당 방식이 마스크 이미지에선느 썩 효과적이지 못할 수도 있다. 마스크를 착용여부, 성별, 나이를 알기 위해서는 얼굴만 detection해서 patch를 하는것이 가장 효과적일 것이다. 따라서 랜덤하게 패치하고자...
CutMix https://hongl.tistory.com/223 random crop보다 효과 있다는 CutMix를 사용하기로 했다.
Latent Variable Models D.Kingma가 만든 모델이라고 한다. Adam, varitaional auto-encoder도 만든 대단한 분이라고 한다…
add_module() ```python
산개된 mlops 내용들을 정리
ref: Line Engineering Blog - Airflow Kubernetes - 1, Line Engineering Blog - Airflow Kubernetes - 2
ML Engineer ML/DL을 이해, 연구하고 Product을 만드는 Engineer.
AI model as Researching Imagenet처럼 데이터셋이 명확하고, 이를 해결하기 위한 모델링에 집중한다.
MLOps framerwork, tool 부스트캠프에서 사용해볼만한 MLOps framerwork, tool. 필요한 것만 써보자.
huggingface나 코테에서 활용되는 python built-in container들을 정리했다. collections UserDict Docs 일반적인 python의 dictionary와 동일하다. 상속받거나 객체로써 다루기 쉽도록 만든 단순한 wrapper다.
dtype=object, when compelx list
tqdm을 쓰면 원래 accuracy나 loss를 따로 찍어줘야한다. tqdm 내에서만 사용되는 변수를 update하는 것으로 이걸 해결해볼 수 있다. https://adamoudad.github.io/posts/progress_bar_with_tqdm/
@property decorator class의 getter, setter를 쉽게 사용 가능하게 해준다. 일반적인 getter, setter와 동일하게 제한, 하위호환성 등을 고려할 수 있다.
Facet 분할. 즉, 하나의 데이터 셋에 대해서 서로 다른 방법으로 시각화를 하는 것. 서로 다른 인코딩을 통한 다른 인사이트 같은 방법으로 동시에 여러 feature 보기 큰 관점, 작은 관점 등…
실습에 사용된 코드가 너무 많아, 코드 관련된 내용은 쥬피터 노트북에만 정리해놨다.
한번 봤던 내용들인데 복습 차 필사했다.
Data viz 데이터 시각화를 진행할 데이터 데이터셋 관점(global) 개별 데이터의 관점(local)
Moving velog to github.io
이것도 고등학교 때 배운 내용들이 많은데 까먹은 것도 많다…
통계론 모수 통계적 모델링 = 적절한 가정으로 확률 분포를 추정하는 것 기계학습과 통계학이 공통적으로 추구하는 목표.
작년에 lieklihood 관련해서 정리하면서도 이해가 잘 되지 않았던 내용들이다. 부캠 내용들 위주로 다시 재정리했다.
CNN ILSVRC ImageNet Large-Scale Visual Recognition Chagllenge Classification, Detection, Localization, Segmentation 1000 different categories
다른 캠퍼분이 정리해주신 내용이 있는데 공유한다. https://velog.io/@hanlyang0522/weight-init%EC%9D%84-%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0
Convolution 수식으로
부스트캠프에서 받은 서버와 aihub에서 받은 서버 2개를 사용 중인데, 종종 nvidia driver가 안 잡히는 문제가 있다.
GPUUtil nvidia-smi같은 모듈 gpu, mem 통계를 지속적으로 콘솔에 찍어준다.
node system과 동일하게 쓰이는 용어
ref: https://blog.naver.com/cjh226/221356884894
Nested function by decorator Nested function 함수를 중첩하여 사용가능하다. 일차원적으로 함수를 나열하는 것이 아니라, 복잡한 구조의 함수 결합체를 생성 가능.
Bias 미국 Northpointe社의 재범가능성(recidivism)을 예측하는 COMPAS는 아래와 같이 인종, 성별에 관해서 편향된 추측을 하는 경향과 법률적 근거가 모호해 폐기된 전례가 있다.
개인적인 연구가 아니라 공개를 목적으로 한 프로젝트에서는 데이터의 저작권과 라이센스를 중요하게 다뤄야한다.
```shell ps aux | grep python | awk ‘{print $2}’ | xargs kill -9
ref: https://www.unixtutorial.org/disable-sleep-on-ubuntu-server/
경량화의 관점 모델 크기(=파라미터 수)를 줄이자 속도를 빠르게만 해보자 연산횟수를 작게 바꿔보자
Goal On device AI 사용자 개인 기기에 탑재되는 모델들이 가지는 제한사항을 극복 power usage RAM Storage Computing power AI on cloud ...
how use gpu acceleration in m1
mac settings
쓸 때마다 쓰기 싫고 사용법 익히자마자 잊어버리는 pandas다. 까먹지 않게 정리해둔다.
멘토님께서 찾아봐주신 강화학습 자료들이다. 정말 감사합니다..
Trading trading: 단기적 1초 ~ 3일내에 재거래한다. Investment: 장기적
import re password_checker = re.compile("^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*])[A-Za-z\d!@#$%^&*]{8,30}$" ) mat = re.search(password_checke...
Data Engineering Data Cleansing, Preprocessing Feature Engineering Select ML Algorithm DL: Select Backbone Model Set Hyperparamet...
Review of Retrieval-Augmented Diffusion model paper
how use gpu acceleration in m1