--- base_model: - v000000/HaloMaidRP-v1.32-15B-Ruby - v000000/HaloMaidRP-v1.32-15B-Sapphire library_name: transformers tags: - mergekit - merge - llama --- # merge This is a merge of pre-trained language models created using [mergekit](https://github.com/cg123/mergekit). ## Merge Details ### Merge Method This model was merged using the SLERP merge method. ### Models Merged The following models were included in the merge: * [v000000/HaloMaidRP-v1.32-15B-Ruby](https://huggingface.co/v000000/HaloMaidRP-v1.32-15B-Ruby) * [v000000/HaloMaidRP-v1.32-15B-Sapphire](https://huggingface.co/v000000/HaloMaidRP-v1.32-15B-Sapphire) ### Configuration The following YAML configuration was used to produce this model: # Recipe ```yaml #1. Take a collection of RP and Storywriter 8b models and merge them. dtype: float32 merge_method: linear weight: 0.15 parameters: - model: tokyotech-llm/Llama-3-Swallow-8B-v0.1 weight: 0.4 parameters: - model: NeverSleep/Llama-3-Lumimaid-8B-v0.1-OAS weight: 0.1 parameters: - model: maldv/llama-3-fantasy-writer-8b weight: 0.6 parameters: - model: Nitral-AI/Hathor_Respawn-L3-8B-v0.8 #2. Use task-arithmetic to learn the vector directions from the RP-Mix onto Llama-3-SPPO which is the smartest 8B model imo, this way we can preserve Meta's multi-bullion dollar tuning. models: dtype: float32 normalize: false parameters: base_model: UCLA-AGI/Llama-3-Instruct-8B-SPPO-Iter3 merge_method: task_arithmetic weight: 0.35 parameters: - model: rpmix-part1 weight: 1.0 parameters: - model: UCLA-AGI/Llama-3-Instruct-8B-SPPO-Iter3 #2,5. Apply abliteration to the previous model models: dtype: float32 merge_method: linear weight: 1.0 parameters: - model: sppo-rpmix-part2+grimjim/Llama-3-Instruct-abliteration-LoRA-8B #3. Create an abliterated version of Stheno3.2-8B as we will use this in the 15B frankenmerge. models: dtype: float32 merge_method: linear weight: 1.0 parameters: - model: Sao10K/L3-8B-Stheno-v3.2+grimjim/Llama-3-Instruct-abliteration-LoRA-8B #4. Make an inverted version of a Llama-3-15B Frankenmerge with the previous models. models: model: v000000/L3-8B-Stheno-v3.2-abliterated - layer_range: [24, 32] - sources: model: v000000/SwallowMaid-8B-L3-SPPO-abliterated - layer_range: [8, 24] - sources: parameters: model: v000000/L3-8B-Stheno-v3.2-abliterated - layer_range: [8, 24] - sources: model: v000000/SwallowMaid-8B-L3-SPPO-abliterated - layer_range: [0, 24] - sources: slices: #5. Make an non-inverted version of a Llama-3-15B Frankenmerge with the previous models. merge_method: passthrough dtype: float32 model: v000000/SwallowMaid-8B-L3-SPPO-abliterated - layer_range: [24, 32] - sources: model: v000000/L3-8B-Stheno-v3.2-abliterated - layer_range: [8, 24] - sources: model: v000000/SwallowMaid-8B-L3-SPPO-abliterated - layer_range: [8, 24] - sources: model: v000000/L3-8B-Stheno-v3.2-abliterated - layer_range: [0, 24] - sources: slices: #6. Test the previous two models and determine which is better in the output/input stage and which is best in the middle and we slerp them in a v-shape. merge_method: passthrough dtype: float32 t: [0, 0.5, 1, 0.5, 0] parameters: dtype: float32 base_model: v000000/Sthalomaid-15B-abliterated merge_method: slerp - model: v000000/Sthalomaid-15B-Inverted-abliterated - model: v000000/Sthalomaid-15B-abliterated #7. Apply Blackroot Lora in a model_stock merge of the different models so far models: dtype: float32 merge_method: model_stock base_model: v000000/Sthalomaid-V-15B-abliterated - model: v000000/Sthalomaid-15B-Inverted-abliterated+Blackroot/Llama-3-8B-Abomination-LORA - model: v000000/Sthalomaid-15B-abliterated+Blackroot/Llama-3-8B-Abomination-LORA - model: v000000/Sthalomaid-V-15B-abliterated+Blackroot/Llama-3-8B-Abomination-LORA #seems to work on 15b - model: v000000/Sthalomaid-15B-Inverted-abliterated - model: v000000/Sthalomaid-15B-abliterated - model: v000000/Sthalomaid-V-15B-abliterated #7. Create another 15B frankenmerge from just SPPO and abiterate it, this is so we can merge in a smarter model. models: dtype: float32 merge_method: passthrough slices: - sources: - layer_range: [0, 24] model: UCLA-AGI/Llama-3-Instruct-8B-SPPO-Iter3+grimjim/Llama-3-Instruct-abliteration-LoRA-8B - sources: - layer_range: [8, 24] model: UCLA-AGI/Llama-3-Instruct-8B-SPPO-Iter3+grimjim/Llama-3-Instruct-abliteration-LoRA-8B parameters: - sources: - layer_range: [8, 24] model: UCLA-AGI/Llama-3-Instruct-8B-SPPO-Iter3+grimjim/Llama-3-Instruct-abliteration-LoRA-8B - sources: - layer_range: [24, 32] model: UCLA-AGI/Llama-3-Instruct-8B-SPPO-Iter3+grimjim/Llama-3-Instruct-abliteration-LoRA-8B #8. Learn vectors from our previous blackroot model_stock model to smarter SPPO-Iter model to preserve RP capabilities. models: - model: v000000/HaloMaidRP-V-15B-Blackroot-v0.1 parameters: weight: 1.3 merge_method: task_arithmetic base_model: v000000/Llama-3-Instruct-15B-SPPO-Iter3-abliterated parameters: normalize: false #9. Merge the blackroot model_stock-15B and SPPO-15B models together with a smooth gradient. dtype: float32 slices: - sources: - model: v000000/HaloMaidRP-V-15B-Blackroot-v0.1 layer_range: [0, 64] - model: v000000/HaloMaidRP-V-15B-Blackroot-v0.223 layer_range: [0, 64] merge_method: slerp base_model: v000000/HaloMaidRP-V-15B-Blackroot-v0.223 parameters: t: - filter: self_attn value: [0, 0.5, 0.3, 0.7, 1, 0.1, 0.6, 0.3, 0.8, 0.5] - filter: mlp value: [1, 0.5, 0.7, 0.3, 0, 0.3, 0.4, 0.7, 0.2, 0.5] - value: 0.5 dtype: bfloat16 #Oops accidentally swtich to half precision do this also very important #10. Heal the layers, o_proj and down_proj seems to be the only tensors that determine adaptation to a new architecture, so we can steal them from an already finetuned 15B, #this way we don't need to finetune our new frankenmerge at all to have full performance. Why reinvent the wheel? #sapphire models: - model: v000000/HaloMaidRP1_component merge_method: slerp base_model: ZeusLabs/L3-Aethora-15B-V2 parameters: t: - filter: o_proj value: 0 - filter: down_proj value: 0 - value: 1 dtype: bfloat16 #11. Go back to an earlier checkpoint that had interesting results with being very depraved before the blackroot model_stock merge and do the same as (10.) to heal it. #ruby models: - model: v000000/component____HaloMaidRP-V merge_method: slerp base_model: ZeusLabs/L3-Aethora-15B-V2 parameters: t: - filter: o_proj value: 0 - filter: down_proj value: 0 - value: 1 dtype: bfloat16 #12. Then we merge these two together to get a semi-depraved smart model. #emerald slices: - sources: - model: v000000/HaloMaidRP-v1.32-15B-Sapphire layer_range: [0, 64] - model: v000000/HaloMaidRP-v1.32-15B-Ruby layer_range: [0, 64] merge_method: slerp base_model: v000000/HaloMaidRP-v1.32-15B-Sapphire parameters: t: - filter: self_attn value: [0.1, 0.6, 0.3, 0.8, 0.5] - filter: mlp value: [0.9, 0.4, 0.7, 0.2, 0.5] - value: 0.5 dtype: bfloat16 ```