Skip to main content

FamilyOS UltraBERT v4 - Multi-task NLP with GlobalPointer NER

Project description

FamilyOS UltraBERT v2

High-performance multi-task NLP model for family communication analysis.

Built on ModernBERT architecture, UltraBERT delivers 12 NLP capabilities in a single unified model - extract sentiment, emotions, safety signals, entities, and more from text with state-of-the-art accuracy.

Features

  • 12 NLP Capabilities in one unified model
  • PyTorch & ONNX backends for flexible deployment
  • < 15ms latency for 6 capabilities on GPU
  • Single encoder pass for multi-capability inference
  • 768-dim sentence embeddings for semantic search
  • 155M parameters - Optimized ModernBERT architecture

Installation

From GitHub (recommended)

# Clone the full repository
git clone https://github.com/Pkansagra-hub/Family_osModernBERT.git
cd Family_osModernBERT

# Install the package with PyTorch backend
pip install ./familyos_ultrabert[pytorch]

# Or with ONNX backend
pip install ./familyos_ultrabert[onnx]

# Or both
pip install ./familyos_ultrabert[all]

From PyPI (coming soon)

# Basic installation
pip install familyos-ultrabert

# With PyTorch backend (recommended for GPU)
pip install familyos-ultrabert[pytorch]

# With ONNX backend (recommended for CPU)
pip install familyos-ultrabert[onnx]

# Full installation (both backends)
pip install familyos-ultrabert[all]

Note: The PyTorch backend requires the full repository for model architecture code. The ONNX backend is fully standalone.

Quick Start

from familyos_ultrabert import UltraBERT

# Load model (auto-selects best backend)
model = UltraBERT.load()

# Analyze text with multiple capabilities
result = model.analyze(
    "Mom picked up Panda from school today!",
    capabilities=["sentiment", "ner_family", "safety_familyos", "emotions"]
)

# Access results
print(result["sentiment"])
# {'prediction': 'positive', 'confidence': 0.89, 'scores': {...}}

print(result["ner_family"]["entities"])
# [{'text': 'Mom', 'label': 'KINSHIP'}, {'text': 'Panda', 'label': 'NICKNAME'}]

print(result["safety_familyos"])
# {'band': 'GREEN', 'confidence': 0.98, 'probabilities': {...}}

print(result["emotions"]["predictions"])
# ['joy', 'caring', 'togetherness']

Capabilities

Capability Type Description
sentiment Classification 5-class sentiment (very_negative to very_positive)
emotions Multi-label 44 emotions including family-specific feelings
safety_familyos Classification Safety bands: GREEN, AMBER, RED, CRISIS
safety_generic Multi-label 8 toxicity types (Jigsaw-style)
intent Classification 8 user intents (log_memory, query_memory, etc.)
ingress Classification 12 domain categories (DIARY, TASK, HEALTH, etc.)
ner_family Token Family entities (KINSHIP, NICKNAME, PET, etc.)
ner_general Token General NER (PER, ORG, LOC, DATE, etc.)
temporal Token Temporal expressions (DATE_ABS, DATE_REL, DURATION)
relation Multi-label 15 relationship types (parent_of, spouse_of, etc.)
nli Classification Natural language inference
embedding Vector 768-dim sentence embeddings

Convenience Methods

# Sentiment
sentiment = model.get_sentiment("I love this!")
print(sentiment["prediction"])  # "very_positive"

# Emotions
emotions = model.get_emotions("So excited for the trip!")
print(emotions)  # ["excitement", "joy", "anticipation"]

# Safety check
band = model.get_safety_band("Having a great day!")
print(band)  # "GREEN"

# Entity extraction
entities = model.get_entities("Mom and Dad took the kids to grandma's house")
print(entities)
# [{'text': 'Mom', 'label': 'KINSHIP'}, {'text': 'Dad', 'label': 'KINSHIP'}, ...]

