Spaces:
Runtime error
A newer version of the Gradio SDK is available: 6.26.0
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
- Collection: 7,000+ actuarial job postings from multiple sources
- Cleaning: Anonymization, deduplication, quality filtering
- Labeling: Expert-annotated skill tags (100+ unique labels)
- 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
- Tokenization: ModernBERT tokenizer with dynamic padding
- Classification Head: Multi-label binary classifier
- Training: Cross-entropy loss with label smoothing
- Evaluation: F1-macro, F1-micro, Hamming loss
- Optimization: Gradient accumulation, mixed precision (FP16)
π¨ Customization
Adding New Skills
To retrain with additional skills:
- Prepare labeled data in same format
- Update label mappings
- Fine-tune with new data
- 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
- Python: Real Python, DataCamp
- R: R for Data Science
- Actuarial Science: Coaching Actuaries
- Machine Learning: Fast.ai, Coursera
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