딥러닝 엔지니어가 되기 위한 기본 소양이된 DDP, FSDP, Mixed Precision, Quantization에 관한 내용들입니다. FSDP까지 마무리 된 이후에는 pruneing과 distilation에 관한 내용이 추가될 예정입니다.

ReferenceSocket Programming in Python (Guide) – Real PythonSocket Programming HOWTOA Complete Guide to Socket Programming in Pythonselect – Wait for I

분산학습의 전반적인 과정과 그 과정에서 사용되는 기전에 관한 내용들입니다.

DDP의 전반적인 과정과 핵심 중에 하나인 프로세스 생성과 통신 및 전바적인 과정을 직접 파이썬의 기본 모듈과 넘파이만으로 구현해본다.

현재는 학습 시에 너무 당연하게 사용하는 Mixed Precision에 관한 포스팅입니다. 최대한 이해가 쉽게 작성되었고, numpy로 각 단계를 구현하여 따라하면서 쉽게 이해할 수 있도록 하였습니다.

모델의 크기를 최대한 작게 하면서 성능을 보존하는데 가장 활발히 쓰이는 양자화 기법에 관한 포스트이다. 그 중 LLM의 파라미터 크기를 줄이는데 크게 기여한 8BIT 양자화에 관한 포스트이다.

FSDP는 Fully Sharded Data Parellel의 약자로 DDP의 사촌(?)이다. DDP의 사촌이라한 까닭은 DDP처럼 모델을 관리하는 프로세스 그룹이 스폰되고 통신을 통해 순전파, 역전파, 옵티마이징에서의 parameter와 grad를 동기화하기 때문이다