{ "cells": [ { "cell_type": "markdown", "source": [ " **Midterm: Neural Network-Based Language\n", "Model for Next Token Prediction**\n" ], "metadata": { "id": "hOqh8ZFysD6G" } }, { "cell_type": "code", "source": [ "import torch\n", "import torch.nn as nn\n", "import torch.optim as optim\n", "from torch.utils.data import Dataset, DataLoader\n", "import numpy as np\n", "import re\n", "from collections import Counter\n", "from sklearn.model_selection import train_test_split\n" ], "metadata": { "id": "14bhPtpVtqk5" }, "execution_count": 16, "outputs": [] }, { "cell_type": "markdown", "source": [ "**Load Icelandic and English text files**" ], "metadata": { "id": "6mDLDJqTUtS1" } }, { "cell_type": "code", "source": [ "# Load Icelandic and English text files\n", "with open('/content/Icelandic_sampled.txt', 'r', encoding='utf-8') as f:\n", " icelandic_text = f.read()\n", "\n", "with open('/content/alpaca_sampled.txt', 'r', encoding='utf-8') as f:\n", " english_text = f.read()\n", "\n", "print(\"Datasets loaded successfully.\")\n", "\n", "# Preprocessing function to clean text\n", "def preprocess_text(text):\n", " text = text.lower()\n", " text = re.sub(r'[^a-zA-ZÍÚÁÉÓÖÞÆÉíúáéóöþæ ]', '', text) # Retain Icelandic letters\n", " return text\n", "\n", "# Apply preprocessing to both datasets\n", "english_text = preprocess_text(english_text)\n", "icelandic_text = preprocess_text(icelandic_text)\n", "\n", "print(f\"Sample of English Text: {english_text[:100]}\")\n", "print(f\"Sample of Icelandic Text: {icelandic_text[:100]}\")\n", "\n" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "43x2PjLihFr2", "outputId": "286106bb-9e22-4afc-dba8-c44fa351d36c" }, "execution_count": 2, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Datasets loaded successfully.\n", "Sample of English Text: instruction explain newtons third law of motion input output newtons third law of motion states tha\n", "Sample of Icelandic Text: instruction kindly translate the given sentence into icelandic input write a comment praising the gi\n" ] } ] }, { "cell_type": "markdown", "source": [ "** Tokenization function**" ], "metadata": { "id": "gtpfe1seU1IP" } }, { "cell_type": "code", "source": [ "# Tokenization function\n", "def tokenize(text):\n", " return text.split()\n", "\n", "english_tokens = tokenize(english_text)\n", "icelandic_tokens = tokenize(icelandic_text)\n", "\n", "print(f\"English tokens: {len(english_tokens)}\")\n", "print(f\"Icelandic tokens: {len(icelandic_tokens)}\")\n", "\n", "# Build vocabulary\n", "def build_vocab(tokens):\n", " vocab = Counter(tokens)\n", " vocab = {word: i for i, (word, _) in enumerate(vocab.items())}\n", " return vocab\n", "\n", "# Create vocabularies for both languages\n", "english_vocab = build_vocab(english_tokens)\n", "icelandic_vocab = build_vocab(icelandic_tokens)\n", "\n", "print(f\"English Vocabulary Size: {len(english_vocab)}\")\n", "print(f\"Icelandic Vocabulary Size: {len(icelandic_vocab)}\")\n", "\n", "# Convert tokens to indices\n", "english_data = [english_vocab[word] for word in english_tokens]\n", "icelandic_data = [icelandic_vocab[word] for word in icelandic_tokens]\n", "\n", "# Combine datasets\n", "combined_data = english_data + icelandic_data\n", "print(f\"Combined dataset size: {len(combined_data)}\")\n" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "3LnwrEBKhFuT", "outputId": "7c931294-0b22-45b1-927f-4013a97a1b53" }, "execution_count": 3, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "English tokens: 32477\n", "Icelandic tokens: 36422\n", "English Vocabulary Size: 6221\n", "Icelandic Vocabulary Size: 9601\n", "Combined dataset size: 68899\n" ] } ] }, { "cell_type": "markdown", "source": [ "**Dataset class for sequence prediction**" ], "metadata": { "id": "wsGscGEvU7bM" } }, { "cell_type": "code", "source": [ "# Dataset class for sequence prediction\n", "class TextDataset(Dataset):\n", " def __init__(self, data, sequence_length):\n", " self.data = data\n", " self.sequence_length = sequence_length\n", "\n", " def __len__(self):\n", " return len(self.data) - self.sequence_length\n", "\n", " def __getitem__(self, idx):\n", " return (torch.tensor(self.data[idx:idx + self.sequence_length]),\n", " torch.tensor(self.data[idx + self.sequence_length]))\n", "\n", "# Sequence length for training\n", "sequence_length = 5\n", "\n", "# Create the combined dataset\n", "combined_dataset = TextDataset(combined_data, sequence_length)\n", "print(f\"Dataset length: {len(combined_dataset)}\")\n", "\n", "# Split into training and validation sets\n", "train_data, val_data = train_test_split(combined_dataset, test_size=0.1)\n", "print(f\"Training samples: {len(train_data)}, Validation samples: {len(val_data)}\")\n", "\n", "# Create DataLoaders for training and validation\n", "batch_size = 64\n", "train_loader = DataLoader(train_data, batch_size=batch_size, shuffle=True)\n", "val_loader = DataLoader(val_data, batch_size=batch_size, shuffle=False)\n", "\n", "print(f\"Batch size: {batch_size}\")\n", "print(f\"Training batches: {len(train_loader)}, Validation batches: {len(val_loader)}\")\n" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "6eyfZ2klhFw1", "outputId": "058f0dba-c5d3-48b4-edd0-95c12a4521aa" }, "execution_count": 4, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Dataset length: 68894\n", "Training samples: 62004, Validation samples: 6890\n", "Batch size: 64\n", "Training batches: 969, Validation batches: 108\n" ] } ] }, { "cell_type": "markdown", "source": [ "**Loss function and optimizer**" ], "metadata": { "id": "cYim4C6HVM6p" } }, { "cell_type": "code", "source": [ "# Loss function and optimizer\n", "criterion = nn.CrossEntropyLoss()\n", "optimizer = optim.Adam(combined_model.parameters(), lr=0.001)\n", "\n", "# Function to train the model and validate\n", "def train_model(model, train_loader, val_loader, optimizer, num_epochs, checkpoint_path):\n", " model.train()\n", " train_losses, val_losses = [], []\n", "\n", " for epoch in range(num_epochs):\n", " epoch_train_loss = 0\n", " for inputs, targets in train_loader:\n", " optimizer.zero_grad()\n", " outputs = model(inputs)\n", " loss = criterion(outputs, targets)\n", " loss.backward()\n", " optimizer.step()\n", " epoch_train_loss += loss.item()\n", "\n", " # Validation step\n", " model.eval()\n", " val_loss = 0\n", " with torch.no_grad():\n", " for inputs, targets in val_loader:\n", " outputs = model(inputs)\n", " loss = criterion(outputs, targets)\n", " val_loss += loss.item()\n", "\n", " train_losses.append(epoch_train_loss / len(train_loader))\n", " val_losses.append(val_loss / len(val_loader))\n", "\n", " # Save checkpoint for every epoch\n", " torch.save(model.state_dict(), f'{checkpoint_path}_epoch{epoch+1}.pth')\n", "\n", " print(f'Epoch {epoch+1}/{num_epochs}, Train Loss: {train_losses[-1]:.4f}, Val Loss: {val_losses[-1]:.4f}')\n", "\n", " return train_losses, val_losses\n", "\n", " import pandas as pd\n", "import numpy as np\n", "\n", "# Train the model\n", "num_epochs = 10\n", "train_losses, val_losses = train_model(combined_model, train_loader, val_loader, optimizer, num_epochs, 'combined_model_checkpoint')\n", "\n", "# Save training and validation losses to a CSV file\n", "losses_df = pd.DataFrame({\n", " 'Epoch': range(1, num_epochs + 1),\n", " 'Train_Loss': train_losses,\n", " 'Val_Loss': val_losses\n", "})\n", "losses_df.to_csv('training_validation_losses.csv', index=False)\n" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "ESRw-m00hFz_", "outputId": "9a489cb6-90b8-47c0-e647-799213667927" }, "execution_count": 7, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Epoch 1/10, Train Loss: 7.6275, Val Loss: 7.1583\n", "Epoch 2/10, Train Loss: 6.6923, Val Loss: 6.9158\n", "Epoch 3/10, Train Loss: 5.9922, Val Loss: 6.8872\n", "Epoch 4/10, Train Loss: 5.1496, Val Loss: 7.0510\n", "Epoch 5/10, Train Loss: 4.2123, Val Loss: 7.2246\n", "Epoch 6/10, Train Loss: 3.2722, Val Loss: 7.5333\n", "Epoch 7/10, Train Loss: 2.4096, Val Loss: 7.8671\n", "Epoch 8/10, Train Loss: 1.6956, Val Loss: 8.1713\n", "Epoch 9/10, Train Loss: 1.1467, Val Loss: 8.4934\n", "Epoch 10/10, Train Loss: 0.7460, Val Loss: 8.7863\n" ] } ] }, { "cell_type": "markdown", "source": [ "**final model**" ], "metadata": { "id": "Xu12K0UbVR_g" } }, { "cell_type": "code", "source": [ "# Save the final model\n", "torch.save(combined_model.state_dict(), 'combined_model.pth')" ], "metadata": { "id": "lg4Fzwker0IQ" }, "execution_count": 15, "outputs": [] }, { "cell_type": "code", "source": [ "\n", "# Plot losses\n", "import matplotlib.pyplot as plt\n", "\n", "def plot_losses(train_losses, val_losses, title):\n", " plt.plot(train_losses, label='Training Loss')\n", " plt.plot(val_losses, label='Validation Loss')\n", " plt.title(title)\n", " plt.xlabel('Epoch')\n", " plt.ylabel('Loss')\n", " plt.legend()\n", " plt.savefig('model_loss.png')\n", " plt.show()\n", "\n", "# Plot combined model losses\n", "plot_losses(train_losses, val_losses, 'Combined Model Loss')\n", "\n" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 472 }, "id": "cGOHhDm8hF2z", "outputId": "69498d44-8384-4b62-85bd-c3a04eb68e9c" }, "execution_count": 14, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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xYosXrwYgH///ZeYmBgGDBiAu7t75vP17dsXf3//69ZxKavVSo8ePfjxxx8BxyTakJAQWrRoka3tsWPH2LRpE3379qVYsWKZx2vVqsU999yT+fuw2WzMmzePrl27Zvm5Vq1aNdtwUk7fc25auHAhaWlpDBs2DBeXi/9cP/300/j5+WX+ubnws5w3b94Vh+gAAgICAPjjjz+y9cCJODMFFZGb4OfnB0BCQkKO2kdHR+Pi4kKFChWyHA8MDCQgIIDo6Ogsxy/90ISLH0QhISFXPH727Nksx11cXAgPD89yrFKlSgBZhj2u5vLXL1q0aJbX2bNnD4ZhULFiRUqWLJnlsWPHDmJiYjLfN0DFihWzPJ+bm1u2+nLi0UcfJTIyks2bNzNt2jQeeeSRK+51cuF1K1eunO1c1apVOXXqFElJSZw8eZLk5ORs9V3p2py+59x0tffh7u5OeHh45vly5crx/PPP89///pcSJUrQrl07Pv/88yzzUx5++GGaNWtGv379KF26NI888gg///yzQos4Peef7i/ihPz8/AgODmbbtm03dF1ONxCzWq03dNy4bJLsrbre69jtdiwWC3PmzLli25xuOHejGjduTPny5Rk2bBhRUVE8+uijt+V1rsSs95xTH330EX379uWPP/5g/vz5DBkyhDFjxrBmzRrKlCmDl5cXy5YtY/HixcyePZu5c+fy008/cddddzF//vyr/s5FzKYeFZGb1KlTJ/bt28fq1auv2zY0NBS73c6ePXuyHD9x4gSxsbGEhobmam12uz3bcNDu3bsBcmXH1PLly2MYBuXKlaNt27bZHnfeeSdA5vu6/H2np6cTFRV1U6/ds2dPlixZQtWqValTp84V21x43V27dmU7t3PnTkqUKIGPjw8lS5bEy8srW31Xujan7zk3Xe19pKWlERUVle3PTc2aNXn11VdZtmwZy5cv58iRI3z55ZeZ511cXLj77rsZO3YskZGRvP322/z999+3ZdhKJLcoqIjcpP/85z/4+PjQr18/Tpw4ke38vn37+PTTTwG47777APjkk0+ytBk7dizAbdkHZPz48ZlfG4bB+PHjcXNz4+67777l537ggQewWq2MHj06W2+OYRicPn0agAYNGlCyZEm+/PJL0tLSMttMmTLlplfJ9OvXj5EjR/LRRx9dtU1QUBB16tTh22+/zfI627ZtY/78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K/aeZPaW48yPzBpaSvt50KFGEB1rBVG/bP4ILQV2joqIiEhh5O7qwl1VSnNXldKkZtRg5d5TzNpyjAXbT3AiPpUpqw4wZdWBzNDSqVYQ9fJJaLkeU4NKYmIie/fuzfw+KiqKTZs2UaxYMcqWLWtiZSIiIs7Jw9V6SWixsWKPY07LgsisoSXQz5MONR0TcfNzaDF16GfJkiW0adMm2/E+ffowZcqU616voR8RERGH1Awby3c7ljwviDxBQurF4aFAP0/uqxlEx1qB1A0xP7TkyzkqN0NBRUREJLuUdBvL91wMLYmXhJYgf8/Mibh1QwJMCS0KKiIiIgJcDC2ztxxl4Y6YLKEl2N+TDjUdE3HrhgRgseRNaFFQERERkWxS0m0s230ys6clKc2WeS7Y/8LwUBB1bnNoUVARERGRa0pJt7H0fGhZeFlouSPAi/tqOjaXux2hRUFFREREciwl3caSXedDy44TnLsktDSvUIIf+jXO1dfTPioiIiKSY55uVtrXCKR9jcDM0DJ76zEW7ThB3bIBptamoCIiIiKZLg8tqRl2U+tRUBEREZEr8nSz4ulmNbUGF1NfXUREROQaFFRERETEaSmoiIiIiNNSUBERERGnpaAiIiIiTktBRURERJyWgoqIiIg4LQUVERERcVoKKiIiIuK0FFRERETEaSmoiIiIiNNSUBERERGnpaAiIiIiTitf3z3ZMAwA4uPjTa5EREREcurC5/aFz/FryddBJSEhAYCQkBCTKxEREZEblZCQgL+//zXbWIycxBknZbfbOXr0KL6+vlgsllx97vj4eEJCQjh06BB+fn65+txy4/T7cC76fTgX/T6cj34n12YYBgkJCQQHB+Picu1ZKPm6R8XFxYUyZcrc1tfw8/PTHzInot+Hc9Hvw7no9+F89Du5uuv1pFygybQiIiLitBRURERExGkpqFyFh4cHI0eOxMPDw+xSBP0+nI1+H85Fvw/no99J7snXk2lFRESkYFOPioiIiDgtBRURERFxWgoqIiIi4rQUVERERMRpKahcweeff05YWBienp40btyYtWvXml1SoTVmzBgaNmyIr68vpUqVomvXruzatcvssgR49913sVgsDBs2zOxSCrUjR47w2GOPUbx4cby8vKhZsyb//vuv2WUVSjabjddee41y5crh5eVF+fLlefPNN3N0Pxu5OgWVy/z00088//zzjBw5kg0bNlC7dm3atWtHTEyM2aUVSkuXLiUiIoI1a9awYMEC0tPTuffee0lKSjK7tEJt3bp1TJw4kVq1apldSqF29uxZmjVrhpubG3PmzCEyMpKPPvqIokWLml1aofTee+8xYcIExo8fz44dO3jvvfd4//33GTdunNml5WtannyZxo0b07BhQ8aPHw847icUEhLC4MGDeemll0yuTk6ePEmpUqVYunQpLVu2NLucQikxMZF69erxxRdf8NZbb1GnTh0++eQTs8sqlF566SVWrlzJ8uXLzS5FgE6dOlG6dGm+/vrrzGPdu3fHy8uLH374wcTK8jf1qFwiLS2N9evX07Zt28xjLi4utG3bltWrV5tYmVwQFxcHQLFixUyupPCKiIigY8eOWf6eiDlmzpxJgwYNeOihhyhVqhR169blq6++MrusQqtp06YsWrSI3bt3A7B582ZWrFhBhw4dTK4sf8vXNyXMbadOncJms1G6dOksx0uXLs3OnTtNqkousNvtDBs2jGbNmlGjRg2zyymUpk+fzoYNG1i3bp3ZpQiwf/9+JkyYwPPPP8/LL7/MunXrGDJkCO7u7vTp08fs8gqdl156ifj4eKpUqYLVasVms/H222/Tq1cvs0vL1xRUJN+IiIhg27ZtrFixwuxSCqVDhw4xdOhQFixYgKenp9nlCI7w3qBBA9555x0A6taty7Zt2/jyyy8VVEzw888/M3XqVKZNm0b16tXZtGkTw4YNIzg4WL+PW6CgcokSJUpgtVo5ceJEluMnTpwgMDDQpKoEYNCgQcyaNYtly5ZRpkwZs8splNavX09MTAz16tXLPGaz2Vi2bBnjx48nNTUVq9VqYoWFT1BQENWqVctyrGrVqvzvf/8zqaLC7YUXXuCll17ikUceAaBmzZpER0czZswYBZVboDkql3B3d6d+/fosWrQo85jdbmfRokU0adLExMoKL8MwGDRoEDNmzODvv/+mXLlyZpdUaN19991s3bqVTZs2ZT4aNGhAr1692LRpk0KKCZo1a5Ztuf7u3bsJDQ01qaLC7dy5c7i4ZP1YtVqt2O12kyoqGNSjcpnnn3+ePn360KBBAxo1asQnn3xCUlISTzzxhNmlFUoRERFMmzaNP/74A19fX44fPw6Av78/Xl5eJldXuPj6+mabG+Tj40Px4sU1Z8gkzz33HE2bNuWdd96hR48erF27lkmTJjFp0iSzSyuUOnfuzNtvv03ZsmWpXr06GzduZOzYsTz55JNml5a/GZLNuHHjjLJlyxru7u5Go0aNjDVr1phdUqEFXPExefJks0sTwzBatWplDB061OwyCrU///zTqFGjhuHh4WFUqVLFmDRpktklFVrx8fHG0KFDjbJlyxqenp5GeHi48corrxipqalml5avaR8VERERcVqaoyIiIiJOS0FFREREnJaCioiIiDgtBRURERFxWgoqIiIi4rQUVERERMRpKaiIiIiI01JQEZECxWKx8Pvvv5tdhojkEgUVEck1ffv2xWKxZHu0b9/e7NJEJJ/SvX5EJFe1b9+eyZMnZznm4eFhUjUikt+pR0VEcpWHhweBgYFZHkWLFgUcwzITJkygQ4cOeHl5ER4ezq+//prl+q1bt3LXXXfh5eVF8eLF6d+/P4mJiVnafPPNN1SvXh0PDw+CgoIYNGhQlvOnTp2iW7dueHt7U7FiRWbOnHl737SI3DYKKiKSp1577TW6d+/O5s2b6dWrF4888gg7duwAICkpiXbt2lG0aFHWrVvHL7/8wsKFC7MEkQkTJhAREUH//v3ZunUrM2fOpEKFClleY/To0fTo0YMtW7Zw33330atXL86cOZOn71NEconZd0UUkYKjT58+htVqNXx8fLI83n77bcMwHHfDHjBgQJZrGjdubAwcONAwDMOYNGmSUbRoUSMxMTHz/OzZsw0XFxfj+PHjhmEYRnBwsPHKK69ctQbAePXVVzO/T0xMNABjzpw5ufY+RSTvaI6KiOSqNm3aMGHChCzHihUrlvl1kyZNspxr0qQJmzZtAmDHjh3Url0bHx+fzPPNmjXDbreza9cuLBYLR48e5e67775mDbVq1cr82sfHBz8/P2JiYm72LYmIiRRURCRX+fj4ZBuKyS1eXl45aufm5pble4vFgt1uvx0lichtpjkqIpKn1qxZk+37qlWrAlC1alU2b95MUlJS5vmVK1fi4uJC5cqV8fX1JSwsjEWLFuVpzSJiHvWoiEiuSk1N5fjx41mOubq6UqJECQB++eUXGjRoQPPmzZk6dSpr167l66+/BqBXr16MHDmSPn36MGrUKE6ePMngwYN5/PHHKV26NACjRo1iwIABlCpVig4dOpCQkMDKlSsZPHhw3r5REckTCioikqvmzp1LUFBQlmOVK1dm586dgGNFzvTp03n22WcJCgrixx9/pFq1agB4e3szb948hg4dSsOGDfH29qZ79+6MHTs287n69OlDSkoKH3/8McOHD6dEiRI8+OCDefcGRSRPWQzDMMwuQkQKB4vFwowZM+jatavZpYhIPqE5KiIiIuK0FFRERETEaWmOiojkGY00i8iNUo+KiIiIOC0FFREREXFaCioiIiLitBRURERExGkpqIiIiIjTUlARERERp6WgIiIiIk5LQUVEREScloKKiIiIOK3/B5iKgT50eamDAAAAAElFTkSuQmCC\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "**perplexity based on the validation set**" ], "metadata": { "id": "Zs9yNsPpVX39" } }, { "cell_type": "code", "source": [ "# Calculate perplexity based on the validation set\n", "def calculate_perplexity(model, val_loader):\n", " model.eval()\n", " total_loss = 0\n", " total_words = 0\n", "\n", " with torch.no_grad():\n", " for inputs, targets in val_loader:\n", " outputs = model(inputs)\n", " loss = criterion(outputs, targets)\n", " total_loss += loss.item()\n", " total_words += targets.size(0)\n", "\n", " avg_loss = total_loss / len(val_loader)\n", " perplexity = np.exp(avg_loss)\n", "\n", " return perplexity\n", "\n", "# Perplexity calculation for the combined model\n", "combined_perplexity = calculate_perplexity(combined_model, val_loader)\n", "print(f'Combined Model Perplexity: {combined_perplexity:.2f}')" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "j29uMcyKjKge", "outputId": "21b4437a-54e3-445a-f7c5-7017882d6645" }, "execution_count": 9, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Combined Model Perplexity: 6543.78\n" ] } ] }, { "cell_type": "code", "source": [ "import numpy as np\n", "import torch\n", "import matplotlib.pyplot as plt\n", "\n", "# Calculate perplexity based on the validation set\n", "def calculate_perplexity(model, val_loader):\n", " model.eval()\n", " perplexity_values = [] # Store perplexity for each batch\n", " total_loss = 0\n", "\n", " with torch.no_grad():\n", " for inputs, targets in val_loader:\n", " outputs = model(inputs)\n", " loss = criterion(outputs, targets)\n", " total_loss += loss.item()\n", " avg_loss = total_loss / (len(perplexity_values) + 1) # Average loss after each batch\n", " perplexity = np.exp(avg_loss)\n", " perplexity_values.append(perplexity) # Append current perplexity\n", "\n", " return perplexity_values\n", "\n", "# Perplexity calculation for the combined model\n", "combined_perplexity = calculate_perplexity(combined_model, val_loader)\n", "\n", "# Plotting perplexity values\n", "plt.figure(figsize=(10, 6))\n", "plt.plot(combined_perplexity, label='Model Perplexity', marker='o')\n", "plt.title('Perplexity over Validation Set')\n", "plt.xlabel('Batch Number')\n", "plt.ylabel('Perplexity')\n", "plt.yscale('log') # Log scale can help visualize perplexity better if the values vary widely\n", "plt.legend()\n", "plt.grid()\n", "plt.show()\n" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 504 }, "id": "a_z_MqsySii7", "outputId": "5dbed4bb-5977-4570-9ba7-e9846f99d31e" }, "execution_count": 24, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2kAAAIjCAYAAACZPFMYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACuXklEQVR4nOzdd3xT9f4/8NdJ2jTdewIdlFmKlGEZMhRBQMSBV3FwWe4L13tdV72/q4Dz6vV69XtFVK6CCij3Kg4cKCCyRDZoLSKUsrv3oCs5vz/Sc5o0SZtxMpq+no/HfTwuacanSYS8816CKIoiiIiIiIiIyCuoPH0AIiIiIiIiasMgjYiIiIiIyIswSCMiIiIiIvIiDNKIiIiIiIi8CIM0IiIiIiIiL8IgjYiIiIiIyIswSCMiIiIiIvIiDNKIiIiIiIi8CIM0IiIiIiIiL8IgjYiIzHz//fcQBAHff/+9yx7j8ssvx+WXX+6y+ycgNTUV8+bNk/9sz+vqitdnyZIlEARB0fskIvJFDNKIiDxs1apVEARB/p9Wq0W/fv2waNEiFBUVefp4bnPhwgUsWbIEhw8f9vRR3O7ll1+GIAjYvHmz1eusWLECgiDg888/d+PJ7FdfX48lS5a4NMB3RG1tLRYvXozMzEwEBwcjOjoaWVlZ+NOf/oQLFy7YfX+5ublYsmQJTp06pfxhiajbY5BGROQlnnrqKbz//vt47bXXMGbMGCxfvhyjR49GfX29p4/mEt9++y2+/fZb+c8XLlzA0qVLu2WQdsstt0ClUmHt2rVWr7N27VpER0dj2rRpDj/O+PHjcfHiRYwfP97h++hMfX09li5dajFI+9vf/oaLFy+67LGtaW5uxvjx4/GPf/wD48aNw8svv4y//vWvGDZsGNauXYvffvvN7vvMzc3F0qVLGaQRkUv4efoARERkMG3aNIwYMQIAcOeddyI6Ohovv/wyPvvsM9x6661O3Xd9fT2CgoKUOKZiNBqNp4/gdnV1dQgODja7PCkpCVdccQXWr1+P5cuXIyAgwOTn58+fx/bt23H33XfD39/f4cdXqVTQarUO395Zfn5+8PNz/0ePTz/9FIcOHcKaNWtw2223mfysoaEBTU1Nbj8TEVFHmEkjIvJSEydOBADk5+fLl61evRrDhw9HYGAgoqKicMstt+Ds2bMmt7v88suRmZmJAwcOYPz48QgKCsJf//pXAIYepWuuuQbffvstsrKyoNVqkZGRgfXr19t0pj179mDq1KkIDw9HUFAQJkyYgF27dsk/P3r0KAIDAzFnzhyT2+3cuRNqtRqPPvqoyTmlnqfvv/8el156KQBg/vz5cunnqlWrsHjxYvj7+6OkpMTsPHfffTciIiLQ0NDQ4bm/++47jBs3DsHBwYiIiMB1112Ho0ePyj//6KOPIAgCtm3bZnbbN998E4IgICcnR77s119/xe9+9ztERUVBq9VixIgRZmWIUhnrtm3b8Ic//AFxcXHo2bOn1TPOnj0bVVVV+PLLL81+9uGHH0Kv1+P2228HALz00ksYM2YMoqOjERgYiOHDh+Ojjz7q8DkArPekvfXWW0hPT0dgYCCys7OxY8cOs9s2NTXhySefxPDhwxEeHo7g4GCMGzcOW7dula9z6tQpxMbGAgCWLl0qv45LliwBYLknraWlBU8//TTS09MREBCA1NRU/PWvf0VjY6PJ9aT37s6dO5GdnQ2tVovevXvjvffe6/T3zsvLAwBcdtllZj/TarUICwszuayz13fVqlW46aabAABXXHGF/Ht6W4knEXVdDNKIiLyU9MEyOjoaAPDss89izpw56Nu3L15++WX8+c9/xpYtWzB+/HhUVlaa3LasrAzTpk1DVlYWXnnlFVxxxRXyz44fP45Zs2Zh2rRpeP755+Hn54ebbroJmzZt6vA83333HcaPH4/q6mosXrwYzz33HCorKzFx4kTs3bsXADBw4EA8/fTTeP/99+UPtXV1dZg3bx4GDBiAp556yuJ9Dxw4UP7Z3Xffjffffx/vv/8+xo8fj9///vdoaWnBunXrTG7T1NSEjz76CDfeeGOH2aHNmzdjypQpKC4uxpIlS/Dggw/ihx9+wGWXXSaXqk2fPh0hISH473//a3b7devWYdCgQcjMzAQA/PLLLxg1ahSOHj2Kxx57DP/85z8RHByM66+/Hp988onZ7f/whz8gNzcXTz75JB577DGr55w5cya0Wq3Fkse1a9ciJSVFDjJeffVVDB06FE899RSee+45+TW0FOB15u2338Y999yDhIQEvPjii7jssstw7bXXmgX/1dXV+M9//oPLL78cL7zwApYsWYKSkhJMmTJFLlGNjY3F8uXLAQA33HCD/DrOnDnT6uPfeeedePLJJzFs2DD861//woQJE/D8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UVE4e/YsZs6ciYULF+Luu+/G/v37zbJbeXl5mDp1Kp555hm88847KCkpwaJFi7Bo0SKsXLnSrnMbCwwMRFNTEwDg+eefx+rVq/HGG2+gb9++2L59O2bPno3Y2FhMmDBBvs1jjz2Gl156Cb1790ZkZCS+//57nDhxAv/973+xYcMGVFdX44477sAf/vAHrFmzxuLjdvZY7777LgYPHoz/+7//w5/+9Cfce++96NGjhxykGRszZgxeeeUVPPnkkzh27BgAICQkBJWVlVi6dCn27duHSy+9FABw6NAh/PTTTybBtSswSCMTUtq//XdBUtp/+exhDNSIiIiIFDB79mw8/vjjOH36NABg165d+PDDD02CtLq6OixfvhyrVq3CtGnTAAArVqzApk2b8Pbbb+ORRx7B8uXLkZ6ejn/+858AgP79++Pnn3/GCy+8IN/P888/j9tvvx1//vOfAQB9+/bF//3f/2HChAlYvny5Q4uXDxw4gLVr12LixIlobGzEc889h82bN2P06NEAgN69e2Pnzp148803TYK0p556CpMnTza5r4aGBrz33nvo0aMHAODf//43pk+fjn/+859ISEgwua4tj9WjRw+8+eabmDNnDgoLC/HVV1/h0KFD8PMzD380Gg3Cw8MhCILJY4WEhGDKlClYuXKlHKStXLkSEyZMQO/eve1+vuzBII1kOr2IpRtyrab9BQBLN+RickYC1CrvrN8lIiKi7i3QX43cp6Z0er29+eWYt3Jfp9dbNf9SZKdF2fS49oqNjcX06dOxatUqiKKI6dOnIyYmxuQ6eXl5aG5uxmWXXSZf5u/vj+zsbBw9ehQAcPToUYwcOdLkdlLwIjly5Ah++uknk8yUKIrQ6/XIz8/HwIEDbTrzzz//jJCQEOh0OjQ1NWH69Ol47bXXcOLECdTX15sFX01NTWblmyNGjDC73+TkZDlAk86v1+tx7NgxsyDN1se66aab8Mknn+Dvf/87li9fjr59+9r0Oxq76667sGDBArz88stQqVRYu3Yt/vWvf9l9P/ZikEayvfnlZo2zxkQABVUN2JtfjtHp0e47GBEREZGNBEGwqexwXN9YJIZrUVjVYPELagFAQrgW4/rGuvTL6QULFmDRokUAgGXLlrnscWpra3HPPffg/vvvN/uZPYNK+vfvj88//xx+fn5ISkqCRqMBALkH7ssvvzQJ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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "**Generate text**" ], "metadata": { "id": "07kkXXJmViX8" } }, { "cell_type": "code", "source": [ "import torch.nn.functional as F\n", "\n", "# Ensure '' token is in the vocabularies\n", "if '' not in english_vocab:\n", " english_vocab[''] = len(english_vocab)\n", "if '' not in icelandic_vocab:\n", " icelandic_vocab[''] = len(icelandic_vocab)\n", "\n", "# Reverse vocab dictionaries\n", "english_reverse_vocab = {idx: word for word, idx in english_vocab.items()}\n", "icelandic_reverse_vocab = {idx: word for word, idx in icelandic_vocab.items()}\n", "\n", "# Function to generate text\n", "def generate_text(model, vocab, reverse_vocab, seed_text, max_length=50):\n", " model.eval()\n", "\n", " # Tokenize and convert seed text to indices\n", " seed_tokens = [vocab.get(word, vocab['']) for word in seed_text.split()]\n", " input_seq = torch.tensor(seed_tokens).unsqueeze(0) # Add batch dimension\n", "\n", " generated_text = seed_text.split()\n", "\n", " with torch.no_grad():\n", " for _ in range(max_length):\n", " output = model(input_seq) # Forward pass\n", "\n", " # Check the shape of the output\n", " if len(output.shape) == 2:\n", " # Handle (batch_size, vocab_size)\n", " predictions = F.softmax(output, dim=-1)\n", " else:\n", " # Handle (batch_size, sequence_length, vocab_size)\n", " predictions = F.softmax(output[:, -1, :], dim=-1)\n", "\n", " next_token_idx = torch.argmax(predictions, dim=-1).item()\n", "\n", " # Append the predicted token\n", " next_token_word = reverse_vocab.get(next_token_idx, '')\n", " generated_text.append(next_token_word)\n", "\n", " # Update input sequence with the predicted token\n", " input_seq = torch.cat([input_seq, torch.tensor([[next_token_idx]])], dim=1)\n", "\n", " return ' '.join(generated_text)\n", "\n", "# Generate text in English\n", "print(\"Generating text in English...\")\n", "seed_text = \"Today is a good ohh yes\"\n", "generated_english = generate_text(combined_model, english_vocab, english_reverse_vocab, seed_text)\n", "print(\"Generated English Text:\", generated_english)\n", "\n", "# Generate text in Icelandic\n", "print(\"Generating text in Icelandic...\")\n", "seed_text_icelandic = \"þetta mun auka\"\n", "generated_icelandic = generate_text(combined_model, icelandic_vocab, icelandic_reverse_vocab, seed_text_icelandic)\n", "print(\"Generated Icelandic Text:\", generated_icelandic)\n" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "N09nTZPNqRXw", "outputId": "bd5a1748-694c-493f-c631-fcb29ffe9374" }, "execution_count": 22, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Generating text in English...\n", "Generated English Text: Today is a good ohh yes in three research input output one is an object input output there are several types of these disasters can vary these can can can find the instance and accuracy the behavior of the given polynomial input x x x x can can add as the sentence but the speaker she\n", "Generating text in Icelandic...\n", "Generated Icelandic Text: þetta mun auka áberandi í utan eins og vieigandi alaandi og hjálpa til a gera gera get um a afslætti sínu sé einföld og sigrast og sanngjarnan til vinnu og gera er almennt á núverandi me frammistöu og getu getu okkar eins og okkar okkar til þátttöku og málverk til a draga úr\n" ] } ] }, { "cell_type": "code", "source": [], "metadata": { "id": "3_URP8RbqRLT" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "END END" ], "metadata": { "id": "BENy15FBq52n" } } ], "metadata": { "colab": { "provenance": [] }, "kernelspec": { "display_name": "Python 3", "name": "python3" }, "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 0 }