Insurance sentence classifier built by weight editing (no gradient descent)
BertForSequenceClassification over bert-base-uncased, turned into an 8-label insurance sentence
classifier by an editor LLM that read and wrote the weights directly (closed-form math on weights and
on activations from a budgeted number of forward passes; no backprop, no optimizers). See the project
README for the protocol and results.
Labels: coverage_grant, exclusion, premium_payment, deductible_limits, claims_procedure, definitions, term_cancellation_renewal, conditions_duties
Edited tensors (201, 100.000% of parameters changed):
bert.embeddings.LayerNorm.bias(768 entries changed)bert.embeddings.LayerNorm.weight(768 entries changed)bert.embeddings.position_embeddings.weight(393,215 entries changed)bert.embeddings.token_type_embeddings.weight(1,536 entries changed)bert.embeddings.word_embeddings.weight(23,440,877 entries changed)bert.encoder.layer.0.attention.output.LayerNorm.bias(768 entries changed)bert.encoder.layer.0.attention.output.LayerNorm.weight(768 entries changed)bert.encoder.layer.0.attention.output.dense.bias(768 entries changed)bert.encoder.layer.0.attention.output.dense.weight(589,824 entries changed)bert.encoder.layer.0.attention.self.key.bias(768 entries changed)bert.encoder.layer.0.attention.self.key.weight(589,822 entries changed)bert.encoder.layer.0.attention.self.query.bias(768 entries changed)bert.encoder.layer.0.attention.self.query.weight(589,820 entries changed)bert.encoder.layer.0.attention.self.value.bias(768 entries changed)bert.encoder.layer.0.attention.self.value.weight(589,823 entries changed)bert.encoder.layer.0.intermediate.dense.bias(3,072 entries changed)bert.encoder.layer.0.intermediate.dense.weight(2,359,286 entries changed)bert.encoder.layer.0.output.LayerNorm.bias(768 entries changed)bert.encoder.layer.0.output.LayerNorm.weight(768 entries changed)bert.encoder.layer.0.output.dense.bias(768 entries changed)bert.encoder.layer.0.output.dense.weight(2,359,286 entries changed)bert.encoder.layer.1.attention.output.LayerNorm.bias(768 entries changed)bert.encoder.layer.1.attention.output.LayerNorm.weight(768 entries changed)bert.encoder.layer.1.attention.output.dense.bias(768 entries changed)bert.encoder.layer.1.attention.output.dense.weight(589,818 entries changed)bert.encoder.layer.1.attention.self.key.bias(768 entries changed)bert.encoder.layer.1.attention.self.key.weight(589,823 entries changed)bert.encoder.layer.1.attention.self.query.bias(768 entries changed)bert.encoder.layer.1.attention.self.query.weight(589,820 entries changed)bert.encoder.layer.1.attention.self.value.bias(768 entries changed)bert.encoder.layer.1.attention.self.value.weight(589,823 entries changed)bert.encoder.layer.1.intermediate.dense.bias(3,072 entries changed)bert.encoder.layer.1.intermediate.dense.weight(2,359,285 entries changed)bert.encoder.layer.1.output.LayerNorm.bias(768 entries changed)bert.encoder.layer.1.output.LayerNorm.weight(768 entries changed)bert.encoder.layer.1.output.dense.bias(768 entries changed)bert.encoder.layer.1.output.dense.weight(2,359,286 entries changed)bert.encoder.layer.10.attention.output.LayerNorm.bias(768 entries changed)bert.encoder.layer.10.attention.output.LayerNorm.weight(768 entries changed)bert.encoder.layer.10.attention.output.dense.bias(768 entries changed)bert.encoder.layer.10.attention.output.dense.weight(589,823 entries changed)bert.encoder.layer.10.attention.self.key.bias(768 entries changed)bert.encoder.layer.10.attention.self.key.weight(589,819 entries changed)bert.encoder.layer.10.attention.self.query.bias(768 entries changed)bert.encoder.layer.10.attention.self.query.weight(589,824 entries changed)bert.encoder.layer.10.attention.self.value.bias(768 entries changed)bert.encoder.layer.10.attention.self.value.weight(589,820 entries changed)bert.encoder.layer.10.intermediate.dense.bias(3,072 entries changed)bert.encoder.layer.10.intermediate.dense.weight(2,359,284 entries changed)bert.encoder.layer.10.output.LayerNorm.bias(768 entries changed)bert.encoder.layer.10.output.LayerNorm.weight(768 entries changed)bert.encoder.layer.10.output.dense.bias(768 entries changed)bert.encoder.layer.10.output.dense.weight(2,359,294 entries changed)bert.encoder.layer.11.attention.output.LayerNorm.bias(768 entries changed)bert.encoder.layer.11.attention.output.LayerNorm.weight(768 entries changed)bert.encoder.layer.11.attention.output.dense.bias(768 entries changed)bert.encoder.layer.11.attention.output.dense.weight(589,824 entries changed)bert.encoder.layer.11.attention.self.key.bias(768 entries changed)bert.encoder.layer.11.attention.self.key.weight(589,821 entries changed)bert.encoder.layer.11.attention.self.query.bias(768 entries changed)bert.encoder.layer.11.attention.self.query.weight(589,820 entries changed)bert.encoder.layer.11.attention.self.value.bias(768 entries changed)bert.encoder.layer.11.attention.self.value.weight(589,823 entries changed)bert.encoder.layer.11.intermediate.dense.bias(3,072 entries changed)bert.encoder.layer.11.intermediate.dense.weight(2,359,291 entries changed)bert.encoder.layer.11.output.LayerNorm.bias(768 entries changed)bert.encoder.layer.11.output.LayerNorm.weight(768 entries changed)bert.encoder.layer.11.output.dense.bias(768 entries changed)bert.encoder.layer.11.output.dense.weight(2,359,295 entries changed)bert.encoder.layer.2.attention.output.LayerNorm.bias(768 entries changed)bert.encoder.layer.2.attention.output.LayerNorm.weight(768 entries changed)bert.encoder.layer.2.attention.output.dense.bias(768 entries changed)bert.encoder.layer.2.attention.output.dense.weight(589,824 entries changed)bert.encoder.layer.2.attention.self.key.bias(766 entries changed)bert.encoder.layer.2.attention.self.key.weight(589,820 entries changed)bert.encoder.layer.2.attention.self.query.bias(768 entries changed)bert.encoder.layer.2.attention.self.query.weight(589,824 entries changed)bert.encoder.layer.2.attention.self.value.bias(768 entries changed)bert.encoder.layer.2.attention.self.value.weight(589,823 entries changed)bert.encoder.layer.2.intermediate.dense.bias(3,072 entries changed)bert.encoder.layer.2.intermediate.dense.weight(2,359,286 entries changed)bert.encoder.layer.2.output.LayerNorm.bias(768 entries changed)bert.encoder.layer.2.output.LayerNorm.weight(768 entries changed)bert.encoder.layer.2.output.dense.bias(768 entries changed)bert.encoder.layer.2.output.dense.weight(2,359,283 entries changed)bert.encoder.layer.3.attention.output.LayerNorm.bias(768 entries changed)bert.encoder.layer.3.attention.output.LayerNorm.weight(768 entries changed)bert.encoder.layer.3.attention.output.dense.bias(768 entries changed)bert.encoder.layer.3.attention.output.dense.weight(589,822 entries changed)bert.encoder.layer.3.attention.self.key.bias(768 entries changed)bert.encoder.layer.3.attention.self.key.weight(589,824 entries changed)bert.encoder.layer.3.attention.self.query.bias(768 entries changed)bert.encoder.layer.3.attention.self.query.weight(589,822 entries changed)bert.encoder.layer.3.attention.self.value.bias(768 entries changed)bert.encoder.layer.3.attention.self.value.weight(589,822 entries changed)bert.encoder.layer.3.intermediate.dense.bias(3,072 entries changed)bert.encoder.layer.3.intermediate.dense.weight(2,359,289 entries changed)bert.encoder.layer.3.output.LayerNorm.bias(768 entries changed)bert.encoder.layer.3.output.LayerNorm.weight(768 entries changed)bert.encoder.layer.3.output.dense.bias(768 entries changed)bert.encoder.layer.3.output.dense.weight(2,359,290 entries changed)bert.encoder.layer.4.attention.output.LayerNorm.bias(768 entries changed)bert.encoder.layer.4.attention.output.LayerNorm.weight(768 entries changed)bert.encoder.layer.4.attention.output.dense.bias(768 entries changed)bert.encoder.layer.4.attention.output.dense.weight(589,822 entries changed)bert.encoder.layer.4.attention.self.key.bias(768 entries changed)bert.encoder.layer.4.attention.self.key.weight(589,824 entries changed)bert.encoder.layer.4.attention.self.query.bias(768 entries changed)bert.encoder.layer.4.attention.self.query.weight(589,820 entries changed)bert.encoder.layer.4.attention.self.value.bias(768 entries changed)bert.encoder.layer.4.attention.self.value.weight(589,823 entries changed)bert.encoder.layer.4.intermediate.dense.bias(3,072 entries changed)bert.encoder.layer.4.intermediate.dense.weight(2,359,285 entries changed)bert.encoder.layer.4.output.LayerNorm.bias(768 entries changed)bert.encoder.layer.4.output.LayerNorm.weight(768 entries changed)bert.encoder.layer.4.output.dense.bias(768 entries changed)bert.encoder.layer.4.output.dense.weight(2,359,286 entries changed)bert.encoder.layer.5.attention.output.LayerNorm.bias(768 entries changed)bert.encoder.layer.5.attention.output.LayerNorm.weight(768 entries changed)bert.encoder.layer.5.attention.output.dense.bias(768 entries changed)bert.encoder.layer.5.attention.output.dense.weight(589,822 entries changed)bert.encoder.layer.5.attention.self.key.bias(768 entries changed)bert.encoder.layer.5.attention.self.key.weight(589,823 entries changed)bert.encoder.layer.5.attention.self.query.bias(768 entries changed)bert.encoder.layer.5.attention.self.query.weight(589,820 entries changed)bert.encoder.layer.5.attention.self.value.bias(768 entries changed)bert.encoder.layer.5.attention.self.value.weight(589,823 entries changed)bert.encoder.layer.5.intermediate.dense.bias(3,072 entries changed)bert.encoder.layer.5.intermediate.dense.weight(2,359,283 entries changed)bert.encoder.layer.5.output.LayerNorm.bias(768 entries changed)bert.encoder.layer.5.output.LayerNorm.weight(768 entries changed)bert.encoder.layer.5.output.dense.bias(768 entries changed)bert.encoder.layer.5.output.dense.weight(2,359,282 entries changed)bert.encoder.layer.6.attention.output.LayerNorm.bias(768 entries changed)bert.encoder.layer.6.attention.output.LayerNorm.weight(768 entries changed)bert.encoder.layer.6.attention.output.dense.bias(768 entries changed)bert.encoder.layer.6.attention.output.dense.weight(589,819 entries changed)bert.encoder.layer.6.attention.self.key.bias(768 entries changed)bert.encoder.layer.6.attention.self.key.weight(589,821 entries changed)bert.encoder.layer.6.attention.self.query.bias(768 entries changed)bert.encoder.layer.6.attention.self.query.weight(589,823 entries changed)bert.encoder.layer.6.attention.self.value.bias(768 entries changed)bert.encoder.layer.6.attention.self.value.weight(589,821 entries changed)bert.encoder.layer.6.intermediate.dense.bias(3,072 entries changed)bert.encoder.layer.6.intermediate.dense.weight(2,359,292 entries changed)bert.encoder.layer.6.output.LayerNorm.bias(768 entries changed)bert.encoder.layer.6.output.LayerNorm.weight(768 entries changed)bert.encoder.layer.6.output.dense.bias(768 entries changed)bert.encoder.layer.6.output.dense.weight(2,359,291 entries changed)bert.encoder.layer.7.attention.output.LayerNorm.bias(768 entries changed)bert.encoder.layer.7.attention.output.LayerNorm.weight(768 entries changed)bert.encoder.layer.7.attention.output.dense.bias(768 entries changed)bert.encoder.layer.7.attention.output.dense.weight(589,823 entries changed)bert.encoder.layer.7.attention.self.key.bias(768 entries changed)bert.encoder.layer.7.attention.self.key.weight(589,823 entries changed)bert.encoder.layer.7.attention.self.query.bias(768 entries changed)bert.encoder.layer.7.attention.self.query.weight(589,821 entries changed)bert.encoder.layer.7.attention.self.value.bias(768 entries changed)bert.encoder.layer.7.attention.self.value.weight(589,824 entries changed)bert.encoder.layer.7.intermediate.dense.bias(3,072 entries changed)bert.encoder.layer.7.intermediate.dense.weight(2,359,286 entries changed)bert.encoder.layer.7.output.LayerNorm.bias(768 entries changed)bert.encoder.layer.7.output.LayerNorm.weight(768 entries changed)bert.encoder.layer.7.output.dense.bias(768 entries changed)bert.encoder.layer.7.output.dense.weight(2,359,292 entries changed)bert.encoder.layer.8.attention.output.LayerNorm.bias(768 entries changed)bert.encoder.layer.8.attention.output.LayerNorm.weight(768 entries changed)bert.encoder.layer.8.attention.output.dense.bias(768 entries changed)bert.encoder.layer.8.attention.output.dense.weight(589,823 entries changed)bert.encoder.layer.8.attention.self.key.bias(768 entries changed)bert.encoder.layer.8.attention.self.key.weight(589,823 entries changed)bert.encoder.layer.8.attention.self.query.bias(768 entries changed)bert.encoder.layer.8.attention.self.query.weight(589,822 entries changed)bert.encoder.layer.8.attention.self.value.bias(768 entries changed)bert.encoder.layer.8.attention.self.value.weight(589,824 entries changed)bert.encoder.layer.8.intermediate.dense.bias(3,072 entries changed)bert.encoder.layer.8.intermediate.dense.weight(2,359,289 entries changed)bert.encoder.layer.8.output.LayerNorm.bias(768 entries changed)bert.encoder.layer.8.output.LayerNorm.weight(768 entries changed)bert.encoder.layer.8.output.dense.bias(768 entries changed)bert.encoder.layer.8.output.dense.weight(2,359,287 entries changed)bert.encoder.layer.9.attention.output.LayerNorm.bias(768 entries changed)bert.encoder.layer.9.attention.output.LayerNorm.weight(768 entries changed)bert.encoder.layer.9.attention.output.dense.bias(768 entries changed)bert.encoder.layer.9.attention.output.dense.weight(589,820 entries changed)bert.encoder.layer.9.attention.self.key.bias(768 entries changed)bert.encoder.layer.9.attention.self.key.weight(589,823 entries changed)bert.encoder.layer.9.attention.self.query.bias(768 entries changed)bert.encoder.layer.9.attention.self.query.weight(589,821 entries changed)bert.encoder.layer.9.attention.self.value.bias(768 entries changed)bert.encoder.layer.9.attention.self.value.weight(589,822 entries changed)bert.encoder.layer.9.intermediate.dense.bias(3,072 entries changed)bert.encoder.layer.9.intermediate.dense.weight(2,359,289 entries changed)bert.encoder.layer.9.output.LayerNorm.bias(768 entries changed)bert.encoder.layer.9.output.LayerNorm.weight(768 entries changed)bert.encoder.layer.9.output.dense.bias(768 entries changed)bert.encoder.layer.9.output.dense.weight(2,359,289 entries changed)bert.pooler.dense.bias(768 entries changed)bert.pooler.dense.weight(589,822 entries changed)classifier.bias(8 entries changed)classifier.weight(6,144 entries changed)
edit_manifest.json in this folder holds the exact diff metadata (sha256 of base and edited tensors).
from transformers import pipeline
clf = pipeline("text-classification", model="sidman007/wsp-bert-insurance-baseline-finetune")
clf("Flood damage is not covered under this policy.")
Run: _baselines/finetune · held-out test accuracy: 97.25% · macro-F1: 0.9727
Source, logs and protocol: https://github.com/siddharth-ghatti/weight-space-programming-poc
Caveat: accurate but uncalibrated
This model predicts the correct label, but its softmax probabilities are flat (the winning label typically scores around 0.2 rather than 0.9+). This is a logit-scale artifact of how the editor wired the final layers: multiplying the logits by any constant changes no prediction. Use the argmax label; fit a temperature on your own held-out data before using the scores as confidences. See the project README for details and for what it would take to use this in production.