대규모 학습은 GPU 고장 외에도 여러 이유로 멈춥니다. 스케줄러가 장비를 회수하고, 운영자가 랙을 비우고, 느려진 노드를 옮기거나 자원 배치를 다시 맞출 수 있습니다. 체크포인트 재시작은 어떤 경우에도 쓸 수 있지만 그만큼 많은 비용을 냅니다. 작업을 끝내고, 자원을 다시 잡고, 통신 그룹을 만들고, 모델 상태를 읽고, 소프트웨어 스택을 다시 준비합니다[3]. 실행 중 구성을 바꾸는 탄력적 런타임도 전체 집합 통신 상태를 재구성하는 동안 모든 랭크를 세울 수 있습니다.

Alibaba 그룹과 대학 연구진의 TrainMover는 장비 한 대의 교체를 대부분 그대로인 분산 작업의 작은 변경으로 다룹니다[1]. GPU 1,024장에서 계획된 중단은 20초 미만이고, 사전 준비가 불가능한 갑작스러운 장애도 30초 미만입니다. 활성 워커에는 모델을 위한 추가 메모리를 요구하지 않는다고 보고합니다. 핵심은 재시작 코드를 조금 빠르게 만든 것이 아니라, 중단 시간에 하던 일을 그 전에 끝내는 데 있습니다.

전체 작업에서 달라지는 부분만 찾는 방식

집합 통신 라이브러리는 보통 그룹을 한 단위로 만듭니다. 구성원 한 명이 바뀌면 모든 랭크가 그룹을 다시 만드는 것이 안전합니다. TrainMover는 이 설정을 두 단계로 나눕니다. 중단 전에 그대로 유지될 통신 상태를 준비하고, 나갈 장비와 대체 장비가 정해지면 해당 장비와 피어 사이의 차이만 설치합니다. 나머지 워커는 기존 연결과 모델 상태를 유지합니다.

대체 장비도 실제 실행 준비를 해야 합니다. 일반적인 준비 구간은 분산 프로그램 안으로 들어가 메모리를 할당하고 커널을 준비하며 집합 통신을 호출할 수 있습니다. 아직 정식 구성원이 아닌 장비가 이 통신에 들어오면 실행 중인 그룹과 충돌합니다. TrainMover는 통신 없는 격리 준비 구간을 사용합니다. 로컬 연산과 메모리 경로는 실제로 실행하되 분산 통신은 가로막습니다. 따라서 대체 장비는 작업 구성원이 되기 전에 준비를 마칠 수 있습니다.

세 번째 요소는 특정 랭크 역할에 고정되지 않은 범용 대기 장비입니다. 텐서·파이프라인·데이터·전문가 병렬 중 어느 역할의 워커가 나가도 런타임이 필요한 역할을 구성하고 정상 동작하는 인접 장비에서 상태를 전달합니다. 여러 교체가 있으면 상태 전송은 장비 쌍별로 병렬 실행하며 고대역폭 RDMA를 사용합니다. GPU 메모리의 크기가 제한돼 있으므로 전송도 목표 복구 시간 안에 들어온다는 것이 논문의 설명입니다.

TrainMover가 전역 재시작을 국소 교체로 바꾸는 방식. a, 기존 재시작은 장비 한 대가 나가도 모든 랭크의 상태를 내립니다. b, 2단계 그룹 설정은 유지되는 연결을 남기고 바뀐 통신만 추가합니다. c, 대체 장비는 통신 없는 준비 구간 뒤에 역할과 상태를 받아 전환 시점에 합류합니다. 이 글을 위해 새로 만든 도판.

GPU 1,024장에서 실제로 측정한 것

평가는 GPU 32장부터 1,024장까지 확장하며, 규모에 맞춰 175B 밀집 모델에서 5.12T MoE까지 구성을 바꿉니다. GPU 1,024장에서 계획된 이동은 20초 아래를 유지했습니다. 나가는 쪽을 미리 준비할 수 없는 갑작스러운 장애도 30초 이내였습니다. GPU 수를 32장에서 1,024장으로 늘렸을 때 추가된 중단 시간은 10초 이하였는데, 통신 차이 적용과 장비 쌍별 상태 전송이 대부분 병렬로 진행되기 때문입니다.

