This repository is a collection of everything I’ve learned while exploring LLMs. I’ve tried to document my journey as thoroughly as possible, covering key concepts, experiments, challenges, and insights along the way.
-
platform-Specific Notes: The techniques, code, and setups in this repo are based on my personal machine — a MacBook Air M1 (2020, 8GB RAM, no dedicated GPU).
-
General Compatibility: Most methods should work across different platforms (Windows, Linux, macOS), but certain dependencies or performance factors may vary, configurations might be Mac specific.
-
What’s Covered:
- Step-by-step fine-tuning of LLaMA 3.2 1B for domain-specific applications
- Challenges faced while running LLMs on low-end hardware
- Performance tweaks and optimizations for limited RAM setups
-
This repository is a work in progress, documenting my personal experiences and experiments with LLM fine-tuning. Everything here is anecdotal, based on what I’ve tried and learned firsthand.
-
Each folder contains a README.md with a general introduction to the topic and an _Explained.md with detailed explanations. Some files may be nested within subfolders for better organization, and everything is named and structured logically.
00_WhatIsLLM - General Introduction To LLM's
01_BaseModel - How to load and inference a base model
02_Optimizations - Parameter Efficient Fine-Tuning (LoRA, QLoRA) and Quantization Techniques
03_DatasetPreparation - How to prepare and tokenize a dataset for fine-tuning.
04_Training - How to efficient train on limited compute systems.
05_Testing - Testing the base model and fine-tuned model on various tasks and parameters.
06_Deploy - How to deploy a model using Streamlit and FastAPI.