Trappu's picture
Update README.md
b208f48 verified
metadata
tags:
  - merge
  - mergekit
  - lazymergekit
  - anthracite-org/magnum-v2-12b
  - Trappu/Nemo-Picaro-12B
base_model:
  - anthracite-org/magnum-v2-12b
  - Trappu/Nemo-Picaro-12B
model-index:
  - name: Magnum-Picaro-0.7-v2-12b
    results:
      - task:
          type: text-generation
          name: Text Generation
        dataset:
          name: IFEval (0-Shot)
          type: HuggingFaceH4/ifeval
          args:
            num_few_shot: 0
        metrics:
          - type: inst_level_strict_acc and prompt_level_strict_acc
            value: 30.03
            name: strict accuracy
        source:
          url: >-
            https://huggingface.co/spaces/open-llm-leaderboard/open_llm_leaderboard?query=Trappu/Magnum-Picaro-0.7-v2-12b
          name: Open LLM Leaderboard
      - task:
          type: text-generation
          name: Text Generation
        dataset:
          name: BBH (3-Shot)
          type: BBH
          args:
            num_few_shot: 3
        metrics:
          - type: acc_norm
            value: 35.75
            name: normalized accuracy
        source:
          url: >-
            https://huggingface.co/spaces/open-llm-leaderboard/open_llm_leaderboard?query=Trappu/Magnum-Picaro-0.7-v2-12b
          name: Open LLM Leaderboard
      - task:
          type: text-generation
          name: Text Generation
        dataset:
          name: MATH Lvl 5 (4-Shot)
          type: hendrycks/competition_math
          args:
            num_few_shot: 4
        metrics:
          - type: exact_match
            value: 4.76
            name: exact match
        source:
          url: >-
            https://huggingface.co/spaces/open-llm-leaderboard/open_llm_leaderboard?query=Trappu/Magnum-Picaro-0.7-v2-12b
          name: Open LLM Leaderboard
      - task:
          type: text-generation
          name: Text Generation
        dataset:
          name: GPQA (0-shot)
          type: Idavidrein/gpqa
          args:
            num_few_shot: 0
        metrics:
          - type: acc_norm
            value: 9.73
            name: acc_norm
        source:
          url: >-
            https://huggingface.co/spaces/open-llm-leaderboard/open_llm_leaderboard?query=Trappu/Magnum-Picaro-0.7-v2-12b
          name: Open LLM Leaderboard
      - task:
          type: text-generation
          name: Text Generation
        dataset:
          name: MuSR (0-shot)
          type: TAUR-Lab/MuSR
          args:
            num_few_shot: 0
        metrics:
          - type: acc_norm
            value: 19.56
            name: acc_norm
        source:
          url: >-
            https://huggingface.co/spaces/open-llm-leaderboard/open_llm_leaderboard?query=Trappu/Magnum-Picaro-0.7-v2-12b
          name: Open LLM Leaderboard
      - task:
          type: text-generation
          name: Text Generation
        dataset:
          name: MMLU-PRO (5-shot)
          type: TIGER-Lab/MMLU-Pro
          config: main
          split: test
          args:
            num_few_shot: 5
        metrics:
          - type: acc
            value: 28.67
            name: accuracy
        source:
          url: >-
            https://huggingface.co/spaces/open-llm-leaderboard/open_llm_leaderboard?query=Trappu/Magnum-Picaro-0.7-v2-12b
          name: Open LLM Leaderboard
license: apache-2.0
pipeline_tag: text-generation
library_name: transformers

Details

This model is a merge between Trappu/Nemo-Picaro-12B, a model trained on my own little dataset free of synthetic data, which focuses solely on storywriting and scenrio prompting (Example: [ Scenario: bla bla bla; Tags: bla bla bla ]), and anthracite-org/magnum-v2-12b.

The reason why I decided to merge it with Magnum (and don't recommend Picaro alone) is because that model, aside from its obvious flaws (rampant impersonation, stupid, etc...), is a one-trick pony and will be really rough for the average LLM user to handle. The idea was to have Magnum work as some sort of stabilizer to fix the issues that emerge from the lack of multiturn/smart data in Picaro's dataset. It worked, I think. I enjoy the outputs and it's smart enough to work with.

But yeah the goal of this merge was to make a model that's both good at storytelling/narration but also fine when it comes to other forms of creative writing such as RP or chatting. I don't think it's quite there yet but it's something for sure.

Prompting

As explained before, Picaro is a model that functions mainly through scenario prompting but merging it with Magnum has made it a lot more versatile so you can use it however you see fit. Both models were trained on chatml so below is the recommended prompt formatting.

<|im_start|>system
system prompt<|im_end|>
<|im_start|>user
bla bla bla<|im_end|>
<|im_start|>assistant
bla bla bla you!<|im_end|>

For SillyTavern users:

Instruct template

Context template

Settings preset

The above settings are the ones I recommend.

Temp = 1.2

Min P = 0.1

DRY Rep Pen: Multiplier = 0.8, Base = 1.75, Allowed Length = 2, Penalty Range = 1024

Little guide on useful samplers and how to import settings presets and instruct/context templates and other stuff people might find useful here

Every other sampler neutralized.

Quants

Imatrix: https://huggingface.co/mradermacher/Magnum-Picaro-0.7-v2-12b-i1-GGUF

Static: https://huggingface.co/mradermacher/Magnum-Picaro-0.7-v2-12b-GGUF

Magnum-Picaro-0.7-v2-12b

Magnum-Picaro-0.7-v2-12b is a merge of the following models using LazyMergekit:

🧩 Configuration

models:
    - model: Trappu/Nemo-Picaro-12B
      parameters:
        density: 0.7
        weight: 0.5
    - model: anthracite-org/magnum-v2-12b
      parameters:
        density: 0.3
        weight: 0.5

merge_method: ties
base_model: Trappu/Nemo-Picaro-12B
parameters:
    normalize: true
    int8_mask: true
dtype: bfloat16

💻 Usage

!pip install -qU transformers accelerate

from transformers import AutoTokenizer
import transformers
import torch

model = "Trappu/Magnum-Picaro-0.7-v2-12b"
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"])

Open LLM Leaderboard Evaluation Results

Detailed results can be found here

Metric Value
Avg. 21.42
IFEval (0-Shot) 30.03
BBH (3-Shot) 35.75
MATH Lvl 5 (4-Shot) 4.76
GPQA (0-shot) 9.73
MuSR (0-shot) 19.56
MMLU-PRO (5-shot) 28.67