{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"provenance":[]},"kernelspec":{"name":"python3","display_name":"Python 3"},"language_info":{"name":"python"}},"cells":[{"cell_type":"code","execution_count":1,"metadata":{"id":"fh_udV1UwMAI","executionInfo":{"status":"ok","timestamp":1683371603134,"user_tz":-120,"elapsed":3355,"user":{"displayName":"Rachel","userId":"14306854771685514192"}}},"outputs":[],"source":["# importing\n","import pandas as pd\n","import numpy as np\n","from sklearn.feature_extraction.text import TfidfVectorizer\n","from sklearn.metrics import classification_report\n","from sklearn.linear_model import LogisticRegression\n","from sklearn.model_selection import train_test_split\n","import nltk"]},{"cell_type":"code","source":["from google.colab import drive\n","drive.mount('/content/gdrive')\n","%cd gdrive/MyDrive/NLP_Project"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"mQRfWLf7xser","executionInfo":{"status":"ok","timestamp":1683371625856,"user_tz":-120,"elapsed":22729,"user":{"displayName":"Rachel","userId":"14306854771685514192"}},"outputId":"022758a4-467c-40ef-91c5-2c8a3abe605c"},"execution_count":2,"outputs":[{"output_type":"stream","name":"stdout","text":["Mounted at /content/gdrive\n","/content/gdrive/MyDrive/NLP_Project\n"]}]},{"cell_type":"code","source":["df = pd.read_csv('/content/gdrive/MyDrive/NLP_Project/training.csv', usecols=['text', 'label'])"],"metadata":{"id":"O9lenMZmxvGh","executionInfo":{"status":"ok","timestamp":1683371626702,"user_tz":-120,"elapsed":850,"user":{"displayName":"Rachel","userId":"14306854771685514192"}}},"execution_count":3,"outputs":[]},{"cell_type":"markdown","source":["# Preprocessing"],"metadata":{"id":"knup3EKfxAdQ"}},{"cell_type":"code","source":["import re\n","import spacy\n","\n","nlp = spacy.load('en_core_web_sm')\n","\n","def clean_text(text):\n"," # Remove HTML tags\n"," html_regex = re.compile('<.*?>')\n"," text = html_regex.sub('', text)\n"," \n"," # Remove URLs\n"," url_regex = re.compile(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+')\n"," text = url_regex.sub('', text)\n"," \n"," # Convert to lowercase\n"," text = text.lower()\n"," \n"," # Remove special characters\n"," regex = re.compile(r'[^a-zA-Z\\d\\s:]')\n"," text = regex.sub('', text)\n"," \n"," # Replace newline characters with spaces\n"," text = text.replace('\\n', ' ')\n"," \n"," return text\n"," "],"metadata":{"id":"87r740XLxqN4"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["df['text'].apply(clean_text)"],"metadata":{"id":"pT0nAsZvy25M","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1683367680207,"user_tz":-120,"elapsed":4,"user":{"displayName":"Rachel","userId":"14306854771685514192"}},"outputId":"055c45b8-bb34-4d17-9266-769e56c3148b"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0 matt fitzpatrick defeats jordan spieth in dram...\n","1 who warns some hospitals in khartoum short of ...\n","2 excavation shows facility included luxurious d...\n","3 knight hits hattrick as usa stun rivals canada...\n","4 european council chiefs costly private jet use...\n"," ... \n","1594 in the first of a new series of posts on the s...\n","1595 and there are lots of products we simply dont ...\n","1596 weve subsequently learned that firm departures...\n","1597 iraq is ready to commit to freezing the civil ...\n","1598 headquartered in zurich numbrs was one of the ...\n","Name: text, Length: 1599, dtype: object"]},"metadata":{},"execution_count":5}]},{"cell_type":"code","source":["# check how evenly distributed the quality ratings are\n","import matplotlib.pyplot as plt\n","classes = df['label'].unique()\n","counts = []\n","\n","for i in classes:\n"," count = len(df[df['label']==i])\n"," counts.append(count)\n","\n","print(df.label.value_counts())\n","print(\"----------------------------------------------------\")\n","\n","plt.bar(['human', 'llm'], counts)\n","plt.show();"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":503},"id":"eC4Cri8fjkjJ","executionInfo":{"status":"ok","timestamp":1683368367896,"user_tz":-120,"elapsed":751,"user":{"displayName":"Rachel","userId":"14306854771685514192"}},"outputId":"2c8ac9f2-09dd-4870-f090-468f542d7604"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["llm 917\n","human 916\n","Name: label, dtype: int64\n","----------------------------------------------------\n"]},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"iVBORw0KGgoAAAANSUhEUgAAAigAAAGdCAYAAAA44ojeAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAajklEQVR4nO3df5BV5WH/8c8u6PIj7CI07MIEgWTMCJVEIxZXncbGHUmCGW1oUhKa2tQRx0IaZKqBKZL4I0GpVQZCJJrEkInGNjNJ2mAkoahkOmxQMXYsMcSmWpjS3bVFdpUMy4+93z8y3K/rr2RhcR/I6zVzZ7jPee45z/nj7L7n3LvcmkqlUgkAQEFqB3oBAACvJFAAgOIIFACgOAIFACiOQAEAiiNQAIDiCBQAoDgCBQAozuCBXsCR6Onpya5duzJixIjU1NQM9HIAgN9CpVLJiy++mHHjxqW29o3vkRyXgbJr166MHz9+oJcBAByBnTt35m1ve9sbzjkuA2XEiBFJfn2C9fX1A7waAOC30dXVlfHjx1d/j7+R4zJQDr+tU19fL1AA4Djz23w8w4dkAYDiCBQAoDgCBQAojkABAIojUACA4ggUAKA4AgUAKI5AAQCKI1AAgOIIFACgOAIFACiOQAEAiiNQAIDiCBQAoDiDB3oBAANh4qIHBnoJULTnbpk5oMcXKK/BDy54fQP9Qwv43eAtHgCgOAIFACiOQAEAiiNQAIDiCBQAoDgCBQAojkABAIojUACA4ggUAKA4AgUAKI5AAQCKI1AAgOIIFACgOAIFACiOQAEAiiNQAIDiCBQAoDgCBQAojkABAIojUACA4ggUAKA4AgUAKI5AAQCKI1AAgOIIFACgOAIFACiOQAEAiiNQAIDiCBQAoDgCBQAojkABAIojUACA4ggUAKA4AgUAKI5AAQCKI1AAgOIIFACgOAIFACiOQAEAitOnQDl06FCuv/76TJo0KUOHDs073vGO3HTTTalUKtU5lUolS5cuzdixYzN06NC0tLTkmWee6bWf3bt3Z86cOamvr8/IkSNzxRVX5KWXXuqfMwIAjnt9CpRbb701d955Z774xS/m6aefzq233prly5dn1apV1TnLly/PypUrs2bNmmzZsiXDhw/PjBkzsm/fvuqcOXPmZNu2bdmwYUPWrVuXH//4x5k7d27/nRUAcFwb3JfJmzdvzqWXXpqZM2cmSSZOnJhvfetbefTRR5P8+u7JihUrsmTJklx66aVJkm984xtpbGzM9773vcyePTtPP/101q9fn8ceeyzTpk1LkqxatSof/OAHc9ttt2XcuHH9eX4AwHGoT3dQzjvvvGzcuDG/+MUvkiT/9m//ln/913/NBz7wgSTJs88+m7a2trS0tFRf09DQkOnTp6e1tTVJ0trampEjR1bjJElaWlpSW1ubLVu2vOZxu7u709XV1esBAJy4+nQHZdGiRenq6srpp5+eQYMG5dChQ/n85z+fOXPmJEna2tqSJI2Njb1e19jYWN3W1taWMWPG9F7E4MEZNWpUdc4rLVu2LDfccENflgoAHMf6dAflH//xH3PvvffmvvvuyxNPPJG1a9fmtttuy9q1a4/V+pIkixcvTmdnZ/Wxc+fOY3o8AGBg9ekOyrXXXptFixZl9uzZSZKpU6fmv/7rv7Js2bJcfvnlaWpqSpK0t7dn7Nix1de1t7fnzDPPTJI0NTWlo6Oj134PHjyY3bt3V1//SnV1damrq+vLUgGA41if7qD86le/Sm1t75cMGjQoPT09SZJJkyalqakpGzdurG7v6urKli1b0tzcnCRpbm7Onj17snXr1uqchx56KD09PZk+ffoRnwgAcOLo0x2UD33oQ/n85z+fU089Nb//+7+fn/70p7n99tvzl3/5l0mSmpqaLFiwIDfffHNOO+20TJo0Kddff33GjRuXyy67LEkyefLkvP/978+VV16ZNWvW5MCBA5k/f35mz57tL3gAgCR9DJRVq1bl+uuvz1/91V+lo6Mj48aNy1VXXZWlS5dW51x33XXZu3dv5s6dmz179uSCCy7I+vXrM2TIkOqce++9N/Pnz89FF12U2trazJo1KytXruy/swIAjms1lZf/N7DHia6urjQ0NKSzszP19fX9vv+Jix7o933CieK5W2YO9BL6hesc3tixuNb78vvbd/EAAMURKABAcQQKAFAcgQIAFEegAADFESgAQHEECgBQHIECABRHoAAAxREoAEBxBAoAUByBAgAUR6AAAMURKABAcQQKAFAcgQIAFEegAADFESgAQHEECgBQHIECABRHoAAAxREoAEBxBAoAUByBAgAUR6AAAMURKABAcQQKAFAcgQIAFEegAADFESgAQHEECgBQHIECABRHoAAAxREoAEBxBAoAUByBAgAUR6AAAMURKABAcQQKAFAcgQIAFEegAADFESgAQHEECgBQHIECABRHoAAAxREoAEBxBAoAUByBAgAUR6AAAMURKABAcQQKAFAcgQIAFEegAADFESgAQHEECgBQHIECABRHoAAAxREoAEBxBAoAUByBAgAUR6AAAMURKABAcQQKAFAcgQIAFEegAADFESgAQHH6HCj//d//nT/7sz/L6NGjM3To0EydOjWPP/54dXulUsnSpUszduzYDB06NC0tLXnmmWd67WP37t2ZM2dO6uvrM3LkyFxxxRV56aWXjv5sAIATQp8C5YUXXsj555+fk046KQ8++GB+9rOf5e///u9zyimnVOcsX748K1euzJo1a7Jly5YMHz48M2bMyL59+6pz5syZk23btmXDhg1Zt25dfvzjH2fu3Ln9d1YAwHFtcF8m33rrrRk/fnzuueee6tikSZOq/65UKlmxYkWWLFmSSy+9NEnyjW98I42Njfne976X2bNn5+mnn8769evz2GOPZdq0aUmSVatW5YMf/GBuu+22jBs3rj/OCwA4jvXpDso///M/Z9q0afnIRz6SMWPG5Kyzzsrdd99d3f7ss8+mra0tLS0t1bGGhoZMnz49ra2tSZLW1taMHDmyGidJ0tLSktra2mzZsuU1j9vd3Z2urq5eDwDgxNWnQPnP//zP3HnnnTnttNPywx/+MFdffXX++q//OmvXrk2StLW1JUkaGxt7va6xsbG6ra2tLWPGjOm1ffDgwRk1alR1zistW7YsDQ0N1cf48eP7smwA4DjTp0Dp6enJe97znnzhC1/IWWedlblz5+bKK6/MmjVrjtX6kiSLFy9OZ2dn9bFz585jejwAYGD1KVDGjh2bKVOm9BqbPHlyduzYkSRpampKkrS3t/ea097eXt3W1NSUjo6OXtsPHjyY3bt3V+e8Ul1dXerr63s9AIATV58C5fzzz8/27dt7jf3iF7/IhAkTkvz6A7NNTU3ZuHFjdXtXV1e2bNmS5ubmJElzc3P27NmTrVu3Vuc89NBD6enpyfTp04/4RACAE0ef/ornmmuuyXnnnZcvfOEL+ehHP5pHH300d911V+66664kSU1NTRYsWJCbb745p512WiZNmpTrr78+48aNy2WXXZbk13dc3v/+91ffGjpw4EDmz5+f2bNn+wseACBJHwPlnHPOyXe/+90sXrw4N954YyZNmpQVK1Zkzpw51TnXXXdd9u7dm7lz52bPnj254IILsn79+gwZMqQ659577838+fNz0UUXpba2NrNmzcrKlSv776wAgONaTaVSqQz0Ivqqq6srDQ0N6ezsPCafR5m46IF+3yecKJ67ZeZAL6FfuM7hjR2La70vv799Fw8AUByBAgAUR6AAAMURKABAcQQKAFAcgQIAFEegAADFESgAQHEECgBQHIECABRHoAAAxREoAEBxBAoAUByBAgAUR6AAAMURKABAcQQKAFAcgQIAFEegAADFESgAQHEECgBQHIECABRHoAAAxREoAEBxBAoAUByBAgAUR6AAAMURKABAcQQKAFAcgQIAFEegAADFESgAQHEECgBQHIECABRHoAAAxREoAEBxBAoAUByBAgAUR6AAAMURKABAcQQKAFAcgQIAFEegAADFESgAQHEECgBQHIECABRHoAAAxREoAEBxBAoAUByBAgAUR6AAAMURKABAcQQKAFAcgQIAFEegAADFESgAQHEECgBQHIECABRHoAAAxREoAEBxBAoAUByBAgAUR6AAAMURKABAcQQKAFAcgQIAFOeoAuWWW25JTU1NFixYUB3bt29f5s2bl9GjR+ctb3lLZs2alfb29l6v27FjR2bOnJlhw4ZlzJgxufbaa3Pw4MGjWQoAcAI54kB57LHH8uUvfznvete7eo1fc801+f73v59vf/vb2bRpU3bt2pUPf/jD1e2HDh3KzJkzs3///mzevDlr167N17/+9SxduvTIzwIAOKEcUaC89NJLmTNnTu6+++6ccsop1fHOzs589atfze233573ve99Ofvss3PPPfdk8+bN+clPfpIk+dGPfpSf/exn+eY3v5kzzzwzH/jAB3LTTTdl9erV2b9/f/+cFQBwXDuiQJk3b15mzpyZlpaWXuNbt27NgQMHeo2ffvrpOfXUU9Pa2pokaW1tzdSpU9PY2FidM2PGjHR1dWXbtm2vebzu7u50dXX1egAAJ67BfX3B/fffnyeeeCKPPfbYq7a1tbXl5JNPzsiRI3uNNzY2pq2trTrn5XFyePvhba9l2bJlueGGG/q6VADgONWnOyg7d+7Mpz/96dx7770ZMmTIsVrTqyxevDidnZ3Vx86dO9+0YwMAb74+BcrWrVvT0dGR97znPRk8eHAGDx6cTZs2ZeXKlRk8eHAaGxuzf//+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Pv7xj+eqq67K4sWL8/jjj6dSqWT+/PkDvUzebBXoB+9973srF1xwQa+xc845p/KZz3ym8uyzz1aSVH76059Wt73wwguVJJWHH364UqlUKg8//HAlSeVf/uVfqnOWLVtWSVL55S9/WR276qqrKjNmzHjddTz//POVJJWnnnqqUqlUqsf+yle+Up2zbdu2SpLK008/fTSnDPyW3vve91Y+/elPVyqVSmXChAmVO+64o7otSWXJkiXV562trZUkla9+9avVsW9961uVIUOGvFnLpRDuoNBv3vWud/V6Pnbs2HR0dBzxPhobGzNs2LC8/e1v7zX28n0+88wz+djHPpa3v/3tqa+vz8SJE5MkO3bseN39jh07Nkn6vDbg2HjldZ8kU6dO7TW2b9++dHV1velrY+AM2HfxcOI56aSTej2vqalJT09Pamt/3cGVl32rwoEDB37jPmpqal53n4d96EMfyoQJE3L33Xdn3Lhx6enpyRlnnJH9+/e/4X6TvOptIGBgvNb16ZrFHRSOube+9a1Jkv/5n/+pjr38A7NH6v/+7/+yffv2LFmyJBdddFEmT56cF1544aj3C8DAcweFY27o0KE599xzc8stt2TSpEnp6OjIkiVLjnq/p5xySkaPHp277rorY8eOzY4dO7Jo0aJ+WDEAA80dFN4UX/va13Lw4MGcffbZWbBgQW6++eaj3mdtbW3uv//+bN26NWeccUauueaa/N3f/V0/rBaAgVZTefkHAwAACuAOCgBQHIECABRHoAAAxREoAEBxBAoAUByBAgAUR6AAAMURKABAcQQKAFAcgQIAFEegAADFESgAQHH+H0EeffmCSLJVAAAAAElFTkSuQmCC\n"},"metadata":{}}]},{"cell_type":"markdown","source":["# Model"],"metadata":{"id":"Cbh05-2RxCmi"}},{"cell_type":"code","source":["# define X and y\n","X = df.drop(columns=['label'])\n","y = df.label\n","\n","X.shape, y.shape"],"metadata":{"id":"uHL4dNnpy7RF","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1683368376050,"user_tz":-120,"elapsed":2,"user":{"displayName":"Rachel","userId":"14306854771685514192"}},"outputId":"85c17ff9-1052-471c-9f4f-dadbcd3af049"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["((1833, 1), (1833,))"]},"metadata":{},"execution_count":30}]},{"cell_type":"code","source":["# split the train and test data, 80:20\n","from sklearn.model_selection import train_test_split\n","X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.33, random_state=42)\n","\n","# check it's split correctly\n","print(X_train.shape, y_train.shape)\n","print(X_test.shape, y_test.shape)"],"metadata":{"id":"OneP3I8wzAca","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1683368376508,"user_tz":-120,"elapsed":6,"user":{"displayName":"Rachel","userId":"14306854771685514192"}},"outputId":"f0e149c6-7a0d-4037-d407-52ab629bf335"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["(1228, 1) (1228,)\n","(605, 1) (605,)\n"]}]},{"cell_type":"code","source":["print(X_train.iloc[0], y_train.iloc[0])"],"metadata":{"id":"9zcCTN-B6uGW","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1683368376509,"user_tz":-120,"elapsed":5,"user":{"displayName":"Rachel","userId":"14306854771685514192"}},"outputId":"2b80f68e-f428-445b-d809-86c589535c85"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["text Banks have already started ditching payments w...\n","Name: 1395, dtype: object human\n"]}]},{"cell_type":"code","source":["# vectorize the text\n","vectorizer = TfidfVectorizer(tokenizer=lambda text: [token.text for token in nlp(text)], # takes the text and tokenizes it\n"," preprocessor=lambda text: text.strip(), # strip whitespace from tokenized text\n"," ngram_range=(1, 2), # unigrams and bigrams\n"," min_df=5) # tokens must appear in at least 5 documents"],"metadata":{"id":"Q_H-ay4GJmf3"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["# vectorize the train and test sets\n","X_train = vectorizer.fit_transform(X_train['text'])\n","X_test = vectorizer.transform(X_test['text'])"],"metadata":{"id":"JguM77n5JoEE","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1683368531736,"user_tz":-120,"elapsed":154452,"user":{"displayName":"Rachel","userId":"14306854771685514192"}},"outputId":"7c67acbe-2dd5-410d-81a3-0815672687ef"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stderr","text":["/usr/local/lib/python3.10/dist-packages/sklearn/feature_extraction/text.py:528: UserWarning: The parameter 'token_pattern' will not be used since 'tokenizer' is not None'\n"," warnings.warn(\n"]}]},{"cell_type":"code","source":["# train the model\n","logreg = LogisticRegression(max_iter=750, C=100, solver=\"saga\")\n","logreg.fit(X_train, y_train)"],"metadata":{"id":"7dNWamA4Jo56","colab":{"base_uri":"https://localhost:8080/","height":131},"executionInfo":{"status":"ok","timestamp":1683368536927,"user_tz":-120,"elapsed":5194,"user":{"displayName":"Rachel","userId":"14306854771685514192"}},"outputId":"8ebd3866-4160-4295-de4d-fd4307768927"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stderr","text":["/usr/local/lib/python3.10/dist-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n"," warnings.warn(\n"]},{"output_type":"execute_result","data":{"text/plain":["LogisticRegression(C=100, max_iter=750, solver='saga')"],"text/html":["
LogisticRegression(C=100, max_iter=750, solver='saga')
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
"]},"metadata":{},"execution_count":35}]},{"cell_type":"markdown","source":["# Evaluation"],"metadata":{"id":"RZlLDa0_xGE2"}},{"cell_type":"code","source":["# evaluate the model\n","predictions = logreg.predict(X_test)\n","print(classification_report(y_test, predictions))"],"metadata":{"id":"rvcCcENSLrZj","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1683368649222,"user_tz":-120,"elapsed":380,"user":{"displayName":"Rachel","userId":"14306854771685514192"}},"outputId":"21e478ff-977d-49f9-9f92-ec3ec5b5d584"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":[" precision recall f1-score support\n","\n"," human 0.98 1.00 0.99 297\n"," llm 1.00 0.98 0.99 308\n","\n"," accuracy 0.99 605\n"," macro avg 0.99 0.99 0.99 605\n","weighted avg 0.99 0.99 0.99 605\n","\n"]}]},{"cell_type":"code","source":["# confusion matrix\n","from sklearn.metrics import classification_report, ConfusionMatrixDisplay\n","ConfusionMatrixDisplay.from_predictions(y_test, predictions);"],"metadata":{"id":"y_vdZnhcLxrz","colab":{"base_uri":"https://localhost:8080/","height":454},"executionInfo":{"status":"ok","timestamp":1683368672908,"user_tz":-120,"elapsed":394,"user":{"displayName":"Rachel","userId":"14306854771685514192"}},"outputId":"351334f4-edd1-497f-82ac-5756fc9324de"},"execution_count":null,"outputs":[{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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cFGgIgIAgGG+eddM/awtkIgAAGCYU5ac8naNCE9WBQAA58GfKyL1M2oAAHBRoCICAIBhvnmgWf2sLdTPqAEAuIg4bcsnW01lZmbqyiuvVGRkpGJjY3XzzTcrJyfHbUxaWposy3Lb7r//frcxeXl5GjhwoMLCwhQbG6tHH31UlZWVHn13KiIAAPiZTZs2acyYMbryyitVWVmp3/zmN+rXr5927dql8PBw17jRo0drxowZrs9hYWGuP1dVVWngwIGKj4/X1q1bdfjwYd11110KDAzUM888U+NYSEQAADDM6YPWjCcPNFuzZo3b58WLFys2NlY7duzQtdde69ofFham+Pj4M87x4YcfateuXfroo48UFxenLl26aObMmZo0aZIyMjIUFBRUo1hozQAAYFj123e93SSpuLjYbSsrK/vZ6x87dkySFBMT47Z/2bJluuSSS9ShQwdNnjxZJ0+edB3LyspSx44dFRcX59qXnp6u4uJi7dy5s8bfnYoIAAAXkaSkJLfPTz75pDIyMs463ul0aty4cbr66qvVoUMH1/7bb79dycnJSkxM1JdffqlJkyYpJydH77zzjiSpoKDALQmR5PpcUFBQ43hJRAAAMKxKlqq8fCBZ9fn5+flyOByu/cHBwec8b8yYMfr666+1ZcsWt/333Xef688dO3ZUQkKCrrvuOuXm5urSSy/1KtYfozUDAIBhvmzNOBwOt+1cicjYsWO1evVqbdiwQc2aNTtnjN27d5ck7d27V5IUHx+vI0eOuI2p/ny2dSVnQiICAICfsW1bY8eO1bvvvquPP/5YLVu2/NlzsrOzJUkJCQmSpNTUVH311VcqLCx0jVm3bp0cDofat29f41hozQAAYFiV5IPWTM2NGTNGy5cv15///GdFRka61nRERUUpNDRUubm5Wr58ua6//no1btxYX375pcaPH69rr71WnTp1kiT169dP7du315133qlZs2apoKBAU6ZM0ZgxY362HfRjJCIAABj249aKN3PU1Pz58yWdemjZjy1atEgjR45UUFCQPvroI82ZM0cnTpxQUlKShgwZoilTprjGNmjQQKtXr9YDDzyg1NRUhYeHa8SIEW7PHakJEhEAAAyr65fe2bZ9zuNJSUnatGnTz86TnJys999/v8bXPRPWiAAAAGOoiAAAYJgtS04v14jYXp5vCokIAACG1XVr5kJS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buc0bNhQMTExKigoqPF1vHrpHQAAuLDk5+e7vYD2fKsht912m+vPHTt2VKdOnXTppZdq48aNuu6667yOsxoVEQAATPNhRcThcLht55uI/FSrVq10ySWXaO/evZKk+Ph4FRYWuo2prKxUUVHRWdeVnAmJCAAAhtWHJ6seOHBA33//vRISEiRJqampOnr0qHbs2OEa8/HHH8vpdKp79+41npfWDAAAfqikpMRV3ZBO3ZiSnZ2tmJgYxcTEaPr06RoyZIji4+OVm5urxx57TK1bt1Z6erokKSUlRf3799fo0aO1YMECVVRUaOzYsbrttttqfMeMdJ4Vkc2bN+uOO+5QamqqDh48KEn6wx/+oC1btpzPdAAA+DcftmZqavv27eratau6du0qSZowYYK6du2qadOmqUGDBvryyy910003qU2bNho1apS6deumzZs3u7V6li1bpnbt2um6667T9ddfr549e+qVV17xKA6PKyJvv/227rzzTg0fPlyff/65ysrKJEnHjh3TM888o/fff9/TKQEA8G8GHvGelpYm2z77SWvXrv3ZOWJiYjx6eNmZeFwReeqpp7RgwQK9+uqrCgz8z7Mxrr76av3973/3KhgAAOBfPK6I5OTk6Nprrz1tf1RUlI4ePeqLmAAA8Cu+WGxa24tVa4vHFZH4+Hi3xS3VtmzZolatWvkkKAAA/Er1k1W93eohjxOR0aNH65FHHtG2bdtkWZYOHTqkZcuWaeLEiXrggQdqI0YAAC5uBharXig8bs08/vjjcjqduu6663Ty5Elde+21Cg4O1sSJE/XQQw/VRowAAOAi5XEiYlmWnnjiCT366KPau3evSkpK1L59e0VERNRGfAAAXPT8eY3IeT/QLCgoSO3bt/dlLAAA+CcDt+9eKDxORHr37i3LOvuCmI8//tirgAAAgP/wOBHp0qWL2+eKigplZ2fr66+/1ogRI3wVFwAA/sMX74rxl4rI7Nmzz7g/IyNDJSUlXgcEAIDf8ePWjM/evnvHHXfo9ddf99V0AADAD/js7btZWVkKCQnx1XQAAPgPP66IeJyIDB482O2zbds6fPiwtm/frqlTp/osMAAA/AW373ogKirK7XNAQIDatm2rGTNmqF+/fj4LDAAAXPw8SkSqqqp09913q2PHjmrUqFFtxQQAAPyER4tVGzRooH79+vGWXQAAfMmP3zXj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crIsy9Lq1av13XffqaSkRJGRkZo4caLGjx+vJUuWKDc3V3//+9/1wgsvuBaA3n///frmm2/06KOPKicnR8uXL9fixYs9+r6XXXaZ8vLytGLFCuXm5mru3LlnXHgbEhKiESNG6IsvvtDmzZv18MMPa+jQoYqPj5ckTZ8+XZmZmZo7d67+8Y9/6KuvvtKiRYv0u9/9zqN4ANQOEhGgnggLC9Mnn3yi5s2ba/DgwUpJSdGoUaNUWlrqqpD8+te/1p133qkRI0YoNTVVkZGRuuWWW8457/z583XrrbfqwQcfVLt27TR69GidOHFCktS0aVNNnz5djz/+uOLi4jR27FhJ0syZMzV16lRlZmYqJSVF/fv313vvvaeWLVtKOrVu4+2339bKlSvVuXNnLViwQM8884xH3/emm27S+PHjNXbsWHXp0kVbt27V1KlTTxvXunVrDR48WNdff7369eunTp06ud2ee++99+q1117TokWL1LFjR/Xq1UuLFy92xQrALMs+2yo2AACAWkZFBAAAGEMiAgAAjCERAQAAxpCIAAAAY0hEAACAMSQiAADAGBIRAABgDIkIAAAwhkQEAAAYQyICAACMIREBAADGkIgAAABj/j8NBy/JB6rfuQAAAABJRU5ErkJggg==\n"},"metadata":{}}]},{"cell_type":"markdown","source":["# Save the model and create a directory"],"metadata":{"id":"3KSpFuq3xIqK"}},{"cell_type":"code","source":["!pip install transformers"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"8J9NQlEvxLU4","executionInfo":{"status":"ok","timestamp":1683371748676,"user_tz":-120,"elapsed":7308,"user":{"displayName":"Rachel","userId":"14306854771685514192"}},"outputId":"d020932e-d0c5-4fdb-caa7-3fec77f14f4a"},"execution_count":5,"outputs":[{"output_type":"stream","name":"stdout","text":["Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Requirement already satisfied: transformers in /usr/local/lib/python3.10/dist-packages (4.28.1)\n","Requirement already satisfied: huggingface-hub<1.0,>=0.11.0 in /usr/local/lib/python3.10/dist-packages (from transformers) (0.14.1)\n","Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from transformers) (23.1)\n","Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.10/dist-packages (from transformers) (2022.10.31)\n","Requirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.10/dist-packages (from transformers) (4.65.0)\n","Requirement already satisfied: tokenizers!=0.11.3,<0.14,>=0.11.1 in /usr/local/lib/python3.10/dist-packages (from transformers) (0.13.3)\n","Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.10/dist-packages (from transformers) (1.22.4)\n","Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from transformers) (2.27.1)\n","Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.10/dist-packages (from transformers) (6.0)\n","Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from transformers) (3.12.0)\n","Requirement already satisfied: fsspec in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0,>=0.11.0->transformers) (2023.4.0)\n","Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0,>=0.11.0->transformers) (4.5.0)\n","Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (2022.12.7)\n","Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (1.26.15)\n","Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (3.4)\n","Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (2.0.12)\n"]}]},{"cell_type":"code","source":["!pip install huggingface-cli"],"metadata":{"id":"6hu8FfJBxlm-","executionInfo":{"status":"ok","timestamp":1683371750524,"user_tz":-120,"elapsed":1861,"user":{"displayName":"Rachel","userId":"14306854771685514192"}},"outputId":"1bb46eda-e34b-400b-ac14-ff3924700e57","colab":{"base_uri":"https://localhost:8080/"}},"execution_count":6,"outputs":[{"output_type":"stream","name":"stdout","text":["Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","\u001b[31mERROR: Could not find a version that satisfies the requirement huggingface-cli (from versions: none)\u001b[0m\u001b[31m\n","\u001b[0m\u001b[31mERROR: No matching distribution found for huggingface-cli\u001b[0m\u001b[31m\n","\u001b[0m"]}]},{"cell_type":"code","source":["huggingface-cli repo create "],"metadata":{"id":"HnbjPtJZxfHQ"},"execution_count":null,"outputs":[]}]}