← Back to all products

Fine-Tuning Pipeline

$59

LoRA/QLoRA fine-tuning scripts, dataset preparation tools, training monitoring, model merging, and deployment automation.

📁 40 files
MarkdownYAMLPythonLLMOpenAI

📄 Product Preview

Try the interactive reader and demo tools below, or get the full product with all content unlocked.

📖 Interactive Reader (Free Preview) ⚙ Try Demo Tools 📦 Download Free Sample

📁 File Structure 40 files

fine-tuning-pipeline/ ├── LICENSE ├── README.md ├── configs/ │ ├── lora_config.yaml │ ├── qlora_config.yaml │ └── training_profiles.yaml ├── data/ │ ├── sample_conversations.jsonl │ └── sample_instructions.jsonl ├── free-sample.zip ├── guide/ │ ├── 01-data-preparation.md │ ├── 02-hyperparameter-tuning.md │ └── 03-lora-explained.md ├── guides/ │ ├── data-preparation.md │ ├── hyperparameter-tuning.md │ └── lora-explained.md ├── index.html ├── requirements.txt ├── scripts/ │ ├── __pycache__/ │ │ ├── merge_and_export.cpython-312.pyc │ │ ├── prepare_dataset.cpython-312.pyc │ │ └── run_training.cpython-312.pyc │ ├── merge_and_export.py │ ├── prepare_dataset.py │ └── run_training.py └── src/ ├── __init__.py ├── __pycache__/ │ ├── __init__.cpython-312.pyc │ ├── dataset_preparation.cpython-312.pyc │ ├── evaluation_hooks.cpython-312.pyc │ ├── export_deploy.cpython-312.pyc │ ├── instruction_templates.cpython-312.pyc │ ├── lora_trainer.cpython-312.pyc │ ├── model_merger.cpython-312.pyc │ ├── training_config.cpython-312.pyc │ └── training_monitor.cpython-312.pyc ├── dataset_preparation.py ├── evaluation_hooks.py ├── export_deploy.py ├── instruction_templates.py ├── lora_trainer.py ├── model_merger.py ├── training_config.py └── training_monitor.py

📖 Documentation Preview README excerpt

Fine-Tuning Pipeline

End-to-end LoRA/QLoRA fine-tuning toolkit for large language models.

From raw data to deployment-ready model in a single pipeline: dataset preparation, instruction templating, training orchestration, monitoring, adapter merging, and export to GGUF/SafeTensors.

What You Get

  • Dataset preparation engine with auto-format detection (Alpaca, OpenAI, ShareGPT, Q&A), deduplication, quality scoring, and train/val splitting
  • 8 instruction templates (Alpaca, ChatML, Llama2, Llama3, Mistral, Phi3, Zephyr, Raw) with correct loss masking so the model learns to generate responses, not parrot instructions
  • YAML-driven training config with pre-built profiles (quick test, small dataset, large dataset, code generation) and CLI override support
  • LoRA/QLoRA trainer that wraps HuggingFace Transformers + PEFT with one-command training, automatic tokenizer setup, and gradient checkpointing
  • Training monitor with anomaly detection: NaN loss, loss spikes, plateau detection, overfitting alerts, and crash-safe JSONL logging
  • Model merger supporting single-adapter merge plus multi-adapter strategies (Linear, TIES, DARE) for combining task-specific adapters
  • Adapter registry for tracking trained adapters with metadata, metrics, and base model compatibility
  • Export automation for GGUF (llama.cpp/Ollama), SafeTensors (vLLM/TGI), with auto-generated Modelfiles, model cards, and inference configs
  • Evaluation hooks for exact match, instruction following, safety regression, and text quality during training
  • Three deep-dive guides covering data preparation, LoRA mechanics, and hyperparameter tuning

File Tree


fine-tuning-pipeline/
├── README.md
├── LICENSE
├── requirements.txt
├── src/
│   ├── __init__.py
│   ├── dataset_preparation.py      # Load, dedup, filter, split, export
│   ├── instruction_templates.py    # 8 prompt format templates with loss masking
│   ├── training_config.py          # YAML config management with validation
│   ├── lora_trainer.py             # LoRA/QLoRA training orchestration
│   ├── training_monitor.py         # Loss tracking, anomaly detection, reporting
│   ├── model_merger.py             # Adapter merging (Linear/TIES/DARE) + registry
│   ├── evaluation_hooks.py         # In-training eval: exact match, safety, quality
│   └── export_deploy.py            # GGUF/SafeTensors export + model cards
├── configs/
│   ├── lora_config.yaml            # Standard LoRA training config
│   ├── qlora_config.yaml           # QLoRA 4-bit optimized config
│   └── training_profiles.yaml      # Quick-start presets by task type
├── scripts/
│   ├── prepare_dataset.py          # CLI: dataset preparation
│   ├── run_training.py             # CLI: launch training with config + overrides
│   └── merge_and_export.py         # CLI: merge adapters and export models
├── data/
│   ├── sample_instructions.jsonl   # 8 sample instruction-tuning examples
│   └── sample_conversations.jsonl  # 4 sample multi-turn conversations
└── guides/
    ├── data-preparation.md         # Dataset quality, formats, sizing
    ├── lora-explained.md           # LoRA/QLoRA mechanics deep dive
    └── hyperparameter-tuning.md    # Tuning guide with decision trees

Quick Start

1. Install Dependencies



*... continues with setup instructions, usage examples, and more.*

📄 Code Sample .py preview

scripts/merge_and_export.py#!/usr/bin/env python3 """ merge_and_export.py — Post-training merge & export CLI ======================================================= Merges trained LoRA adapters into base models and exports to deployment-ready formats (GGUF, SafeTensors). Usage: # Merge a single adapter: python scripts/merge_and_export.py merge \ --base-model mistralai/Mistral-7B-v0.1 \ --adapter output/final_adapter \ --output output/merged # Export merged model to GGUF: python scripts/merge_and_export.py export-gguf \ --model output/merged \ --output output/gguf \ --quant Q4_K_M Q5_K_M # Generate model card: python scripts/merge_and_export.py model-card \ --model-name "my-assistant-7b" \ --base-model mistralai/Mistral-7B-v0.1 \ --output output/MODEL_CARD.md """ from __future__ import annotations import argparse import logging import sys from pathlib import Path sys.path.insert(0, str(Path(__file__).resolve().parent.parent)) from src.model_merger import ModelMerger, AdapterRegistry from src.export_deploy import ModelExporter, GGUF_QUANT_TYPES logger = logging.getLogger(__name__)
Buy Now — $59 Back to Products