파라미터 서버는 머신 러닝에서 여러 학습 워커에 걸쳐 모델의 파라미터를 저장, 갱신, 동기화하는 데 사용되는 분산 컴퓨팅 아키텍처이다. 이 설계에서 중앙 또는 분산된 서버 집합이 전역 모델 파라미터를 보유하고, 워커 노드는 로컬 데이터 샤드에 대한 그래디언트를 계산하여 서버로 업데이트를 전송한다. 서버는 이러한 업데이트를 집계하고 공유 파라미터를 갱신하며, 워커는 다음 반복을 위해 이를 다시 가져온다. 이 접근 방식은 계산과 상태 관리를 분리하여 단일 머신의 메모리 및 대역폭 한계를 넘어 학습을 확장할 수 있게 한다.
파라미터 서버 모델은 딥 러닝 모델이 단일 머신에 비해 너무 커지면서 2010년대 초에 등장했다. 초기 분산 학습은 단순한 올-리듀스 전략을 사용했지만, 이는 모든 노드 간에 빈번하고 높은 대역폭의 통신을 요구했다. 파라미터 서버는 허브-앤-스포크 패턴을 도입하여 워커가 서버와만 통신하도록 함으로써 네트워크 혼잡을 줄이고 비동기 업데이트를 가능하게 했다. 이 아키텍처는 초기 대규모 언어 모델을 포함한 대규모 신경망 학습의 기반이 되었으며, 이후 올-리듀스 및 링-올리듀스와 같은 더 분산된 방법이 부상하기 전까지 그러했다.
역사적 발전
파라미터 서버의 개념은 2010년 Alexei Efros와 동료들의 논문에서 공식화되었지만, 용어는 이후 연구에 의해 대중화되었다. 2012년 Google DeepMind 연구자들은 공유 파라미터 저장소를 사용하여 심층 네트워크를 학습시키는 분산 프레임워크를 제안했다. 2013년 Michael I. Jordan과 다른 이들의 중요한 논문은 분산 해시 테이블을 사용하여 파라미터를 저장하고 동기 및 비동기 업데이트를 모두 지원하는 분산 파라미터 서버 아키텍처를 도입했다. 이 설계는 이후 DistBelief(Google), Project Adam(Microsoft), Petuum(Carnegie Mellon)과 같은 시스템에 영향을 미쳤다.
2014년 BAIR (Berkeley AI Research)는 유연한 일관성 모델을 도입하여 사용자가 지연 시간과 처리량을 절충할 수 있게 한 파라미터 서버 구현체인 Bosen을 출시했다. 같은 해 Amazon Web Services는 파라미터 서버 학습을 지원하는 GPU 클러스터를 제공하기 시작하여 스타트업과 학술 연구소에서 이 아키텍처에 접근할 수 있게 했다. 2016년까지 파라미터 서버는 업계에서 대규모 모델 학습의 기본 선택이 되었으며, TensorFlow 및 MXNet과 같은 프레임워크가 내장 지원을 제공했다.
아키텍처 및 구성 요소
일반적인 파라미터 서버 시스템은 서버 노드, 워커 노드, 스케줄러의 세 가지 역할로 구성된다. 서버 노드는 일관된 해싱을 사용하여 여러 머신에 분할된 전역 파라미터를 유지한다. 각 서버는 파라미터의 일부를 저장하고 워커의 업데이트 요청을 처리한다. 워커는 로컬 데이터 배치에 대한 그래디언트를 계산하고 관련 서버에 희소 또는 밀집 업데이트를 전송한다. 스케줄러는 작업 배치, 장애 복구, 일관성 제어를 조정한다.
통신은 푸시-풀 패턴을 따른다. 워커는 그래디언트를 서버로 푸시하고 업데이트된 파라미터를 풀한다. 대역폭을 줄이기 위해 워커는 실제로 업데이트한 파라미터에 대한 그래디언트만 전송하는 경우가 많으며(희소 업데이트), 서버는 양자화 또는 그래디언트 클리핑을 사용하여 그래디언트를 압축할 수 있다. 이 아키텍처는 동기 및 비동기 모드를 모두 지원한다. 동기 학습에서는 모든 워커이 서버가 업데이트를 적용하기 전에 한 단계를 완료해야 하므로 일관성이 보장되지만 지연 워커(스트래글러)으로 인한 지연이 발생한다. 비동기 학습에서는 워커이 독립적으로 진행할 수 있어 처리량이 향상되지만 오래된 그래디언트가 도입된다.
동기 및 비동기 업데이트
동기 파라미터 서버 학습은 배리어를 사용한다. 각 반복 후 서버는 모든 워커이 그래디언트를 제출할 때까지 기다린 후 평균을 내고 모델을 업데이트한다. 이는 모든 워커이 각 단계에서 동일한 파라미터를 보도록 보장하여 수렴 분석을 단순화한다. 그러나 느린 워커(스트래글러)은 전체 학습 프로세스의 병목이 될 수 있다. 백업 워커 및 제한된 지연 시간과 같은 기술은 일부 워커이 늦는 것을 허용하여 이를 완화한다.
반대로 비동기 업데이트는 워커이 준비될 때마다 그래디언트를 전송하고 서버가 즉시 적용하도록 한다. 이는 유휴 시간을 제거하고 이기종 클러스터에서 학습 속도를 크게 높일 수 있다. 단점은 워커이 오래된 파라미터에 대한 그래디언트를 계산할 수 있어 수렴이 느려지거나 진동이 발생할 수 있다는 점이다. Anima Anandkumar와 다른 연구자들의 연구는 비동기 SGD가 특정 조건에서 여전히 수렴할 수 있음을 보여주었지만, 종종 학습률 스케줄의 세심한 조정이 필요하다. 많은 프로덕션 시스템은 하이브리드 접근 방식을 사용한다. 랙 내에서는 비동기, 랙 간에는 동기 방식이다.
내결함성 및 일관성
파라미터 서버는 노드 장애를 우아하게 처리하도록 설계되었다. 서버는 파라미터 샤드를 여러 머신에 복제하며, 하나가 실패하면 복제본이 역할을 대신한다. 워커도 전역 상태가 서버에 있기 때문에 진행 상황을 잃지 않고 다시 시작할 수 있다. 이러한 복원력은 대규모 클러스터에서 장기 실행 학습 작업에 중요하다.
파라미터 서버의 일관성 모델은 궁극적 일관성에서 강한 일관성까지 다양하다. 궁극적 일관성에서는 워커이 약간 오래된 파라미터를 볼 수 있어 성능은 향상되지만 수렴에 해가 될 수 있다. 강한 일관성은 모든 워커이 동일한 버전의 파라미터를 보도록 요구하며 비용이 많이 든다. Bosen과 같은 시스템은 구성 가능한 일관성 수준을 도입하여 사용자가 정확성과 속도 사이의 절충을 선택할 수 있게 했다. 이러한 유연성은 파라미터 서버를 이미지 분류부터 강화 학습에 이르는 다양한 애플리케이션에 매력적으로 만들었다.
애플리케이션 및 영향
파라미터 서버는 초기 딥 러닝 모델을 대규모로 학습시키는 데 중요한 역할을 했다. Google은 2012년 YouTube 비디오를 인식하는 신경망을 학습시키기 위해 DistBelief라는 변형을 사용했다. 2014년 facebook은 사진에서 얼굴을 식별하는 모델을 학습시키기 위해 파라미터 서버를 사용하여 인간에 가까운 정확도를 달성했다. 이 아키텍처는 또한 엄청난 수의 파라미터를 가진 트랜스포머 기반 모델의 학습을 가능하게 했다. 예를 들어, 2017년 원래 트랜스포머 논문은 8개의 GPU에서 6500만 개의 파라미터를 가진 모델을 학습시키기 위해 파라미터 서버를 사용했다.
딥 러닝 외에도 파라미터 서버는 로지스틱 회귀, 행렬 분해, 그래프 분석에 적용되었다. 특히 추천 시스템과 같이 모델이 희소한 경우, 배치당 파라미터의 일부만 업데이트되므로 효과적이다. Alibaba Cloud 및 tencent와 같은 회사는 수십억 개의 파라미터를 처리하기 위해 파라미터 서버를 사용하여 대규모 추천 시스템을 구축했다.
올-리듀스와의 비교
모델이 커짐에 따라 파라미터 서버의 통신 오버헤드가 병목이 되었다. 링 또는 트리 패턴으로 모든 워커의 그래디언트를 집계하는 올-리듀스 알고리즘은 더 나은 대역폭 활용을 제공하고 서버 병목을 피한다. 2010년대 후반 Horovod와 같은 프레임워크는 GPU 클러스터에서 동기 학습을 위해 올-리듀스를 대중화했다. 단일 머신의 메모리에 맞는 모델의 경우 올-리듀스가 종종 더 간단하고 빠르다.
그러나 파라미터 서버는 매우 큰 모델이나 희소 업데이트가 있는 시나리오에서 여전히 뛰어나다. 파라미터를 여러 머신에 분산시켜 단일 노드의 메모리를 초과할 수 있다. 또한 올-리듀스가 자연스럽게 제공하지 않는 비동기 업데이트를 지원한다. 현대 시스템은 종종 둘을 결합한다. 노드 내에서는 올-리듀스를, 노드 간에는 파라미터 서버를 사용한다. 이 하이브리드 접근 방식은 일부 대규모 언어 모델 학습에 사용되지만, 밀집 모델의 경우 DeepSpeed 및 Megatron과 같은 완전히 분산된 방법으로 추세가 이동했다.
현대적 발전과 쇠퇴
수백억 개의 파라미터를 포함하는 대규모 언어 모델의 등장으로 파라미터 서버 아키텍처는 모델 병렬 처리 및 파이프라인 병렬 처리에 의해 크게 대체되었다. 텐서 병렬 처리 및 파이프라인 병렬 처리와 같은 기술은 모델 자체를 GPU에 분할하여 중앙 파라미터 저장소의 필요성을 줄인다. NVIDIA Megatron 및 Google의 Switch Transformer와 같은 프레임워크는 밀집 동기 학습에 더 효율적인 이러한 방법을 사용한다.
그럼에도 불구하고 파라미터 서버는 특정 틈새 영역에서 여전히 관련성이 있다. 예를 들어, 수백만 개의 궤적을 학습하는 강화 학습 시스템은 데이터 생성을 따라잡기 위해 종종 비동기 파라미터 서버를 사용한다. meta 및 amazon과 같은 회사의 추천 시스템은 여전히 희소하고 고차원적인 임베딩을 처리하기 위해 파라미터 서버에 의존한다. 그래디언트 압축 및 탑-k 희소화를 사용하여 통신을 줄이는 것과 같은 파라미터 서버 효율성 개선에 대한 연구가 계속되고 있다.
주요 연구 및 시스템
여러 영향력 있는 시스템과 논문이 파라미터 서버 환경을 형성했다. Michael I. Jordan과 동료들의 2013년 논문 "Scaling Distributed Machine Learning with the Parameter Server"는 핵심 설계를 도입했다. 카네기 멜론 대학교의 Bosen 시스템(2014)은 유연한 일관성을 갖춘 프로덕션급 구현을 제공했다. 2016년에 출시된 TensorFlow의 분산 런타임은 네이티브 파라미터 서버 지원을 포함하여 이 아키텍처를 널리 접근 가능하게 만들었다. PyTorch의 분산 패키지도 파라미터 서버 프리미티브를 제공하지만 올-리듀스를 강조한다.
학술 연구는 파라미터 서버 성능 개선을 탐구했다. Anima Anandkumar와 협력자들은 비동기 SGD의 수렴을 연구하여 이론적 보장을 제공했다. 그래디언트 클리핑 및 아담 옵티마이저와 같은 적응형 옵티마이저에 대한 연구는 파라미터 서버 구현에 통합되었다. 이 아키텍처는 중앙 서버가 에지 장치의 업데이트를 집계하는 연합 학습 시스템의 설계에도 영향을 미쳤다.
결론
파라미터 서버는 분산 머신 러닝 진화의 핵심 디딤돌이었다. 이전에는 실현 불가능했던 모델의 학습을 가능하게 했으며, 그 원리는 현대 분산 시스템에 계속 영향을 미치고 있다. 더 이상 최첨단 딥 러닝의 지배적인 접근 방식은 아니지만, 특정 워크로드에 필수적인 도구이자 이 분야의 기초 개념으로 남아 있다.