패스잇
AI / 데이터 · 심화

초거대 언어 모델(LLM)과 같이 수십억 개 이상의 파라미터를 가진 모델을 학습시키기 위해 분산 학습 환경을 구축해야 합니다. 단일 GPU로는 학습이 불가능한 모델을 효율적으로 학습시키기 위한 데이터 병렬화(Data Parallelism)와 모델 병렬화(Model Parallelism)의 차이점을 설명하고, 각 방식의 장단점 및 실제 구현 시 고려해야 할 기술적 도전 과제(예: 통신 오버헤드, 메모리 관리)를 논해주세요.

힌트 · Horovod, DeepSpeed, Megatron-LM, FSDP (Fully Sharded Data Parallel), Zero Redundancy Optimizer (ZeRO) 등의 기술과 gradient accumulation, mixed precision training 등을 언급하세요.

데이터 병렬화모델 병렬화통신 오버헤드메모리 관리GPU 활용률

모범답안

초거대 모델 학습을 위한 분산 학습은 크게 데이터 병렬화와 모델 병렬화로 나뉩니다. 데이터 병렬화는 전체 데이터를 나누어 각 GPU에서 동일한 모델을 학습시키는 방식입니다. 구현이 비교적 간단하지만, 모델 크기가 커지면 각 GPU에 모델 전체가 올라가야 하므로 메모리 제약이 발생할 수 있습니다. Horovod나 DeepSpeed 같은 라이브러리를 사용해 통신 오버헤드를 줄이고, gradient accumulation을 통해 GPU 활용률을 높일 수 있습니다.

모델 병렬화는 모델 자체를 여러 GPU에 나누어 학습시키는 방식입니다. 메모리 제약은 줄일 수 있지만, GPU 간 통신량이 많아지고 구현이 복잡해집니다. Megatron-LM이나 FSDP 같은 기술은 모델 병렬화를 효율적으로 구현하기 위한 솔루션을 제공합니다. 특히 FSDP는 모델 파라미터를 쪼개어 각 GPU에 분산 저장하고 필요할 때만 통신하여 메모리 효율성을 높입니다. ZeRO와 같은 최적화 기법을 활용하여 메모리 사용량을 더욱 줄일 수도 있습니다. 두 방식 모두 mixed precision training을 통해 메모리 사용량을 줄이고 학습 속도를 높일 수 있습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 데이터 사이언스 면접 질문

← 데이터 사이언스 면접 질문 전체 보기