From 6d69cf6d3555efc2962cc9c1b7f749a9156222a8 Mon Sep 17 00:00:00 2001 From: Shashank Verma Date: Tue, 23 Jul 2024 11:31:24 +0000 Subject: [PATCH 1/6] Move PubMedQA example to dedicated folder Signed-off-by: Shashank Verma --- .../llm/llama-3/{ => biomedical-qa}/README.rst | 0 .../img/e2e-lora-train-and-deploy.png | Bin .../llama3-lora-deploy-nim.ipynb | 0 .../{ => biomedical-qa}/llama3-lora-nemofw.ipynb | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename tutorials/llm/llama-3/{ => biomedical-qa}/README.rst (100%) rename tutorials/llm/llama-3/{ => biomedical-qa}/img/e2e-lora-train-and-deploy.png (100%) rename tutorials/llm/llama-3/{ => biomedical-qa}/llama3-lora-deploy-nim.ipynb (100%) rename tutorials/llm/llama-3/{ => biomedical-qa}/llama3-lora-nemofw.ipynb (100%) diff --git a/tutorials/llm/llama-3/README.rst b/tutorials/llm/llama-3/biomedical-qa/README.rst similarity index 100% rename from tutorials/llm/llama-3/README.rst rename to tutorials/llm/llama-3/biomedical-qa/README.rst diff --git a/tutorials/llm/llama-3/img/e2e-lora-train-and-deploy.png b/tutorials/llm/llama-3/biomedical-qa/img/e2e-lora-train-and-deploy.png similarity index 100% rename from tutorials/llm/llama-3/img/e2e-lora-train-and-deploy.png rename to tutorials/llm/llama-3/biomedical-qa/img/e2e-lora-train-and-deploy.png diff --git a/tutorials/llm/llama-3/llama3-lora-deploy-nim.ipynb b/tutorials/llm/llama-3/biomedical-qa/llama3-lora-deploy-nim.ipynb similarity index 100% rename from tutorials/llm/llama-3/llama3-lora-deploy-nim.ipynb rename to tutorials/llm/llama-3/biomedical-qa/llama3-lora-deploy-nim.ipynb diff --git a/tutorials/llm/llama-3/llama3-lora-nemofw.ipynb b/tutorials/llm/llama-3/biomedical-qa/llama3-lora-nemofw.ipynb similarity index 100% rename from tutorials/llm/llama-3/llama3-lora-nemofw.ipynb rename to tutorials/llm/llama-3/biomedical-qa/llama3-lora-nemofw.ipynb From 3ac05ae3f9497a598ea6a98c08a0099367c1c454 Mon Sep 17 00:00:00 2001 From: Shashank Verma Date: Tue, 23 Jul 2024 15:30:41 +0000 Subject: [PATCH 2/6] Add llama 3.1 SDG LoRA and NIM deployment tutorial Signed-off-by: Shashank Verma --- tutorials/llm/llama-3/README.rst | 19 + .../sdg-law-title-generation/README.rst | 173 ++++++ .../img/e2e-lora-train-and-deploy.png | Bin 0 -> 202808 bytes .../llama3-sdg-lora-deploy-nim.ipynb | 173 ++++++ .../llama3-sdg-lora-nemofw.ipynb | 570 ++++++++++++++++++ 5 files changed, 935 insertions(+) create mode 100755 tutorials/llm/llama-3/README.rst create mode 100755 tutorials/llm/llama-3/sdg-law-title-generation/README.rst create mode 100755 tutorials/llm/llama-3/sdg-law-title-generation/img/e2e-lora-train-and-deploy.png create mode 100755 tutorials/llm/llama-3/sdg-law-title-generation/llama3-sdg-lora-deploy-nim.ipynb create mode 100755 tutorials/llm/llama-3/sdg-law-title-generation/llama3-sdg-lora-nemofw.ipynb diff --git a/tutorials/llm/llama-3/README.rst b/tutorials/llm/llama-3/README.rst new file mode 100755 index 000000000000..960aaba2ccb9 --- /dev/null +++ b/tutorials/llm/llama-3/README.rst @@ -0,0 +1,19 @@ + +Getting Started with Llama 3 +============================ + +This repository contains jupyter notebook tutorials for Llama-3 and Llama-3.1 models by Meta. + +.. list-table:: Llama-3 Tutorials + :widths: 50 25 100 + :header-rows: 1 + + * - Tutorial + - Dataset + - Description + * - `Llama 3 LoRA Fine-Tuning and Multi-LoRA Deployment with NeMo Framework and NVIDIA NIM <./pubmedqa>`_ + - `PubMedQA `_ + - Perform LoRA PEFT on Llama 3 8B Instruct using a dataset for bio-medical domain question answering. Deploy multiple LoRA adapters with NVIDIA NIM. + * - `Llama 3.1 Law-Domain LoRA Fine-Tuning and Deployment with NeMo Framework and NVIDIA NIM <./sdg-law-title-generation>`_ + - `Law StackExchange `_ + - Perform LoRA PEFT on Llama 3.1 8B Instruct using a synthetically augmented version of Law StackExchange with NeMo Framework, followed by deployment with NVIDIA NIM. As a pre-requisite, follow the tutorial for `data curation using NeMo Curator `__. diff --git a/tutorials/llm/llama-3/sdg-law-title-generation/README.rst b/tutorials/llm/llama-3/sdg-law-title-generation/README.rst new file mode 100755 index 000000000000..5590540bfe73 --- /dev/null +++ b/tutorials/llm/llama-3/sdg-law-title-generation/README.rst @@ -0,0 +1,173 @@ +Llama 3.1 Law-Domain LoRA Fine-Tuning and Deployment with NeMo Framework and NVIDIA NIM +======================================================================================= + +`Llama 3.1 `_ are open-source large language models by Meta that deliver state-of-the-art performance on popular industry benchmarks. They have been pretrained on over 15 trillion tokens, and support a 128K token context length. They are available in three sizes, 8B, 70B, and 405B, and each size has two variants—base pretrained and instruction tuned. + +`Low-Rank Adaptation (LoRA) `__ has emerged as a popular Parameter-Efficient Fine-Tuning (PEFT) technique that tunes a very small number of additional parameters as compared to full fine-tuning, thereby reducing the compute required. + +`NVIDIA NeMo +Framework `__ provides tools to perform LoRA on Llama 3.1 to fit your use case, which can then be deployed using `NVIDIA NIM `__ for optimized inference on NVIDIA GPUs. + +.. figure:: ./img/e2e-lora-train-and-deploy.png + :width: 1000 + :alt: Diagram showing the steps for LoRA customization using the NVIDIA NeMo Framework and deployment with NVIDIA NIM. The steps include converting the base model to .nemo format, creating LoRA adapters with NeMo, and then depoying the LoRA adapter with NIM for inference. + :align: center + + Figure 1: Steps for LoRA customization using the NVIDIA NeMo Framework and deployment with NVIDIA NIM + + +| NIM also enables seamless deployment of multiple LoRA adapters (referred to as “multi-LoRA”) on the same base model. It dynamically loads the adapter weights based on incoming requests at runtime. This flexibility allows handling inputs from various tasks or use cases without deploying a unique model for each individual scenario. For further details, consult the `NIM documentation for LLMs `__. + +Objectives +---------- + +This tutorial shows how to perform LoRA PEFT on **Llama 3.1 8B Instruct** using a synthetically augmented version of `Law StackExchange `__ with NeMo Framework. Law StackExchange is a dataset of legal questions, question titles, and answers. For this demonstration, we will tune the model on the task of title/subject generation, that is, given a Law StackExchange forum question, auto-generate an appropriate title for it. We will then deploy the LoRA tuned model with NVIDIA NIM for inference. + +Requirements +------------- + +* **Obtain the dataset:** This tutorial is a continuation of the Data Curation tutorial - `Curating Datasets for Parameter Efficient Fine-tuning with Synthetic Data Generation `__. It demonstrates various filtering and processing operations on the records to improve data quality, as well as (optional) synthetic data generation (SDG) to augment the dataset. Please follow this tutorial to obtain the resulting dataset needed. + + +* System Configuration + * Access to at least 1 NVIDIA GPU with a cumulative memory of at least 80GB, for example: 1 x H100-80GB or 1 x A100-80GB. + * A Docker-enabled environment, with `NVIDIA Container Runtime `_ installed, which will make the container GPU-aware. + * `Additional NIM requirements `_. + +* `Authenticate with NVIDIA NGC `_, and download `NGC CLI Tool `_. You will use this tool to download the model and customize it with NeMo Framework. + +* Have a Hugging Face `access token `_, which will be used to obtain the tokenizer required during training. + + +`Process the Dataset with NeMo Curator `__ +------------------------------------------------------------------------------------------------------- + +1. Save the dataset in the current directory. You will have obtained `law-qa-{train/val/test}.jsonl` splits resulting from following the abovementioned `data curation tutorial `__. + +.. code:: bash + + mkdir -p curated-data + + # Make sure to update the path below as appropriate + cp .jsonl curated-data/. + + +`Create a LoRA Adapter with NeMo Framework <./llama3-sdg-lora-nemofw.ipynb>`__ +------------------------------------------------------------------------------ + +For LoRA-tuning the model, you will use the NeMo Framework which is available as a `docker container `__. + + +1. Download the `Llama 3.1 8B Instruct .nemo `__ from NVIDIA NGC using the NGC CLI. The following command saves the ``.nemo`` format model in a folder named ``llama-3_1-8b-instruct-nemo_v1.0`` in the current directory. You can specify another path using the ``-d`` option in the CLI tool. + +.. code:: bash + + ngc registry model download-version "nvidia/nemo/llama-3_1-8b-instruct-nemo:1.0" + + + +2. Run the container using the following command. It is assumed that you have the dataset, notebook(s), and the `llama-3.1-8b-instruct` model available in the current directory. If not, mount the appropriate folder to ``/workspace``. + +.. code:: bash + + export FW_VERSION=dev + + +.. code:: bash + + docker run \ + --gpus all \ + --shm-size=2g \ + --net=host \ + --ulimit memlock=-1 \ + --rm -it \ + -v ${PWD}:/workspace \ + -w /workspace \ + -v ${PWD}/results:/results \ + nvcr.io/nvidia/nemo:$FW_VERSION bash + +3. From within the container, start the Jupyter lab: + +.. code:: bash + + jupyter lab --ip 0.0.0.0 --port=8888 --allow-root + +4. Then, navigate to `this notebook <./llama3-sdg-lora-nemofw.ipynb>`__. + + +`Deploy the LoRA Inference Adapter with NVIDIA NIM <./llama3-sdg-lora-deploy-nim.ipynb>`__ +-------------------------------------------------------------------------------------- + +This procedure demonstrates how to deploy the trained LoRA adapter with NVIDIA NIM. NIM supports LoRA adapters in ``.nemo`` (from NeMo Framework), and Hugging Face model formats. You will deploy the Law StackExchange title-generation LoRA adapter from the first notebook. + +1. Prepare the LoRA model store. + +After training is complete, that LoRA model checkpoint will be created at ``./results/Meta-llama3.1-8B-Instruct-titlegen/checkpoints/megatron_gpt_peft_lora_tuning.nemo``, assuming default paths in the first notebook weren’t modified. + +To ensure the model store is organized as expected, create a folder named ``llama3.1-8b-law-titlegen`` under a model store directory, and move your ``.nemo`` checkpoint there. + +.. code:: bash + + # Set path to your LoRA model store + export LOCAL_PEFT_DIRECTORY="$(pwd)/loras" + + mkdir -p $LOCAL_PEFT_DIRECTORY/llama3.1-8b-law-titlegen + + # Ensure the source path is correct + cp ./results/Meta-llama3.1-8B-Instruct-titlegen/checkpoints/megatron_gpt_peft_lora_tuning.nemo $LOCAL_PEFT_DIRECTORY/llama3.1-8b-law-titlegen + + +Ensure that the LoRA model store directory follows this structure: the model name would be name of the sub-folder containing the ``.nemo`` file. + +:: + + <$LOCAL_PEFT_DIRECTORY> + └── llama3.1-8b-law-titlegen + └── megatron_gpt_peft_lora_tuning.nemo + + +Note that NIM supports deployment of multiple LoRA adapters over the same base model. As such, if you have any other adapters for other tasks trained or available, you can place them in separate sub-folders under `$LOCAL_PEFT_DIRECTORY`. + +3. Set-up NIM. + +From your host OS environment, start the NIM docker container while mounting the LoRA model store, as follows: + +.. code:: bash + + # Set these configurations + export NGC_API_KEY= + export NIM_PEFT_REFRESH_INTERVAL=3600 # (in seconds) will check NIM_PEFT_SOURCE for newly added models in this interval + export NIM_CACHE_PATH= # Model artifacts (in container) are cached in this directory + + +.. code:: bash + + mkdir -p $NIM_CACHE_PATH + chmod -R 777 $NIM_CACHE_PATH + + export NIM_PEFT_SOURCE=/home/nvs/loras # Path to LoRA models internal to the container + export CONTAINER_NAME=meta-llama3.1-8b-instruct + + docker run -it --rm --gpus all \ + --network=host \ + --shm-size=16GB \ + -e NGC_API_KEY \ + -e NIM_MANIFEST_PATH=/etc/nim/manifests/llama_8b_instruct_factory.yaml \ + -e NIM_MPI_ALLOW_RUN_AS_ROOT=1 \ + -e NIM_PEFT_SOURCE=/home/nvs/lora \ + -v /mnt/nvdl/usr/nevaid/nim/manifests:/etc/nim/manifests \ + -v $NIM_CACHE_PATH:/opt/nim/.cache \ + -v $LOCAL_PEFT_DIRECTORY:/home/nvs/lora \ + nvcr.io/nvidian/nim-llm-dev/nim-llm:1.1.0.rc7 \ + python3 -m vllm_nvext.entrypoints.launch + +The first time you run the command, it will download the model and cache it in ``$NIM_CACHE_PATH`` so subsequent deployments are even faster. There are several options to configure NIM other than the ones listed above. You can find a full list in the `NIM configuration `__ documentation. + + +4. Start the notebook. + +From another terminal, follow the same instructions as the previous notebook to launch Jupyter Lab, and then navigate to `this notebook <./llama3-sdg-lora-deploy-nim.ipynb>`__. + +You can use the same NeMo Framework docker container which has Jupyter Lab already installed. + + diff --git a/tutorials/llm/llama-3/sdg-law-title-generation/img/e2e-lora-train-and-deploy.png b/tutorials/llm/llama-3/sdg-law-title-generation/img/e2e-lora-train-and-deploy.png new file mode 100755 index 0000000000000000000000000000000000000000..16bb47eed43133d25ded37e0cfea5855da0e9c7a GIT binary patch literal 202808 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

