Skip to main content
TIES (Trim, Elect Sign, and Merge) reduces interference in multi-model merging by keeping only the most significant parameter changes and resolving sign conflicts. This page defines the three-step math used by the TensorEngine.

Overview

TIES operates on task vectors tau_i = theta_ft_i - theta_pre. The three steps are:
  1. Trim: Keep only the top-d fraction of parameters by magnitude in each task vector.
  2. Elect Sign: Resolve sign conflicts across task vectors by majority vote.
  3. Disjoint Merge: Merge only parameters that agree with the elected sign.

Step 1: Trim by Magnitude

Given a task vector tau and density parameter d in (0, 1]:
Parameters with magnitude below the d-th percentile are zeroed out.

Step 2: Elect Sign

Given N trimmed task vectors tau_trimmed_i, elect a sign for each parameter position j:
If the sum is exactly zero, the elected sign is 0 and the parameter is excluded from merging.

Step 3: Disjoint Merge

Merge only parameters where the elected sign matches the task vector’s sign:
The final merged model is:

Rescaling

After disjoint merge, the magnitude of tau_merged may differ from the average magnitude of the source task vectors. Rescaling is optional and controlled by a config flag:
If ||tau_merged||_2 is zero (all parameters excluded), the merge fails and produces INVALID.

Parameters

Failure Modes