CoolFace
Modelpublic

its-zion-18/music-text-distilbert-predictor

sourceHugging Faceapache-2.0updated 1y agoView on Hugging Face
0likes5downloads
Model Card

DistilBERT-based Music Era Classifier

This repository contains a fine-tuned text classification model based on distilbert-base-uncased. The model is designed to classify short text descriptions of eras in classical music into one of four historical musical eras: 0, 1, 2, and 3.

Model Architecture & Training

The model was trained using the Hugging Face Trainer API. It utilizes a distilbert-base-uncased pre-trained model with a classification head on top.

  • —Tokenizer: AutoTokenizer.from_pretrained("distilbert-base-uncased")
  • —Model: AutoModelForSequenceClassification.from_pretrained("distilbert-base-uncased")
  • —Training Arguments: Learning Rate: 2×10−5
  • —Epochs: 5
  • —Batch Size: 8
  • —Evaluation Strategy: Per epoch
  • —Metric: accuracy
  • —Optimizer: AdamW

music-text-distilbert-predictor

This model is a fine-tuned version of distilbert-base-uncased on the samder03/2025-24679-text-dataset. It achieves the following results on the evaluation set:

  • —Loss: 0.0495
  • —Accuracy: 1.0
  • —F1: 1.0
  • —Precision: 1.0
  • —Recall: 1.0

Limitations

This model's primary limitations are:

Numerical Labels: The model outputs a numerical label (0, 1, 2, or 3). An external lookup table is required to map these numbers to their corresponding musical era names.

Language & Casing: As the model is based on distilbert-base-uncased, it is designed for English-language text and does not differentiate between uppercase and lowercase letters. It will not work for other languages.

Training hyperparameters

The following hyperparameters were used during training:

  • —learning_rate: 2e-05
  • —trainbatchsize: 8
  • —evalbatchsize: 8
  • —seed: 42
  • —optimizer: Use OptimizerNames.ADAMWTORCHFUSED with betas=(0.9,0.999) and epsilon=1e-08 and optimizer_args=No additional optimizer arguments
  • —lrschedulertype: linear
  • —num_epochs: 5

Training results

Training LossEpochStepValidation LossAccuracyF1PrecisionRecall
0.63871.0800.51110.95630.95620.95740.9563
0.08332.01600.10520.98120.98120.98140.9812
0.02213.02400.05850.98120.98120.98140.9812
0.01224.03200.06290.98120.98120.98140.9812
0.0115.04000.06140.98120.98120.98140.9812

Framework versions

  • —Transformers 4.56.1
  • —Pytorch 2.8.0+cu126
  • —Datasets 4.0.0
  • —Tokenizers 0.22.0

Potential Errors

There could be a problem with dataleakage because the accuracy is at 100% Because the model has already been trained on the augmented data, which is just a derivative of the original data, the original dataset isn't a true holdout set. The model is essentially being tested on data that it has already seen and, in some cases, memorized.