
827
19
장
대규모 텐서플로 모델 훈련과 배포
비동기 업데이트
비동기 업데이트
asynchronous
updates
에서는 복제 모델이 그레이디언트 계산을 끝낼 때마다 즉시 이
를 사용해 모델 파라미터를 업데이트합니다. 여기에는 수집 단계가 없고([그림
19
-
19
]에서
‘평균’ 단계가 삭제됩니다 ) 동기화도 없습니다. 복제 모델들은 다른 복제 모델과 독립적으로 작
동합니다. 다른 복제 모델을 대기하지 않기 때문에 이 방식은 분당 더 많은 훈련 스텝을 실행할
수 있습니다. 여전히 매 단계마다 파라미터가 모든 장치에 복사되어야 하지만 복제 모델마다
각기 다른 시간에 발생하므로 대역폭이 포화되는 위험이 줄어듭니다.
비동기 업데이트를 사용한 데이터 병렬화는 단순하고, 동기화 지연이 없고, 대역폭을 효율적
으로 사용하므로 매력적인 방법입니다. 실전에서 이 방식이 잘 작동하지만 전혀 효과가 없다는
것은 놀라운 일입니다! 실제로 한 모델이 어떤 파라미터 값에 기초해 그레이디언트 계산을 마
칠 때 이 파라미터는 다른 모델들에 의해 여러 번 업데이트될 것입니다(
N
개의 복제 모델이 있
다면 평균적으로
N
-
1
번). 그리고 계산된 그레이디언트가 정확한 방향을 가리킬 것이라는 보
장이 없습니다 (그림
19
-
20
). 그레이디언트가 심하게 오래될 때 이를
낡은 그레이디언트
stale