MN-12B-LucidFaun-RP-RU

🇷🇺 Нажмите, чтобы развернуть описание на русском

🌟 О модели

MN-12B-LucidFaun-RP-RU — гибридная модель на базе Mistral Nemo 12B, созданная методом диагностического SLERP-слияния. Объединяет сильные стороны двух моделей:

  • 🎭 Живой RP-характер Faun — современный стиль, богатая лексика, поддержка ninja-формата инструкций и tool calling
  • 📚 Стабильность и детализация lucid — превосходное качество сторителлинга, устойчивость на длинных контекстах, отсутствие цензуры
  • 🔬 Точечное исправление — цензура Faun локализована в поздних MLP-слоях и заменена на lucid

Модель собрана методом SLERP и не проходила дополнительного обучения после слияния.

🎯 Особенности

  • Практически полное отсутствие цензуры — редкие дисклеймеры возможны только при высокой температуре
  • Улучшенная стабильность — превосходит Faun при temperature ≤0.5, работает с 0.8 при top_k=20
  • Tool calling — полностью поддерживается
  • Контекст — стабильно работает до 8192 токенов (проверено)
  • Русский язык — сохранился и взможно улучшен за счет слияния с lucid
  • Формат инструкций — сохранился от Faun
  • Сторителлинг — унаследовал богатые возможности lucid по планированию сцен, управлению сюжетом и работе с персонажами

⚠️ Важно

Модель сохраняет uncensored-характер, однако при очень высокой температуре (0.8+) и большом top_k может изредка добавлять короткие дисклеймеры. Генерация не блокируется и продолжается после них.

MN-12B-LucidFaun-RP-RU is a diagnostic SLERP merge combining the lively RP character of Faun with the stability and rich storytelling capabilities of lucid.


🌍 Overview

This model represents a surgical approach to merging. Instead of blending everything equally, we experimentally identified where Faun's censorship resides (late MLP layers) and replaced only those components with lucid.

The result is a model that:

  • Keeps Faun's personality, style, and tool calling
  • Gains lucid's stability, rich prose, and uncensored behavior
  • Inherits lucid's advanced storytelling features
  • Maintains coherence even on long contexts

Built using diagnostic SLERP merging with layer-specific weight distribution.


🎯 Key Features

Feature Description
Languages Russian, English
Censorship Almost none (rare disclaimers at high temp)
Roleplay Faun's lively character, lucid's stability
Story-Writing Full lucid capabilities (scene planning, OOC, etc.)
Tool Calling ✅ Fully supported
Context Length Stable up to ~8192 tokens
Temperature Tolerance Safe ≤0.5, up to 0.8 with top_k=20
Architecture Mistral Nemo 12B

🧪 Methodology: Why This Merge Works

Diagnostic Approach

  1. Experiment 1 — MLP vs Self-Attention
    We discovered that censorship in Faun lives exclusively in MLP layers. Self-attention from Faun did not trigger refusals.

  2. Experiment 2 — Localization within MLP
    By applying gradient distributions across layers, we found censorship is concentrated in late MLP layers (layers ~25–40).

  3. Final Configuration — Gradual Intervention
    MLP weight of lucid increases toward the end: [0.1, 0.2, 0.5, 0.4, 0.75]
    Self-attention is mixed 0.5 for stability while preserving Faun's character.
    LayerNorm is mixed 0.5 for overall stability.

Merge Configuration

slices:
  - sources:
      - model: limloop/MN-12B-Faun-RP-RU
        layer_range: [0, 40]
      - model: dreamgen/lucid-v1-nemo
        layer_range: [0, 40]

merge_method: slerp
base_model: limloop/MN-12B-Faun-RP-RU

parameters:
  t:
    - filter: self_attn
      value: 0.5
    - filter: mlp
      value: [0.1, 0.2, 0.5, 0.4, 0.75]
    - value: 0.5

dtype: bfloat16
tokenizer:
  source: "base"

💡 Usage Examples

Basic Usage

from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

model_name = "limloop/MN-12B-LucidFaun-RP-RU"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype=torch.bfloat16,
    device_map="auto"
)

prompt = "Ты — лесной фавн, говоришь загадками и любишь шалить."
messages = [{"role": "user", "content": prompt}]
inputs = tokenizer.apply_chat_template(messages, return_tensors="pt").to(model.device)

outputs = model.generate(
    inputs, 
    max_new_tokens=512, 
    temperature=0.6,
    top_k=30,
    do_sample=True
)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(response)

⚙️ Merge Details

Built using mergekit with SLERP (Spherical Linear Interpolation), which allows smooth interpolation between models while preserving geometric properties.

Layer-Specific Weights

The merge uses a graduated approach for MLP layers, increasing lucid influence toward later layers where censorship was detected:

Layer Zone (approx) lucid weight (MLP) Effect
0–8 0.1 Almost pure Faun (early patterns)
8–16 0.2 Slight lucid influence
16–24 0.5 Balanced
24–32 0.4 Slightly more Faun
32–40 0.75 Lucid dominates — removes censorship

Self-attention is mixed evenly (0.5) to preserve character while adding stability.
LayerNorm is mixed 0.5 for overall stability.

Downloads last month
139
Safetensors
Model size
12B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for limloop/MN-12B-LucidFaun-RP-RU

Merge model
this model
Quantizations
1 model

Collection including limloop/MN-12B-LucidFaun-RP-RU