Fine tuning de un modelo de lenguaje via proxy

El fine tuning vía proxy es útil cuando tenemos un modelo que: o es demasiado grande para poder entrenarlo o no tenemos acceso a él. Aunque hemos de tener acceso a los logits que calcula para cada token.

La solución a este problema es tomar un modelo más pequeño (el proxy) con el mismo vocabulario y entrenarlo.

Así tendríamos tres modelos: el grande, el pequeño sin entrenar y el pequeño entrenado.

Si pasamos el mismo prompt a los tres modelos obtendremos tres distribuciones diferentes para los tokens del modelo. Una para cada modelo.

Ahora tomamos los resultados de los dos modelos pequeños y calculamos sus diferencias para cada token. Ahora aplicamos esas diferencias a los tokens del modelo grande. Con estos nuevos logits podemos calcular las nuevas probabilidades de cada token usando softmax.

Puedes ver una explicación rápida en el siguiente short:

Vídeo de mi canal de YouTube

Link al paper:

https://arxiv.org/pdf/2401.08565.pdf