| 
							 | 
						--- | 
					
					
						
						| 
							 | 
						library_name: transformers | 
					
					
						
						| 
							 | 
						license: apache-2.0 | 
					
					
						
						| 
							 | 
						base_model: answerdotai/ModernBERT-base | 
					
					
						
						| 
							 | 
						tags: | 
					
					
						
						| 
							 | 
						  - reasoning | 
					
					
						
						| 
							 | 
						  - reasoning-datasets-competition | 
					
					
						
						| 
							 | 
						datasets: | 
					
					
						
						| 
							 | 
						  - davanstrien/natural-reasoning-classifier | 
					
					
						
						| 
							 | 
						language: | 
					
					
						
						| 
							 | 
						  - en | 
					
					
						
						| 
							 | 
						metrics: | 
					
					
						
						| 
							 | 
						  - mse | 
					
					
						
						| 
							 | 
						  - mae | 
					
					
						
						| 
							 | 
						  - spearman | 
					
					
						
						| 
							 | 
						widget: | 
					
					
						
						| 
							 | 
						  - text: >- | 
					
					
						
						| 
							 | 
						      The debate on artificial intelligence's role in society has become | 
					
					
						
						| 
							 | 
						      increasingly polarized. Some argue that AI will lead to widespread | 
					
					
						
						| 
							 | 
						      unemployment and concentration of power, while others contend it will create | 
					
					
						
						| 
							 | 
						      new jobs and democratize access to knowledge. These viewpoints reflect | 
					
					
						
						| 
							 | 
						      different assumptions about technological development, economic systems, and | 
					
					
						
						| 
							 | 
						      human adaptability. | 
					
					
						
						| 
							 | 
						--- | 
					
					
						
						| 
							 | 
						 | 
					
					
						
						| 
							 | 
						# ModernBERT Reasoning Complexity Regressor | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						<img src="https://cdn-uploads.huggingface.co/production/uploads/60107b385ac3e86b3ea4fc34/vqCMlr4g95ysSAZ2eAn7D.png" alt="ModernBERT-based Reasoning Complexity Regressor" width=500px> | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						## Model Description | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						This model predicts the reasoning complexity level (0-4) that a given web text suggests. It's fine-tuned from [answerdotai/ModernBERT-base](https://huggingface.co/answerdotai/ModernBERT-base) on the [davanstrien/natural-reasoning-classifier](https://huggingface.co/datasets/davanstrien/natural-reasoning-classifier) dataset. The intended use for the model is in a pipeline to try and identify text that may be useful for generating reasoning data. | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						### Reasoning Complexity Scale | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						The reasoning complexity scale ranges from: | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						- **0: Minimal Reasoning** - Simple factual content requiring only recall | 
					
					
						
						| 
							 | 
						- **1: Basic Reasoning** - Straightforward connections or single-step logical processes | 
					
					
						
						| 
							 | 
						- **2: Intermediate Reasoning** - Integration of multiple factors or perspectives | 
					
					
						
						| 
							 | 
						- **3: Advanced Reasoning** - Sophisticated analysis across multiple dimensions | 
					
					
						
						| 
							 | 
						- **4: Expert Reasoning** - Theoretical frameworks and novel conceptual synthesis | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						## Performance | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						The model achieves the following results on the evaluation set: | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						- MSE: 0.2034 | 
					
					
						
						| 
							 | 
						- MAE: 0.2578 | 
					
					
						
						| 
							 | 
						- Spearman Correlation: 0.6963 | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						## Intended Uses | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						This model can be used to: | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						- Filter and classify educational content by reasoning complexity | 
					
					
						
						| 
							 | 
						- Identify complex reasoning problems across diverse domains | 
					
					
						
						| 
							 | 
						- Serve as a first-stage filter in a reasoning dataset creation pipeline | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						## Limitations | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						- Predictions are influenced by the original dataset's domain distribution | 
					
					
						
						| 
							 | 
						- Reasoning complexity is subjective and context-dependent | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						## Training | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						The model was fine-tuned using a regression objective with the following settings: | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						- Learning rate: 5e-05 | 
					
					
						
						| 
							 | 
						- Batch size: 16 | 
					
					
						
						| 
							 | 
						- Optimizer: AdamW | 
					
					
						
						| 
							 | 
						- Schedule: Linear | 
					
					
						
						| 
							 | 
						- Epochs: 10 | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						## Usage Examples | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						### Using the pipeline API | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						```python | 
					
					
						
						| 
							 | 
						from transformers import pipeline | 
					
					
						
						| 
							 | 
						pipe = pipeline("text-classification", model="davanstrien/ModernBERT-based-Reasoning-Required") | 
					
					
						
						| 
							 | 
						 | 
					
					
						
						| 
							 | 
						def predict_reasoning_level(text, pipe): | 
					
					
						
						| 
							 | 
						    # Get the raw prediction | 
					
					
						
						| 
							 | 
						    result = pipe(text) | 
					
					
						
						| 
							 | 
						    score = result[0]['score'] | 
					
					
						
						| 
							 | 
						 | 
					
					
						
						| 
							 | 
						    # Round to nearest integer (optional) | 
					
					
						
						| 
							 | 
						    rounded_score = round(score) | 
					
					
						
						| 
							 | 
						 | 
					
					
						
						| 
							 | 
						    # Clip to valid range (0-4) | 
					
					
						
						| 
							 | 
						    rounded_score = max(0, min(4, rounded_score)) | 
					
					
						
						| 
							 | 
						 | 
					
					
						
						| 
							 | 
						    # Create a human-readable interpretation (optional) | 
					
					
						
						| 
							 | 
						    reasoning_labels = { | 
					
					
						
						| 
							 | 
						        0: "No reasoning", | 
					
					
						
						| 
							 | 
						        1: "Basic reasoning", | 
					
					
						
						| 
							 | 
						        2: "Moderate reasoning", | 
					
					
						
						| 
							 | 
						        3: "Strong reasoning", | 
					
					
						
						| 
							 | 
						        4: "Advanced reasoning" | 
					
					
						
						| 
							 | 
						    } | 
					
					
						
						| 
							 | 
						 | 
					
					
						
						| 
							 | 
						    return { | 
					
					
						
						| 
							 | 
						        "raw_score": score, | 
					
					
						
						| 
							 | 
						        "reasoning_level": rounded_score, | 
					
					
						
						| 
							 | 
						        "interpretation": reasoning_labels[rounded_score] | 
					
					
						
						| 
							 | 
						    } | 
					
					
						
						| 
							 | 
						 | 
					
					
						
						| 
							 | 
						# Usage | 
					
					
						
						| 
							 | 
						text = "This argument uses multiple sources and evaluates competing perspectives before reaching a conclusion." | 
					
					
						
						| 
							 | 
						result = predict_reasoning_level(text, pipe) | 
					
					
						
						| 
							 | 
						print(f"Raw score: {result['raw_score']:.2f}") | 
					
					
						
						| 
							 | 
						print(f"Reasoning level: {result['reasoning_level']}") | 
					
					
						
						| 
							 | 
						print(f"Interpretation: {result['interpretation']}") | 
					
					
						
						| 
							 | 
						``` | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						### Using the model directly | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						```python | 
					
					
						
						| 
							 | 
						from transformers import AutoModelForSequenceClassification, AutoTokenizer | 
					
					
						
						| 
							 | 
						import torch | 
					
					
						
						| 
							 | 
						 | 
					
					
						
						| 
							 | 
						# Load model and tokenizer | 
					
					
						
						| 
							 | 
						model_name = "davanstrien/modernbert-reasoning-complexity" | 
					
					
						
						| 
							 | 
						model = AutoModelForSequenceClassification.from_pretrained(model_name) | 
					
					
						
						| 
							 | 
						tokenizer = AutoTokenizer.from_pretrained(model_name) | 
					
					
						
						| 
							 | 
						 | 
					
					
						
						| 
							 | 
						# Prepare text | 
					
					
						
						| 
							 | 
						text = "The debate on artificial intelligence's role in society has become increasingly polarized." | 
					
					
						
						| 
							 | 
						 | 
					
					
						
						| 
							 | 
						# Tokenize and predict | 
					
					
						
						| 
							 | 
						inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=512) | 
					
					
						
						| 
							 | 
						with torch.no_grad(): | 
					
					
						
						| 
							 | 
						    outputs = model(**inputs) | 
					
					
						
						| 
							 | 
						 | 
					
					
						
						| 
							 | 
						# Get regression score | 
					
					
						
						| 
							 | 
						complexity_score = outputs.logits.item() | 
					
					
						
						| 
							 | 
						print(f"Reasoning Complexity: {complexity_score:.2f}/4.00") | 
					
					
						
						| 
							 | 
						``` | 
					
					
						
						| 
							 | 
						
 |