diff --git a/README.md b/README.md
index 382bccc..0af619a 100644
--- a/README.md
+++ b/README.md
@@ -66,6 +66,7 @@ For more examples, you may also find our [Blog](https://haystack.deepset.ai/blog
| Evaluating RAG Pipelines with EvaluationHarness | |
| Define & Run Tools | |
| Agentic RAG with Llama 3.2 3B | |
+| Enhanced RAG with NVIDIA NIM Rankers | |
| Cohere for Multilingual QA (Haystack 1.x)| |
| GPT-4 and Weaviate for Custom Documentation QA (Haystack 1.x)| |
| Whisper Transcriber and Weaviate for YouTube video QA (Haystack 1.x)| |
diff --git a/index.toml b/index.toml
index 0ab71d8..214430c 100644
--- a/index.toml
+++ b/index.toml
@@ -266,4 +266,10 @@ notebook = "newsletter-agent.ipynb"
new = true
experimental = true
topics = ["Function Calling", "Chat", "Agents"]
-discuss = "https://github.com/deepset-ai/haystack-experimental/discussions/98"
\ No newline at end of file
+discuss = "https://github.com/deepset-ai/haystack-experimental/discussions/98"
+
+[[cookbook]]
+title = "Enhanced RAG with NVIDIA NIM Rankers"
+notebook = "enhanced_rag_with_nvidia_nim_rankers.ipynb"
+new = true
+topics = ["RAG", "Advanced Retrieval"]
\ No newline at end of file
diff --git a/notebooks/enhanced_rag_with_nvidia_nim_rankers.ipynb b/notebooks/enhanced_rag_with_nvidia_nim_rankers.ipynb
new file mode 100644
index 0000000..d9e98ae
--- /dev/null
+++ b/notebooks/enhanced_rag_with_nvidia_nim_rankers.ipynb
@@ -0,0 +1,3341 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "7_7WJMZ8jSLK"
+ },
+ "source": [
+ "# Enhanced RAG with NVIDIA NIM Rankers\n",
+ "by Bilge Yucel ([X](https://x.com/bilgeycl), [Linkedin](https://www.linkedin.com/in/bilge-yucel/))\n",
+ "\n",
+ "\n",
+ "**Ranking** refers to assigning a relevance score to each document based on how well it matches the query. Adding a ranker component to a RAG pipeline enhances both **recall** (retrieving relevant documents) and **precision** (selecting the most relevant ones). The ranker, typically using a fine-tuned **LLM**, reorders retrieved document chunks to ensure the most relevant ones appear at the top, making the retrieval process not only faster but also more accurate.\n",
+ "\n",
+ "By prioritizing the right documents, ranking increases the likelihood of providing the LLM with the best context, which improves the quality of generated responses.\n",
+ "\n",
+ "In this cookbook, we will build a pipeline with the [NvidiaRanker](https://docs.haystack.deepset.ai/docs/nvidiaranker) and compare the answers of basic RAG pipeline with the enhanced RAG pipeline with ranker."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "1sVCsnz0-gVi"
+ },
+ "source": [
+ "## Installation\n",
+ "\n",
+ "Start by installing `nvidia-haystack` and `datasets` packages:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "collapsed": true,
+ "id": "TApYFisjWW-c",
+ "outputId": "33550a41-f72f-4acf-8269-3bf8d5016873"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Collecting nvidia-haystack\n",
+ " Downloading nvidia_haystack-0.0.5-py3-none-any.whl.metadata (2.2 kB)\n",
+ "Collecting datasets\n",
+ " Downloading datasets-3.0.2-py3-none-any.whl.metadata (20 kB)\n",
+ "Collecting haystack-ai (from nvidia-haystack)\n",
+ " Downloading haystack_ai-2.6.1-py3-none-any.whl.metadata (13 kB)\n",
+ "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from nvidia-haystack) (2.32.3)\n",
+ "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from datasets) (3.16.1)\n",
+ "Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.10/dist-packages (from datasets) (1.26.4)\n",
+ "Requirement already satisfied: pyarrow>=15.0.0 in /usr/local/lib/python3.10/dist-packages (from datasets) (16.1.0)\n",
+ "Collecting dill<0.3.9,>=0.3.0 (from datasets)\n",
+ " Downloading dill-0.3.8-py3-none-any.whl.metadata (10 kB)\n",
+ "Requirement already satisfied: pandas in /usr/local/lib/python3.10/dist-packages (from datasets) (2.2.2)\n",
+ "Requirement already satisfied: tqdm>=4.66.3 in /usr/local/lib/python3.10/dist-packages (from datasets) (4.66.5)\n",
+ "Collecting xxhash (from datasets)\n",
+ " Downloading xxhash-3.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (12 kB)\n",
+ "Collecting multiprocess<0.70.17 (from datasets)\n",
+ " Downloading multiprocess-0.70.16-py310-none-any.whl.metadata (7.2 kB)\n",
+ "Requirement already satisfied: fsspec<=2024.9.0,>=2023.1.0 in /usr/local/lib/python3.10/dist-packages (from fsspec[http]<=2024.9.0,>=2023.1.0->datasets) (2024.6.1)\n",
+ "Requirement already satisfied: aiohttp in /usr/local/lib/python3.10/dist-packages (from datasets) (3.10.10)\n",
+ "Requirement already satisfied: huggingface-hub>=0.23.0 in /usr/local/lib/python3.10/dist-packages (from datasets) (0.24.7)\n",
+ "Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from datasets) (24.1)\n",
+ "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.10/dist-packages (from datasets) (6.0.2)\n",
+ "Requirement already satisfied: aiohappyeyeballs>=2.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (2.4.3)\n",
+ "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (1.3.1)\n",
+ "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (24.2.0)\n",
+ "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (1.4.1)\n",
+ "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (6.1.0)\n",
+ "Requirement already satisfied: yarl<2.0,>=1.12.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (1.16.0)\n",
+ "Requirement already satisfied: async-timeout<5.0,>=4.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (4.0.3)\n",
+ "Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.23.0->datasets) (4.12.2)\n",
+ "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->nvidia-haystack) (3.4.0)\n",
+ "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->nvidia-haystack) (3.10)\n",
+ "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->nvidia-haystack) (2.2.3)\n",
+ "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->nvidia-haystack) (2024.8.30)\n",
+ "Collecting haystack-experimental (from haystack-ai->nvidia-haystack)\n",
+ " Downloading haystack_experimental-0.2.0-py3-none-any.whl.metadata (11 kB)\n",
+ "Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from haystack-ai->nvidia-haystack) (3.1.4)\n",
+ "Collecting lazy-imports (from haystack-ai->nvidia-haystack)\n",
+ " Downloading lazy_imports-0.3.1-py3-none-any.whl.metadata (10 kB)\n",
+ "Requirement already satisfied: more-itertools in /usr/local/lib/python3.10/dist-packages (from haystack-ai->nvidia-haystack) (10.5.0)\n",
+ "Requirement already satisfied: networkx in /usr/local/lib/python3.10/dist-packages (from haystack-ai->nvidia-haystack) (3.4.2)\n",
+ "Collecting openai>=1.1.0 (from haystack-ai->nvidia-haystack)\n",
+ " Downloading openai-1.52.2-py3-none-any.whl.metadata (24 kB)\n",
+ "Collecting posthog (from haystack-ai->nvidia-haystack)\n",
+ " Downloading posthog-3.7.0-py2.py3-none-any.whl.metadata (2.0 kB)\n",
+ "Requirement already satisfied: python-dateutil in /usr/local/lib/python3.10/dist-packages (from haystack-ai->nvidia-haystack) (2.8.2)\n",
+ "Requirement already satisfied: tenacity!=8.4.0 in /usr/local/lib/python3.10/dist-packages (from haystack-ai->nvidia-haystack) (9.0.0)\n",
+ "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas->datasets) (2024.2)\n",
+ "Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.10/dist-packages (from pandas->datasets) (2024.2)\n",
+ "Requirement already satisfied: anyio<5,>=3.5.0 in /usr/local/lib/python3.10/dist-packages (from openai>=1.1.0->haystack-ai->nvidia-haystack) (3.7.1)\n",
+ "Requirement already satisfied: distro<2,>=1.7.0 in /usr/lib/python3/dist-packages (from openai>=1.1.0->haystack-ai->nvidia-haystack) (1.7.0)\n",
+ "Collecting httpx<1,>=0.23.0 (from openai>=1.1.0->haystack-ai->nvidia-haystack)\n",
+ " Downloading httpx-0.27.2-py3-none-any.whl.metadata (7.1 kB)\n",
+ "Collecting jiter<1,>=0.4.0 (from openai>=1.1.0->haystack-ai->nvidia-haystack)\n",
+ " Downloading jiter-0.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (5.2 kB)\n",
+ "Requirement already satisfied: pydantic<3,>=1.9.0 in /usr/local/lib/python3.10/dist-packages (from openai>=1.1.0->haystack-ai->nvidia-haystack) (2.9.2)\n",
+ "Requirement already satisfied: sniffio in /usr/local/lib/python3.10/dist-packages (from openai>=1.1.0->haystack-ai->nvidia-haystack) (1.3.1)\n",
+ "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil->haystack-ai->nvidia-haystack) (1.16.0)\n",
+ "Requirement already satisfied: propcache>=0.2.0 in /usr/local/lib/python3.10/dist-packages (from yarl<2.0,>=1.12.0->aiohttp->datasets) (0.2.0)\n",
+ "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2->haystack-ai->nvidia-haystack) (3.0.2)\n",
+ "Collecting monotonic>=1.5 (from posthog->haystack-ai->nvidia-haystack)\n",
+ " Downloading monotonic-1.6-py2.py3-none-any.whl.metadata (1.5 kB)\n",
+ "Collecting backoff>=1.10.0 (from posthog->haystack-ai->nvidia-haystack)\n",
+ " Downloading backoff-2.2.1-py3-none-any.whl.metadata (14 kB)\n",
+ "Requirement already satisfied: exceptiongroup in /usr/local/lib/python3.10/dist-packages (from anyio<5,>=3.5.0->openai>=1.1.0->haystack-ai->nvidia-haystack) (1.2.2)\n",
+ "Collecting httpcore==1.* (from httpx<1,>=0.23.0->openai>=1.1.0->haystack-ai->nvidia-haystack)\n",
+ " Downloading httpcore-1.0.6-py3-none-any.whl.metadata (21 kB)\n",
+ "Collecting h11<0.15,>=0.13 (from httpcore==1.*->httpx<1,>=0.23.0->openai>=1.1.0->haystack-ai->nvidia-haystack)\n",
+ " Downloading h11-0.14.0-py3-none-any.whl.metadata (8.2 kB)\n",
+ "Requirement already satisfied: annotated-types>=0.6.0 in /usr/local/lib/python3.10/dist-packages (from pydantic<3,>=1.9.0->openai>=1.1.0->haystack-ai->nvidia-haystack) (0.7.0)\n",
+ "Requirement already satisfied: pydantic-core==2.23.4 in /usr/local/lib/python3.10/dist-packages (from pydantic<3,>=1.9.0->openai>=1.1.0->haystack-ai->nvidia-haystack) (2.23.4)\n",
+ "Downloading nvidia_haystack-0.0.5-py3-none-any.whl (21 kB)\n",
+ "Downloading datasets-3.0.2-py3-none-any.whl (472 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m472.7/472.7 kB\u001b[0m \u001b[31m9.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hDownloading dill-0.3.8-py3-none-any.whl (116 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m116.3/116.3 kB\u001b[0m \u001b[31m6.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hDownloading multiprocess-0.70.16-py310-none-any.whl (134 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m134.8/134.8 kB\u001b[0m \u001b[31m9.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hDownloading haystack_ai-2.6.1-py3-none-any.whl (372 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m372.1/372.1 kB\u001b[0m \u001b[31m21.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hDownloading xxhash-3.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (194 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m194.1/194.1 kB\u001b[0m \u001b[31m11.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hDownloading openai-1.52.2-py3-none-any.whl (386 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m386.9/386.9 kB\u001b[0m \u001b[31m20.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hDownloading haystack_experimental-0.2.0-py3-none-any.whl (68 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m68.5/68.5 kB\u001b[0m \u001b[31m3.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hDownloading lazy_imports-0.3.1-py3-none-any.whl (12 kB)\n",
+ "Downloading posthog-3.7.0-py2.py3-none-any.whl (54 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m54.4/54.4 kB\u001b[0m \u001b[31m2.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hDownloading backoff-2.2.1-py3-none-any.whl (15 kB)\n",
+ "Downloading httpx-0.27.2-py3-none-any.whl (76 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m76.4/76.4 kB\u001b[0m \u001b[31m5.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hDownloading httpcore-1.0.6-py3-none-any.whl (78 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m78.0/78.0 kB\u001b[0m \u001b[31m4.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hDownloading jiter-0.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (325 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m325.2/325.2 kB\u001b[0m \u001b[31m18.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hDownloading monotonic-1.6-py2.py3-none-any.whl (8.2 kB)\n",
+ "Downloading h11-0.14.0-py3-none-any.whl (58 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m58.3/58.3 kB\u001b[0m \u001b[31m3.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hInstalling collected packages: monotonic, xxhash, lazy-imports, jiter, h11, dill, backoff, posthog, multiprocess, httpcore, httpx, openai, datasets, haystack-experimental, haystack-ai, nvidia-haystack\n",
+ "Successfully installed backoff-2.2.1 datasets-3.0.2 dill-0.3.8 h11-0.14.0 haystack-ai-2.6.1 haystack-experimental-0.2.0 httpcore-1.0.6 httpx-0.27.2 jiter-0.6.1 lazy-imports-0.3.1 monotonic-1.6 multiprocess-0.70.16 nvidia-haystack-0.0.5 openai-1.52.2 posthog-3.7.0 xxhash-3.5.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "!pip install nvidia-haystack datasets"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "U_Yh0y9YH4VO"
+ },
+ "source": [
+ "## Dataset\n",
+ "\n",
+ "Install the [HotpotQA dataset](https://huggingface.co/datasets/hotpotqa/hotpot_qa) from Hugging Face:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 313,
+ "referenced_widgets": [
+ "ceaf9babbb164804822aedafc76859d0",
+ "b1fa835f1c0e41fa943d12a145feb306",
+ "d0d5fa80dc2e4afeb243b8e9e773b564",
+ "dffea9f5cfca40fcaee3c11c6f9ba386",
+ "925e94cc42d04d338aa41c8a905b9faf",
+ "8b586cf008f8492a86d3770f6e29c340",
+ "45b9e581154141d4aa6634a7e4db7172",
+ "61220bad11934e8eb2ee438c581bba58",
+ "5a57615e2166429da4e8b4654d8c9ce2",
+ "0a18f7930848428699edfcf040632527",
+ "7f846bc2293346a6969289cba0a19b50",
+ "e449e3334fea41a4b4b44425ce769ca0",
+ "01d39f717b8343ffbe90cd5167abe2d2",
+ "d3dee5ae50414e5f99e39f71798c2ad8",
+ "9eae47a5ebd94300a76b87e0ad7658b2",
+ "b374b263f45d490d9f745a143012d005",
+ "1b1ee95a4c0940308e1eda0b15922507",
+ "5563221219134f299bd2499fbd0f78bd",
+ "2aae515263fb41b988ee00b7535b0823",
+ "f983a139b8924adb93ba03ed61d8dbd3",
+ "0ca97b85f8954eb089fe6c5feb0ce1ad",
+ "56ba0c6b72cd45fea7d6a70a9dc1cd0e",
+ "135659c254dd4ef9908eba7fd4a8f869",
+ "3f0fda8751d641dfb996996238ca726e",
+ "625d19a64e3b4ec88905e579db8832f2",
+ "19e3651a63174826a5505deaed2a404c",
+ "b831a9017472466aa02ae866880bad0d",
+ "afdc35f58a0d4d1397538d2d7ea26e0c",
+ "d765e94d41554f7f9ab1802d50c9ae67",
+ "c83f4f1d85754194a257f13e9805d5bc",
+ "64a8ffc932344d3f947f57239edc5e63",
+ "3e22585362d140089093bf53751be94b",
+ "4096e236d3424cb29a4d1da5b5af65f2",
+ "78d44514004647d494d6d1ada94a0818",
+ "18eb1c9220634269a0fc94b4600ef980",
+ "bb867cd4dd2449e2b3ebfd06bc9e9624",
+ "5f760f95b30a4038a6ebf96cb1e24531",
+ "6c20cd089bad4483a5cc22be1ffb0414",
+ "f5af9025565b46218f634fbb1dbe7469",
+ "249e98b589264f00a81564cd39e7d653",
+ "9ce3a203bbd842ea975ff1cb1c845ec7",
+ "6738c8c67ccf46eb8a772ec45246eb33",
+ "47cff8ee61ae4007a8dd94048a10ee7f",
+ "5435d77b1e994cbeb24baf0d855677df",
+ "5b04064937664315914919f8aad03943",
+ "d25abb46556c44c588f72a9a6945a970",
+ "b796cf4bb964443880e12df6e0d74bc0",
+ "bcad5a00446d4d0ead41f1217b9e5e1c",
+ "29b2dfab67bf47bf985759e6f3903262",
+ "65dd2e8cb2f64a55a9f59fe442640005",
+ "f8d708df3fb14cec9c08c22a6fff5878",
+ "b0e775055c204169985d0e821e998bb2",
+ "6eaf383543de4a4e98fcb45a56f01750",
+ "c2e49e93cf964be6b95ceac4a59c7b78",
+ "18cc4e4d62024e8cae2996d2baa53946",
+ "3027dd90d2ad4a7092aa4fd8a00b817b",
+ "03a2bed5fd474f68b85ee12b59dc36c3",
+ "d2c1d7df1ca44286b55bcbc622b871be",
+ "de8f857b75004b7d9c6850fd872a6da7",
+ "a6f68d997f354508903c3114015766ba",
+ "fce1c30f19c74be89fead02ecb9c6305",
+ "573c17dedafe4c4da1bc8218fa55c3a2",
+ "d8cc0fd9d16e458d86d32c4f34d69247",
+ "91b451d80baa43c085732b5fc7a60753",
+ "a698aafd07dc4e92b7a7d7b8b6c392b4",
+ "54d0cdb187c94dc6a75fb459fe0a3562"
+ ]
+ },
+ "collapsed": true,
+ "id": "IvHoBvBoWjnf",
+ "outputId": "a9d8e19d-5ebb-407d-f3a8-debaf76268d9"
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/usr/local/lib/python3.10/dist-packages/huggingface_hub/utils/_token.py:89: 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"
+ ]
+ },
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "ceaf9babbb164804822aedafc76859d0",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "README.md: 0%| | 0.00/9.19k [00:00, ?B/s]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "e449e3334fea41a4b4b44425ce769ca0",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "hotpot_qa.py: 0%| | 0.00/6.42k [00:00, ?B/s]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "135659c254dd4ef9908eba7fd4a8f869",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "Downloading data: 0%| | 0.00/566M [00:00, ?B/s]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "78d44514004647d494d6d1ada94a0818",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "Downloading data: 0%| | 0.00/46.3M [00:00, ?B/s]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "5b04064937664315914919f8aad03943",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "Generating train split: 0%| | 0/90447 [00:00, ? examples/s]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "3027dd90d2ad4a7092aa4fd8a00b817b",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "Generating validation split: 0%| | 0/7405 [00:00, ? examples/s]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "from datasets import load_dataset\n",
+ "\n",
+ "data = load_dataset('hotpotqa/hotpot_qa', 'distractor', trust_remote_code=True)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "ebL45uOGKsZ_"
+ },
+ "source": [
+ "Let's check an entry to understand the data structure. In Hotpot QA, each entry includes a question, a ground-truth answer, context sentences and titles."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "xI52-uDWKXI2",
+ "outputId": "ebb5bc0a-8e4a-4844-8ea5-55bc896c715d"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{'id': '5a8e3ea95542995a26add48d',\n",
+ " 'question': 'The director of the romantic comedy \"Big Stone Gap\" is based in what New York city?',\n",
+ " 'answer': 'Greenwich Village, New York City',\n",
+ " 'type': 'bridge',\n",
+ " 'level': 'hard',\n",
+ " 'supporting_facts': {'title': ['Big Stone Gap (film)', 'Adriana Trigiani'],\n",
+ " 'sent_id': [0, 0]},\n",
+ " 'context': {'title': ['Just Another Romantic Wrestling Comedy',\n",
+ " 'Kingston Morning',\n",
+ " 'Nola (film)',\n",
+ " 'Adriana Trigiani',\n",
+ " 'Great Eastern Conventions',\n",
+ " 'New York Society of Model Engineers',\n",
+ " 'Clinton, Minnesota',\n",
+ " \"Hamish and Andy's Gap Year\",\n",
+ " 'I Love NY (2015 film)',\n",
+ " 'Big Stone Gap (film)'],\n",
+ " 'sentences': [['Just Another Romantic Wrestling Comedy is a 2006 film starring April Hunter and Joanie Laurer.',\n",
+ " ' This Romantic comedy film was premiered at New Jersey and New York City on December 1, 2006 and was released on DVD in the United States and the United Kingdom on April 17, 2007.',\n",
+ " ' After the film\\'s DVD release \"Just Another Romantic Wrestling Comedy\" won an \"Honorable Mention\" award at the New Jersey International Festival awards.',\n",
+ " ' The release is being handled by \"Victory Multimedia\".'],\n",
+ " [\"Kingston Morning is Dave Eggar's 4th solo release recorded in Brooklyn, New York; Kingston, Jamaica; and Big Stone Gap, Virginia; and released by Domo Records.\",\n",
+ " ' \"Itsbynne Reel\" was nominated at the 53rd Grammy Awards for \"Best Instrumental Arrangement\".'],\n",
+ " ['Nola is a 2003 American romantic comedy film written and directed by Alan Hruska.',\n",
+ " ' It depicts the struggle of a young woman trying to survive in New York City while looking for her birth father.',\n",
+ " ' It premiered in New York City on July 23, 2004.'],\n",
+ " ['Adriana Trigiani is an Italian American best-selling author of sixteen books, television writer, film director, and entrepreneur based in Greenwich Village, New York City.',\n",
+ " ' Trigiani has published a novel a year since 2000.'],\n",
+ " ['Great Eastern Conventions, Inc. was an entertainment company which produced comic book conventions, most actively during the years 1987-1996.',\n",
+ " \" In New York City, the Great Eastern shows filled the gap between the mid-1980s demise of the annual Comic Art Convention and Creation Conventions, and the establishment of promoter Michael Carbonaro's annual Big Apple Comic Con in 1996.\",\n",
+ " ' From 1993–1995, Great Eastern hosted two New York City shows annually at the Jacob K. Javits Convention Center.',\n",
+ " ' Great Eastern also ran shows in New Jersey, Pennsylvania, Massachusetts, Oregon, Minnesota, and Texas.'],\n",
+ " ['The New York Society of Model Engineers (NYSME) was originally incorporated in 1926 in New York City.',\n",
+ " ' There are published records that show the Society existed as early as 1905.',\n",
+ " ' In its early years, the organization moved to and from various locations throughout Manhattan.',\n",
+ " \" AT that time it was basically a gentlemen's club of members who were interested in all types of model building.\",\n",
+ " ' In 1926 the Society was formalized and incorporated under the laws of the State of New York.',\n",
+ " \" This was done so that the Society could obtain a permit to use a lake in New York City's Central Park for model motor boat races.\",\n",
+ " ' It was also at this time that the Society began construction of its first Model Railroad \" The Union Connecting\".',\n",
+ " ' Over the next twenty years, the Society moved from its original location to two other locations.',\n",
+ " ' Each move doubling the size of the previous location and of course doubling the size of the model train layout.',\n",
+ " ' During WW2 many Society members were called to service in the Armed Forces.',\n",
+ " ' Regrettably, the largest of the layouts had to be dismantled.',\n",
+ " ' The location of the layout in the basement of the Astor Building was requested for the war effort.',\n",
+ " ' The dismantling was done with care, with salvaged usable materials going into scrap drives for the War effort.',\n",
+ " ' As members returned after the War a new location was searched for.',\n",
+ " ' This led to an invitation from the Lackawanna Railroad to move into their Passenger Terminal in Hoboken,NJ.',\n",
+ " ' They had the space for what would become the largest model railroad in the world at that time.',\n",
+ " ' The space?',\n",
+ " ' Only the ornate waiting room for the recently discontinued ferry boats to 23rd Street in New York City.',\n",
+ " ' Here the layout was built.',\n",
+ " ' It was based on the Lackawanna Railroad from Hoboken to Scranton, Pa.',\n",
+ " ' It was magnificent; from the scale model of the Hoboken Terminal to the soaring Delaware Water Gap.',\n",
+ " ' During the early-1950s the organization moved to its current location in Carlstadt, New Jersey.'],\n",
+ " ['Clinton is a city in Big Stone County, Minnesota, United States.',\n",
+ " ' The city was named for New York Governor DeWitt Clinton.',\n",
+ " ' The population was 449 at the 2010 census.'],\n",
+ " [\"Hamish & Andy's Gap Year is a Logie Award winning comedy series following Hamish Blake and Andy Lee, a pair of Australian comedians, on their trips to various international locations.\",\n",
+ " ' The first season saw the boys visiting America for ten episodes and broadcast their show weekly from New York City.',\n",
+ " ' In its second season in 2012, the show was titled \"Hamish & Andy\\'s Euro Gap Year\" and seven episodes were broadcast from The Lord Stanley, a disused pub in East London, England.',\n",
+ " ' The third season known as \"Hamish and Andy\\'s Gap Year Asia\" in 2013 was broadcast from a bar in Bangkok, Thailand, called \\'The Raintree\\'.'],\n",
+ " ['I Love NY, also known as I Love New Year, is an Indian romantic comedy film directed by Radhika Rao and Vinay Sapru starring Sunny Deol and Kangana Ranaut in lead roles.',\n",
+ " ' The film is produced by Bhushan Kumar and Krishan Kumar under the banner of Super Cassettes Industries Ltd.',\n",
+ " ' The film was extensively shot in Mumbai, New York City and Bangkok.',\n",
+ " ' The main plot was taken from the Russian romantic comedy \"The Irony of Fate\" (1976).',\n",
+ " ' After numerous delays, the film released on 10 July 2015.'],\n",
+ " ['Big Stone Gap is a 2014 American drama romantic comedy film written and directed by Adriana Trigiani and produced by Donna Gigliotti for Altar Identity Studios, a subsidiary of Media Society.',\n",
+ " \" Based on Trigiani's 2000 best-selling novel of the same name, the story is set in the actual Virginia town of Big Stone Gap circa 1970s.\",\n",
+ " ' The film had its world premiere at the Virginia Film Festival on November 6, 2014.']]}}"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data[\"validation\"][4]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "PfXBIvokJwwq"
+ },
+ "source": [
+ "We'll now convert the Hotpot QA dataset entries into Haystack Documents. We'll merge the sentences to into meaningful chunks and use the title as meta info in our Haystack Document object."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 121,
+ "referenced_widgets": [
+ "fda86af527c140d0a9c666e9d4ca4b52",
+ "9f1bc7b795064f0dafbaa50bc3ac967f",
+ "7de2db53efd54890a9a95eff1387d675",
+ "15b84e82b83b416fa9a15c68bb4f2313",
+ "7dfaffe124c743d2bd18f20c0733f5c7",
+ "ee0f0ddc219f42019f5d564de8c3191c",
+ "e09dc212d3684002aa851306d270e884",
+ "28c64510ddaa4ee895c58bc377b83d72",
+ "7bcb425966c7475d91b9f290bf98bc6b",
+ "cf2eb3edd90349d4b601ac7ad4279830",
+ "8baf1dae012d4fddacc1ccd9ab18500b"
+ ]
+ },
+ "id": "9fqcx1kVWiys",
+ "outputId": "0cf1e975-e3d1-426d-c19a-ab71be548a99"
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/usr/local/lib/python3.10/dist-packages/haystack/core/errors.py:34: DeprecationWarning: PipelineMaxLoops is deprecated and will be remove in version '2.7.0'; use PipelineMaxComponentRuns instead.\n",
+ " warnings.warn(\n",
+ "The cache for model files in Transformers v4.22.0 has been updated. Migrating your old cache. This is a one-time only operation. You can interrupt this and resume the migration later on by calling `transformers.utils.move_cache()`.\n"
+ ]
+ },
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "fda86af527c140d0a9c666e9d4ca4b52",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "0it [00:00, ?it/s]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "from haystack.dataclasses.document import Document\n",
+ "\n",
+ "def convert_hotpot_dataset(data):\n",
+ " doc_chunks = []\n",
+ "\n",
+ " for item in data:\n",
+ " # Collect the relevant content\n",
+ " context_dict = {item['context'][\"title\"][i]: item['context'][\"sentences\"][i] for i in range(len(item['context'][\"title\"]))}\n",
+ "\n",
+ " # Convert to Haystack Documents\n",
+ " for k, v in context_dict.items():\n",
+ " content = ''.join(v).strip()\n",
+ " doc_chunks.append(Document(content=content, meta={\"title\":k}))\n",
+ "\n",
+ " return doc_chunks\n",
+ "\n",
+ "documents = convert_hotpot_dataset(data[\"validation\"])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "8MRjK2M6enAu",
+ "outputId": "702b5c2d-be3e-4ab4-c99e-0ad7abe26b9a"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Document(id=52837c52309de1827a1ca76200774451a415376a784eba418d851d0fd59196cc, content: 'Ed Wood is a 1994 American biographical period comedy-drama film directed and produced by Tim Burton...', meta: {'title': 'Ed Wood (film)'})\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(documents[0])"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "7kDJdN4TLa3H"
+ },
+ "source": [
+ "## Indexing Documents\n",
+ "\n",
+ "To create a pipeline to index our documents, we need an NVIDIA NIM api key. You can get 1k credits for free after [signing up](https://org.ngc.nvidia.com/setup/personal-keys) for NVIDIA's platform. Once you have you your api key, set it as `\"NVIDIA_API_KEY\"` environment variable."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "PAo_uL_aca98"
+ },
+ "outputs": [],
+ "source": [
+ "import os\n",
+ "\n",
+ "os.environ[\"NVIDIA_API_KEY\"] = \"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\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "OyqBofNhM_ia"
+ },
+ "source": [
+ "Next, create a pipeline and index your documents. For embeddings, we'll use the[`nvidia/nv-embedqa-e5-v5`](https://docs.api.nvidia.com/nim/reference/nvidia-nv-embedqa-e5-v5) model through [NvidiaDocumentEmbedder](https://docs.haystack.deepset.ai/docs/nvidiadocumentembedder)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "KvWdsE09cDT0",
+ "outputId": "06e5be26-1835-4baa-e4a9-8153ad9f8e90"
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "Calculating embeddings: 100%|██████████| 16/16 [00:10<00:00, 1.53it/s]\n",
+ "WARNING:haystack.document_stores.in_memory.document_store:ID 'c2655213e385f148113573dac0552f2df726c4406ce5a32d9518ea092e2de914' already exists\n",
+ "WARNING:haystack.document_stores.in_memory.document_store:ID 'a67d430a1525668a4111b5068f4ab679e8529b0769822ddd04f791952442a0b8' already exists\n",
+ "WARNING:haystack.document_stores.in_memory.document_store:ID '6ea5ef5b6c3bf3a5c7e5eba4df906b6a4f98aea31cd1daa93f212d62b3181f78' already exists\n",
+ "WARNING:haystack.document_stores.in_memory.document_store:ID 'd02279eb622a4955476a60f27e731f957c472ef22d3393d9576be83ade7d6c48' already exists\n",
+ "WARNING:haystack.document_stores.in_memory.document_store:ID '16b4cbc532ae2fa19e074d23cbb12104ffa4a6de07fe979815449de05f1d71aa' already exists\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "505\n"
+ ]
+ }
+ ],
+ "source": [
+ "from haystack.document_stores.in_memory import InMemoryDocumentStore\n",
+ "from haystack.dataclasses.document import Document\n",
+ "from haystack.components.writers import DocumentWriter\n",
+ "from haystack_integrations.components.embedders.nvidia import NvidiaDocumentEmbedder\n",
+ "from haystack import Pipeline\n",
+ "from haystack.document_stores.types import DuplicatePolicy\n",
+ "from haystack.components.preprocessors import DocumentSplitter\n",
+ "\n",
+ "document_store = InMemoryDocumentStore()\n",
+ "embedder = NvidiaDocumentEmbedder(model=\"nvidia/nv-embedqa-e5-v5\",\n",
+ " api_url=\"https://integrate.api.nvidia.com/v1\")\n",
+ "\n",
+ "indexing_pipeline = Pipeline()\n",
+ "indexing_pipeline.add_component(instance=DocumentSplitter(split_length=350, split_overlap=50), name=\"splitter\")\n",
+ "indexing_pipeline.add_component(instance=embedder, name=\"embedder\")\n",
+ "indexing_pipeline.add_component(instance=DocumentWriter(document_store=document_store, policy=DuplicatePolicy.SKIP), name=\"writer\")\n",
+ "indexing_pipeline.connect(\"splitter\", \"embedder\")\n",
+ "indexing_pipeline.connect(\"embedder.documents\", \"writer.documents\")\n",
+ "\n",
+ "indexing_pipeline.run({\"splitter\":{\"documents\": documents[:500]}}) # We dont need to index all documents\n",
+ "\n",
+ "print(document_store.count_documents())"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "imlq0e2_SmCo"
+ },
+ "source": [
+ "## Enhanced RAG with Ranker\n",
+ "Let's now create a RAG pipeline with Ranker. For retrieval, we'll initialize the [NvidiaTextEmbedder](https://docs.haystack.deepset.ai/docs/nvidiatextembedder) and the [NvidiaRanker](https://docs.haystack.deepset.ai/docs/nvidiaranker) with the `nvidia/nv-rerankqa-mistral-4b-v3` model. We'll set the `top_k` value of retriever to 30 and of ranker to 5. Thus, we'll retrieve 30 docs but only pass the 5 most relevant documents as context to the LLM.\n",
+ "\n",
+ "For generation, we'll initialize [NvidiaGenerator](https://docs.haystack.deepset.ai/docs/nvidiagenerator) with the `meta/llama3-70b-instruct model`."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "GR6KHoceUqyF",
+ "outputId": "2a91c7b7-01d4-419a-f2d6-51f6119c88bc"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "\n",
+ "🚅 Components\n",
+ " - embedder: NvidiaTextEmbedder\n",
+ " - retriever: InMemoryEmbeddingRetriever\n",
+ " - ranker: NvidiaRanker\n",
+ " - prompt_builder: PromptBuilder\n",
+ " - generator: NvidiaGenerator\n",
+ "🛤️ Connections\n",
+ " - embedder.embedding -> retriever.query_embedding (List[float])\n",
+ " - retriever.documents -> ranker.documents (List[Document])\n",
+ " - ranker.documents -> prompt_builder.documents (List[Document])\n",
+ " - prompt_builder.prompt -> generator.prompt (str)"
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from haystack import Pipeline\n",
+ "from haystack.utils.auth import Secret\n",
+ "from haystack.components.builders import PromptBuilder\n",
+ "from haystack_integrations.components.embedders.nvidia import NvidiaTextEmbedder\n",
+ "from haystack_integrations.components.generators.nvidia import NvidiaGenerator\n",
+ "from haystack_integrations.components.rankers.nvidia import NvidiaRanker\n",
+ "from haystack.components.retrievers import InMemoryEmbeddingRetriever\n",
+ "\n",
+ "embedder = NvidiaTextEmbedder(model=\"nvidia/nv-embedqa-e5-v5\",\n",
+ " api_url=\"https://integrate.api.nvidia.com/v1\")\n",
+ "\n",
+ "retriever = InMemoryEmbeddingRetriever(document_store=document_store, top_k=30)\n",
+ "ranker = NvidiaRanker(\n",
+ " model=\"nvidia/nv-rerankqa-mistral-4b-v3\",\n",
+ " top_k=5\n",
+ ")\n",
+ "\n",
+ "prompt = \"\"\"Answer the question given the context.\n",
+ "Question: {{ query }}\n",
+ "Context:\n",
+ "{% for document in documents %}\n",
+ " {{ document.content }}\n",
+ "{% endfor %}\n",
+ "Answer:\n",
+ "\"\"\"\n",
+ "prompt_builder = PromptBuilder(template=prompt)\n",
+ "\n",
+ "generator = NvidiaGenerator(\n",
+ " model=\"meta/llama3-70b-instruct\",\n",
+ " model_arguments={\n",
+ " \"max_tokens\": 1024\n",
+ " }\n",
+ ")\n",
+ "\n",
+ "enhanced_rag = Pipeline()\n",
+ "enhanced_rag.add_component(\"embedder\", embedder)\n",
+ "enhanced_rag.add_component(\"retriever\", retriever)\n",
+ "enhanced_rag.add_component(\"ranker\", ranker)\n",
+ "enhanced_rag.add_component(\"prompt_builder\", prompt_builder)\n",
+ "enhanced_rag.add_component(\"generator\", generator)\n",
+ "\n",
+ "enhanced_rag.connect(\"embedder.embedding\", \"retriever.query_embedding\")\n",
+ "enhanced_rag.connect(\"retriever\", \"ranker\")\n",
+ "enhanced_rag.connect(\"ranker.documents\", \"prompt_builder.documents\")\n",
+ "enhanced_rag.connect(\"prompt_builder\", \"generator\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "Xg4h8gtJfXUC"
+ },
+ "source": [
+ "Let's run the pipeline with some questions and compare the answers:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "eRrV_CvfWMki",
+ "outputId": "96a833f8-5f00-45a9-acce-678569b4cfaf"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{'embedder': {'meta': {'usage': {'prompt_tokens': 23, 'total_tokens': 23}}},\n",
+ " 'generator': {'replies': [\"The director of the romantic comedy 'Big Stone Gap', Adriana Trigiani, is based in Greenwich Village, New York City.\"],\n",
+ " 'meta': [{'role': 'assistant',\n",
+ " 'usage': {'prompt_tokens': 380,\n",
+ " 'total_tokens': 408,\n",
+ " 'completion_tokens': 28},\n",
+ " 'finish_reason': 'stop'}]}}"
+ ]
+ },
+ "execution_count": 12,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "question = \"Are the Laleli Mosque and Esma Sultan Mansion located in the same neighborhood?\" # answer is \"no\"\n",
+ "question = \"The director of the romantic comedy 'Big Stone Gap' is based in what New York city?\" # answer is \"Greenwich Village, New York City\"\n",
+ "\n",
+ "enhanced_rag.run({\n",
+ " \"embedder\": {\"text\": question},\n",
+ " \"ranker\": {\"query\": question},\n",
+ " \"prompt_builder\": {\"query\": question}\n",
+ "})"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "t1K54b6Nfg85"
+ },
+ "source": [
+ "## Basic RAG Pipeline\n",
+ "\n",
+ "For comparison, let's define a basic pipeline (without a ranker) and see the result for the same questions."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "zRinctrniZPp",
+ "outputId": "cb30bb6b-37b2-4c87-8720-adfb479ec8c7"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "\n",
+ "🚅 Components\n",
+ " - embedder: NvidiaTextEmbedder\n",
+ " - retriever: InMemoryEmbeddingRetriever\n",
+ " - prompt_builder: PromptBuilder\n",
+ " - generator: NvidiaGenerator\n",
+ "🛤️ Connections\n",
+ " - embedder.embedding -> retriever.query_embedding (List[float])\n",
+ " - retriever.documents -> prompt_builder.documents (List[Document])\n",
+ " - prompt_builder.prompt -> generator.prompt (str)"
+ ]
+ },
+ "execution_count": 14,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from haystack import Pipeline\n",
+ "from haystack.utils.auth import Secret\n",
+ "from haystack.components.builders import PromptBuilder\n",
+ "from haystack_integrations.components.embedders.nvidia import NvidiaTextEmbedder\n",
+ "from haystack_integrations.components.generators.nvidia import NvidiaGenerator\n",
+ "from haystack.components.retrievers import InMemoryEmbeddingRetriever\n",
+ "\n",
+ "embedder = NvidiaTextEmbedder(model=\"nvidia/nv-embedqa-e5-v5\",\n",
+ " api_url=\"https://integrate.api.nvidia.com/v1\")\n",
+ "\n",
+ "retriever = InMemoryEmbeddingRetriever(document_store=document_store, top_k=5)\n",
+ "\n",
+ "prompt = \"\"\"Answer the question given the context.\n",
+ "Question: {{ query }}\n",
+ "Context:\n",
+ "{% for document in documents %}\n",
+ " {{ document.content }}\n",
+ "{% endfor %}\n",
+ "Answer:\n",
+ "\"\"\"\n",
+ "prompt_builder = PromptBuilder(template=prompt)\n",
+ "\n",
+ "generator = NvidiaGenerator(\n",
+ " model=\"meta/llama3-70b-instruct\",\n",
+ " model_arguments={\n",
+ " \"max_tokens\": 1024\n",
+ " }\n",
+ ")\n",
+ "\n",
+ "rag = Pipeline()\n",
+ "rag.add_component(\"embedder\", embedder)\n",
+ "rag.add_component(\"retriever\", retriever)\n",
+ "rag.add_component(\"prompt_builder\", prompt_builder)\n",
+ "rag.add_component(\"generator\", generator)\n",
+ "\n",
+ "rag.connect(\"embedder.embedding\", \"retriever.query_embedding\")\n",
+ "rag.connect(\"retriever\", \"prompt_builder.documents\")\n",
+ "rag.connect(\"prompt_builder\", \"generator\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "9MFzoBjCiL_K",
+ "outputId": "868018df-e1e2-4a27-a24b-3abef04bf671"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{'embedder': {'meta': {'usage': {'prompt_tokens': 23, 'total_tokens': 23}}},\n",
+ " 'generator': {'replies': ['The answer is Brooklyn.'],\n",
+ " 'meta': [{'role': 'assistant',\n",
+ " 'usage': {'prompt_tokens': 473,\n",
+ " 'total_tokens': 479,\n",
+ " 'completion_tokens': 6},\n",
+ " 'finish_reason': 'stop'}]}}"
+ ]
+ },
+ "execution_count": 15,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "question = \"Are the Laleli Mosque and Esma Sultan Mansion located in the same neighborhood?\" # answer is \"no\"\n",
+ "question = \"The director of the romantic comedy 'Big Stone Gap' is based in what New York city?\" # answer is \"Greenwich Village, New York City\"\n",
+ "\n",
+ "rag.run({\n",
+ " \"embedder\": {\"text\": question},\n",
+ " \"prompt_builder\": {\"query\": question}\n",
+ "})"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "MYa_cQpqf9f1"
+ },
+ "source": [
+ "## Conclusion\n",
+ "\n",
+ "This recipe compares we compare two RAG pipelines: a basic RAG pipeline and an enhanced version that includes an `NvidiaRanker` with the `nvidia/nv-rerankqa-mistral-4b-v3`. While both use a context length of 5 documents, the enhanced RAG pipeline, thanks to the ranking model, provides more relevant documents for the LLM, leading to improved accuracy in the answer.\n",
+ "\n",
+ "For a detailed evaluation, read the full [blog post](https://haystack.deepset.ai/blog/rag-with-nvidia-nim-ranker)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "9Kc3K-6cjH7w"
+ },
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "colab": {
+ "provenance": []
+ },
+ "kernelspec": {
+ "display_name": "Python 3",
+ "name": "python3"
+ },
+ "language_info": {
+ "name": "python"
+ },
+ "widgets": {
+ "application/vnd.jupyter.widget-state+json": {
+ "01d39f717b8343ffbe90cd5167abe2d2": {
+ "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_1b1ee95a4c0940308e1eda0b15922507",
+ "placeholder": "",
+ "style": "IPY_MODEL_5563221219134f299bd2499fbd0f78bd",
+ "value": "hotpot_qa.py: 100%"
+ }
+ },
+ "03a2bed5fd474f68b85ee12b59dc36c3": {
+ "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_fce1c30f19c74be89fead02ecb9c6305",
+ "placeholder": "",
+ "style": "IPY_MODEL_573c17dedafe4c4da1bc8218fa55c3a2",
+ "value": "Generating validation split: 100%"
+ }
+ },
+ "0a18f7930848428699edfcf040632527": {
+ "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
+ }
+ },
+ "0ca97b85f8954eb089fe6c5feb0ce1ad": {
+ "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
+ }
+ },
+ "135659c254dd4ef9908eba7fd4a8f869": {
+ "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_3f0fda8751d641dfb996996238ca726e",
+ "IPY_MODEL_625d19a64e3b4ec88905e579db8832f2",
+ "IPY_MODEL_19e3651a63174826a5505deaed2a404c"
+ ],
+ "layout": "IPY_MODEL_b831a9017472466aa02ae866880bad0d"
+ }
+ },
+ "15b84e82b83b416fa9a15c68bb4f2313": {
+ "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_cf2eb3edd90349d4b601ac7ad4279830",
+ "placeholder": "",
+ "style": "IPY_MODEL_8baf1dae012d4fddacc1ccd9ab18500b",
+ "value": " 0/0 [00:00<?, ?it/s]"
+ }
+ },
+ "18cc4e4d62024e8cae2996d2baa53946": {
+ "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": ""
+ }
+ },
+ "18eb1c9220634269a0fc94b4600ef980": {
+ "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_f5af9025565b46218f634fbb1dbe7469",
+ "placeholder": "",
+ "style": "IPY_MODEL_249e98b589264f00a81564cd39e7d653",
+ "value": "Downloading data: 100%"
+ }
+ },
+ "19e3651a63174826a5505deaed2a404c": {
+ "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_3e22585362d140089093bf53751be94b",
+ "placeholder": "",
+ "style": "IPY_MODEL_4096e236d3424cb29a4d1da5b5af65f2",
+ "value": " 566M/566M [00:38<00:00, 12.3MB/s]"
+ }
+ },
+ "1b1ee95a4c0940308e1eda0b15922507": {
+ "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
+ }
+ },
+ "249e98b589264f00a81564cd39e7d653": {
+ "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": ""
+ }
+ },
+ "28c64510ddaa4ee895c58bc377b83d72": {
+ "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": "20px"
+ }
+ },
+ "29b2dfab67bf47bf985759e6f3903262": {
+ "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
+ }
+ },
+ "2aae515263fb41b988ee00b7535b0823": {
+ "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
+ }
+ },
+ "3027dd90d2ad4a7092aa4fd8a00b817b": {
+ "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_03a2bed5fd474f68b85ee12b59dc36c3",
+ "IPY_MODEL_d2c1d7df1ca44286b55bcbc622b871be",
+ "IPY_MODEL_de8f857b75004b7d9c6850fd872a6da7"
+ ],
+ "layout": "IPY_MODEL_a6f68d997f354508903c3114015766ba"
+ }
+ },
+ "3e22585362d140089093bf53751be94b": {
+ "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
+ }
+ },
+ "3f0fda8751d641dfb996996238ca726e": {
+ "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_afdc35f58a0d4d1397538d2d7ea26e0c",
+ "placeholder": "",
+ "style": "IPY_MODEL_d765e94d41554f7f9ab1802d50c9ae67",
+ "value": "Downloading data: 100%"
+ }
+ },
+ "4096e236d3424cb29a4d1da5b5af65f2": {
+ "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": ""
+ }
+ },
+ "45b9e581154141d4aa6634a7e4db7172": {
+ "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": ""
+ }
+ },
+ "47cff8ee61ae4007a8dd94048a10ee7f": {
+ "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
+ }
+ },
+ "5435d77b1e994cbeb24baf0d855677df": {
+ "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": ""
+ }
+ },
+ "54d0cdb187c94dc6a75fb459fe0a3562": {
+ "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": ""
+ }
+ },
+ "5563221219134f299bd2499fbd0f78bd": {
+ "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": ""
+ }
+ },
+ "56ba0c6b72cd45fea7d6a70a9dc1cd0e": {
+ "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": ""
+ }
+ },
+ "573c17dedafe4c4da1bc8218fa55c3a2": {
+ "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": ""
+ }
+ },
+ "5a57615e2166429da4e8b4654d8c9ce2": {
+ "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": ""
+ }
+ },
+ "5b04064937664315914919f8aad03943": {
+ "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_d25abb46556c44c588f72a9a6945a970",
+ "IPY_MODEL_b796cf4bb964443880e12df6e0d74bc0",
+ "IPY_MODEL_bcad5a00446d4d0ead41f1217b9e5e1c"
+ ],
+ "layout": "IPY_MODEL_29b2dfab67bf47bf985759e6f3903262"
+ }
+ },
+ "5f760f95b30a4038a6ebf96cb1e24531": {
+ "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_47cff8ee61ae4007a8dd94048a10ee7f",
+ "placeholder": "",
+ "style": "IPY_MODEL_5435d77b1e994cbeb24baf0d855677df",
+ "value": " 46.3M/46.3M [00:03<00:00, 11.6MB/s]"
+ }
+ },
+ "61220bad11934e8eb2ee438c581bba58": {
+ "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
+ }
+ },
+ "625d19a64e3b4ec88905e579db8832f2": {
+ "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_c83f4f1d85754194a257f13e9805d5bc",
+ "max": 566426227,
+ "min": 0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_64a8ffc932344d3f947f57239edc5e63",
+ "value": 566426227
+ }
+ },
+ "64a8ffc932344d3f947f57239edc5e63": {
+ "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": ""
+ }
+ },
+ "65dd2e8cb2f64a55a9f59fe442640005": {
+ "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
+ }
+ },
+ "6738c8c67ccf46eb8a772ec45246eb33": {
+ "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": ""
+ }
+ },
+ "6c20cd089bad4483a5cc22be1ffb0414": {
+ "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
+ }
+ },
+ "6eaf383543de4a4e98fcb45a56f01750": {
+ "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": ""
+ }
+ },
+ "78d44514004647d494d6d1ada94a0818": {
+ "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_18eb1c9220634269a0fc94b4600ef980",
+ "IPY_MODEL_bb867cd4dd2449e2b3ebfd06bc9e9624",
+ "IPY_MODEL_5f760f95b30a4038a6ebf96cb1e24531"
+ ],
+ "layout": "IPY_MODEL_6c20cd089bad4483a5cc22be1ffb0414"
+ }
+ },
+ "7bcb425966c7475d91b9f290bf98bc6b": {
+ "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": ""
+ }
+ },
+ "7de2db53efd54890a9a95eff1387d675": {
+ "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_28c64510ddaa4ee895c58bc377b83d72",
+ "max": 1,
+ "min": 0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_7bcb425966c7475d91b9f290bf98bc6b",
+ "value": 0
+ }
+ },
+ "7dfaffe124c743d2bd18f20c0733f5c7": {
+ "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
+ }
+ },
+ "7f846bc2293346a6969289cba0a19b50": {
+ "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": ""
+ }
+ },
+ "8b586cf008f8492a86d3770f6e29c340": {
+ "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
+ }
+ },
+ "8baf1dae012d4fddacc1ccd9ab18500b": {
+ "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": ""
+ }
+ },
+ "91b451d80baa43c085732b5fc7a60753": {
+ "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": ""
+ }
+ },
+ "925e94cc42d04d338aa41c8a905b9faf": {
+ "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
+ }
+ },
+ "9ce3a203bbd842ea975ff1cb1c845ec7": {
+ "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
+ }
+ },
+ "9eae47a5ebd94300a76b87e0ad7658b2": {
+ "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_0ca97b85f8954eb089fe6c5feb0ce1ad",
+ "placeholder": "",
+ "style": "IPY_MODEL_56ba0c6b72cd45fea7d6a70a9dc1cd0e",
+ "value": " 6.42k/6.42k [00:00<00:00, 111kB/s]"
+ }
+ },
+ "9f1bc7b795064f0dafbaa50bc3ac967f": {
+ "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_ee0f0ddc219f42019f5d564de8c3191c",
+ "placeholder": "",
+ "style": "IPY_MODEL_e09dc212d3684002aa851306d270e884",
+ "value": ""
+ }
+ },
+ "a698aafd07dc4e92b7a7d7b8b6c392b4": {
+ "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
+ }
+ },
+ "a6f68d997f354508903c3114015766ba": {
+ "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
+ }
+ },
+ "afdc35f58a0d4d1397538d2d7ea26e0c": {
+ "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
+ }
+ },
+ "b0e775055c204169985d0e821e998bb2": {
+ "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
+ }
+ },
+ "b1fa835f1c0e41fa943d12a145feb306": {
+ "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_8b586cf008f8492a86d3770f6e29c340",
+ "placeholder": "",
+ "style": "IPY_MODEL_45b9e581154141d4aa6634a7e4db7172",
+ "value": "README.md: 100%"
+ }
+ },
+ "b374b263f45d490d9f745a143012d005": {
+ "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
+ }
+ },
+ "b796cf4bb964443880e12df6e0d74bc0": {
+ "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_b0e775055c204169985d0e821e998bb2",
+ "max": 90447,
+ "min": 0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_6eaf383543de4a4e98fcb45a56f01750",
+ "value": 90447
+ }
+ },
+ "b831a9017472466aa02ae866880bad0d": {
+ "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
+ }
+ },
+ "bb867cd4dd2449e2b3ebfd06bc9e9624": {
+ "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_9ce3a203bbd842ea975ff1cb1c845ec7",
+ "max": 46320117,
+ "min": 0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_6738c8c67ccf46eb8a772ec45246eb33",
+ "value": 46320117
+ }
+ },
+ "bcad5a00446d4d0ead41f1217b9e5e1c": {
+ "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_c2e49e93cf964be6b95ceac4a59c7b78",
+ "placeholder": "",
+ "style": "IPY_MODEL_18cc4e4d62024e8cae2996d2baa53946",
+ "value": " 90447/90447 [00:41<00:00, 2605.00 examples/s]"
+ }
+ },
+ "c2e49e93cf964be6b95ceac4a59c7b78": {
+ "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
+ }
+ },
+ "c83f4f1d85754194a257f13e9805d5bc": {
+ "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
+ }
+ },
+ "ceaf9babbb164804822aedafc76859d0": {
+ "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_b1fa835f1c0e41fa943d12a145feb306",
+ "IPY_MODEL_d0d5fa80dc2e4afeb243b8e9e773b564",
+ "IPY_MODEL_dffea9f5cfca40fcaee3c11c6f9ba386"
+ ],
+ "layout": "IPY_MODEL_925e94cc42d04d338aa41c8a905b9faf"
+ }
+ },
+ "cf2eb3edd90349d4b601ac7ad4279830": {
+ "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
+ }
+ },
+ "d0d5fa80dc2e4afeb243b8e9e773b564": {
+ "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_61220bad11934e8eb2ee438c581bba58",
+ "max": 9193,
+ "min": 0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_5a57615e2166429da4e8b4654d8c9ce2",
+ "value": 9193
+ }
+ },
+ "d25abb46556c44c588f72a9a6945a970": {
+ "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_65dd2e8cb2f64a55a9f59fe442640005",
+ "placeholder": "",
+ "style": "IPY_MODEL_f8d708df3fb14cec9c08c22a6fff5878",
+ "value": "Generating train split: 100%"
+ }
+ },
+ "d2c1d7df1ca44286b55bcbc622b871be": {
+ "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_d8cc0fd9d16e458d86d32c4f34d69247",
+ "max": 7405,
+ "min": 0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_91b451d80baa43c085732b5fc7a60753",
+ "value": 7405
+ }
+ },
+ "d3dee5ae50414e5f99e39f71798c2ad8": {
+ "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_2aae515263fb41b988ee00b7535b0823",
+ "max": 6422,
+ "min": 0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_f983a139b8924adb93ba03ed61d8dbd3",
+ "value": 6422
+ }
+ },
+ "d765e94d41554f7f9ab1802d50c9ae67": {
+ "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": ""
+ }
+ },
+ "d8cc0fd9d16e458d86d32c4f34d69247": {
+ "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
+ }
+ },
+ "de8f857b75004b7d9c6850fd872a6da7": {
+ "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_a698aafd07dc4e92b7a7d7b8b6c392b4",
+ "placeholder": "",
+ "style": "IPY_MODEL_54d0cdb187c94dc6a75fb459fe0a3562",
+ "value": " 7405/7405 [00:03<00:00, 2418.69 examples/s]"
+ }
+ },
+ "dffea9f5cfca40fcaee3c11c6f9ba386": {
+ "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_0a18f7930848428699edfcf040632527",
+ "placeholder": "",
+ "style": "IPY_MODEL_7f846bc2293346a6969289cba0a19b50",
+ "value": " 9.19k/9.19k [00:00<00:00, 550kB/s]"
+ }
+ },
+ "e09dc212d3684002aa851306d270e884": {
+ "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": ""
+ }
+ },
+ "e449e3334fea41a4b4b44425ce769ca0": {
+ "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_01d39f717b8343ffbe90cd5167abe2d2",
+ "IPY_MODEL_d3dee5ae50414e5f99e39f71798c2ad8",
+ "IPY_MODEL_9eae47a5ebd94300a76b87e0ad7658b2"
+ ],
+ "layout": "IPY_MODEL_b374b263f45d490d9f745a143012d005"
+ }
+ },
+ "ee0f0ddc219f42019f5d564de8c3191c": {
+ "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
+ }
+ },
+ "f5af9025565b46218f634fbb1dbe7469": {
+ "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
+ }
+ },
+ "f8d708df3fb14cec9c08c22a6fff5878": {
+ "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": ""
+ }
+ },
+ "f983a139b8924adb93ba03ed61d8dbd3": {
+ "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": ""
+ }
+ },
+ "fce1c30f19c74be89fead02ecb9c6305": {
+ "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
+ }
+ },
+ "fda86af527c140d0a9c666e9d4ca4b52": {
+ "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_9f1bc7b795064f0dafbaa50bc3ac967f",
+ "IPY_MODEL_7de2db53efd54890a9a95eff1387d675",
+ "IPY_MODEL_15b84e82b83b416fa9a15c68bb4f2313"
+ ],
+ "layout": "IPY_MODEL_7dfaffe124c743d2bd18f20c0733f5c7"
+ }
+ }
+ }
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}