por fin, el trabajo final de mi doctorado 🧮 Aprendiendo a Razonar en 13 Parámetros 🧮 desarrollamos TinyLoRA, un nuevo método de ft. con TinyLoRA + RL, los modelos aprenden bien con docenas o cientos de parámetros ejemplo: usamos solo 13 parámetros para entrenar el modelo Qwen de 7B del 76 al 91% en GSM8K 🤯
hay un artículo que me gusta de 2018 llamado Jugando Atari con Seis Neuronas. estableció un precedente de que el RL puede aprender algunos "programas" que ocupan muy pocos bytes yet el ajuste fino más pequeño que la gente suele hacer hoy en día es LoRA con rango=1, que aún utiliza millones de parámetros... 🤔
la forma en que llegamos aquí fue pensando en qué tamaño de "programa" podría enseñar a LLaMA o Qwen a razonar. 3 millones de parámetros en bf16 ocupan 6 MB. ¿esto parece demasiado grande? nuestra teoría: si cada episodio de RL transmite aproximadamente 1 bit, deberíamos poder codificar, por ejemplo, GSM8K en muchos menos datos...
y ten en cuenta que esto *no* funciona con SFT. Básicamente, para minimizar completamente la pérdida con SFT, tienes que memorizar todos los tokens de salida con un 100% de confianza. Esto requiere muchos más bits y, en consecuencia, necesitamos tamaños de actualización más grandes para los modelos SFT para un buen rendimiento: (más sobre esto en la Sección 3)
esto no es solo un artefacto de GSM8K o de cualquier modelo específico en todos los conjuntos de datos que probamos (MATH, AIME, Minerva...), somos capaces de recuperar más del 90% de las ganancias de rendimiento entrenando cientos de parámetros (excepto AMC, que a veces requiere miles)
un detalle divertido de ingeniería es que es realmente difícil hacer RL con diferentes formas de LoRA, ya que el RL de LLM requiere inferencia rápida, lo que requiere una implementación a nivel de hardware (kernels) me las arreglé para sortear esto simplemente fusionando los pesos de LoRA en cada rollout y luego desfusionándolos para el entrenamiento. en realidad no es tan lento. hay más detalles en el documento y compartiré el código pronto
100