10분마다 자원을 재배치하는 실험도 있습니다. GPU 1,024장에서 유효 학습 효율 97%를 유지해 처리량 손실이 3% 미만이었습니다. 드물게 발생하는 장애 복구와는 목적이 다릅니다. 이동 비용이 충분히 작아 스케줄링 수단으로 쓸 수 있는지 확인한 것입니다. 클라우드 운영자는 스케줄러가 더 나은 위치를 찾을 수 있다면, 장비가 완전히 고장 나기 전에 상태가 나쁜 pool이나 불균형한 배치에서 작업을 옮길 수 있습니다.

비교 결과는 중단 시간을 어디에서 쓰는지로 읽는 편이 정확합니다. 체크포인트 재시작은 자원 할당, 초기화, 데이터 재적재 비용을 냅니다. 기존 탄력적 시스템은 일부 단계를 줄여도 넓은 범위의 통신 상태를 다시 만들 수 있습니다. TrainMover가 멈춘 상태에서 하는 일은 장애 확인과 조정, 작은 통신 변경, 상태 전달입니다. 전체 작업은 커지지만 바뀐 구성원 수는 적으므로 규모가 클수록 전역 재시작과 차이가 벌어집니다.

실측 복구 시간과 장비군 투영치는 다른 종류의 근거입니다. a, GPU 1,024장에서 계획된 사건은 20초 미만, 예기치 않은 장애는 30초 미만입니다. b, 10분 간격 재배치에서는 학습 효율 97%를 유지합니다. c, GPU 6만4천 장에서 낭비 시간을 55% 줄이고 주당 140만 GPU 시간을 아낀다는 값은 논문의 사건 모델에 따른 투영치이며 실측 배포가 아닙니다. 이 글을 위해 새로 만든 도판.

GPU 6만4천 장 수치는 투영치

TrainMover는 GPU 6만4천 장 장비군에서 최선의 비교 대상보다 낭비되는 GPU 시간을 55% 줄이고, 주당 140만 GPU 시간을 절약할 수 있다고 추정합니다. 경제적 의미가 가장 큰 숫자지만 가장 잘못 전달되기 쉽습니다. 시스템을 직접 측정한 범위는 GPU 1,024장입니다. GPU 6만4천 장 결과는 장애 발생 모델과 관측한 확장 특성을 적용한 외삽입니다. 대규모 장비군에서 기대할 수 있는 효과의 근거이지, GPU 6만4천 장을 일주일간 운영한 계측값은 아닙니다.

그렇다고 투영치가 의미 없지는 않습니다. 논문은 GPU 3만2천 장에서 복구 시간을 4.45분에서 20초로 줄이면, 이상적인 선형 확장을 가정할 때 GPU 약 2,400장을 더 넣은 것과 비슷한 처리량 효과가 난다고 계산합니다. 소수의 대기 장비를 두는 편이 모든 활성 GPU를 전역 복구 동안 기다리게 하는 것보다 저렴할 수 있음을 보여 주는 비교입니다. 다만 적정 대기 장비 수는 장애가 함께 발생하는 정도, 자원 가격, 대기 장비에 낮은 우선순위 작업을 넣을 수 있는지에 따라 달라집니다.

완전히 줄일 수 없는 장애

빠른 교체에는 정상적인 모델 상태를 가진 원본 장비, 동작하는 RDMA 경로, 나갈 장비나 고장 난 장비를 아는 제어 평면이 필요합니다. 랙이나 패브릭이 함께 고장 나면 워커와 상태를 줄 이웃을 동시에 잃을 수 있습니다. TrainMover는 장비 교체 구간을 줄이는 시스템이기도 합니다. 수치가 조용히 틀리는 SDC를 찾아내거나 사용자 코드가 발산을 만들었는지 판단하지는 않습니다. 이 문제는 ByteRobust가 다루는 더 넓은 복구 스택처럼 검출과 디버깅 시스템의 영역입니다[2].

