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: FuseAI/FuseChat-7B-VaRM # embed_tokens comes along with the ride with whatever is the first layer | |
layer_range: [0, 1] | |
- model: SanjiWatsuki/Kunoichi-DPO-v2-7B # 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: FuseAI/FuseChat-7B-VaRM | |
layer_range: [1, 5] | |
- sources: | |
- model: SanjiWatsuki/Kunoichi-DPO-v2-7B | |
layer_range: [5, 7] # 2 layers | |
- sources: | |
- model: FuseAI/FuseChat-7B-VaRM | |
layer_range: [5, 15] | |
- sources: | |
- model: SanjiWatsuki/Kunoichi-DPO-v2-7B | |
layer_range: [15, 27] # 12 layers | |
- sources: | |
- model: FuseAI/FuseChat-7B-VaRM | |
layer_range: [15, 27] | |
- sources: | |
- model: SanjiWatsuki/Kunoichi-DPO-v2-7B | |
layer_range: [27, 29] # 2 layers | |
- sources: | |
- model: FuseAI/FuseChat-7B-VaRM | |
layer_range: [27, 31] | |
- sources: # same as above, but for lm_head with the last layer | |
- model: FuseAI/FuseChat-7B-VaRM | |
layer_range: [31, 32] | |
- model: SanjiWatsuki/Kunoichi-DPO-v2-7B | |
layer_range: [31, 32] | |
parameters: | |
weight: 0 | |
dtype: float16 | |
tokenizer_source: model:FuseAI/FuseChat-7B-VaRM # keep exact tokenizer used by dolphin - or you could use `union` if you add all of the input models to the first/last slice | |