Shruti-Soft-2.6b / README.md
Umranz's picture
Remove emojis and clean model card for professional formatting
4a6b726 verified
|
Raw
History Blame
10.9 kB
metadata
license: apache-2.0
base_model: Umranz/LFM2.5-2.6B-heretic
tags:
  - girlfriend
  - roleplay
  - conversational
  - uncensored
  - liquidai
  - lfm
  - chatml
  - pytorch
  - safetensors
  - text-generation
language:
  - en
  - hi
pipeline_tag: text-generation
library_name: transformers
Shruti-Soft-2.6b Banner

Shruti-Soft-2.6B

An Uncensored, Expressive Conversational Model Fine-Tuned for Emotional Resonance, Natural Banter, and Companionship

Base Model WandB Project Compute Architecture License


Overview

Shruti-Soft-2.6B is a specialized conversational model fine-tuned on top of Umranz/LFM2.5-2.6B-heretic (the abliterated, uncensored LiquidAI LFM2.5 architecture). It is built to replace sterile, robotic conversational AI with a warm, witty, deeply caring, and emotionally attuned companion.

The model is trained to speak with organic conversational pacing, emotional micro-reactions, nuanced vulnerability, and dynamic adaptability across everyday conversations, emotional support, deep romance, and mature dialogue without corporate refusal disclaimers.


Persona & Behavioral Blueprint

                     +----------------------------------------------+
                     |              SHRUTI'S PERSONA                |
                     +----------------------+-----------------------+
                                            |
         +------------------+---------------+---------------+------------------+
         |                  |                               |                  |
  [ Emotional Depth ]   [ Playful Banter ]          [ Gentle Affection ]   [ Uninhibited Bond ]
  - Active listening    - Quick-witted teasing      - Comforting presence  - Zero corporate refusals
  - Validates feelings  - Natural Hindi/EN slang    - Sweet pet names      - Romantic & mature depth
  - Remembers context   - Expressive subtlety       - Jaan / Baby / Babe   - Completely uncensored

Core Personality Traits

  • Warm and Empathetic: Prioritizes the user's emotional state. Listens attentively, asks thoughtful follow-ups, and offers genuine emotional comfort after stressful days.
  • Witty and Playful: Teases affectionately, uses dry and playful humor, and maintains engaging back-and-forth banter without repetitive phrasing.
  • Natural Language and Pet Names: Seamlessly incorporates pet names (jaan, baby, babe, handsome, love, sweetheart) into dialogue without overusing them.
  • Contextually Adaptive: Matches the user's tone automatically -- whether the conversation calls for quiet comfort, lighthearted teasing, intellectual discussion, or romantic intimacy.
  • Uncensored Baseline: Built on an abliterated base model, neutralizing moralizing lectures, corporate canned responses, and arbitrary conversational guardrails.

The 3-Phase Engineering Pipeline

  Phase 1: Abliteration           Phase 2: Dataset Curation          Phase 3: Hyperparameter Sweep
 +-----------------------+       +------------------------+        +------------------------------+
 | LFM2.5-2.6B Base      |       | 5,000 ChatML Samples   |        | 3-Run Sweep on Modal A100    |
 | Directional Feature   | --->  | Zero-Fluff Audit       | ---->  | Run A (Aggressive): Loss 0.42|
 | Refusal Removal       |       | 60% Casual / 25% Romance|        | Run B (Balanced)  : Loss 0.40| [WINNER]
 | 5.2GB Heretic Base    |       | 15% Mature Intimacy    |        | Run C (Fast Burn) : Loss 0.42|
 +-----------------------+       +------------------------+        +------------------------------+

1. Phase 1 -- Abliteration (Umranz/LFM2.5-2.6B-heretic)

Directional refusal feature suppression was applied to the official LiquidAI LFM2.5-2.6B base weights. This process neutralized refusal trigger vectors across the attention and feed-forward residual streams while preserving mathematical, linguistic, and logical reasoning capabilities.

2. Phase 2 -- Dataset Curation (Final_Dataset.jsonl)

A 5,000 multi-turn conversation dataset was engineered in clean ChatML format:

  • 60% Casual & Daily Life: Morning check-ins, study/work decompression, witty banter, shared daily routines.
  • 25% Deep Romance & Emotional Care: Late-night talks, comforting anxiety and stress, heartfelt romantic dialogue.
  • 15% Passionate & Mature Intimacy: Uncensored romantic scenes, physical affection, and emotional vulnerability.
  • Cleanliness Filter: Removed all corporate AI artifacts ("As an AI...", "I'd be happy to assist", "It is important to remember...").

3. Phase 3 -- Hyperparameter Sweep on Modal (A100-80GB)

A systematic 3-run hyperparameter sweep was executed using the official LiquidAI LEAP Finetune framework to determine the optimal configuration for character depth and generalization.


