En este artículo complementario, mostraré mi implementación para entrenar desde cero un modelo similar a GPT, en Rust. Sin GPU, sólo CPU, con un rendimiento 30 veces mejor que el código C nativo.
en mi ultimo artículopresenté el problema de la multiplicación de matrices, cómo el algoritmo de atención utiliza la multiplicación de matrices para realizar un proceso de promediado y cómo implementar eficientemente, o al menos, para mí, una función de multiplicación de matrices en Rust con Blas.
En este nuevo artículo, quiero mostrar mi primer componente básico para implementar llm.c en Rust, es decir, entrenar un modelo similar a GPT desde cero usando Rust. Esta ha sido mi forma de aprender cada vez más sobre el ecosistema de Rust y comprender cuán comparable es con C. En particular, Quiero que mi código pueda entrenar un modelo similar a GPT, a partir de pesos GPT, usando solo CPU– Entonces no hay GPU ni TPU. Mi objetivo es comprender hasta qué punto podemos impulsar estos modelos en portátiles simples y hasta qué punto se puede utilizar el ecosistema Rust para ello. Con el tiempo, este código también puede ser útil para ajustar los modelos GPT con un corpus de entrada determinado..
Se pueden encontrar todas las piezas de código relevantes. aquí.