OLMO是开源社区十分活跃的选手,他们开源了全部的checkpoint、代码、数据以及训练过程中的训练指标,只能说良心到没有朋友。
此处根据其论文与训练过程的指标窥探一番OLMO的训练过程。
OLMO github:https://github.com/allenai/OLMo
OLMO arxiv:https://arxiv.org/abs/2402.00838
OLMO wandb:https://wandb.ai/ai2-llm/OLMo-1B?nw=nwuserconstantindumi
OLMO data:https://huggingface.co/datasets/allenai/dolma/tree/main/urls
1 Tokenizer
使用了GPT-NeoX的Tokenizer。
2 Data
3 Model and Trainer
OLMO的模型参数如下:
OLMO与其他开源模型参数对比:
OLMO的Trainer参数如下:
OLMO与其他开源Trainer参数对比:
4 Wandb
4.1 学习率调度
对于OLMO-1B模型:
warmup_steps = 2000,下图中观察得到
cosine_decay_steps = total_steps – warmup_steps
warmup_steps之后开始衰减,下图中观察得到:
实验最终steps为738k,按照每step为4M tokens,则应该最终训练了2.8T tokens,与文章中似乎有些不符合。
学习率最终衰减到最大学习率的10% 即3e-5,下图中观察得到:
4.2 loss
对于OLMO-1B模型:
在训练初始阶段,5000 steps pre loss从13下降到3,下图中观察得到:
6k ~18k steps,pre loss从3到2.75左右,下图中观察得到:
训练到738k steps,pre loss在2.4左右,下图中观察得到: