File size: 5,679 Bytes
2fdeec6
4562725
0493a5d
 
 
 
 
 
c8b7979
a343534
c8b7979
a343534
91984c2
2fdeec6
a52247d
c8b7979
 
a343534
 
 
42ad8b0
 
8c1fd6e
a343534
d620a68
 
2d9610a
b9be6c0
 
 
e868350
0be7e11
 
 
 
 
 
586f371
0be7e11
 
c8b7979
 
 
acf5423
c8b7979
 
2c53778
ceb9fd0
c8b7979
785818d
 
 
 
 
 
 
 
 
 
2c53778
785818d
c8b7979
e868350
42ad8b0
c8b7979
 
 
 
 
 
 
 
 
 
 
1758358
 
 
 
 
a343534
c8b7979
a343534
1758358
a343534
1758358
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c8b7979
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a343534
91984c2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
---
base_model: 
- ibm/merlinite-7b
- InferenceIllusionist/Magic-Dolphin-7b
- SanjiWatsuki/Kunoichi-DPO-v2-7B
- mlabonne/Monarch-7B
- bardsai/jaskier-7b-dpo-v6.1

library_name: transformers
tags:
- mergekit
- merge
license: apache-2.0
---


# Excalibur-7b

<img src="https://i.imgur.com/viIO4WT.png" width="550"/>

<b> Update: A [fine-tuned version](https://huggingface.co/InferenceIllusionist/Excalibur-7b-DPO/) of this model is now publicly available, along with benchmark results. If you're looking for a more conversational, assistant-style exchange you won't want to miss it!</b> 

<i>Image generated with Envoid's [Model9](https://huggingface.co/Envoid/model9) SDXL model </i>

GGUFs can be found [here](https://huggingface.co/InferenceIllusionist/Excalibur-7b-GGUF)

Alternative GGUFs from [bartowski](https://huggingface.co/bartowski) can be found [here](https://huggingface.co/bartowski/Excalibur-7b-GGUF).

EXl2 can also be found [here](https://huggingface.co/bartowski/Excalibur-7b-exl2) again courtesy of [bartowski](https://huggingface.co/bartowski)!


### Performance Comparison
| Name | Avg. | ARC | HellaSwag | MMLU | TruthfulQA | Winogrande | GSM8K |
| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- |
| <b>Excalibur-7b</b> | <u><b>73.6</b></u> | <u><b>69.71</b></u> | <u><b>87.56</b></u> | <u><b>65.66</b></u> | <u><b>67.24</b></u> | <u><b>82.79</b></u> | <u><b>68.61</b></u> |
| Magic-Dolphin-7b | 67.48 | 65.78 | 85.61 | 64.64 | 58.01 | 79.64 | 51.18 |
| merlinite-7b | 64 | 63.65 | 84.52 | 64.91 | 50.15 | 79.72 | 41.09 |
[* Open LLM Leaderboard Dataset](https://huggingface.co/datasets/open-llm-leaderboard/details_InferenceIllusionist__Excalibur-7B)

### Methodology
[Magic-Dolphin-7b](https://huggingface.co/InferenceIllusionist/Magic-Dolphin-7b) was an unexpected surprise. Profoundly satisfied with it as a first attempt. For this follow-up I wanted to target the MMLU benchmark specifically.
The challenge this time was placing more weight on Merlinite-7b as an unknown quantity that hasn't been in the spotlight despite its novel LAB tuning method.

<b>Excalibur-7b</b> builds on past success and is the culmination of several learnings:
* Measuring KL-divergences for new quantization types brought a deeper understanding of benchmarking and assessing model performance
* This signifcantly sped up the testing process by using MMLU as a base, narrowing down over 10 candidate linear merges to 1: merliniteX-blockB1
* Reaching the limitations of linear merging necessitated a pivot to reviewing the viability of SLERP, DARE-TIES, and Passthrough methods
* Thus a competing candidate merge pool was tested between different merge algorithms. Once more the list was narrowed from 10 candidates to 1: merliniteX-blockF2
* merliniteX-blockF2 (SLERP of Magic-Dolphin-7B and jaskier-7b-dpo in unorthadox proportions) was originally planned for release earlier this week
* Instead -blockB1 and -blockF2 were merged and the results were placed head to head in a final round of tests. Ultimately a more conventional execution of SLERP showed the best results for the final step.



# Sample Question

<img src="https://i.imgur.com/fdFYIhv.jpeg" width="550"/>

# Bonus Question - Vision Capabilities

<b>Requires additional [mistral-7b-mmproj-v1.5-Q4_1.gguf](https://huggingface.co/koboldcpp/mmproj/tree/main) file for vision functionality</b>
<img src="https://i.imgur.com/4wbUrjf.jpeg" width="550"/>

Select up the gguf file of your choice in Kobold as usual, then make sure to choose the mmproj file above in the LLaVA mmproj field of the model submenu:
<img src="https://i.imgur.com/x8vqH29.png" width="550"/>

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:
* [ibm/merlinite-7b](https://huggingface.co/ibm/merlinite-7b)
* [InferenceIllusionist/Magic-Dolphin-7b](https://huggingface.co/InferenceIllusionist/Magic-Dolphin-7b)
* [SanjiWatsuki/Kunoichi-DPO-v2-7B](https://huggingface.co/SanjiWatsuki/Kunoichi-DPO-v2-7B)
* [mlabonne/Monarch-7B](https://huggingface.co/mlabonne/Monarch-7B)
* [bardsai/jaskier-7b-dpo-v6.1](https://huggingface.co/bardsai/jaskier-7b-dpo-v6.1)

### Configuration

The following YAML configurations were used to produce this model:


<b>merliniteX-blockB1</b>
```yaml
models:
  - model: models/merlinite-7b
    parameters:
      weight: 1.0
  - model: models/Kunoichi-DPO-v2-7B
    parameters:
      weight: 0.2
  - model: models/jaskier-7b-dpo-v6.1
    parameters:
      weight: 0.6
  - model: models/Monarch-7b
    parameters:
      weight: 0.4
merge_method: linear
dtype: float16
```

<b>merliniteX-blockF2</b>
```yaml
slices:
  - sources:
      - model: models/Magic-Dolphin-7b
        layer_range: [0, 32]
      - model: models/jaskier-7b-dpo-v6.1
        layer_range: [0, 32]
merge_method: slerp
base_model: models/Magic-Dolphin-7b
parameters:
  t:
    - filter: self_attn
      value: [0, 0.5, 0.3, 0.7, 0.5, 1]
    - filter: mlp
      value: [1, 0.5, 0.7, 0.3, 0.5, 0]
    - value: 0.5 # fallback for rest of tensors
dtype: float16
```

<b>merliniteX-blockH1 (Excalibur-7b)</b>
```yaml
slices:
  - sources:
      - model: models/merliniteX-blockF2
        layer_range: [0, 32]
      - model: models/merliniteX-blockB1
        layer_range: [0, 32]
merge_method: slerp
base_model: models/merliniteX-blockF2
parameters:
  t:
    - filter: self_attn
      value: [1, 0.7, 0.3, 0.5, 0]
    - filter: mlp
      value: [0, 0.3, 0.7, 0.5, 1]
    - value: 0.5 # fallback for rest of tensors
dtype: float16

```