Points de contrôle
Il existe trois types de points de contrôle OLMo :
- Points de contrôle OLMo (standard) : Ces points de contrôle peuvent être générés et utilisés par le code de ce dépôt. On les appelle généralement «points de contrôle OLMo».
- Points de contrôle Transformers : Ces points de contrôle peuvent être générés et utilisés via l'implémentation OLMo de la bibliothèque Hugging Face Transformers. À mesure qu'ils développent et améliorons OLMo, notre implémentation dans ce dépôt pourrait devenir temporairement incompatible avec celle de la bibliothèque Transformers.
- Points de contrôle HF OLMo : Ces points de contrôle peuvent être générés et utilisés via le paquet hf_olmo. Ce paquet fournit les fonctionnalités de base de Transformers tout en restant compatible avec la bibliothèque OLMo.
Points de contrôle OLMo (standard)
Il existe deux catégories de points de contrôle OLMo :
- non fragmentés : un point de contrôle complet sous une forme standard ;
- fragmentés : un point de contrôle décomposé en composants plus petits, pour une utilisation plus facile dans notre formation multi-noeuds.
Sauf indication contraire, un point de contrôle OLMo est supposé non fragmenté. Les points de contrôle OLMo fragmentés et non fragmentés peuvent être utilisés avec le script de pré-entraînement/réglage fourni dans ce dépôt.
Points de contrôle OLMo non fragmentés
Chaque répertoire de points de contrôle non fragmentés comprend :
- config.yaml : configuration à cette étape d'apprentissage.
- model.safetensors, optim.safetensors, train.pt : modèle, optimiseur et état d'apprentissage à cette étape. Les points de contrôle des anciennes versions d'OLMo utilisent l'extension .pt.
Les URL des points de contrôle intermédiaires de l'entraînement de nos modèles officiels se trouvent dans les fichiers CSV sous checkpoints/official/. Ces URL de répertoire ne sont actuellement pas directement accessibles, mais les fichiers qu'elles contiennent sont accessibles publiquement.
Points de contrôle OLMo fragmentés
Il existe actuellement quatre types de points de contrôle fragmentés :
- torch_legacy,
- torch_new,
- local,
- et olmo_core.
Ils travaillent encore à l'amélioration des points de contrôle fragmentés et ne disposons donc pas encore de directives pour leur utilisation. Un point de contrôle fragmenté peut être converti en point de contrôle non fragmenté à l'aide de unshard.py.
Points de contrôle Transformers
Ces points de contrôle peuvent être utilisés avec l'implémentation OLMo de la bibliothèque Transformers. L'implémentation OLMo étant intégrée à la bibliothèque, les modèles OLMo prennent en charge la plupart des fonctionnalités des modèles Transformers. Ces points de contrôle ne peuvent pas être utilisés avec le script de pré-entraînement/réglage fourni dans ce dépôt.
Les points de contrôle des transformateurs peuvent être trouvés dans la plupart de nos dépôts HF Hub (par exemple OLMo-2-1124-7B). Un point de contrôle OLMo 2 peut être converti en son équivalent Transformers à l'aide de convert_olmo2_to_hf.py. De même, le script pour OLMo 1 est convert_olmo_to_hf_new.py. Exemple d'utilisation :
| python scripts/convert_olmo2_to_hf.py --input_dir /path/to/olmo/checkpoint --output_dir /path/to/hf/checkpoint/ --tokenizer_json_path tokenizers/allenai_gpt-neox-olmo-dolma-v1_5.json |
Avertissement : À mesure que nous continuons à développer et à améliorer OLMo, notre implémentation dans ce dépôt pourrait devenir incompatible avec celle de la bibliothèque Transformer. Durant ces périodes, les points de contrôle OLMo pourraient ne pas être convertibles en points de contrôle Transformers. Actuellement, tous les points de contrôle OLMo de nos modèles officiellement publiés sont convertibles en points de contrôle Transformers.
Points de contrôle HF OLMo
Ces points de contrôle peuvent être utilisés avec l'implémentation OLMo de type Transformers du paquet hf_olmo. Cette implémentation ne prend en charge que partiellement les fonctionnalités de Transformers. Par conséquent, nous recommandons d'utiliser les points de contrôle Transformers plutôt que ceux-ci, s'ils sont disponibles. Les méthodes « auto » comme AutoModelForCausalLM sont désormais prises en charge pour ces points de contrôle. Ces points de contrôle ne peuvent pas être utilisés avec le script de pré-entraînement/réglage fourni dans ce dépôt.
Les points de contrôle suivants sur HF Hub sont des points de contrôle HF OLMo :
- OLMo-1.7-7B
- OLMo-1B
- OLMo-7B
- OLMo-7B-Twin-2T
Un point de contrôle OLMo peut être converti en son équivalent HF OLMo grâce à convert_olmo_to_hf.py. Exemple d'utilisation :
| python hf_olmo/convert_olmo_to_hf.py --checkpoint-dir /path/to/checkpoint |