Dan 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 literal 0 HcmV?d00001 diff --git a/tutorials/llm/llama-3/sdg-law-title-generation/llama3-sdg-lora-deploy-nim.ipynb b/tutorials/llm/llama-3/sdg-law-title-generation/llama3-sdg-lora-deploy-nim.ipynb new file mode 100755 index 000000000000..1554517ee94a --- /dev/null +++ b/tutorials/llm/llama-3/sdg-law-title-generation/llama3-sdg-lora-deploy-nim.ipynb @@ -0,0 +1,173 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "35708438", + "metadata": {}, + "source": [ + "# LoRA inference with NVIDIA NIM\n", + "\n", + "This is a demonstration of running inference against a LoRA adapter deployed with NVIDIA NIM. NIM supports LoRA adapters in .nemo (from NeMo Framework), and Hugging Face model formats. " + ] + }, + { + "cell_type": "markdown", + "id": "e4cb8046", + "metadata": { + "tags": [] + }, + "source": [ + "This notebook includes instructions to send an inference call to NVIDIA NIM using the Python `requests` library." + ] + }, + { + "cell_type": "markdown", + "id": "a264df8d", + "metadata": {}, + "source": [ + "## Before you begin\n", + "Ensure that you satisfy the pre-requisites, and have completed the setup instructions provided in the README associated with this tutorial to deploy the NIM container with LoRA." + ] + }, + { + "cell_type": "markdown", + "id": "0e052d1c", + "metadata": {}, + "source": [ + "---" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d4919e3c", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import json\n", + "import numpy as np\n", + "from tqdm import tqdm\n", + "from rouge_score import rouge_scorer, scoring" + ] + }, + { + "cell_type": "markdown", + "id": "9dd986d6", + "metadata": { + "tags": [] + }, + "source": [ + "## Check available LoRA models\n", + "\n", + "Once the NIM server is up and running, check the available models as follows:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2d723291", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "url = 'http://0.0.0.0:8000/v1/models'\n", + "\n", + "response = requests.get(url)\n", + "data = response.json()\n", + "\n", + "print(json.dumps(data, indent=4))" + ] + }, + { + "cell_type": "markdown", + "id": "dba0bc32", + "metadata": {}, + "source": [ + "This will return all the models available for inference by NIM. In this case, it will return the base model, as well as the LoRA adapters that were provided during NIM deployment - `llama3.1-8b-law-titlegen`." + ] + }, + { + "cell_type": "markdown", + "id": "d01fbd9b", + "metadata": {}, + "source": [ + "---\n", + "## LoRA inference\n", + "\n", + "Inference can be performed by sending POST requests to the `/completions` endpoint.\n", + "\n", + "A few things to note:\n", + "* The `model` parameter in the payload specifies the model that the request will be directed to. This can be the base model `meta/llama3.1-8b-instruct`, or any of the LoRA models, such as `llama3.1-8b-law-titlegen`.\n", + "* `max_tokens` parameter specifies the maximum number of tokens to generate. At any point, the cumulative number of input prompt tokens and specified number of output tokens to generate should not exceed the model's maximum context limit. For llama3-8b-instruct, the context length supported is 8192 tokens.\n", + "\n", + "Following code snippets show how it's possible to send requests belonging to different LoRAs (or tasks). NIM dynamically loads the LoRA adapters and serves the requests. It also internally handles the batching of requests belonging to different LoRAs to allow better performance and more efficient of compute." + ] + }, + { + "cell_type": "markdown", + "id": "03836ded", + "metadata": {}, + "source": [ + "### Title Generation\n", + "\n", + "Try sending an example from the test set." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3219f267", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "url = 'http://0.0.0.0:8000/v1/completions'\n", + "\n", + "headers = {\n", + " 'accept': 'application/json',\n", + " 'Content-Type': 'application/json'\n", + "}\n", + "\n", + "# Example from the test set\n", + "prompt=\"Generate a concise, engaging title for the following legal question on an internet forum. The title should be legally relevant, capture key aspects of the issue, and entice readers to learn more. \\nQUESTION: In order to be sued in a particular jurisdiction, say New York, a company must have a minimal business presence in the jurisdiction. What constitutes such a presence? Suppose the company engaged a New York-based Plaintiff, and its representatives signed the contract with the Plaintiff in New York City. Does this satisfy the minimum presence rule? Suppose, instead, the plaintiff and contract signing were in New Jersey, but the company hired a law firm with offices in New York City. Does this qualify? \\nTITLE: \"\n", + "data = {\n", + " \"model\": \"llama3.1-8b-law-titlegen\",\n", + " \"prompt\": prompt,\n", + " \"max_tokens\": 25,\n", + " \"temperature\":0\n", + "}\n", + "\n", + "response = requests.post(url, headers=headers, json=data)\n", + "response_data = response.json()\n", + "\n", + "print(json.dumps(response_data, indent=4))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/tutorials/llm/llama-3/sdg-law-title-generation/llama3-sdg-lora-nemofw.ipynb b/tutorials/llm/llama-3/sdg-law-title-generation/llama3-sdg-lora-nemofw.ipynb new file mode 100755 index 000000000000..6ddda2924060 --- /dev/null +++ b/tutorials/llm/llama-3/sdg-law-title-generation/llama3-sdg-lora-nemofw.ipynb @@ -0,0 +1,570 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "fb6b35f0", + "metadata": {}, + "source": [ + "# Creating a Llama 3.1 LoRA adapter with NeMo Framework using a Synthetic Dataset" + ] + }, + { + "cell_type": "markdown", + "id": "23fbd626", + "metadata": {}, + "source": [ + "This notebook showcases performing LoRA finetuning on **Llama 3.1-8B-Instruct** with a synthetically augmented version of [Law StackExchange](https://huggingface.co/datasets/ymoslem/Law-StackExchange) dataset using NeMo Framework. Law StackExchange is a dataset of legal question/answers. Each record consists of a question, its title, as well as human-provided answers.\n", + "\n", + "For this demonstration, we will tune the model on the task of title/subject generation, that is, given a Law StackExchange forum question, auto-generate an appropriate title for it.\n", + "\n", + "> `NOTE:` Ensure that you run this notebook inside the [NeMo Framework container](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/nemo) which has all the required dependencies. **Instructions are available in the associated tutorial README to download the model and the container.**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cbe12d6f", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "!pip install ipywidgets" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6e40a163", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "import os\n", + "import json\n", + "import numpy as np\n", + "from rouge_score import rouge_scorer, scoring" + ] + }, + { + "cell_type": "markdown", + "id": "59e83dbe", + "metadata": { + "tags": [] + }, + "source": [ + "---\n", + "## Before you begin\n", + "Ensure you have the following -\n", + "1. **Generate the synthetic dataset**: Follow the [PEFT Synthetic Data Generation (SDG)](https://github.com/NVIDIA/NeMo-Curator/tree/main/tutorials/peft-curation-with-sdg) tutorial to obtain the synthetic dataset. Once obtained, you must follow the instructions in the associated README to mount it in the NeMo FW container." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fd4ed90f", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "DATA_DIR = os.path.join(\"/workspace/curated-data\")\n", + "\n", + "!ls {DATA_DIR}" + ] + }, + { + "cell_type": "markdown", + "id": "702293d5", + "metadata": {}, + "source": [ + "You should see the `law-qa-{train/val/test}.jsonl` splits resulting from following the abovementioned SDG tutorial." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c5a94818", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "TRAIN_DS = os.path.join(DATA_DIR, \"law-qa-train.jsonl\")\n", + "VAL_DS = os.path.join(DATA_DIR, \"law-qa-val.jsonl\")\n", + "TEST_DS = os.path.join(DATA_DIR, \"law-qa-test.jsonl\")" + ] + }, + { + "cell_type": "markdown", + "id": "31734de5", + "metadata": { + "tags": [] + }, + "source": [ + "2. **Get the model**: Download the `Meta Llama 3.1 8B Instruct .nemo` model and mount the corresponding folder to the container." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "1a589eaf", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "evian2_8b.nemo\tevian2_8b_instruct.nemo\n" + ] + } + ], + "source": [ + "!ls /workspace/llama-3_1-8b-instruct-nemo_v1.0" + ] + }, + { + "cell_type": "markdown", + "id": "049ef998", + "metadata": { + "tags": [] + }, + "source": [ + "3. **Set the Hugging Face Access Token**: You can obtain this from your [Hugging Face account](https://huggingface.co/docs/hub/en/security-tokens). " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "10cb1b70", + "metadata": {}, + "outputs": [], + "source": [ + "from huggingface_hub import login\n", + "\n", + "login(token=\"\")" + ] + }, + { + "cell_type": "markdown", + "id": "309a699c", + "metadata": { + "tags": [] + }, + "source": [ + "---\n", + "## Step-by-step instructions\n", + "\n", + "This notebook is structured into four steps:\n", + "1. Prepare the dataset\n", + "2. Run the PEFT finetuning script\n", + "3. Inference with NeMo Framework\n", + "4. Check the model accuracy" + ] + }, + { + "cell_type": "markdown", + "id": "82574195", + "metadata": {}, + "source": [ + "### Step 1: Prepare the dataset\n", + "\n", + "This dataset has already undergone several filtering and processing operations, and it can be used to train the model for various different tasks - question title generation (summarization), law domain question answering, and question tag generation (multi-label classification).\n", + "\n", + "Take a look at a single row in the dataset." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2950ce20", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "# TRAIN, VAL and TEST splits all follow the same structure\n", + "!head -n1 {TRAIN_DS}" + ] + }, + { + "cell_type": "markdown", + "id": "877b2ca8", + "metadata": {}, + "source": [ + "You will see several fields in the `.jsonl`, including `title`, `question`, `answer`, and other associated metadata.\n", + "\n", + "For this tutorial, our input will be the `answer` field, and output will be it's `title`. \n", + "\n", + "The following cell does two things -\n", + "* Adds a template - a prompt instruction (which is optional), and format `{PROMPT} \\nQUESTION: {data[\"question\"]} \\nTITLE: `.\n", + "* Saves the data splits into the same location, also appending a `_preprocessed` marker to them." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e4a9e844", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "# Add a prompt instruction.\n", + "PROMPT='''Generate a concise, engaging title for the following legal question on an internet forum. The title should be legally relevant, capture key aspects of the issue, and entice readers to learn more.'''\n", + "\n", + "# Creates a preprocessed version of the data files\n", + "for input_file in [TRAIN_DS, VAL_DS, TEST_DS]:\n", + " output_file = input_file.rsplit('.', 1)[0] + '_preprocessed.jsonl'\n", + " with open(input_file, 'r') as infile, open(output_file, 'w') as outfile:\n", + " for line in infile:\n", + " # Parse each line as JSON\n", + " data = json.loads(line)\n", + "\n", + " # Create a new dictionary with only the desired fields, renamed and formatted\n", + " new_data = {\n", + " \"input\": f'''{PROMPT} \\nQUESTION: {data[\"question\"]} \\nTITLE: ''',\n", + " \"output\": data['title']\n", + " }\n", + "\n", + " # Write the new data as a JSON line to the output file\n", + " json.dump(new_data, outfile)\n", + " outfile.write('\\n') # Add a newline after each JSON object\n", + "\n", + " print(f\"Processed {input_file} and created {output_file}\")" + ] + }, + { + "cell_type": "markdown", + "id": "0d92dee0", + "metadata": {}, + "source": [ + "After running the above scripts, you will see `law-qa-{train/test/val}_preprocessed.jsonl` files appear in the data directory.\n", + "\n", + "This is what an example will be formatted like -\n", + "\n", + "```json\n", + "{\"input\": \"Generate a concise, engaging title for the following legal question on an internet forum. The title should be legally relevant, capture key aspects of the issue, and entice readers to learn more. \\nQUESTION: In order to be sued in a particular jurisdiction, say New York, a company must have a minimal business presence in the jurisdiction. What constitutes such a presence? Suppose the company engaged a New York-based Plaintiff, and its representatives signed the contract with the Plaintiff in New York City. Does this satisfy the minimum presence rule? Suppose, instead, the plaintiff and contract signing were in New Jersey, but the company hired a law firm with offices in New York City. Does this qualify? \\nTITLE: \", \n", + " \"output\": \"What constitutes \\\"doing business in a jurisdiction?\\\"\"}\n", + "```\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b379f3f9", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "# clear up any cached mem-map file\n", + "!rm curated-data/*idx*" + ] + }, + { + "cell_type": "markdown", + "id": "a16c6b6c", + "metadata": {}, + "source": [ + "\n", + "### Step 2: Run PEFT finetuning script for LoRA\n", + "\n", + "NeMo framework includes a high level python script for fine-tuning [megatron_gpt_finetuning.py](https://github.com/NVIDIA/NeMo/blob/main/examples/nlp/language_modeling/tuning/megatron_gpt_finetuning.py) that can abstract away some of the lower level API calls. Once you have your model downloaded and the dataset ready, LoRA fine-tuning with NeMo is essentially just running this script!\n", + "\n", + "For this demonstration, this training run is capped by `max_steps`, and validation is carried out every `val_check_interval` steps. If the validation loss does not improve after a few checks, training is halted to avoid overfitting.\n", + "\n", + "> `NOTE:` In the block of code below, pass the paths to your train, test and validation data files as well as path to the .nemo model." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8a84c5ae", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "%%bash\n", + "\n", + "# Set paths to the model, train, validation and test sets.\n", + "MODEL=\"/workspace/llama-3_1-8b-instruct-nemo_v1.0/evian2_8b_instruct.nemo\"\n", + "\n", + "TRAIN_DS=\"[./curated-data/law-qa-train_preprocessed.jsonl]\"\n", + "VALID_DS=\"[./curated-data/law-qa-val_preprocessed.jsonl]\"\n", + "TEST_DS=\"[./curated-data/law-qa-test_preprocessed.jsonl]\"\n", + "TEST_NAMES=\"[law]\"\n", + "\n", + "SCHEME=\"lora\"\n", + "TP_SIZE=1\n", + "PP_SIZE=1\n", + "\n", + "OUTPUT_DIR=\"./results/Meta-llama3.1-8B-Instruct-titlegen\"\n", + "rm -r $OUTPUT_DIR\n", + "\n", + "torchrun --nproc_per_node=1 \\\n", + "/opt/NeMo/examples/nlp/language_modeling/tuning/megatron_gpt_finetuning.py \\\n", + " exp_manager.exp_dir=${OUTPUT_DIR} \\\n", + " exp_manager.explicit_log_dir=${OUTPUT_DIR} \\\n", + " trainer.devices=1 \\\n", + " trainer.num_nodes=1 \\\n", + " trainer.precision=bf16-mixed \\\n", + " trainer.val_check_interval=0.2 \\\n", + " trainer.max_steps=1000 \\\n", + " model.megatron_amp_O2=True \\\n", + " ++model.mcore_gpt=True \\\n", + " model.tensor_model_parallel_size=${TP_SIZE} \\\n", + " model.pipeline_model_parallel_size=${PP_SIZE} \\\n", + " model.micro_batch_size=1 \\\n", + " model.global_batch_size=32 \\\n", + " model.restore_from_path=${MODEL} \\\n", + " model.data.train_ds.file_names=${TRAIN_DS} \\\n", + " model.data.train_ds.concat_sampling_probabilities=[1.0] \\\n", + " model.data.validation_ds.file_names=${VALID_DS} \\\n", + " model.peft.peft_scheme=${SCHEME}" + ] + }, + { + "cell_type": "markdown", + "id": "6f08d7ff", + "metadata": {}, + "source": [ + "This will create a LoRA adapter - a file named `megatron_gpt_peft_lora_tuning.nemo` in `./results/Meta-llama3.1-8B-Instruct-titlegen/checkpoints/`. We'll use this later.\n", + "\n", + "To further configure the run above -\n", + "\n", + "* **A different PEFT technique**: The `peft.peft_scheme` parameter determines the technique being used. In this case, we did LoRA, but NeMo Framework supports other techniques as well - such as P-tuning, Adapters, and IA3. For more information, refer to the [PEFT support matrix](https://docs.nvidia.com/nemo-framework/user-guide/latest/nemotoolkit/nlp/nemo_megatron/peft/landing_page.html). For example, for P-tuning, simply set \n", + "\n", + "```bash\n", + "model.peft.peft_scheme=\"ptuning\" # instead of \"lora\"\n", + "```\n", + "You can override many such configurations (such as `learning rate`, `adapter dim`, and more) while running the script. A full set of possible configurations is available in [NeMo Framework Github](https://github.com/NVIDIA/NeMo/blob/main/examples/nlp/language_modeling/tuning/conf/megatron_gpt_finetuning_config.yaml)." + ] + }, + { + "cell_type": "markdown", + "id": "06901ba1", + "metadata": { + "tags": [] + }, + "source": [ + "### Step 3: Inference with NeMo Framework\n", + "\n", + "Running text generation within the framework is also possible with running a Python script. Note that is more for testing and validation, not a full-fledged deployment solution like NVIDIA NIM." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "93e0aeb0", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "# Check that the LORA model file exists\n", + "!ls -l ./results/Meta-llama3.1-8B-Instruct-titlegen/checkpoints" + ] + }, + { + "cell_type": "markdown", + "id": "32d94cb4", + "metadata": {}, + "source": [ + "In the code snippet below, the following configurations are worth noting - \n", + "\n", + "1. `model.restore_from_path` to the path for the Meta-Llama-3.1-8B-Instruct.nemo file.\n", + "2. `model.peft.restore_from_path` to the path for the PEFT checkpoint that was created in the fine-tuning run in the last step.\n", + "3. `model.test_ds.file_names` to the path of the preprocessed test file." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6b1106b7", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "# Create a smaller test subset for a quick eval demonstration.\n", + "\n", + "!head -n 128 ./curated-data/law-qa-test_preprocessed.jsonl > ./curated-data/law-qa-test_preprocessed-n128.jsonl" + ] + }, + { + "cell_type": "markdown", + "id": "7e6af0fd", + "metadata": {}, + "source": [ + "If you have made any changes in model or experiment paths, please ensure they are configured correctly below." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "70628a33", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "%%bash\n", + "MODEL=\"/workspace/llama-3_1-8b-instruct-nemo_v1.0/evian2_8b_instruct.nemo\"\n", + "\n", + "TEST_DS=\"[./curated-data/law-qa-test_preprocessed-n128.jsonl]\" # Smaller test split\n", + "# TEST_DS=\"[./curated-data/law-qa-test_preprocessed.jsonl]\" # Full test set\n", + "TEST_NAMES=\"[law]\"\n", + "\n", + "TP_SIZE=1\n", + "PP_SIZE=1\n", + "\n", + "# This is where your LoRA checkpoint was saved\n", + "PATH_TO_TRAINED_MODEL=\"/workspace/results/Meta-llama3.1-8B-Instruct-titlegen/checkpoints/megatron_gpt_peft_lora_tuning.nemo\"\n", + "\n", + "# The generation run will save the generated outputs over the test dataset in a file prefixed like so\n", + "OUTPUT_PREFIX=\"law_titlegen_lora\"\n", + "\n", + "python /opt/NeMo/examples/nlp/language_modeling/tuning/megatron_gpt_generate.py \\\n", + " model.restore_from_path=${MODEL} \\\n", + " model.peft.restore_from_path=${PATH_TO_TRAINED_MODEL} \\\n", + " trainer.devices=1 \\\n", + " trainer.num_nodes=1 \\\n", + " model.data.test_ds.file_names=${TEST_DS} \\\n", + " model.data.test_ds.names=${TEST_NAMES} \\\n", + " model.data.test_ds.global_batch_size=32 \\\n", + " model.data.test_ds.micro_batch_size=1 \\\n", + " model.data.test_ds.tokens_to_generate=25 \\\n", + " model.tensor_model_parallel_size=${TP_SIZE} \\\n", + " model.pipeline_model_parallel_size=${PP_SIZE} \\\n", + " inference.greedy=True \\\n", + " model.data.test_ds.output_file_path_prefix=${OUTPUT_PREFIX} \\\n", + " model.data.test_ds.write_predictions_to_file=True \\\n", + " model.data.test_ds.truncation_field=\"null\" \\\n", + " model.data.test_ds.add_bos=False \\\n", + " model.data.test_ds.add_eos=True \\\n", + " model.data.test_ds.add_sep=False \\\n", + " model.data.test_ds.label_key=\"output\" \\\n", + " model.data.test_ds.prompt_template=\"\\{input\\}\\ \\{output\\}\"" + ] + }, + { + "cell_type": "markdown", + "id": "5f82b63a", + "metadata": {}, + "source": [ + "### Step 4: Check the model accuracy\n", + "\n", + "Now that the results are in, let's read the results and calculate the accuracy on the question title generation task.\n", + "Let's take a look at one of the predictions in the generated output file. The `pred` key indicates what was generated." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c5e55768", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "# Take a look at predictions\n", + "!head -n1 law_titlegen_lora_test_law_inputs_preds_labels.jsonl" + ] + }, + { + "cell_type": "markdown", + "id": "b2e747b4", + "metadata": { + "tags": [] + }, + "source": [ + "For evaluating this task, we will use [ROUGE](https://en.wikipedia.org/wiki/ROUGE_(metric)). It measures overlap of ngrams, and a higher score is better. While it's not perfect and it misses capturing the semantics of the prediction, it is a popular metric in academia and industry for evaluating such systems. \n", + "\n", + "The following method uses the `rouge_score` library to implement scoring. It will report `ROUGE_{1/2/L/Lsum}` metrics." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7c470ca3", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "def compute_rouge(input_file: str) -> dict:\n", + " ROUGE_KEYS = [\"rouge1\", \"rouge2\", \"rougeL\", \"rougeLsum\"]\n", + " scorer = rouge_scorer.RougeScorer(ROUGE_KEYS, use_stemmer=True)\n", + " aggregator = scoring.BootstrapAggregator()\n", + " lines = [json.loads(line) for line in open(input_file)]\n", + " num_response_words = []\n", + " num_ref_words = []\n", + " for idx, line in enumerate(lines):\n", + " prompt = line['input']\n", + " response = line['pred']\n", + " answer = line['label']\n", + " scores = scorer.score(response, answer)\n", + " aggregator.add_scores(scores)\n", + " num_response_words.append(len(response.split()))\n", + " num_ref_words.append(len(answer.split()))\n", + "\n", + " result = aggregator.aggregate()\n", + " rouge_scores = {k: round(v.mid.fmeasure * 100, 4) for k, v in result.items()}\n", + " print(rouge_scores)\n", + " print(f\"Average and stddev of response length: {np.mean(num_response_words):.2f}, {np.std(num_response_words):.2f}\")\n", + " print(f\"Average and stddev of ref length: {np.mean(num_ref_words):.2f}, {np.std(num_ref_words):.2f}\")\n", + "\n", + " return rouge_scores" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9733f16f", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "compute_rouge(\"./law_titlegen_lora_test_law_inputs_preds_labels.jsonl\")" + ] + }, + { + "cell_type": "markdown", + "id": "286ae8da", + "metadata": {}, + "source": [ + "For the Llama-3.1-8B-Instruct model, you should see accuracy comparable to the below:\n", + "```\n", + "{'rouge1': 39.2082, 'rouge2': 18.8573, 'rougeL': 35.4098, 'rougeLsum': 35.3906}\n", + "```" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 1088af82f452bb4697be1ba3768c2df6abe23a0c Mon Sep 17 00:00:00 2001 From: Shashank Verma Date: Tue, 23 Jul 2024 15:43:18 +0000 Subject: [PATCH 3/6] Minor updates to Llama-3.1 PEFT tutorial README Signed-off-by: Shashank Verma --- tutorials/llm/llama-3/README.rst | 6 +++--- tutorials/llm/llama-3/sdg-law-title-generation/README.rst | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tutorials/llm/llama-3/README.rst b/tutorials/llm/llama-3/README.rst index 960aaba2ccb9..89878fb55280 100755 --- a/tutorials/llm/llama-3/README.rst +++ b/tutorials/llm/llama-3/README.rst @@ -4,14 +4,14 @@ Getting Started with Llama 3 This repository contains jupyter notebook tutorials for Llama-3 and Llama-3.1 models by Meta. -.. list-table:: Llama-3 Tutorials - :widths: 50 25 100 +.. list-table:: + :widths: 100 25 100 :header-rows: 1 * - Tutorial - Dataset - Description - * - `Llama 3 LoRA Fine-Tuning and Multi-LoRA Deployment with NeMo Framework and NVIDIA NIM <./pubmedqa>`_ + * - `Llama 3 LoRA Fine-Tuning and Multi-LoRA Deployment with NeMo Framework and NVIDIA NIM <./biomedical-qa>`_ - `PubMedQA `_ - Perform LoRA PEFT on Llama 3 8B Instruct using a dataset for bio-medical domain question answering. Deploy multiple LoRA adapters with NVIDIA NIM. * - `Llama 3.1 Law-Domain LoRA Fine-Tuning and Deployment with NeMo Framework and NVIDIA NIM <./sdg-law-title-generation>`_ diff --git a/tutorials/llm/llama-3/sdg-law-title-generation/README.rst b/tutorials/llm/llama-3/sdg-law-title-generation/README.rst index 5590540bfe73..26822c066edf 100755 --- a/tutorials/llm/llama-3/sdg-law-title-generation/README.rst +++ b/tutorials/llm/llama-3/sdg-law-title-generation/README.rst @@ -36,7 +36,7 @@ Requirements * `Authenticate with NVIDIA NGC `_, and download `NGC CLI Tool `_. You will use this tool to download the model and customize it with NeMo Framework. -* Have a Hugging Face `access token `_, which will be used to obtain the tokenizer required during training. +* Get your Hugging Face `access token `_, which will be used to obtain the tokenizer required during training. `Process the Dataset with NeMo Curator `__ @@ -128,7 +128,7 @@ Ensure that the LoRA model store directory follows this structure: the model nam Note that NIM supports deployment of multiple LoRA adapters over the same base model. As such, if you have any other adapters for other tasks trained or available, you can place them in separate sub-folders under `$LOCAL_PEFT_DIRECTORY`. -3. Set-up NIM. +2. Set-up NIM. From your host OS environment, start the NIM docker container while mounting the LoRA model store, as follows: @@ -164,7 +164,7 @@ From your host OS environment, start the NIM docker container while mounting the The first time you run the command, it will download the model and cache it in ``$NIM_CACHE_PATH`` so subsequent deployments are even faster. There are several options to configure NIM other than the ones listed above. You can find a full list in the `NIM configuration `__ documentation. -4. Start the notebook. +3. Start the notebook. From another terminal, follow the same instructions as the previous notebook to launch Jupyter Lab, and then navigate to `this notebook <./llama3-sdg-lora-deploy-nim.ipynb>`__. From 8c5f2066868b29e88e627426687643364e92b546 Mon Sep 17 00:00:00 2001 From: Shashank Verma Date: Tue, 23 Jul 2024 16:59:51 +0000 Subject: [PATCH 4/6] Minor updates to Llama 3.1 PEFT tutorial README Signed-off-by: Shashank Verma --- tutorials/llm/llama-3/README.rst | 4 +- .../sdg-law-title-generation/README.rst | 2 +- .../llama3-sdg-lora-nemofw.ipynb | 84 +++++++++---------- 3 files changed, 41 insertions(+), 49 deletions(-) diff --git a/tutorials/llm/llama-3/README.rst b/tutorials/llm/llama-3/README.rst index 89878fb55280..2407cf1e9077 100755 --- a/tutorials/llm/llama-3/README.rst +++ b/tutorials/llm/llama-3/README.rst @@ -1,6 +1,6 @@ -Getting Started with Llama 3 -============================ +Getting Started with Llama 3 and Llama 3.1 +========================================== This repository contains jupyter notebook tutorials for Llama-3 and Llama-3.1 models by Meta. diff --git a/tutorials/llm/llama-3/sdg-law-title-generation/README.rst b/tutorials/llm/llama-3/sdg-law-title-generation/README.rst index 26822c066edf..adc4f783e597 100755 --- a/tutorials/llm/llama-3/sdg-law-title-generation/README.rst +++ b/tutorials/llm/llama-3/sdg-law-title-generation/README.rst @@ -58,7 +58,7 @@ Requirements For LoRA-tuning the model, you will use the NeMo Framework which is available as a `docker container `__. -1. Download the `Llama 3.1 8B Instruct .nemo `__ from NVIDIA NGC using the NGC CLI. The following command saves the ``.nemo`` format model in a folder named ``llama-3_1-8b-instruct-nemo_v1.0`` in the current directory. You can specify another path using the ``-d`` option in the CLI tool. +1. Download the `Llama 3.1 8B Instruct .nemo `__ from NVIDIA NGC using the NGC CLI. The following command saves the ``.nemo`` format model in a folder named ``llama-3_1-8b-instruct-nemo_v1.0`` in the current directory. You can specify another path using the ``-d`` option in the CLI tool. .. code:: bash diff --git a/tutorials/llm/llama-3/sdg-law-title-generation/llama3-sdg-lora-nemofw.ipynb b/tutorials/llm/llama-3/sdg-law-title-generation/llama3-sdg-lora-nemofw.ipynb index 6ddda2924060..8e7daa656453 100755 --- a/tutorials/llm/llama-3/sdg-law-title-generation/llama3-sdg-lora-nemofw.ipynb +++ b/tutorials/llm/llama-3/sdg-law-title-generation/llama3-sdg-lora-nemofw.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "fb6b35f0", + "id": "ca970447", "metadata": {}, "source": [ "# Creating a Llama 3.1 LoRA adapter with NeMo Framework using a Synthetic Dataset" @@ -10,7 +10,7 @@ }, { "cell_type": "markdown", - "id": "23fbd626", + "id": "2263b591", "metadata": {}, "source": [ "This notebook showcases performing LoRA finetuning on **Llama 3.1-8B-Instruct** with a synthetically augmented version of [Law StackExchange](https://huggingface.co/datasets/ymoslem/Law-StackExchange) dataset using NeMo Framework. Law StackExchange is a dataset of legal question/answers. Each record consists of a question, its title, as well as human-provided answers.\n", @@ -23,7 +23,7 @@ { "cell_type": "code", "execution_count": null, - "id": "cbe12d6f", + "id": "7d264248", "metadata": { "tags": [] }, @@ -35,7 +35,7 @@ { "cell_type": "code", "execution_count": null, - "id": "6e40a163", + "id": "c1297c43", "metadata": { "tags": [] }, @@ -49,7 +49,7 @@ }, { "cell_type": "markdown", - "id": "59e83dbe", + "id": "dc9b0837", "metadata": { "tags": [] }, @@ -63,7 +63,7 @@ { "cell_type": "code", "execution_count": null, - "id": "fd4ed90f", + "id": "204b950f", "metadata": { "tags": [] }, @@ -76,7 +76,7 @@ }, { "cell_type": "markdown", - "id": "702293d5", + "id": "378322b1", "metadata": {}, "source": [ "You should see the `law-qa-{train/val/test}.jsonl` splits resulting from following the abovementioned SDG tutorial." @@ -85,7 +85,7 @@ { "cell_type": "code", "execution_count": null, - "id": "c5a94818", + "id": "b879a6ae", "metadata": { "tags": [] }, @@ -98,7 +98,7 @@ }, { "cell_type": "markdown", - "id": "31734de5", + "id": "17f018a5", "metadata": { "tags": [] }, @@ -108,27 +108,19 @@ }, { "cell_type": "code", - "execution_count": 1, - "id": "1a589eaf", + "execution_count": null, + "id": "63bb97c4", "metadata": { "tags": [] }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "evian2_8b.nemo\tevian2_8b_instruct.nemo\n" - ] - } - ], + "outputs": [], "source": [ "!ls /workspace/llama-3_1-8b-instruct-nemo_v1.0" ] }, { "cell_type": "markdown", - "id": "049ef998", + "id": "e979cb88", "metadata": { "tags": [] }, @@ -139,7 +131,7 @@ { "cell_type": "code", "execution_count": null, - "id": "10cb1b70", + "id": "16485677", "metadata": {}, "outputs": [], "source": [ @@ -150,7 +142,7 @@ }, { "cell_type": "markdown", - "id": "309a699c", + "id": "8df6641c", "metadata": { "tags": [] }, @@ -167,7 +159,7 @@ }, { "cell_type": "markdown", - "id": "82574195", + "id": "e2df5642", "metadata": {}, "source": [ "### Step 1: Prepare the dataset\n", @@ -180,7 +172,7 @@ { "cell_type": "code", "execution_count": null, - "id": "2950ce20", + "id": "56fcda52", "metadata": { "tags": [] }, @@ -192,7 +184,7 @@ }, { "cell_type": "markdown", - "id": "877b2ca8", + "id": "d7ac920f", "metadata": {}, "source": [ "You will see several fields in the `.jsonl`, including `title`, `question`, `answer`, and other associated metadata.\n", @@ -207,7 +199,7 @@ { "cell_type": "code", "execution_count": null, - "id": "e4a9e844", + "id": "4ae43db3", "metadata": { "tags": [] }, @@ -239,7 +231,7 @@ }, { "cell_type": "markdown", - "id": "0d92dee0", + "id": "dae10373", "metadata": {}, "source": [ "After running the above scripts, you will see `law-qa-{train/test/val}_preprocessed.jsonl` files appear in the data directory.\n", @@ -255,7 +247,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b379f3f9", + "id": "edda52ac", "metadata": { "tags": [] }, @@ -267,7 +259,7 @@ }, { "cell_type": "markdown", - "id": "a16c6b6c", + "id": "59b4be29", "metadata": {}, "source": [ "\n", @@ -283,7 +275,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8a84c5ae", + "id": "1e2643cb", "metadata": { "tags": [] }, @@ -292,7 +284,7 @@ "%%bash\n", "\n", "# Set paths to the model, train, validation and test sets.\n", - "MODEL=\"/workspace/llama-3_1-8b-instruct-nemo_v1.0/evian2_8b_instruct.nemo\"\n", + "MODEL=\"/workspace/llama-3_1-8b-instruct-nemo_v1.0/llama3_1_8b_instruct.nemo\"\n", "\n", "TRAIN_DS=\"[./curated-data/law-qa-train_preprocessed.jsonl]\"\n", "VALID_DS=\"[./curated-data/law-qa-val_preprocessed.jsonl]\"\n", @@ -330,7 +322,7 @@ }, { "cell_type": "markdown", - "id": "6f08d7ff", + "id": "04091b67", "metadata": {}, "source": [ "This will create a LoRA adapter - a file named `megatron_gpt_peft_lora_tuning.nemo` in `./results/Meta-llama3.1-8B-Instruct-titlegen/checkpoints/`. We'll use this later.\n", @@ -347,7 +339,7 @@ }, { "cell_type": "markdown", - "id": "06901ba1", + "id": "0ba7f7b3", "metadata": { "tags": [] }, @@ -360,7 +352,7 @@ { "cell_type": "code", "execution_count": null, - "id": "93e0aeb0", + "id": "3d81b187", "metadata": { "tags": [] }, @@ -372,7 +364,7 @@ }, { "cell_type": "markdown", - "id": "32d94cb4", + "id": "325e25ed", "metadata": {}, "source": [ "In the code snippet below, the following configurations are worth noting - \n", @@ -385,7 +377,7 @@ { "cell_type": "code", "execution_count": null, - "id": "6b1106b7", + "id": "3fb0d823", "metadata": { "tags": [] }, @@ -398,7 +390,7 @@ }, { "cell_type": "markdown", - "id": "7e6af0fd", + "id": "f19806d3", "metadata": {}, "source": [ "If you have made any changes in model or experiment paths, please ensure they are configured correctly below." @@ -407,14 +399,14 @@ { "cell_type": "code", "execution_count": null, - "id": "70628a33", + "id": "a13ab65b", "metadata": { "tags": [] }, "outputs": [], "source": [ "%%bash\n", - "MODEL=\"/workspace/llama-3_1-8b-instruct-nemo_v1.0/evian2_8b_instruct.nemo\"\n", + "MODEL=\"/workspace/llama-3_1-8b-instruct-nemo_v1.0/llama3_1_8b_instruct.nemo\"\n", "\n", "TEST_DS=\"[./curated-data/law-qa-test_preprocessed-n128.jsonl]\" # Smaller test split\n", "# TEST_DS=\"[./curated-data/law-qa-test_preprocessed.jsonl]\" # Full test set\n", @@ -454,7 +446,7 @@ }, { "cell_type": "markdown", - "id": "5f82b63a", + "id": "c82346da", "metadata": {}, "source": [ "### Step 4: Check the model accuracy\n", @@ -466,7 +458,7 @@ { "cell_type": "code", "execution_count": null, - "id": "c5e55768", + "id": "29482d87", "metadata": { "tags": [] }, @@ -478,7 +470,7 @@ }, { "cell_type": "markdown", - "id": "b2e747b4", + "id": "38ad338b", "metadata": { "tags": [] }, @@ -491,7 +483,7 @@ { "cell_type": "code", "execution_count": null, - "id": "7c470ca3", + "id": "d79c2394", "metadata": { "tags": [] }, @@ -525,7 +517,7 @@ { "cell_type": "code", "execution_count": null, - "id": "9733f16f", + "id": "b25a071d", "metadata": { "tags": [] }, @@ -536,7 +528,7 @@ }, { "cell_type": "markdown", - "id": "286ae8da", + "id": "4f804042", "metadata": {}, "source": [ "For the Llama-3.1-8B-Instruct model, you should see accuracy comparable to the below:\n", From 8b2712ba04f6f64d3aee502ffa797480468842d1 Mon Sep 17 00:00:00 2001 From: Shashank Verma Date: Tue, 23 Jul 2024 18:17:33 +0000 Subject: [PATCH 5/6] Updates to NIM deployment instructions Signed-off-by: Shashank Verma --- .../sdg-law-title-generation/README.rst | 15 ++-- .../llama3-sdg-lora-deploy-nim.ipynb | 29 ++++---- .../llama3-sdg-lora-nemofw.ipynb | 68 +++++++++---------- 3 files changed, 53 insertions(+), 59 deletions(-) diff --git a/tutorials/llm/llama-3/sdg-law-title-generation/README.rst b/tutorials/llm/llama-3/sdg-law-title-generation/README.rst index adc4f783e597..58fc4a86eaa7 100755 --- a/tutorials/llm/llama-3/sdg-law-title-generation/README.rst +++ b/tutorials/llm/llama-3/sdg-law-title-generation/README.rst @@ -70,7 +70,7 @@ For LoRA-tuning the model, you will use the NeMo Framework which is available as .. code:: bash - export FW_VERSION=dev + export FW_VERSION=24.05.llama3.1 .. code:: bash @@ -148,18 +148,15 @@ From your host OS environment, start the NIM docker container while mounting the export NIM_PEFT_SOURCE=/home/nvs/loras # Path to LoRA models internal to the container export CONTAINER_NAME=meta-llama3.1-8b-instruct - docker run -it --rm --gpus all \ + docker run -it --rm --name=$CONTAINER_NAME \ + --gpus all \ --network=host \ --shm-size=16GB \ -e NGC_API_KEY \ - -e NIM_MANIFEST_PATH=/etc/nim/manifests/llama_8b_instruct_factory.yaml \ - -e NIM_MPI_ALLOW_RUN_AS_ROOT=1 \ - -e NIM_PEFT_SOURCE=/home/nvs/lora \ - -v /mnt/nvdl/usr/nevaid/nim/manifests:/etc/nim/manifests \ + -e NIM_PEFT_SOURCE \ -v $NIM_CACHE_PATH:/opt/nim/.cache \ - -v $LOCAL_PEFT_DIRECTORY:/home/nvs/lora \ - nvcr.io/nvidian/nim-llm-dev/nim-llm:1.1.0.rc7 \ - python3 -m vllm_nvext.entrypoints.launch + -v $LOCAL_PEFT_DIRECTORY:$NIM_PEFT_SOURCE \ + nvcr.io/nim/meta/llama-3.1-8b-instruct:1.1.0 The first time you run the command, it will download the model and cache it in ``$NIM_CACHE_PATH`` so subsequent deployments are even faster. There are several options to configure NIM other than the ones listed above. You can find a full list in the `NIM configuration `__ documentation. diff --git a/tutorials/llm/llama-3/sdg-law-title-generation/llama3-sdg-lora-deploy-nim.ipynb b/tutorials/llm/llama-3/sdg-law-title-generation/llama3-sdg-lora-deploy-nim.ipynb index 1554517ee94a..783c5d951944 100755 --- a/tutorials/llm/llama-3/sdg-law-title-generation/llama3-sdg-lora-deploy-nim.ipynb +++ b/tutorials/llm/llama-3/sdg-law-title-generation/llama3-sdg-lora-deploy-nim.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "35708438", + "id": "884f3125", "metadata": {}, "source": [ "# LoRA inference with NVIDIA NIM\n", @@ -12,7 +12,7 @@ }, { "cell_type": "markdown", - "id": "e4cb8046", + "id": "b161f16b", "metadata": { "tags": [] }, @@ -22,7 +22,7 @@ }, { "cell_type": "markdown", - "id": "a264df8d", + "id": "54759732", "metadata": {}, "source": [ "## Before you begin\n", @@ -31,7 +31,7 @@ }, { "cell_type": "markdown", - "id": "0e052d1c", + "id": "1e7917da", "metadata": {}, "source": [ "---" @@ -40,22 +40,19 @@ { "cell_type": "code", "execution_count": null, - "id": "d4919e3c", + "id": "fa2477e9", "metadata": { "tags": [] }, "outputs": [], "source": [ "import requests\n", - "import json\n", - "import numpy as np\n", - "from tqdm import tqdm\n", - "from rouge_score import rouge_scorer, scoring" + "import json" ] }, { "cell_type": "markdown", - "id": "9dd986d6", + "id": "39d9918a", "metadata": { "tags": [] }, @@ -68,7 +65,7 @@ { "cell_type": "code", "execution_count": null, - "id": "2d723291", + "id": "f2d71965", "metadata": { "tags": [] }, @@ -84,7 +81,7 @@ }, { "cell_type": "markdown", - "id": "dba0bc32", + "id": "5d5a93ac", "metadata": {}, "source": [ "This will return all the models available for inference by NIM. In this case, it will return the base model, as well as the LoRA adapters that were provided during NIM deployment - `llama3.1-8b-law-titlegen`." @@ -92,7 +89,7 @@ }, { "cell_type": "markdown", - "id": "d01fbd9b", + "id": "e7c19acd", "metadata": {}, "source": [ "---\n", @@ -109,7 +106,7 @@ }, { "cell_type": "markdown", - "id": "03836ded", + "id": "3edd2a9e", "metadata": {}, "source": [ "### Title Generation\n", @@ -120,7 +117,7 @@ { "cell_type": "code", "execution_count": null, - "id": "3219f267", + "id": "cf6ea42a", "metadata": { "tags": [] }, @@ -133,7 +130,7 @@ " 'Content-Type': 'application/json'\n", "}\n", "\n", - "# Example from the test set\n", + "# Example from the test set, following the template we trained the lora with\n", "prompt=\"Generate a concise, engaging title for the following legal question on an internet forum. The title should be legally relevant, capture key aspects of the issue, and entice readers to learn more. \\nQUESTION: In order to be sued in a particular jurisdiction, say New York, a company must have a minimal business presence in the jurisdiction. What constitutes such a presence? Suppose the company engaged a New York-based Plaintiff, and its representatives signed the contract with the Plaintiff in New York City. Does this satisfy the minimum presence rule? Suppose, instead, the plaintiff and contract signing were in New Jersey, but the company hired a law firm with offices in New York City. Does this qualify? \\nTITLE: \"\n", "data = {\n", " \"model\": \"llama3.1-8b-law-titlegen\",\n", diff --git a/tutorials/llm/llama-3/sdg-law-title-generation/llama3-sdg-lora-nemofw.ipynb b/tutorials/llm/llama-3/sdg-law-title-generation/llama3-sdg-lora-nemofw.ipynb index 8e7daa656453..d597a60d6c0b 100755 --- a/tutorials/llm/llama-3/sdg-law-title-generation/llama3-sdg-lora-nemofw.ipynb +++ b/tutorials/llm/llama-3/sdg-law-title-generation/llama3-sdg-lora-nemofw.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "ca970447", + "id": "a952a54c", "metadata": {}, "source": [ "# Creating a Llama 3.1 LoRA adapter with NeMo Framework using a Synthetic Dataset" @@ -10,7 +10,7 @@ }, { "cell_type": "markdown", - "id": "2263b591", + "id": "63b3bd1c", "metadata": {}, "source": [ "This notebook showcases performing LoRA finetuning on **Llama 3.1-8B-Instruct** with a synthetically augmented version of [Law StackExchange](https://huggingface.co/datasets/ymoslem/Law-StackExchange) dataset using NeMo Framework. Law StackExchange is a dataset of legal question/answers. Each record consists of a question, its title, as well as human-provided answers.\n", @@ -23,7 +23,7 @@ { "cell_type": "code", "execution_count": null, - "id": "7d264248", + "id": "92ba5569", "metadata": { "tags": [] }, @@ -35,7 +35,7 @@ { "cell_type": "code", "execution_count": null, - "id": "c1297c43", + "id": "1cf3dc30", "metadata": { "tags": [] }, @@ -49,7 +49,7 @@ }, { "cell_type": "markdown", - "id": "dc9b0837", + "id": "0b129833", "metadata": { "tags": [] }, @@ -63,7 +63,7 @@ { "cell_type": "code", "execution_count": null, - "id": "204b950f", + "id": "8492edc1", "metadata": { "tags": [] }, @@ -76,7 +76,7 @@ }, { "cell_type": "markdown", - "id": "378322b1", + "id": "97990ad8", "metadata": {}, "source": [ "You should see the `law-qa-{train/val/test}.jsonl` splits resulting from following the abovementioned SDG tutorial." @@ -85,7 +85,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b879a6ae", + "id": "63b061f4", "metadata": { "tags": [] }, @@ -98,7 +98,7 @@ }, { "cell_type": "markdown", - "id": "17f018a5", + "id": "c1c0f9b8", "metadata": { "tags": [] }, @@ -109,7 +109,7 @@ { "cell_type": "code", "execution_count": null, - "id": "63bb97c4", + "id": "3728f222", "metadata": { "tags": [] }, @@ -120,7 +120,7 @@ }, { "cell_type": "markdown", - "id": "e979cb88", + "id": "56b7a698", "metadata": { "tags": [] }, @@ -131,7 +131,7 @@ { "cell_type": "code", "execution_count": null, - "id": "16485677", + "id": "b546cb59", "metadata": {}, "outputs": [], "source": [ @@ -142,7 +142,7 @@ }, { "cell_type": "markdown", - "id": "8df6641c", + "id": "570025c5", "metadata": { "tags": [] }, @@ -159,7 +159,7 @@ }, { "cell_type": "markdown", - "id": "e2df5642", + "id": "3894607a", "metadata": {}, "source": [ "### Step 1: Prepare the dataset\n", @@ -172,7 +172,7 @@ { "cell_type": "code", "execution_count": null, - "id": "56fcda52", + "id": "c6b47e31", "metadata": { "tags": [] }, @@ -184,7 +184,7 @@ }, { "cell_type": "markdown", - "id": "d7ac920f", + "id": "9bed493d", "metadata": {}, "source": [ "You will see several fields in the `.jsonl`, including `title`, `question`, `answer`, and other associated metadata.\n", @@ -199,7 +199,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4ae43db3", + "id": "188b93b7", "metadata": { "tags": [] }, @@ -231,7 +231,7 @@ }, { "cell_type": "markdown", - "id": "dae10373", + "id": "39388cc3", "metadata": {}, "source": [ "After running the above scripts, you will see `law-qa-{train/test/val}_preprocessed.jsonl` files appear in the data directory.\n", @@ -247,7 +247,7 @@ { "cell_type": "code", "execution_count": null, - "id": "edda52ac", + "id": "f53038ad", "metadata": { "tags": [] }, @@ -259,7 +259,7 @@ }, { "cell_type": "markdown", - "id": "59b4be29", + "id": "ebd28f0d", "metadata": {}, "source": [ "\n", @@ -275,7 +275,7 @@ { "cell_type": "code", "execution_count": null, - "id": "1e2643cb", + "id": "15228de7", "metadata": { "tags": [] }, @@ -322,7 +322,7 @@ }, { "cell_type": "markdown", - "id": "04091b67", + "id": "268e4618", "metadata": {}, "source": [ "This will create a LoRA adapter - a file named `megatron_gpt_peft_lora_tuning.nemo` in `./results/Meta-llama3.1-8B-Instruct-titlegen/checkpoints/`. We'll use this later.\n", @@ -339,7 +339,7 @@ }, { "cell_type": "markdown", - "id": "0ba7f7b3", + "id": "8fed5465", "metadata": { "tags": [] }, @@ -352,7 +352,7 @@ { "cell_type": "code", "execution_count": null, - "id": "3d81b187", + "id": "18a5adfc", "metadata": { "tags": [] }, @@ -364,7 +364,7 @@ }, { "cell_type": "markdown", - "id": "325e25ed", + "id": "50b1dc9b", "metadata": {}, "source": [ "In the code snippet below, the following configurations are worth noting - \n", @@ -377,7 +377,7 @@ { "cell_type": "code", "execution_count": null, - "id": "3fb0d823", + "id": "0bd9d602", "metadata": { "tags": [] }, @@ -390,7 +390,7 @@ }, { "cell_type": "markdown", - "id": "f19806d3", + "id": "d029b0b5", "metadata": {}, "source": [ "If you have made any changes in model or experiment paths, please ensure they are configured correctly below." @@ -399,7 +399,7 @@ { "cell_type": "code", "execution_count": null, - "id": "a13ab65b", + "id": "630c0305", "metadata": { "tags": [] }, @@ -446,7 +446,7 @@ }, { "cell_type": "markdown", - "id": "c82346da", + "id": "513cd732", "metadata": {}, "source": [ "### Step 4: Check the model accuracy\n", @@ -458,7 +458,7 @@ { "cell_type": "code", "execution_count": null, - "id": "29482d87", + "id": "04cb4ae7", "metadata": { "tags": [] }, @@ -470,7 +470,7 @@ }, { "cell_type": "markdown", - "id": "38ad338b", + "id": "4e88f3c9", "metadata": { "tags": [] }, @@ -483,7 +483,7 @@ { "cell_type": "code", "execution_count": null, - "id": "d79c2394", + "id": "c4aa9631", "metadata": { "tags": [] }, @@ -517,7 +517,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b25a071d", + "id": "41c661d5", "metadata": { "tags": [] }, @@ -528,7 +528,7 @@ }, { "cell_type": "markdown", - "id": "4f804042", + "id": "f48667b1", "metadata": {}, "source": [ "For the Llama-3.1-8B-Instruct model, you should see accuracy comparable to the below:\n", From 448d37c73b09fbfe2b4cbdba1c6176bf1b15ce98 Mon Sep 17 00:00:00 2001 From: Shashank Verma Date: Tue, 23 Jul 2024 18:24:32 +0000 Subject: [PATCH 6/6] Minor update to README --- tutorials/llm/llama-3/README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tutorials/llm/llama-3/README.rst b/tutorials/llm/llama-3/README.rst index 2407cf1e9077..be232edd1df0 100755 --- a/tutorials/llm/llama-3/README.rst +++ b/tutorials/llm/llama-3/README.rst @@ -2,7 +2,7 @@ Getting Started with Llama 3 and Llama 3.1 ========================================== -This repository contains jupyter notebook tutorials for Llama-3 and Llama-3.1 models by Meta. +This repository contains jupyter notebook tutorials using NeMo Framework for Llama-3 and Llama-3.1 models by Meta. .. list-table:: :widths: 100 25 100