Nouveau post : mini-série nanochat v1 La bonne façon de penser aux LLMs est que vous n'optimisez pas pour un modèle spécifique, mais pour une famille de modèles contrôlés par un seul réglage (la puissance de calcul que vous souhaitez dépenser) pour obtenir des résultats de plus en plus meilleurs. Cela vous permet de faire une science rigoureuse des lois d'échelle et finalement, c'est ce qui vous donne la confiance que lorsque vous payez pour "la grande course", l'extrapolation fonctionnera et votre argent sera bien dépensé. Pour la première version publique de nanochat, mon objectif était de créer un pipeline de bout en bout qui exécute l'ensemble du pipeline LLM avec toutes ses étapes. Maintenant, après avoir réalisé quelques courses plus tôt, je reviens pour développer certaines des parties que j'ai accélérées, en commençant bien sûr par le pré-entraînement, qui est à la fois lourd en calcul et critique comme fondement de l'intelligence et des connaissances dans ces modèles. Après avoir ajusté localement certains des hyperparamètres, j'ai exploré un certain nombre de modèles en fixant le budget FLOPs. (Pour chaque cible de FLOPs, vous pouvez entraîner un petit modèle longtemps, ou un grand modèle pendant une courte période.) Il s'avère que nanochat obéit à de très belles lois d'échelle, reproduisant essentiellement les graphiques du document Chinchilla : Ce qui n'est qu'une version bébé de ce graphique de Chinchilla : Très important et encourageant, l'exposant sur N (paramètres) et D (tokens) est égal à ~=0.5, donc tout comme Chinchilla, nous obtenons une constante unique (indépendante du calcul) qui relie la taille du modèle aux horizons d'entraînement des tokens. Dans Chinchilla, cela a été mesuré à 20. Dans nanochat, il semble que ce soit 8 ! Une fois que nous pouvons entraîner des modèles optimaux en termes de calcul, j'ai exploré une mini-série de d10 à d20, qui sont des tailles de nanochat pouvant traiter des tailles de lot de 2**19 ~= 0.5M sur un nœud 8XH100 sans accumulation de gradient. Nous obtenons de jolis graphiques d'entraînement non-intersectants pour chaque taille de modèle. Ensuite, la partie amusante consiste à relier cette mini-série v1 aux mini-séries GPT-2 et GPT-3 afin que nous sachions que nous sommes sur la bonne voie. La perte de validation présente de nombreux problèmes et n'est pas comparable, donc à la place, j'utilise le score CORE (du document DCLM). Je l'ai calculé pour GPT-2 et l'ai estimé pour GPT-3, ce qui nous permet enfin de positionner nanochat de manière agréable et sur la même échelle : Le coût total de cette mini-série est seulement d'environ 100 $ (~4 heures sur 8XH100). Ces expériences nous donnent confiance que tout fonctionne assez bien et que si nous payons plus (en tournant le réglage), nous obtenons des modèles de plus en plus performants. TLDR : nous pouvons entraîner des mini-séries optimales en termes de calcul et les relier à GPT-2/3 via des scores CORE objectifs, mais des améliorations supplémentaires sont souhaitables et nécessaires. Par exemple, égaler GPT-2 nécessite actuellement environ 500 $, mais à mon avis, cela devrait être possible de le faire pour moins de 100 $ avec plus de travail. Le post complet avec beaucoup plus de détails est ici : Et tout le réglage et le code sont poussés vers master et les gens peuvent reproduire cela avec les scripts bash scaling_laws .sh et miniseries .sh.