tags:
- merge
license: other
QuartetAnemoi-70B-t0.0001
A sequential merge using a custom algorithm (NearSwap) of:
In our testing, this model seems like a storyteller, as might be expected. We were impressed that, unlike most models, at the end of a story it did not often use cliches such as "In the end", "And so", "beacon of hope", etc.
NearSwap Algorithm
NearSwap retains most of the weights of the base model (Miqu), but when a weight is similar between the two, it is interpolated to the secondary model value. A parameter t specifies the sameness threshold. When the distance between two values is below t, the weight from the secondary model is used.
This version of the model uses t = 0.0001. At this t, about 0.8% of weights are fully switched to the secondary model during each pass. Model quality rapidly degrades above t = 0.0025:
- t = 0.0001 (~0.8% full swap): This model
- t = 0.0003 (~2% full swap)
- t = 0.001 (~10% full swap): BoreanGale-70B
- t = 0.0025 (~18% full swap): Generates one paragraph okay, but then reverts to garbage
- t = 0.005 (~35% full swap): Garbage; semi-related word lists
- t = 0.01 (~55% full swap): Garbage; pseudorandom tokens output
For QuartetAnemoi-70B-t0.0001, the three secondary models were each merged sequentially with t = 0.0001.
NearSwap implementation:
t: Union[float, np.ndarray],
v0: Union[np.ndarray, torch.Tensor],
v1: Union[np.ndarray, torch.Tensor],
...
lweight = numpy.absolute(v0-v1)
lweight = t / lweight
lweight = numpy.nan_to_num(lweight, nan=1.0, posinf=1.0, neginf=1.0)
numpy.clip(lweight, a_min=0.0, a_max=1.0, out=lweight)
res = lerp(lweight,v0,v1)
License and Use
Since the ultimate origin of Miqu is at this time unknown beyond speculation, this model is for noncommercial research use only.