분류 전체보기

    [선형대수] - (1) Introduction to the vector

    [선형대수] - (1) Introduction to the vector

    인턴을 하면서 선형대수가 부족하다고 느껴서, 이번 4학년 1학기를 이용해 선형대수 과목을 다시 ㅋㅋ 수강하고 있다! 선형대수가 참.. 되게 기초적이면서도 간과하기 쉬운데 또 중요한 .. 그렇지만 잘 까먹게 되는 과목인 것 같다. 아무튼 선대는 나중에 계속 필요한 내용이니까.. 중간고사가 막 끝나서 공부했던 내용을 블로그에 남겨놓기로 했다. 본 게시글에서는 기초적인 벡터와 행렬에 대한 이야기를 다룬다. # Linear Combination 흔히 선형대수에서는 linear combination 이야기가 많이 나오는데, 이는 별게 아니고 두개의 벡터를 $cv + dw$ 형태로 나타내 새로운 벡터를 만드는 것이라고 이해했다. (그림에서는 빨간색 벡터가 될 것) 여기서 $cv$는 하나의 벡터 라인이 될 텐데, 만..

    [NLP] LORA : Low-Rank Adaptation of Large Language Models 논문 리뷰

    [NLP] LORA : Low-Rank Adaptation of Large Language Models 논문 리뷰

    # Problem statement Pre-trained model을 다양한 downstream task에 adaptation ex) Summarization 그리고 이는 주로 Fine-tuning으로 해결한다. 일단 위 downstream task들은 training data of context-target pairs $z$ = ($x$, $y$) 로 표현됨 Fully Fine-tuning? Downstream task의 log likelihood를 maximize 시키는 값을 찾겠다 ($x$, $y$는 example) 위 값은 거의 gradient descent 값으로 찾음 (w/ optimizer) > 전체 100% 파라미터 업데이트 하지만 위 gradient descent에는 이전 step의 정보..

    [PyTorch] nvcc가 안될 때 ~/.bashrc 수정해 환경변수 설정하기

    [PyTorch] nvcc가 안될 때 ~/.bashrc 수정해 환경변수 설정하기

    하.... 몇시간 째 나를 괴롭히던 nvcc ...................... 모든 코드를 돌리려고 할 때 무언가가 계속 삐걱거리고 잘 돌아가지 않는다면(특히 setup.py 등을 build 할 때, nvcc~ 어쩌고 ~ 이런 뉘양스를 풍긴다면..)그건 nvcc 문제일 가능성이 높다. 특히 비전공자인 필자는 이로 인해 각종 setup.py build 실패와.. apex 설치 실패 등의 난항을 겪었다. (ㅋㅋ)이 원인은 바로 bashrc에 환경변수를 추가하지 않아서 그렇다...... 따라서 아래 과정대로 꼭 추가해주자. 일단 bashrc를 다음과 같이 열어준다.  $ vi ~/.bashrc이렇게 열린 .bashrc 맨 끝에 다음 두 줄을 추가해주자. vim으로 수정하면 된다. (참고로 a를 누르면 ..

    [Linux] 로컬에서 서버로 파일 전송하기 + 서버 ip 확인하기

    [Linux] 로컬에서 서버로 파일 전송하기 + 서버 ip 확인하기

    여러가지 작업을 하다보면 로컬에서 서버로 파일을 옮기고 싶어질 때가 생긴다! 그럴 때는 다음과 같이 scp를 이용해 간단히 해결할 수 있다. :3 서버에서 로컬로 파일을 보내는 것도 비슷하게 작동하며, 아래 명령어는 당연히 로컬 터미널에서 쳐야한다 ~! $ scp 파일명 유저명@서버ip:파일을 전송하고 싶은 경로 여기서 서버를 보통 ssh로 접근하기 때문에, 서버의 ip를 바로 알기가 어려울 수 있다. 이럴 때는 다음과 같은 방법들을 사용할 수 있다. $ ip addr | grep “inet ” # 여기서 나오는 ip 중 enp, ens, eth 부분이 ip일 확률이 높다. $ hostname -I

    [Incremental Learning] Hybrid-based 방법론을 훑어보자(RPS-Net ,FRCL)

    [Incremental Learning] Hybrid-based 방법론을 훑어보자(RPS-Net ,FRCL)

    0. Overview 지금까지 전개된 CL 방법론 들은 크기 (1) Regularization based 방법과 (2) Rehearsal 방법으로 나뉜다. 하지만 hybrid 방법은 이 두가지는 각각 단점이 있다고 생각하고, 이들을 합쳐서 사용하는 방법이다. (1) Regularization based : 대부분의 방법이 task boundaries를 요구하고, representation drift에 민감하다. (New task가 들어오면, 기존에 최적화된 파라미터는 obsolete(무용지물)이 된다.) (2) Rehearsal based : 어떤 data를 저장할지는 heruistics하게 결정된다. 1. RPS-Net Random Path Selection for Incremental Learning..

    [Incremental Learning] Rehearsal-based 방법론을 훑어보자(ER-MIR, OCS)

    [Incremental Learning] Rehearsal-based 방법론을 훑어보자(ER-MIR, OCS)

    0. Overview Replay-based 방법은 과거의 샘플들을 replay buffer나 generative model에 저장해놓고, current task 학습에 사용하는 방법이다. 이러한 과거 샘플들을 이용해 retraining을 하기도 하고, 현재 학습의 constraints로 사용하기도 한다. 목표는 여전히 classifier $f$의 파라미터 $\theta$를 학습하는 것이다. Online learning에서는 task가 주어지지 않고, input data의 iid도 보장되지 않는다. (=single-pass through the data) 아래 방법론들은 랜덤이 아니라 샘플링을 "잘"해야한다고 주장하지만, 그 샘플링의 단위는 각각 다르니 유의해야할 것 같다. 1. ER-MIR Online..

    [Incremental Learning] Architecture-based 방법론을 짚어보자

    [Incremental Learning] Architecture-based 방법론을 짚어보자

    1. SupSup Supermasks in Superposition (NeurIPS'20) Training시에는 task별로 separate supermask (=subnetwork)를 학습하고, Inference 시에는 모든 task의 supermask 들을 위에 겹쳐놓고 gradients to maximize confidence를 이용해 task identity를 추론한다. (task별로 가장 좋은 성능을 낼 수 있는 supermask를 선택하기 위함) Supermask : 원래 pruning에서 나온 방법으로, 무작위로 초기화된 네트워크를 학습시켜 최종적으로 원하는 결과에 달성할 수 있는 subnetwork를 찾아내는 방법이다. Train/Test 시에 task ID 제공 여부에 따라 CL 흐름이 ..

    [Incremental Learning] Continual learning 갈래 짚어보기

    [Incremental Learning] Continual learning 갈래 짚어보기

    # Definitions Online continual setting : stream of samples가 딱 한번만 보여지고, 이들이 iid가 아닌 세팅