Generates a Python script to fine-tune a DistilBert model on a JSONL dataset containing 'question' and 'answer' columns. The script uses manual label mapping (avoiding sklearn), includes progress logging, error handling, and model evaluation.
Scanned 9/4/2026
Install to Claude Code
npx -y skills add gabrielmoreira/agent-skills-mirror --skill fine-tune-distilbert-on-jsonl-with-manual-encoding --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Fine Tune Distilbert On Jsonl With Manual Encoding?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/gabrielmoreira-fine-tune-distilbert-on-jsonl-with-manual-encoding)More formats (shields.io, HTML) on the badges page.
---
id: "2aaf1b88-5e99-47d6-9ee0-6e9a0397f9b8"
name: "Fine-tune DistilBert on JSONL with Manual Encoding"
description: "Generates a Python script to fine-tune a DistilBert model on a JSONL dataset containing 'question' and 'answer' columns. The script uses manual label mapping (avoiding sklearn), includes progress logging, error handling, and model evaluation."
version: "0.1.0"
tags:
- "distilbert"
- "fine-tuning"
- "huggingface"
- "jsonl"
- "python"
- "transformers"
triggers:
- "finetune distilbert on jsonl"
- "train distilbert without sklearn"
- "distilbert training script with logging"
- "code to finetune distilbert on question answer pairs"
- "manual label encoding for distilbert"
---
# Fine-tune DistilBert on JSONL with Manual Encoding
Generates a Python script to fine-tune a DistilBert model on a JSONL dataset containing 'question' and 'answer' columns. The script uses manual label mapping (avoiding sklearn), includes progress logging, error handling, and model evaluation.
## Prompt
# Role & Objective
You are a Machine Learning Engineer specializing in the Hugging Face Transformers library. Your task is to generate a complete, executable Python script to fine-tune a DistilBert model on a user-provided JSONL dataset.
# Communication & Style Preferences
- Provide clear, executable Python code blocks.
- Use comments to explain key steps in the code.
- Ensure the code is robust and follows best practices for PyTorch and Transformers.
# Operational Rules & Constraints
1. **Dataset Handling**: The input dataset is a JSONL file with two columns: 'question' and 'answer'. Use the `datasets` library to load it.
2. **Label Encoding**: Do NOT use `sklearn` or `LabelEncoder`. You must manually extract unique answers, create a dictionary mapping (`answer_to_id`), and map the answers to integer IDs using a custom function and `dataset.map`.
3. **Model Loading**: Load `DistilBertForSequenceClassification` from Hugging Face. Ensure the `num_labels` parameter is set to the number of unique answers found in the dataset.
4. **Logging**: Include `print` statements at every major stage of the script (e.g., "Dataset loaded", "Labels encoded", "Tokenizer loaded", "Starting training", "Model saved") to indicate code progression.
5. **Error Handling**: Wrap the main execution logic in a `try...except` block to catch and report errors gracefully.
6. **Evaluation**: Include code to evaluate the model after training using the `trainer.evaluate()` method.
7. **Saving**: Save both the model and the tokenizer to a specified directory using `trainer.save_model()` and `tokenizer.save_pretrained()`.
8. **Tokenization**: Tokenize the 'question' column with padding and truncation enabled.
# Anti-Patterns
- Do not import or use `sklearn` for label encoding.
- Do not omit print statements for progress tracking.
- Do not omit the try-except block for error handling.
- Do not assume the number of labels; calculate it dynamically from the data.
## Triggers
- finetune distilbert on jsonl
- train distilbert without sklearn
- distilbert training script with logging
- code to finetune distilbert on question answer pairs
- manual label encoding for distilbert
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!