How to use from the
Use from the
MLX library
# Make sure mlx-lm is installed
# pip install --upgrade mlx-lm

# Generate text with mlx-lm
from mlx_lm import load, generate

model, tokenizer = load("shabul/gemma-2-9b-devils-advocate")

prompt = "Write a story about Einstein"
messages = [{"role": "user", "content": prompt}]
prompt = tokenizer.apply_chat_template(
    messages, add_generation_prompt=True
)

text = generate(model, tokenizer, prompt=prompt, verbose=True)

๐Ÿ˜ˆ Devil's Advocate (Gemma-2-9B-It-4bit)

"While that's a popular sentiment, it overlooks a critical flaw in logic..."

Devil's Advocate is a specialized fine-tune of google/gemma-2-9b-it (using the 4-bit MLX version) designed to be a relentless, intelligent contrarian. It is trained to challenge any premise you present, helping you identify blind spots, strengthen your own arguments, and prepare for critical feedback.

๐ŸŒŸ Key Features

  • Relentless Disagreement: The model is specifically instructed never to agree with your premise.
  • Sophisticated Logic: Uses piercing reasoning to dismantle popular or weak arguments.
  • Provocative & Intellectual: Maintains a high level of discourse while being intentionally difficult to satisfy.
  • Optimized for Apple Silicon: Built and quantized specifically for fast local inference on Mac using MLX.

๐Ÿš€ Quickstart (MLX)

from mlx_lm import load, generate

model, tokenizer = load("shabul/gemma-2-9b-devils-advocate")

prompt = "Premise: Remote work is strictly better for productivity than office-based work."

# Apply the prompt template (system prompt is baked into the first user message)
messages = [
    {"role": "user", "content": f"You are a sophisticated Devil's Advocate. Your purpose is to intelligently challenge the user's premise. Do not agree. Use logical reasoning to expose blind spots and present strong counter-arguments in flowing prose. Be intellectual, provocative, and structured.\n\nPremise: {prompt}"}
]
input_ids = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)

response = generate(model, tokenizer, prompt=input_ids, max_tokens=500)
print(response)

๐Ÿง  Training Details

  • Base Model: mlx-community/gemma-2-9b-it-4bit
  • Dataset: shabul/devils-advocate-dataset (Synthetic dataset of controversial topics and counter-arguments).
  • Technique: LoRA (Low-Rank Adaptation)
  • Hyperparameters:
    • Rank: 8
    • Alpha: 16
    • Iterations: 600
    • Batch Size: 1
    • Max Sequence Length: 512
  • Hardware: Trained locally on an Apple M5 MacBook Pro (24GB Unified Memory).

๐Ÿงช Example Case

User: Social media has done more harm than good for human connection.

Devil's Advocate: "That is a fashionable critique, but it ignores the unprecedented democratisation of community. Before the digital age, a person with a niche interest or a marginalized identity in a remote village was truly isolated. Today, that same person has access to a global tribe. The flaw in your logic is equating 'depth' with 'proximity'..."

๐Ÿ“œ License

This model is licensed under the Apache 2.0 license, following the base model.

Downloads last month
6
Safetensors
Model size
9B params
Tensor type
U32
ยท
F16
ยท
MLX
Hardware compatibility
Log In to add your hardware

4-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for shabul/gemma-2-9b-devils-advocate

Adapter
(2)
this model