manuelcaccone's picture
Upload 3 files
05d895d verified
|
Raw
History Blame Contribute Delete
12.9 kB

A newer version of the Gradio SDK is available: 6.26.0

Upgrade
metadata
title: Actuarial Skills Classifier
emoji: 🎯
colorFrom: purple
colorTo: blue
sdk: gradio
sdk_version: 4.44.0
app_file: app.py
pinned: true
license: apache-2.0
tags:
  - actuarial
  - multilabel-classification
  - sentence-classification
  - modernbert
  - skills-extraction
  - career-planning
  - job-analysis
datasets:
  - actuarial-jobs
language:
  - en
metrics:
  - f1
  - precision
  - recall

🎯 Actuarial Skills Classifier

Discover the actuarial and programming skills you needβ€”instantly.

This Hugging Face Space uses multilabel sentence classification trained on 7,000+ real actuarial job postings to instantly map your text to employer-demanded skills. Simply describe a task, role, or career goal, and watch relevant actuarial competencies and coding techniques appear.

πŸš€ Quick Start

Try these examples:

  • "pricing motor portfolio with GLM and Python"
  • "life insurance reserving and IFRS 17 implementation"
  • "building predictive models for mortality forecasting"

✨ Features

🎯 Skills Analysis

  • Instant Mapping: Type any description and get relevant skills in seconds
  • Confidence Scores: Each skill shows match percentage (0-100%)
  • Smart Categories: Skills organized by type (Programming, Actuarial, Tools, etc.)
  • Learning Roadmap: Personalized priority-based development plan

πŸ“¦ Batch Processing

  • Upload CSV or TXT files with multiple descriptions
  • Analyze up to 100 job postings simultaneously
  • Identify common skills across multiple roles
  • Export results for further analysis

πŸ” Skills Database

  • Browse all 7,000+ learned skills
  • Search and filter by keywords
  • Understand market demand for specific competencies

πŸ“š Comprehensive Guide

  • Detailed usage instructions
  • Interpretation guidelines
  • Career planning tips
  • Example use cases

πŸŽ“ Use Cases

Students & Early Career Professionals

Discover what skills you need to learn for your target role:

Input: "I want to become a pricing actuary in motor insurance"
Output: GLM modeling, Python, R, Motor insurance, Pricing techniques, 
        Statistical analysis, Excel, SQL, Risk assessment...

Career Transition

Identify transferable skills and gaps when changing specializations:

Input: "Moving from life insurance reserving to P&C pricing"
Output: [Shows overlap + new skills needed for transition]

Job Analysis

Paste any actuarial job description to extract all required skills:

Input: [Full job posting text]
Output: Complete skill breakdown with confidence scores

Learning Path Planning

Get a structured roadmap for skill development:

Input: "Building machine learning models for insurance pricing"
Output: High Priority β†’ Medium Priority β†’ Nice to Have skills

Hiring & Recruitment

Analyze what skills are commonly required together in the market:

Input: [Multiple job descriptions via batch upload]
Output: Most frequent skill combinations and trends

πŸ“Š Model Details

Architecture

  • Base Model: answerdotai/ModernBERT-base
  • Task: Multi-label sequence classification
  • Fine-tuning: Trained on 7,000+ actuarial job postings
  • Labels: 100+ unique skills spanning actuarial domains, programming, tools, and soft skills

Training Data

Our model was trained on a diverse dataset of real actuarial job postings covering:

  • Industries: Life, P&C, Health, Pensions, Reinsurance
  • Regions: Global actuarial markets
  • Experience Levels: Entry-level to executive positions
  • Time Period: Current market requirements (2023-2025)

Performance Metrics

Metric Score
F1 Macro 0.XXX
F1 Micro 0.XXX
Precision 0.XXX
Recall 0.XXX

(Replace with actual metrics from your training)

Skills Coverage

The model recognizes skills across multiple categories:

πŸ”€ Programming Languages

  • Python, R, SQL, VBA, SAS, C++, Java, JavaScript, Scala

πŸ“Š Actuarial Domains

  • Pricing, Reserving, Capital Modeling, Valuation
  • Life, P&C, Health, Pensions, Reinsurance
  • Risk Management, Product Development

πŸ€– Technical Skills

  • Machine Learning, Deep Learning, GLM, GAM
  • Statistical Modeling, Data Science, Analytics
  • NLP, Computer Vision, Time Series

πŸ› οΈ Tools & Software

  • Excel, Prophet, ResQ, MoSes, AXIS
  • PowerBI, Tableau, Qlik
  • Git, Docker, Apache Spark
  • TensorFlow, PyTorch, scikit-learn

πŸ’Ό Business Skills

  • Communication, Presentation, Leadership
  • Stakeholder Management, Strategy
  • Project Management, Team Collaboration

πŸ“œ Certifications

  • ASA, FSA, ACAS, FCAS
  • CERA, CFA, FRM
  • Regional qualifications (FIA, DAV, etc.)

🎯 How It Works

1. Input Processing

Your text β†’ Tokenization (ModernBERT tokenizer) β†’ Max 512/1024/2048 tokens

2. Model Inference

Tokenized input β†’ ModernBERT encoder β†’ Multi-label classification head
β†’ Sigmoid activation β†’ Probability scores for each skill

3. Threshold Application

Raw probabilities β†’ Filter by confidence threshold (default 0.5)
β†’ Rank by score β†’ Return top K skills

4. Post-Processing

Predicted skills β†’ Categorization β†’ Learning roadmap generation
β†’ Formatted output for display

πŸ’‘ Tips for Best Results