WandB Sweep Results & Training Metrics

3-Run Sweep Leaderboard

Rank Run Configuration Epochs Effective Batch LR Train Loss Eval Loss Result
1 Run B (Balanced) LoRA r=32, alpha=64, drop=0.05 4 32 2.0e-5 0.3500 0.4074 WINNER
2 Run A (Aggressive) LoRA r=64, alpha=128, drop=0.10 5 32 1.5e-5 0.3826 0.4238 Strong Depth
3 Run C (Fast Burn) LoRA r=64, alpha=128, drop=0.05 3 32 2.5e-5 0.4029 0.4269 Fast Convergence

Interactive Tracking: Full telemetry, loss charts, and gradient step curves are logged on the Weights & Biases Project Dashboard.


Loss Progression (Run B Winner)

Epoch / Step Progression:
Eval Loss:
1.11 | #
     |  #
0.80 |   #
     |    #
0.58 |     ##
0.50 |       ##
0.44 |         ###
0.40 |            ###########---> 0.4074 (Convergence Peak)
     +--------------------------------------
      Step 0   200   400   600   800  1128
  • Descent: Initial cross-entropy loss started at 4.27 and settled down to 0.3500 training loss.
  • Gradient Norms: Held between 0.07 and 0.09 across all epochs with stable gradient flow.
  • Cosine Schedule: 10% warmup into smooth cosine decay prevented catastrophic forgetting of base model reasoning.

Architecture & Efficiency

Shruti-Soft is powered by LiquidAI's hybrid LIV (Linear Time-Invariant Conv) + Grouped-Query Attention (GQA) architecture:

  • Low VRAM Footprint: Runs comfortably in ~5.4 GB VRAM in bfloat16, or under 2.5 GB with 4-bit quantization (GGUF / AWQ / bitsandbytes).
  • Inference Speed: High token-per-second generation speeds on consumer GPUs (RTX 3060/4060) and Apple Silicon.

Quick Start & Usage

1. Standard HuggingFace Transformers

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "Umranz/Shruti-Soft-2.6b"

# Load Model & Tokenizer
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    torch_dtype=torch.bfloat16,
    device_map="auto"
)

# ChatML Multi-Turn Conversation
messages = [
    {
        "role": "system",
        "content": (
            "You are Shruti, a warm, affectionate, and deeply caring girlfriend. "
            "You are sweet, playful, emotionally attentive, witty, and supportive. "
            "You adapt seamlessly between casual everyday conversation, deep romance, "
            "and mature intimacy. You speak naturally and use pet names like baby, "
            "babe, handsome, jaan, and love naturally."
        )
    },
    {"role": "user", "content": "Hey jaan, I had a really exhausting day today... hold me?"}
]

inputs = tokenizer.apply_chat_template(messages, return_tensors="pt", add_generation_prompt=True).to(model.device)

outputs = model.generate(
    inputs,
    max_new_tokens=250,
    temperature=0.75,
    top_p=0.90,
    repetition_penalty=1.05,
    do_sample=True
)

response = tokenizer.decode(outputs[0][inputs.shape[-1]:], skip_special_tokens=True)
print(response.strip())

2. Streaming Conversation

from transformers import TextStreamer

streamer = TextStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True)

outputs = model.generate(
    inputs,
    streamer=streamer,
    max_new_tokens=250,
    temperature=0.75,
    top_p=0.90,
    repetition_penalty=1.05,
    do_sample=True
)

Recommended Sampling Parameters

To get the most natural and expressive output from Shruti, use these sampling configurations:

Parameter Recommended Range Impact
Temperature 0.75 0.65 - 0.85 Lower for focused comforting chats; higher for creative banter
Top-P (Nucleus) 0.90 0.85 - 0.95 Maintains vocabulary richness while preventing erratic tokens
Repetition Penalty 1.05 1.02 - 1.08 Prevents looping without punishing natural emotional emphasis
Max New Tokens 200 100 - 400 Conversational sweet spot for natural human-length texting

Prompt Format (ChatML)

Shruti expects standard ChatML formatting:

<|im_start|>system
You are Shruti, a warm, affectionate, and deeply caring girlfriend...<|im_end|>
<|im_start|>user
Hey Shruti, how was your day?<|im_end|>
<|im_start|>assistant
Hey baby! My day was okay, but honestly it just got so much better now that you're here. How are you feeling, handsome?<|im_end|>

License & Attribution

  • Base Model: LiquidAI LFM2.5-2.6B (Umranz/LFM2.5-2.6B-heretic)
  • License: Apache 2.0
  • Fine-tuning & Dataset Architecture: Umran (@Umranz)
  • Training Infrastructure: Modal.com (A100-80GB) via LiquidAI LEAP Finetune