elasticity에는 두 뜻이 있습니다. API상 작업 구성원을 바꿀 수 있어도 실제 구현이 그 변경을 안전하게 만들려고 수천 랭크를 세운다면 운영 비용은 여전히 전역적입니다. TrainMover의 목표는 교체 비용이 전체 작업 크기가 아니라 바뀐 장비 수를 따르게 하는 것입니다. 공급자의 모델과 네트워크에서도 이 성질이 유지된다면, 장비 이동은 마지막 수단이 아니라 일상적인 유지보수 방법이 될 수 있습니다.

신뢰성도 용량 배분 문제

TrainMover는 복구 단위를 전체 작업에서 교체되는 구성원으로 줄입니다. 구현상의 차이처럼 보이지만 전체 장비의 비용 구조가 달라집니다. 체크포인트 재시작은 장애 뒤에 스토리지 대역폭과 재연산 시간을 사용합니다. TrainMover는 장애 전에 예비 장비를 예약하고 제어 계층을 운영해야 합니다. 따라서 중단 시간만 비교하면 부족합니다. 예약한 예비 GPU 시간, 상태 전송 트래픽, 이전 작업 중단 시간, 인계가 늦었을 때 되돌려야 하는 작업량을 함께 계산해야 합니다.

이 비용 항목을 구분하면 GPU 6만4천 장 투영치의 의미도 정확해집니다. 큰 장비군에서는 중단이 더 자주 발생하므로 전역 재시작의 고정비가 빠르게 누적됩니다. 그러나 절감률은 사건 유형의 구성, 체크포인트 간격, 예비 장비 배치 정책, 같은 네트워크 구역에 호환 장비가 있는지에 따라 달라집니다. 도입을 검토하는 운영자는 자신의 장애 기록을 논문의 모델에 넣고 각 입력값에 따른 민감도를 공개해야 합니다. 55%를 어디서나 적용되는 상수로 가져오면 안 됩니다.

운영 목표도 프로세스가 다시 살아난 시간이 아니라 유효한 다음 스텝이 나온 시간이어야 합니다. 대체 장비가 실행 중이어도 통신 그룹, 최적화기 상태, 캐시, 데이터 로더 위치가 준비되지 않으면 학습은 진행되지 않습니다. 텔레메트리는 검출, 대체 장비 선택, 격리 환경 준비, 변경분 설치, 상태 복사, 인계 뒤 첫 스텝을 나눠 기록해야 합니다. 검출이 길면 상태 신호를 개선하고, 상태 복사가 길면 배치나 체크포인트 구성을 바꾸며, 호환 예비 장비가 부족하면 신뢰성을 스케줄러의 예약 문제로 다뤄야 합니다. TrainMover의 더 큰 의미는 신뢰성 용량도 학습 용량처럼 미리 계획해야 한다는 데 있습니다.

논문의 전체 장비 투영치를 쓰지 않고도 손익분기점을 계산할 수 있습니다. 예비 장비가 실제로 처리할 수 있는 중단에서 잃을 것으로 예상되는 GPU시간이 예비 장비의 기회비용보다 크면 예약할 가치가 있습니다. 양쪽 값은 역할과 토폴로지에 따라 달라집니다. 데이터 병렬 대체 장비는 배치하기 쉬울 수 있지만 파이프라인이나 전문가 랭크는 특정 네트워크 구역과 상태 원본이 필요할 수 있습니다. 전체 예비 비율 하나로는 이 차이가 사라집니다. 호스트, 랙, 패브릭 구역, 가속기 종류, 학습 역할별 대응 범위를 따로 보고해야 합니다.

상관된 장애는 더 어려운 경계입니다. 전력 사건, 랙 상단 스위치 장애, 잘못된 소프트웨어 배포, 손상된 체크포인트는 이탈 장비와 대기 장비, 상태 원본을 함께 잃게 할 수 있습니다. 변경분 재구성은 국소 변경을 빠르게 하지만 이 의존성을 독립적으로 만들지는 않습니다. 평가는 장비 한 대 교체뿐 아니라 공통 원인 사건과 성능이 낮아진 네트워크 경로도 포함해야 합니다. TrainMover가 기존 복원력 기법을 없애지 않는 지점이 여깁니다. 자주 발생하는 좁은 사건은 국소 인계가 처리하고, 넓은 사건에는 체크포인트 다양성, 장애 영역을 고려한 배치, 되돌리기가 여전히 필요합니다.

