forked from NVIDIA/NeMo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Updates LoRA Training Notebook for Kaggle (NVIDIA#209)
update notebook for kaggle Signed-off-by: Oleg S <97077423+RobotSail@users.noreply.github.com> Co-authored-by: Máirín Duffy <duffy@redhat.com>
- Loading branch information
Showing
14 changed files
with
115 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,18 +1,78 @@ | ||
# Training | ||
|
||
You're now at the training phase. So far you have hand crafted some prompts and responses, and used `lab generate` to synthesize those prompt/response pairs into a new data set. Using a [Google Colab notebook](./Training_a_LoRA_With_Instruct_Lab.ipynb) and the NVidia T4 provided in the free tier, we will fine tune a LoRA. | ||
You're now at the training phase. So far you have hand crafted some prompts and responses, and used `lab generate` to synthesize those prompt/response pairs into a new data set. | ||
|
||
Next, you'll get to fine-tune a LoRA (Low-Rank Adaptation of Large Language Models) using a Jupyter notebook and either Kaggle or the Google Collab platform. | ||
|
||
We've laid out the steps to get started with either platform below. | ||
|
||
## Setting up the notebook | ||
|
||
### Kaggle | ||
|
||
Using a [Kaggle Notebook](./Training_a_LoRA_With_Labrador.ipynb) and the NVIDIA P100 provided in the free tier, we will fine tune a LoRA. | ||
|
||
#### Pre-requisites | ||
|
||
1. You'll need a Kaggle account, which you can create by visiting [Kaggle's Signup Page](https://www.kaggle.com/account/login?phase=startRegisterTab&returnUrl=%2F). | ||
1. To use Kaggle's accelerators, you'll have to verify your account with a phone number. Visit the [account settings page](https://www.kaggle.com/settings) and select "Phone Verification". | ||
|
||
|
||
**NOTE: At present, you'll need to download the notebook and upload it to Kaggle. The following steps will walk you through uploading the notebook. Once this repository is open sourced, we will make an 'Open in Colab' button** | ||
|
||
|
||
#### Uploading the notebook | ||
|
||
Once you have Kaggle properly configured, you can then run this notebook by following this process: | ||
|
||
1. At the top-left of the Kaggle page, click the "Create" button | ||
|
||
![create-notebook](images/kaggle/create.png) | ||
|
||
|
||
2. Then, select "Notebook" from the Dropdown menu. | ||
|
||
![create-new-notebook](images/kaggle/create-new-nb.png) | ||
|
||
|
||
3. This will create a new notebook with some example data inside of it already. From here, select "File" at the top left corner. | ||
|
||
![new-notebook-file-click](images/kaggle/file-click.png) | ||
|
||
4. Then, select "Import notebook". This will prompt you to upload a file from a local disk (you can also use GitHub). | ||
|
||
![import-new-notebook](images/kaggle/import-nb.png) | ||
|
||
|
||
5. With the notebook uploaded, we'll then need to click the three vertical dots on the top right to open the accelerator options. | ||
|
||
![select-an-accelerator](images/kaggle/select-accelerator.png) | ||
|
||
6. Then select the **P100 GPU Accelerator**. The other accelerator options will not work (yet). | ||
|
||
![selecting-the-p100-gpu](images/kaggle/select-accelerator-p100.png) | ||
|
||
|
||
7. Finally, make sure to click "Restart & Clear Cell Outputs" before you run. ***KAGGLE WILL NOT LET YOU RUN NOTEBOOKS OVER 1 MEGABYTE IN SIZE*** | ||
|
||
![restart-and-clear-cell-outputs](images/kaggle/clear-outputs.png) | ||
|
||
### Google Collab | ||
|
||
Pre-requisites: | ||
* [Google Colab](https://research.google.com/colaboratory/faq.html) | ||
* A Gmail account that you're logged into, this will allow you to use Google Colab, which in the free tier will give you access to an NVidia T4 x 15GB GPU | ||
|
||
|
||
**NOTE: At present, you'll need to download the notebook and upload it to Google Colab. To upload a notebook go to {Google Colab](https://colab.research.google.com) and you will be prompted to upload a notebook. Once this repository is open sourced, we will make an 'Open in Colab' button** | ||
|
||
[The notebook](./Training_a_LoRA_With_Instruct_Lab.ipynb) in this folder will walk you through: | ||
|
||
## Running the notebook | ||
|
||
|
||
[The notebook](./Training_a_LoRA_With_Labrador.ipynb) in this folder will walk you through: | ||
1. Uploading the output of `lab generate` (a synthetic dataset created based on your hand written prompts/responses). | ||
2. Checking the base model before training | ||
3. Setting up and training a Low Rank Adapter (LoRA). LoRA is a parameter efficient fine tuning method (PEFT) that allows you to fine tune a model on a small subset of the overall parameters, which allows you to conduct a finetuning in a fraction of the time, on a fraction of the hardware required. The resultant model should be updated and better handle your queries than the base model. | ||
4. Inspecting the output model to make sure the LoRA training had the desired effect. (That is to say the the output has 'improved'). | ||
|
||
Once you have finished training and the output looks good, we encourage you go to stage, [Testing the fine-tuned model](../README.md#👩🏽🔬-3-testing-the-fine-tuned-model) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.