Abercrombie-Decision

An Unsloth decision model that classifies trademarks on the Abercrombie distinctiveness spectrum (Generic / Descriptive / Suggestive / Arbitrary / Fanciful). It is a LoRA adapter on unsloth/Qwen3.5-4B plus a Clef-style decision head.

It does not generate text. The LLM reads the mark once, and the head scores the options for six questions together: five yes/no doctrine sub-questions and a final 5-level distinctiveness score. Every answer comes with a probability.

This is a proof of concept and the companion to DoodDood/abercrombie-grpo. It uses the same base model, training marks and test set, with a different training method.

Results

On the 95-row LegalBench Abercrombie test set. Training data excluded every test mark.

Category Base Qwen3.5-4B Abercrombie-GRPO This model (seed 42) Mean of 3 seeds
Generic 89% 100% 100% 100%
Descriptive 100% 74% 95% 95%
Suggestive 5% 26% 26% 25%
Arbitrary 0% 47% 68% 65%
Fanciful 5% 95% 89% 91%
Overall 40.0% 68.4% 75.8% 75.1% +/- 1.2

Mean ordinal distance: 0.34 (GRPO 0.53, base 1.09). Training took about 7 minutes on one RTX PRO 6000 (Colab G4).

Sub-question accuracy (seed 42): coined 98%, semantic link 93%, imagination 82%, conveys 81%, genus 95%. The sub-answers, run through the routing rule below, agree with the model's own final answer on 94% of marks.

A single-question variant (distinctiveness only) scored 74.4% +/- 3.7, which is not a significant difference (paired sign test p = 0.50).

Limitations (read before using)

  • Small test set. 95 rows means each run's accuracy carries roughly +/- 9 points of uncertainty.
  • Suggestive marks are weak (about 25%). They mostly get called Descriptive (Coppertone, Chicken of the Sea, Orange Crush).
  • Famous brands get pulled toward Generic. Microsoft, Netflix, Airbus and Amazon are misclassified in every run. All training marks are synthetic and invented, so the model has never seen a famous real brand.
  • Overconfident on real marks. Probabilities were calibrated on a synthetic holdout (ECE 0.008) but are overconfident on LegalBench (ECE 0.145 for this seed, about 0.16 averaged over seeds). Treat the probabilities as a ranking, not as calibrated odds.
  • Sub-question labels are derived, not annotated. The training data labels only the final category. Sub-question gold was derived from the routing rule plus fixed conventions (for example, a generic name "conveys" its goods).
  • Not legal advice. This is a research demo, not a clearance or registrability opinion.

Usage

Needs a GPU and Unsloth (trained with unsloth==2026.10.3). It loads with FastDecisionModel, not a transformers text-generation pipeline.

pip install unsloth==2026.10.3 unsloth_zoo==2026.10.3
from unsloth import FastDecisionModel

model, tokenizer = FastDecisionModel.from_pretrained("DoodDood/abercrombie-decision")
FastDecisionModel.for_inference(model)

CATEGORIES = ["Generic", "Descriptive", "Suggestive", "Arbitrary", "Fanciful"]
QUESTIONS = {
    "coined": {"type": "noul", "instructions": "Is the mark an invented term created solely for trademark use, with no prior independent meaning?"},
    "semantic_link": {"type": "noul", "instructions": "Does the mark's ordinary dictionary meaning have any plausible semantic relationship to the goods or services?"},
    "imagination": {"type": "noul", "instructions": "Must the consumer use imagination, thought, or a multi-step mental process to connect the mark to the nature of the goods or services?"},
    "conveys": {"type": "noul", "instructions": "Does the mark immediately convey an idea of a feature, quality, function, ingredient, or characteristic of the goods or services to the relevant purchasing public?"},
    "genus": {"type": "noul", "instructions": "Does the relevant purchasing public understand the mark primarily as the name of the general category of goods or services, rather than as an indicator of source?"},
    "distinctiveness": {
        "type": "score",
        "instructions": "Where does the mark fall on the Abercrombie spectrum of trademark distinctiveness for these goods or services?",
        "criteria": [
            "Generic: the common name of the goods or services; never protectable.",
            "Descriptive: directly describes a feature, quality or purpose of the goods.",
            "Suggestive: hints at the goods but needs imagination to connect.",
            "Arbitrary: a real word with no relationship to the goods.",
            "Fanciful: an invented word with no prior meaning.",
        ],
    },
}

# Input format: `The mark "X" for Y.` (the LegalBench phrasing it was trained on)
answers = FastDecisionModel.predict(model, tokenizer, 'The mark "Kodak" for cameras.', QUESTIONS)
final = answers["distinctiveness"]
print(CATEGORIES[final["answer"]], final["probabilities"])
for q in ["coined", "semantic_link", "imagination", "conveys", "genus"]:
    print(q, answers[q]["answer"], answers[q]["probabilities"])

Use the question wording exactly as above. The instruction and criteria text is part of the model's input, so paraphrasing it shifts the predictions.

Sub-questions and routing

The five sub-questions follow the GRPO model's doctrine decomposition:

  • If coined = Yes, classify as Fanciful.
  • Else if semantic_link = No, classify as Arbitrary.
  • Else if genus = Yes, classify as Generic.
  • Else if conveys = Yes, classify as Descriptive.
  • Else if imagination = Yes, classify as Suggestive.

The head predicts the distinctiveness score directly. The routing rule is a consistency check you can run on the sub-answers, not how the final answer is produced.

Training

  • Method: Unsloth FastDecisionModel with a Clef decision head, 16-bit LoRA (r = 16, alpha = 16) on unsloth/Qwen3.5-4B, 2 epochs, learning rate 2e-4, cosine schedule, batch size 8. The head was trained at Unsloth's default head learning rate.
  • Data: the same 2,100 synthetic marks as Abercrombie-GRPO, balanced across the five classes and rephrased into LegalBench form. 1,890 rows were used for training. 210 held-out rows were used for temperature calibration.
  • Seeds: 3407, 42 and 1234. Seed 42 is published because, among the six-question runs, it tied for best accuracy and had the highest routing agreement and the lowest LegalBench calibration error (ECE 0.145).
  • Compute: about 7 minutes per run on one Colab G4 GPU.

Acknowledgements

Huge thanks to Daniel Han and the Unsloth team for decision models in Unsloth. Going from a dataset to a calibrated decision model in an afternoon on Colab is remarkable. The decision head follows the design of Cloudflare's Clef.

Downloads last month
15
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for DoodDood/abercrombie-decision

Finetuned
Qwen/Qwen3.5-4B
Adapter
(224)
this model