홈 AI 모델의 콜드 스타트는 스토리지 배치에 따라 달라집니다. 런타임이 추론 전에 필요한 모든 가중치를 찾아 읽고 디코딩하고 매핑한 다음 전송해야 하기 때문입니다.
동일한 모델의 복사본 두 개라도 시작 속도가 다를 수 있습니다. 한 복사본은 로컬 NVMe에 이미 캐시되어 있고 로딩에 적합한 형식으로 저장된 반면, 다른 복사본은 네트워크 공유 폴더, 조각화된 파일 시스템, 압축 아카이브 또는 잘 정리되지 않은 샤드 디렉터리에 있을 수 있기 때문입니다. 콜드 경로에는 토크나이저 파일, 구성, 런타임 초기화, 가속기 할당, 최초 실행도 포함됩니다. 아래 섹션에서는 원시 스토리지 대역폭과 체크포인트 배치를 분리해 시작 지연이 어느 단계에서 발생하는지 추적할 수 있도록 설명합니다.
콜드 스타트는 스토리지와 런타임 단계가 이어진 과정입니다
프로세스가 첫 파일을 열었다고 해서 모델이 준비된 것은 아닙니다. 런타임은 체크포인트 메타데이터를 확인하고, 모델 구조를 생성하고, 가중치 바이트를 읽고, 텐서를 역직렬화하거나 매핑하고, 대상 메모리를 할당하고, 데이터를 전송한 뒤 커널 또는 실행 그래프를 초기화해야 합니다.
서버리스 추론 연구에서는 콜드 스타트 로딩을 LLM 서비스가 준비되기 전 지연의 주요 요인으로 지목합니다. 가장 느린 단계는 모델 크기, 형식, 스토리지 계층, 호스트 메모리, 가속기 경로에 따라 달라집니다.
빠른 SSD는 읽기 시간을 줄일 수 있지만 역직렬화, CPU 복사, GPU 전송 또는 커널 워밍업 시간은 그대로일 수 있습니다. 전체 대기 시간을 하나의 디스크 벤치마크로 간주하지 말고 각 경계에서 시간을 측정하세요.
로컬리티에 따라 가중치가 캐시, LAN 또는 디스크에서 전달됩니다
로컬 NVMe에 저장된 가중치는 네트워크 지연이나 다른 서버의 대기열 없이 읽을 수 있습니다. SMB, NFS, 오브젝트 스토리지 또는 차가운 외장 디스크에 있는 모델은 로컬 로딩이 시작되기 전에 전송 및 원격 캐시 동작을 추가합니다.
노드 캐시 모델에 관한 최근 연구는 대규모 아티팩트를 로컬에 유지하면 이후 복제본 시작이 반복적인 원격 전송에 훨씬 덜 의존하게 된다는 점을 보여줍니다. 홈 서버에서도 같은 원리가 최초 다운로드와 반복적인 로컬 실행을 구분합니다.
로컬이라고 해서 항상 따뜻한 상태인 것은 아닙니다. 재부팅, 캐시 축출, 파일 시스템 재마운트 또는 동시에 발생하는 대량 읽기로 인해 다음 시작 시 모델 페이지 대부분을 물리 스토리지에서 다시 가져와야 할 수 있습니다.
ZimaSpace의 모델 축출 관련 글에서는 이와 연관된 메모리 경계를 다룹니다. 모델이 더 이상 상주하지 않으면 다음 요청에서 빠른 실행 상태를 다시 구축해야 합니다.
체크포인트 형식이 역직렬화와 복사 작업을 좌우합니다
체크포인트는 로딩에 최적화된 하나의 연속 파일일 수도 있고, 인덱스가 있는 여러 텐서 샤드, 압축 아카이브 또는 Python 객체와 텐서 메타데이터를 재구성하는 프레임워크 전용 직렬화 형식일 수도 있습니다.
ServerlessLLM은 순차 체크포인트 읽기를 사용해 콜드 스타트 오버헤드를 줄입니다. 대규모 직접 읽기와 예측 가능한 텐서 배치를 지원하는 레이아웃은 작은 메타데이터 작업과 중간 재구성에 낭비되는 시간을 줄입니다.
샤딩은 한 번에 하나의 샤드만 처리하므로 호스트 RAM 최대 사용량을 줄일 수 있지만, 작은 파일이 지나치게 많으면 디렉터리 조회, 파일 열기, 탐색, 인덱스 처리 횟수가 늘어납니다. 최적의 샤드 크기는 로더의 병렬 처리 방식과 기본 파일 시스템에 따라 달라집니다.
압축은 저장 공간과 시작 시 CPU 작업을 맞바꿉니다. 스토리지가 매우 느릴 때는 도움이 될 수 있지만, 빠른 SSD가 압축 해제와 메모리 복사를 기다려야 하는 상황에서는 오히려 불리할 수 있습니다.
메모리 매핑은 페이지가 RAM에 들어오는 시점을 바꿉니다
즉시 로딩 방식은 대규모 호스트 버퍼를 할당하고 체크포인트의 대부분 또는 전체를 읽은 뒤 텐서를 다른 위치로 복사할 수 있습니다. 메모리 매핑 방식은 가상 매핑을 생성하고, 접근되는 파일 페이지를 운영 체제가 필요할 때 RAM으로 가져오도록 합니다.
연구와 최신 로딩 시스템은 메모리 매핑 로딩을 사용해 아티팩트 전체가 익명 메모리에 중복 저장되는 것을 방지합니다. 이를 통해 RAM 최대 사용량을 줄이고, 파일 시스템 캐시를 통해 여러 프로세스가 페이지를 재사용할 수 있습니다.
메모리 매핑이 스토리지 지연을 없애는 것은 아닙니다. 읽기 작업을 페이지 폴트가 발생하는 시점으로 옮길 뿐이므로, 필요한 페이지가 로드되거나 프리페치되지 않았다면 최초 추론이 여전히 멈출 수 있습니다.
모델이 대부분의 가중치를 순서대로 접근한다면 순차 프리페치가 도움이 될 수 있습니다. 반면 무작위 전문가 또는 멀티모달 구성 요소 접근은 페이지 폴트 패턴을 예측하기 어렵게 만들 수 있습니다.
스토리지 경로에 여유가 있을 때만 병렬 로딩이 도움이 됩니다
여러 로더 스레드 또는 GPU 복사 스트림은 읽기, 디코딩, 전송을 겹쳐 처리할 수 있습니다. 하지만 약한 SSD, USB 브리지, 네트워크 공유 폴더 또는 파일 시스템 메타데이터 경로를 포화시켜 질서 정연한 단일 읽기를 여러 경쟁 스트림으로 바꿀 수도 있습니다.
NVIDIA의 동시 가중치 스트리밍 관련 엔지니어링 결과는 로딩 설계와 스토리지 선택이 함께 개선 효과를 결정한다는 점을 보여줍니다. 소스와 대상이 대기열을 과도하게 늘리지 않고 병렬 처리를 감당할 수 있을 때 병렬화가 유용합니다.
홈 서버에서는 같은 스토리지 풀에서 미디어를 제공하고, 백업을 기록하고, 파일을 검사하거나, 데이터베이스를 실행할 수도 있습니다. 모델 디렉터리 자체가 바뀌지 않아도 이러한 작업은 콜드 스타트 지연을 변화시킵니다.
웜 캐시와 가중치 재사용이 반복 시작 시간을 좌우할 수 있습니다
부팅 후 최초 시작에서는 모델의 모든 바이트를 스토리지에서 읽을 수 있지만, 두 번째 시작에서는 파일 시스템 페이지 캐시, 유지된 GPU 메모리 또는 가중치를 재사용할 수 있도록 준비된 런타임의 혜택을 받을 수 있습니다.
Tangram은 가중치 재사용을 통해 GPU 메모리에서 시작 시간을 단축합니다. 홈 서버에서 얻을 수 있는 더 일반적인 교훈은 ‘콜드 스타트’를 테스트하기 전에 어떤 캐시와 프로세스를 초기화했는지 명시해야 한다는 것입니다.
방금 웜 실행을 마친 모델과 재부팅 직후의 다른 모델을 비교하지 마세요. 콜드 상태, 파일 시스템 웜 상태, 런타임 웜 상태, 가속기 웜 상태를 각각 별도로 정의하세요.
반복 가능한 콜드 상태 테스트로 레이아웃을 벤치마크하세요
모델 크기, 파일 수, 샤드 크기, 파일 시스템, 마운트 옵션, 스토리지 장치, 네트워크 경로, 로더 모드, 호스트 RAM, 가속기 메모리, 경쟁 I/O를 기록하세요. 그런 다음 메타데이터 확인, 호스트 읽기, 역직렬화, 장치 전송, 런타임 초기화, 첫 토큰까지의 시간을 측정하세요.
FlowLoader는 로컬 모델 캐싱을 연구합니다. 체크포인트 배치와 파이프라인 중첩을 통해 시작 시간을 수초 또는 수분에서 줄일 수 있기 때문입니다. 정확한 개선 폭은 실제 병목이 스토리지인지, 복사인지, 초기화인지에 따라 달라집니다.
파일 시스템 캐시를 비운 후, 일반적인 웜 실행 후, 대표적인 NAS 트래픽이 발생하는 동안 각각 반복 테스트를 수행하세요. 결과적인 차이를 통해 레이아웃 변경, 더 빠른 로컬 계층, 샤드 수 감소, 메모리 매핑 또는 상시 유지 정책이 도움이 될지 확인할 수 있습니다.
기술 및 AI 허브
더 읽어보기

계절에 따른 생활 패턴 변화 후 스마트 홈 예측이 부정확해지는 이유는 무엇인가요?
계절에 따른 생활 패턴의 변화는 시간, 센서, 재실 여부, 원하는 동작 간의 관계를 바꾸어, 과거 습관을 기반으로 학습한 모델을 낡게 만듭니다.

객체 추적을 활성화하면 가정용 NVR이 짧은 이벤트를 놓치는 이유는 무엇인가요?
추적을 시작하고 궤적을 확인하려면 충분한 감지가 필요하므로, 짧게 나타난 객체는 NVR이 유효한 이벤트를 생성하기 전에 사라질 수 있습니다.

모델 업그레이드 후 AI 사진 라벨이 바뀌는 이유는 무엇인가요?
모델 업그레이드는 레이블을 할당하는 데 사용되는 표현과 순위를 변경하므로, 동일한 사진도 서로 다른 의미적 또는 신뢰도 경계를 넘을 수 있습니다.