# Embeddings
embedding = model.get_embedding("Sample text for embedding")
print(len(embedding))  # 768

Backend Selection

# Auto-detect (uses GPU if available)
model = UltraBERT.load()

# Force PyTorch on GPU (best for multi-capability)
model = UltraBERT.load(backend="pytorch", device="cuda")

# Force ONNX on CPU (best for single-capability, deployment)
model = UltraBERT.load(backend="onnx", device="cpu")

# Custom model path
model = UltraBERT.load(model_path="/path/to/weights")

Model Architecture

Component Details
Base Model ModernBERT-base (22 layers, 768 hidden)
Parameters 155M total
Encoder Shared transformer backbone
Heads 12 specialized task heads
Optimization 15% magnitude pruning
Quantization Dynamic INT8 (ONNX)

Benchmarks (RTX 4090)

Running the built-in benchmark suites

Benchmarks ship with the package and can be run either as a module:

python -m familyos_ultrabert.benchmarks --suite api,regression

or via the console script (when installed):

ultrabert-benchmark --suite api,regression

Reporting formats:

python -m familyos_ultrabert.benchmarks --suite api,regression --format text
python -m familyos_ultrabert.benchmarks --suite api,regression --format json --output benchmark_report.json
python -m familyos_ultrabert.benchmarks --suite api,regression --format markdown --output benchmark_report.md

For a faster smoke run:

python -m familyos_ultrabert.benchmarks --quick

Standard profiles (recommended for CI):

python -m familyos_ultrabert.benchmarks --profile smoke
python -m familyos_ultrabert.benchmarks --profile full

Baseline drift tracking (compare against last-known-good per environment key and update baseline):

python -m familyos_ultrabert.benchmarks --profile smoke --baseline --format json --output benchmark_report.json

Task Performance

Task Metric Score
safety_familyos Accuracy 96.20%
intent Actionable Rate 96.58%
emotions Hit Rate 88.30%
sentiment Direction Accuracy 88.10%
ner_family F1 87.71%
temporal F1 87.17%
Weighted Average 89.60%

Latency

Scenario Latency Throughput
1 capability 8 ms -
6 capabilities 14 ms -
12 capabilities 14 ms 71 samples/sec
Embedding query 13 ms 1,921 emb/sec

License

Proprietary - All Rights Reserved. See LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

familyos_ultrabert-4.0.8.tar.gz (213.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

familyos_ultrabert-4.0.8-py3-none-any.whl (240.4 kB view details)

Uploaded Python 3

File details

Details for the file familyos_ultrabert-4.0.8.tar.gz.

File metadata

  • Download URL: familyos_ultrabert-4.0.8.tar.gz
  • Upload date:
  • Size: 213.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for familyos_ultrabert-4.0.8.tar.gz
Algorithm Hash digest
SHA256 fefc32c29827ae0e618b9c653712cde986811b90001fb694455da32221e18a0a
MD5 aaee358891916618c29a11d88dc401f0
BLAKE2b-256 30aad98fb5f9b02aaa2ef7e374127032cb55e862e987710459a00648b4dd79f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for familyos_ultrabert-4.0.8.tar.gz:

Publisher: release.yml on Pkansagra-hub/Family_osModernBERT

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file familyos_ultrabert-4.0.8-py3-none-any.whl.

File metadata

File hashes

Hashes for familyos_ultrabert-4.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 ae206eecf569cbf5bb5728c3c62d4a6ca8c832056511881c16584373a45a6cd2
MD5 9dc26e002f0fb470d5d43613a20451ec
BLAKE2b-256 81b18e4f272e405c72ae033239698cd8f841687e6c069ff437e78055b5cee9a4

See more details on using hashes here.

Provenance

The following attestation bundles were made for familyos_ultrabert-4.0.8-py3-none-any.whl:

Publisher: release.yml on Pkansagra-hub/Family_osModernBERT

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page