You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: getting-started/README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,4 +6,4 @@ If you are new to developing with Meta Llama models, this is where you should st
6
6
* The [Prompt_Engineering_with_Llama](./Prompt_Engineering_with_Llama.ipynb) notebook showcases the various ways to elicit appropriate outputs from Llama. Take this notebook for a spin to get a feel for how Llama responds to different inputs and generation parameters.
7
7
* The [inference](./inference/) folder contains scripts to deploy Llama for inference on server and mobile. See also [3p_integrations/vllm](../3p-integrations/vllm/) and [3p_integrations/tgi](../3p-integrations/tgi/) for hosting Llama on open-source model servers.
8
8
* The [RAG](./RAG/) folder contains a simple Retrieval-Augmented Generation application using Llama.
9
-
* The [finetuning](./finetuning/) folder contains resources to help you finetune Llama on your custom datasets, for both single- and multi-GPU setups. The scripts use the native llama-recipes finetuning code found in [finetuning.py](../src/llama_recipes/finetuning.py) which supports these features:
9
+
* The [finetuning](./finetuning/) folder contains resources to help you finetune Llama on your custom datasets, for both single- and multi-GPU setups. The scripts use the native llama-cookbook finetuning code found in [finetuning.py](../src/llama_cookbook/finetuning.py) which supports these features:
Copy file name to clipboardExpand all lines: getting-started/finetuning/README.md
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ This folder contains instructions to fine-tune Meta Llama 3 on a
6
6
*[single-GPU setup](./singlegpu_finetuning.md)
7
7
*[multi-GPU setup](./multigpu_finetuning.md)
8
8
9
-
using the canonical [finetuning script](../../src/llama_recipes/finetuning.py) in the llama-recipes package.
9
+
using the canonical [finetuning script](../../src/llama_cookbook/finetuning.py) in the llama-cookbook package.
10
10
11
11
If you are new to fine-tuning techniques, check out [an overview](./LLM_finetuning_overview.md).
12
12
@@ -17,10 +17,10 @@ If you are new to fine-tuning techniques, check out [an overview](./LLM_finetuni
17
17
## How to configure finetuning settings?
18
18
19
19
> [!TIP]
20
-
> All the setting defined in [config files](../../src/llama_recipes/configs/) can be passed as args through CLI when running the script, there is no need to change from config files directly.
20
+
> All the setting defined in [config files](../../src/llama_cookbook/configs/) can be passed as args through CLI when running the script, there is no need to change from config files directly.
21
21
22
22
23
-
*[Training config file](../../src/llama_recipes/configs/training.py) is the main config file that helps to specify the settings for our run and can be found in [configs folder](../../src/llama_recipes/configs/)
23
+
*[Training config file](../../src/llama_cookbook/configs/training.py) is the main config file that helps to specify the settings for our run and can be found in [configs folder](../../src/llama_cookbook/configs/)
24
24
25
25
It lets us specify the training settings for everything from `model_name` to `dataset_name`, `batch_size` and so on. Below is the list of supported settings:
26
26
@@ -71,11 +71,11 @@ It lets us specify the training settings for everything from `model_name` to `da
71
71
72
72
```
73
73
74
-
*[Datasets config file](../../src/llama_recipes/configs/datasets.py) provides the available options for datasets.
74
+
*[Datasets config file](../../src/llama_cookbook/configs/datasets.py) provides the available options for datasets.
75
75
76
-
*[peft config file](../../src/llama_recipes/configs/peft.py) provides the supported PEFT methods and respective settings that can be modified. We currently support LoRA and Llama-Adapter. Please note that LoRA is the only technique which is supported in combination with FSDP.
76
+
*[peft config file](../../src/llama_cookbook/configs/peft.py) provides the supported PEFT methods and respective settings that can be modified. We currently support LoRA and Llama-Adapter. Please note that LoRA is the only technique which is supported in combination with FSDP.
77
77
78
-
*[FSDP config file](../../src/llama_recipes/configs/fsdp.py) provides FSDP settings such as:
78
+
*[FSDP config file](../../src/llama_cookbook/configs/fsdp.py) provides FSDP settings such as:
79
79
80
80
*`mixed_precision` boolean flag to specify using mixed precision, defatults to true.
81
81
@@ -102,7 +102,7 @@ It lets us specify the training settings for everything from `model_name` to `da
102
102
You can enable [W&B](https://wandb.ai/) experiment tracking by using `use_wandb` flag as below. You can change the project name, entity and other `wandb.init` arguments in `wandb_config`.
Copy file name to clipboardExpand all lines: getting-started/finetuning/datasets/README.md
+14-14Lines changed: 14 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,14 +1,14 @@
1
1
# Datasets and Evaluation Metrics
2
2
3
-
The provided fine tuning scripts allows you to select between three datasets by passing the `dataset` arg to the `llama_recipes.finetuning` module or [`recipes/quickstart/finetuning/finetuning.py`](../finetuning.py) script. The current options are `grammar_dataset`, `alpaca_dataset`and `samsum_dataset`. Additionally, we integrate the OpenAssistant/oasst1 dataset as an [example for a custom dataset](custom_dataset.py) Note: Use of any of the datasets should be in compliance with the dataset's underlying licenses (including but not limited to non-commercial uses)
3
+
The provided fine tuning scripts allows you to select between three datasets by passing the `dataset` arg to the `llama_cookbook.finetuning` module or [`recipes/quickstart/finetuning/finetuning.py`](../finetuning.py) script. The current options are `grammar_dataset`, `alpaca_dataset`and `samsum_dataset`. Additionally, we integrate the OpenAssistant/oasst1 dataset as an [example for a custom dataset](custom_dataset.py) Note: Use of any of the datasets should be in compliance with the dataset's underlying licenses (including but not limited to non-commercial uses)
4
4
5
5
*[grammar_dataset](https://huggingface.co/datasets/jfleg) contains 150K pairs of english sentences and possible corrections.
6
6
*[alpaca_dataset](https://github.com/tatsu-lab/stanford_alpaca) provides 52K instruction-response pairs as generated by `text-davinci-003`.
7
7
*[samsum_dataset](https://huggingface.co/datasets/samsum) contains about 16k messenger-like conversations with summaries.
8
8
*[OpenAssistant/oasst1](https://huggingface.co/datasets/OpenAssistant/oasst1/) contains about 88k messages from assistant-style conversations.
9
9
10
10
## Batching Strategies
11
-
Llama-recipes support two strategies to batch requests together.
11
+
Llama-cookbook support two strategies to batch requests together.
12
12
The default setting is `packing` which concatenates the tokenized samples into long sequences filling up the context length of the model.
13
13
This is the most compute efficient variant as it avoids any padding and all sequences have the same length.
14
14
Samples at the boundary of the context length are truncated and the remainder of the cut sequence it used as the start of the next long sequence.
@@ -21,45 +21,45 @@ The batching strategy can be selected though the command line parameter `--batch
21
21
22
22
## Using custom datasets
23
23
24
-
The list of available datasets in llama-recipes is supposed to give users a quick start on training their Llama model.
24
+
The list of available datasets in llama-cookbook is supposed to give users a quick start on training their Llama model.
25
25
To use a custom dataset there are two possible ways.
26
26
The first provides a function returning the dataset in a .py file which can be given to the command line tool.
27
-
This does not involve changing the source code of llama-recipes.
28
-
The second way is targeting contributions which extend llama-recipes as it involves changing the source code.
27
+
This does not involve changing the source code of llama-cookbook.
28
+
The second way is targeting contributions which extend llama-cookbook as it involves changing the source code.
29
29
30
30
### Training on custom data
31
31
To supply a custom dataset you need to provide a single .py file which contains a function with the following signature:
For an example `get_custom_dataset` you can look at the provided datasets in llama_recipes.datasets or [custom_dataset.py](./custom_dataset.py).
36
-
The `dataset_config` in the above signature will be an instance of llama_recipes.configs.dataset.custom_dataset with the modifications made through the command line.
35
+
For an example `get_custom_dataset` you can look at the provided datasets in llama_cookbook.datasets or [custom_dataset.py](./custom_dataset.py).
36
+
The `dataset_config` in the above signature will be an instance of llama_cookbook.configs.dataset.custom_dataset with the modifications made through the command line.
37
37
The split signals wether to return the training or validation dataset.
38
38
The default function name is `get_custom_dataset` but this can be changed as described below.
39
39
40
40
In order to start a training with the custom dataset we need to set the `--dataset` as well as the `--custom_dataset.file` parameter.
This will call the function `get_foo` instead of `get_custom_dataset` when retrieving the dataset.
49
49
50
50
### Adding new dataset
51
-
Each dataset has a corresponding configuration (dataclass) in [configs/datasets.py](../../../src/llama_recipes/configs/datasets.py) which contains the dataset name, training/validation split names, as well as optional parameters like datafiles etc.
51
+
Each dataset has a corresponding configuration (dataclass) in [configs/datasets.py](../../../src/llama_cookbook/configs/datasets.py) which contains the dataset name, training/validation split names, as well as optional parameters like datafiles etc.
52
52
53
-
Additionally, there is a preprocessing function for each dataset in the [datasets](../../../src/llama_recipes/datasets) folder.
53
+
Additionally, there is a preprocessing function for each dataset in the [datasets](../../../src/llama_cookbook/datasets) folder.
54
54
The returned data of the dataset needs to be consumable by the forward method of the fine-tuned model by calling ```model(**data)```.
55
55
For CausalLM models this usually means that the data needs to be in the form of a dictionary with "input_ids", "attention_mask" and "labels" fields.
56
56
57
57
To add a custom dataset the following steps need to be performed.
58
58
59
-
1. Create a dataset configuration after the schema described above. Examples can be found in [configs/datasets.py](../../../src/llama_recipes/configs/datasets.py).
59
+
1. Create a dataset configuration after the schema described above. Examples can be found in [configs/datasets.py](../../../src/llama_cookbook/configs/datasets.py).
60
60
2. Create a preprocessing routine which loads the data and returns a PyTorch style dataset. The signature for the preprocessing function needs to be (dataset_config, tokenizer, split_name) where split_name will be the string for train/validation split as defined in the dataclass.
61
-
3. Register the dataset name and preprocessing function by inserting it as key and value into the DATASET_PREPROC dictionary in [datasets/__init__.py](../../../src/llama_recipes/datasets/__init__.py)
62
-
4. Set dataset field in training config to dataset name or use --dataset option of the `llama_recipes.finetuning` module or examples/finetuning.py training script.
61
+
3. Register the dataset name and preprocessing function by inserting it as key and value into the DATASET_PREPROC dictionary in [datasets/__init__.py](../../../src/llama_cookbook/datasets/__init__.py)
62
+
4. Set dataset field in training config to dataset name or use --dataset option of the `llama_cookbook.finetuning` module or examples/finetuning.py training script.
63
63
64
64
## Application
65
65
Below we list other datasets and their main use cases that can be used for fine tuning.
Copy file name to clipboardExpand all lines: getting-started/finetuning/multigpu_finetuning.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,14 +3,14 @@ This recipe steps you through how to finetune a Meta Llama 3 model on the text s
3
3
4
4
5
5
## Requirements
6
-
Ensure that you have installed the llama-recipes package ([details](../../README.md#installing)).
6
+
Ensure that you have installed the llama-cookbook package ([details](../../README.md#installing)).
7
7
8
8
We will also need 2 packages:
9
9
1.[PEFT](https://github.com/huggingface/peft) to use parameter-efficient finetuning.
10
10
2.[FSDP](https://pytorch.org/tutorials/intermediate/FSDP_adavnced_tutorial.html) which helps us parallelize the training over multiple GPUs. [More details](./LLM_finetuning_overview.md#2-full-partial-parameter-finetuning).
11
11
12
12
> [!NOTE]
13
-
> The llama-recipes package will install PyTorch 2.0.1 version. In case you want to use FSDP with PEFT for multi GPU finetuning, please install the PyTorch nightlies ([details](../../README.md#pytorch-nightlies))
13
+
> The llama-cookbook package will install PyTorch 2.0.1 version. In case you want to use FSDP with PEFT for multi GPU finetuning, please install the PyTorch nightlies ([details](../../README.md#pytorch-nightlies))
14
14
>
15
15
> INT8 quantization is not currently supported in FSDP
Do not forget to adjust the number of nodes, ntasks and gpus-per-task in the top.
97
97
98
98
## Running with different datasets
99
-
Currently 3 open source datasets are supported that can be found in [Datasets config file](../../src/llama_recipes/configs/datasets.py). You can also use your custom dataset (more info [here](./datasets/README.md)).
99
+
Currently 3 open source datasets are supported that can be found in [Datasets config file](../../src/llama_cookbook/configs/datasets.py). You can also use your custom dataset (more info [here](./datasets/README.md)).
100
100
101
-
*`grammar_dataset` : use this [notebook](../../src/llama_recipes/datasets/grammar_dataset/grammar_dataset_process.ipynb) to pull and process the Jfleg and C4 200M datasets for grammar checking.
101
+
*`grammar_dataset` : use this [notebook](../../src/llama_cookbook/datasets/grammar_dataset/grammar_dataset_process.ipynb) to pull and process the Jfleg and C4 200M datasets for grammar checking.
102
102
103
103
*`alpaca_dataset` : to get this open source data please download the `aplaca.json` to `dataset` folder.
@@ -132,7 +132,7 @@ In case you are dealing with slower interconnect network between nodes, to reduc
132
132
133
133
HSDP (Hybrid sharding Data Parallel) helps to define a hybrid sharding strategy where you can have FSDP within `sharding_group_size` which can be the minimum number of GPUs you can fit your model and DDP between the replicas of the model specified by `replica_group_size`.
134
134
135
-
This will require to set the Sharding strategy in [fsdp config](../../src/llama_recipes/configs/fsdp.py) to `ShardingStrategy.HYBRID_SHARD` and specify two additional settings, `sharding_group_size` and `replica_group_size` where former specifies the sharding group size, number of GPUs that you model can fit into to form a replica of a model and latter specifies the replica group size, which is world_size/sharding_group_size.
135
+
This will require to set the Sharding strategy in [fsdp config](../../src/llama_cookbook/configs/fsdp.py) to `ShardingStrategy.HYBRID_SHARD` and specify two additional settings, `sharding_group_size` and `replica_group_size` where former specifies the sharding group size, number of GPUs that you model can fit into to form a replica of a model and latter specifies the replica group size, which is world_size/sharding_group_size.
Copy file name to clipboardExpand all lines: getting-started/finetuning/singlegpu_finetuning.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,12 +1,12 @@
1
1
# Fine-tuning with Single GPU
2
2
This recipe steps you through how to finetune a Meta Llama 3 model on the text summarization task using the [samsum](https://huggingface.co/datasets/samsum) dataset on a single GPU.
3
3
4
-
These are the instructions for using the canonical [finetuning script](../../src/llama_recipes/finetuning.py) in the llama-recipes package.
4
+
These are the instructions for using the canonical [finetuning script](../../src/llama_cookbook/finetuning.py) in the llama-cookbook package.
5
5
6
6
7
7
## Requirements
8
8
9
-
Ensure that you have installed the llama-recipes package.
9
+
Ensure that you have installed the llama-cookbook package.
10
10
11
11
To run fine-tuning on a single GPU, we will make use of two packages:
12
12
1.[PEFT](https://github.com/huggingface/peft) to use parameter-efficient finetuning.
@@ -33,15 +33,15 @@ The args used in the command above are:
33
33
34
34
### How to run with different datasets?
35
35
36
-
Currently 3 open source datasets are supported that can be found in [Datasets config file](../../src/llama_recipes/configs/datasets.py). You can also use your custom dataset (more info [here](./datasets/README.md)).
36
+
Currently 3 open source datasets are supported that can be found in [Datasets config file](../../src/llama_cookbook/configs/datasets.py). You can also use your custom dataset (more info [here](./datasets/README.md)).
37
37
38
-
*`grammar_dataset` : use this [notebook](../../src/llama_recipes/datasets/grammar_dataset/grammar_dataset_process.ipynb) to pull and process the Jfleg and C4 200M datasets for grammar checking.
38
+
*`grammar_dataset` : use this [notebook](../../src/llama_cookbook/datasets/grammar_dataset/grammar_dataset_process.ipynb) to pull and process the Jfleg and C4 200M datasets for grammar checking.
39
39
40
40
*`alpaca_dataset` : to get this open source data please download the `alpaca.json` to `dataset` folder.
0 commit comments