alt.freeweights.smollm / python-edu-scorer
From: HuggingFaceTB <huggingface.co/HuggingFaceTB>Newsgroups: alt.freeweights.smollmSubject:

python-edu-scorer

Date: 2026-11-14Commit: 76b46deSigned: 2DC28CC7B26A283B ✓

Text classification model with 109M parameters. Safetensors weights, 878 MB in all. Published by HuggingFaceTB under Apache-2.0.

109M params878MBpython-edu-scorersafetensorspermissive
FactsParams109MSize878 MBFormatssafetensorsTasktext classificationLicenseApache-2.0From sourcepermissive
$ fw get HuggingFaceTB/python-edu-scorer
# manifest sha256 a6762475f991… · 878 MB · 16 files
$ fw verify ./python-edu-scorer HuggingFaceTB/python-edu-scorer
From sourceHosted (signed)HuggingFaceTB/python-edu-scorerLast check: 2026-11-14 21:11 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Fine-tune of snowflake-arctic-embed-m.

Works with

Runs with

Ranked by fit to this model (safetensors), then by GitHub stars.

Overview

Size
878 MB
Weights
876 MB (safetensors)
Parameters
109M
Formats
safetensors
Task
text classification
License
Apache-2.0 (permissive)
Files
16, each with a sha256
Publisher
HuggingFaceTB
Added
2026-11-14
Section
alt.freeweights.smollm
Lineage

Original release from the publisher.

Base model: Snowflake/snowflake-arctic-embed-m

Where these bytes come from
Publisher at the pinned commit→You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-14 21:11 UTCpassed

Model card

From the publisher at commit 76b46de. Shown as plain text with links; images open at the publisher.

Python-Edu Scorer#

This model is a fine-tuned version of Snowflake/snowflake-arctic-embed-m on a dataset of Python files labeled by Llama3 for educational value. We used this classifier to build the Python-Edu dataset.

How to use in transformers#

To load the Python-Edu classifier, use the following code:

from transformers import AutoTokenizer, AutoModelForSequenceClassification

tokenizer = AutoTokenizer.from_pretrained("HuggingFaceTB/python-edu-scorer")
model = AutoModelForSequenceClassification.from_pretrained("HuggingFaceTB/python-edu-scorer")

text = "This is a test sentence."
inputs = tokenizer(text, return_tensors="pt", padding="longest", truncation=True)
outputs = model(**inputs)
logits = outputs.logits.squeeze(-1).float().detach().numpy()
score = logits.item()
result = {
    "text": text,
    "score": score,
    "int_score": int(round(max(0, min(score, 5)))),
}

print(result)
# {'text': 'This is a test sentence.', 'score': 0.07964489609003067, 'int_score': 0}

Intended uses & limitations#

While the Python-Edu classifier performs well in distinguishing high-quality python code, there are some limitations:

  • Scope: The model's performance might change for other datasets, in particular for out of distribution samples. It is also focused on educational content relevant to beginners and may not perform as well on content intended for higher education or specialized domains.
  • Bias: The model's performance is dependent on the quality and representativeness of the training data and the LLM used for the annotation. Biases in both can affect the classifier's judgments. It might overfit to thoroughly commented code.
  • Context: The classifier evaluates individual code files without considering broader context, which might impact its effectiveness in certain scenarios.

The training and inference code is available on GitHub https://github.com/huggingface/cosmopedia/tree/main/classification

Training procedure#

The classifier was trained on 450,000 pairs of python code files and their scores from 1 to 5, generated by Llama3. The samples were annotated based on their educational quality with 1 being not educational and 5 being highly educational.

We added a classification head with a single regression output to Snowflake-arctic-embed and trained the model for 20 epochs with a learning rate of 3e-4. During training, the embedding and encoder layers were frozen to focus on the classification head.

Training hyperparameters#

The following hyperparameters were used during training:

  • learning_rate: 0.0003
  • train_batch_size: 256
  • eval_batch_size: 128
  • seed: 0
  • optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
  • lr_scheduler_type: linear
  • num_epochs: 20
Training results#
              precision    recall  f1-score   support

           1       0.84      0.46      0.59      8364
           2       0.61      0.76      0.68     19605
           3       0.60      0.62      0.61     16187
           4       0.72      0.50      0.59      4872
           5       0.38      0.08      0.13       118

    accuracy                           0.64     49146
   macro avg       0.63      0.48      0.52     49146
weighted avg       0.66      0.64      0.63     49146
Framework versions#
  • Transformers 4.40.1
  • Pytorch 2.2.0+cu121
  • Datasets 2.17.1
  • Tokenizers 0.19.1

Files

