| 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.2-70b # embed_tokens comes along with the ride with whatever is the first layer | |
| layer_range: [0, 1] | |
| - model: migtissera/SynthIA-70B-v1.2b # 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.2-70b | |
| layer_range: [1, 20] | |
| - sources: | |
| - model: migtissera/SynthIA-70B-v1.2b | |
| layer_range: [10, 30] | |
| - sources: | |
| - model: WizardLM/WizardMath-70B-V1.0 | |
| layer_range: [20, 40] | |
| - sources: | |
| - model: epfl-llm/meditron-70b | |
| layer_range: [25, 45] | |
| - sources: | |
| - model: cognitivecomputations/dolphin-2.2-70b | |
| layer_range: [30, 50] | |
| - sources: | |
| - model: migtissera/SynthIA-70B-v1.2b | |
| layer_range: [40, 60] | |
| - sources: | |
| - model: WizardLM/WizardMath-70B-V1.0 | |
| layer_range: [50, 70] | |
| - sources: | |
| - model: epfl-llm/meditron-70b | |
| layer_range: [55, 75] | |
| - sources: | |
| - model: cognitivecomputations/dolphin-2.2-70b | |
| layer_range: [60, 79] | |
| - sources: # same as above, but for lm_head with the last layer | |
| - model: cognitivecomputations/dolphin-2.2-70b | |
| layer_range: [79, 80] | |
| - model: migtissera/SynthIA-70B-v1.2b | |
| layer_range: [79, 80] | |
| parameters: | |
| weight: 0 | |
| dtype: float16 | |
| tokenizer_source: model:cognitivecomputations/dolphin-2.2-70b # keep exact tokenizer used by dolphin - 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 |