βœ… DO:

  • Be specific about domains: "motor insurance pricing" vs. "insurance"
  • Mention tools/languages: "Python GLM model" vs. "statistical model"
  • Include context: "IFRS 17 implementation" vs. "accounting"
  • Use industry terms: "reserving", "capital modeling", "mortality tables"
  • Write 2-3 sentences for richer context

❌ AVOID:

  • Very short phrases (under 10 words)
  • Generic descriptions: "data analysis job"
  • Non-actuarial contexts
  • Overly broad terms without specifics

🎚️ Adjusting Parameters

Confidence Threshold:

  • 0.3-0.4: Comprehensive (more skills, some less relevant)
  • 0.5 (default): Balanced (good mix of precision and recall)
  • 0.6-0.7: Precise (fewer skills, highly relevant only)
  • 0.8+: Very strict (only very strong matches)

Top K Skills:

  • 5-10: Focus on core skills only
  • 10-20 (recommended): Comprehensive overview
  • 0 (unlimited): See everything above threshold

πŸ”§ Technical Implementation

Requirements

transformers>=4.44.0
torch>=2.0.0
gradio>=4.0.0
pandas
numpy

Local Usage

from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch

model_name = "your-username/modernbert-actuarial-skills-classifier"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)

text = "pricing motor insurance with GLM and Python"
inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=512)

with torch.no_grad():
    outputs = model(**inputs)
    probs = torch.sigmoid(outputs.logits)
    
# Get predictions above threshold
threshold = 0.5
predicted_indices = torch.where(probs[0] > threshold)[0]
predicted_skills = [model.config.id2label[idx.item()] for idx in predicted_indices]

print("Predicted Skills:", predicted_skills)

API Usage

from huggingface_hub import InferenceClient

client = InferenceClient()
result = client.text_classification(
    "pricing motor portfolio with GLM and Python",
    model="your-username/modernbert-actuarial-skills-classifier"
)

print(result)

Batch Processing

texts = [
    "life insurance reserving with IFRS 17",
    "P&C pricing using machine learning",
    "pension scheme valuation"
]

inputs = tokenizer(texts, return_tensors="pt", padding=True, truncation=True)
with torch.no_grad():
    outputs = model(**inputs)
    probs = torch.sigmoid(outputs.logits)

# Process each prediction
for i, text_probs in enumerate(probs):
    print(f"\nText {i+1}: {texts[i]}")
    top_k = torch.topk(text_probs, k=5)
    for score, idx in zip(top_k.values, top_k.indices):
        print(f"  {model.config.id2label[idx.item()]}: {score:.2%}")

πŸ“ˆ Model Training Details

Data Preparation

  1. Collection: 7,000+ actuarial job postings from multiple sources
  2. Cleaning: Anonymization, deduplication, quality filtering
  3. Labeling: Expert-annotated skill tags (100+ unique labels)
  4. Splitting: 60% train, 20% validation, 20% test

Training Configuration

- Base Model: answerdotai/ModernBERT-base
- Max Sequence Length: [512/1024/2048] tokens
- Batch Size: [8/16/32] (depends on GPU)
- Learning Rate: 2e-5
- Epochs: 3
- Optimizer: AdamW
- Loss Function: BCEWithLogitsLoss (multi-label)
- Hardware: [GPU type used]

Fine-tuning Process

  1. Tokenization: ModernBERT tokenizer with dynamic padding
  2. Classification Head: Multi-label binary classifier
  3. Training: Cross-entropy loss with label smoothing
  4. Evaluation: F1-macro, F1-micro, Hamming loss
  5. Optimization: Gradient accumulation, mixed precision (FP16)

🎨 Customization

Adding New Skills

To retrain with additional skills:

  1. Prepare labeled data in same format
  2. Update label mappings
  3. Fine-tune with new data
  4. Validate on held-out test set

Adjusting for Other Domains

This architecture can be adapted for other professional domains:

  • Software engineering skills
  • Medical specializations
  • Finance & banking competencies
  • Legal practice areas

🀝 Contributing

Ways to improve this tool:

  • Report issues or bugs
  • Suggest new features
  • Share feedback on accuracy
  • Contribute training data
  • Propose UI/UX improvements

πŸ“„ License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

πŸ™ Acknowledgments

  • ModernBERT Team: For the excellent base model
  • Hugging Face: For hosting infrastructure and tools
  • Actuarial Community: For feedback and validation
  • Training Data: Sourced from public job boards and postings

πŸ“ž Contact & Support

  • Model Repository: [Link to your HuggingFace model]
  • Issues: Use GitHub Issues or HF Discussions
  • Email: [Your contact email]
  • LinkedIn: [Your LinkedIn profile]

πŸ”— Related Resources

For Actuarial Students

For Learning Skills

Technical Documentation

πŸ“Š Statistics

  • Total Skills: 100+ unique labels
  • Training Samples: 7,000+ job postings
  • Model Size: ~140M parameters
  • Inference Speed: <1 second per prediction
  • Languages Supported: English (with potential for multilingual expansion)

πŸš€ Future Enhancements

  • Skill clustering and visualization
  • Trend analysis over time
  • Salary correlation insights
  • Course recommendations per skill
  • Multi-language support
  • Mobile app version
  • API endpoint for integration
  • Chrome extension for job sites

πŸ“ Citation

If you use this model or tool in your research or application, please cite:

@misc{actuarial-skills-classifier,
  author = {Your Name},
  title = {Actuarial Skills Classifier: Multi-label Classification for Career Planning},
  year = {2025},
  publisher = {HuggingFace},
  journal = {HuggingFace Spaces},
  howpublished = {\url{https://huggingface.co/spaces/your-username/actuarial-skills-classifier}}
}

Built with ❀️ for the actuarial community

πŸš€ Try the Demo | πŸ“– Documentation | πŸ’¬ Discussions