16 files · 878 MBWeights 876 MB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 16 files with their sha256
FileSizesha256
.gitattributes1.52 KB11ad7efa24975ee4b0c3c3a38ed18737f0658a5f75a0a96787b576a78a023361
README.md3.75 KBe7872bb1d60a2384a33660ff035f115c0bb6670a9d256d6cc2f8941d524e41c9
config.json804 B5efd3893506c5696b90dec74133583568d558a10ed4ab30febccdd5be3ef25af
final/config.json804 B5efd3893506c5696b90dec74133583568d558a10ed4ab30febccdd5be3ef25af
final/model.safetensors438 MBb8fe896582277f741e6b0cc49f49febb06555ff62d9b22c060590dce312049eb
final/special_tokens_map.json695 B5d5b662e421ea9fac075174bb0688ee0d9431699900b90662acd44b2a350503a
final/tokenizer.json711 KB435667fab0c06c165b1283ecb422497c37124f2d6a35b2ac73dc876332fc9518
final/tokenizer_config.json1.38 KB0e83e9d7206b3ade43f8f2aeef523cf5d5b4a25b67af21b273de21972c0f58b7
final/training_args.bin5.05 KBb672b5ef7540dbeb34cfe2d7a27c10448c4f1aed185a491f340a3cf0f78b671b
final/vocab.txt232 KB07eced375cec144d27c900241f3e339478dec958f92fddbc551f295c992038a3
model.safetensors438 MBb8fe896582277f741e6b0cc49f49febb06555ff62d9b22c060590dce312049eb
special_tokens_map.json695 B5d5b662e421ea9fac075174bb0688ee0d9431699900b90662acd44b2a350503a
tokenizer.json711 KB435667fab0c06c165b1283ecb422497c37124f2d6a35b2ac73dc876332fc9518
tokenizer_config.json1.38 KB0e83e9d7206b3ade43f8f2aeef523cf5d5b4a25b67af21b273de21972c0f58b7
training_args.bin5.05 KBb672b5ef7540dbeb34cfe2d7a27c10448c4f1aed185a491f340a3cf0f78b671b
vocab.txt232 KB07eced375cec144d27c900241f3e339478dec958f92fddbc551f295c992038a3
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
76b46de78d pinned now manifest updated, same commit2026-11-14 21:11 UTC16 files · 878 MB
76b46de78d2026-11-14 21:11 UTC16 files · 878 MB

Use it

$ fw get HuggingFaceTB/python-edu-scorer
# manifest sha256 a6762475f991… · 878 MB · 16 files
$ fw verify ./python-edu-scorer HuggingFaceTB/python-edu-scorer
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/HuggingFaceTB/python-edu-scorer.json --dir ./python-edu-scorer $ python3 fw.py verify ./python-edu-scorer ./HuggingFaceTB__python-edu-scorer.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download HuggingFaceTB/python-edu-scorer --revision 76b46de78d141a37d85f8e6fb7eb5fe9201d4241 --local-dir ./python-edu-scorer

License

Name
Apache License 2.0
Id
Apache-2.0
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-14
Text in
README.md
Text sha256
e7872bb1d60a2384a33660ff035f115c0bb6670a9d256d6cc2f8941d524e41c9
Terms gate
No extra terms beyond the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: HuggingFaceTB <huggingface.co/HuggingFaceTB>Newsgroups: alt.freeweights.smollmSubject: python-edu-scorerDate: 2026-11-14Commit: 76b46deSigned: 2DC28CC7B26A283B ✓
Upstream
HuggingFaceTB/python-edu-scorer
Pinned commit
76b46de78d141a37d85f8e6fb7eb5fe9201d4241
Manifest
python-edu-scorer.json · .minisig
Manifest sha256
a6762475f99145aad242ea2cc18b2f0e7b03602ca3e65a9b37dd6d0051a8ad65
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-14 21:11 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/HuggingFaceTB/python-edu-scorer.json $ curl -O https://freeweights.allternit.com/manifests/HuggingFaceTB/python-edu-scorer.json.minisig $ minisign -Vm python-edu-scorer.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

Parent

Snowflake/snowflake-arctic-embed-m · this model is a finetune of it

No model in the catalog names this one as its parent.

Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download HuggingFaceTB/python-edu-scorer
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. python-edu-scorer.json. Provenance. Takedown history: none.
From: HuggingFaceTB <huggingface.co/HuggingFaceTB>Subject: 135M-lc-100k-rope-12B
From: nisten <huggingface.co/nisten>Subject: Biggie-SmoLlm-0.4B
From: onnx-community <huggingface.co/onnx-community>Subject: Biggie-SmoLlm-0.4B-ONNX
From: unsloth <huggingface.co/unsloth>Subject: SmolLM-1.7B-bnb-4bit
From: unsloth <huggingface.co/unsloth>Subject: SmolLM-1.7B-Instruct
From: unsloth <huggingface.co/unsloth>Subject: SmolLM-135M-bnb-4bit