ArtificialGuyBR

Home / Blog / Fixing things

GenStructDolphin 7B Slerp: Genstruct + Dolphin Merge

How GenStructDolphin 7B Slerp merges Genstruct-7B and Dolphin 2.6 Mistral into one instruction-following chat model with mergekit.

3 sources cited Fixing things

GenStructDolphin 7B Slerp: A Mergekit Slerp of Genstruct and Dolphin

GenStructDolphin-7B-Slerp is a Mistral-7B merge that pairs the instruction-dataset generation skills of NousResearch/Genstruct-7B with the conversational style of Dolphin 2.6 Mistral. Built with LazyMergekit and the slerp merge method, it targets one thing: a single 7B model that can both structure instructions and chat naturally.

What the Model Does

The two parents cover different ground. Genstruct-7B is trained to generate instruction-following datasets — it produces the question/answer structure you'd want when building training data. Dolphin 2.6 Mistral is a conversational Uncensored Dolphin variant focused on fluent, direct responses. Slerping them blends those behaviors into one weights file, so a single model can handle both structured-instruction tasks and open chat.

Because it is a merge, not a fine-tune, there is no new training data and no separate trigger or instance prompt. You interact with it exactly like any Mistral-based instruct model: build a chat message list, apply the chat template, and generate.

How the Merge Is Configured

The model card publishes the full mergekit configuration, which is what makes it reproducible:

slices:
  - sources:
      - model: NousResearch/Genstruct-7B
        layer_range: [0, 32]
      - model: cognitivecomputations/dolphin-2.6-mistral-7b-dpo-laser
        layer_range: [0, 32]
merge_method: slerp
base_model: NousResearch/Genstruct-7B
parameters:
  t:
    - filter: self_attn
      value: [0, 0.5, 0.3, 0.7, 1]
    - filter: mlp
      value: [1, 0.5, 0.7, 0.3, 0]
    - value: 0.5
dtype: bfloat16

Two details matter here. The t values are layer-dependent: self-attention leans toward Genstruct at the end of the layer stack, while MLP blocks lean the opposite way, with 0.5 as the overall default. That asymmetric weighting is the kind of tuning that distinguishes a deliberate merge from a naive average. The base model is Genstruct-7B, so the merged model inherits its tokenizer and architecture. If you are new to this workflow, a mergekit tutorial explains the method these configs rely on.

How to Use It

The model card ships a copy-paste transformers example:

from transformers import AutoTokenizer
import transformers
import torch

model = "artificialguybr/GenStructDolphin-7B-Slerp"
messages = [{"role": "user", "content": "What is a 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"])

The same weights work in other Mistral-7B tooling: GGUF quantization for llama.cpp-style runtimes, vLLM or TGI for serving, and ComfyUI-style local UIs that load HF checkpoints. The pipeline parameters above (temperature 0.7, top_k 50, top_p 0.95) are the recommended defaults for chat-style generation. For structured-instruction output, lower the temperature toward 0.3–0.5.

Common Errors and Fixes

Error | Cause | Fix | Source

|---|---|---|---

Wrong chat format / incoherent replies | Chat template not applied before generation | Use apply_chat_template(...) with add_generation_prompt=True | Model card usage example Out of memory on GPU | 7B model loaded in full precision | Load with torch_dtype=torch.float16 and device_map="auto" | Model card usage example Merge behavior differs from expectations | Per-layer t values shift which parent dominates | Read the published t config before re-merging or tuning | Model card configuration License questions for commercial use | Merge license not stated on the card | Check both base model repos (Genstruct-7B, Dolphin 2.6 Mistral) | Model card, base model pages

FAQ

Is GenStructDolphin a fine-tune? No. It is a slerp merge of two Mistral-7B checkpoints created with LazyMergekit; no additional training was performed.

Do I need a trigger word or instance prompt? No. It is used through its chat template like any Mistral-based instruct model.

What hardware do I need? The card does not state VRAM requirements. As a 7B bfloat16 model it fits the usual Mistral-7B footprint; run it with float16 loading and device_map auto.

Can I reproduce the merge myself? Yes. The full mergekit YAML configuration is published in the model card, and the base models are public on Hugging Face. See a mergekit guide for the workflow.

Sources