Letterweave-1.1-E4B

Letterweave labels the communicative purposes of English email. Given a subject and body, it returns seven independent binary decisions and raw probabilities: correspondence, transactions/records, alerts/updates, newsletters/publications, promotions/outreach, community/discussions, and scheduling/invitations. Multiple labels, or none, can apply. It produces decisions rather than a generated explanation.

This larger sibling of Letterweave-1.1-E2B offers a modest measured improvement on the shared test corpus. It may suit users willing to devote more GPU memory and host RAM to email classification. These results do not establish an improvement on every inbox.

What this repository contains

This is a LoRA adapter plus trained Unsloth Clef joint decision head, tokenizer, seven questions, taxonomy, label map and inference example. It requires Unsloth FastDecisionModel; a generic text-generation pipeline will not load the decision model correctly. The base weights are fetched separately. This is not a merged model or a general chat assistant.

Training

Developed by Magnus / Groktopus using the same Letterweave 0.3.0 dataset used for published E2B 1.1. This original synthetic, machine-labeled corpus contains 1,471 emails: 942 train, 270 development and 259 test. No private email was used for training. Dataset and generator: Letterweave.

The base is unsloth/gemma-4-E4B-it-unsloth-bnb-4bit, revision 6f10b2aa522ba471321d8246fd71a3dfa8c5b9a2. Training used 4-bit base weights, BF16 computation, LoRA rank16/alpha16/dropout0, seed3407, batch1 with gradient accumulation4, encoder learning rate0.0002 and head learning rate0.0001, cosine schedule with10 warmup steps, weight decay0.01 and 8-bit AdamW. All480 optimizer steps completed, about2.03 epochs. Training context was8192 tokens, with no truncated or skipped training inputs. The original seven-question contract was retained. Inference selects labels strictly when raw probability >0.5; these probabilities are not independently calibrated confidence estimates.

Matched evaluation against published E2B

Both models were evaluated on identical messages, questions and thresholds. Exact-set agreement requires every label on an email to match the dataset labels. Macro F1 averages the seven label F1 scores.

Measure Letterweave-1.1-E2B Letterweave-1.1-E4B
Development exact label sets 235/270 (87.04%) 245/270 (90.74%)
Test exact label sets 221/259 (85.33%) 229/259 (88.42%)
Test macro F1 0.9445 0.9672
Test missed alerts 2 2
Test false alerts 8 8

E4B matched eight additional complete label sets on the259-message test set, a3.09 percentage-point gain. This is one training seed, not a statistical guarantee or independent human-gold accuracy: synthetic test labels are machine-produced.

Hardware and memory

Training and matched evaluation ran on one RTX5070Ti with16GB VRAM, with native CPU embedding offload. Unsloth moved the per-layer embedding table (reported5.25GB) to host RAM; decoder and decision head stayed on CUDA. Full training peaked at12761MiB allocated and13014MiB reserved CUDA memory. Training took about26.3 minutes, excluding qualification and evaluation.

These are training measurements, not an inference VRAM minimum. An all-VRAM configuration was not qualified. Host RAM is required for the provided offloaded configuration; allow additional RAM for loading and runtime overhead beyond the embedding table. Different software, context lengths and workloads can change memory needs. No matched latency claim is made.

Usage

The qualified environment used Unsloth/Unsloth Zoo2026.10.3, Transformers5.17.0, PEFT0.21.2, bitsandbytes0.50.2 and PyTorch2.14.0+cu130 on Linux/CUDA. See requirements.txt; use a compatible CUDA installation. Download this repository, then run:

python inference.py --checkpoint Groktopus/Letterweave-1.1-E4B --email example-email.json

--revision can pin a Hub commit. Your JSON must contain exactly string subject and body fields. The example enables4-bit loading and native CPU embedding offload, rejects complete inputs that exceed the serving budget, and returns labels with raw probabilities. Default budget is16384 tokens. Headers or attachment contents must be represented by the caller in subject/body; this model does not fetch Gmail, parse MIME or inspect attachments itself.

Limitations and responsible use

English synthetic email may not represent your real inbox, multilingual mail, long threads or unusual formats. Signatures, quoted material and overlapping purposes can cause errors. The synthetic test still contained two missed alerts. Assess the model on your own representative mail before allowing automatic consequential actions. It does not provide an independently validated spam, phishing or security verdict. The seven labels describe purpose rather than personal priority.

Native saved-export parity versus the live development model had zero changed decisions and a maximum probability difference0.002584 across the development judgments. Evaluation aggregates and training provenance are included; raw private evaluation data are not.

License and attribution

Apache2.0; see LICENSE and NOTICE. Google's Gemma4 license applies to the base. LoRA weights, decision head and configuration were modified by Groktopus. No Google or Unsloth endorsement is implied. The synthetic dataset has its own MIT license.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Groktopus/Letterweave-1.1-E4B

Adapter
(25)
this model

Dataset used to train Groktopus/Letterweave-1.1-E4B