diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..47efcc7 --- /dev/null +++ b/.env.example @@ -0,0 +1,4 @@ +# API Keys and Other Secrets +OPENAI_API_KEY="something" +MISTRAL_API_KEY="anoher-secret" +HUGGINGFACE_TOKEN="and-anotherg" diff --git a/.gitignore b/.gitignore index 5eff2a9..691c57a 100644 --- a/.gitignore +++ b/.gitignore @@ -13,7 +13,7 @@ slides/ # Distribution / packaging .Python -env/ +.venv/ build/ develop-eggs/ dist/ diff --git a/data/docs/who-docs/Cholera-Report.pdf b/data/docs/who-docs/Cholera-Report.pdf new file mode 100644 index 0000000..7ecf47d Binary files /dev/null and b/data/docs/who-docs/Cholera-Report.pdf differ diff --git a/data/docs/who-docs/Dengue-Global-situation.pdf b/data/docs/who-docs/Dengue-Global-situation.pdf new file mode 100644 index 0000000..defa68c Binary files /dev/null and b/data/docs/who-docs/Dengue-Global-situation.pdf differ diff --git a/data/docs/who-docs/Hepatitis-Chad.pdf b/data/docs/who-docs/Hepatitis-Chad.pdf new file mode 100644 index 0000000..502796a Binary files /dev/null and b/data/docs/who-docs/Hepatitis-Chad.pdf differ diff --git a/data/docs/who-docs/MidEast-COVID.pdf b/data/docs/who-docs/MidEast-COVID.pdf new file mode 100644 index 0000000..0a76ac4 Binary files /dev/null and b/data/docs/who-docs/MidEast-COVID.pdf differ diff --git a/notebooks/malawi-nov-24/2-document-classification-with-sklearn.ipynb b/notebooks/malawi-nov-24/2-document-classification-with-sklearn.ipynb deleted file mode 100644 index 20c458b..0000000 --- a/notebooks/malawi-nov-24/2-document-classification-with-sklearn.ipynb +++ /dev/null @@ -1,575 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Building a Document Classification System\n", - "The NumPy (Numerical Python) library used for working iwith arrays, and the Scikit-learn library is a python library built on NumPy, SciPy and matplotlib for data analytics and machine learning. The NLTK (Natural Language Toolkit) provides access to over 50 corpora and lexical resources such as WordNet, along with a suite of text processing libraries for classification, tokenization, stemming, tagging, parsing, and semantic reasoning, wrappers for industrial-strength NLP libraries." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Ensuring that you have the necessary libraries\n", - "# !pip install nltk\n", - "# !pip install numpy\n", - "# !pip install scikit-learn" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import nltk\n", - "from nltk.corpus import reuters\n", - "from sklearn.feature_extraction.text import TfidfVectorizer\n", - "from sklearn.model_selection import train_test_split\n", - "from sklearn.svm import LinearSVC\n", - "from sklearn.metrics import accuracy_score, classification_report\n", - "\n", - "from sklearn.feature_extraction.text import CountVectorizer\n", - "from sklearn.naive_bayes import MultinomialNB" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 1. Load your data" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The Reuters-21578 dataset is one of the most widely used data collections for text categorization research. It is a collection of documents with news articles and the original corpus has 10,369 documents and a vocabulary of 29,930 word and has labeled categories such as \"earnings\", \"acquisitions\".. etc. You can read metadata about the dataset on [Hugging Face](https://huggingface.co/datasets/ucirvine/reuters21578)" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[nltk_data] Downloading package reuters to\n", - "[nltk_data] /Users/dunstanmatekenya/nltk_data...\n", - "[nltk_data] Package reuters is already up-to-date!\n" - ] - }, - { - "data": { - "text/plain": [ - "True" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# download the dataset\n", - "nltk.download('reuters')" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "# Load the Reuters-21578 dataset\n", - "documents = reuters.fileids()\n", - "train_docs = list(filter(lambda doc: doc.startswith(\"train\"), documents))\n", - "test_docs = list(filter(lambda doc: doc.startswith(\"test\"), documents))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 2. Prepare your data" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Prepare the data by extracting the raw text and category labels for both the training and testing documents. Assumption is that each document has only one category label, so we take only the first category label for each document." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "# Prepare the data\n", - "train_data = [reuters.raw(doc_id) for doc_id in train_docs]\n", - "train_labels = [reuters.categories(doc_id)[0] for doc_id in train_docs]\n", - "test_data = [reuters.raw(doc_id) for doc_id in test_docs]\n", - "test_labels = [reuters.categories(doc_id)[0] for doc_id in test_docs]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Question-How many different classes are in the training data?" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Explore some of the training examples" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Article content: COMPUTER TERMINAL SYSTEMS <CPML> COMPLETES SALE\n", - " Computer Terminal Systems Inc said\n", - " it has completed the sale of 200,000 shares of its common\n", - " stock, and warrants to acquire an additional one mln shares, to\n", - " <Sedio N.V.> of Lugano, Switzerland for 50,000 dlrs.\n", - " The company said the warrants are exercisable for five\n", - " years at a purchase price of .125 dlrs per share.\n", - " Computer Terminal said Sedio also has the right to buy\n", - " additional shares and increase its total holdings up to 40 pct\n", - " of the Computer Terminal's outstanding common stock under\n", - " certain circumstances involving change of control at the\n", - " company.\n", - " The company said if the conditions occur the warrants would\n", - " be exercisable at a price equal to 75 pct of its common stock's\n", - " market price at the time, not to exceed 1.50 dlrs per share.\n", - " Computer Terminal also said it sold the technolgy rights to\n", - " its Dot Matrix impact technology, including any future\n", - " improvements, to <Woodco Inc> of Houston, Tex. for 200,000\n", - " dlrs. But, it said it would continue to be the exclusive\n", - " worldwide licensee of the technology for Woodco.\n", - " The company said the moves were part of its reorganization\n", - " plan and would help pay current operation costs and ensure\n", - " product delivery.\n", - " Computer Terminal makes computer generated labels, forms,\n", - " tags and ticket printers and terminals.\n", - " \n", - "\n", - " n\\, Label: acq\n" - ] - } - ], - "source": [ - "print(\"Article content: {} n\\, Label: {}\".format(train_data[1], train_labels[1]))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 3. Vectorizing the text data" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "- Vectorize the text data using the TfidVectorizer from scikit-learn. TF-IDF is an abbreviation for Term Frequency Inverse Document Frequency. This is very common algorithm to transform text into a meaningful representation of numbers which is used to fit machine algorithm for prediction. \n", - "- Its worth noting that nowadays, this vectorization approach is not commonly used. We will cover **word embeddings** tomorrow which is a better approach to represent words as numbers because **vector embeddings** can capture semantic meanings better.\n", - "\n", - "For the sklearn TF-IDF vectorizer, you can learn more about it [here](https://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.TfidfVectorizer.html)" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [], - "source": [ - "# Vectorize the text data\n", - "vectorizer = TfidfVectorizer(stop_words=\"english\", max_features=1000)\n", - "X_train = vectorizer.fit_transform(train_data)\n", - "X_test = vectorizer.transform(test_data)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Question: What role are the ```stop words``` playing in the code above? You might have learned this from Prof. Mohamad Ali already." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 4. Training a Linear Support Vector Machine (LinearSVC) classifier using the vectorized training data and corresponding label" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
LinearSVC()
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.
" - ], - "text/plain": [ - "LinearSVC()" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Train the classifier\n", - "classifier = LinearSVC()\n", - "classifier.fit(X_train, train_labels)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "classifier." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 5. Evaluate the classifier used and calculate the accuracy score as well as some other metrics (Precision, Recall and F-1 score)" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Accuracy: 0.876117919841007\n", - " precision recall f1-score support\n", - "\n", - " acq 0.95 0.96 0.96 719\n", - " alum 0.33 0.18 0.24 22\n", - " barley 1.00 0.71 0.83 14\n", - " bop 0.77 0.80 0.79 30\n", - " carcass 0.79 0.65 0.71 17\n", - " castor-oil 0.00 0.00 0.00 1\n", - " cocoa 0.94 1.00 0.97 17\n", - " coconut 0.00 0.00 0.00 2\n", - " coconut-oil 0.00 0.00 0.00 2\n", - " coffee 0.89 0.96 0.92 25\n", - " copper 0.93 0.93 0.93 15\n", - " corn 0.85 0.81 0.83 48\n", - " cotton 1.00 0.86 0.92 14\n", - " cpi 0.62 0.62 0.62 24\n", - " cpu 0.00 0.00 0.00 1\n", - " crude 0.79 0.93 0.86 182\n", - " dfl 0.00 0.00 0.00 1\n", - " dlr 0.70 0.72 0.71 43\n", - " dmk 0.00 0.00 0.00 1\n", - " earn 0.98 0.99 0.98 1083\n", - " fuel 1.00 0.22 0.36 9\n", - " gas 0.75 0.33 0.46 9\n", - " gnp 0.59 0.89 0.71 19\n", - " gold 0.96 0.96 0.96 26\n", - " grain 0.71 0.77 0.74 77\n", - " groundnut 0.00 0.00 0.00 3\n", - " heat 1.00 0.75 0.86 4\n", - " hog 1.00 0.50 0.67 4\n", - " housing 1.00 0.67 0.80 3\n", - " income 1.00 0.80 0.89 5\n", - " instal-debt 1.00 1.00 1.00 1\n", - " interest 0.78 0.76 0.77 124\n", - " ipi 1.00 1.00 1.00 11\n", - " iron-steel 0.69 0.64 0.67 14\n", - " jet 0.00 0.00 0.00 1\n", - " jobs 0.73 0.85 0.79 13\n", - " l-cattle 0.00 0.00 0.00 2\n", - " lead 0.83 0.42 0.56 12\n", - " lei 1.00 1.00 1.00 3\n", - " livestock 0.50 0.50 0.50 6\n", - " lumber 0.00 0.00 0.00 5\n", - " meal-feed 0.20 0.17 0.18 6\n", - " money-fx 0.65 0.65 0.65 96\n", - " money-supply 0.80 0.83 0.81 29\n", - " naphtha 0.00 0.00 0.00 1\n", - " nat-gas 0.64 0.54 0.58 13\n", - " nickel 0.00 0.00 0.00 1\n", - " oilseed 0.54 0.54 0.54 13\n", - " orange 0.75 0.33 0.46 9\n", - " palladium 0.00 0.00 0.00 1\n", - " palm-oil 0.67 1.00 0.80 4\n", - " pet-chem 1.00 0.50 0.67 6\n", - " platinum 0.00 0.00 0.00 3\n", - " potato 1.00 0.67 0.80 3\n", - " propane 0.00 0.00 0.00 2\n", - " rape-oil 0.00 0.00 0.00 1\n", - " reserves 1.00 0.64 0.78 14\n", - " retail 1.00 1.00 1.00 1\n", - " rice 0.00 0.00 0.00 1\n", - " rubber 0.69 1.00 0.82 9\n", - " ship 0.39 0.41 0.40 39\n", - " silver 0.00 0.00 0.00 0\n", - " soy-oil 0.00 0.00 0.00 2\n", - " soybean 0.00 0.00 0.00 2\n", - "strategic-metal 0.00 0.00 0.00 6\n", - " sugar 0.71 0.96 0.81 25\n", - " tea 0.00 0.00 0.00 3\n", - " tin 0.71 0.50 0.59 10\n", - " trade 0.70 0.93 0.80 76\n", - " veg-oil 0.54 0.64 0.58 11\n", - " wpi 0.62 0.56 0.59 9\n", - " yen 0.00 0.00 0.00 6\n", - " zinc 0.00 0.00 0.00 5\n", - "\n", - " accuracy 0.88 3019\n", - " macro avg 0.53 0.48 0.49 3019\n", - " weighted avg 0.86 0.88 0.87 3019\n", - "\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/dunstanmatekenya/anaconda3/lib/python3.10/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n", - " _warn_prf(average, modifier, msg_start, len(result))\n", - "/Users/dunstanmatekenya/anaconda3/lib/python3.10/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall and F-score are ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.\n", - " _warn_prf(average, modifier, msg_start, len(result))\n", - "/Users/dunstanmatekenya/anaconda3/lib/python3.10/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n", - " _warn_prf(average, modifier, msg_start, len(result))\n", - "/Users/dunstanmatekenya/anaconda3/lib/python3.10/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall and F-score are ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.\n", - " _warn_prf(average, modifier, msg_start, len(result))\n", - "/Users/dunstanmatekenya/anaconda3/lib/python3.10/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n", - " _warn_prf(average, modifier, msg_start, len(result))\n", - "/Users/dunstanmatekenya/anaconda3/lib/python3.10/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall and F-score are ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.\n", - " _warn_prf(average, modifier, msg_start, len(result))\n" - ] - } - ], - "source": [ - "# Evaluate the classifier\n", - "y_pred = classifier.predict(X_test)\n", - "accuracy = accuracy_score(test_labels, y_pred)\n", - "print(\"Accuracy:\", accuracy)\n", - "print(classification_report(test_labels, y_pred))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 6. Classify new documents (new BBC headlines) by vectorizing them using the same TfidfVectorizer and predicting their labels using the trained classifier" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Predicted labels: ['ship' 'ship' 'acq']\n" - ] - } - ], - "source": [ - "# Classify new documents (recent headlines obtained from BBC news regarding Tunisia)\n", - "new_docs = [\n", - " \"Tunisia says 23 people missing in Mediterranean sea.\",\n", - " \"Tunisia officials arrested in dispute over flag display.\",\n", - " \"Tunisia lawyer arrested during live news broadcast.\"\n", - "]\n", - "new_docs_vectors = vectorizer.transform(new_docs)\n", - "predicted_labels = classifier.predict(new_docs_vectors)\n", - "print(\"Predicted labels:\", predicted_labels)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Discussion" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "How did this classifier fare? What can you do to improve the model?
\n", - "Ans: Experimenting with different preprocessing techniques, feature extraction models and classification algorithms." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Trying with a different classifier" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Steps 1 - 3 will be the same." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Load the Reuters-21578 dataset\n", - "documents = reuters.fileids()\n", - "train_docs = list(filter(lambda doc: doc.startswith(\"train\"), documents))\n", - "test_docs = list(filter(lambda doc: doc.startswith(\"test\"), documents))\n", - "\n", - "# Prepare the data\n", - "train_data = [reuters.raw(doc_id) for doc_id in train_docs]\n", - "train_labels = [reuters.categories(doc_id)[0] for doc_id in train_docs]\n", - "test_data = [reuters.raw(doc_id) for doc_id in test_docs]\n", - "test_labels = [reuters.categories(doc_id)[0] for doc_id in test_docs]\n", - "\n", - "# Vectorize the text data\n", - "vectorizer = CountVectorizer(stop_words=\"english\", max_features=1000)\n", - "X_train = vectorizer.fit_transform(train_data)\n", - "X_test = vectorizer.transform(test_data)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Different Classifier (Multinomial Naive Bayes)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "classifier = MultinomialNB()\n", - "classifier.fit(X_train, train_labels)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Evaluate the classifier\n", - "y_pred = classifier.predict(X_test)\n", - "accuracy = accuracy_score(test_labels, y_pred)\n", - "print(\"Accuracy:\", accuracy)\n", - "print(classification_report(test_labels, y_pred))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Classify new documents (recent headlines obtained from BBC news regarding Tunisia)\n", - "new_docs = [\n", - " \"Tunisia says 23 people missing in Mediterranean sea.\",\n", - " \"Tunisia officials arrested in dispute over flag display.\",\n", - " \"Tunisia lawyer arrested during live news broadcast.\"\n", - "]\n", - "new_docs_vectors = vectorizer.transform(new_docs)\n", - "predicted_labels = classifier.predict(new_docs_vectors)\n", - "print(\"Predicted labels:\", predicted_labels)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Discussion: Compare the results" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The choice of classifier depends on the specific characteristics of your dataset and the problem at hand. Multinomial Naive Bayes is known to work well with text data and can handle high-dimensional feature spaces efficiently. However, it assumes that the features are independent of each other, which may not always be the case in real-world scenarios.\n", - "\n", - "You can also experiment with different classifiers, such as Logistic Regression, Random Forest, or Gradient Boosting, and compare their performance to find the best fit for your dataset. You can also refine the model by trying different feature extraction techniques and hyperparameters." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### There are also other ways you can approach this, for example, Document Classification using BERT. Here is a notebook example on Kaggle that you can explore: https://www.kaggle.com/code/merishnasuwal/document-classification-using-bert" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "BERT (Bidirectional Encoder Representations from Transformers) and other Transformer encoder architectures can also be used on a variety of tasks in NLP (natural language processing). They compute vector-space representations of natural language that are suitable for use in deep learning models. The BERT family of models uses the Transformer encoder architecture to process each token of input text in the full context of all tokens before and after. BERT models are usually pre-trained on a large corpus of text, then fine-tuned for specific tasks." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "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.8" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/notebooks/malawi-nov-24/3-intro-langchain.ipynb b/notebooks/malawi-nov-24/3-intro-langchain.ipynb index 82950fc..dedc751 100644 --- a/notebooks/malawi-nov-24/3-intro-langchain.ipynb +++ b/notebooks/malawi-nov-24/3-intro-langchain.ipynb @@ -1,14 +1,6 @@ { "cells": [ { - "attachments": { - "7153af0c-fb8b-4b47-826e-57ac60696e0c.png": { - "image/png": "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" - }, - "faf11697-6be8-49bc-ab24-b3c4385b8a67.png": { - "image/png": "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" - } - }, "cell_type": "markdown", "id": "740ffa74-4eda-4843-9b5b-486caab1153b", "metadata": { @@ -17,15 +9,14 @@ "source": [ "# Introduction to LangChain\n", "---------\n", - "![image.png](attachment:faf11697-6be8-49bc-ab24-b3c4385b8a67.png)![image.png](attachment:7153af0c-fb8b-4b47-826e-57ac60696e0c.png)\n", "\n", - "**DIHPA'24**\n", + "**ICTAM, AI and LLM Training, Nkopola, November 2024**\n", "\n", "**Author:** Dunstan Matekenya \n", "\n", "**Affiliation:** DECAT, The World Bank Group \n", "\n", - "**Date:** May 30, 2024\n", + "**Date:** November, 2024\n", "\n", "\n", "## What you will learn \n", @@ -65,15 +56,150 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 7, "id": "b9a13ee9-f3d9-4141-a1a2-929cdc1b5113", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "import os\n", - "from pathlib import Path" + "from pathlib import Path\n", + "\n", + "\n", + "# =======================\n", + "# ENVIRONMENT HANDLING\n", + "# =======================\n", + "from dotenv import load_dotenv\n", + "load_dotenv()" ] }, + { + "cell_type": "markdown", + "id": "51203f5f", + "metadata": {}, + "source": [ + "# Test OpenAI and HuggingFace" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "28693074", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "44942.48999999999" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(1498083*0.15) - (1498083*0.12)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "4ee60ee5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.75" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "9/12" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "8d810eca", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "44983.889999999985" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "224919.44999999998 - 179935.56" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "9b2abf53", + "metadata": {}, + "outputs": [], + "source": [ + "from langchain_openai import ChatOpenAI\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "98bc75bc", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Result : Malawi is located in southeastern Africa, bordered by Tanzania to the north and northeast, Zambia to the west, and Mozambique to the east, south and southwest.\n" + ] + } + ], + "source": [ + "llm = ChatOpenAI()\n", + "res = llm.invoke(\"Where is Malawi?\").content\n", + "print(f\"Result : {res}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "049080c6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Result : I'm just a computer program, so I don't have feelings or emotions. How can I assist you today?\n" + ] + } + ], + "source": [] + }, { "cell_type": "markdown", "id": "1e1dad1b-4014-48e9-b911-2095c9864a84", @@ -521,27 +647,6 @@ "print(output)" ] }, - { - "cell_type": "code", - "execution_count": 1, - "id": "e9bda8e1-dce1-49c1-b308-82063fa53e6a", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "3544" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "2*1772" - ] - }, { "cell_type": "markdown", "id": "7381c4a5-5a33-405c-b82a-baacfebe6e56", @@ -559,7 +664,7 @@ "id": "f4edd5e5-44fa-49b0-b150-64a580da8f66", "metadata": {}, "source": [ - "### . Prompt templates\n", + "### Prompt templates\n", "Prompt templates are used for creating prompts in a more modular way, so they can be reused and built on. Chains act as the glue in LangChain; bringing the other components together into workflows that pass inputs and outputs between the different components\n", "- They are recipes for generating prompts\n", "- Flexible and modular\n", @@ -659,14 +764,6 @@ "llm(full_prompt)" ] }, - { - "cell_type": "code", - "execution_count": null, - "id": "e11ea305-a3c9-439f-b135-236e26c39ac1", - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "markdown", "id": "c3e8c433-8672-4ae8-9579-66d5201bc657", @@ -1876,9 +1973,9 @@ ], "metadata": { "kernelspec": { - "display_name": "Python3.12-audio", + "display_name": ".venv", "language": "python", - "name": "audio" + "name": "python3" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/malawi-nov-24/LLM_Teaching_Notebook_with_Conclusion.ipynb b/notebooks/malawi-nov-24/LLM_Teaching_Notebook_with_Conclusion.ipynb index 3b556e5..21253b9 100644 --- a/notebooks/malawi-nov-24/LLM_Teaching_Notebook_with_Conclusion.ipynb +++ b/notebooks/malawi-nov-24/LLM_Teaching_Notebook_with_Conclusion.ipynb @@ -1,3915 +1,3929 @@ { - "cells": [ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "L-hCapPatC1R" + }, + "source": [ + "# Introduction to LLMs\n", + "Large Language Models (LLMs) are AI models that can generate human-like text based on given prompts. They work by:\n", + "\n", + "\n", + "* Understanding and tokenizing the input text.\n", + "* Predicting the most likely sequence of words (tokens) to follow.\n", + "* Using probabilities to generate coherent and contextually relevant outputs.\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "VVoiHfQdt0rp" + }, + "source": [ + "##Setting Up the Environment\n", + "Below is the code to set up the environment using the Hugging Face transformers library:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "HvKJfKCws8pQ", + "outputId": "133950ce-ede3-4435-c477-17da1f1ce4d4" + }, + "outputs": [ { - "cell_type": "markdown", - "metadata": { - "id": "L-hCapPatC1R" - }, - "source": [ - "# Introduction to LLMs\n", - "Large Language Models (LLMs) are AI models that can generate human-like text based on given prompts. They work by:\n", - "\n", - "\n", - "* Understanding and tokenizing the input text.\n", - "* Predicting the most likely sequence of words (tokens) to follow.\n", - "* Using probabilities to generate coherent and contextually relevant outputs.\n", - "\n" - ] + "ename": "ModuleNotFoundError", + "evalue": "No module named 'torch'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[1], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m# Importing necessary libraries\u001b[39;00m\n\u001b[0;32m----> 2\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mtorch\u001b[39;00m\n\u001b[1;32m 3\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtransformers\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m AutoTokenizer, AutoModelForCausalLM, pipeline, set_seed\n\u001b[1;32m 4\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mmatplotlib\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mpyplot\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mplt\u001b[39;00m\n", + "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'torch'" + ] + } + ], + "source": [ + "# Importing necessary libraries\n", + "import torch\n", + "from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline, set_seed\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Checking if GPU is available\n", + "device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n", + "print(f\"Using device: {device}\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "eUs4IPMTuBof" + }, + "source": [ + "# Tokenization\n", + "In this section, we'll explain tokenization and demonstrate it using a sample prompt." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 397, + "referenced_widgets": [ + "ed52f970e5ae4c11863e8e46f9ae828f", + "d54161703d0c489e9cc2e0c2bc8cdde0", + "dd73d4c00bcb4815a47e466ffeb764f7", + "d0f03e93e94a48e88bb807ce9fcd3626", + "247cef68024a44d792583d015eee698f", + "eedbbeb237564aa6bf1024699404a0d8", + "da9b0dfeb44b46bb81534080eaf0047f", + "d3da6b9fec5149f596dd627fdc0ddf28", + "7db8af670bd5408ea41df7b09762233d", + "909e5b085ea848b29d1aac95c4dd1ee7", + "0023a18e9bf7450997c5af11070b5cc2", + "643145af92da4183b9607eb7e2e6d0f7", + "9d78f9dff3dd45218b53496767b00c70", + "66f3d33e3f514f31bf0e6b2ce35801be", + "836388e618d944aebb9dce0dea9c56e1", + "39cbea48cd8848b19b9dc20736708df1", + "ab0a2da0da2e4b3eb966395e54729ffa", + "786d8c0044ba4e02809f8edb03af9c2a", + "83f9d9548db2456ab0a26a96e03e9581", + "58b715f058384647b70276588eb2bf92", + "1dd3f850d0d9484bb5313a067392a139", + "995591cb74bc4395813e80fe8087f623", + "a98d240475f549a894b283fcec9097a8", + "f41832a72fdb4cb79530c9fc44693185", + "00ad49ed4b5e447eb6915708c628f491", + "a4f33b68497e470593bb3c53e2e73703", + "83c8a96b28a3406b86167b22a3bf1c7c", + "427a17311b0c4419897745ccb319fc0c", + "1d77d79208c54108bbe8ef2c72fcbe4c", + "5e3f481ead9b4dffb22b019fb7286a75", + "9a1af9363cc44ec5a89ddda9a94466fd", + "4d2fa322281a45ab8a1464be57439749", + "ff32f023a7c043599760bf3b3bf83cb2", + "97784968743c46a3b094f942a617f505", + "3a22215d257e44da912f098e75bcad67", + "459cba8b3a834331985dffea92c541bd", + "b155188a446441348e47eeefee321a7b", + "e2f11ebb13c24dcd81cdba4bedf3ded4", + "355db76789934773b18bbba7be586bf3", + "c32dd63b33a147edb63e8b2ef0da5376", + "2817038686c042aa836954a2c1bdd314", + "59935aff77684051ad3eef45af4a8d39", + "4eb227bcee9e409199cc51caab0c7696", + "bef5ad3f28674648a365a6f60eb21371", + "eb5e86fa57df476ea37013c7912a743e", + "7ccbeb6d75264e489e768710b10e0ab0", + "5c159af238114e4abe4bd36cf482d119", + "2ef6a55cd791473992084f043bd9226c", + "f6744817df8a4006bd0ff225aa9e4aab", + "7adf04d2c6c04e9b8246c70dfc58fdcc", + "bb30e9fd347f4166b1966997d462c5cd", + "5af88d5e9e1041b7ab5a8826e3ed1fa5", + "20446918559f460da71d704b4a3816c5", + "ceee626d21094ac486ddbb88634512ad", + "272d275596eb495a889496b640279965", + "a8033e173deb48448ab9f3d78bd0339c", + "fc63e2a321524fdb85fd891bb611246a", + "f04694026e2a41e391281b788248c2a2", + "d422c21430884a37b730da4955f3a574", + "05cf4d5fea694221aa439a784f45ac94", + "a646d1d0286d489c98c81bdffb2559ed", + "32ef2f84eb174debae5f2a2e6c8011dd", + "fd9e1e0e51974c8a8c473c464f99d018", + "c56b0483ad8549089f908989e5616dd1", + "d595683824734914a9f67634d4e08f98", + "6050b0136e754378b71b1295dab6c2c8", + "8832939841fc4180a3aeafdc7aaafb63", + "964d2abc5311445d8c9e515fee2ec571", + "c8d64d6591db4bec9fb752345e249530", + "2ea9aa390af84712893e431108ba80d2", + "e5c16313f7c94eb7a390a99f5d09ef77", + "9e874cda300f4056807b378d386789cb", + "85baaaffafea4de693f7637e5e1f09c8", + "6377db896bed44299ffdf88704c925ff", + "c8b3fb7df3fa4d0f8d57efe9721d3a67", + "6e3b8ae4aa044e8e878c3f3ea1e76887", + "e3d9044e0c0f4cf8b3783d617b0e4649" + ] }, + "id": "Ea5dAG_KuDyl", + "outputId": "4a40cd1d-2e02-4999-aa04-398ed4f1cf6e" + }, + "outputs": [ { - "cell_type": "markdown", - "metadata": { - "id": "VVoiHfQdt0rp" - }, - "source": [ - "##Setting Up the Environment\n", - "Below is the code to set up the environment using the Hugging Face transformers library:" - ] + "name": "stderr", + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.10/dist-packages/huggingface_hub/utils/_auth.py:94: UserWarning: \n", + "The secret `HF_TOKEN` does not exist in your Colab secrets.\n", + "To authenticate with the Hugging Face Hub, create a token in your settings tab (https://huggingface.co/settings/tokens), set it as secret in your Google Colab and restart your session.\n", + "You will be able to reuse this secret in all of your notebooks.\n", + "Please note that authentication is recommended but still optional to access public models or datasets.\n", + " warnings.warn(\n" + ] }, { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "HvKJfKCws8pQ", - "outputId": "133950ce-ede3-4435-c477-17da1f1ce4d4" + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "ed52f970e5ae4c11863e8e46f9ae828f", + "version_major": 2, + "version_minor": 0 }, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Using device: cpu\n" - ] - } - ], - "source": [ - "# Importing necessary libraries\n", - "import torch\n", - "from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline, set_seed\n", - "import matplotlib.pyplot as plt\n", - "\n", - "# Checking if GPU is available\n", - "device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n", - "print(f\"Using device: {device}\")\n" + "text/plain": [ + "tokenizer_config.json: 0%| | 0.00/26.0 [00:00" - ], - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0kAAAGJCAYAAABfDnjdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABEQklEQVR4nO3deVRU9f/H8deAyiKLG6IkLrmvmUv2Bdeg3HI3zSi3zBbLXdMyFc21NK38mvYt0cytMvVYLoi4hOWOlhouuVCaaCooJirc3x8e5jcjoIwOM4jPxzlzjvdz753P+94ZRl587v2MyTAMQwAAAAAASZKLswsAAAAAgNyEkAQAAAAAFghJAAAAAGCBkAQAAAAAFghJAAAAAGCBkAQAAAAAFghJAAAAAGCBkAQAAAAAFghJAAAAAGCBkAQAuYjJZNKbb77plH7Hjh370PRri7Fjx8pkMjm7jEzrKFu2rHr27OnwWpzVLwA4CiEJAO6TyWTK1mPTpk3OLtUpfvzxx1wVhGrVqqXSpUvLMIwstwkODpa/v79u3rzpwMpyl23btmns2LG6dOmSs0sBAIfL5+wCAOBB99VXX1ktL1iwQJGRkRnaq1at6siybPLvv/8qX76c+S/hxx9/1KxZszINSjnZb1bCwsI0YsQIbd26VY0bN86w/sSJE/r555/15ptvKl++fBo1apRGjBjh0BqzKy4uTi4uOfP3zm3btik8PFw9e/ZUoUKFHNYvAOQGhCQAuE8vvvii1fIvv/yiyMjIDO25mbu7+0PT7wsvvKCRI0dq0aJFmYakxYsXyzAMhYWFSZLy5cvn8CCXXW5ubg9VvwDgKPwZCAAcIDk5WUOGDFFgYKDc3NxUuXJlffjhh3e85Cvd+++/LxcXF33yySfmtjVr1qhRo0YqWLCgvL291bp1ax04cMBqv549e8rLy0t//fWX2rdvLy8vL/n5+Wno0KFKTU212tby3qATJ07c8bLBdFu3btVzzz2n0qVLy83NTYGBgRo0aJD+/fdfqxpmzZpl7uP258jsnqS9e/eqZcuW8vHxkZeXl0JCQvTLL79YbRMRESGTyaSYmBgNHjxYfn5+KliwoDp06KBz587d8XwGBgaqcePG+vbbb3Xjxo0M6xctWqTy5curQYMGkjK/FygyMlINGzZUoUKF5OXlpcqVK+udd97JUN+JEyes9tu0aVOGSy+zcx6zcvu9QXd63dJr2b9/v3r27KlHH31U7u7uKlGihHr37q1//vnH/Dxjx47VsGHDJEnlypXL8ByZ3ZP0xx9/6LnnnlORIkXk6empJ598Uj/88EOmx79s2TJNmDBBpUqVkru7u0JCQnT06NG7Hi8AOEru/NMYAOQhhmGobdu2io6O1ssvv6zatWtr3bp1GjZsmP766y999NFHWe47atQoTZw4UXPmzNErr7wi6dblfT169FDz5s01ZcoUXb16VbNnz1bDhg21d+9elS1b1rx/amqqmjdvrgYNGujDDz/Uhg0bNG3aNJUvX16vv/56pn36+flluFTwxo0bGjRokAoUKGBu++abb3T16lW9/vrrKlq0qHbs2KFPPvlEf/75p7755htJ0quvvqrTp09nevlhZg4cOKBGjRrJx8dHw4cPV/78+TVnzhw1bdpUmzdvNgeXdG+99ZYKFy6sMWPG6MSJE5oxY4befPNNLV269I79hIWFqW/fvlq3bp2effZZc/uvv/6q3377TaNHj75jjc8++6xq1aqlcePGyc3NTUePHlVMTMxdjy8z2TmP2ZXZOR41apQSEhLk5eUl6VbA++OPP9SrVy+VKFFCBw4c0Ny5c3XgwAH98ssvMplM6tixow4fPqzFixfro48+UrFixSTdem9k5uzZswoKCtLVq1fVv39/FS1aVPPnz1fbtm317bffqkOHDlbbT548WS4uLho6dKgSExM1depUhYWFafv27TYdLwDkGAMAYFf9+vUzLD9eV6xYYUgy3n//favtOnfubJhMJuPo0aPmNklGv379DMMwjCFDhhguLi5GRESEef3ly5eNQoUKGa+88orVc/3999+Gr6+vVXuPHj0MSca4ceOstn388ceNunXrWrVJMsaMGZPlMb3xxhuGq6ursXHjRnPb1atXM2w3adIkw2QyGSdPnszyfNyp3/bt2xsFChQwjh07Zm47ffq04e3tbTRu3NjcNm/ePEOSERoaaqSlpZnbBw0aZLi6uhqXLl3K8lgMwzAuXLhguLm5Gd26dbNqHzFihCHJiIuLM7eNGTPGqv6PPvrIkGScO3cuy+dPr+/48eNW7dHR0YYkIzo62tyW3fN4ex2GYRhlypQxevTokWUdU6dONSQZCxYsuGN/ixcvNiQZW7ZsMbd98MEHmR5DZv0OHDjQkGRs3brV3Hb58mWj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PjVr1kze3t7y8fFR3bp1tWvXLucVmE2bNm1Sr169lJiYaH4/jh07VtKt99P48ePVvXt3+fj4mEcp3377bVWqVEmenp569NFH9d5771m9H9JH4b/66iuVLVtWvr6+ev7553X58mXzNt9++61q1qwpDw8PFS1aVKGhoUpOTtbYsWPVpk0bSZKLi4s5JKWlpWncuHEqVaqU3NzczN8VmC79ErmlS5eqSZMmcnd319dff21+/06cOFH+/v4qVKiQxo0bp5s3b2rYsGEqUqSISpUqpXnz5mV4rvTL7dL/j4iKilK9evXk6empoKAgxcXFWZ3L999/X8WLF5e3t7f69OmjESNG5KqrEe70Wku3LqPu3bu3vL29Vbp0ac2dO9dq//v9fMpLDMOQn5+fvv32W3Nb7dq1VbJkSfPyTz/9JDc3N129elWSdOrUKbVr105eXl7y8fFRly5ddPbsWfP26T83//vf/1SuXDm5u7tn2ndCQoLatGkjDw8PlStXTl9//XUOHSVwCyEpj1u2bJmqVKmiypUr68UXX9SXX36p278aa8SIEZo8ebIOHTqkp59+WkOGDFH16tV15swZnTlzRl27dnVS9bnL8uXL9corr+g///mPzpw5o+XLl2fYJi0tTS1btlRMTIwWLlyogwcPavLkyXJ1dc30Oa9cuaJWrVopKipKe/fuVYsWLdSmTRudOnUqpw8nR1y9elUffvihvvrqK23ZskWnTp3S0KFDJUlDhw5Vly5dzMHpzJkzCgoK0o0bN9S8eXN5e3tr69atiomJMQes69ev21xDamqq2rdvL09PT23fvl1z587Vu+++a7VNdvuMjo7WsWPHFB0drfnz5ysiIsLqjwbdu3fX4sWL9fHHH+vQoUOaM2eOvLy8JN0Ky0899ZQef/xx7dq1S2vXrtXZs2fVpUuXezizuVdYWJhKlSqlnTt3avfu3RoxYsQ9jWI4WlBQkGbMmCEfHx/z+zH9vSpJH374oR577DHt3btX7733niTJ29tbEREROnjwoGbOnKnPP/9cH330kdXzHjt2TCtWrNDq1au1evVqbd68WZMnT5YknTlzRt26dVPv3r116NAhbdq0SR07dpRhGBo6dKg5sKTXI0kzZ87UtGnT9OGHH2r//v1q3ry52rZtqyNHjlj1O2LECA0YMECHDh1S8+bNJUkbN27U6dOntWXLFk2fPl1jxozRs88+q8KFC2v79u167bXX9Oqrr+rPP/+847l69913NW3aNO3atUv58uVT7969zeu+/vprTZgwQVOmTNHu3btVunRpzZ49+15ekhxzt9d62rRpqlevnvbu3as33nhDr7/+ujkI2vvz6UFnMpnUuHFj8x+4Ll68qEOHDunff//V77//LknavHmz6tevL09PT6Wlpaldu3a6cOGCNm/erMjISP3xxx8Zfq84evSovvvuOy1fvjzLe+J69uyp+Ph4RUdH69tvv9V///tfJSQk5OTh4mFnIE8LCgoyZsyYYRiGYdy4ccMoVqyYER0dbRiGYURHRxuSjBUrVljtM2bMGOOxxx5zcKW5V5MmTYwBAwYYhmEYAwYMMJo0aWK1vkyZMsZHH31kGIZhrFu3znBxcTHi4uIyfa558+YZvr6+d+yvevXqxieffJLp8+cm6e+fixcvGoZx69gkGUePHjVvM2vWLMPf39+83KNHD6Ndu3ZWz/PVV18ZlStXNtLS0sxtKSkphoeHh7Fu3bpM97N8TQzD+hytWbPGyJcvn3HmzBnz+sjISEOS8f3339vUZ5kyZYybN2+at3nuueeMrl27GoZhGHFxcYYkIzIyMtPzM378eOOZZ56xaouPjzckZfn+eBDc/h729vY2IiIinFfQfcjq57FMmTJG+/bt77r/Bx98YNStW9e8PGbMGMPT09NISkoytw0bNsxo0KCBYRiGsXv3bkOSceLEiUyf7/vvvzdu/285ICDAmDBhglVb/fr1jTfeeMMwDMM4fvy4Icn8OZ8u/f2bmppqbqtcubLRqFEj8/LNmzeNggULGosXL7Z6rr179xqG8f8/4xs2bDDv88MPPxiSjH///dcwDMNo0KCB0a9fP6u+g4ODc93/IXd6rV988UXzclpamlG8eHFj9uzZhmFk77PiYfPxxx8b1atXNwzDMFasWGE0aNDAaNeunfmchYaGGu+8845hGIaxfv16w9XV1Th16pR5/wMHDhiSjB07dhiGcevnJn/+/EZCQoJVP5af8+mft+n7GIZhHDp0yJCUK/9/RN7ASFIeFhcXpx07dqhbt26SpHz58qlr165WlwNJUr169ZxRXp4UGxurUqVKqVKlStna/sqVKxo6dKiqVq2qQoUKycvLS4cOHXpgR5I8PT1Vvnx583LJkiXv+pe+ffv26ejRo/L29paX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7dmzR88884zat2+voKAgux8vAMC5uNwOAJCntGrVSvv379fPP/9s1X7lyhWFh4crNjbW/Pj111915MgRubu7m7fLnz+/1X4mk0lpaWmSpJYtW+rkyZMaNGiQTp8+rZCQEA0dOjTnDwoA4FCEJABArufj46OAgADFxMRYtcfExKhatWpWba+//romT56stm3bavPmzeb2OnXqKC4uThUqVMjwcHHJ/n+Hfn5+6tGjhxYuXKgZM2Zo7ty593dwAIBch8vtAAAPhGHDhmnMmDEqX768ateurXnz5ik2NlZff/11hm3feustpaam6tlnn9WaNWvUsGFDjR49Ws8++6xKly6tzp07y8XFRfv27dNvv/2m999/P1s1jB49WnXr1lX16tXN9zxVrVrV3ocKAHAyQhIA4IHQv39/JSYmasiQIUpISFC1atW0atUqVaxYMdPtBw4cqLS0NLVq1Upr165V8+bNtXr1ao0bN05TpkxR/vz5VaVKFfXp0yfbNRQoUEAjR47UiRMn5OHhoUaNGmnJkiX2OkQAQC7B7HYAAAAAYIF7kgAAAADAAiEJAAAAACwQkgAAAADAAiEJAAAAACwQkgAAAADAAiEJAAAAACwQkgAAAADAAiEJAAAAACwQkgAAAADAAiEJAAAAACwQkgAAAADAwv8BaOsTmvkHWx8AAAAASUVORK5CYII=\n" - }, - "metadata": {} - } - ], - "source": [ - "\n", - "\n", - "# Load a pre-trained GPT model and its tokenizer\n", - "model_name = \"gpt2\"\n", - "tokenizer = AutoTokenizer.from_pretrained(model_name)\n", - "model = AutoModelForCausalLM.from_pretrained(model_name)\n", - "\n", - "# Sample text for tokenization\n", - "text = \"Artificial Intelligence is transforming the world.\"\n", - "\n", - "# Tokenizing the text\n", - "tokens = tokenizer.encode(text, return_tensors=\"pt\")\n", - "print(f\"Tokens: {tokens}\")\n", - "\n", - "# Decoding tokens back to text\n", - "decoded_text = tokenizer.decode(tokens[0])\n", - "print(f\"Decoded Text: {decoded_text}\")\n", - "\n", - "# Visualize tokenization\n", - "token_texts = [tokenizer.decode([token]) for token in tokens[0]]\n", - "plt.figure(figsize=(10, 4))\n", - "plt.bar(range(len(token_texts)), [len(token) for token in token_texts], tick_label=token_texts)\n", - "plt.xlabel('Tokens')\n", - "plt.ylabel('Length of Each Token')\n", - "plt.title('Tokenization Visualization')\n", - "plt.show()\n" - ] + "name": "stdout", + "output_type": "stream", + "text": [ + "Output 2: The advancements in artificial intelligence have been made possible by the development of new algorithms that are able to recognize people's faces in a variety of ways, from the way they look to how they behave.\n", + "\n", + "The first such algorithm, known as the Face\n", + "\n", + "Output 3: The advancements in artificial intelligence and robotics have made it possible to create a computer that is capable of performing complex tasks that have never been done before.\n", + "\n", + "\"We're doing things that will not be possible before,\" said Dr. Gail M.\n", + "\n" + ] + } + ], + "source": [ + "# Generate multiple outputs for the same prompt\n", + "set_seed(42) # Setting a seed for reproducibility\n", + "for i in range(3):\n", + " print(f\"Output {i+1}: {generate_text(prompt)}\\n\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "9H14GOeivCXC" + }, + "source": [ + " # Prompt Engineering\n", + "\n", + "This section covers how modifying prompts can change the outputs generated." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" }, + "id": "EQTyEIbcu_TI", + "outputId": "1470032c-e517-49ed-9daf-2cc382fb33ed" + }, + "outputs": [ { - "cell_type": "markdown", - "metadata": { - "id": "d935aa2f" - }, - "source": [ - "\n", - "## Understanding Token Probabilities\n", - "\n", - "LLMs generate text by predicting the next token based on the probability distribution over the vocabulary. The model assigns a probability to each token, indicating how likely it is to come next given the input text.\n", - "\n", - "We'll demonstrate how the model generates probabilities for the next token using a simple prompt.\n" - ] + "name": "stderr", + "output_type": "stream", + "text": [ + "The attention mask and the pad token id were not set. As a consequence, you may observe unexpected behavior. Please pass your input's `attention_mask` to obtain reliable results.\n", + "Setting `pad_token_id` to `eos_token_id`:None for open-end generation.\n" + ] }, { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 572 - }, - "id": "5504776a", - "outputId": "4eb17d53-4afb-4658-8e85-653cc4867bf8" - }, - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": [ - "
" - ], - "image/png": "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V+Oee+4x8vLybONz5swxJBkLFy60jUVERBiSjFmzZtnGsrOzjeDgYKNOnTpGTk6OYRiGcfXqVSM7O9uuz/Pnzxs+Pj7Go48+mq93Dw8P48cff7SNf/nll4Yk46mnnrKNxcbGGn/8V5y/v7/d57d582ZDkrF582bbWM+ePQ1/f//r/t4WLVpkG+vatavRokUL48qVK7Yxq9VqtG/f3ggMDLSNtWrVyujZs2e+YwIoPyxpAFDu1q1bJ2dnZ40ePdpu/Omnn5ZhGPr444/txsPDwxUSEmJ7feutt+q+++7Thg0b/nSJQr9+/bRo0SINGjRI0dHRev7557Vhwwb9/PPPeuGFF4o9h7y8PH3yySeKjo62W+t7yy236O9//7u2b9+uzMxMu31+/PFHRUREKDc3V9u2bZO/v7/tveXLl6tJkyYKCgrS2bNnbdu1pQZ//N/7kZGRuu2222yvW7ZsKU9PT33//feF6j82Nla1a9eWr6+vOnfurGPHjunFF1/U/fffb1c3dOhQOTs7215v2rRJOTk5Gjt2rJycnOzqPD09tXbtWrv9K1WqpH/84x+2166urvrHP/6h9PR07d69W5Lk7Oxsu3HMarXq3Llzunr1qkJDQ5WcnJyv9+joaNWrV8/2ul27dgoLC9O6desKNffScO7cOX366afq16+fLly4YPu8fv75Z0VFRenIkSM6deqUpF9vjvz222915MiRcusPgD2WNAAodydOnFDdunVVrVo1u/FrT204ceKE3XhBSw8aN26sS5cu6cyZM6pZs6bOnTtn937t2rXtgtrvdezYUWFhYdq0aVOx53DmzBldunRJt99+e773mjRpIqvVqpMnT6pZs2a28YEDB6pSpUo6ePCgfH197fY5cuSIDh48qNq1axd4vvT0dLvXt956a76aGjVq6Pz584Xq/4knntCDDz4oJycnVa9e3bYe94/++GSLa5/NH+ft6uqqhg0b5vvs6tatm+9Gt8aNG0v6dV3sHXfcIUn6z3/+o1mzZunQoUPKzc297vml6/95eP/9968739J29OhRGYahyZMna/LkyQXWpKenq169enruued03333qXHjxmrevLm6deumgQMHqmXLluXWL/BXR+AFcNPbsWOHunTpYjf2ww8/3PAZuX5+frabxcrL/fffr7fffluvvvqq4uLi7N6zWq1q0aKFZs+eXeC+fn5+dq+vF+aNP9z0dz2BgYGKjIz80zoPD49CHa8k3n33XT3yyCOKjo7WuHHjVKdOHTk7OysuLs62triisVqtkqRnnnlGUVFRBdY0atRI0q+PPzt27Jg++ugjffLJJ3rzzTf1yiuvKCEhQY8//ni59Qz8lRF4AZQ7f39/bdq0SRcuXLC7ynvo0CHb+79X0P8K/u6771S5cmXVrl1bbm5u+e54/+MV1D/6/vvvr3s1tTBq166typUrFxiaDx06JCcnp3whddSoUWrUqJGmTJkiLy8vu+fE3nbbbdq7d6+6du36p08XcKRrn83hw4ftlnLk5OTohx9+yBeiT58+ne9xZt99950k2f6DZMWKFWrYsKFWrlxpN/fY2NgCe7jen4fS+BKQwv7ur83dxcWlUP/hULNmTQ0ZMkRDhgzRxYsX1alTJ02dOpXAC5QT1vACKHfXvvBgzpw5duOvvPKKLBaLunfvbjeelJRkt5bz5MmT+uijj3TPPffI2dlZNWrUUGRkpN127ZmpZ86cyXf+devWaffu3erWrVux5+Ds7Kx77rlHH330kY4fP24bT0tL05IlS9SxY0d5enrm22/y5Ml65plnNGHCBM2bN8823q9fP506dUr//ve/8+1z+fJl2xMSHC0yMlKurq567bXX7K4mv/XWW8rIyFDPnj3t6q9evWr3XN+cnBzNnz9ftWvXtq3Lvna1+vfH+/LLL5WUlFRgD6tWrbKtj5WknTt36ssvv8z356Y4qlSpooyMjD+tq1Onjjp37qz58+frp59+yvf+7//c/fzzz3bvVa1aVY0aNcr3uDkAZYcrvADK3b333qsuXbron//8p44fP65WrVrpk08+0UcffaSxY8fa3YwlSc2bN1dUVJTdY8kkadq0aX96rvbt26t169YKDQ2Vl5eXkpOTtXDhQvn5+WnixIklmsf06dO1ceNGdezYUcOHD1elSpU0f/58ZWdn66WXXrrufi+//LIyMjI0YsQIVatWTQ8//LAGDhyo999/X08++aQ2b96sDh06KC8vT4cOHdL777+vDRs2FOmLM8pK7dq1NWHCBE2bNk3dunVT7969dfjwYb3xxhtq27Ztvi/lqFu3rl588UUdP35cjRs31rJly7Rnzx4tWLDA9viyXr16aeXKlerTp4969uypH374QQkJCWratKkuXryYr4dGjRqpY8eOGjZs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atiwoQYOHKj33nvP9vclgPwIvCiUa+s2165dqz179ti2AwcOaMWKFerevbtOnDihp556SqdPn1bXrl31zDPPOLhr/FGLFi1Us2ZNbd261S7wbt26VV999ZVyc3PVvn17SdLx48fVq1cvtWzZUh988IF2796tuXPnSpJycnIkSY8//ri+//57DRw4UN98841CQ0P1+uuvO2x++HNTp07Vt99+q549e+rTTz9V06ZN9eGHHzq6LRRRtWrVlJycrP/+97+65ZZbNGXKFLVq1Uq//PKLo1sDKiQeS4ZCuXDhgmrXrq1///vfGjhw4J/Wz58/X+PGjVNmZmY5dIei6NOnj6pWrarly5fr7Nmzqly5sry9vXXvvffqyJEjtqvzH3zwgQYMGKArV67IyenX/zaePn26Jk+erPPnzxf4bNcJEyZo7dq1XOmtQBYvXqyxY8deNwgNGDBAWVlZWr16dfk2hlKVlZWl6tWra9myZbr//vsd3Q5Q4bCGF4VSrVo1PfPMM3rqqadktVrVsWNHZWRk6PPPP5enp6eOHTumkJAQNWvWTNnZ2VqzZo2aNGni6LZRgM6dO+vpp59WaGio7QazTp066b333tO4ceNsdY0aNVJubq5ef/113Xvvvfr888+VkJBgd6yxY8eqe/fuaty4sc6fP6/NmzfzuVdgly9f1rhx4/TAAw+oQYMG+vHHH/XVV1+pb9++jm4NRbRmzRp9//336tSpk2rUqKF169bJarXq9ttvd3RrQIXEkgYU2vPPP6/JkycrLi5OTZo0Ubdu3bR27Vo1aNBArq6umjBhglq2bKlOnTrJ2dlZS5cudXTLKEBERITy8vLs1up27tw531irVq00e/Zsvfjii2revLnee+89xcXF2R0rLy9PI0aMsP15aNy4se2GNlQ8zs7O+vnnnzVo0CA1btxY/fr1U/fu3TVt2jRHt4Yiql69ulauXKm77rpLTZo0UUJCgv773/+qWbNmjm4NJbR48WJZLBZHt2E6LGkAAACoIGJjY7V161Zt2bLF0a2YCksaAAAAKoiPP/5Yc+bMcXQbpsMVXgAAAJgaa3gBAABgagReAAAAmBqBFwAAAKZG4AUAAICpEXgBAABgagReAAAAmBqBFwBM4vjx47JYLNqzZ4+jWwGACoXACwAViMViueE2depUR7cIADcdvmkNACqQn376yfbzsmXLNGXKFB0+fNg2VrVqVUe0BQA3Na7wAkAF4uvra9u8vLxksVhsr+vUqaPZs2erfv36cnNzU3BwsNavX3/dY+Xl5enRRx9VUFCQUlJSJEkfffSR2rRpI3d3dzVs2FDTpk3T1atXbftYLBa9+eab6tOnjypXrqzAwECtXr3a9v758+f10EMPqXbt2vLw8FBgYKAWLVpUdr8QACgFBF4AuEm8+uqrmjVrlmbOnKl9+/YpKipKvXv31pEjR/LVZmdn68EHH9SePXv02Wef6dZbb9Vnn32mQYMGacyYMTpw4IDmz5+vxYsX64UXXrDbd9q0aerXr5/27dunHj166KGHHtK5c+ckSZMnT9aBAwf08ccf6+DBg5o3b568vb3LZf4AUFwWwzAMRzcBAMhv8eLFGjt2rH755RdJUr169TRixAhNnDjRVtOuXTu1bdtWc+fO1fHjx9WgQQN99tlnmjp1qrKzs7VmzRp5eXlJkiIjI9W1a1dNmDDBtv+7776rZ599VqdPn5b06xXeSZMm6fnnn5ckZWVlqWrVqvr444/VrVs39e7dW97e3lq4cGE5/RYAoORYwwsAN4HMzEydPn1aHTp0sBvv0KGD9u7dazc2YMAA1a9fX59++qk8PDxs43v37tXnn39ud0U3Ly9PV65c0aVLl1S5cmVJUsuWLW3vV6lSRZ6enkpPT5ckDRs2TH379lVycrLuueceRUdHq3379qU+XwAoTSxpAACT6dGjh/bt26ekpCS78YsXL2ratGnas2ePbfvmm2905MgRubu72+pcXFzs9rNYLLJarZKk7t2768SJE3rqqad0+vRpde3aVc8880zZTwoASoDACwA3AU9PT9WtW1eff/653fjnn3+upk2b2o0NGzZMM2bMUO/evbV161bbeJs2bXT48GE1atQo3+bkVPh/HdSuXVuDBw/Wu+++q/j4eC1YsKBkkwOAMsaSBgC4SYwbN06xsbG67bbbFBwcrEWLFmnPnj1677338tWOGjVKeXl56tWrlz7++GN17NhRU6ZMUa9evXTrrbfqgQcekJOTk/bu3av9+/dr+vTphephypQpCgkJUbNmzWxrhJs0aVLaUwWAUkXgBYCbxOjRo5WRkaGnn35a6enpatq0qVavXq3AwMAC68eOHSur1aoePXpo/fr1ioqK0po1a/Tcc8/pxRdflIuLi4KCgvT4448XugdXV1dNmDBBx48fl4eHh+68804tXbq0tKYIAGWCpzQAAADA1FjDCwAAAFMj8AIAAMDUCLwAAAAwNQIvAAAATI3ACwAAAFMj8AIAAMDUCLwAAAAwNQIvAAAATI3ACwAAAFMj8AIAAMDUCLwAAAAwtf8HMhXf7W7vTX0AAAAASUVORK5CYII=\n" - }, - "metadata": {} - }, - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Token: es, Probability: 0.1297\n", - "Token: was, Probability: 0.0457\n", - "Token: is, Probability: 0.0344\n", - "Token: 's, Probability: 0.0332\n", - "Token: ,, Probability: 0.0313\n" - ] - } - ], - "source": [ - "\n", - "# Generate output with token probabilities\n", - "input_text = \"The quick brown fox\"\n", - "input_ids = tokenizer.encode(input_text, return_tensors=\"pt\")\n", - "output = model(input_ids)\n", - "\n", - "# Extract logits (raw scores) for the next token prediction\n", - "logits = output.logits[0, -1, :]\n", - "probs = torch.softmax(logits, dim=0)\n", - "\n", - "# Show the top 5 probable tokens\n", - "top_k = 5\n", - "top_k_indices = torch.topk(probs, top_k).indices\n", - "top_k_probs = torch.topk(probs, top_k).values\n", - "\n", - "# Visualize token probabilities\n", - "top_k_tokens = [tokenizer.decode([idx]) for idx in top_k_indices]\n", - "plt.figure(figsize=(8, 5))\n", - "plt.bar(top_k_tokens, top_k_probs.detach().numpy())\n", - "plt.xlabel('Tokens')\n", - "plt.ylabel('Probability')\n", - "plt.title('Top-5 Token Probabilities')\n", - "plt.show()\n", - "\n", - "# Display top-k tokens with their probabilities\n", - "for i in range(top_k):\n", - " token = tokenizer.decode([top_k_indices[i].item()])\n", - " print(f\"Token: {token}, Probability: {top_k_probs[i].item():.4f}\")\n" - ] + "name": "stdout", + "output_type": "stream", + "text": [ + "Prompt: Explain the concept of machine learning.\n" + ] }, { - "cell_type": "markdown", - "metadata": { - "id": "440963c9" - }, - "source": [ - "\n", - "## Exploring the Stochastic Nature of LLMs\n", - "\n", - "The behavior of LLMs can be controlled by various parameters during text generation:\n", - "\n", - "- **Temperature**: Controls the randomness of predictions. A higher temperature value (e.g., 1.0) makes the model generate more random outputs, while a lower value (e.g., 0.2) makes it more focused and deterministic.\n", - "- **Top-k Sampling**: Limits the model’s token choices to the top-k most probable tokens.\n", - "- **Top-p Sampling (Nucleus Sampling)**: Limits token selection to those with a cumulative probability below a threshold (p).\n", - "\n", - "Let's experiment with these parameters to see their effects on the generated text.\n" - ] + "name": "stderr", + "output_type": "stream", + "text": [ + "The attention mask and the pad token id were not set. As a consequence, you may observe unexpected behavior. Please pass your input's `attention_mask` to obtain reliable results.\n", + "Setting `pad_token_id` to `eos_token_id`:None for open-end generation.\n" + ] }, { - "cell_type": "code", - "execution_count": 11, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "9c969e28", - "outputId": "4f9e13f5-a29d-448c-b2e4-0296737eac22" - }, - "outputs": [ - { - "output_type": "stream", - "name": "stderr", - "text": [ - "The attention mask and the pad token id were not set. As a consequence, you may observe unexpected behavior. Please pass your input's `attention_mask` to obtain reliable results.\n", - "Setting `pad_token_id` to `eos_token_id`:None for open-end generation.\n", - "The attention mask and the pad token id were not set. As a consequence, you may observe unexpected behavior. Please pass your input's `attention_mask` to obtain reliable results.\n", - "Setting `pad_token_id` to `eos_token_id`:None for open-end generation.\n" - ] - }, - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Temperature 0.2: Once upon a time, the world was a place of great beauty and great danger. The world was a place of great danger. The world was a place of great danger. The world was a place of great danger. The world was a place of\n" - ] - }, - { - "output_type": "stream", - "name": "stderr", - "text": [ - "The attention mask and the pad token id were not set. As a consequence, you may observe unexpected behavior. Please pass your input's `attention_mask` to obtain reliable results.\n", - "Setting `pad_token_id` to `eos_token_id`:None for open-end generation.\n" - ] - }, - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Temperature 0.7: Once upon a time, she saw him and she said, 'How can I say that you were a man?' He said, 'I had a son.' And she said, 'I heard you say that. How can I say that you were\n", - "Temperature 1.0: Once upon a time, I felt at ease with the thought of being able to control the emotions. And yet it took me a little while to come to accept it as a reality. I was also afraid of feeling too proud of myself, because there\n" - ] - } - ], - "source": [ - "# Function to generate text with different parameters\n", - "def generate_text(prompt, max_length=50, temperature=0.7, top_k=50, top_p=0.9):\n", - " input_ids = tokenizer(prompt, return_tensors=\"pt\").input_ids\n", - " output = model.generate(\n", - " input_ids,\n", - " max_length=max_length,\n", - " temperature=temperature,\n", - " top_k=top_k,\n", - " top_p=top_p,\n", - " do_sample=True,\n", - " )\n", - " return tokenizer.decode(output[0], skip_special_tokens=True)\n", - "\n", - "# Testing with different temperatures\n", - "prompt = \"Once upon a time\"\n", - "print(\"Temperature 0.2:\", generate_text(prompt, temperature=0.2))\n", - "print(\"Temperature 0.7:\", generate_text(prompt, temperature=0.7))\n", - "print(\"Temperature 1.0:\", generate_text(prompt, temperature=1.0))\n" - ] + "name": "stdout", + "output_type": "stream", + "text": [ + "Explain the concept of machine learning.\n", + "\n", + "This is the third article in a series of articles in Computer Vision and Machine Learning.\n", + "\n", + "The first article is from the Computer Vision and Machine Learning Institute.\n", + "\n", + "The second article is from the\n", + "\n", + "--------------------------------------------------\n", + "\n", + "Prompt: Explain the concept of machine learning in simple terms.\n" + ] }, { - "cell_type": "markdown", - "metadata": { - "id": "27b21512" - }, - "source": [ - "\n", - "## Interactive Prompt Engineering\n", - "\n", - "Try modifying the prompt and parameters to see how they affect the output. This is an important aspect of prompt engineering, where small changes in the input can lead to different outputs.\n" - ] + "name": "stderr", + "output_type": "stream", + "text": [ + "The attention mask and the pad token id were not set. As a consequence, you may observe unexpected behavior. Please pass your input's `attention_mask` to obtain reliable results.\n", + "Setting `pad_token_id` to `eos_token_id`:None for open-end generation.\n" + ] }, { - "cell_type": "code", - "execution_count": 12, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 265, - "referenced_widgets": [ - "ffe4d972a0b74270a604c04d5c12397c", - "b46058236d844cc88920d694cc318850", - "2b513016ccd141bba01b7d6f3691e680", - "a73cd8bd4c774735abd1e0225143bb8e", - "31866301c8f9409fa6b7d62f301fcc40", - "6bd75cbe1ffd4d36be66dae0f32137d6", - "fc2017e688c5476991674ec173754cfd", - "cdad5116ad64449f9d2ac4f4bad6cd53", - "38ac2a593cda4c119081ebed8f4707ee", - "772c8c22072544719d31fb28004624c3", - "75830447817a494b879ac788a760919f", - "d457087c0d364526989a9e5cfec6fb9b", - "1e42836ab9f74e3486436322c7736ca5", - "3e8f509028e547049d903b4ed5fb4876", - "afdb2987395849878185d9618f3da323", - "e9e782dda4864e9c9010929b4ed4b1bc" - ] - }, - "id": "5debeaff", - "outputId": "d59f5186-ee4f-4007-f5a2-26cc3caf0dd1" - }, - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": [ - "interactive(children=(Text(value='Explain the concept of deep learning.', description='Prompt:'), FloatSlider(…" - ], - "application/vnd.jupyter.widget-view+json": { - "version_major": 2, - "version_minor": 0, - "model_id": "ffe4d972a0b74270a604c04d5c12397c" - } - }, - "metadata": {} - } - ], - "source": [ - "\n", - "import ipywidgets as widgets\n", - "from IPython.display import display\n", - "\n", - "# Interactive function for prompt engineering\n", - "def interactive_prompt(prompt, temperature=0.7, top_k=50, max_length=50):\n", - " print(generate_text(prompt, temperature=temperature, top_k=top_k, max_length=max_length))\n", - "\n", - "prompt_input = widgets.Text(value=\"Explain the concept of deep learning.\", description='Prompt:')\n", - "temperature_slider = widgets.FloatSlider(value=0.7, min=0.1, max=1.5, step=0.1, description='Temperature:')\n", - "top_k_slider = widgets.IntSlider(value=50, min=1, max=100, step=1, description='Top-k:')\n", - "length_slider = widgets.IntSlider(value=50, min=10, max=100, step=10, description='Max Length:')\n", - "\n", - "widgets.interactive(interactive_prompt, prompt=prompt_input, temperature=temperature_slider, top_k=top_k_slider, max_length=length_slider)\n" + "name": "stdout", + "output_type": "stream", + "text": [ + "Explain the concept of machine learning in simple terms.\n", + "\n", + "The machine learning is a system of learning that can be applied to any task. In particular, machine learning is a system that can be applied to any task in the world.\n", + "\n", + "\n", + "\n", + "--------------------------------------------------\n", + "\n", + "Prompt: Explain machine learning to a 10-year-old.\n", + "Explain machine learning to a 10-year-old.\n", + "\n", + "The next step is to find a way to teach students the basics of machine learning.\n", + "\n", + "\"We have some of the most advanced systems available,\" said Chris Binder, a\n", + "\n", + "--------------------------------------------------\n", + "\n" + ] + } + ], + "source": [ + "# Testing prompt engineering\n", + "prompts = [\n", + " \"Explain the concept of machine learning.\",\n", + " \"Explain the concept of machine learning in simple terms.\",\n", + " \"Explain machine learning to a 10-year-old.\",\n", + "]\n", + "\n", + "for p in prompts:\n", + " print(f\"Prompt: {p}\")\n", + " print(generate_text(p))\n", + " print(\"\\n\" + \"-\"*50 + \"\\n\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "2fa5476a" + }, + "source": [ + "\n", + "## Tokenization Explained in Detail\n", + "\n", + "In this section, we'll dive deeper into tokenization. The process of tokenization is essential for transforming raw text into tokens that the model can understand. Each token represents a word, part of a word, or even special characters.\n", + "\n", + "Let's see a practical demonstration of how a sentence is tokenized using a pre-trained GPT model. We will also visualize how text is broken down into tokens.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 444 + }, + "id": "a0c8b391", + "outputId": "6bd7567c-5647-4d80-8918-abb3e72b2fc2" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Tokens: tensor([[ 8001, 9542, 9345, 318, 25449, 262, 995, 13]])\n", + "Decoded Text: Artificial Intelligence is transforming the world.\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0kAAAGJCAYAAABfDnjdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABEQklEQVR4nO3deVRU9f/H8deAyiKLG6IkLrmvmUv2Bdeg3HI3zSi3zBbLXdMyFc21NK38mvYt0cytMvVYLoi4hOWOlhouuVCaaCooJirc3x8e5jcjoIwOM4jPxzlzjvdz753P+94ZRl587v2MyTAMQwAAAAAASZKLswsAAAAAgNyEkAQAAAAAFghJAAAAAGCBkAQAAAAAFghJAAAAAGCBkAQAAAAAFghJAAAAAGCBkAQAAAAAFghJAAAAAGCBkAQAuYjJZNKbb77plH7Hjh370PRri7Fjx8pkMjm7jEzrKFu2rHr27OnwWpzVLwA4CiEJAO6TyWTK1mPTpk3OLtUpfvzxx1wVhGrVqqXSpUvLMIwstwkODpa/v79u3rzpwMpyl23btmns2LG6dOmSs0sBAIfL5+wCAOBB99VXX1ktL1iwQJGRkRnaq1at6siybPLvv/8qX76c+S/hxx9/1KxZszINSjnZb1bCwsI0YsQIbd26VY0bN86w/sSJE/r555/15ptvKl++fBo1apRGjBjh0BqzKy4uTi4uOfP3zm3btik8PFw9e/ZUoUKFHNYvAOQGhCQAuE8vvvii1fIvv/yiyMjIDO25mbu7+0PT7wsvvKCRI0dq0aJFmYakxYsXyzAMhYWFSZLy5cvn8CCXXW5ubg9VvwDgKPwZCAAcIDk5WUOGDFFgYKDc3NxUuXJlffjhh3e85Cvd+++/LxcXF33yySfmtjVr1qhRo0YqWLCgvL291bp1ax04cMBqv549e8rLy0t//fWX2rdvLy8vL/n5+Wno0KFKTU212tby3qATJ07c8bLBdFu3btVzzz2n0qVLy83NTYGBgRo0aJD+/fdfqxpmzZpl7uP258jsnqS9e/eqZcuW8vHxkZeXl0JCQvTLL79YbRMRESGTyaSYmBgNHjxYfn5+KliwoDp06KBz587d8XwGBgaqcePG+vbbb3Xjxo0M6xctWqTy5curQYMGkjK/FygyMlINGzZUoUKF5OXlpcqVK+udd97JUN+JEyes9tu0aVOGSy+zcx6zcvu9QXd63dJr2b9/v3r27KlHH31U7u7uKlGihHr37q1//vnH/Dxjx47VsGHDJEnlypXL8ByZ3ZP0xx9/6LnnnlORIkXk6empJ598Uj/88EOmx79s2TJNmDBBpUqVkru7u0JCQnT06NG7Hi8AOEru/NMYAOQhhmGobdu2io6O1ssvv6zatWtr3bp1GjZsmP766y999NFHWe47atQoTZw4UXPmzNErr7wi6dblfT169FDz5s01ZcoUXb16VbNnz1bDhg21d+9elS1b1rx/amqqmjdvrgYNGujDDz/Uhg0bNG3aNJUvX16vv/56pn36+flluFTwxo0bGjRokAoUKGBu++abb3T16lW9/vrrKlq0qHbs2KFPPvlEf/75p7755htJ0quvvqrTp09nevlhZg4cOKBGjRrJx8dHw4cPV/78+TVnzhw1bdpUmzdvNgeXdG+99ZYKFy6sMWPG6MSJE5oxY4befPNNLV269I79hIWFqW/fvlq3bp2effZZc/uvv/6q3377TaNHj75jjc8++6xq1aqlcePGyc3NTUePHlVMTMxdjy8z2TmP2ZXZOR41apQSEhLk5eUl6VbA++OPP9SrVy+VKFFCBw4c0Ny5c3XgwAH98ssvMplM6tixow4fPqzFixfro48+UrFixSTdem9k5uzZswoKCtLVq1fVv39/FS1aVPPnz1fbtm317bffqkOHDlbbT548WS4uLho6dKgSExM1depUhYWFafv27TYdLwDkGAMAYFf9+vUzLD9eV6xYYUgy3n//favtOnfubJhMJuPo0aPmNklGv379DMMwjCFDhhguLi5GRESEef3ly5eNQoUKGa+88orVc/3999+Gr6+vVXuPHj0MSca4ceOstn388ceNunXrWrVJMsaMGZPlMb3xxhuGq6ursXHjRnPb1atXM2w3adIkw2QyGSdPnszyfNyp3/bt2xsFChQwjh07Zm47ffq04e3tbTRu3NjcNm/ePEOSERoaaqSlpZnbBw0aZLi6uhqXLl3K8lgMwzAuXLhguLm5Gd26dbNqHzFihCHJiIuLM7eNGTPGqv6PPvrIkGScO3cuy+dPr+/48eNW7dHR0YYkIzo62tyW3fN4ex2GYRhlypQxevTokWUdU6dONSQZCxYsuGN/ixcvNiQZW7ZsMbd98MEHmR5DZv0OHDjQkGRs3brV3Hb58mWj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PjVr1kze3t7y8fFR3bp1tWvXLucVmE2bNm1Sr169lJiYaH4/jh07VtKt99P48ePVvXt3+fj4mEcp3377bVWqVEmenp569NFH9d5771m9H9JH4b/66iuVLVtWvr6+ev7553X58mXzNt9++61q1qwpDw8PFS1aVKGhoUpOTtbYsWPVpk0bSZKLi4s5JKWlpWncuHEqVaqU3NzczN8VmC79ErmlS5eqSZMmcnd319dff21+/06cOFH+/v4qVKiQxo0bp5s3b2rYsGEqUqSISpUqpXnz5mV4rvTL7dL/j4iKilK9evXk6empoKAgxcXFWZ3L999/X8WLF5e3t7f69OmjESNG5KqrEe70Wku3LqPu3bu3vL29Vbp0ac2dO9dq//v9fMpLDMOQn5+fvv32W3Nb7dq1VbJkSfPyTz/9JDc3N129elWSdOrUKbVr105eXl7y8fFRly5ddPbsWfP26T83//vf/1SuXDm5u7tn2ndCQoLatGkjDw8PlStXTl9//XUOHSVwCyEpj1u2bJmqVKmiypUr68UXX9SXX36p278aa8SIEZo8ebIOHTqkp59+WkOGDFH16tV15swZnTlzRl27dnVS9bnL8uXL9corr+g///mPzpw5o+XLl2fYJi0tTS1btlRMTIwWLlyogwcPavLkyXJ1dc30Oa9cuaJWrVopKipKe/fuVYsWLdSmTRudOnUqpw8nR1y9elUffvihvvrqK23ZskWnTp3S0KFDJUlDhw5Vly5dzMHpzJkzCgoK0o0bN9S8eXN5e3tr69atiomJMQes69ev21xDamqq2rdvL09PT23fvl1z587Vu+++a7VNdvuMjo7WsWPHFB0drfnz5ysiIsLqjwbdu3fX4sWL9fHHH+vQoUOaM2eOvLy8JN0Ky0899ZQef/xx7dq1S2vXrtXZs2fVpUuXezizuVdYWJhKlSqlnTt3avfu3RoxYsQ9jWI4WlBQkGbMmCEfHx/z+zH9vSpJH374oR577DHt3btX7733niTJ29tbEREROnjwoGbOnKnPP/9cH330kdXzHjt2TCtWrNDq1au1evVqbd68WZMnT5YknTlzRt26dVPv3r116NAhbdq0SR07dpRhGBo6dKg5sKTXI0kzZ87UtGnT9OGHH2r//v1q3ry52rZtqyNHjlj1O2LECA0YMECHDh1S8+bNJUkbN27U6dOntWXLFk2fPl1jxozRs88+q8KFC2v79u167bXX9Oqrr+rPP/+847l69913NW3aNO3atUv58uVT7969zeu+/vprTZgwQVOmTNHu3btVunRpzZ49+15ekhxzt9d62rRpqlevnvbu3as33nhDr7/+ujkI2vvz6UFnMpnUuHFj8x+4Ll68qEOHDunff//V77//LknavHmz6tevL09PT6Wlpaldu3a6cOGCNm/erMjISP3xxx8Zfq84evSovvvuOy1fvjzLe+J69uyp+Ph4RUdH69tvv9V///tfJSQk5OTh4mFnIE8LCgoyZsyYYRiGYdy4ccMoVqyYER0dbRiGYURHRxuSjBUrVljtM2bMGOOxxx5zcKW5V5MmTYwBAwYYhmEYAwYMMJo0aWK1vkyZMsZHH31kGIZhrFu3znBxcTHi4uIyfa558+YZvr6+d+yvevXqxieffJLp8+cm6e+fixcvGoZx69gkGUePHjVvM2vWLMPf39+83KNHD6Ndu3ZWz/PVV18ZlStXNtLS0sxtKSkphoeHh7Fu3bpM97N8TQzD+hytWbPGyJcvn3HmzBnz+sjISEOS8f3339vUZ5kyZYybN2+at3nuueeMrl27GoZhGHFxcYYkIzIyMtPzM378eOOZZ56xaouPjzckZfn+eBDc/h729vY2IiIinFfQfcjq57FMmTJG+/bt77r/Bx98YNStW9e8PGbMGMPT09NISkoytw0bNsxo0KCBYRiGsXv3bkOSceLEiUyf7/vvvzdu/285ICDAmDBhglVb/fr1jTfeeMMwDMM4fvy4Icn8OZ8u/f2bmppqbqtcubLRqFEj8/LNmzeNggULGosXL7Z6rr179xqG8f8/4xs2bDDv88MPPxiSjH///dcwDMNo0KCB0a9fP6u+g4ODc93/IXd6rV988UXzclpamlG8eHFj9uzZhmFk77PiYfPxxx8b1atXNwzDMFasWGE0aNDAaNeunfmchYaGGu+8845hGIaxfv16w9XV1Th16pR5/wMHDhiSjB07dhiGcevnJn/+/EZCQoJVP5af8+mft+n7GIZhHDp0yJCUK/9/RN7ASFIeFhcXpx07dqhbt26SpHz58qlr165WlwNJUr169ZxRXp4UGxurUqVKqVKlStna/sqVKxo6dKiqVq2qQoUKycvLS4cOHXpgR5I8PT1Vvnx583LJkiXv+pe+ffv26ejRo/L29paX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7dmzR88884zat2+voKAgux8vAMC5uNwOAJCntGrVSvv379fPP/9s1X7lyhWFh4crNjbW/Pj111915MgRubu7m7fLnz+/1X4mk0lpaWmSpJYtW+rkyZMaNGiQTp8+rZCQEA0dOjTnDwoA4FCEJABArufj46OAgADFxMRYtcfExKhatWpWba+//romT56stm3bavPmzeb2OnXqKC4uThUqVMjwcHHJ/n+Hfn5+6tGjhxYuXKgZM2Zo7ty593dwAIBch8vtAAAPhGHDhmnMmDEqX768ateurXnz5ik2NlZff/11hm3feustpaam6tlnn9WaNWvUsGFDjR49Ws8++6xKly6tzp07y8XFRfv27dNvv/2m999/P1s1jB49WnXr1lX16tXN9zxVrVrV3ocKAHAyQhIA4IHQv39/JSYmasiQIUpISFC1atW0atUqVaxYMdPtBw4cqLS0NLVq1Upr165V8+bNtXr1ao0bN05TpkxR/vz5VaVKFfXp0yfbNRQoUEAjR47UiRMn5OHhoUaNGmnJkiX2OkQAQC7B7HYAAAAAYIF7kgAAAADAAiEJAAAAACwQkgAAAADAAiEJAAAAACwQkgAAAADAAiEJAAAAACwQkgAAAADAAiEJAAAAACwQkgAAAADAAiEJAAAAACwQkgAAAADAwv8BaOsTmvkHWx8AAAAASUVORK5CYII=", + "text/plain": [ + "
" ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "\n", + "# Load a pre-trained GPT model and its tokenizer\n", + "model_name = \"gpt2\"\n", + "tokenizer = AutoTokenizer.from_pretrained(model_name)\n", + "model = AutoModelForCausalLM.from_pretrained(model_name)\n", + "\n", + "# Sample text for tokenization\n", + "text = \"Artificial Intelligence is transforming the world.\"\n", + "\n", + "# Tokenizing the text\n", + "tokens = tokenizer.encode(text, return_tensors=\"pt\")\n", + "print(f\"Tokens: {tokens}\")\n", + "\n", + "# Decoding tokens back to text\n", + "decoded_text = tokenizer.decode(tokens[0])\n", + "print(f\"Decoded Text: {decoded_text}\")\n", + "\n", + "# Visualize tokenization\n", + "token_texts = [tokenizer.decode([token]) for token in tokens[0]]\n", + "plt.figure(figsize=(10, 4))\n", + "plt.bar(range(len(token_texts)), [len(token) for token in token_texts], tick_label=token_texts)\n", + "plt.xlabel('Tokens')\n", + "plt.ylabel('Length of Each Token')\n", + "plt.title('Tokenization Visualization')\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "d935aa2f" + }, + "source": [ + "\n", + "## Understanding Token Probabilities\n", + "\n", + "LLMs generate text by predicting the next token based on the probability distribution over the vocabulary. The model assigns a probability to each token, indicating how likely it is to come next given the input text.\n", + "\n", + "We'll demonstrate how the model generates probabilities for the next token using a simple prompt.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 572 }, + "id": "5504776a", + "outputId": "4eb17d53-4afb-4658-8e85-653cc4867bf8" + }, + "outputs": [ { - "cell_type": "markdown", - "metadata": { - "id": "70a78d74" - }, - "source": [ - "\n", - "# **Conclusion**\n", - "\n", - "In this notebook, we explored how Large Language Models (LLMs) like GPT work, focusing on key concepts such as:\n", - "1. **Tokenization**: Transforming text into tokens that the model can understand.\n", - "2. **Token Probabilities**: Understanding how the model assigns probabilities to different tokens when generating text.\n", - "3. **Text Generation**: Using different techniques like temperature, top-k, and top-p sampling to control text generation.\n", - "4. **Stochastic Nature**: Demonstrating how randomness plays a role in generating diverse outputs even with the same prompt.\n", - "5. **Prompt Engineering**: Highlighting how small changes in the prompt can significantly impact the output.\n", - "\n", - "These concepts are crucial for understanding how LLMs generate human-like text and how to leverage them effectively in various applications.\n", - "\n", - "## **Next Steps**\n", - "\n", - "If you'd like to explore further, consider the following:\n", - "- Experiment with different prompts to see how the model behaves.\n", - "- Try adjusting the temperature, top-k, and top-p parameters to observe how they change the output.\n", - "- Explore other pre-trained models available in the Hugging Face model hub.\n", - "- Apply these techniques to a real-world task, such as text summarization, chatbot development, or content generation.\n", - "\n", - "### **Additional Resources**\n", - "- [Hugging Face Transformers Documentation](https://huggingface.co/transformers/)\n", - "- [OpenAI GPT-3 Documentation](https://beta.openai.com/docs/)\n", - "- [NLP with Python](https://www.nltk.org/book/)\n", - "\n", - "We hope this notebook has given you a foundational understanding of how LLMs work. Happy experimenting!\n" + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAArwAAAHWCAYAAACVPVriAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA/O0lEQVR4nO3de3zO9f/H8ee12clhcxhbWBuZ5jw21pCR1ZzSpPj6FlLpm7NW+uGLUfpOhVaR8S18O/gSSb6IWA7JSiwkh1BMtI1oY9hm1+f3RzdXXW208zWfHvfb7XNr1/t6fT6f13uX6tmn9+dzWQzDMAQAAACYlJOjGwAAAADKEoEXAAAApkbgBQAAgKkReAEAAGBqBF4AAACYGoEXAAAApkbgBQAAgKkReAEAAGBqBF4AAACYGoEXAMrY4sWLZbFYtGvXLke3Uq46d+6s5s2bl9rxjh8/LovFopkzZ/5p7dSpU2WxWOzGAgIC9Mgjj9heb9myRRaLRVu2bCn0uRcvXlzErgFUBAReAKXOYrEUaitM0Cipa2GzoC01NbVY+/1+CwgIKPM5lKZrwe3a5uzsrFtvvVV9+vTRnj17HN2ewy1ZskTx8fGObgNAKavk6AYAmM8777xj9/rtt9/Wxo0b8403adKk3Hp67rnn1KBBA7ux6tWrX7e+U6dO+fp9/PHH1a5dOz3xxBO2sapVq5Zqn+VlwIAB6tGjh/Ly8nTw4EHNmzdPH3/8sb744gsFBwc7ur0SmzRpksaPH3/Dmk6dOuny5ctydXW1jS1ZskT79+/X2LFj7Wr9/f11+fJlubi4lEW7AMoYgRdAqXv44YftXn/xxRfauHFjvvHy1L17d4WGhha6vmHDhmrYsKHd2JNPPqmGDRs6dB6lpU2bNnbz6NChg3r37q158+Zp/vz5Be6TlZWlKlWqlFeLJVKpUiVVqnTjf8U5OTnJ3d29UMezWCyFrgVQ8bCkAYBDZGVl6emnn5afn5/c3Nx0++23a+bMmTIMw67OYrFo5MiReu+993T77bfL3d1dISEh2rZtW5HPeeHCBeXl5ZXWFCRJX3/9tbp37y5PT09VrVpVXbt21RdffPGn+50/f17t2rVT/fr1dfjwYUlSdna2YmNj1ahRI7m5ucnPz0/PPvussrOz7fa99jtZtWqVmjdvLjc3NzVr1kzr168v9jzuuusuSdIPP/wg6bclHVu3btXw4cNVp04d1a9f31b/xhtvqFmzZnJzc1PdunU1YsQI/fLLLwUee/fu3Wrfvr08PDzUoEEDJSQk2L2fk5OjKVOmKCQkRF5eXqpSpYruvPNObd68+br9vvLKK/L395eHh4ciIiK0f/9+u/cLWsP7R39cw9u5c2etXbtWJ06cyLdk5XpreA8dOqQHHnhANWvWlLu7u0JDQ7V69Wq7mtzcXE2bNk2BgYFyd3dXrVq11LFjR23cuPGG/QEoPVzhBVDuDMNQ7969tXnzZj322GMKDg7Whg0bNG7cOJ06dUqvvPKKXf3WrVu1bNkyjR49Wm5ubnrjjTfUrVs37dy5s9A3RXXp0kUXL16Uq6uroqKiNGvWLAUGBpZoHt9++63uvPNOeXp66tlnn5WLi4vmz5+vzp07a+vWrQoLCytwv7Nnz+ruu+/WuXPntHXrVt12222yWq3q3bu3tm/frieeeEJNmjTRN998o1deeUXfffedVq1aZXeM7du3a+XKlRo+fLiqVaum1157TX379lVKSopq1apV5LkcO3ZMkvLtO3z4cNWuXVtTpkxRVlaWpF/D5LRp0xQZGalhw4bp8OHDmjdvnr766it9/vnndv/b//z58+rRo4f69eunAQMG6P3339ewYcPk6uqqRx99VJKUmZmpN998UwMGDNDQoUN14cIFvfXWW4qKitLOnTvzLbF4++23deHCBY0YMUJXrlzRq6++qrvuukvffPONfHx8ijz3a/75z38qIyNDP/74o+3P4I2WrHz77bfq0KGD6tWrp/Hjx6tKlSp6//33FR0drQ8++EB9+vSx/b7i4uJsS2IyMzO1a9cuJScn6+677y52vwCKwACAMjZixAjj9/+4WbVqlSHJmD59ul3dAw88YFgsFuPo0aO2MUmGJGPXrl22sRMnThju7u5Gnz59/vTcy5YtMx555BHjP//5j/Hhhx8akyZNMipXrmx4e3sbKSkpRZpHlSpVjMGDB9teR0dHG66ursaxY8dsY6dPnzaqVatmdOrUyTa2aNEiQ5Lx1VdfGT/99JPRrFkzo2HDhsbx48dtNe+8847h5ORkfPbZZ3bnTEhIMCQZn3/+ud3vxNXV1e73tHfvXkOS8frrr99wDj/88IMhyZg2bZpx5swZIzU11diyZYvRunVrQ5LxwQcf2PXcsWNH4+rVq7b909PTDVdXV+Oee+4x8vLybONz5swxJBkLFy60jUVERBiSjFmzZtnGsrOzjeDgYKNOnTpGTk6OYRiGcfXqVSM7O9uuz/Pnzxs+Pj7Go48+mq93Dw8P48cff7SNf/nll4Yk46mnnrKNxcbGGn/8V5y/v7/d57d582ZDkrF582bbWM+ePQ1/f//r/t4WLVpkG+vatavRokUL48qVK7Yxq9VqtG/f3ggMDLSNtWrVyujZs2e+YwIoPyxpAFDu1q1bJ2dnZ40ePdpu/Omnn5ZhGPr444/txsPDwxUSEmJ7feutt+q+++7Thg0b/nSJQr9+/bRo0SINGjRI0dHRev7557Vhwwb9/PPPeuGFF4o9h7y8PH3yySeKjo62W+t7yy236O9//7u2b9+uzMxMu31+/PFHRUREKDc3V9u2bZO/v7/tveXLl6tJkyYKCgrS2bNnbdu1pQZ//N/7kZGRuu2222yvW7ZsKU9PT33//feF6j82Nla1a9eWr6+vOnfurGPHjunFF1/U/fffb1c3dOhQOTs7215v2rRJOTk5Gjt2rJycnOzqPD09tXbtWrv9K1WqpH/84x+2166urvrHP/6h9PR07d69W5Lk7Oxsu3HMarXq3Llzunr1qkJDQ5WcnJyv9+joaNWrV8/2ul27dgoLC9O6desKNffScO7cOX366afq16+fLly4YPu8fv75Z0VFRenIkSM6deqUpF9vjvz222915MiRcusPgD2WNAAodydOnFDdunVVrVo1u/FrT204ceKE3XhBSw8aN26sS5cu6cyZM6pZs6bOnTtn937t2rXtgtrvdezYUWFhYdq0aVOx53DmzBldunRJt99+e773mjRpIqvVqpMnT6pZs2a28YEDB6pSpUo6ePCgfH197fY5cuSIDh48qNq1axd4vvT0dLvXt956a76aGjVq6Pz584Xq/4knntCDDz4oJycnVa9e3bYe94/++GSLa5/NH+ft6uqqhg0b5vvs6tatm+9Gt8aNG0v6dV3sHXfcIUn6z3/+o1mzZunQoUPKzc297vml6/95eP/9968739J29OhRGYahyZMna/LkyQXWpKenq169enruued03333qXHjxmrevLm6deumgQMHqmXLluXWL/BXR+AFcNPbsWOHunTpYjf2ww8/3PAZuX5+frabxcrL/fffr7fffluvvvqq4uLi7N6zWq1q0aKFZs+eXeC+fn5+dq+vF+aNP9z0dz2BgYGKjIz80zoPD49CHa8k3n33XT3yyCOKjo7WuHHjVKdOHTk7OysuLs62triisVqtkqRnnnlGUVFRBdY0atRI0q+PPzt27Jg++ugjffLJJ3rzzTf1yiuvKCEhQY8//ni59Qz8lRF4AZQ7f39/bdq0SRcuXLC7ynvo0CHb+79X0P8K/u6771S5cmXVrl1bbm5u+e54/+MV1D/6/vvvr3s1tTBq166typUrFxiaDx06JCcnp3whddSoUWrUqJGmTJkiLy8vu+fE3nbbbdq7d6+6du36p08XcKRrn83hw4ftlnLk5OTohx9+yBeiT58+ne9xZt99950k2f6DZMWKFWrYsKFWrlxpN/fY2NgCe7jen4fS+BKQwv7ur83dxcWlUP/hULNmTQ0ZMkRDhgzRxYsX1alTJ02dOpXAC5QT1vACKHfXvvBgzpw5duOvvPKKLBaLunfvbjeelJRkt5bz5MmT+uijj3TPPffI2dlZNWrUUGRkpN127ZmpZ86cyXf+devWaffu3erWrVux5+Ds7Kx77rlHH330kY4fP24bT0tL05IlS9SxY0d5enrm22/y5Ml65plnNGHCBM2bN8823q9fP506dUr//ve/8+1z+fJl2xMSHC0yMlKurq567bXX7K4mv/XWW8rIyFDPnj3t6q9evWr3XN+cnBzNnz9ftWvXtq3Lvna1+vfH+/LLL5WUlFRgD6tWrbKtj5WknTt36ssvv8z356Y4qlSpooyMjD+tq1Onjjp37qz58+frp59+yvf+7//c/fzzz3bvVa1aVY0aNcr3uDkAZYcrvADK3b333qsuXbron//8p44fP65WrVrpk08+0UcffaSxY8fa3YwlSc2bN1dUVJTdY8kkadq0aX96rvbt26t169YKDQ2Vl5eXkpOTtXDhQvn5+WnixIklmsf06dO1ceNGdezYUcOHD1elSpU0f/58ZWdn66WXXrrufi+//LIyMjI0YsQIVatWTQ8//LAGDhyo999/X08++aQ2b96sDh06KC8vT4cOHdL777+vDRs2FOmLM8pK7dq1NWHCBE2bNk3dunVT7969dfjwYb3xxhtq27Ztvi/lqFu3rl588UUdP35cjRs31rJly7Rnzx4tWLDA9viyXr16aeXKlerTp4969uypH374QQkJCWratKkuXryYr4dGjRqpY8eOGjZs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atiwoQYOHKj33nvP9vclgPwIvCiUa+s2165dqz179ti2AwcOaMWKFerevbtOnDihp556SqdPn1bXrl31zDPPOLhr/FGLFi1Us2ZNbd261S7wbt26VV999ZVyc3PVvn17SdLx48fVq1cvtWzZUh988IF2796tuXPnSpJycnIkSY8//ri+//57DRw4UN98841CQ0P1+uuvO2x++HNTp07Vt99+q549e+rTTz9V06ZN9eGHHzq6LRRRtWrVlJycrP/+97+65ZZbNGXKFLVq1Uq//PKLo1sDKiQeS4ZCuXDhgmrXrq1///vfGjhw4J/Wz58/X+PGjVNmZmY5dIei6NOnj6pWrarly5fr7Nmzqly5sry9vXXvvffqyJEjtqvzH3zwgQYMGKArV67IyenX/zaePn26Jk+erPPnzxf4bNcJEyZo7dq1XOmtQBYvXqyxY8deNwgNGDBAWVlZWr16dfk2hlKVlZWl6tWra9myZbr//vsd3Q5Q4bCGF4VSrVo1PfPMM3rqqadktVrVsWNHZWRk6PPPP5enp6eOHTumkJAQNWvWTNnZ2VqzZo2aNGni6LZRgM6dO+vpp59WaGio7QazTp066b333tO4ceNsdY0aNVJubq5ef/113Xvvvfr888+VkJBgd6yxY8eqe/fuaty4sc6fP6/NmzfzuVdgly9f1rhx4/TAAw+oQYMG+vHHH/XVV1+pb9++jm4NRbRmzRp9//336tSpk2rUqKF169bJarXq9ttvd3RrQIXEkgYU2vPPP6/JkycrLi5OTZo0Ubdu3bR27Vo1aNBArq6umjBhglq2bKlOnTrJ2dlZS5cudXTLKEBERITy8vLs1up27tw531irVq00e/Zsvfjii2revLnee+89xcXF2R0rLy9PI0aMsP15aNy4se2GNlQ8zs7O+vnnnzVo0CA1btxY/fr1U/fu3TVt2jRHt4Yiql69ulauXKm77rpLTZo0UUJCgv773/+qWbNmjm4NJbR48WJZLBZHt2E6LGkAAACoIGJjY7V161Zt2bLF0a2YCksaAAAAKoiPP/5Yc+bMcXQbpsMVXgAAAJgaa3gBAABgagReAAAAmBqBFwAAAKZG4AUAAICpEXgBAABgagReAAAAmBqBFwBM4vjx47JYLNqzZ4+jWwGACoXACwAViMViueE2depUR7cIADcdvmkNACqQn376yfbzsmXLNGXKFB0+fNg2VrVqVUe0BQA3Na7wAkAF4uvra9u8vLxksVhsr+vUqaPZs2erfv36cnNzU3BwsNavX3/dY+Xl5enRRx9VUFCQUlJSJEkfffSR2rRpI3d3dzVs2FDTpk3T1atXbftYLBa9+eab6tOnjypXrqzAwECtXr3a9v758+f10EMPqXbt2vLw8FBgYKAWLVpUdr8QACgFBF4AuEm8+uqrmjVrlmbOnKl9+/YpKipKvXv31pEjR/LVZmdn68EHH9SePXv02Wef6dZbb9Vnn32mQYMGacyYMTpw4IDmz5+vxYsX64UXXrDbd9q0aerXr5/27dunHj166KGHHtK5c+ckSZMnT9aBAwf08ccf6+DBg5o3b568vb3LZf4AUFwWwzAMRzcBAMhv8eLFGjt2rH755RdJUr169TRixAhNnDjRVtOuXTu1bdtWc+fO1fHjx9WgQQN99tlnmjp1qrKzs7VmzRp5eXlJkiIjI9W1a1dNmDDBtv+7776rZ599VqdPn5b06xXeSZMm6fnnn5ckZWVlqWrVqvr444/VrVs39e7dW97e3lq4cGE5/RYAoORYwwsAN4HMzEydPn1aHTp0sBvv0KGD9u7dazc2YMAA1a9fX59++qk8PDxs43v37tXnn39ud0U3Ly9PV65c0aVLl1S5cmVJUsuWLW3vV6lSRZ6enkpPT5ckDRs2TH379lVycrLuueceRUdHq3379qU+XwAoTSxpAACT6dGjh/bt26ekpCS78YsXL2ratGnas2ePbfvmm2905MgRubu72+pcXFzs9rNYLLJarZKk7t2768SJE3rqqad0+vRpde3aVc8880zZTwoASoDACwA3AU9PT9WtW1eff/653fjnn3+upk2b2o0NGzZMM2bMUO/evbV161bbeJs2bXT48GE1atQo3+bkVPh/HdSuXVuDBw/Wu+++q/j4eC1YsKBkkwOAMsaSBgC4SYwbN06xsbG67bbbFBwcrEWLFmnPnj1677338tWOGjVKeXl56tWrlz7++GN17NhRU6ZMUa9evXTrrbfqgQcekJOTk/bu3av9+/dr+vTphephypQpCgkJUbNmzWxrhJs0aVLaUwWAUkXgBYCbxOjRo5WRkaGnn35a6enpatq0qVavXq3AwMAC68eOHSur1aoePXpo/fr1ioqK0po1a/Tcc8/pxRdflIuLi4KCgvT4448XugdXV1dNmDBBx48fl4eHh+68804tXbq0tKYIAGWCpzQAAADA1FjDCwAAAFMj8AIAAMDUCLwAAAAwNQIvAAAATI3ACwAAAFMj8AIAAMDUCLwAAAAwNQIvAAAATI3ACwAAAFMj8AIAAMDUCLwAAAAwtf8HMhXf7W7vTX0AAAAASUVORK5CYII=", + "text/plain": [ + "
" ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Token: es, Probability: 0.1297\n", + "Token: was, Probability: 0.0457\n", + "Token: is, Probability: 0.0344\n", + "Token: 's, Probability: 0.0332\n", + "Token: ,, Probability: 0.0313\n" + ] } - ], - "metadata": { + ], + "source": [ + "\n", + "# Generate output with token probabilities\n", + "input_text = \"The quick brown fox\"\n", + "input_ids = tokenizer.encode(input_text, return_tensors=\"pt\")\n", + "output = model(input_ids)\n", + "\n", + "# Extract logits (raw scores) for the next token prediction\n", + "logits = output.logits[0, -1, :]\n", + "probs = torch.softmax(logits, dim=0)\n", + "\n", + "# Show the top 5 probable tokens\n", + "top_k = 5\n", + "top_k_indices = torch.topk(probs, top_k).indices\n", + "top_k_probs = torch.topk(probs, top_k).values\n", + "\n", + "# Visualize token probabilities\n", + "top_k_tokens = [tokenizer.decode([idx]) for idx in top_k_indices]\n", + "plt.figure(figsize=(8, 5))\n", + "plt.bar(top_k_tokens, top_k_probs.detach().numpy())\n", + "plt.xlabel('Tokens')\n", + "plt.ylabel('Probability')\n", + "plt.title('Top-5 Token Probabilities')\n", + "plt.show()\n", + "\n", + "# Display top-k tokens with their probabilities\n", + "for i in range(top_k):\n", + " token = tokenizer.decode([top_k_indices[i].item()])\n", + " print(f\"Token: {token}, Probability: {top_k_probs[i].item():.4f}\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "440963c9" + }, + "source": [ + "\n", + "## Exploring the Stochastic Nature of LLMs\n", + "\n", + "The behavior of LLMs can be controlled by various parameters during text generation:\n", + "\n", + "- **Temperature**: Controls the randomness of predictions. A higher temperature value (e.g., 1.0) makes the model generate more random outputs, while a lower value (e.g., 0.2) makes it more focused and deterministic.\n", + "- **Top-k Sampling**: Limits the model’s token choices to the top-k most probable tokens.\n", + "- **Top-p Sampling (Nucleus Sampling)**: Limits token selection to those with a cumulative probability below a threshold (p).\n", + "\n", + "Let's experiment with these parameters to see their effects on the generated text.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { "colab": { - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - }, - "language_info": { - "name": "python" - }, - "widgets": { - "application/vnd.jupyter.widget-state+json": { - "ed52f970e5ae4c11863e8e46f9ae828f": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HBoxModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_d54161703d0c489e9cc2e0c2bc8cdde0", - "IPY_MODEL_dd73d4c00bcb4815a47e466ffeb764f7", - "IPY_MODEL_d0f03e93e94a48e88bb807ce9fcd3626" - ], - "layout": "IPY_MODEL_247cef68024a44d792583d015eee698f" - } - }, - "d54161703d0c489e9cc2e0c2bc8cdde0": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_eedbbeb237564aa6bf1024699404a0d8", - "placeholder": "​", - "style": "IPY_MODEL_da9b0dfeb44b46bb81534080eaf0047f", - "value": "tokenizer_config.json: 100%" - } - }, - "dd73d4c00bcb4815a47e466ffeb764f7": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatProgressModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "FloatProgressModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "ProgressView", - "bar_style": "success", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_d3da6b9fec5149f596dd627fdc0ddf28", - "max": 26, - "min": 0, - "orientation": "horizontal", - "style": "IPY_MODEL_7db8af670bd5408ea41df7b09762233d", - "value": 26 - } - }, - "d0f03e93e94a48e88bb807ce9fcd3626": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_909e5b085ea848b29d1aac95c4dd1ee7", - "placeholder": "​", - "style": "IPY_MODEL_0023a18e9bf7450997c5af11070b5cc2", - "value": " 26.0/26.0 [00:00<00:00, 1.54kB/s]" - } - }, - "247cef68024a44d792583d015eee698f": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "eedbbeb237564aa6bf1024699404a0d8": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "da9b0dfeb44b46bb81534080eaf0047f": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "d3da6b9fec5149f596dd627fdc0ddf28": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "7db8af670bd5408ea41df7b09762233d": { - "model_module": "@jupyter-widgets/controls", - "model_name": "ProgressStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "ProgressStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "bar_color": null, - "description_width": "" - } - }, - "909e5b085ea848b29d1aac95c4dd1ee7": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "0023a18e9bf7450997c5af11070b5cc2": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "643145af92da4183b9607eb7e2e6d0f7": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HBoxModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_9d78f9dff3dd45218b53496767b00c70", - "IPY_MODEL_66f3d33e3f514f31bf0e6b2ce35801be", - "IPY_MODEL_836388e618d944aebb9dce0dea9c56e1" - ], - "layout": "IPY_MODEL_39cbea48cd8848b19b9dc20736708df1" - } - }, - "9d78f9dff3dd45218b53496767b00c70": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_ab0a2da0da2e4b3eb966395e54729ffa", - "placeholder": "​", - "style": "IPY_MODEL_786d8c0044ba4e02809f8edb03af9c2a", - "value": "config.json: 100%" - } - }, - "66f3d33e3f514f31bf0e6b2ce35801be": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatProgressModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "FloatProgressModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "ProgressView", - "bar_style": "success", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_83f9d9548db2456ab0a26a96e03e9581", - "max": 665, - "min": 0, - "orientation": "horizontal", - "style": "IPY_MODEL_58b715f058384647b70276588eb2bf92", - "value": 665 - } - }, - "836388e618d944aebb9dce0dea9c56e1": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_1dd3f850d0d9484bb5313a067392a139", - "placeholder": "​", - "style": "IPY_MODEL_995591cb74bc4395813e80fe8087f623", - "value": " 665/665 [00:00<00:00, 28.2kB/s]" - } - }, - "39cbea48cd8848b19b9dc20736708df1": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "ab0a2da0da2e4b3eb966395e54729ffa": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "786d8c0044ba4e02809f8edb03af9c2a": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "83f9d9548db2456ab0a26a96e03e9581": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "58b715f058384647b70276588eb2bf92": { - "model_module": "@jupyter-widgets/controls", - "model_name": "ProgressStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "ProgressStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "bar_color": null, - "description_width": "" - } - }, - "1dd3f850d0d9484bb5313a067392a139": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "995591cb74bc4395813e80fe8087f623": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "a98d240475f549a894b283fcec9097a8": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HBoxModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_f41832a72fdb4cb79530c9fc44693185", - "IPY_MODEL_00ad49ed4b5e447eb6915708c628f491", - "IPY_MODEL_a4f33b68497e470593bb3c53e2e73703" - ], - "layout": "IPY_MODEL_83c8a96b28a3406b86167b22a3bf1c7c" - } - }, - "f41832a72fdb4cb79530c9fc44693185": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_427a17311b0c4419897745ccb319fc0c", - "placeholder": "​", - "style": "IPY_MODEL_1d77d79208c54108bbe8ef2c72fcbe4c", - "value": "vocab.json: 100%" - } - }, - "00ad49ed4b5e447eb6915708c628f491": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatProgressModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "FloatProgressModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "ProgressView", - "bar_style": "success", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_5e3f481ead9b4dffb22b019fb7286a75", - "max": 1042301, - "min": 0, - "orientation": "horizontal", - "style": "IPY_MODEL_9a1af9363cc44ec5a89ddda9a94466fd", - "value": 1042301 - } - }, - "a4f33b68497e470593bb3c53e2e73703": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_4d2fa322281a45ab8a1464be57439749", - "placeholder": "​", - "style": "IPY_MODEL_ff32f023a7c043599760bf3b3bf83cb2", - "value": " 1.04M/1.04M [00:00<00:00, 11.1MB/s]" - } - }, - "83c8a96b28a3406b86167b22a3bf1c7c": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "427a17311b0c4419897745ccb319fc0c": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "1d77d79208c54108bbe8ef2c72fcbe4c": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "5e3f481ead9b4dffb22b019fb7286a75": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "9a1af9363cc44ec5a89ddda9a94466fd": { - "model_module": "@jupyter-widgets/controls", - "model_name": "ProgressStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "ProgressStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "bar_color": null, - "description_width": "" - } - }, - "4d2fa322281a45ab8a1464be57439749": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "ff32f023a7c043599760bf3b3bf83cb2": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "97784968743c46a3b094f942a617f505": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HBoxModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_3a22215d257e44da912f098e75bcad67", - "IPY_MODEL_459cba8b3a834331985dffea92c541bd", - "IPY_MODEL_b155188a446441348e47eeefee321a7b" - ], - "layout": "IPY_MODEL_e2f11ebb13c24dcd81cdba4bedf3ded4" - } - }, - "3a22215d257e44da912f098e75bcad67": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_355db76789934773b18bbba7be586bf3", - "placeholder": "​", - "style": "IPY_MODEL_c32dd63b33a147edb63e8b2ef0da5376", - "value": "merges.txt: 100%" - } - }, - "459cba8b3a834331985dffea92c541bd": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatProgressModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "FloatProgressModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "ProgressView", - "bar_style": "success", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_2817038686c042aa836954a2c1bdd314", - "max": 456318, - "min": 0, - "orientation": "horizontal", - "style": "IPY_MODEL_59935aff77684051ad3eef45af4a8d39", - "value": 456318 - } - }, - "b155188a446441348e47eeefee321a7b": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_4eb227bcee9e409199cc51caab0c7696", - "placeholder": "​", - "style": "IPY_MODEL_bef5ad3f28674648a365a6f60eb21371", - "value": " 456k/456k [00:00<00:00, 1.83MB/s]" - } - }, - "e2f11ebb13c24dcd81cdba4bedf3ded4": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "355db76789934773b18bbba7be586bf3": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "c32dd63b33a147edb63e8b2ef0da5376": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "2817038686c042aa836954a2c1bdd314": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "59935aff77684051ad3eef45af4a8d39": { - "model_module": "@jupyter-widgets/controls", - "model_name": "ProgressStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "ProgressStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "bar_color": null, - "description_width": "" - } - }, - "4eb227bcee9e409199cc51caab0c7696": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "bef5ad3f28674648a365a6f60eb21371": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "eb5e86fa57df476ea37013c7912a743e": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HBoxModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_7ccbeb6d75264e489e768710b10e0ab0", - "IPY_MODEL_5c159af238114e4abe4bd36cf482d119", - "IPY_MODEL_2ef6a55cd791473992084f043bd9226c" - ], - "layout": "IPY_MODEL_f6744817df8a4006bd0ff225aa9e4aab" - } - }, - "7ccbeb6d75264e489e768710b10e0ab0": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_7adf04d2c6c04e9b8246c70dfc58fdcc", - "placeholder": "​", - "style": "IPY_MODEL_bb30e9fd347f4166b1966997d462c5cd", - "value": "tokenizer.json: 100%" - } - }, - "5c159af238114e4abe4bd36cf482d119": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatProgressModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "FloatProgressModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "ProgressView", - "bar_style": "success", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_5af88d5e9e1041b7ab5a8826e3ed1fa5", - "max": 1355256, - "min": 0, - "orientation": "horizontal", - "style": "IPY_MODEL_20446918559f460da71d704b4a3816c5", - "value": 1355256 - } - }, - "2ef6a55cd791473992084f043bd9226c": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_ceee626d21094ac486ddbb88634512ad", - "placeholder": "​", - "style": "IPY_MODEL_272d275596eb495a889496b640279965", - "value": " 1.36M/1.36M [00:00<00:00, 5.62MB/s]" - } - }, - "f6744817df8a4006bd0ff225aa9e4aab": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "7adf04d2c6c04e9b8246c70dfc58fdcc": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "bb30e9fd347f4166b1966997d462c5cd": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "5af88d5e9e1041b7ab5a8826e3ed1fa5": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "20446918559f460da71d704b4a3816c5": { - "model_module": "@jupyter-widgets/controls", - "model_name": "ProgressStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "ProgressStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "bar_color": null, - "description_width": "" - } - }, - "ceee626d21094ac486ddbb88634512ad": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "272d275596eb495a889496b640279965": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "a8033e173deb48448ab9f3d78bd0339c": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HBoxModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_fc63e2a321524fdb85fd891bb611246a", - "IPY_MODEL_f04694026e2a41e391281b788248c2a2", - "IPY_MODEL_d422c21430884a37b730da4955f3a574" - ], - "layout": "IPY_MODEL_05cf4d5fea694221aa439a784f45ac94" - } - }, - "fc63e2a321524fdb85fd891bb611246a": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_a646d1d0286d489c98c81bdffb2559ed", - "placeholder": "​", - "style": "IPY_MODEL_32ef2f84eb174debae5f2a2e6c8011dd", - "value": "model.safetensors: 100%" - } - }, - "f04694026e2a41e391281b788248c2a2": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatProgressModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "FloatProgressModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "ProgressView", - "bar_style": "success", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_fd9e1e0e51974c8a8c473c464f99d018", - "max": 548105171, - "min": 0, - "orientation": "horizontal", - "style": "IPY_MODEL_c56b0483ad8549089f908989e5616dd1", - "value": 548105171 - } - }, - "d422c21430884a37b730da4955f3a574": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_d595683824734914a9f67634d4e08f98", - "placeholder": "​", - "style": "IPY_MODEL_6050b0136e754378b71b1295dab6c2c8", - "value": " 548M/548M [00:05<00:00, 179MB/s]" - } - }, - "05cf4d5fea694221aa439a784f45ac94": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "a646d1d0286d489c98c81bdffb2559ed": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "32ef2f84eb174debae5f2a2e6c8011dd": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "fd9e1e0e51974c8a8c473c464f99d018": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "c56b0483ad8549089f908989e5616dd1": { - "model_module": "@jupyter-widgets/controls", - "model_name": "ProgressStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "ProgressStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "bar_color": null, - "description_width": "" - } - }, - "d595683824734914a9f67634d4e08f98": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "6050b0136e754378b71b1295dab6c2c8": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "8832939841fc4180a3aeafdc7aaafb63": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HBoxModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_964d2abc5311445d8c9e515fee2ec571", - "IPY_MODEL_c8d64d6591db4bec9fb752345e249530", - "IPY_MODEL_2ea9aa390af84712893e431108ba80d2" - ], - "layout": "IPY_MODEL_e5c16313f7c94eb7a390a99f5d09ef77" - } - }, - "964d2abc5311445d8c9e515fee2ec571": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_9e874cda300f4056807b378d386789cb", - "placeholder": "​", - "style": "IPY_MODEL_85baaaffafea4de693f7637e5e1f09c8", - "value": "generation_config.json: 100%" - } - }, - "c8d64d6591db4bec9fb752345e249530": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatProgressModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "FloatProgressModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "ProgressView", - "bar_style": "success", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_6377db896bed44299ffdf88704c925ff", - "max": 124, - "min": 0, - "orientation": "horizontal", - "style": "IPY_MODEL_c8b3fb7df3fa4d0f8d57efe9721d3a67", - "value": 124 - } - }, - "2ea9aa390af84712893e431108ba80d2": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_6e3b8ae4aa044e8e878c3f3ea1e76887", - "placeholder": "​", - "style": "IPY_MODEL_e3d9044e0c0f4cf8b3783d617b0e4649", - "value": " 124/124 [00:00<00:00, 8.23kB/s]" - } - }, - "e5c16313f7c94eb7a390a99f5d09ef77": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "9e874cda300f4056807b378d386789cb": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "85baaaffafea4de693f7637e5e1f09c8": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "6377db896bed44299ffdf88704c925ff": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "c8b3fb7df3fa4d0f8d57efe9721d3a67": { - "model_module": "@jupyter-widgets/controls", - "model_name": "ProgressStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "ProgressStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "bar_color": null, - "description_width": "" - } - }, - "6e3b8ae4aa044e8e878c3f3ea1e76887": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "e3d9044e0c0f4cf8b3783d617b0e4649": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "ffe4d972a0b74270a604c04d5c12397c": { - "model_module": "@jupyter-widgets/controls", - "model_name": "VBoxModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [ - "widget-interact" - ], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "VBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "VBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_b46058236d844cc88920d694cc318850", - "IPY_MODEL_2b513016ccd141bba01b7d6f3691e680", - "IPY_MODEL_a73cd8bd4c774735abd1e0225143bb8e", - "IPY_MODEL_31866301c8f9409fa6b7d62f301fcc40", - "IPY_MODEL_6bd75cbe1ffd4d36be66dae0f32137d6" - ], - "layout": "IPY_MODEL_fc2017e688c5476991674ec173754cfd" - } - }, - "b46058236d844cc88920d694cc318850": { - "model_module": "@jupyter-widgets/controls", - "model_name": "TextModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "TextModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "TextView", - "continuous_update": true, - "description": "Prompt:", - "description_tooltip": null, - "disabled": false, - "layout": "IPY_MODEL_cdad5116ad64449f9d2ac4f4bad6cd53", - "placeholder": "​", - "style": "IPY_MODEL_38ac2a593cda4c119081ebed8f4707ee", - "value": "Explain the concept of deep learning." - } - }, - "2b513016ccd141bba01b7d6f3691e680": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatSliderModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "FloatSliderModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "FloatSliderView", - "continuous_update": true, - "description": "Temperature:", - "description_tooltip": null, - "disabled": false, - "layout": "IPY_MODEL_772c8c22072544719d31fb28004624c3", - "max": 1.5, - "min": 0.1, - "orientation": "horizontal", - "readout": true, - "readout_format": ".2f", - "step": 0.1, - "style": "IPY_MODEL_75830447817a494b879ac788a760919f", - "value": 0.7 - } - }, - "a73cd8bd4c774735abd1e0225143bb8e": { - "model_module": "@jupyter-widgets/controls", - "model_name": "IntSliderModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "IntSliderModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "IntSliderView", - "continuous_update": true, - "description": "Top-k:", - "description_tooltip": null, - "disabled": false, - "layout": "IPY_MODEL_d457087c0d364526989a9e5cfec6fb9b", - "max": 100, - "min": 1, - "orientation": "horizontal", - "readout": true, - "readout_format": "d", - "step": 1, - "style": "IPY_MODEL_1e42836ab9f74e3486436322c7736ca5", - "value": 50 - } - }, - "31866301c8f9409fa6b7d62f301fcc40": { - "model_module": "@jupyter-widgets/controls", - "model_name": "IntSliderModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "IntSliderModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "IntSliderView", - "continuous_update": true, - "description": "Max Length:", - "description_tooltip": null, - "disabled": false, - "layout": "IPY_MODEL_3e8f509028e547049d903b4ed5fb4876", - "max": 100, - "min": 10, - "orientation": "horizontal", - "readout": true, - "readout_format": "d", - "step": 10, - "style": "IPY_MODEL_afdb2987395849878185d9618f3da323", - "value": 50 - } - }, - "6bd75cbe1ffd4d36be66dae0f32137d6": { - "model_module": "@jupyter-widgets/output", - "model_name": "OutputModel", - "model_module_version": "1.0.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/output", - "_model_module_version": "1.0.0", - "_model_name": "OutputModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/output", - "_view_module_version": "1.0.0", - "_view_name": "OutputView", - "layout": "IPY_MODEL_e9e782dda4864e9c9010929b4ed4b1bc", - "msg_id": "", - "outputs": [ - { - "output_type": "stream", - "name": "stderr", - "text": [ - "The attention mask and the pad token id were not set. As a consequence, you may observe unexpected behavior. Please pass your input's `attention_mask` to obtain reliable results.\n" - ] - }, - { - "output_type": "stream", - "name": "stderr", - "text": [ - "Setting `pad_token_id` to `eos_token_id`:None for open-end generation.\n" - ] - }, - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Explain the concept of deep learning.\n", - "\n", - "The core of deep learning is the notion that a neural network is a \"deep neural network\" that learns about things and then learns about itself, thus gaining insight about how things interact with each other.\n" - ] - } - ] - } - }, - "fc2017e688c5476991674ec173754cfd": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "cdad5116ad64449f9d2ac4f4bad6cd53": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "38ac2a593cda4c119081ebed8f4707ee": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "772c8c22072544719d31fb28004624c3": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "75830447817a494b879ac788a760919f": { - "model_module": "@jupyter-widgets/controls", - "model_name": "SliderStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "SliderStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "", - "handle_color": null - } - }, - "d457087c0d364526989a9e5cfec6fb9b": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "1e42836ab9f74e3486436322c7736ca5": { - "model_module": "@jupyter-widgets/controls", - "model_name": "SliderStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "SliderStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "", - "handle_color": null - } - }, - "3e8f509028e547049d903b4ed5fb4876": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "afdb2987395849878185d9618f3da323": { - "model_module": "@jupyter-widgets/controls", - "model_name": "SliderStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "SliderStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "", - "handle_color": null - } - }, - "e9e782dda4864e9c9010929b4ed4b1bc": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - } - } + "base_uri": "https://localhost:8080/" + }, + "id": "9c969e28", + "outputId": "4f9e13f5-a29d-448c-b2e4-0296737eac22" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "The attention mask and the pad token id were not set. As a consequence, you may observe unexpected behavior. Please pass your input's `attention_mask` to obtain reliable results.\n", + "Setting `pad_token_id` to `eos_token_id`:None for open-end generation.\n", + "The attention mask and the pad token id were not set. As a consequence, you may observe unexpected behavior. Please pass your input's `attention_mask` to obtain reliable results.\n", + "Setting `pad_token_id` to `eos_token_id`:None for open-end generation.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Temperature 0.2: Once upon a time, the world was a place of great beauty and great danger. The world was a place of great danger. The world was a place of great danger. The world was a place of great danger. The world was a place of\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "The attention mask and the pad token id were not set. As a consequence, you may observe unexpected behavior. Please pass your input's `attention_mask` to obtain reliable results.\n", + "Setting `pad_token_id` to `eos_token_id`:None for open-end generation.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Temperature 0.7: Once upon a time, she saw him and she said, 'How can I say that you were a man?' He said, 'I had a son.' And she said, 'I heard you say that. How can I say that you were\n", + "Temperature 1.0: Once upon a time, I felt at ease with the thought of being able to control the emotions. And yet it took me a little while to come to accept it as a reality. I was also afraid of feeling too proud of myself, because there\n" + ] } + ], + "source": [ + "# Function to generate text with different parameters\n", + "def generate_text(prompt, max_length=50, temperature=0.7, top_k=50, top_p=0.9):\n", + " input_ids = tokenizer(prompt, return_tensors=\"pt\").input_ids\n", + " output = model.generate(\n", + " input_ids,\n", + " max_length=max_length,\n", + " temperature=temperature,\n", + " top_k=top_k,\n", + " top_p=top_p,\n", + " do_sample=True,\n", + " )\n", + " return tokenizer.decode(output[0], skip_special_tokens=True)\n", + "\n", + "# Testing with different temperatures\n", + "prompt = \"Once upon a time\"\n", + "print(\"Temperature 0.2:\", generate_text(prompt, temperature=0.2))\n", + "print(\"Temperature 0.7:\", generate_text(prompt, temperature=0.7))\n", + "print(\"Temperature 1.0:\", generate_text(prompt, temperature=1.0))\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "27b21512" + }, + "source": [ + "\n", + "## Interactive Prompt Engineering\n", + "\n", + "Try modifying the prompt and parameters to see how they affect the output. This is an important aspect of prompt engineering, where small changes in the input can lead to different outputs.\n" + ] }, - "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 265, + "referenced_widgets": [ + "ffe4d972a0b74270a604c04d5c12397c", + "b46058236d844cc88920d694cc318850", + "2b513016ccd141bba01b7d6f3691e680", + "a73cd8bd4c774735abd1e0225143bb8e", + "31866301c8f9409fa6b7d62f301fcc40", + "6bd75cbe1ffd4d36be66dae0f32137d6", + "fc2017e688c5476991674ec173754cfd", + "cdad5116ad64449f9d2ac4f4bad6cd53", + "38ac2a593cda4c119081ebed8f4707ee", + "772c8c22072544719d31fb28004624c3", + "75830447817a494b879ac788a760919f", + "d457087c0d364526989a9e5cfec6fb9b", + "1e42836ab9f74e3486436322c7736ca5", + "3e8f509028e547049d903b4ed5fb4876", + "afdb2987395849878185d9618f3da323", + "e9e782dda4864e9c9010929b4ed4b1bc" + ] + }, + "id": "5debeaff", + "outputId": "d59f5186-ee4f-4007-f5a2-26cc3caf0dd1" + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "ffe4d972a0b74270a604c04d5c12397c", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "interactive(children=(Text(value='Explain the concept of deep learning.', description='Prompt:'), FloatSlider(…" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "import ipywidgets as widgets\n", + "from IPython.display import display\n", + "\n", + "# Interactive function for prompt engineering\n", + "def interactive_prompt(prompt, temperature=0.7, top_k=50, max_length=50):\n", + " print(generate_text(prompt, temperature=temperature, top_k=top_k, max_length=max_length))\n", + "\n", + "prompt_input = widgets.Text(value=\"Explain the concept of deep learning.\", description='Prompt:')\n", + "temperature_slider = widgets.FloatSlider(value=0.7, min=0.1, max=1.5, step=0.1, description='Temperature:')\n", + "top_k_slider = widgets.IntSlider(value=50, min=1, max=100, step=1, description='Top-k:')\n", + "length_slider = widgets.IntSlider(value=50, min=10, max=100, step=10, description='Max Length:')\n", + "\n", + "widgets.interactive(interactive_prompt, prompt=prompt_input, temperature=temperature_slider, top_k=top_k_slider, max_length=length_slider)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "70a78d74" + }, + "source": [ + "\n", + "# **Conclusion**\n", + "\n", + "In this notebook, we explored how Large Language Models (LLMs) like GPT work, focusing on key concepts such as:\n", + "1. **Tokenization**: Transforming text into tokens that the model can understand.\n", + "2. **Token Probabilities**: Understanding how the model assigns probabilities to different tokens when generating text.\n", + "3. **Text Generation**: Using different techniques like temperature, top-k, and top-p sampling to control text generation.\n", + "4. **Stochastic Nature**: Demonstrating how randomness plays a role in generating diverse outputs even with the same prompt.\n", + "5. **Prompt Engineering**: Highlighting how small changes in the prompt can significantly impact the output.\n", + "\n", + "These concepts are crucial for understanding how LLMs generate human-like text and how to leverage them effectively in various applications.\n", + "\n", + "## **Next Steps**\n", + "\n", + "If you'd like to explore further, consider the following:\n", + "- Experiment with different prompts to see how the model behaves.\n", + "- Try adjusting the temperature, top-k, and top-p parameters to observe how they change the output.\n", + "- Explore other pre-trained models available in the Hugging Face model hub.\n", + "- Apply these techniques to a real-world task, such as text summarization, chatbot development, or content generation.\n", + "\n", + "### **Additional Resources**\n", + "- [Hugging Face Transformers Documentation](https://huggingface.co/transformers/)\n", + "- [OpenAI GPT-3 Documentation](https://beta.openai.com/docs/)\n", + "- [NLP with Python](https://www.nltk.org/book/)\n", + "\n", + "We hope this notebook has given you a foundational understanding of how LLMs work. Happy experimenting!\n" + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": ".venv", + "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.12.2" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "0023a18e9bf7450997c5af11070b5cc2": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "00ad49ed4b5e447eb6915708c628f491": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_5e3f481ead9b4dffb22b019fb7286a75", + "max": 1042301, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_9a1af9363cc44ec5a89ddda9a94466fd", + "value": 1042301 + } + }, + "05cf4d5fea694221aa439a784f45ac94": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "1d77d79208c54108bbe8ef2c72fcbe4c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "1dd3f850d0d9484bb5313a067392a139": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "1e42836ab9f74e3486436322c7736ca5": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "SliderStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "SliderStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "", + "handle_color": null + } + }, + "20446918559f460da71d704b4a3816c5": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "247cef68024a44d792583d015eee698f": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "272d275596eb495a889496b640279965": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "2817038686c042aa836954a2c1bdd314": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "2b513016ccd141bba01b7d6f3691e680": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatSliderModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatSliderModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "FloatSliderView", + "continuous_update": true, + "description": "Temperature:", + "description_tooltip": null, + "disabled": false, + "layout": "IPY_MODEL_772c8c22072544719d31fb28004624c3", + "max": 1.5, + "min": 0.1, + "orientation": "horizontal", + "readout": true, + "readout_format": ".2f", + "step": 0.1, + "style": "IPY_MODEL_75830447817a494b879ac788a760919f", + "value": 0.7 + } + }, + "2ea9aa390af84712893e431108ba80d2": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_6e3b8ae4aa044e8e878c3f3ea1e76887", + "placeholder": "​", + "style": "IPY_MODEL_e3d9044e0c0f4cf8b3783d617b0e4649", + "value": " 124/124 [00:00<00:00, 8.23kB/s]" + } + }, + "2ef6a55cd791473992084f043bd9226c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_ceee626d21094ac486ddbb88634512ad", + "placeholder": "​", + "style": "IPY_MODEL_272d275596eb495a889496b640279965", + "value": " 1.36M/1.36M [00:00<00:00, 5.62MB/s]" + } + }, + "31866301c8f9409fa6b7d62f301fcc40": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "IntSliderModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "IntSliderModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "IntSliderView", + "continuous_update": true, + "description": "Max Length:", + "description_tooltip": null, + "disabled": false, + "layout": "IPY_MODEL_3e8f509028e547049d903b4ed5fb4876", + "max": 100, + "min": 10, + "orientation": "horizontal", + "readout": true, + "readout_format": "d", + "step": 10, + "style": "IPY_MODEL_afdb2987395849878185d9618f3da323", + "value": 50 + } + }, + "32ef2f84eb174debae5f2a2e6c8011dd": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "355db76789934773b18bbba7be586bf3": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "38ac2a593cda4c119081ebed8f4707ee": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "39cbea48cd8848b19b9dc20736708df1": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "3a22215d257e44da912f098e75bcad67": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_355db76789934773b18bbba7be586bf3", + "placeholder": "​", + "style": "IPY_MODEL_c32dd63b33a147edb63e8b2ef0da5376", + "value": "merges.txt: 100%" + } + }, + "3e8f509028e547049d903b4ed5fb4876": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "427a17311b0c4419897745ccb319fc0c": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "459cba8b3a834331985dffea92c541bd": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_2817038686c042aa836954a2c1bdd314", + "max": 456318, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_59935aff77684051ad3eef45af4a8d39", + "value": 456318 + } + }, + "4d2fa322281a45ab8a1464be57439749": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "4eb227bcee9e409199cc51caab0c7696": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "58b715f058384647b70276588eb2bf92": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "59935aff77684051ad3eef45af4a8d39": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "5af88d5e9e1041b7ab5a8826e3ed1fa5": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "5c159af238114e4abe4bd36cf482d119": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_5af88d5e9e1041b7ab5a8826e3ed1fa5", + "max": 1355256, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_20446918559f460da71d704b4a3816c5", + "value": 1355256 + } + }, + "5e3f481ead9b4dffb22b019fb7286a75": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "6050b0136e754378b71b1295dab6c2c8": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "6377db896bed44299ffdf88704c925ff": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "643145af92da4183b9607eb7e2e6d0f7": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_9d78f9dff3dd45218b53496767b00c70", + "IPY_MODEL_66f3d33e3f514f31bf0e6b2ce35801be", + "IPY_MODEL_836388e618d944aebb9dce0dea9c56e1" + ], + "layout": "IPY_MODEL_39cbea48cd8848b19b9dc20736708df1" + } + }, + "66f3d33e3f514f31bf0e6b2ce35801be": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_83f9d9548db2456ab0a26a96e03e9581", + "max": 665, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_58b715f058384647b70276588eb2bf92", + "value": 665 + } + }, + "6bd75cbe1ffd4d36be66dae0f32137d6": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_e9e782dda4864e9c9010929b4ed4b1bc", + "msg_id": "", + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "The attention mask and the pad token id were not set. As a consequence, you may observe unexpected behavior. Please pass your input's `attention_mask` to obtain reliable results.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Setting `pad_token_id` to `eos_token_id`:None for open-end generation.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Explain the concept of deep learning.\n", + "\n", + "The core of deep learning is the notion that a neural network is a \"deep neural network\" that learns about things and then learns about itself, thus gaining insight about how things interact with each other.\n" + ] + } + ] + } + }, + "6e3b8ae4aa044e8e878c3f3ea1e76887": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "75830447817a494b879ac788a760919f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "SliderStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "SliderStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "", + "handle_color": null + } + }, + "772c8c22072544719d31fb28004624c3": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "786d8c0044ba4e02809f8edb03af9c2a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "7adf04d2c6c04e9b8246c70dfc58fdcc": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "7ccbeb6d75264e489e768710b10e0ab0": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_7adf04d2c6c04e9b8246c70dfc58fdcc", + "placeholder": "​", + "style": "IPY_MODEL_bb30e9fd347f4166b1966997d462c5cd", + "value": "tokenizer.json: 100%" + } + }, + "7db8af670bd5408ea41df7b09762233d": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "836388e618d944aebb9dce0dea9c56e1": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_1dd3f850d0d9484bb5313a067392a139", + "placeholder": "​", + "style": "IPY_MODEL_995591cb74bc4395813e80fe8087f623", + "value": " 665/665 [00:00<00:00, 28.2kB/s]" + } + }, + "83c8a96b28a3406b86167b22a3bf1c7c": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "83f9d9548db2456ab0a26a96e03e9581": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "85baaaffafea4de693f7637e5e1f09c8": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "8832939841fc4180a3aeafdc7aaafb63": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_964d2abc5311445d8c9e515fee2ec571", + "IPY_MODEL_c8d64d6591db4bec9fb752345e249530", + "IPY_MODEL_2ea9aa390af84712893e431108ba80d2" + ], + "layout": "IPY_MODEL_e5c16313f7c94eb7a390a99f5d09ef77" + } + }, + "909e5b085ea848b29d1aac95c4dd1ee7": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "964d2abc5311445d8c9e515fee2ec571": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_9e874cda300f4056807b378d386789cb", + "placeholder": "​", + "style": "IPY_MODEL_85baaaffafea4de693f7637e5e1f09c8", + "value": "generation_config.json: 100%" + } + }, + "97784968743c46a3b094f942a617f505": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_3a22215d257e44da912f098e75bcad67", + "IPY_MODEL_459cba8b3a834331985dffea92c541bd", + "IPY_MODEL_b155188a446441348e47eeefee321a7b" + ], + "layout": "IPY_MODEL_e2f11ebb13c24dcd81cdba4bedf3ded4" + } + }, + "995591cb74bc4395813e80fe8087f623": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "9a1af9363cc44ec5a89ddda9a94466fd": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "9d78f9dff3dd45218b53496767b00c70": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_ab0a2da0da2e4b3eb966395e54729ffa", + "placeholder": "​", + "style": "IPY_MODEL_786d8c0044ba4e02809f8edb03af9c2a", + "value": "config.json: 100%" + } + }, + "9e874cda300f4056807b378d386789cb": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "a4f33b68497e470593bb3c53e2e73703": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_4d2fa322281a45ab8a1464be57439749", + "placeholder": "​", + "style": "IPY_MODEL_ff32f023a7c043599760bf3b3bf83cb2", + "value": " 1.04M/1.04M [00:00<00:00, 11.1MB/s]" + } + }, + "a646d1d0286d489c98c81bdffb2559ed": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "a73cd8bd4c774735abd1e0225143bb8e": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "IntSliderModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "IntSliderModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "IntSliderView", + "continuous_update": true, + "description": "Top-k:", + "description_tooltip": null, + "disabled": false, + "layout": "IPY_MODEL_d457087c0d364526989a9e5cfec6fb9b", + "max": 100, + "min": 1, + "orientation": "horizontal", + "readout": true, + "readout_format": "d", + "step": 1, + "style": "IPY_MODEL_1e42836ab9f74e3486436322c7736ca5", + "value": 50 + } + }, + "a8033e173deb48448ab9f3d78bd0339c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_fc63e2a321524fdb85fd891bb611246a", + "IPY_MODEL_f04694026e2a41e391281b788248c2a2", + "IPY_MODEL_d422c21430884a37b730da4955f3a574" + ], + "layout": "IPY_MODEL_05cf4d5fea694221aa439a784f45ac94" + } + }, + "a98d240475f549a894b283fcec9097a8": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_f41832a72fdb4cb79530c9fc44693185", + "IPY_MODEL_00ad49ed4b5e447eb6915708c628f491", + "IPY_MODEL_a4f33b68497e470593bb3c53e2e73703" + ], + "layout": "IPY_MODEL_83c8a96b28a3406b86167b22a3bf1c7c" + } + }, + "ab0a2da0da2e4b3eb966395e54729ffa": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "afdb2987395849878185d9618f3da323": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "SliderStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "SliderStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "", + "handle_color": null + } + }, + "b155188a446441348e47eeefee321a7b": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_4eb227bcee9e409199cc51caab0c7696", + "placeholder": "​", + "style": "IPY_MODEL_bef5ad3f28674648a365a6f60eb21371", + "value": " 456k/456k [00:00<00:00, 1.83MB/s]" + } + }, + "b46058236d844cc88920d694cc318850": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "TextModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "TextModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "TextView", + "continuous_update": true, + "description": "Prompt:", + "description_tooltip": null, + "disabled": false, + "layout": "IPY_MODEL_cdad5116ad64449f9d2ac4f4bad6cd53", + "placeholder": "​", + "style": "IPY_MODEL_38ac2a593cda4c119081ebed8f4707ee", + "value": "Explain the concept of deep learning." + } + }, + "bb30e9fd347f4166b1966997d462c5cd": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "bef5ad3f28674648a365a6f60eb21371": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "c32dd63b33a147edb63e8b2ef0da5376": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "c56b0483ad8549089f908989e5616dd1": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "c8b3fb7df3fa4d0f8d57efe9721d3a67": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "c8d64d6591db4bec9fb752345e249530": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_6377db896bed44299ffdf88704c925ff", + "max": 124, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_c8b3fb7df3fa4d0f8d57efe9721d3a67", + "value": 124 + } + }, + "cdad5116ad64449f9d2ac4f4bad6cd53": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "ceee626d21094ac486ddbb88634512ad": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "d0f03e93e94a48e88bb807ce9fcd3626": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_909e5b085ea848b29d1aac95c4dd1ee7", + "placeholder": "​", + "style": "IPY_MODEL_0023a18e9bf7450997c5af11070b5cc2", + "value": " 26.0/26.0 [00:00<00:00, 1.54kB/s]" + } + }, + "d3da6b9fec5149f596dd627fdc0ddf28": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "d422c21430884a37b730da4955f3a574": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_d595683824734914a9f67634d4e08f98", + "placeholder": "​", + "style": "IPY_MODEL_6050b0136e754378b71b1295dab6c2c8", + "value": " 548M/548M [00:05<00:00, 179MB/s]" + } + }, + "d457087c0d364526989a9e5cfec6fb9b": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "d54161703d0c489e9cc2e0c2bc8cdde0": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_eedbbeb237564aa6bf1024699404a0d8", + "placeholder": "​", + "style": "IPY_MODEL_da9b0dfeb44b46bb81534080eaf0047f", + "value": "tokenizer_config.json: 100%" + } + }, + "d595683824734914a9f67634d4e08f98": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "da9b0dfeb44b46bb81534080eaf0047f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "dd73d4c00bcb4815a47e466ffeb764f7": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_d3da6b9fec5149f596dd627fdc0ddf28", + "max": 26, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_7db8af670bd5408ea41df7b09762233d", + "value": 26 + } + }, + "e2f11ebb13c24dcd81cdba4bedf3ded4": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "e3d9044e0c0f4cf8b3783d617b0e4649": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "e5c16313f7c94eb7a390a99f5d09ef77": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "e9e782dda4864e9c9010929b4ed4b1bc": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "eb5e86fa57df476ea37013c7912a743e": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_7ccbeb6d75264e489e768710b10e0ab0", + "IPY_MODEL_5c159af238114e4abe4bd36cf482d119", + "IPY_MODEL_2ef6a55cd791473992084f043bd9226c" + ], + "layout": "IPY_MODEL_f6744817df8a4006bd0ff225aa9e4aab" + } + }, + "ed52f970e5ae4c11863e8e46f9ae828f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_d54161703d0c489e9cc2e0c2bc8cdde0", + "IPY_MODEL_dd73d4c00bcb4815a47e466ffeb764f7", + "IPY_MODEL_d0f03e93e94a48e88bb807ce9fcd3626" + ], + "layout": "IPY_MODEL_247cef68024a44d792583d015eee698f" + } + }, + "eedbbeb237564aa6bf1024699404a0d8": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "f04694026e2a41e391281b788248c2a2": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_fd9e1e0e51974c8a8c473c464f99d018", + "max": 548105171, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_c56b0483ad8549089f908989e5616dd1", + "value": 548105171 + } + }, + "f41832a72fdb4cb79530c9fc44693185": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_427a17311b0c4419897745ccb319fc0c", + "placeholder": "​", + "style": "IPY_MODEL_1d77d79208c54108bbe8ef2c72fcbe4c", + "value": "vocab.json: 100%" + } + }, + "f6744817df8a4006bd0ff225aa9e4aab": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "fc2017e688c5476991674ec173754cfd": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "fc63e2a321524fdb85fd891bb611246a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_a646d1d0286d489c98c81bdffb2559ed", + "placeholder": "​", + "style": "IPY_MODEL_32ef2f84eb174debae5f2a2e6c8011dd", + "value": "model.safetensors: 100%" + } + }, + "fd9e1e0e51974c8a8c473c464f99d018": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "ff32f023a7c043599760bf3b3bf83cb2": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "ffe4d972a0b74270a604c04d5c12397c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "VBoxModel", + "state": { + "_dom_classes": [ + "widget-interact" + ], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "VBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "VBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_b46058236d844cc88920d694cc318850", + "IPY_MODEL_2b513016ccd141bba01b7d6f3691e680", + "IPY_MODEL_a73cd8bd4c774735abd1e0225143bb8e", + "IPY_MODEL_31866301c8f9409fa6b7d62f301fcc40", + "IPY_MODEL_6bd75cbe1ffd4d36be66dae0f32137d6" + ], + "layout": "IPY_MODEL_fc2017e688c5476991674ec173754cfd" + } + } + } + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/requirements.txt b/requirements.txt index 69c9097..8345618 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,4 @@ ace_tools==0.0 -acled_conflict_analysis @ git+https://github.com/datapartnership/acled_conflict_analysis.git@5f3f089a3a0662379b034a13f8ecc67a58f03609 aiohappyeyeballs==2.4.3 aiohttp==3.10.10 aiosignal==1.3.1