Skip to content

Commit

Permalink
reorganization to make general use
Browse files Browse the repository at this point in the history
  • Loading branch information
djliden committed Sep 12, 2024
1 parent a570178 commit c2dba16
Show file tree
Hide file tree
Showing 15 changed files with 30 additions and 22 deletions.
18 changes: 11 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,24 @@
# Fine-Tuning LLMs
# Jupyter Notebook Examples

*View these notebooks in a more readable format at [danliden.com/fine-tuning](https://danliden.com/fine-tuning).*
*View these notebooks in a more readable format at [danliden.com/notebooks](https://danliden.com/notebooks).*

This series of notebooks is intended to show how to fine-tune language models, starting from smaller models on single-node single-GPU setups and gradually scaling up to multi-GPU and multi-node configurations.
This repository contains a collection of Jupyter notebooks demonstrating various concepts and techniques across different fields. Currently, it includes a series on fine-tuning language models, but it will expand to cover other topics in the future.

## Fine-Tuning LLMs

The fine-tuning section shows how to fine-tune language models, starting from smaller models on single-node single-GPU setups and gradually scaling up to multi-GPU and multi-node configurations.

Existing examples and learning resources generally do not bridge the practical gap between single-node single-GPU training when all parameters fit in VRAM, and the various forms of distributed training. These examples, when complete, are intended to show how to train smaller models given sufficient compute resources and then scale the models up until we encounter compute and/or memory constraints. We will then introduce various distributed training approaches aimed at overcoming these issues.

This will, hopefully, serve as a practical and conceptual bridge from single-node single-GPU training to distributed training with tools such as deepspeed and FSDP.

## How to use this repository

The examples in this repository are intended to be read sequentially. Later examples build on earlier examples and gradually add scale and complexity.
The examples in this repository are organized by topic. Within each topic, the notebooks are intended to be read sequentially. Later examples often build on earlier examples and gradually add complexity.

## Contributing

Contributions are welcome, and there are a few different ways to get involved.
- If you see an error or bug, please [open an issue](https://github.com/djliden/fine-tuning/issues/new) or open a PR.
- If you have a question about this repository, or you want to request a specific example, please [open an issue](https://github.com/djliden/fine-tuning/issues/new).
- If you're interested in contributing an example, I encourage you to get in touch. You can [open an issue](https://github.com/djliden/fine-tuning/issues/new) or reach out by email or social media.
- If you see an error or bug, please [open an issue](https://github.com/djliden/notebooks/issues/new) or open a PR.
- If you have a question about this repository, or you want to request a specific example, please [open an issue](https://github.com/djliden/notebooks/issues/new).
- If you're interested in contributing an example, I encourage you to get in touch. You can [open an issue](https://github.com/djliden/notebooks/issues/new) or reach out by email or social media.
2 changes: 1 addition & 1 deletion notebooks/_config.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
title: LLM Fine-Tuning
author: Dan Liden
logo: logo_draft.png
#logo: logo.png
execute:
execute_notebooks: 'off'

Expand Down
20 changes: 11 additions & 9 deletions notebooks/_toc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,15 @@
format: jb-book
root: index
parts:
- caption: Smaller Models (Single GPU)
- caption: AI Training
chapters:
- file: 1_t5_small_single_gpu/1_T5-Small_on_Single_GPU.ipynb
- file: 2_gpt2_single_gpu/2_GPT2_on_a_single_GPU.ipynb
- file: 3_tinyllama_instruction_tune/3_instruction_tuning_tinyllama_on_a_single_GPU.ipynb
- file: 4_olmo_1b_instruction_tune/4_olmo_instruction_tune.ipynb
- caption: Other topics of interest
chapters:
- file: 3_tinyllama_instruction_tune/data_preprocessing.ipynb
- file: 5_gemma_2b_axolotl/gemma_2b_axolotl.ipynb
- file: fine-tuning/intro
sections:
- file: ai_training/fine_tuning/1_t5_small_single_gpu/1_t5_small_single_gpu
- file: ai_training/fine_tuning/2_gpt2_single_gpu/2_gpt2_single_gpu
- file: ai_training/fine_tuning/3_tinyllama_instruction_tune/3_tinyllama_instruction_tune
- file: ai_training/fine_tuning/4_olmo_1b_instruction_tune/4_olmo_instruction_tune
- file: ai_training/fine_tuning/5_gemma_2b_axolotl/gemma_2b_axolotl
- file: fine_tuning/appendix
sections:
- file: ai_training/fine_tuning/3_tinyllama_instruction_tune/data_preprocessing
12 changes: 7 additions & 5 deletions notebooks/index.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
# Fine-Tuning LLMs
# Jupyter Notebook Examples

This series of notebooks is intended to show how to fine-tune language models, starting from smaller models on single-node single-GPU setups and gradually scaling up to multi-GPU and multi-node configurations.
This repository contains a collection of Jupyter notebooks demonstrating various concepts and techniques across different fields. Currently, it includes a series on fine-tuning language models, but it will expand to cover other topics in the future.

Existing examples and learning resources generally do not bridge the practical gap between single-node single-GPU training when all parameters fit in VRAM, and the various forms of distributed training. These examples, when complete, are intended to show how to train smaller models given sufficient compute resources and then scale the models up until we encounter compute and/or memory constraints. We will then introduce various distributed training approaches aimed at overcoming these issues.
## AI Training: Fine-Tuning LLMs

This will, hopefully, serve as a practical and conceptual bridge from single-node single-GPU training to distributed training with tools such as deepspeed and FSDP.
The AI Training section currently focuses on fine-tuning language models. It shows how to fine-tune models starting from smaller, single-GPU setups and gradually scaling up to multi-GPU and multi-node configurations.

These examples aim to bridge the gap between single-node single-GPU training and various forms of distributed training, serving as a practical and conceptual guide for scaling up model training.

## How to use this repository

The examples in this repository are intended to be read sequentially. Later examples build on earlier examples and gradually add scale and complexity.
The examples in this repository are organized by topic. Within each topic, the notebooks are intended to be read sequentially. Later examples often build on earlier examples and gradually add complexity.

```{tableofcontents}
```
Binary file removed notebooks/logo_draft.png
Binary file not shown.

0 comments on commit c2dba16

Please sign in to comment.