merge_method: linear # use linear so we can include multiple models, albeit at a zero weight parameters: weight: 1.0 # weight everything as 1 unless specified otherwise - linear with one model weighted at 1 is a no-op like passthrough slices: - sources: - model: alchemonaut/QuartetAnemoi-70B-t0.0001 # embed_tokens comes along with the ride with whatever is the first layer layer_range: [0, 1] - model: lizpreciatior/lzlv_70b_fp16_hf # add dummy second model with 0 weight so tokenizer-based merge routine is invoked for embed_tokens layer_range: [0, 1] parameters: weight: 0 - sources: - model: alchemonaut/QuartetAnemoi-70B-t0.0001 layer_range: [1, 20] - sources: - model: lizpreciatior/lzlv_70b_fp16_hf layer_range: [10, 30] - sources: - model: alchemonaut/QuartetAnemoi-70B-t0.0001 layer_range: [20, 40] - sources: - model: lizpreciatior/lzlv_70b_fp16_hf layer_range: [30, 50] - sources: - model: alchemonaut/QuartetAnemoi-70B-t0.0001 layer_range: [40, 60] - sources: - model: lizpreciatior/lzlv_70b_fp16_hf layer_range: [50, 70] - sources: - model: alchemonaut/QuartetAnemoi-70B-t0.0001 layer_range: [60, 79] - sources: # same as above, but for lm_head with the last layer - model: alchemonaut/QuartetAnemoi-70B-t0.0001 layer_range: [79, 80] - model: lizpreciatior/lzlv_70b_fp16_hf layer_range: [79, 80] parameters: weight: 0 dtype: float16 tokenizer_source: model:alchemonaut/QuartetAnemoi-70B-t0.0001 # keep exact tokenizer used by Quartet - or you could use `union` if you add all of the input models to the first/last slice, but they would need to be non-zero weight or you'll get NaNs in your embeddings