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.
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
| Erro | Causa | Fix |
|---|---|---|
| Formato de chat errado / respostas incoerentes | Chat template não aplicado antes da geração | Use apply_chat_template(...) com add_generation_prompt=True |
| Out of memory na GPU | Modelo 7B carregado em precisão total | Carregue com torch_dtype=torch.float16 e device_map="auto" |
| Comportamento do merge difere do esperado | Os valores de t por camada alteram qual modelo predomina | Leia a configuração t publicada antes de re-mesclar ou ajustar |
| Dúvidas sobre licença para uso comercial | Licença do merge não declarada na card | Verifique 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.