Semi-Healed Llama-3 15B Frankenmerge

Llama3-15B-HaloMaidRP-v1.33-8K

image/jpeg

Thanks mradermacher for the quants!

Quants:

This is the third iteration "Emerald" of the final four and the one I liked the most. It has had limited testing though, but seems relatively decent. Better than 8B at least.

Findings: o_proj and down_proj can be stolen from Aethora-v2 so new 15B frankenmerges don't seem to really need finetuning to "heal" the layers, though it has a big influence on the output so it's slightly censored in one-shot.

Samplers

I found success with:
temperature 0.9-1.2
min_p 0.08
tfs 0.97
smoothing_factor 0.3
smoothing_curve 1.1

Nymeria preset (more coherent):
temp 0.9
top_k 30
top_p 0.75
min_p 0.2
rep_pen 1.1
smooth_factor 0.25
smooth_curve 1

merge

This is a merge of pre-trained language models created using mergekit.

Merge Details

Merge Method

This model was merged using an iterative merging process. (Probably ~10 models got thrown away in the process.)

Models Merged

The following models were included in the merge:

Configuration

The following YAML configuration was used to produce this model:

Recipe

#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 elinas 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 elinas 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 main 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 (this)
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

#sapphire version is somewhat better at keeping formatting and is smarter overall, but its very bland imo

Prompt Template

<|begin_of_text|><|start_header_id|>system<|end_header_id|>

{system_prompt}<|eot_id|><|start_header_id|>user<|end_header_id|>

{input}<|eot_id|><|start_header_id|>assistant<|end_header_id|>

{output}<|eot_id|>

uncensored=no

Downloads last month
13
Safetensors
Model size
15B params
Tensor type
BF16
·
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.

Model tree for v000000/HaloMaidRP-v1.33-15B-L3