mirror of
https://github.com/storytold/FineTrainers-Conditioning.git
synced 2026-10-15 00:04:26 +00:00
Full Finetuning for LTX possibily extended to other models. (#192)
* Full Finetuning for LTX possibily extended to other models. * Change name of the flag * Used disable grad for component on lora fine tuning enabled * Suggestions Addressed Renamed to SFT Added 2 other models. Testing required. * Switching to Full FineTuning * Run linter. * parse subfolder when needed. * tackle saving and loading hooks. * tackle validation. * fix subfolder bug. * remove __class__. * refactor * remove unnecessary changes * handle saving of final model weights correctly * remove unnecessary changes * LTX uses a default frame rate of 24 FPS We need to modify the output validation framerate to match that value. Add Framerate args. Add Update video output and inference frame rate * There was a results_args mapping that needed to be modified. * update * update README * Update README.md * update docs * add training configuration in cogvideox --------- Co-authored-by: Sayak Paul <spsayakpaul@gmail.com> Co-authored-by: Aryan <aryan@huggingface.co> Co-authored-by: Aryan <contact.aryanvs@gmail.com>
This commit is contained in:
+14
-8
@@ -1,8 +1,9 @@
|
||||
This directory contains the training-related specifications for all the models we support in `finetrainers`. Each model page has:
|
||||
# FineTrainers training documentation
|
||||
|
||||
* an example training command
|
||||
* inference example
|
||||
* numbers on memory consumption
|
||||
This directory contains the training-related specifications for all the models we support in `finetrainers`. Each model page has:
|
||||
- an example training command
|
||||
- inference example
|
||||
- numbers on memory consumption
|
||||
|
||||
By default, we don't include any validation-related arguments in the example training commands. To enable validation inference, one can pass:
|
||||
|
||||
@@ -12,8 +13,13 @@ By default, we don't include any validation-related arguments in the example tra
|
||||
+ --validation_steps 100
|
||||
```
|
||||
|
||||
## Model-specific docs
|
||||
Supported models:
|
||||
- [CogVideoX](./cogvideox.md)
|
||||
- [LTX-Video](./ltx_video.md)
|
||||
- [HunyuanVideo](./hunyuan_video.md)
|
||||
|
||||
* [CogVideoX](./cogvideox.md)
|
||||
* [LTX-Video](./ltx_video.md)
|
||||
* [HunyuanVideo](./hunyuan_video.md)
|
||||
Supported training types:
|
||||
- LoRA (`--training_type lora`)
|
||||
- Full finetuning (`--training_type full-finetune`)
|
||||
|
||||
Arguments for training are well-documented in the code. For more information, please run `python train.py --help`.
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
## Training
|
||||
|
||||
For LoRA training, specify `--training_type lora`. For full finetuning, specify `--training_type full-finetune`.
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
export WANDB_MODE="offline"
|
||||
@@ -84,6 +86,8 @@ echo -ne "-------------------- Finished executing script --------------------\n\
|
||||
|
||||
## Memory Usage
|
||||
|
||||
### LoRA
|
||||
|
||||
LoRA with rank 128, batch size 1, gradient checkpointing, optimizer adamw, `49x480x720` resolutions, **with precomputation**:
|
||||
|
||||
```
|
||||
@@ -109,6 +113,31 @@ Training configuration: {
|
||||
| after validation end | 11.145 | 28.324 |
|
||||
| after training end | 11.144 | 11.592 |
|
||||
|
||||
### Full finetuning
|
||||
|
||||
```
|
||||
Training configuration: {
|
||||
"trainable parameters": 5570283072,
|
||||
"total samples": 1,
|
||||
"train epochs": 2,
|
||||
"train steps": 2,
|
||||
"batches per device": 1,
|
||||
"total batches observed per epoch": 1,
|
||||
"train batch size": 1,
|
||||
"gradient accumulation steps": 1
|
||||
}
|
||||
```
|
||||
|
||||
| stage | memory_allocated | max_memory_reserved |
|
||||
|:-----------------------------:|:-----------------:|:-------------------:|
|
||||
| after precomputing conditions | 8.880 | 8.941 |
|
||||
| after precomputing latents | 9.300 | 12.441 |
|
||||
| before training start | 10.376 | 10.387 |
|
||||
| after epoch 1 | 31.160 | 52.939 |
|
||||
| before validation start | 31.161 | 52.939 |
|
||||
| after validation end | 31.161 | 52.939 |
|
||||
| after training end | 31.160 | 34.295 |
|
||||
|
||||
## Supported checkpoints
|
||||
|
||||
CogVideoX has multiple checkpoints as one can note [here](https://huggingface.co/collections/THUDM/cogvideo-66c08e62f1685a3ade464cce). The following checkpoints were tested with `finetrainers` and are known to be working:
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
## Training
|
||||
|
||||
For LoRA training, specify `--training_type lora`. For full finetuning, specify `--training_type full-finetune`.
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
|
||||
@@ -87,6 +89,8 @@ echo -ne "-------------------- Finished executing script --------------------\n\
|
||||
|
||||
## Memory Usage
|
||||
|
||||
### LoRA
|
||||
|
||||
LoRA with rank 128, batch size 1, gradient checkpointing, optimizer adamw, `49x512x768` resolutions, **without precomputation**:
|
||||
|
||||
```
|
||||
@@ -139,6 +143,10 @@ Training configuration: {
|
||||
|
||||
Note: requires about `47` GB of VRAM with validation. If validation is not performed, the memory usage is reduced to about `42` GB.
|
||||
|
||||
### Full finetuning
|
||||
|
||||
Current, full finetuning is not supported for HunyuanVideo. It goes out of memory (OOM) for `49x512x768` resolutions.
|
||||
|
||||
## Inference
|
||||
|
||||
Assuming your LoRA is saved and pushed to the HF Hub, and named `my-awesome-name/my-awesome-lora`, we can now use the finetuned model for inference:
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
## Training
|
||||
|
||||
Provided you have a dataset:
|
||||
For LoRA training, specify `--training_type lora`. For full finetuning, specify `--training_type full-finetune`.
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
@@ -88,6 +88,8 @@ echo -ne "-------------------- Finished executing script --------------------\n\
|
||||
|
||||
## Memory Usage
|
||||
|
||||
### LoRA
|
||||
|
||||
LoRA with rank 128, batch size 1, gradient checkpointing, optimizer adamw, `49x512x768` resolution, **without precomputation**:
|
||||
|
||||
```
|
||||
@@ -140,6 +142,31 @@ Training configuration: {
|
||||
|
||||
Note: requires about `17.5` GB of VRAM with precomputation. If validation is not performed, the memory usage is reduced to `11` GB.
|
||||
|
||||
### Full Finetuning
|
||||
|
||||
```
|
||||
Training configuration: {
|
||||
"trainable parameters": 1923385472,
|
||||
"total samples": 1,
|
||||
"train epochs": 10,
|
||||
"train steps": 10,
|
||||
"batches per device": 1,
|
||||
"total batches observed per epoch": 1,
|
||||
"train batch size": 1,
|
||||
"gradient accumulation steps": 1
|
||||
}
|
||||
```
|
||||
|
||||
| stage | memory_allocated | max_memory_reserved |
|
||||
|:-----------------------------:|:----------------:|:-------------------:|
|
||||
| after precomputing conditions | 8.89 | 8.937 |
|
||||
| after precomputing latents | 9.701 | 11.615 |
|
||||
| before training start | 3.583 | 4.025 |
|
||||
| after epoch 1 | 10.769 | 20.357 |
|
||||
| before validation start | 10.769 | 20.357 |
|
||||
| after validation end | 10.769 | 28.332 |
|
||||
| after training end | 10.769 | 12.904 |
|
||||
|
||||
## Inference
|
||||
|
||||
Assuming your LoRA is saved and pushed to the HF Hub, and named `my-awesome-name/my-awesome-lora`, we can now use the finetuned model for inference:
|
||||
|
||||
Reference in New Issue
Block a user