ELAI S.r.l.

Fusionar dos adaptadores LoRA: ¿por qué promediar factores puede cancelar la misma actualización?

Dos adaptadores con efecto idéntico pueden anularse al promediar factores. Contraejemplos ejecutados, concatenación exacta, compresión y contextoICML 2026.

Fusionar dos adaptadores LoRA: ¿por qué promediar factores puede cancelar la misma actualización?

Dos especializaciones no se combinan solo porque los archivos sean pequeños

Una empresa adapta el mismo modelo a dos tareas y obtiene dos pequeños adaptadores LoRA (Low-Rank Adaptation, adaptación de bajo rango). Promediar sus parámetros parece una forma natural de conservar algo de ambos. Pero ¿qué parámetros promediamos: la actualización efectiva del modelo o los dos factores que la representan? No es una distinción meramente formal. Mostramos dos adaptadores con la misma actualización cuyo promedio ingenuo de factores produce una actualización nula.

La pregunta central es cómo combinar actualizaciones factorizadas sin introducir términos ajenos y qué se pierde si queremos conservar el rango inicial. Usamos matrices construidas de₂ por₂, cálculos ejecutados y una compresión comprobada. No entrenamos un modelo, medimos exactitudes ni reproducimos un benchmark. Una investigación deICML 2026 aporta contexto actual, separado de nuestros resultados didácticos; esta monografía no es investigación original.

Primero el producto, después su representación compacta

Para una capa lineal, llamamos W₀ a la matriz inicial, con d filas y k columnas. LoRA representa el cambio mediante B, de d filas y r columnas, y A, de r filas y k columnas. El producto BA tiene la misma forma que W₀ pero rango como máximo r. El rango limita cuántas direcciones independientes expresa la actualización; no mide directamente la calidad de las respuestas.

W_eff = W0 + DeltaW DeltaW = s B A B: d × r A: r × k

s es el factor de escala del adaptador. En los ejemplos vale 1; un sistema real debe incluirlo en la actualización efectiva antes de definir la fusión. Los adaptadores deben referirse al mismo modelo base y a capas compatibles. Igualar formas matriciales no justifica combinar modelos entrenados desde bases distintas. Esa condición forma parte del problema y no puede sustituirse por inspeccionar solo los archivos de factores.

La factorización no es única

Podemos pensar que B construye direcciones de salida y A asigna coordenadas en ellas. Escalar una dirección de B y compensarlo inversamente en A no cambia el producto. Más generalmente, para una matriz invertible Q de r por r, BQ y Q inversa A siguen representando BA. El modelo ve el producto, no la elección arbitraria de coordenadas internas.

(B Q)(Q^(-1) A) = B A

No cambia la tarea ni el efecto de la capa: describimos la misma matriz de dos formas. Un método que pretende promediar actualizaciones debería respetar esa equivalencia. Si su resultado cambia al refactorizar un adaptador sin alterar el producto, también está promediando una elección de representación. El primer experimento aísla exactamente ese problema, sin introducir conflicto entre tareas.

Dos actualizaciones idénticas que se convierten en cero

Elegimos una actualización de rango 1 que actúa solo sobre la primera coordenada. El primer adaptador usa B₁=(1;0) como columna y A₁=(1;0) como fila. En el segundo invertimos ambos signos. Su producto también tiene un 1 en la esquina superior izquierda y ceros en las demás posiciones, porque los signos negativos se compensan. El promedio deseado de productos es esa misma matriz, no cero.

B1 = [[1], [0]] A1 = [[1, 0]] B2 = -B1 A2 = -A1 DeltaW1 = DeltaW2 = [[1, 0], [0, 0]]

Pero al promediar por separado B₁ con B₂ y A₁ con A₂, ambos factores medios se vuelven nulos y su producto es cero. Una representación equivalente del segundo adaptador ha borrado toda la actualización aunque no había efectos diferentes que conciliar. Es un contraejemplo al promedio ingenuo, no una demostración de que toda fusión LoRA sea imposible.

El cambio de signo no es el único caso. El código multiplica B₂ por un c no nulo y divide A₂ por c, conservando el producto. Con c=4, el promedio de factores da 1,5625 en la primera posición en vez de 1; con c=−2 da−0,125. Puede amplificar o incluso invertir la actualización aunque no cambie el efecto lineal de ninguno de los adaptadores.

La expansión revela los términos cruzados

Para identificar la causa tomamos un peso w entre 0 y 1 y comparamos dos operaciones. Promediar actualizaciones combina wB₁ A₁ con (1−w) B₂ A₂. Promediar factores combina primero las B y las A y después multiplica los resultados. La expansión introduce B₁ A₂ y B₂ A₁, emparejando factores de adaptadores distintos, y asigna pesos al cuadrado a los productos originales. No calcula el promedio de actualizaciones declarado.

Bbar Abar = w^2 B1A1 + (1-w)^2 B2A2 + w(1-w)(B1A2 + B2A1) D = w B1A1 + (1-w) B2A2 Bbar Abar - D = w(1-w)(B1-B2)(A2-A1)

El programa verifica la última identidad para cinco valores de w. También explica los casos especiales: factores B idénticos o factores A idénticos anulan la diferencia, igual que w=0 o w=1. Son condiciones suficientes, no permiso para asumir factores compartidos entre adaptadores entrenados independientemente. Las formas matriciales no demuestran que las coordenadas internas ya estén alineadas.

La suma exacta existe, pero el rango puede crecer

Para calcular D exactamente podemos concatenar horizontalmente las B ponderadas y apilar verticalmente las A. La multiplicación por bloques produce solo los productos correspondientes, sin términos cruzados. Para rangos r₁ y r₂, el resultado tiene rango como máximo r₁+r₂, limitado también por d y k. La escala de cada adaptador puede incorporarse a su B ponderada; no hace falta suponer escalas iguales.

Bcat = [w B1, (1-w) B2] Acat = [A1; A2] Bcat Acat = w B1A1 + (1-w) B2A2 = D

El coste aparece en las formas: si R es la suma de rangos, los dos factores contienen R(d+k) coeficientes, no r(d+k) al rango original r. Es un conteo de parámetros, no de RAM total ni latencia. En el ejemplo diminuto de₂ por₂, la factorización de rango 2 ni siquiera ahorra almacenamiento frente a la matriz densa: sirve para transparentar el álgebra. En capas grandes, la ventaja depende de R respecto a d y k.

Cuando los adaptadores añaden direcciones independientes

En el segundo experimento combinamos efectos realmente distintos: la primera actualización es diag(2;0) y la segunda diag(0;1). Con pesos iguales obtenemos D=diag(1;0,5), de rango 2. Cada adaptador inicial tiene rango 1, pero su media contiene dos direcciones independientes. Es un cambio estructural, no un error numérico. Un solo adaptador de rango 1 no puede representar esa matriz exactamente.

D1 = [[2, 0], [0, 0]] D2 = [[0, 0], [0, 1]] D = (D1+D2)/2 = [[1, 0], [0, 0.5]] Naive = [[0.5, 0.25], [0.5, 0.25]]

El promedio ingenuo produce la última matriz: cambia valores diagonales e introduce coeficientes fuera de la diagonal que no estaban en ninguna actualización original. La concatenación devuelve D exactamente. Comparamos errores con la norma de Frobenius, raíz de la suma de cuadrados de las diferencias entre coeficientes. Es una distancia entre matrices, no un porcentaje de exactitud en una tarea.

error_F(X) = sqrt(sum_ij (X_ij - D_ij)^2)

Volver al rango original exige elegir qué perder

La descomposición en valores singulares, SVD, separa una matriz en direcciones de entrada y salida con intensidades no negativas. Los valores singulares de D son 1 y 0,5. La mejor aproximación de rango 1 en distancia de Frobenius conserva 1 y descarta 0,5, dando diag(1;0) con error 0,5. Es óptima para esa distancia, no necesariamente para todas las tareas del modelo.

MétodoRango resultanteError de Frobenius
Media de factores10.7905694150
SVD rango 110.5000000000
Concatenación exacta20.0000000000

Para concretar el límite usamos la entrada e₂=(0;1). La actualización deseada devuelve (0;0,5) y la truncada devuelve cero. No afirmamos que el modelo pierda el 100% de exactitud: aquí no hay benchmark. La afirmación precisa y comprobada es que la acción lineal sobre esa dirección desaparece por completo. Un criterio de compresión debe interpretarse junto con las entradas y objetivos relevantes.

Izquierda: entrada(0,0) tras promediar factores de actualizaciones idénticas reparametrizadas mediante c; la línea discontinua marca el objetivo 1. Derecha: errores respecto a diag(1;0,5) en el segundo experimento. Son casos distintos, no exactitudes de un modelo entrenado.
Izquierda: entrada(0,0) tras promediar factores de actualizaciones idénticas reparametrizadas mediante c; la línea discontinua marca el objetivo 1. Derecha: errores respecto a diag(1;0,5) en el segundo experimento. Son casos distintos, no exactitudes de un modelo entrenado.

Comprimir sin construir inmediatamente la matriz densa

La suma exacta y el coste de representarla son cuestiones separadas. Si el rango concatenado R es pequeño frente a d y k, podemos trabajar con factores delgados. La descomposición QR escribe cada factor como una base de columnas ortonormales multiplicada por una matriz compacta. Sus direcciones son perpendiculares y unitarias; estas coordenadas conservan las distancias euclídeas del subespacio representado.

