전체 글

전체 글

    [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가 아닌 세팅

    [Incremental Learning] Scalable and Order-robust Continual learning with Additive Parameter Decomposition 논문 리뷰

    [Incremental Learning] Scalable and Order-robust Continual learning with Additive Parameter Decomposition 논문 리뷰

    # Motivation 기존의 많은 Continual learning 알고리즘들은 large # of task에 대한 고려가 부족함. 또한 Continual learning이 풀어야할 과제는 catastrophic forgetting 뿐만 아니라, network의 capacity 증가를 고려한 "Scalability" 문제와, task order에 모델 성능이 sensitive한 "Task-order sentivity"도 존재함. 따라서 위 3개의 문제를 해결하기 위해 전체 파라미터를 task-shared / sparse task-specific 파라미터로 각 layer마다 decompose하여, task-shared 파라미터는 적극 이용하고 여기서 배울 수 없는 정보들은 task-adaptive par..