Home

[Distributed Training] Model Parallelism

Model Parallelism 큰 모델을 여러 GPU들에 분할함으로써 하나의 GPU로는 처리할 수 없는 대형 모델도 처리 가능하게 하는 기법이다. 모델을 어떻게 나누는 지에 따라 Tensor Parallelism과 Pipeline Parallelism으로 나뉜다.   Tensor Parallelism Pipeline Parallelism 전략 모델의 텐서(weights)를 여러 GPU에 분산하여 각 GPU가 모델의 일부만 처리 모델의 여러 층들을 GPU에 분산하여 각GPU가 순차적으로 모델 ...

Read more

[Distributed Training] Data Parallelism

Distributed Training(분산 학습) 여러 GPU 간에 데이터를 분할하거나 모델 자체를 분할하여 병렬화 하는 학습 기법으로 GPU에 한 번에 들어가지 않는 큰 모델도 학습 가능하도록 하고 최근 모델의 크기가 굉장히 커짐에 따라 필요성이 증가했다. 데이터를 분할하여 처리하는 Data Parallelism과 모델을 분할하여 처리하는 Model Parallelism이 있다. Data Parallelism 큰 데이터를 여러 GPU들에 분할하여 동시에 처리함으로써 학습 속도를 높이는 기법이다. 우선 모델을 모든 GPU에 복제하고, 데이터셋을 minibatch 단...

Read more

[PEFT] Advanced PEFT

AdapterFusion Adapter 모듈은 특정 Task 1개에 대해서만 풀 수 있기에, 다른 Task를 풀고자 할 때에는 다른 Adapter 모듈로 교체해줘야 한다. 위와 같은 번거로운 작업을 하지 않기 위해 Adapter를 결합하여 여러 Task를 해결하는 모델을 만드는 것이 AdapterFusion이다. AdapterFusion은 Knowledge Extraction, Knowledge Composition 과정으로 이뤄진다. Knowledge Extraction 과정은 단순히 각각의 Adapter를 학습 시키는 과정이고, Knowledge Composition은 Adapter들의 ...

Read more

[PEFT] Basic PEFT

Transfer Learning(전이 학습) Transfer Learning은 이미 학습이 완료된 모델을 사용하여 새로운 작업을 위한 데이터로 재학습 시키는 방법으로 처음부터 학습시키는 것보다 빠르고 쉬운 방법이다. Transfer Learning의 대표적인 방법론이 Fine-Tunning이다. 보통 Pre-train된 모델들은 내가 풀고자 하는 문제에 대한 능력이 부족한 경우가 많다. 그렇기에 Fine-Tunning을 통하여 내가 풀고자 하는 작업의 해결 능력을 얻을 수 있게 재학습 하는 것이다. Fine-Tunning은 우선 1)사전 학습된 모델을 선택하고, 새로운 작업에 맞게 2)모델의 ...

Read more