MICE / README.md
thethinkmachine's picture
Update README.md
e111026 verified
metadata
library_name: transformers
license: apache-2.0
language:
  - en
base_model:
  - answerdotai/ModernBERT-large
pipeline_tag: text-classification
author: Shreyan C (@thethinkmachine)
datasets:
  - BhabhaAI/DEITA-Complexity

image/png

Maxwell Instruction Complexity Estimator (MICE)

Model Version License Downloads

A fast, efficient, and accurate instruction complexity scorer powered by ModernBERT-Large. MICE predicts normalized task difficulty scores (0โ€“1) for English instructions, with an easy option to rescale to custom ranges.


๐Ÿš€ Features

  • Lightweight & Fast: Leverages a compact backbone (ModernBERT-Large + LoRA) with only 14.4M trainable parameters.
  • Data-Driven: Trained on 66.5K English instructionโ€“score pairs from the DEITA-Complexity dataset.
  • High Fidelity: Matches the performance of models 34ร— larger on standard complexity benchmarks.
  • Flexible Scoring: Outputs normalized scores (0โ€“1) by default, with optional denormalization to any range (e.g., [1โ€“6], [0โ€“100]).

๐Ÿ”ง Usage

from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch

model_name = "thethinkmachine/Maxwell-Task-Complexity-Scorer-v0.2"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)

# 1. Get normalized complexity (0โ€“1)
def get_normalized_score(text: str) -> float:
    inputs = tokenizer(text, return_tensors="pt")
    with torch.no_grad():
        logits = model(**inputs).logits.squeeze()
    return float(logits)

# 2. Denormalize to [min_score, max_score]
def get_denormalized_score(text: str, min_score: float = 1, max_score: float = 6) -> float:
    norm = get_normalized_score(text)
    raw = norm * (max_score - min_score) + min_score
    return float(round(raw, 2))

# Example
query = "Is learning equivalent to decreasing local entropy?"
print("Normalized:", get_normalized_score(query))
print("Evol-Complexity [1โ€“6]:", get_denormalized_score(query))

๐Ÿ“– Model Details

  • Architecture: ModernBERT-Large backbone with LoRA adapters (rank 32, alpha 64, dropout 0.1).
  • Task: Sequence Classification.
  • Languages: English.
  • Training Data: 66,500 instructionโ€“score pairs from [BhabhaAI/DEITA-Complexity].
  • Normalization: Minโ€“max scaled to [0,1]; denormalization recommended via score * (max - min) + min.

Data Distribution

Original Score Count %
1 8,729 13.3%
2 5,399 8.2%
3 10,937 16.7%
4 9,801 15.0%
5 24,485 37.4%
6 6,123 9.3%

Outliers (0,7โ€“9) were pruned (<1% of data).


โš™๏ธ Training Configuration

  • Optimizer: AdamW (lr=5e-5, weight decay=0.01)
  • Batch Size: 8
  • Epochs: 3
  • Max Seq. Length: 512
  • Warmup: 10% of total steps
  • Compute: 50.3M tokens, TTP ratio โ‰ˆ3.5

๐ŸŒฑ Environmental Impact

  • Compute Used: 16h on 1ร— NVIDIA L4 GPU (72W TDP) in GCP asia-south1.
  • COโ‚‚ Emissions: 0.87โ€ฏkgโ€ฏCOโ‚‚eq (fully offset).
  • Estimator: ML COโ‚‚ Impact Calculator.

๐Ÿ” Bias & Limitations

  • Domain Bias: Trained primarily on general English; may underperform on technical/coding/math instructions.
  • Language: English-only.
  • Scaling Caution: Denormalization preserves ordering but absolute values depend on chosen range.

๐Ÿ“š Citation

If you use MICE in your research, please cite:

Chaubey, S. (2024). Maxwell Instruction Complexity Estimator (MICE). https://huggingface.co/thethinkmachine/MICE


๐Ÿ™‹โ€โ™‚๏ธ Author & Contact

Shreyan C (thethinkmachine) Email: [email protected]

This project is licensed under the Apache 2.0 License.