We train our models using the _ZeRO_ optimizer strategy (Rajbhandari et al., 2019) via PyTorch's FSDP framework (Zhao et al., 2023), which reduces memory consumption by sharding the model weights and their corresponding optimizer state across GPUs. At the 7B scale, this enables training with a micro-batch size of 4096 tokens per GPU on our hardware (see Section 3.4). For OLMo-1B and -7B models, we use a constant global batch size of approximately 4M tokens (2048 instances, each with a sequence length of 2048 tokens). For OLMo-65B model (currently training), we use a batch size warmup that starts at approximately 2M tokens (1024 instances), then doubles every 100B tokens until reaching approximately 16M tokens (8192 instances).
우리는 PyTorch의 FSDP 프레임워크(Zhao et al., 2023)를 통해 _ZeRO_ Optimizer 전략(Rajbhandari et al., 2019)을 사용하여 모델을 훈련하며, 이 전략은 GPU 전반에 걸쳐 모델 가중치와 해당 Optimizer 상태를 sharding하여 메모리 소비를 줄입니다. 7B 규모의 경우, 이를 통해 하드웨어에서 GPU당 4096개의 토큰으로 구성된 마이크로 Batch Size로 훈련할 수 있습니다(섹션 3.4 참조). OLMo-1B 및 -7B 모델의 경우, 약 4M 토큰(2048개 인스턴스, 각각 시퀀스 길이가 2048개 토큰)의 일정한 글로벌 Batch Size를 사용합니다. OLMo-65B 모델(현재 훈련 중)의 경우, 약 2M 토큰(1024개 인스턴스)에서 시작하여 약 16M 토큰(8192개 인스턴스)에 도달할 때까지 100B 토큰마다 Batch Size warmup을 두 배로 늘립니다.
우리는 PyTorch의 FSDP 프레임워크(Zhao et al., 2023)를 통해 _ZeRO_ 옵티마이저 전략(Rajbhandari et al., 2019)을 사용하여 모델을 훈련하며, 이 전략은 GPU 전반에 걸쳐 모델 가중치와 해당 옵티마이저 상태를 샤딩하여 메모리 소비를 줄입니다. 7B 규모의 경우, 이를 통해 하드웨어에서 GPU당 4096개의 토큰으로 구성된 마이크로 배치 크기로 훈련할 수 있습니다(섹션 3.4 참조). OLMo-1B 및 -7B 모델의 경우, 약 4M 토큰(2048개 인스턴스, 각각 시퀀스 길이가 2048개 토큰)의 일정한 글로벌 배치 크기를 사용합니다. OLMo-65B 모델(현재 훈련 중)의 경우, 약 2M 토큰(1024개 인스턴스)에서 시작하여 약 16M 토큰(8192개 인스턴스)에 도달할 때까지 100B 토큰마다 배치 크기 워밍업을 두 배로 늘립니다.