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.3.tar.gz (200.4 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.3-py3-none-any.whl (227.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: familyos_ultrabert-4.0.3.tar.gz
  • Upload date:
  • Size: 200.4 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.3.tar.gz
Algorithm Hash digest
SHA256 5faecc16749b5b1b80eefa3c4e47cbb837db3d4a65c21351d2849b340d8199dc
MD5 34a28a740eb2f6ab2ad9b7773afc0da3
BLAKE2b-256 a04df82d4f5b6b7cf50d9eb0f55e717204dc5f94a65dbddc90755dfe44b2165d

See more details on using hashes here.

Provenance

The following attestation bundles were made for familyos_ultrabert-4.0.3.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.3-py3-none-any.whl.

File metadata

File hashes

Hashes for familyos_ultrabert-4.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 60d0d8c852a5a07858841d8f2d3122baac5fd7042c02c1f48dfa28cad22a95df
MD5 b9d3afa631741c44ca10ef52fc7dae18
BLAKE2b-256 e1660e4a32351e666cd7c402549d550bc29deaa5c86f065d0199151ec4bbfa82

See more details on using hashes here.

Provenance

The following attestation bundles were made for familyos_ultrabert-4.0.3-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