Skip to content

Instantly share code, notes, and snippets.

@radekosmulski
Created August 24, 2023 23:34
Show Gist options
  • Save radekosmulski/c3cce1a52b52b9b2037e1941de5afa32 to your computer and use it in GitHub Desktop.
Save radekosmulski/c3cce1a52b52b9b2037e1941de5afa32 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "a5ccac1c",
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"\n",
"if not os.environ.get('TRANSFORMERS_CACHE'):\n",
" os.environ['TRANSFORMERS_CACHE'] = '/raid/transformers_cache'\n",
" \n",
"\n",
"os.environ['CUDA_VISIBLE_DEVICES'] = \"6\""
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "2221804b",
"metadata": {},
"outputs": [],
"source": [
"import copy\n",
"from dataclasses import dataclass, field\n",
"from typing import Dict, Optional, Sequence\n",
"import warnings\n",
"\n",
"from tqdm import tqdm\n",
"from pdb import set_trace\n",
"\n",
"import torch\n",
"import numpy as np\n",
"import transformers\n",
"from torch.utils.data import Dataset, DataLoader\n",
"from transformers import AutoModelForCausalLM, AutoTokenizer\n",
"from matplotlib import pyplot as plt"
]
},
{
"cell_type": "markdown",
"id": "a51d944d",
"metadata": {},
"source": [
"Let's grab the dataset straight from `datasets`"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "4dd95b68",
"metadata": {},
"outputs": [],
"source": [
"from datasets import load_dataset, DatasetDict\n",
"dataset = load_dataset(\"tatsu-lab/alpaca\")"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "549878ac",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "eb348acee923408aa857194ed13af371",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Loading checkpoint shards: 0%| | 0/2 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"model = AutoModelForCausalLM.from_pretrained('meta-llama/Llama-2-7b-hf')\n",
"tokenizer = AutoTokenizer.from_pretrained('meta-llama/Llama-2-7b-hf')"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "8d6ddb3d",
"metadata": {},
"outputs": [],
"source": [
"datasets = dataset['train'].train_test_split(test_size=2002, seed=42)\n",
"datasets = DatasetDict({'train': datasets['train'], 'valid': datasets['test']})"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "43b496fa",
"metadata": {},
"outputs": [],
"source": [
"# code from Stanford Alpaca https://github.com/tatsu-lab/stanford_alpaca\n",
"\n",
"PROMPT_DICT = {\n",
" \"prompt_input\": (\n",
" \"Below is an instruction that describes a task, paired with an input that provides further context. \"\n",
" \"Write a response that appropriately completes the request.\\n\\n\"\n",
" \"### Instruction:\\n{instruction}\\n\\n### Input:\\n{input}\\n\\n### Response:\"\n",
" ),\n",
" \"prompt_no_input\": (\n",
" \"Below is an instruction that describes a task. \"\n",
" \"Write a response that appropriately completes the request.\\n\\n\"\n",
" \"### Instruction:\\n{instruction}\\n\\n### Response:\"\n",
" ),\n",
"}\n",
"\n",
"def smart_tokenizer_and_embedding_resize(\n",
" special_tokens_dict: Dict,\n",
" tokenizer: transformers.PreTrainedTokenizer,\n",
" model: transformers.PreTrainedModel,\n",
"):\n",
" \"\"\"Resize tokenizer and embedding.\n",
"\n",
" Note: This is the unoptimized version that may make your embedding size not be divisible by 64.\n",
" \"\"\"\n",
" num_new_tokens = tokenizer.add_special_tokens(special_tokens_dict)\n",
" model.resize_token_embeddings(len(tokenizer))\n",
"\n",
" if num_new_tokens > 0:\n",
" input_embeddings = model.get_input_embeddings().weight.data\n",
" output_embeddings = model.get_output_embeddings().weight.data\n",
"\n",
" input_embeddings_avg = input_embeddings[:-num_new_tokens].mean(dim=0, keepdim=True)\n",
" output_embeddings_avg = output_embeddings[:-num_new_tokens].mean(dim=0, keepdim=True)\n",
"\n",
" input_embeddings[-num_new_tokens:] = input_embeddings_avg\n",
" output_embeddings[-num_new_tokens:] = output_embeddings_avg\n",
" \n",
"special_tokens_dict = dict()\n",
"special_tokens_dict[\"pad_token\"] = \"[PAD]\"\n",
"\n",
"smart_tokenizer_and_embedding_resize(special_tokens_dict, tokenizer, model)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "ca648e3d",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[1, 32000]"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tokenizer.encode('[PAD]')"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "5f3b7326",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'[PAD]'"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tokenizer.decode([32000])"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "edfd9e7b",
"metadata": {},
"outputs": [],
"source": [
"def process_example(example):\n",
" template = PROMPT_DICT[\"prompt_input\"]\n",
" if not example['input']:\n",
" template = PROMPT_DICT[\"prompt_no_input\"] + '\\n\\n'\n",
"\n",
" prompt = template.format_map(example)\n",
" prompt_toks = tokenizer(prompt)['input_ids']\n",
" input_ids = tokenizer(prompt + example[\"output\"] + tokenizer.eos_token, return_tensors='pt')['input_ids'][0]\n",
" labels = input_ids.clone().detach()\n",
" labels[:len(prompt_toks)] = -100 # loss will not be calculated for labels set to -100\n",
" return input_ids, labels"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "36c9cd51",
"metadata": {},
"outputs": [],
"source": [
"class SupervisedDataset(Dataset):\n",
" def __init__(self, dataset):\n",
" super().__init__()\n",
" discarded_examples_count = 0\n",
" self.examples = []\n",
" for example in tqdm(dataset):\n",
" input_ids, labels = process_example(example)\n",
" if input_ids.shape[0] > 512:\n",
" discarded_examples_count += 1\n",
" else:\n",
" self.examples.append((input_ids, labels))\n",
" print(f'Discarded {discarded_examples_count} examples due to length > 512.')\n",
" \n",
" def __getitem__(self, idx):\n",
" return {\"input_ids\": self.examples[idx][0], \"labels\": self.examples[idx][1]}\n",
" def __len__(self):\n",
" return len(self.examples)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "4a4bf62b",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 50000/50000 [00:38<00:00, 1295.40it/s]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Discarded 94 examples due to length > 512.\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2002/2002 [00:01<00:00, 1244.17it/s]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Discarded 3 examples due to length > 512.\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n"
]
}
],
"source": [
"train_ds = SupervisedDataset(datasets['train'])\n",
"valid_ds = SupervisedDataset(datasets['valid'])"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "5e3628de",
"metadata": {},
"outputs": [],
"source": [
"def collate_fn(examples):\n",
" input_ids, labels = tuple([example[key] for example in examples] for key in (\"input_ids\", \"labels\"))\n",
" input_ids = torch.nn.utils.rnn.pad_sequence(\n",
" input_ids, batch_first=True, padding_value=tokenizer.pad_token_id\n",
" )\n",
" labels = torch.nn.utils.rnn.pad_sequence(labels, batch_first=True, padding_value=-100)\n",
" return dict(\n",
" input_ids=input_ids,\n",
" labels=labels,\n",
" attention_mask=input_ids.ne(tokenizer.pad_token_id)\n",
" )"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "a802eed6",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"trainable params: 4,194,304 || all params: 6,742,618,112 || trainable%: 0.06220586618327525\n"
]
}
],
"source": [
"from peft import LoraConfig, TaskType\n",
"from peft import get_peft_model\n",
"\n",
"peft_config = LoraConfig(task_type=\"a_random_string\", inference_mode=False, r=8, lora_alpha=32, lora_dropout=0.1)\n",
"\n",
"model = get_peft_model(model, peft_config)\n",
"model.print_trainable_parameters()"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "e59e53e7",
"metadata": {},
"outputs": [],
"source": [
"train_batch_size = 6\n",
"lr = 4e-4\n",
"num_epochs = 3"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "c07a2e76",
"metadata": {},
"outputs": [],
"source": [
"from accelerate import Accelerator\n",
"\n",
"accelerator = Accelerator(mixed_precision='bf16', gradient_accumulation_steps=128//train_batch_size)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "bc81f95f",
"metadata": {},
"outputs": [],
"source": [
"train_dl = DataLoader(train_ds, batch_size=train_batch_size, shuffle=True, collate_fn=collate_fn)\n",
"valid_dl = DataLoader(valid_ds, batch_size=2*train_batch_size, shuffle=False, collate_fn=collate_fn)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "aa58ff68",
"metadata": {},
"outputs": [],
"source": [
"optimizer = torch.optim.AdamW(model.parameters(), lr=lr, weight_decay=0)\n",
"lr_scheduler = torch.optim.lr_scheduler.OneCycleLR(\n",
" optimizer,\n",
" lr,\n",
" epochs=num_epochs,\n",
" steps_per_epoch=len(train_dl)\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "eb6dd55a",
"metadata": {},
"outputs": [],
"source": [
"model, train_dl, valid_dl, optimizer, lr_scheduler = accelerator.prepare(\n",
" model, train_dl, valid_dl, optimizer, lr_scheduler\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "4e622a19",
"metadata": {},
"outputs": [],
"source": [
"lrs = []\n",
"train_losses = []"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "6a88692a",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Epoch: 1\tTrain loss: 1.15: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 8318/8318 [49:56<00:00, 2.78it/s]\n",
" \r"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Val loss: 1.08\ttoken accuracy: 0.00\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"Epoch: 1\tTrain loss: 1.04: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 8318/8318 [49:46<00:00, 2.78it/s]\n",
" \r"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Val loss: 1.07\ttoken accuracy: 0.00\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"Epoch: 1\tTrain loss: 0.90: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 8318/8318 [49:56<00:00, 2.78it/s]\n",
" "
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Val loss: 1.07\ttoken accuracy: 0.00\n",
"CPU times: user 2h 23s, sys: 32min 31s, total: 2h 32min 55s\n",
"Wall time: 2h 32min 36s\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\r"
]
}
],
"source": [
"%%time\n",
"\n",
"for i in range(num_epochs):\n",
" model.train()\n",
" pbar = tqdm(train_dl, leave=True)\n",
" for batch in pbar:\n",
" outputs = model(**batch)\n",
" loss = outputs.loss\n",
"\n",
" train_losses.append(loss.item())\n",
" lrs.append(optimizer.param_groups[0]['lr'])\n",
"\n",
" accelerator.backward(loss)\n",
" \n",
" optimizer.step()\n",
" optimizer.zero_grad()\n",
" lr_scheduler.step()\n",
" pbar.set_description(f'Epoch: {1:2d}\\tTrain loss: {np.mean(train_losses[-20:]) :.2f}')\n",
"\n",
" model.eval()\n",
" preds = []\n",
" labels = []\n",
" val_losses = []\n",
" for batch in tqdm(valid_dl, leave=False):\n",
" with torch.no_grad():\n",
" outputs = model(**batch)\n",
"\n",
" logits = outputs.logits\n",
" val_losses.append(outputs.loss.item())\n",
"\n",
" preds.append(outputs.logits.argmax(-1).cpu().detach())\n",
" labels.append(batch['labels'].cpu().detach())\n",
"\n",
" hits = 0\n",
" chances = 0\n",
" for p, l in zip(preds, labels):\n",
" hits += (p == l).sum().item()\n",
" chances += (l != -100).sum().item()\n",
" print(f'Val loss: {np.mean(val_losses):3.02f}\\ttoken accuracy: {hits/chances:3.02f}')"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "673395f8",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f8d98185a20>]"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(lrs)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "da5e3cab",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f8d98c16bf0>]"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAGdCAYAAADAAnMpAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAABS5ElEQVR4nO3dd3wUZf4H8M+mE0ghQBoECL1D6KEjkYCcgu2wgvyEA4U7OT1RTgV7rFhRVAQ8BRELYAGUXkNPgNAkgAklCTWVNJL5/RGy7CZbZnZn95nd/bxfr7yU3SnPzs7OfOcp30cnSZIEIiIiIkG8RBeAiIiIPBuDESIiIhKKwQgREREJxWCEiIiIhGIwQkREREIxGCEiIiKhGIwQERGRUAxGiIiISCgf0QWQo7KyEufPn0dQUBB0Op3o4hAREZEMkiShoKAA0dHR8PIyX//hEsHI+fPnERMTI7oYREREZIMzZ86gSZMmZt93iWAkKCgIQNWHCQ4OFlwaIiIikiM/Px8xMTH6+7g5LhGMVDfNBAcHMxghIiJyMda6WLADKxEREQnFYISIiIiEYjBCREREQjEYISIiIqEYjBAREZFQDEaIiIhIKAYjREREJBSDESIiIhKKwQgREREJxWCEiIiIhGIwQkREREIxGCEiIiKhPDoYuVxYinmbT+JCfonoohAREXksjw5Gpi7ZjzdWH8MjC/eILgoREZHH8uhgZOepKwCAI1n5gktCRETkuTw6GCEiIiLxGIwQERGRUAxGiIiISCgGI0RERCQUgxEiIiISisEIERERCcVghIiIiIRiMEJERERCMRghIiIioRiMEBERkVAMRoiIiEgoBiNEREQkFIMRIiIiEorBCBEREQnFYISIiIiEYjBCREREQjEYISIiIqEYjBAREZFQDEaIiIhIKAYjREREJBSDESIiIhKKwQgREREJpSgYSUpKQq9evRAUFITw8HCMGTMGx48ft7jOokWLoNPpjP4CAgLsKjQRERG5D0XByObNmzF16lTs3LkTa9euRXl5OYYPH46ioiKL6wUHByMrK0v/l5GRYVehiYiIyH34KFl4zZo1Rv9etGgRwsPDsW/fPgwaNMjsejqdDpGRkbaVkIiIiNyaXX1G8vLyAABhYWEWlyssLESzZs0QExOD0aNH4/DhwxaXLy0tRX5+vtEfERERuSebg5HKykpMnz4d/fv3R6dOncwu17ZtWyxYsAArV67EN998g8rKSvTr1w9nz541u05SUhJCQkL0fzExMbYWk4iIiDROJ0mSZMuKjz32GFavXo1t27ahSZMmstcrLy9H+/btcf/99+OVV14xuUxpaSlKS0v1/87Pz0dMTAzy8vIQHBxsS3FNav7sb/r//+uNUaptl4iIiKru3yEhIVbv34r6jFSbNm0afv31V2zZskVRIAIAvr6+iIuLQ3p6utll/P394e/vb0vRiIiIyMUoaqaRJAnTpk3D8uXLsWHDBsTGxireYUVFBQ4dOoSoqCjF6xIREZH7UVQzMnXqVCxZsgQrV65EUFAQsrOzAQAhISGoU6cOAGDcuHFo3LgxkpKSAAAvv/wy+vbti1atWiE3Nxdvv/02MjIyMHHiRJU/ChEREbkiRcHIp59+CgAYMmSI0esLFy7EI488AgDIzMyEl9fNCperV69i0qRJyM7ORv369dGjRw/s2LEDHTp0sK/kRERE5BZs7sDqTHI7wCjFDqxERESOI/f+zblpiIiISCgGI0RERCQUgxEiIiISisEIERERCcVghIiIiIRiMEJERERCMRghIiIioRiMEBERkVAMRoiIiEgoBiNEREQkFIMRIiIiEorBCBEREQnFYISIiIiEYjBCREREQjEYISIiIqEYjBAREZFQDEaIiIhIKAYjREREJBSDESIiIhKKwQgREREJxWCEiIiIhGIwQkREREIxGCEiIiKhGIwQERGRUAxGiIiISCgGI0RERCQUgxEiIiISisEIERERCcVghIiIiIRiMEJERERCMRghIiIioRiMEBGRS5EkSXQRSGUMRoiIyGXM+OEAbnl3M4rLKkQXhVTEYISIiFzGsr1ncfpSEX4/nC26KKQiBiNEREQkFIMRIiIiEorBCBEREQnFYISIiIiEYjBCREQuRwKH97oTBiNEREQkFIMRIiIiEorBCBEREQnFYISIiIiEYjBCREREQjEYISIil8O58twLgxEiIiISisEIERERCcVghIiIiIRiMEJERERCMRghIiIioRiMEBGRy+FoGvfCYISIiIiEYjBCREREQjEYIbdWXlGJeZtP4tDZPNFFISIiMxiMqOhqURk+3nAC53KLRReFbvhmZwbeWH0Mt3+8TXRRiIjIDAYjKnrq+wN4548/cc+nO0QXhW44mpUvughERGQFgxEVbU+/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MzMBVNVqjBs3Tr/8lClTcOrUKcyYMQPHjh3DJ598gmXLluHf//63Op+AiIiI7OZSzTR79+5FXFwc4uLiAABPPvkk4uLiMGvWLABAVlaWPjABgNjYWPz2229Yu3YtunbtinfffRfz58/nsF4iIiICYEMzzZAhQyxOpmMqu+qQIUOQkpKidFdERETkATQ5moaIiIicSwJn7SUiIiIPxWCEiIiIhGIwQkRERK41moaIiIhITQxGiIiISGD3VQYjREREJBiDESIiIhKKwQgRERGxAysRERF5Lo8ORgL9vEUXgYiIyON5dDDycN9mootARETk8Tw6GBE5jImIiIiqeHQwQkREROIxGCEiIiLO2itKHV92YCUiIhLNo4ORiQNjRReBiIjI43l0MBIU4Cu6CERERJrApGdERETksRiMEBERkVAMRoiIiAiSwHYaBiNEREQklMcHI6O6RIkuAhERkXDswCpQ49A6ootARETk0Tw+GCEiIiKxGIwQERGR0MljGYwQERGRUAxGiIiICDqB+2YwQkSqCvDlZYXIFbGZRiCRSV6I3JFO6PMVEbkijw9GiIiIiHlGiMiNSEIre4nIFTEYISIiIqEYjBCR6v6vf6zoIhCRQiJrNRmMEJHqZoxoK7oIRORCPD4Y4WAaIvUF+HrD24ujaohIHo8PRojIMRiKELkWjqYhIrfB2kYiUorBiBlfjOspughEREQegcGIGe2jgkQXgVQypG0jJLQPF10Mp3t+VHuh+2cFCZFrYTp4Ige6o2s03rm3q13beHxIS6N/xzasa9f2nCEyJEB0EYiIZPH4YKRviwaii2DVh/fHITTQV3QxXE63mFAsmxyPO+Maq77tZZPjVd8muYduMaGii0Dkcjw+GBnWPhwzR7YTXQyLvHRARJBnPOVue2aoatsKCvBB79gw6HT2j+tgk4N81cfKU0fTtGik/VozIlMaBfkL27fHByM6nQ53dIuu9XpdPx+L643qHOWoInm00EA/h2yXIzyAAF/1fu5ycog4+pCHC7xwOlKHqGDRRSAP1SS0jrB9e3wwAgBRIXWMMkbe2iEC9etavil+/EAc9j2f4OiieRx/H22ekq74lK+rUernblOvQ2ugr7fVZSQHR4ATB2oz5XzN427Kr/8cgLu6m24+7BDNYITEYDp4DXh8SCv9/99t5iJhSKfToUE993wyE8nXW71T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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(train_losses)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "a88dc232",
"metadata": {},
"outputs": [],
"source": [
"accelerator.free_memory()"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "87ddc33d",
"metadata": {},
"outputs": [],
"source": [
"model.save_pretrained('/raid/models/lora_apaca_llama2')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2ec39dd3",
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"os._exit(00)"
]
}
],
"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.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment