Back to projects

SelfChatBot

Jan 2025

Python, PyTorch, HuggingFace Transformers, LoRA/QLoRA, Quantization

Overview

SelfChatBot is a personal fine-tuning pipeline for large language models, designed to make HuggingFace base models mimic your own conversational style. It preprocesses chat exports (initially Discord via DiscordChatExporter) into structured datasets, supports multiple fine-tuning strategies (LoRA, QLoRA, full finetune), and allows interactive play with trained models. By incorporating quantization techniques, the project enabled efficient fine-tuning on limited VRAM hardware while maintaining conversational quality. Built primarily as a learning project, it emphasizes dataset structuring, preprocessing flexibility, quantization-aware training, and experimentation with HuggingFace models.

Key Features

  • Preprocessing pipeline for DiscordChatExporter (extensible to other formats)
  • Structured dataset management with configurable parameters
  • Support for LoRA, QLoRA, and full fine-tuning
  • Quantization for efficient GPU memory usage (4-bit training, QLoRA)
  • Command-line tools for preprocessing, training, and interaction
  • Session-based or prompt-based model interaction modes
  • Environment variable support for dataset and results directories