transformers pytorch safetensors mistral text-generation merge mergekit lazymergekit DiscoResearch/DiscoLM_German_7b_v1 DRXD1000/Phoenix VAGOsolutions/SauerkrautLM-7b-v1-mistral malteos/hermeo-7b base_model:DiscoResearch/DiscoLM_German_7b_v1 base_model:DRXD1000/Phoenix base_model:VAGOsolutions/SauerkrautLM-7b-v1-mistral base_model:malteos/hermeo-7b autotrain_compatible endpoints_compatible text-generation-inference region:us
---
tags:
- merge
- mergekit
- lazymergekit
- DiscoResearch/DiscoLM_German_7b_v1
- DRXD1000/Phoenix
- VAGOsolutions/SauerkrautLM-7b-v1-mistral
- malteos/hermeo-7b
base_model:
- DiscoResearch/DiscoLM_German_7b_v1
- DRXD1000/Phoenix
- VAGOsolutions/SauerkrautLM-7b-v1-mistral
- malteos/hermeo-7b
---

# Wiedervereinigung-7b-dpo-laser

![image/png](https://huggingface.co/mayflowergmbh/Wiedervereinigung-7b/resolve/main/Wiedervereinigung-7b.png)

Some of the best german models with 7b parameters as lasered dpo-trained dare_ties merge. 

Since the original models based on mistral - three of them on the brilliant german LeoLM/leo-mistral-hessianai-7b - they are reunited in this merged model. 
Hence the name. To improve result quality they are dpo-trained with a german translation of oaast-dpo using our german fork of [LLaMA-Factory](https://github.com/mayflower/LLaMA-Factory).
After that this model got a [laserRMT](https://github.com/cognitivecomputations/laserRMT) treatment.

Wiedervereinigung-7b itself is a  [LazyMergekit](https://colab.research.google.com/drive/1obulZ1ROXHjYLn6PPZJwRR6GzgQogxxb?usp=sharing) merge of:
* [DiscoResearch/DiscoLM_German_7b_v1](https://huggingface.co/DiscoResearch/DiscoLM_German_7b_v1)
* [DRXD1000/Phoenix](https://huggingface.co/DRXD1000/Phoenix)
* [VAGOsolutions/SauerkrautLM-7b-v1-mistral](https://huggingface.co/VAGOsolutions/SauerkrautLM-7b-v1-mistral)
* [malteos/hermeo-7b](https://huggingface.co/malteos/hermeo-7b)

All the actual heavylifting has been done by the creators of these models.

## 🧩 Configuration

```yaml
models:
  - model: LeoLM/leo-mistral-hessianai-7b
    # No parameters necessary for base model
  - model: DiscoResearch/DiscoLM_German_7b_v1
    parameters:
      density: 0.6
      weight: 0.25
  - model: DRXD1000/Phoenix
    parameters:
      density: 0.6
      weight: 0.25
  - model: VAGOsolutions/SauerkrautLM-7b-v1-mistral
    parameters:
      density: 0.6
      weight: 0.25
  - model: malteos/hermeo-7b
    parameters:
      density: 0.6
      weight: 0.25
merge_method: dare_ties
base_model: LeoLM/leo-mistral-hessianai-7b
parameters:
  int8_mask: true
dtype: bfloat16
```

## mt-bench-de

Using laser and dpo results in pretty good results.

```json
{
    "first_turn": 7.51875,
    "second_turn": 6.4,
    "categories": {
        "writing": 8.425,
        "roleplay": 8.025,
        "reasoning": 5.45,
        "math": 3.2,
        "coding": 4.95,
        "extraction": 7.525,
        "stem": 8.775,
        "humanities": 9.325
    },
    "average": 6.959375
}

```

## 💻 Usage

```python
!pip install -qU transformers accelerate

from transformers import AutoTokenizer
import transformers
import torch

model = "mayflowergmbh/Wiedervereinigung-7b-dpo-laser"
messages = [{"role": "user", "content": "Was ist ein large language model?"}]

tokenizer = AutoTokenizer.from_pretrained(model)
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
pipeline = transformers.pipeline(
    "text-generation",
    model=model,
    torch_dtype=torch.float16,
    device_map="auto",
)

outputs = pipeline(prompt, max_new_tokens=256, do_sample=True, temperature=0.7, top_k=50, top_p=0.95)
print(outputs[0]["generated_text"])
```
