CoolFace
Apppublic

PEFT/quantization

sourceHugging Faceupdated 3y agoView on Hugging Face
6likes
Finetune_opt_bnb_peft.ipynb9275 linesDownload Raw Back to root
1{2 "cells": [3  {4   "cell_type": "markdown",5   "metadata": {6    "id": "WE5GJ6s7y0Xo"7   },8   "source": [9    "## Fine-tune large models using ๐Ÿค— `peft` adapters, `transformers` & `bitsandbytes`\n",10    "\n",11    "In this tutorial we will cover how we can fine-tune large language models using the very recent `peft` library and `bitsandbytes` for loading large models in 8-bit.\n",12    "The fine-tuning method will rely on a recent method called \"Low Rank Adapters\" (LoRA), instead of fine-tuning the entire model you just have to fine-tune these adapters and load them properly inside the model. \n",13    "After fine-tuning the model you can also share your adapters on the ๐Ÿค— Hub and load them very easily. Let's get started!"14   ]15  },16  {17   "cell_type": "markdown",18   "metadata": {19    "id": "TfBzP8gWzkpv"20   },21   "source": [22    "### Install requirements\n",23    "\n",24    "First, run the cells below to install the requirements:"25   ]26  },27  {28   "cell_type": "code",29   "execution_count": 1,30   "metadata": {31    "colab": {32     "base_uri": "https://localhost:8080/"33    },34    "id": "otj46qRbtpnd",35    "outputId": "2aa109f6-3f4e-4887-a16e-336f51e7cc9a"36   },37   "outputs": [38    {39     "name": "stdout",40     "output_type": "stream",41     "text": [42      "\u001b[2K     \u001b[90mโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”\u001b[0m \u001b[32m76.3/76.3 MB\u001b[0m \u001b[31m10.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",43      "\u001b[2K     \u001b[90mโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”\u001b[0m \u001b[32m462.8/462.8 KB\u001b[0m \u001b[31m25.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",44      "\u001b[2K     \u001b[90mโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”\u001b[0m \u001b[32m199.7/199.7 KB\u001b[0m \u001b[31m25.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",45      "\u001b[2K     \u001b[90mโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”\u001b[0m \u001b[32m190.3/190.3 KB\u001b[0m \u001b[31m23.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",46      "\u001b[2K     \u001b[90mโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”\u001b[0m \u001b[32m213.0/213.0 KB\u001b[0m \u001b[31m26.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",47      "\u001b[2K     \u001b[90mโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”\u001b[0m \u001b[32m132.0/132.0 KB\u001b[0m \u001b[31m18.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",48      "\u001b[2K     \u001b[90mโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”\u001b[0m \u001b[32m140.6/140.6 KB\u001b[0m \u001b[31m20.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",49      "\u001b[?25h  Installing build dependencies ... \u001b[?25l\u001b[?25hdone\n",50      "  Getting requirements to build wheel ... \u001b[?25l\u001b[?25hdone\n",51      "  Preparing metadata (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n",52      "  Installing build dependencies ... \u001b[?25l\u001b[?25hdone\n",53      "  Getting requirements to build wheel ... \u001b[?25l\u001b[?25hdone\n",54      "  Preparing metadata (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n",55      "\u001b[2K     \u001b[90mโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”\u001b[0m \u001b[32m7.6/7.6 MB\u001b[0m \u001b[31m72.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",56      "\u001b[?25h  Building wheel for transformers (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n",57      "  Building wheel for peft (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n"58     ]59    }60   ],61   "source": [62    "!pip install -q bitsandbytes datasets accelerate\n",63    "!pip install -q git+https://github.com/huggingface/transformers.git@main git+https://github.com/huggingface/peft.git"64   ]65  },66  {67   "cell_type": "markdown",68   "metadata": {69    "id": "FOtwYRI3zzXI"70   },71   "source": [72    "### Model loading\n",73    "\n",74    "Here let's load the `opt-6.7b` model, its weights in half-precision (float16) are about 13GB on the Hub! If we load them in 8-bit we would require around 7GB of memory instead."75   ]76  },77  {78   "cell_type": "code",79   "execution_count": 4,80   "metadata": {81    "colab": {82     "base_uri": "https://localhost:8080/",83     "height": 408,84     "referenced_widgets": [85      "d4de260ffd8a440eb87eb900fc1bb1d3",86      "8602b545a9f8474dbb3cc178ac0b8e60",87      "b46919912ee54f6f9f2ce9080be1c61a",88      "50374e3ab81c4626a182e61fc03b94ce",89      "2144bc2897dc40b29f060e30ace12275",90      "949ca70002ca4472bbc21fea4d7ac745",91      "49943c9dadca43a584b3f354ba45280c",92      "6123e53fb26b41f0af9a3a3348ae1afd",93      "285ef943d540400ab827c462945a259c",94      "95727290446244ccb9626f4594949675",95      "61b54aa6c9e94ee1bc45c15a9e3f7917",96      "fc2d5ffe254d425b939252ec46ec27cc",97      "f65af2e868244edeb0cc9402534874a8",98      "e466054f08004bbcabb24e400cb3c7fc",99      "6ea40800dfd849e3b106bae71fc53ae3",100      "722a01f42b7d4c38836a4546ecb38108",101      "1bd5179cdb474b65aa06eca3520ad37b",102      "04d367124a3b419ab1fa1dfd4f9004c3",103      "4ea667f48b9f4e1f9da7c5a0d3025b85",104      "9b96c63630654773acd38b8b88371f28",105      "cb69ae47666a4603a07a8778e2ae7d6e",106      "8f5e9f2d11d54fd2a08dcbff9f6da05c",107      "c6f712eadc4d49019b2bd355968cc155",108      "5fd979c05fd34311af877ce1a988ead8",109      "179165ff4c0e4586aaf3a40b8502f428",110      "cad1d8326e474a4f9ee13db9005121dd",111      "b049ac0b3d2e44ba9b1fc1cb2dd3de62",112      "921c268ecd724b6a8869dae8f81d558a",113      "4cf85a85c0764f15b5134c81b360e910",114      "5936d9eb59e147eea6482006decfe0ee",115      "fad61c68edc84c8197afeafded84280d",116      "451309d8b3ca4cd9b6f538640477039e",117      "c7621e14aa16421d9758321e433b92e4",118      "5aa74b9b30614172b07f88873cf89471",119      "cf39fb025e3d4635a5695135a56d9f64",120      "deaf9732f33446a3be015d2ec16aba76",121      "bdfd856dd8ee4ae09205ad9d1b9cc806",122      "7a49f7a55b054b6d829f290a1a426a7a",123      "5b695486a0ac442b8b6a8ef2ebf4e57a",124      "03be7cb91cba4afab795aab7aa242ee1",125      "8f7890f54d514f80b1eb17905cf0f964",126      "ae660d51267544a89f0ad199cc12b6fa",127      "d5bb8d7359274c8e9cc79df563175137",128      "98d5a80ec50c46c18f9ee991e2982115",129      "e73e5388182040a8937ccf1748171a87",130      "f797f7b8b13f4b3cb871522d34498631",131      "41f47c864e094cacb1c550d37ddfe80e",132      "104d982b444947fe8e4fbb2c2f082616",133      "2cf8581583c641fb95d1e16aff7d4cd1",134      "11808e9097424dd0b22a5af6c77813f3",135      "dc08d237860e4788a8ceeff4518c2612",136      "7bbf2c40a4ae46fe9e5885db08975263",137      "f00cbc4a89f5492787ec489da65ff70b",138      "8a7cd2194113493a841b00d034b5f1ba",139      "e9673363e85448d494ac9ac5d7ba0efb",140      "a994beafbf3f4c20880a7bbe3898db36",141      "7769c261781f4f5483c7e9d58c1a5573",142      "4a713a8fe16f4e81aa841c69711fa136",143      "08d036904ecf47ed88e129ba6e2b285c",144      "9f1182fdddab43b59ee98bc701965a17",145      "c2302f535b114ad780bfa440445c2e28",146      "8fe032f285ba4858b8efd68119c217b0",147      "4ca695fca3d140c6ab4e1e1d34df807b",148      "b77ceaf55dc04810963cdd01126478f6",149      "0ccdefcb25e14d229b2634ffae4a6d3d",150      "11d6b952503c4824b36b66e228f87599",151      "1e9391f6c89c4d08859ef3413edb19be",152      "039bbda2402f469eb21ba7ec7ea589a6",153      "5da6eef8fb0048219159f38a68727b64",154      "c006e62ee6d04831b2b89273ef04a8ac",155      "af0634c2539a43989902daef47776901",156      "62fea00ef0364af287e6097b964d00c4",157      "9e5ef73f8b244845a6b9002fa5c35d15",158      "5cb09c84e1e144e0a92580fb5e1ce2fe",159      "0f561c1660744251a8f710b69d434c87",160      "9e5f870ef80242f5af09fad70f84ea62",161      "6f173ca73dd545deb22b8cd0470d925f",162      "4e6d5943bc374b388b93ed115e44b6a5",163      "cbe2a6ea41834e95a27d6f02c3c0eeec",164      "7beb5f4efefc4593abac253df74d1405",165      "370cefbaeebf41f582b7507ad493055f",166      "e3df9dda16e244aa9b61d54f9e21ef40",167      "23d2ad64a17041b7a006dad1e041e0a1",168      "c1fd6a1234274a44b838a09f3f5380c6",169      "81bb51d088374394becd9a45ec3b17d4",170      "9e762779e5434bb7afcc295b61c2f4e4",171      "f539b7a4665449de9eac209a20629969",172      "32d528db79ad4f6f836ab2e0df5ac426",173      "1ca7684b79c5438fa06b047bd2b3283f",174      "a07688185bff4c4b8cbed3af3b4cf802",175      "0272f1d9f93f4dd788363a8409cdfd69",176      "27b41d23d2c64127ba3ae8464958f855",177      "2b54032c0d8e4a2897aed1ac1c79af14",178      "ed8fa1048e814f2fa3666899fc42e55a",179      "97daf559100c44ac983562fea93c5fac",180      "72e511b775604d899ff5b3fa2ebe9fc4",181      "da946f86590447d2ab98b9da468fa66b",182      "54fe79d5c7254117a2209927a7248dd4",183      "1d122e4eaad54e06961288484f31e18b",184      "d46b5725c35142a89617e46c0e8d3679",185      "c5493c23fd5542738ffd1ff5f09a6a67",186      "a1a80d3460984c2496ada5a634875934",187      "598c5584ffba4f26815c4e87bb1595c4",188      "fe93f25323604447be0bb1d24a0c2c59",189      "00c2e2d3ee8b45818ba84da12c6b11e2",190      "6ccea64c2e614a9fbdcc2f716cecaea0",191      "63fc9a9eebca4f2db2ed8a385fc5e204",192      "9a4860dfeac944db85e6e532599bc1cb",193      "3b946e1bbab24629b98307275fbe7cbb",194      "d9d36f8ff5f747bf90fbc8a7d35a6664"195     ]196    },197    "id": "cg3fiQOvmI3Q",198    "outputId": "135a7675-6a4d-4786-b5dc-34cb867f40c7"199   },200   "outputs": [201    {202     "data": {203      "application/vnd.jupyter.widget-view+json": {204       "model_id": "bee2f575b3e64c30b2f3afa137802406",205       "version_major": 2,206       "version_minor": 0207      },208      "text/plain": [209       "Loading checkpoint shards:   0%|          | 0/2 [00:00<?, ?it/s]"210      ]211     },212     "metadata": {},213     "output_type": "display_data"214    }215   ],216   "source": [217    "import os\n",218    "\n",219    "import torch\n",220    "import torch.nn as nn\n",221    "import bitsandbytes as bnb\n",222    "from transformers import AutoTokenizer, AutoConfig, AutoModelForCausalLM\n",223    "\n",224    "model = AutoModelForCausalLM.from_pretrained(\"facebook/opt-6.7b\", load_in_8bit=True)\n",225    "\n",226    "tokenizer = AutoTokenizer.from_pretrained(\"facebook/opt-6.7b\")"227   ]228  },229  {230   "attachments": {},231   "cell_type": "markdown",232   "metadata": {233    "id": "9fTSZntA1iUG"234   },235   "source": [236    "### Prepare model for training\n",237    "\n",238    "Some pre-processing needs to be done before training such an int8 model using `peft`, therefore let's import an utiliy function `prepare_model_for_int8_training` that will: \n",239    "- Casts all the non `int8` modules to full precision (`fp32`) for stability\n",240    "- Add a `forward_hook` to the input embedding layer to enable gradient computation of the input hidden states\n",241    "- Enable gradient checkpointing for more memory-efficient training"242   ]243  },244  {245   "cell_type": "code",246   "execution_count": 5,247   "metadata": {248    "id": "T-gy-LxM0yAi"249   },250   "outputs": [],251   "source": [252    "from peft import prepare_model_for_int8_training\n",253    "\n",254    "model = prepare_model_for_int8_training(model)"255   ]256  },257  {258   "cell_type": "markdown",259   "metadata": {260    "id": "KwOTr7B3NlM3"261   },262   "source": [263    "### Apply LoRA\n",264    "\n",265    "Here comes the magic with `peft`! Let's load a `PeftModel` and specify that we are going to use low-rank adapters (LoRA) using `get_peft_model` utility function from `peft`."266   ]267  },268  {269   "cell_type": "code",270   "execution_count": 6,271   "metadata": {272    "id": "4W1j6lxaNnxC"273   },274   "outputs": [],275   "source": [276    "def print_trainable_parameters(model):\n",277    "    \"\"\"\n",278    "    Prints the number of trainable parameters in the model.\n",279    "    \"\"\"\n",280    "    trainable_params = 0\n",281    "    all_param = 0\n",282    "    for _, param in model.named_parameters():\n",283    "        all_param += param.numel()\n",284    "        if param.requires_grad:\n",285    "            trainable_params += param.numel()\n",286    "    print(\n",287    "        f\"trainable params: {trainable_params} || all params: {all_param} || trainable%: {100 * trainable_params / all_param}\"\n",288    "    )"289   ]290  },291  {292   "cell_type": "code",293   "execution_count": 7,294   "metadata": {295    "colab": {296     "base_uri": "https://localhost:8080/"297    },298    "id": "4iwHGzKBN6wk",299    "outputId": "039f7175-14c9-42b4-a078-80d27aab161c"300   },301   "outputs": [302    {303     "name": "stdout",304     "output_type": "stream",305     "text": [306      "trainable params: 8388608 || all params: 6666862592 || trainable%: 0.12582542214183376\n"307     ]308    }309   ],310   "source": [311    "from peft import LoraConfig, get_peft_model\n",312    "\n",313    "config = LoraConfig(\n",314    "    r=16, lora_alpha=32, target_modules=[\"q_proj\", \"v_proj\"], lora_dropout=0.05, bias=\"none\", task_type=\"CAUSAL_LM\"\n",315    ")\n",316    "\n",317    "model = get_peft_model(model, config)\n",318    "print_trainable_parameters(model)"319   ]320  },321  {322   "cell_type": "markdown",323   "metadata": {324    "id": "QdjWif4CVXR6"325   },326   "source": [327    "### Training"328   ]329  },330  {331   "cell_type": "markdown",332   "metadata": {333    "id": "b_RPiO7f3ClX"334   },335   "source": []336  },337  {338   "cell_type": "code",339   "execution_count": 9,340   "metadata": {341    "colab": {342     "base_uri": "https://localhost:8080/",343     "height": 1000,344     "referenced_widgets": [345      "f357166c6e5f43f39d0a287ca6d6f60e",346      "805a10c2fd794ff692e8ebeefd65f2eb",347      "3730f843399d4ba48e98383563283e94",348      "f855aced7ca2485ea720604359deaa18",349      "6d728366de1a4bacb1ba1939c5e0146f",350      "c57c7cf35bf04f3bb3b2b0d8ce7feb31",351      "2113970533604749a808fa1b98269b0e",352      "fc15c6d6eb3049a3b8542b332dd8a3f2",353      "b6c06e70d7ed48f1840086489300cb3d",354      "49504531deaf4449938bea751d1ec4e7",355      "7dfe540a75864cf390b3bed20ab1dcd9",356      "c81d20fe47ce4b7594427830d71504d7",357      "a14542c8431c48b48a614cfd0d41f03c",358      "856f3dcf949741acb394f252186a1d7e",359      "865bae11c917492a9a1ef7286a493bd5",360      "2561b7a7c1694f229d30d2b1eeb14b2f",361      "96bd12acd63a4232b2f4ac159cc4a768",362      "746c8a2fd0ee458bad85cc75ac333e43",363      "ce6de6f9ddde4a6d8094a2b96eac3a4e",364      "62ceac028f144120a24e75afbaccf306",365      "2f953abe023240558580dcff3f0c033e",366      "c2b42681b8bb47e3895d6105240c5812",367      "ae58b3f129644729aa2f890b1712fc6e",368      "74a968ce2dc34189b7dfbb39276f5138",369      "d4f5b19f75e246df9c688f625792e8ba",370      "5cd7a5bbab5f4f2daa53d984568ea630",371      "7288f4fd6bb44089baef9f20f50e0e04",372      "57ff7d85e56f49239d1eeedd43b88d22",373      "4d5cbca8d5e647669faeea32de761dcd",374      "a6ce291698ad460394433a49000c1d25",375      "aa54b2a9b43848b0902d135beffb806b",376      "8cd2073cd3304b2ca4b997127aa88bd1",377      "f51c7f18977447e2bca36e1da3e1be4f",378      "b8c29c1accf4479da91d393dd59ca82b",379      "5fa269b8704e4509bf8cd918b657ae23",380      "ac91fc78fb04436b80a0a2cbe4380c2b",381      "5db87509bf56435eafaea4cf1153a5d3",382      "840981ef419a48918cf000f89807890e",383      "2c27ab87b28946e39681a29cc6f14ea9",384      "c4ab408eb1344da0bb15a9a6760818e4",385      "d54e8d69575f49eb977da64abc5ceb0c",386      "548299d96190406391cab49ad29cc5d6",387      "c41a9d785e884ab0a58117d17ac7d228",388      "256c56849e8545018514fd52f1247501",389      "041944011c204558a4315c27ec5dabce",390      "1247ee7aeac5406e93e22313d54ef54a",391      "ed2736d862a94d8f9db9ba6037016071",392      "ddc333530c13446a91cf332846bfa22f",393      "3d2325879cfa48048e81c44e2c2444d5",394      "7573358a50bd446486b4c5528a298fae",395      "663c338f84c94b63bc05b0fb6835d99f",396      "3185bd8ecbde4f26b8ed0f92cf79e14f",397      "ddc36fdbdd634dc489f658bead61e7ee",398      "d7e33c29d410414eb452d121edd9920e",399      "d3511ce1754b41969e5c36a5b33ac466",400      "9225dd50bcea435289fa2eba64087076",401      "a23144916f02459b966b9830f0a1d64c",402      "c9b718882fec4254bce1f33fa9373921",403      "f27905d0073e493cb9dcd174c0f15e35",404      "0f634721a70d4e749cb616e55ab747b3",405      "e1f62cbd805d4b8aa9aba7e345c21c82",406      "893d8cb7857147ba82ac86d140f69a5c",407      "4884bf82f5814e049c47cf6d496aab08",408      "432fc8277ebc492f91d6b46ed073ccb4",409      "c423a3cc0b504828b11077c77268ed92",410      "668dd47eec9942bcad0af209772cf8e6",411      "a618f430e06645eb9c95bf16bb6ea59a",412      "bba20d9bf1974a7f8d1ebcb9f5c4cd49",413      "5cec06ccf9074e019ea1f7daf17a0319",414      "faf24b3ed994422f8dd806ae0cc30531",415      "79f7929f423d493caf86b548e91e8a42",416      "23cb4d44c4534bae80357c8a9f6b86ba",417      "4fa82dbe7d3a4b3996b1fa1cf9c23498",418      "6eee224b244a4cafb3fc0f3b16eb0d03",419      "73344836205f4569a4113c24985bd5b1",420      "86dff0987bf040da99c8f2846da26d86",421      "63f8ad255d2147128bdc26f47fdf2528"422     ]423    },424    "id": "AQ_HCYruWIHU",425    "outputId": "e9baadaf-e202-413d-87f0-74c730d78408"426   },427   "outputs": [428    {429     "data": {430      "application/vnd.jupyter.widget-view+json": {431       "model_id": "f357166c6e5f43f39d0a287ca6d6f60e",432       "version_major": 2,433       "version_minor": 0434      },435      "text/plain": [436       "Downloading readme:   0%|          | 0.00/5.55k [00:00<?, ?B/s]"437      ]438     },439     "metadata": {},440     "output_type": "display_data"441    },442    {443     "name": "stderr",444     "output_type": "stream",445     "text": [446      "WARNING:datasets.builder:Using custom data configuration Abirate--english_quotes-6e72855d06356857\n"447     ]448    },449    {450     "name": "stdout",451     "output_type": "stream",452     "text": [453      "Downloading and preparing dataset json/Abirate--english_quotes to /root/.cache/huggingface/datasets/Abirate___json/Abirate--english_quotes-6e72855d06356857/0.0.0/0f7e3662623656454fcd2b650f34e886a7db4b9104504885bd462096cc7a9f51...\n"454     ]455    },456    {457     "data": {458      "application/vnd.jupyter.widget-view+json": {459       "model_id": "c81d20fe47ce4b7594427830d71504d7",460       "version_major": 2,461       "version_minor": 0462      },463      "text/plain": [464       "Downloading data files:   0%|          | 0/1 [00:00<?, ?it/s]"465      ]466     },467     "metadata": {},468     "output_type": "display_data"469    },470    {471     "data": {472      "application/vnd.jupyter.widget-view+json": {473       "model_id": "ae58b3f129644729aa2f890b1712fc6e",474       "version_major": 2,475       "version_minor": 0476      },477      "text/plain": [478       "Downloading data:   0%|          | 0.00/647k [00:00<?, ?B/s]"479      ]480     },481     "metadata": {},482     "output_type": "display_data"483    },484    {485     "data": {486      "application/vnd.jupyter.widget-view+json": {487       "model_id": "b8c29c1accf4479da91d393dd59ca82b",488       "version_major": 2,489       "version_minor": 0490      },491      "text/plain": [492       "Extracting data files:   0%|          | 0/1 [00:00<?, ?it/s]"493      ]494     },495     "metadata": {},496     "output_type": "display_data"497    },498    {499     "data": {500      "application/vnd.jupyter.widget-view+json": {501       "model_id": "041944011c204558a4315c27ec5dabce",502       "version_major": 2,503       "version_minor": 0504      },505      "text/plain": [506       "Generating train split: 0 examples [00:00, ? examples/s]"507      ]508     },509     "metadata": {},510     "output_type": "display_data"511    },512    {513     "name": "stdout",514     "output_type": "stream",515     "text": [516      "Dataset json downloaded and prepared to /root/.cache/huggingface/datasets/Abirate___json/Abirate--english_quotes-6e72855d06356857/0.0.0/0f7e3662623656454fcd2b650f34e886a7db4b9104504885bd462096cc7a9f51. Subsequent calls will reuse this data.\n"517     ]518    },519    {520     "data": {521      "application/vnd.jupyter.widget-view+json": {522       "model_id": "9225dd50bcea435289fa2eba64087076",523       "version_major": 2,524       "version_minor": 0525      },526      "text/plain": [527       "  0%|          | 0/1 [00:00<?, ?it/s]"528      ]529     },530     "metadata": {},531     "output_type": "display_data"532    },533    {534     "data": {535      "application/vnd.jupyter.widget-view+json": {536       "model_id": "a618f430e06645eb9c95bf16bb6ea59a",537       "version_major": 2,538       "version_minor": 0539      },540      "text/plain": [541       "  0%|          | 0/3 [00:00<?, ?ba/s]"542      ]543     },544     "metadata": {},545     "output_type": "display_data"546    },547    {548     "name": "stderr",549     "output_type": "stream",550     "text": [551      "The model is loaded in 8-bit precision. To train this model you need to add additional modules inside the model such as adapters using `peft` library and freeze the model weights. Please check  the examples in https://github.com/huggingface/peft for more details.\n",552      "max_steps is given, it will override any value given in num_train_epochs\n",553      "Using cuda_amp half precision backend\n",554      "The following columns in the training set don't have a corresponding argument in `PeftModelForCausalLM.forward` and have been ignored: author, tags, quote. If author, tags, quote are not expected by `PeftModelForCausalLM.forward`,  you can safely ignore this message.\n",555      "/usr/local/lib/python3.8/dist-packages/transformers/optimization.py:306: FutureWarning: This implementation of AdamW is deprecated and will be removed in a future version. Use the PyTorch implementation torch.optim.AdamW instead, or set `no_deprecation_warning=True` to disable this warning\n",556      "  warnings.warn(\n",557      "***** Running training *****\n",558      "  Num examples = 2508\n",559      "  Num Epochs = 2\n",560      "  Instantaneous batch size per device = 4\n",561      "  Total train batch size (w. parallel, distributed & accumulation) = 16\n",562      "  Gradient Accumulation steps = 4\n",563      "  Total optimization steps = 200\n",564      "  Number of trainable parameters = 8388608\n",565      "/usr/local/lib/python3.8/dist-packages/bitsandbytes/autograd/_functions.py:298: UserWarning: MatMul8bitLt: inputs will be cast from torch.float32 to float16 during quantization\n",566      "  warnings.warn(f\"MatMul8bitLt: inputs will be cast from {A.dtype} to float16 during quantization\")\n"567     ]568    },569    {570     "data": {571      "text/html": [572       "\n",573       "    <div>\n",574       "      \n",575       "      <progress value='153' max='200' style='width:300px; height:20px; vertical-align: middle;'></progress>\n",576       "      [153/200 26:04 < 08:06, 0.10 it/s, Epoch 0.97/2]\n",577       "    </div>\n",578       "    <table border=\"1\" class=\"dataframe\">\n",579       "  <thead>\n",580       " <tr style=\"text-align: left;\">\n",581       "      <th>Step</th>\n",582       "      <th>Training Loss</th>\n",583       "    </tr>\n",584       "  </thead>\n",585       "  <tbody>\n",586       "    <tr>\n",587       "      <td>1</td>\n",588       "      <td>2.364400</td>\n",589       "    </tr>\n",590       "    <tr>\n",591       "      <td>2</td>\n",592       "      <td>2.200400</td>\n",593       "    </tr>\n",594       "    <tr>\n",595       "      <td>3</td>\n",596       "      <td>2.302300</td>\n",597       "    </tr>\n",598       "    <tr>\n",599       "      <td>4</td>\n",600       "      <td>2.184700</td>\n",601       "    </tr>\n",602       "    <tr>\n",603       "      <td>5</td>\n",604       "      <td>1.878700</td>\n",605       "    </tr>\n",606       "    <tr>\n",607       "      <td>6</td>\n",608       "      <td>2.307200</td>\n",609       "    </tr>\n",610       "    <tr>\n",611       "      <td>7</td>\n",612       "      <td>2.193800</td>\n",613       "    </tr>\n",614       "    <tr>\n",615       "      <td>8</td>\n",616       "      <td>2.446200</td>\n",617       "    </tr>\n",618       "    <tr>\n",619       "      <td>9</td>\n",620       "      <td>2.458900</td>\n",621       "    </tr>\n",622       "    <tr>\n",623       "      <td>10</td>\n",624       "      <td>2.020000</td>\n",625       "    </tr>\n",626       "    <tr>\n",627       "      <td>11</td>\n",628       "      <td>1.941200</td>\n",629       "    </tr>\n",630       "    <tr>\n",631       "      <td>12</td>\n",632       "      <td>1.931000</td>\n",633       "    </tr>\n",634       "    <tr>\n",635       "      <td>13</td>\n",636       "      <td>2.055900</td>\n",637       "    </tr>\n",638       "    <tr>\n",639       "      <td>14</td>\n",640       "      <td>1.975100</td>\n",641       "    </tr>\n",642       "    <tr>\n",643       "      <td>15</td>\n",644       "      <td>2.015100</td>\n",645       "    </tr>\n",646       "    <tr>\n",647       "      <td>16</td>\n",648       "      <td>2.095600</td>\n",649       "    </tr>\n",650       "    <tr>\n",651       "      <td>17</td>\n",652       "      <td>1.768300</td>\n",653       "    </tr>\n",654       "    <tr>\n",655       "      <td>18</td>\n",656       "      <td>2.155700</td>\n",657       "    </tr>\n",658       "    <tr>\n",659       "      <td>19</td>\n",660       "      <td>2.402300</td>\n",661       "    </tr>\n",662       "    <tr>\n",663       "      <td>20</td>\n",664       "      <td>2.124600</td>\n",665       "    </tr>\n",666       "    <tr>\n",667       "      <td>21</td>\n",668       "      <td>2.314900</td>\n",669       "    </tr>\n",670       "    <tr>\n",671       "      <td>22</td>\n",672       "      <td>1.908500</td>\n",673       "    </tr>\n",674       "    <tr>\n",675       "      <td>23</td>\n",676       "      <td>2.078800</td>\n",677       "    </tr>\n",678       "    <tr>\n",679       "      <td>24</td>\n",680       "      <td>1.941900</td>\n",681       "    </tr>\n",682       "    <tr>\n",683       "      <td>25</td>\n",684       "      <td>1.879800</td>\n",685       "    </tr>\n",686       "    <tr>\n",687       "      <td>26</td>\n",688       "      <td>1.927500</td>\n",689       "    </tr>\n",690       "    <tr>\n",691       "      <td>27</td>\n",692       "      <td>1.371400</td>\n",693       "    </tr>\n",694       "    <tr>\n",695       "      <td>28</td>\n",696       "      <td>1.977600</td>\n",697       "    </tr>\n",698       "    <tr>\n",699       "      <td>29</td>\n",700       "      <td>2.055000</td>\n",701       "    </tr>\n",702       "    <tr>\n",703       "      <td>30</td>\n",704       "      <td>1.915800</td>\n",705       "    </tr>\n",706       "    <tr>\n",707       "      <td>31</td>\n",708       "      <td>1.958100</td>\n",709       "    </tr>\n",710       "    <tr>\n",711       "      <td>32</td>\n",712       "      <td>2.195900</td>\n",713       "    </tr>\n",714       "    <tr>\n",715       "      <td>33</td>\n",716       "      <td>2.001000</td>\n",717       "    </tr>\n",718       "    <tr>\n",719       "      <td>34</td>\n",720       "      <td>2.025000</td>\n",721       "    </tr>\n",722       "    <tr>\n",723       "      <td>35</td>\n",724       "      <td>1.576900</td>\n",725       "    </tr>\n",726       "    <tr>\n",727       "      <td>36</td>\n",728       "      <td>1.879800</td>\n",729       "    </tr>\n",730       "    <tr>\n",731       "      <td>37</td>\n",732       "      <td>1.821600</td>\n",733       "    </tr>\n",734       "    <tr>\n",735       "      <td>38</td>\n",736       "      <td>1.727800</td>\n",737       "    </tr>\n",738       "    <tr>\n",739       "      <td>39</td>\n",740       "      <td>1.995700</td>\n",741       "    </tr>\n",742       "    <tr>\n",743       "      <td>40</td>\n",744       "      <td>1.698600</td>\n",745       "    </tr>\n",746       "    <tr>\n",747       "      <td>41</td>\n",748       "      <td>2.129300</td>\n",749       "    </tr>\n",750       "    <tr>\n",751       "      <td>42</td>\n",752       "      <td>2.025800</td>\n",753       "    </tr>\n",754       "    <tr>\n",755       "      <td>43</td>\n",756       "      <td>1.696500</td>\n",757       "    </tr>\n",758       "    <tr>\n",759       "      <td>44</td>\n",760       "      <td>1.984700</td>\n",761       "    </tr>\n",762       "    <tr>\n",763       "      <td>45</td>\n",764       "      <td>2.051100</td>\n",765       "    </tr>\n",766       "    <tr>\n",767       "      <td>46</td>\n",768       "      <td>2.054400</td>\n",769       "    </tr>\n",770       "    <tr>\n",771       "      <td>47</td>\n",772       "      <td>1.765600</td>\n",773       "    </tr>\n",774       "    <tr>\n",775       "      <td>48</td>\n",776       "      <td>2.063100</td>\n",777       "    </tr>\n",778       "    <tr>\n",779       "      <td>49</td>\n",780       "      <td>1.746900</td>\n",781       "    </tr>\n",782       "    <tr>\n",783       "      <td>50</td>\n",784       "      <td>1.873000</td>\n",785       "    </tr>\n",786       "    <tr>\n",787       "      <td>51</td>\n",788       "      <td>2.391300</td>\n",789       "    </tr>\n",790       "    <tr>\n",791       "      <td>52</td>\n",792       "      <td>2.494100</td>\n",793       "    </tr>\n",794       "    <tr>\n",795       "      <td>53</td>\n",796       "      <td>2.072300</td>\n",797       "    </tr>\n",798       "    <tr>\n",799       "      <td>54</td>\n",800       "      <td>1.808000</td>\n",801       "    </tr>\n",802       "    <tr>\n",803       "      <td>55</td>\n",804       "      <td>1.911900</td>\n",805       "    </tr>\n",806       "    <tr>\n",807       "      <td>56</td>\n",808       "      <td>2.168100</td>\n",809       "    </tr>\n",810       "    <tr>\n",811       "      <td>57</td>\n",812       "      <td>2.166100</td>\n",813       "    </tr>\n",814       "    <tr>\n",815       "      <td>58</td>\n",816       "      <td>1.921500</td>\n",817       "    </tr>\n",818       "    <tr>\n",819       "      <td>59</td>\n",820       "      <td>1.856000</td>\n",821       "    </tr>\n",822       "    <tr>\n",823       "      <td>60</td>\n",824       "      <td>1.652800</td>\n",825       "    </tr>\n",826       "    <tr>\n",827       "      <td>61</td>\n",828       "      <td>1.605000</td>\n",829       "    </tr>\n",830       "    <tr>\n",831       "      <td>62</td>\n",832       "      <td>2.032500</td>\n",833       "    </tr>\n",834       "    <tr>\n",835       "      <td>63</td>\n",836       "      <td>1.822100</td>\n",837       "    </tr>\n",838       "    <tr>\n",839       "      <td>64</td>\n",840       "      <td>1.623600</td>\n",841       "    </tr>\n",842       "    <tr>\n",843       "      <td>65</td>\n",844       "      <td>1.923200</td>\n",845       "    </tr>\n",846       "    <tr>\n",847       "      <td>66</td>\n",848       "      <td>2.053200</td>\n",849       "    </tr>\n",850       "    <tr>\n",851       "      <td>67</td>\n",852       "      <td>2.114300</td>\n",853       "    </tr>\n",854       "    <tr>\n",855       "      <td>68</td>\n",856       "      <td>1.807700</td>\n",857       "    </tr>\n",858       "    <tr>\n",859       "      <td>69</td>\n",860       "      <td>1.857800</td>\n",861       "    </tr>\n",862       "    <tr>\n",863       "      <td>70</td>\n",864       "      <td>1.854600</td>\n",865       "    </tr>\n",866       "    <tr>\n",867       "      <td>71</td>\n",868       "      <td>2.023000</td>\n",869       "    </tr>\n",870       "    <tr>\n",871       "      <td>72</td>\n",872       "      <td>1.864900</td>\n",873       "    </tr>\n",874       "    <tr>\n",875       "      <td>73</td>\n",876       "      <td>1.769300</td>\n",877       "    </tr>\n",878       "    <tr>\n",879       "      <td>74</td>\n",880       "      <td>1.837700</td>\n",881       "    </tr>\n",882       "    <tr>\n",883       "      <td>75</td>\n",884       "      <td>1.742200</td>\n",885       "    </tr>\n",886       "    <tr>\n",887       "      <td>76</td>\n",888       "      <td>1.895900</td>\n",889       "    </tr>\n",890       "    <tr>\n",891       "      <td>77</td>\n",892       "      <td>1.922800</td>\n",893       "    </tr>\n",894       "    <tr>\n",895       "      <td>78</td>\n",896       "      <td>2.325300</td>\n",897       "    </tr>\n",898       "    <tr>\n",899       "      <td>79</td>\n",900       "      <td>2.231200</td>\n",901       "    </tr>\n",902       "    <tr>\n",903       "      <td>80</td>\n",904       "      <td>2.309500</td>\n",905       "    </tr>\n",906       "    <tr>\n",907       "      <td>81</td>\n",908       "      <td>1.945700</td>\n",909       "    </tr>\n",910       "    <tr>\n",911       "      <td>82</td>\n",912       "      <td>2.072100</td>\n",913       "    </tr>\n",914       "    <tr>\n",915       "      <td>83</td>\n",916       "      <td>1.917400</td>\n",917       "    </tr>\n",918       "    <tr>\n",919       "      <td>84</td>\n",920       "      <td>2.004600</td>\n",921       "    </tr>\n",922       "    <tr>\n",923       "      <td>85</td>\n",924       "      <td>1.951700</td>\n",925       "    </tr>\n",926       "    <tr>\n",927       "      <td>86</td>\n",928       "      <td>1.450600</td>\n",929       "    </tr>\n",930       "    <tr>\n",931       "      <td>87</td>\n",932       "      <td>1.785600</td>\n",933       "    </tr>\n",934       "    <tr>\n",935       "      <td>88</td>\n",936       "      <td>1.668000</td>\n",937       "    </tr>\n",938       "    <tr>\n",939       "      <td>89</td>\n",940       "      <td>1.903100</td>\n",941       "    </tr>\n",942       "    <tr>\n",943       "      <td>90</td>\n",944       "      <td>1.709800</td>\n",945       "    </tr>\n",946       "    <tr>\n",947       "      <td>91</td>\n",948       "      <td>2.312900</td>\n",949       "    </tr>\n",950       "    <tr>\n",951       "      <td>92</td>\n",952       "      <td>2.092100</td>\n",953       "    </tr>\n",954       "    <tr>\n",955       "      <td>93</td>\n",956       "      <td>2.319600</td>\n",957       "    </tr>\n",958       "    <tr>\n",959       "      <td>94</td>\n",960       "      <td>1.603100</td>\n",961       "    </tr>\n",962       "    <tr>\n",963       "      <td>95</td>\n",964       "      <td>1.740000</td>\n",965       "    </tr>\n",966       "    <tr>\n",967       "      <td>96</td>\n",968       "      <td>1.670500</td>\n",969       "    </tr>\n",970       "    <tr>\n",971       "      <td>97</td>\n",972       "      <td>1.611600</td>\n",973       "    </tr>\n",974       "    <tr>\n",975       "      <td>98</td>\n",976       "      <td>1.728900</td>\n",977       "    </tr>\n",978       "    <tr>\n",979       "      <td>99</td>\n",980       "      <td>2.285200</td>\n",981       "    </tr>\n",982       "    <tr>\n",983       "      <td>100</td>\n",984       "      <td>1.957800</td>\n",985       "    </tr>\n",986       "    <tr>\n",987       "      <td>101</td>\n",988       "      <td>1.676700</td>\n",989       "    </tr>\n",990       "    <tr>\n",991       "      <td>102</td>\n",992       "      <td>1.656300</td>\n",993       "    </tr>\n",994       "    <tr>\n",995       "      <td>103</td>\n",996       "      <td>1.612400</td>\n",997       "    </tr>\n",998       "    <tr>\n",999       "      <td>104</td>\n",1000       "      <td>1.848900</td>\n",1001       "    </tr>\n",1002       "    <tr>\n",1003       "      <td>105</td>\n",1004       "      <td>1.870000</td>\n",1005       "    </tr>\n",1006       "    <tr>\n",1007       "      <td>106</td>\n",1008       "      <td>1.954000</td>\n",1009       "    </tr>\n",1010       "    <tr>\n",1011       "      <td>107</td>\n",1012       "      <td>2.192200</td>\n",1013       "    </tr>\n",1014       "    <tr>\n",1015       "      <td>108</td>\n",1016       "      <td>1.637600</td>\n",1017       "    </tr>\n",1018       "    <tr>\n",1019       "      <td>109</td>\n",1020       "      <td>1.208700</td>\n",1021       "    </tr>\n",1022       "    <tr>\n",1023       "      <td>110</td>\n",1024       "      <td>2.254200</td>\n",1025       "    </tr>\n",1026       "    <tr>\n",1027       "      <td>111</td>\n",1028       "      <td>1.832100</td>\n",1029       "    </tr>\n",1030       "    <tr>\n",1031       "      <td>112</td>\n",1032       "      <td>2.119600</td>\n",1033       "    </tr>\n",1034       "    <tr>\n",1035       "      <td>113</td>\n",1036       "      <td>2.126400</td>\n",1037       "    </tr>\n",1038       "    <tr>\n",1039       "      <td>114</td>\n",1040       "      <td>1.915700</td>\n",1041       "    </tr>\n",1042       "    <tr>\n",1043       "      <td>115</td>\n",1044       "      <td>1.587500</td>\n",1045       "    </tr>\n",1046       "    <tr>\n",1047       "      <td>116</td>\n",1048       "      <td>1.564800</td>\n",1049       "    </tr>\n",1050       "    <tr>\n",1051       "      <td>117</td>\n",1052       "      <td>1.742700</td>\n",1053       "    </tr>\n",1054       "    <tr>\n",1055       "      <td>118</td>\n",1056       "      <td>1.712600</td>\n",1057       "    </tr>\n",1058       "    <tr>\n",1059       "      <td>119</td>\n",1060       "      <td>1.727900</td>\n",1061       "    </tr>\n",1062       "    <tr>\n",1063       "      <td>120</td>\n",1064       "      <td>2.361500</td>\n",1065       "    </tr>\n",1066       "    <tr>\n",1067       "      <td>121</td>\n",1068       "      <td>2.070300</td>\n",1069       "    </tr>\n",1070       "    <tr>\n",1071       "      <td>122</td>\n",1072       "      <td>1.878500</td>\n",1073       "    </tr>\n",1074       "    <tr>\n",1075       "      <td>123</td>\n",1076       "      <td>1.846600</td>\n",1077       "    </tr>\n",1078       "    <tr>\n",1079       "      <td>124</td>\n",1080       "      <td>2.061700</td>\n",1081       "    </tr>\n",1082       "    <tr>\n",1083       "      <td>125</td>\n",1084       "      <td>2.149700</td>\n",1085       "    </tr>\n",1086       "    <tr>\n",1087       "      <td>126</td>\n",1088       "      <td>1.940600</td>\n",1089       "    </tr>\n",1090       "    <tr>\n",1091       "      <td>127</td>\n",1092       "      <td>2.098300</td>\n",1093       "    </tr>\n",1094       "    <tr>\n",1095       "      <td>128</td>\n",1096       "      <td>1.734100</td>\n",1097       "    </tr>\n",1098       "    <tr>\n",1099       "      <td>129</td>\n",1100       "      <td>2.111700</td>\n",1101       "    </tr>\n",1102       "    <tr>\n",1103       "      <td>130</td>\n",1104       "      <td>1.887600</td>\n",1105       "    </tr>\n",1106       "    <tr>\n",1107       "      <td>131</td>\n",1108       "      <td>1.716300</td>\n",1109       "    </tr>\n",1110       "    <tr>\n",1111       "      <td>132</td>\n",1112       "      <td>2.070000</td>\n",1113       "    </tr>\n",1114       "    <tr>\n",1115       "      <td>133</td>\n",1116       "      <td>1.782200</td>\n",1117       "    </tr>\n",1118       "    <tr>\n",1119       "      <td>134</td>\n",1120       "      <td>1.955200</td>\n",1121       "    </tr>\n",1122       "    <tr>\n",1123       "      <td>135</td>\n",1124       "      <td>1.762900</td>\n",1125       "    </tr>\n",1126       "    <tr>\n",1127       "      <td>136</td>\n",1128       "      <td>1.954700</td>\n",1129       "    </tr>\n",1130       "    <tr>\n",1131       "      <td>137</td>\n",1132       "      <td>1.687100</td>\n",1133       "    </tr>\n",1134       "    <tr>\n",1135       "      <td>138</td>\n",1136       "      <td>1.979100</td>\n",1137       "    </tr>\n",1138       "    <tr>\n",1139       "      <td>139</td>\n",1140       "      <td>1.634600</td>\n",1141       "    </tr>\n",1142       "    <tr>\n",1143       "      <td>140</td>\n",1144       "      <td>1.801200</td>\n",1145       "    </tr>\n",1146       "    <tr>\n",1147       "      <td>141</td>\n",1148       "      <td>1.954100</td>\n",1149       "    </tr>\n",1150       "    <tr>\n",1151       "      <td>142</td>\n",1152       "      <td>1.833900</td>\n",1153       "    </tr>\n",1154       "    <tr>\n",1155       "      <td>143</td>\n",1156       "      <td>2.051400</td>\n",1157       "    </tr>\n",1158       "    <tr>\n",1159       "      <td>144</td>\n",1160       "      <td>1.921200</td>\n",1161       "    </tr>\n",1162       "    <tr>\n",1163       "      <td>145</td>\n",1164       "      <td>1.787500</td>\n",1165       "    </tr>\n",1166       "    <tr>\n",1167       "      <td>146</td>\n",1168       "      <td>1.825400</td>\n",1169       "    </tr>\n",1170       "    <tr>\n",1171       "      <td>147</td>\n",1172       "      <td>1.363400</td>\n",1173       "    </tr>\n",1174       "    <tr>\n",1175       "      <td>148</td>\n",1176       "      <td>1.977400</td>\n",1177       "    </tr>\n",1178       "    <tr>\n",1179       "      <td>149</td>\n",1180       "      <td>1.768300</td>\n",1181       "    </tr>\n",1182       "    <tr>\n",1183       "      <td>150</td>\n",1184       "      <td>2.226700</td>\n",1185       "    </tr>\n",1186       "    <tr>\n",1187       "      <td>151</td>\n",1188       "      <td>1.945500</td>\n",1189       "    </tr>\n",1190       "  </tbody>\n",1191       "</table><p>"1192      ],1193      "text/plain": [1194       "<IPython.core.display.HTML object>"1195      ]1196     },1197     "metadata": {},1198     "output_type": "display_data"1199    }1200   ],

Showing the first 1,200 of 9275 lines. Download the file for the rest.