Bcat = Qb Rb Acat^T = Qa Ra D = Qb (Rb Ra^T) Qa^T

Cuando R no supera d ni k, el núcleo Rb por Ra transpuesta mide R por R. Podemos calcular su SVD, conservar r componentes y volver mediante Qb y Qa. El programa verifica que coincide con la SVD truncada de D en el ejemplo construido. No implementa el método CtM del artículo: comprueba una ruta QR-núcleo para sumar exactamente y después comprimir.

Para factores densos delgados, el coste aritmético orientativo crece como(d+k) R²en las QR y R³en la SVD del núcleo, bajo esas condiciones dimensionales. No convertimos esas expresiones en milisegundos ni ahorro de memoria medido: no ejecutamos un modelo grande. Al crecer R, el núcleo también pierde ventaja. Factorizar evita algunos costes, pero no hace gratuita la composición de un número arbitrario de adaptadores.

El contexto de2026: elegir subespacios antes de fusionar

Compress then Merge, de Zhengbao He y colaboradores, figura en las actas deICML 2026, PMLR 306, páginas 41212–41243. Leímos la versión arXiv 2606.03723 v 1 del 2 dejunio de₂026 para el método y protocolo experimental y verificamos por separado su publicación. El trabajo separa elegir subespacios compartidos del operador posterior de fusión, imponiendo el rango de salida por construcción y no solo después de fusionar.

Estos resultados no se trasladan automáticamente a un caso empresarial. El protocolo leído usa adaptadores de rango 16 con CLIP ViT-B/32 en ocho tareas visuales y LLaMA3-8B en seis tareas de inferencia del lenguaje natural (NLI), que evalúan relaciones entre frases, seleccionando hiperparámetros en validación y normalizando resultados de prueba frente a adaptadores individuales. No reprodujimos esos experimentos. Garantizar un rango matricial no garantiza capacidades universales: los subespacios deben evaluarse en las tareas pertinentes.

Qué demostramos y qué falta medir

Los resultados separan tres cuestiones confundidas a menudo: corrección algebraica del promedio, posibilidad de representar el resultado al rango elegido y calidad del modelo en datos. El contraejemplo de signos trata la primera; la matriz diagonal de rango 2 trata la segunda. La tercera exige conjuntos de datos, baselines, configuración de adaptación y evaluación independiente. Ningún ejemplo construido demuestra por sí solo mejores respuestas de un modelo real.

Los ejemplos no contienen pesos de productos EL-AI ni datos de clientes. El código usa Python y NumPy con matrices fijas, sin azar, y guarda resultados y tolerancia 10⁻¹². Tres aserciones comparan el efecto deseado, el resultado incorrecto y la concatenación correcta. Comprobar solo las formas de los factores no detectaría el problema: los productos y las propiedades declaradas son la referencia de la prueba.

La respuesta es clara: promediar factores no equivale en general a promediar actualizaciones, porque aparecen términos cruzados e influye una representación no única. La concatenación ofrece una construcción exacta, pero puede aumentar el rango. Comprimirla exige elegir una pérdida aceptable, que el error de Frobenius por sí solo no convierte en utilidad empresarial. Antes de combinar capacidades hay que saber qué operación matemática ejecuta realmente el software.

Fuentes y lectura relacionada

Zhengbao He, Ruiqi Ding, Zhehao Huang, Ruikai Yang, Tao Li, Xiaolin Huang. Compress then Merge: From Multiple LoRAs into One Low-Rank Adapter. arXiv:2606.03723v1, 2 June 2026; methods and experiments sections read 21 October 2026..

Compress then Merge, ICML 2026, PMLR 306:41212–41243. Proceedings status verified 21 October 2026; distinct from our independent toy calculations..

LoRA: rango, geometría de adaptación y límites medibles

import numpy as np
B1=np.array([[1.],[0.]])
A1=np.array([[1.,0.]])
B2=-B1; A2=-A1
expected=(B1@A1+B2@A2)/2
factor_average=((B1+B2)/2)@((A1+A2)/2)
assert np.allclose(expected,[[1,0],[0,0]])
assert np.allclose(factor_average,0)
Bcat=np.concatenate([B1/2,B2/2],axis=1)
Acat=np.concatenate([A1,A2],axis=0)
assert np.allclose(Bcat@Acat,expected)
print(expected, factor_average)

Código, datos e instrucciones · JSON. Cálculos didácticos ejecutados con Python 3.14.0; figuras con Matplotlib 3.11.2. Análisis asistido por IA, sin afirmar revisión por pares ni humana. Portada original ImageGen ilustrativa: no documenta personas, sedes ni instalaciones de EL-AI. Fuentes consultadas el 21 de octubre de 2026.