체크포인트Checkpoint
학습 도중 상태를 그대로 담아 둔 저장본
- 체크포인트는 학습이 진행되는 도중에 그 시점의 상태를 통째로 담아 둔 저장본이에요.
- 학습이 중간에 끊겨도 마지막 저장본에서 이어 갈 수 있어요. 처음부터 다시 하지 않아요.
- 이어서 하려면 값만으로는 부족해요. 회차와 도구 상태까지 함께 담겨 있어야 해요.
- 점수가 가장 좋았던 회차의 저장본을 따로 표시해 두고, 지나쳤을 때 그리로 돌아가요.
- 저장본은 크고 무거워서 몇 개만 남기고 지워요. 남에게 나눠 주는 것도 이 저장본이에요.
목차
1비유로 이해하기
목도리를 뜨다 말고 자리를 떠야 할 때가 있어요. 바늘을 그냥 빼 두면 코가 줄줄이 풀려서 처음부터 다시 떠야 해요. 그래서 뜨던 코를 여분 바늘에 하나씩 옮겨 꽂아 두고, 옆에 몇 단까지 떴는지 적어 둬요.
이렇게 해 두면 며칠 뒤에 돌아와도 그 자리에서 이어 뜰 수 있어요. 코가 몇 개인지, 어디까지 왔는지가 그대로 남아 있으니까요. 더 마음에 들었던 자리가 있으면 그때 옮겨 둔 바늘을 꺼내 거기서 다시 떠 나가도 돼요. 여분 바늘 한 벌이 그 시점을 통째로 붙들어 둔 것이거든요. 학습 도중에 남기는 체크포인트가 이 여분 바늘이에요.
2자세히 알아보기
왜 중간에 옮겨 꽂아 두나요
큰 모델의 학습은 며칠에서 몇 주씩 걸려요. 그동안 정전이 나기도 하고, 빌려 쓰던 계산 자원의 시간이 끝나기도 하고, 사소한 오류로 프로그램이 멈추기도 해요. 저장본이 없으면 그 순간까지의 시간과 비용이 모두 풀린 코처럼 사라져요.
되돌릴 수 있다는 것도 큰 이유예요. 학습을 길게 돌리다 보면 어느 지점을 넘어서면서 오히려 나빠지는 일이 흔해요. 회차마다 코를 옮겨 두었다면 가장 좋았던 회차를 꺼내 쓰면 그만이에요. 남겨 두지 않았다면 나빠진 결과를 그냥 받아들이거나 처음부터 다시 돌려야 해요.
설정을 바꿔 여러 갈래로 실험할 때도 쓸모가 있어요. 중간 저장본 하나를 여러 벌 복사해 각각 다른 설정으로 이어 돌리면, 앞부분을 되풀이하지 않고도 여러 갈래를 비교할 수 있어요.
무엇이 함께 있어야 이어 뜰 수 있나요
가장 중요한 것은 모델 안의 값들이에요. 학습이 지금까지 맞춰 놓은 숫자 뭉치예요. 이것만 있으면 그 시점의 모델로 답을 내는 일은 할 수 있어요.
그런데 이어서 학습하려면 그것만으로는 모자라요. 지금이 몇 번째 회차인지, 걸음 크기가 계획상 지금 얼마인지, 값을 옮기는 도구가 지금까지 쌓아 둔 기세가 어느 정도인지가 함께 있어야 해요. 이 정보 없이 값만 들고 이어 가면 걸음이 처음처럼 커지거나 기세가 끊겨서 학습이 한동안 흔들려요. 코만 옮겨 꽂고 몇 단째인지 적어 두지 않으면 무늬가 어긋나는 것과 같아요. 답을 내기 위한 저장본과 이어 하기 위한 저장본은 담을 것이 달라요.
여분 바늘이 금방 모자라요
저장본은 생각보다 무거워요. 모델 안의 값이 수억 개니 하나가 수 기가바이트에 이르기도 하고, 이어 하기 위한 정보까지 담으면 두세 배로 불어나요. 회차마다 남기다 보면 저장 공간이 금세 바닥나요.
그래서 규칙을 정해 둬요. 가장 최근 것 몇 개만 남기고 오래된 것부터 지우되, 점수가 가장 좋았던 저장본은 지우지 않고 따로 표시해 두는 식이에요. 저장본 이름에 회차와 점수를 적어 두는 것도 이 때문이에요. 나중에 여러 개가 남았을 때 무엇이 어느 시점 것인지 알 수 없으면 꺼내 쓸 수가 없거든요.
남에게 건네는 것
학습을 마친 뒤 남에게 나눠 주는 것도 결국 이 저장본이에요. 이때는 이어 하기 위한 정보를 빼고 값만 담아 가볍게 만들어요. 받는 쪽은 대부분 답을 내는 데만 쓰니까요.
반대로 남이 올려 둔 저장본을 받아 자기 자료로 이어 학습하는 일도 흔해요. 맨땅에서 시작하는 대신 이미 많이 배운 상태에서 출발하는 셈이라 시간과 비용이 크게 줄어요. 널리 쓰이는 모델을 내려받아 손볼 때, 우리가 실제로 손에 넣는 것은 그 모델의 체크포인트 하나예요.
3조금 더 정확하게
체크포인트(Checkpoint)는 학습 중 특정 시점의 모델 파라미터와 학습 상태를 파일로 저장한 것이에요. 이어서 학습하기 위한 저장본에는 파라미터 외에 옵티마이저의 내부 상태, 학습률 스케줄의 진행도, 현재 에포크와 스텝, 난수 생성기의 상태가 함께 들어가요. 배포용으로 내보낼 때는 파라미터만 남겨 크기를 줄이는 것이 보통이에요.
비유가 어긋나는 지점도 있어요. 코를 여분 바늘로 옮기면 원래 바늘에서는 빠지지만, 체크포인트는 복사해 두는 것이라 학습은 그대로 이어져요. 또 옮겨 둔 코를 되꽂으면 그날의 상태가 완벽히 되살아나는 것과 달리, 이어 학습이 처음 돌렸을 때와 한 치도 다르지 않게 흘러가지는 않아요. 자료를 섞는 순서나 계산 장치의 미세한 차이 때문에 조금씩 갈라지거든요. 그래서 저장본은 "정확히 같은 길을 다시 간다"가 아니라 "같은 자리에서 다시 출발한다"에 가까워요.
4직접 해보기
5흔한 오해
체크포인트는 완성된 모델을 뜻한다고 생각하기 쉽지만, 실제로는 학습 도중 어느 시점의 상태를 담은 저장본이라 완성 전 것도 완성 후 것도 모두 체크포인트예요.
값만 저장해 두면 이어서 학습할 수 있다고 여기기 쉽지만, 실제로는 회차와 도구 상태가 함께 있어야 흔들림 없이 이어져요.
저장본은 많을수록 안전하다고 믿기 쉽지만, 실제로는 하나하나가 무거워서 남길 개수와 기준을 정해 두지 않으면 저장 공간이 먼저 바닥나요.
7한 줄 요약
그러니까체크포인트는 뜨던 코를 여분 바늘에 옮겨 꽂아 두는 것과 같아서, 끊긴 자리에서 이어 가거나 가장 좋았던 회차로 돌아가기 위해 남겨 둬요.
잘못된 내용이나 더 좋은 비유가 있나요? 수정 제안 보내기 · 마지막 수정2026-09-02