File size: 8,495 Bytes
1aedb67
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
---
language:
- de
base_model:
- mistralai/Mistral-7B-v0.1
- hiig-piai/simba-v01c
- OpenPipe/mistral-ft-optimized-1227
- DRXD1000/Phoenix
- VAGOsolutions/SauerkrautLM-7b-LaserChat
- DiscoResearch/DiscoLM_German_7b_v1
library_name: transformers
license: apache-2.0
model_name: VerwaltungsAnthologie_talky
model_type: mistral
pipeline_tag: text-generation
prompt_template: '### System: Hallo! Du bist eine höfliche KI-Assistenz und hilfst dem User, Texte besser zu verstehen. ### User Prompt: BEGININPUT § 1 PodG \n (1) Wer die Berufsbezeichnung "Podologin" oder "Podologe" führen will, bedarf der Erlaubnis. ENDINPUT BEGININSTRUCTION Schreibe ein kurzes Résumée zu diesem § mit einfachen Worten. ENDINSTRUCTION ### Model Answer: '
tags:
- mergekit
- merge
- german
- mistral
- deutsch

---
# BEWARE – this model is experimental ONLY!

This is a merge of pre-trained language models created using [mergekit](https://github.com/cg123/mergekit) – it is built for experimental purposes only as I am too dumb how to fix all those different 'promptings' and BOS/EOS-token mixtures due the merges.

## Main Idea behind this model
This model has been created by merging different german language specialized models to fulfill possible "downstream" tasks as an "instruct"-model for german based texts like "Write a Résumée", "Name the Top-10 keywords" and so on…
It is not really a "Chatbot".

## Merge Details

As many models emerge at the moment, I got also inspired to test several different combinations of mainly german based and/or finetuned models that have not yet been tested. While doing those first experiments, the first series of models like latest [hiig-piai/simba-v01c](https://huggingface.co/hiig-piai/simba-v01c) by HIIG emerged with the purpose of writing "shorter" and "easier" written summaries.

Being an enthusiast and working for a company that supports only the public administration sector and legislative institutions in germany there always is the problem to 'translate' words and sentences between "bureaucratic" language vs. "regular" language everybody uses and/or even understands it. Especially even more if we start talking about the "juridical" (legal) language. I thought it might be worth a try to combine a specialised fine-tuned experimental model like [hiig-piai/simba-v01c](https://huggingface.co/hiig-piai/simba-v01c) out of scope (as the Humboldt team mentioned) with several of the other finetuned models for the german language. That was also the reason to name this model like "BureaucraticAnthology" (VerwaltungsAnthology) instead of "MistralLaserKrautSimbaPhoenix1227Disco-7B" (or something like that …).

This experimental model is a bit "talkier" than my unreleased "clear"-version as [DiscoResearch/DiscoLM_German_7b_v1](https://huggingface.co/DiscoResearch/DiscoLM_German_7b_v1) seems to push the 'character' into a short 'Logorrhea' – I am not capable of changing the EOS-tokens as all models used are very different for prompting and tokenisation.

It took me 10 tries of different mergings to get a combination that seems to work – this "talky" one was only the addition of a fifth model after I finished the (unreleased) "clear" model.

### Merge Method

This model was merged using the [DARE](https://arxiv.org/abs/2311.03099) [TIES](https://arxiv.org/abs/2306.01708) merge method using [mistralai/Mistral-7B-v0.1](https://huggingface.co/mistralai/Mistral-7B-v0.1) as a base.

### Models Merged

The following models were included in the merge:
* [hiig-piai/simba-v01c](https://huggingface.co/hiig-piai/simba-v01c)
* [OpenPipe/mistral-ft-optimized-1227](https://huggingface.co/OpenPipe/mistral-ft-optimized-1227)
* [DRXD1000/Phoenix](https://huggingface.co/DRXD1000/Phoenix)
* [VAGOsolutions/SauerkrautLM-7b-LaserChat](https://huggingface.co/VAGOsolutions/SauerkrautLM-7b-LaserChat)
* [DiscoResearch/DiscoLM_German_7b_v1](https://huggingface.co/DiscoResearch/DiscoLM_German_7b_v1)

### Configuration

The following YAML configuration was used to produce this model:

```models:
  - model: mistralai/Mistral-7B-v0.1
    # No parameters necessary for base model
  - model: VAGOsolutions/SauerkrautLM-7b-LaserChat
    parameters:
      density: 0.53
      weight: 0.1875
  - model: hiig-piai/simba-v01c
    parameters:
      density: 0.53
      weight: 0.25
  - model: DRXD1000/Phoenix
    parameters:
      density: 0.53
      weight: 0.1875
  - model: OpenPipe/mistral-ft-optimized-1227
    parameters:
      density: 0.53
      weight: 0.1875
  - model: DiscoResearch/DiscoLM_German_7b_v1
    parameters:
      density: 0.53
      weight: 0.1875
merge_method: dare_ties
base_model: mistralai/Mistral-7B-v0.1
parameters:
  int8_mask: true
dtype: bfloat16
name: VerwaltungsAnthologie_talky_7B
```

## Examples
Based upon my hobbies I rechecked some of those possible sources where "readable" summaries could become a real help – as long as there are no free and curated summaries available.

Using a local llama.cpp-server-instanza with a Q6.GGUF (I can not afford a real GPU - just kidding – this is a sustainabilty debate ;) – and I do always test with a temperature of "0.0" to check the most realistic summary hoping that the system will not start to hallucinate. The full example including the prompts (btw. DiscoLM-based) is in the /examples/ folder.

### Server
```
llama.cpp/build/bin/server -m ./VerwaltungsAnthologie_talky_7B/ggml-model-Q6_K.gguf -c 4096 --override-kv tokenizer.ggml.add_eos_token=bool:true
```

### Client
```
curl -s /dev/null 127.0.0.1:8080/completion -H "Content-Type: application/json" -d '{"temperature": 0.0, "n_predict": 2048, "n_keep": 4096, "cache_prompt": true, "prompt": '"$( cat ./examples/example_34c_gewo.txt | jq --raw-input --slurp . )"'}' | jq '.content' ; echo;
```

### Example #1 - the short stuff
I prepared a short example taken from the pages of official german legislation: [§ 1 Podologiegesetz (PodG)](https://www.gesetze-im-internet.de/podg/__1.html)

| Answer §1 PodG - "talky" | Answer §1 PodG - "clean" |
| -------- | -------- |
| "§ 1 PodG regelt die Berufsbezeichnung \"Podologin\" oder \"Podologe\". Wer diese Bezeichnung führen will, benötigt eine Erlaubnis. Die Bezeichnungen \"Medizinische Fußpflegerin\" oder \"Medizinischer Fußpfleger\" dürfen nur von Personen mit einer Erlaubnis nach Satz 1 oder einer Berechtigung oder staatlichen Anerkennung nach § 10 Abs. 1 geführt werden.\n\nPodologinnen und Podologen aus Vertragsstaaten des Europäischen Wirtschaftsraumes können die Berufsbezeichnung ohne Erlaubnis führen, wenn sie ihre Tätigkeit als vorübergehende und gelegentliche Dienstleistung im Sinne des Artikels 50 des EG-Vertrages ausüben. Sie unterliegen jedoch der Meldepflicht und Nachprüfung nach diesem Gesetz. Gleiches gilt für Drittstaaten und Drittstaatsangehörige, soweit sich hinsichtlich der Anerkennung von Ausbildungsnachweisen nach dem Recht der Europäischen Gemeinschaften eine Gleichstellung ergibt." | § 1 PodG regelt die Berufsbezeichnung \"Podologin\" oder \"Podologe\". Wer diese Bezeichnung führen will, benötigt eine Erlaubnis. Die Bezeichnung \"Medizinische Fußpflegerin\" oder \"Medizinischer Fußpfleger\" darf nur von Personen mit einer Erlaubnis nach Satz 1 oder einer Berechtigung oder staatlichen Anerkennung nach § 10 Abs. 1 geführt werden. Podologinnen und Podologen, die Staatsangehörige eines Vertragsstaates des Europäischen Wirtschaftsraumes sind, führen diese Berufsbezeichnung im Geltungsbereich dieses Gesetzes ohne Erlaubnis, sofern sie ihre Berufstätigkeit als vorübergehende und gelegentliche Dienstleistung im Sinne des Artikels 50 des EG-Vertrages im Geltungsbereich dieses Gesetzes ausüben. Sie unterliegen jedoch der Meldepflicht und Nachprüfung nach diesem Gesetz. Gleiches gilt für Drittstaaten und Drittstaatsangehörige, soweit sich hinsichtlich der Anerkennung von Ausbildungsnachweisen nach dem Recht der Europäischen Gemeinschaften eine Gleichstellung ergibt. |

### Example #2 - the long stuff
(todo - as the short stuff is not really shorter – it worked better with longer original texts)

## Thanks to
(todo - a very VERY long list mentioning all those people and projects that have already pushed the german language as far as now into this N-dimensional vectorized world)

## LICENSING
(todo – something something hopefully based upon all licenses everyone can use)

## Tests
(todo – but is a regular german ROUGE-test really the appropriate idea for that?)