ArtificialGuyBR

Home / Blog / Fixing things

GenStructDolphin 7B Slerp: Merge Genstruct + Dolphin

Como o GenStructDolphin 7B Slerp une Genstruct-7B e Dolphin 2.6 Mistral em um modelo único de instruções e chat com mergekit.

3 sources cited Fixing things

GenStructDolphin 7B Slerp: Um Slerp Mergekit de Genstruct e Dolphin

GenStructDolphin-7B-Slerp é um merge Mistral-7B que combina a habilidade de geração de datasets de instruções do NousResearch/Genstruct-7B com o estilo conversacional do Dolphin 2.6 Mistral. Construído com LazyMergekit e o método de merge slerp, ele tem um único alvo: um modelo 7B que consegue tanto estruturar instruções quanto conversar naturalmente.

  • O que é: um mergekit slerp de Genstruct-7B e dolphin-2.6-mistral-7b-dpo-laser, ambos baseados em Mistral-7B.
  • Como usar: pipeline padrão do transformers com o chat template do modelo — sem palavras-gatilho.
  • Configurações recomendadas: float16, temperature 0.7, top_k 50, top_p 0.95, conforme a model card.

O que o Modelo Faz

Os dois modelos base cobrem terrenos diferentes. O Genstruct-7B é treinado para gerar datasets de instruction-following — ele produz a estrutura de pergunta/resposta que você quer ao construir dados de treinamento. O Dolphin 2.6 Mistral é uma variante conversacional Uncensored do Dolphin, focada em respostas fluentes e diretas. O slerp desses dois mescla esses comportamentos em um único arquivo de pesos, então um único modelo lida tanto com tarefas de instrução estruturada quanto com chat aberto.

Como é um merge, não um fine-tune, não há novos dados de treinamento e nenhum trigger ou instance prompt separado. Você interage com ele exatamente como com qualquer modelo instruct baseado em Mistral: monte a lista de mensagens de chat, aplique o chat template e gere.

Como o Merge É Configurado

A model card publica a configuração completa do mergekit, o que torna o merge reproduzível:

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

Dois detalhes importam aqui. Os valores de t dependem da camada: a autoatenção tende para o Genstruct no final da pilha de camadas, enquanto os blocos MLP seguem o caminho oposto, com 0.5 como padrão geral. Essa ponderação assimétrica é o tipo de ajuste que distingue um merge deliberado de uma média ingênua. O modelo base é o Genstruct-7B, então o modelo mesclado herdou seu tokenizer e sua arquitetura. Se você é novo nesse fluxo de trabalho, um tutorial de mergekit explica o método no qual essas configurações se baseiam.

Como Usar

A model card traz um exemplo de transformers copiável:

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"])

Os mesmos pesos funcionam em outras ferramentas Mistral-7B: quantização GGUF para runtimes estilo llama.cpp, vLLM ou TGI para serving, e UIs locais estilo ComfyUI que carregam checkpoints do HF. Os parâmetros do pipeline acima (temperature 0.7, top_k 50, top_p 0.95) são os padrões recomendados para geração estilo chat. Para saída de instrução estruturada, reduza a temperature para 0.3–0.5.

Erros comuns e correções

ErroCausaFix
Formato de chat errado / respostas incoerentesChat template não aplicado antes da geraçãoUse apply_chat_template(...) com add_generation_prompt=True
Out of memory na GPUModelo 7B carregado em precisão totalCarregue com torch_dtype=torch.float16 e device_map="auto"
Comportamento do merge difere do esperadoOs valores de t por camada alteram qual modelo predominaLeia a configuração t publicada antes de re-mesclar ou ajustar
Dúvidas sobre licença para uso comercialLicença do merge não declarada na cardVerifique os repos dos dois modelos base (Genstruct-7B, Dolphin 2.6 Mistral)

FAQ

O GenStructDolphin é um fine-tune? Não. É um merge slerp de dois checkpoints Mistral-7B criado com LazyMergekit; nenhum treinamento adicional foi feito.

Preciso de palavra-gatilho ou instance prompt? Não. Ele é usado pelo seu chat template, como qualquer modelo instruct baseado em Mistral.

Que hardware eu preciso? A card não declara requisitos de VRAM. Como um modelo 7B em bfloat16, ele cabe no footprint usual de Mistral-7B; rode com carregamento float16 e device_map auto.

Posso reproduzir o merge? Sim. A configuração completa do mergekit YAML está publicada na model card, e os modelos base são públicos no Hugging Face. Veja um guia de mergekit para o fluxo de trabalho.