이동에 필요한 명확한 정합성 시점

분산 작업의 일부만 옮기려면 기존 장치와 새 장치가 모델·옵티마이저 상태, 통신 그룹, 진행 중 연산에 합의하는 시점이 필요합니다. 마지막으로 커밋한 반복을 명시하고 이후 동작은 다시 실행하거나 버릴 수 있어야 합니다. 새 랭크는 모든 생존 랭크가 같은 그룹 버전을 설치한 뒤에만 집합 통신에 들어가고, 기존 끝단은 자원을 재사용하기 전에 권한을 잃어야 합니다.

장애마다 로컬 인계, 그룹 복구, 전체 체크포인트 재시작 중 어떤 경로를 쓰는지와 잃을 수 있는 작업량을 표시해야 합니다. 빠른 인계와 영속 체크포인트는 대체 관계가 아니라 서로 다른 장애 범위를 맡습니다.

예비 용량은 복구 단위와 맞아야 할 이유

예비 장치는 GPU 종류와 메모리, 호스트 소프트웨어, 네트워크 지역성, 복구할 병렬 그룹에 맞아야 합니다. 멀리 떨어진 빈 GPU는 재고에는 있어도 실제 복구에 쓰지 못할 수 있습니다. 실패 이력과 작업 토폴로지로 필요한 목적지 모양을 예약하고 낮은 우선순위 작업이 선점 계약 아래 빌려 쓰게 할 수 있습니다.

빈 장치가 흩어지면 랭크 하나를 고치기 위해 더 큰 그룹을 옮겨야 합니다. 초기 배치가 연결된 예비 영역을 얼마나 남기는지도 신뢰성 비용에 포함해야 합니다.

복구는 잃은 모델 진도로 가격화해야 할 이유

검출, 경로 선택, 상태 전송, 통신 그룹 복구, 준비, 재실행, 이동 뒤 성능을 모두 포함해 사건당 잃은 유효 가속기 시간을 계산해야 합니다. GPU 6만4천 장 결과는 투영치이므로 작은 물리 규모에서 모델을 보정하고 동시 장애와 네트워크 경합에 대한 민감도를 보여 줘야 합니다.

체크포인트의 지속 비용, 예비 장비, 사건 손실을 함께 놓아야 전체 재시작과 국소 이동을 공정하게 비교할 수 있습니다.

전환 도중을 의도적으로 깨뜨려야 할 이유

반복의 여러 지점에서 GPU, 호스트, 링크, 제어기를 끊고 상태 이동 지연, 기존 워커 복귀, 대체 워커 실패를 시험해야 합니다. 작업은 하나의 정합성 버전에서 재개하거나 신뢰한 체크포인트로 돌아가야 하며 혼합 상태로 계속 실행하는 경우를 가장 심각한 실패로 봐야 합니다.

TrainMover의 핵심은 장애 범위와 복구 범위를 맞추는 데 있습니다. 정합성, 호환 예비 모양, 잃은 전체 진도, 폴백, 반복 장애 시험이 이동 경로와 같은 수준으로 명확해야 대규모 작업에서 신뢰할 수 있습니다.

운영 확대는 체크포인트가 잦고 일정 여유가 있는 작업에서 시작하는 편이 좋습니다. 모든 사건에 복구 범위, 선택 이유, 이동 상태 크기, 중단과 재실행 시간, 이동 뒤 성능을 기록하면 예비 장비 정책과 대규모 투영 모델을 함께 보정할 수 있습니다. 반복 이동 시험에서는 메모리 누수, 오래된 통신 그룹, 주소 재사용, 성능 저하가 나타나는지도 확인해야 합니다. 한 번의 빠른 복구보다 여러 차례의 장애 뒤에도 같은 학습 의미와 처리량을 유지하는지가 제품 기준입니다.

출처와 저작권 안내

이 글은 Silicon & Systems가 작성한 편집 요약입니다. 인용 논문의 주장과 결과를 우리 표현으로 다시 썼습니다. 원문의 문장, 표, 도판은 옮기지 않았으며 두 도판은 이 글을 위해 새로 만들었습니다. USENIX는 발표 페이지에서 논문을 공개합니다. 저작권 (c) 2026 원저자.