Has decidido hacer fine-tuning de un modelo 7B con tus propios datos. Entonces llegas a la primera bifurcación real: tres nombres de métodos, cada uno con una respuesta distinta. La documentación de Unsloth dice que empieces con QLoRA. Axolotl dice que depende de tu hardware. La mitad de los blogs que has leído por encima dicen «usa LoRA para casi todo» y siguen adelante. Mientras tanto, tienes una sola GPU delante y no estás seguro de que pueda ejecutar siquiera una de ellas.
Esta es la decisión de la que dependen todas las demás. El método que elijas fija tu presupuesto de VRAM, el presupuesto de VRAM determina tu hardware, y el hardware determina tu coste. Si te equivocas de método, o bien gastas dinero en memoria de GPU que no necesitabas, o pasas un fin de semana persiguiendo crasheos por falta de memoria en una tarjeta que nunca iba a servir para el trabajo.
Así que vamos a resolverlo. Esto es lo que realmente diferencia a LoRA, QLoRA y el full fine-tuning, lo que cada uno te cuesta en memoria y calidad, y una regla para dirigir tu propio caso hacia uno de ellos.
La versión corta
- La opción por defecto es QLoRA. Para la mayoría de los fine-tunings en una sola GPU, empieza con QLoRA. La tabla de Axolotl sitúa una ejecución QLoRA de 7-8B en aproximadamente 10-14 GB de VRAM, asumiendo contexto corto y micro-batches pequeños. Eso encaja en muchas tarjetas de consumo o prosumer de 12-24 GB, pero no en todas las tarjetas con poca VRAM. Recurre a LoRA simple cuando tengas memoria de sobra y quieras pasos más rápidos; reserva el full fine-tuning para los pocos casos que realmente lo necesiten.
- La diferencia de VRAM es grande. Hacer fine-tuning de un modelo 7B requiere aproximadamente 60-80 GB para el full fine-tuning, 16-24 GB para LoRA, y 10-14 GB para QLoRA, según las cifras publicadas por Axolotl. Esa diferencia es la razón misma por la que existen los métodos eficientes en parámetros.
- La pérdida de calidad depende de la tarea, no es uniforme. En la mayoría de las tareas de seguimiento de instrucciones y salida estructurada, LoRA y QLoRA se sitúan a pocos puntos porcentuales del fine-tuning completo. La brecha se amplía en el razonamiento complejo, como las matemáticas. Ahí es donde el fine-tuning completo todavía justifica su costo.
- El fine-tuning completo es la excepción, no la referencia. Se recurre a él para grandes cambios de distribución, modificaciones a escala de preentrenamiento o tareas críticas en razonamiento donde los benchmarks muestran la brecha, no como opción segura por defecto.
Lo que esta guía no cubre
Esta es una guía de selección de método, no un tutorial de implementación. Algunas cosas quedan deliberadamente fuera de alcance:
- Variantes de LoRA (DoRA, VeRA, LoRA+). Los tres métodos principales son la decisión que importa primero; las variantes son refinamientos a los que se recurre más adelante.
- Código paso a paso. Aquí no hay comandos de instalación ni scripts de entrenamiento. Eso es un tutorial práctico independiente, no cubierto aquí.
- Entrenamiento multi-GPU (FSDP, DeepSpeed ZeRO) y la preparación de conjuntos de datos: ambos son temas extensos por sí mismos.
- RLHF, DPO y la optimización de preferencias. Son una clase de objetivo distinta del ajuste fino supervisado.
- Si siquiera debería hacer ajuste fino. Si no está seguro de que el ajuste fino sea la herramienta adecuada frente al retrieval, esa comparación merece su propia respuesta antes de elegir un método aquí.
¿Qué diferencia realmente a LoRA, QLoRA y el ajuste fino completo?
El ajuste fino completo actualiza todos los parámetros del modelo. LoRA congela el modelo base y en su lugar entrena pequeñas matrices de adaptadores de bajo rango (aproximadamente entre el 0,1 % y el 2 % del total de parámetros). QLoRA añade un paso más sobre LoRA: cuantiza el modelo base congelado a una precisión de 4 bits (usando un tipo de dato llamado NF4, NormalFloat) para que la base ocupe mucha menos memoria mientras entrena los adaptadores.
La forma más clara de tener los tres en mente es como una escalera, donde cada peldaño elimina un costo del que está debajo.
El ajuste fino completo es el peldaño más bajo, y el más pesado. Cada peso es entrenable, así que el optimizador tiene que rastrear un gradiente y un estado de optimizador para cada parámetro del modelo. Ahí es donde va la memoria, y llegaremos a las matemáticas en la siguiente sección.
LoRA (Low-Rank Adaptation) congela los pesos originales e inyecta pequeñas matrices entrenables en las capas del modelo. Solo esas matrices aprenden; el modelo base va de acompañante. El paper de LoRA reporta que esto reduce los parámetros entrenables hasta 10.000x para un modelo de 175B y reduce la memoria de GPU aproximadamente 3x a esa escala, mientras logra un rendimiento "a la par o mejor que el fine-tuning en calidad de modelo" en los modelos que probaron los autores. Como cambian tan pocos parámetros, el resultado entrenado es minúsculo. El blog de PEFT da dos puntos de referencia útiles: un checkpoint completo de 40 GB para bigscience/mt0-xxl, y un ejemplo separado de LoRA donde el adaptador guardado pesa solo 19 MB. El punto sigue siendo el mismo: los checkpoints de PEFT suelen ser minúsculos comparados con los checkpoints completos del modelo.
QLoRA toma LoRA y reduce la parte que LoRA dejó intacta: la base congelada. Cuantizar esos pesos a NF4 de 4 bits significa que el modelo base ocupa una fracción de la memoria que ocuparía en 16 bits, mientras los adaptadores siguen entrenando con precisión completa por encima. El paper de QLoRA describe NF4 como "óptimo desde el punto de vista teórico de la información para pesos distribuidos normalmente", que es una forma precisa de decir que la representación de 4 bits se elige para coincidir con cómo se distribuyen realmente los pesos del modelo, así que se pierde menos de lo que costaría un redondeo ingenuo a 4 bits.
Esa es toda la pila conceptual: el fine-tuning completo entrena todo, LoRA congela la base y entrena adaptadores, QLoRA comprime la base congelada y entrena adaptadores. Todo lo demás (VRAM, calidad, cuándo usar cuál) se deriva de esas tres decisiones.
¿Cuánta VRAM necesita cada método?
Para un modelo de 7B, las cifras aproximadas son unos 60-80 GB para el full fine-tuning, 16-24 GB para LoRA, y 10-14 GB para QLoRA, según la tabla publicada por Axolotl. La consecuencia práctica: QLoRA suele encajar en muchas GPU de consumo o semiprofesionales de 12-24 GB en configuraciones de contexto corto y lote pequeño, mientras que el full fine-tuning de un modelo de 7B necesita memoria de centro de datos o una configuración multi-GPU.
¿Por qué el full fine-tuning es tan pesado? Matemáticas breves. Cuando entrenas cada parámetro, la GPU guarda tres cosas por parámetro: el peso en sí, su gradiente, y el estado del optimizador (los optimizadores tipo Adam guardan dos valores adicionales por peso). Por eso la factura de memoria es varias veces el tamaño del modelo solo. LoRA congela la base, así que solo paga ese impuesto de gradiente y optimizador en las pequeñas matrices del adaptador. QLoRA además almacena la base congelada en 4-bit en lugar de 16-bit, reduciendo el mayor coste restante.
Así se comparan los tres métodos según el tamaño del modelo, según la documentación de Axolotl y el paper de QLoRA para las cifras de los modelos grandes:
| Método | Modelo 1-3B | Modelo 7-8B | Modelo 70B+ |
|---|---|---|---|
| Full fine-tuning (bf16 + AdamW) | 24-32 GB | 60-80 GB | 4-8x 80 GB |
| LoRA (bf16) | 8-12 GB | 16-24 GB | 2x 80 GB |
| QLoRA (4-bit NF4) | 6-8 GB | 10-14 GB | 40-48 GB |
Fuentes: la documentación de Axolotl para los tres métodos según el tamaño del modelo; el artículo de QLoRA reporta de forma independiente el fine-tuning de un modelo de 65B en una sola GPU de 48 GB «manteniendo el rendimiento de la tarea equivalente al finetuning completo en 16 bits», lo cual coincide con la cifra de 70B de QLoRA. El blog sobre cuantización de 4 bits muestra por separado un modelo de 13B entrenado en una sola T4 de 16 GB y un modelo de 33B en una GPU de 24 GB con QLoRA. Son puntos de referencia útiles si tu objetivo se encuentra entre las filas de la tabla.
El único número que vale la pena memorizar: un modelo de 65B en una sola tarjeta de 48 GB. Ese es el resultado estrella de QLoRA, y redefine lo que significa «solo tengo una GPU».
Conclusión de la sección: la jerarquía de VRAM es full >> LoRA > QLoRA, y el salto de full a QLoRA es lo bastante grande como para pasar un trabajo de un rack multi-GPU a una sola tarjeta.
¿LoRA o QLoRA realmente te cuestan calidad?
Para la mayoría de las tareas de seguimiento de instrucciones y salida estructurada, LoRA y QLoRA se sitúan a pocos puntos porcentuales del fine-tuning completo. La brecha se amplía en el razonamiento complejo (las matemáticas en especial), donde el fine-tuning completo sigue llevando una clara ventaja. Así que la respuesta no es «casi equivalente» ni «peor». Depende de la tarea, y el tipo de tarea te indica de qué lado de esa línea estás.
La evidencia más clara tarea por tarea proviene de un estudio de Anyscale de septiembre de 2023 sobre estudio de Anyscale sobre Llama 2. En ViGGO, una tarea de representación funcional estructurada, LoRA alcanzó aproximadamente el 95% de la precisión del fine-tuning completo en modelos de 7B y 13B: una brecha del 2% que los autores consideraron un intercambio aceptable. En generación de SQL, LoRA casi igualó al fine-tuning completo, y el modelo LoRA de 13B incluso superó al 7B totalmente afinado. En GSM8k, un benchmark de razonamiento matemático, LoRA rindió consistentemente por debajo del fine-tuning completo en 7B y 13B, con la brecha estrechándose solo en 70B. La lectura del equipo de Anyscale es que la aproximación de bajo rango de LoRA podría no capturar una habilidad tan intrincada como el razonamiento matemático de varios pasos.
Una advertencia sobre esas cifras: ese estudio se realizó con Llama 2 en septiembre de 2023. El patrón por tipo de tarea (salida estructurada cercana, razonamiento complejo más alejado) es la conclusión duradera que se ha mantenido en esencia desde entonces. Pero los porcentajes exactos pueden diferir en un modelo base más nuevo como Llama 3 o Mistral, así que trata las cifras como la forma del compromiso, no una garantía para tu modelo.
La historia de calidad de QLoRA es propia. El artículo de QLoRA informa que Guanaco, su modelo de 65B entrenado con QLoRA, alcanzó el 99,3% del rendimiento de ChatGPT en el benchmark Vicuna. Fuerte, pero limitado a ese benchmark específico y esa comparación de 2023, no una afirmación general de que "QLoRA es igual a ChatGPT". Frente al LoRA normal, Axolotl caracteriza a QLoRA como portador de una "ligera degradación debido al ruido de cuantización": la base de 4 bits introduce pequeños errores que la base de precisión completa de LoRA no tiene. Para la mayoría del trabajo esto es invisible; para una tarea sensible a pequeños cambios de precisión, es algo que vale la pena comprobar en lugar de asumir.
Consejo pro: La sorpresa de calidad más común no es QLoRA contra LoRA. Es un modelo afinado que resulta peor que el modelo base del que partiste. Normalmente significa que el entrenamiento hizo algo que no pretendías: demasiado agresivo en un conjunto de datos estrecho, o evaluado solo en la nueva tarea mientras la capacidad general retrocedía silenciosamente. Prueba siempre el modelo afinado con algunos prompts fuera de tu distribución de entrenamiento antes de confiar en él. Una regresión ahí es la señal para retroceder, no para lanzarlo.
Conclusión de la sección: la paridad de calidad depende de la tarea. La salida estructurada y el seguimiento de instrucciones son seguros para LoRA/QLoRA; el razonamiento complejo es donde el fine-tuning completo todavía justifica su costo.
¿Cuándo Deberías Elegir Cada Método?
Comienza con QLoRA para la mayoría del fine-tuning en una sola GPU. Sube a LoRA normal cuando tengas margen de VRAM y quieras pasos más rápidos o un techo de calidad un poco más alto. Reserva el fine-tuning completo para los casos que realmente lo necesitan: grandes cambios de distribución, cambios a escala de pre-entrenamiento, o tareas críticas de razonamiento donde la brecha del benchmark es real. Guíate por tres entradas, en orden: VRAM disponible, tipo de tarea y requisito de calidad, luego velocidad.
Aquí está la guía en forma de "haz esto, no eso":
1. Primero revisa tu VRAM. Si tienes una sola tarjeta con 24 GB o menos (la mayoría de las GPU de consumo y prosumer), QLoRA es tu método por defecto, porque es el único de los tres que encaja de forma fiable un modelo de 7B en ese margen. No recurras al full fine-tuning con una sola tarjeta de consumo; la tabla anterior te dice que no cabrá un trabajo de 7B, y pasarás el fin de semana aprendiéndolo por las malas.
2. Luego revisa tu tarea y tu nivel de calidad exigido. Si tu tarea es seguimiento de instrucciones, salida estructurada, SQL o adaptación general de dominio, la evidencia de Anyscale indica que LoRA y QLoRA te dan una calidad casi completa. Quédate con la opción por defecto. Si tu tarea requiere mucho razonamiento (matemáticas de varios pasos, cadenas lógicas complejas) y la calidad no es negociable, esa es tu primera razón real para considerar pasar al full fine-tuning, porque es el único tipo de tarea donde los benchmarks muestran una brecha constante.
3. Luego considera la velocidad. QLoRA sacrifica parte de la velocidad por paso a cambio de su ahorro de memoria: la base de 4 bits tiene que desquantizarse sobre la marcha. Si tienes la VRAM para ejecutar LoRA normal (16-24 GB para un 7B), obtienes pasos más rápidos y te ahorras el ruido de la cuantización, lo que convierte a LoRA en la mejor opción cuando la memoria no es la restricción limitante y estás iterando mucho.
¿Cuándo is es el full fine-tuning la respuesta correcta? La guía de Axolotl es directa: es obligatorio para el pre-entrenamiento, y es la opción "cuando tienes memoria de GPU abundante o configuraciones multi-GPU, y necesitas el máximo rendimiento". Fuera de esas condiciones (y para la gran mayoría del fine-tuning práctico, que consiste en adaptar un modelo existente a un comportamiento o dominio específico), los métodos eficientes en parámetros te dan casi toda la calidad con una fracción del hardware.
Unsloth expresa la opción por defecto con claridad:
"Recomendamos empezar con QLoRA, ya que es uno de los métodos más accesibles y eficaces para entrenar modelos."
Esa es la regla. Por defecto, usa QLoRA, pasa a LoRA para más velocidad cuando tengas la memoria disponible, y recurre al fine-tuning completo solo cuando la tarea o la escala lo exijan.
Conclusión de la sección: QLoRA es la opción por defecto; LoRA es la mejora de velocidad y margen; el fine-tuning completo es la excepción que se justifica con un cambio de distribución, un preentrenamiento o una prueba de razonamiento.
¿Qué es lo que la gente entiende mal sobre los métodos de fine-tuning?
Dos conceptos erróneos son responsables de la mayoría de los fines de semana perdidos. El primero es tratar el fine-tuning como una forma de enseñarle nuevos hechos a un modelo, cuando su efecto principal es moldear el comportamiento. El segundo es asumir que se puede comprar calidad girando una perilla: que un rango LoRA más alto, o un full fine-tuning en lugar de QLoRA, garantiza automáticamente un mejor modelo. Ambas son verdades a medias, y por eso mismo engañan.
¿El fine-tuning le enseña nuevos hechos a un modelo?
Aquí existe una división genuina entre expertos, así que conviene entender bien el matiz en lugar de elegir un bando. Varias guías prácticas señalan que "el fine-tuning enseña nuevos hechos" es el error número uno: su argumento es que el fine-tuning es mucho mejor para moldear cómo responde un modelo que para inyectar de forma confiable hechos específicos que nunca vio durante el pre-entrenamiento. La documentación de Unsloth rebate esto directamente, calificando como "falsa" la afirmación de que el fine-tuning no puede enseñar conocimiento nuevo, y describiendo el fine-tuning como una forma de "inyectar y aprender información nueva específica de un dominio".
Ambos tienen parte de razón, y la lectura que los reconcilia es esta: el fine-tuning es confiable para moldear el comportamiento y reforzar conocimiento que ya está latente en el modelo base, y puede codificar patrones específicos de un dominio. En lo que no es confiable es en implantar hechos discretos que estuvieron completamente ausentes durante el pre-entrenamiento. Cuanto más se parezca tu objetivo a "memorizar este documento específico", más probable es que estés usando la herramienta equivocada, y el retrieval podría servirte mejor. Así que la guía práctica sobrevive al desacuerdo: apóyate en el fine-tuning para el comportamiento y el estilo, sé escéptico respecto a usarlo como mecanismo de inyección de hechos.
¿Un rango LoRA más alto siempre mejora la calidad?
No, y esta es la perilla más fácil de sobregirar. La intuición dice que un rango más alto le da más capacidad al adaptador, así que más tiene que ser mejor. Databricks probó esto de forma empírica y descubrió que duplicar el rango "aparentemente no produce ningún aumento perceptible en la calidad de salida". Lo que realmente marcó la diferencia en sus experimentos fue qué capas se apuntaba (adaptar todas las capas lineales en lugar de solo los bloques de atención), no inflar el número de rango. La conclusión que vale la pena extraer: dedica tu esfuerzo de ajuste a los módulos objetivo y a la calidad de los datos antes de dedicarlo a inflar el rango.
¿La calidad de LoRA siempre es igual a la del fine-tuning completo?
No de forma universal, y un artículo de investigación reciente identifica un modo de fallo específico. "LoRA vs Full Fine-tuning: An Illusion of Equivalence" de Shuttleworth et al. concluye que el entrenamiento LoRA puede introducir "dimensiones intrusas" (vectores singulares de alto rango ausentes en los modelos con fine-tuning completo) y las vincula con el olvido en escenarios de aprendizaje continuo, donde el mismo modelo se somete a fine-tuning repetidamente. Se trata de una advertencia específica, no de una refutación general: si haces una sola ronda de fine-tuning para una sola tarea, la evidencia amplia de paridad de calidad sigue siendo válida. Si encadenas fine-tunings y te importa preservar la capacidad general del modelo base, este es el modo de fallo a vigilar.
Preguntas frecuentes
¿Cuál es la diferencia entre LoRA, QLoRA y el fine-tuning completo?
El fine-tuning completo actualiza todos los parámetros del modelo. LoRA congela el modelo base y en su lugar entrena pequeñas matrices adaptadoras de bajo rango, aproximadamente entre el 0,1 y el 2% de los parámetros. QLoRA hace lo mismo que LoRA y además cuantiza el modelo base congelado a precisión 4-bit NF4, de modo que la base ocupa mucha menos memoria mientras se entrenan los adaptadores. El resultado es una jerarquía de memoria clara: el fine-tuning completo es el más pesado, LoRA es más ligero y QLoRA es el más ligero de todos.
¿Cuánta VRAM necesito para hacer fine-tuning de un modelo de 7B?
Para un modelo de 7B, las cifras de Axolotl sitúan el fine-tuning completo en unos 60-80 GB, LoRA en 16-24 GB, y QLoRA en 10-14 GB. QLoRA es el único de los tres que normalmente cabe en muchas GPU de consumo o prosumer de 12-24 GB; el fine-tuning completo de un modelo de 7B necesita memoria de nivel centro de datos o varias GPU.
¿La calidad de QLoRA es peor que la de LoRA o el fine-tuning completo?
Depende de la tarea. Para la mayoría del trabajo de seguimiento de instrucciones y salida estructurada, QLoRA queda a pocos puntos porcentuales del fine-tuning completo, y Axolotl describe solo una "ligera degradación debido al ruido de cuantización" frente al LoRA normal. La brecha se amplía en tareas de razonamiento complejo como matemáticas, donde el fine-tuning completo mostró una ventaja constante en un estudio de Anyscale de 2023 sobre Llama 2.
¿Cuándo Vale Realmente la Pena el Fine-Tuning Completo?
El fine-tuning completo justifica su costo para el pre-entrenamiento, grandes cambios de distribución, y tareas críticas de razonamiento donde los benchmarks muestran una brecha de calidad real. También es el camino cuando tienes memoria GPU abundante o una configuración multi-GPU y necesitas la máxima calidad. Para el caso común (adaptar un modelo existente a un comportamiento o dominio específico), LoRA o QLoRA te da la mayor parte de la calidad con una fracción del hardware.
¿El fine-tuning le enseña nuevos hechos a un modelo?
En parte. El fine-tuning es fiable para dar forma al comportamiento y reforzar conocimiento ya latente en el modelo base, y puede codificar patrones específicos de dominio. No es fiable para implantar hechos discretos totalmente ausentes del pre-entrenamiento. Aquí hay un desacuerdo genuino entre expertos. La documentación de Unsloth argumenta que el fine-tuning puede enseñar nuevo conocimiento, mientras que otras guías llaman a esto el principal error conceptual, y la visión reconciliadora es usar el fine-tuning para comportamiento y estilo, y recurrir a la recuperación cuando el objetivo es recordar hechos específicos.
Dónde Te Deja Esto
La elección del método se reduce a un valor predeterminado y dos vías de escape: empieza con QLoRA, sube a LoRA cuando la memoria no es la restricción y quieres pasos más rápidos, sube al fine-tuning completo solo cuando un cambio de distribución, pre-entrenamiento, o un benchmark de razonamiento lo exige.
Con el método decidido, la siguiente decisión es el hardware que implica. Tu elección de método acaba de decirte si estás buscando una sola tarjeta de consumo o memoria de centro de datos. Si quieres comparar tarjetas específicas para cargas de trabajo de IA, nuestro H100 vs RTX 4090 cubre ese terreno. Dimensionar la GPU para el método que elegiste, y una guía paso a paso para ejecutar el propio trabajo de entrenamiento, son guías separadas propias.