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: cognitivecomputations/dolphin-2.9-llama3-8b # embed_tokens comes along with the ride with whatever is the first layer layer_range: [0, 1] - model: NousResearch/Meta-Llama-3-8B-Instruct # 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: cognitivecomputations/dolphin-2.9-llama3-8b layer_range: [1, 24] - sources: - model: NousResearch/Meta-Llama-3-8B-Instruct layer_range: [8, 24] parameters: scale: - filter: o_proj value: 0.0 - filter: down_proj value: 0.0 - value: 1.0 - sources: - model: cognitivecomputations/dolphin-2.9-llama3-8b layer_range: [24, 31] - sources: # same as above, but for lm_head with the last layer - model: cognitivecomputations/dolphin-2.9-llama3-8b layer_range: [31, 32] - model: NousResearch/Meta-Llama-3-8B-Instruct layer_range: [31, 32] parameters: weight: 0 dtype: bfloat16 tokenizer_source: model:cognitivecomputations/dolphin-2.9-llama3-8b # keep exact tokenizer used by dolphin - or you could use `union` if you add all of the input models to the first/last slice