diff --git a/.gitignore b/.gitignore
index fda2ee4..f9b0027 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,6 @@
__pycache__
-/data/
+/data
+/dataset
+/wandb
.ipynb_checkpoints
+.env
diff --git a/Playground.ipynb b/Playground.ipynb
index 24b7332..1400d71 100644
--- a/Playground.ipynb
+++ b/Playground.ipynb
@@ -1,1076 +1,6206 @@
{
- "cells": [
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
{
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "id": "vINNjRbwnFOa",
- "outputId": "cb1c6076-ba6f-4e11-9b29-f16ceb46122b"
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Requirement already satisfied: transformers in /usr/local/lib/python3.10/dist-packages (4.38.2)\n",
- "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from transformers) (3.13.4)\n",
- "Requirement already satisfied: huggingface-hub<1.0,>=0.19.3 in /usr/local/lib/python3.10/dist-packages (from transformers) (0.20.3)\n",
- "Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.10/dist-packages (from transformers) (1.25.2)\n",
- "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from transformers) (24.0)\n",
- "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.10/dist-packages (from transformers) (6.0.1)\n",
- "Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.10/dist-packages (from transformers) (2023.12.25)\n",
- "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from transformers) (2.31.0)\n",
- "Requirement already satisfied: tokenizers<0.19,>=0.14 in /usr/local/lib/python3.10/dist-packages (from transformers) (0.15.2)\n",
- "Requirement already satisfied: safetensors>=0.4.1 in /usr/local/lib/python3.10/dist-packages (from transformers) (0.4.2)\n",
- "Requirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.10/dist-packages (from transformers) (4.66.2)\n",
- "Requirement already satisfied: fsspec>=2023.5.0 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0,>=0.19.3->transformers) (2023.6.0)\n",
- "Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0,>=0.19.3->transformers) (4.11.0)\n",
- "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (3.3.2)\n",
- "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (3.6)\n",
- "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (2.0.7)\n",
- "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (2024.2.2)\n"
- ]
- }
- ],
- "source": [
- "%pip install transformers"
- ]
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/tmp/ipykernel_1268750/2315452469.py:9: FutureWarning: 'H' is deprecated and will be removed in a future version, please use 'h' instead.\n",
+ " times = pd.date_range(start='2023-01-01', periods=n_points, freq='H')\n"
+ ]
},
{
- "cell_type": "markdown",
- "metadata": {
- "id": "3yDIICSsnFOb"
- },
- "source": [
- "## Download Data"
+ "data": {
+ "text/html": [
+ " \n",
+ " "
]
+ },
+ "metadata": {},
+ "output_type": "display_data"
},
{
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "id": "QkZQTpFxnexd",
- "outputId": "7b935131-d364-405b-d429-377e61772a56"
- },
- "outputs": [
+ "data": {
+ "application/vnd.plotly.v1+json": {
+ "config": {
+ "plotlyServerURL": "https://plot.ly"
+ },
+ "data": [
{
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Collecting requests_cache\n",
- " Downloading requests_cache-1.2.0-py3-none-any.whl (61 kB)\n",
- "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m61.4/61.4 kB\u001b[0m \u001b[31m1.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
- "\u001b[?25hRequirement already satisfied: attrs>=21.2 in /usr/local/lib/python3.10/dist-packages (from requests_cache) (23.2.0)\n",
- "Collecting cattrs>=22.2 (from requests_cache)\n",
- " Downloading cattrs-23.2.3-py3-none-any.whl (57 kB)\n",
- "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m57.5/57.5 kB\u001b[0m \u001b[31m6.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
- "\u001b[?25hRequirement already satisfied: platformdirs>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests_cache) (4.2.0)\n",
- "Requirement already satisfied: requests>=2.22 in /usr/local/lib/python3.10/dist-packages (from requests_cache) (2.31.0)\n",
- "Collecting url-normalize>=1.4 (from requests_cache)\n",
- " Downloading url_normalize-1.4.3-py2.py3-none-any.whl (6.8 kB)\n",
- "Requirement already satisfied: urllib3>=1.25.5 in /usr/local/lib/python3.10/dist-packages (from requests_cache) (2.0.7)\n",
- "Requirement already satisfied: exceptiongroup>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from cattrs>=22.2->requests_cache) (1.2.0)\n",
- "Requirement already satisfied: typing-extensions!=4.6.3,>=4.1.0 in /usr/local/lib/python3.10/dist-packages (from cattrs>=22.2->requests_cache) (4.11.0)\n",
- "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests>=2.22->requests_cache) (3.3.2)\n",
- "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests>=2.22->requests_cache) (3.6)\n",
- "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests>=2.22->requests_cache) (2024.2.2)\n",
- "Requirement already satisfied: six in /usr/local/lib/python3.10/dist-packages (from url-normalize>=1.4->requests_cache) (1.16.0)\n",
- "Installing collected packages: url-normalize, cattrs, requests_cache\n",
- "Successfully installed cattrs-23.2.3 requests_cache-1.2.0 url-normalize-1.4.3\n"
+ "colorbar": {
+ "title": {
+ "text": "Density"
+ }
+ },
+ "colorscale": [
+ [
+ 0,
+ "#440154"
+ ],
+ [
+ 0.1111111111111111,
+ "#482878"
+ ],
+ [
+ 0.2222222222222222,
+ "#3e4989"
+ ],
+ [
+ 0.3333333333333333,
+ "#31688e"
+ ],
+ [
+ 0.4444444444444444,
+ "#26828e"
+ ],
+ [
+ 0.5555555555555556,
+ "#1f9e89"
+ ],
+ [
+ 0.6666666666666666,
+ "#35b779"
+ ],
+ [
+ 0.7777777777777778,
+ "#6ece58"
+ ],
+ [
+ 0.8888888888888888,
+ "#b5de2b"
+ ],
+ [
+ 1,
+ "#fde725"
]
- }
- ],
- "source": [
- "%pip install requests_cache"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
+ ],
+ "nbinsx": 100,
+ "nbinsy": 50,
+ "type": "histogram2d",
+ "x": [
+ "2023-01-01T00:00:00",
+ "2023-01-01T01:00:00",
+ "2023-01-01T02:00:00",
+ "2023-01-01T03:00:00",
+ "2023-01-01T04:00:00",
+ "2023-01-01T05:00:00",
+ "2023-01-01T06:00:00",
+ "2023-01-01T07:00:00",
+ "2023-01-01T08:00:00",
+ "2023-01-01T09:00:00",
+ "2023-01-01T10:00:00",
+ "2023-01-01T11:00:00",
+ "2023-01-01T12:00:00",
+ "2023-01-01T13:00:00",
+ "2023-01-01T14:00:00",
+ "2023-01-01T15:00:00",
+ "2023-01-01T16:00:00",
+ "2023-01-01T17:00:00",
+ "2023-01-01T18:00:00",
+ "2023-01-01T19:00:00",
+ "2023-01-01T20:00:00",
+ "2023-01-01T21:00:00",
+ "2023-01-01T22:00:00",
+ "2023-01-01T23:00:00",
+ "2023-01-02T00:00:00",
+ "2023-01-02T01:00:00",
+ "2023-01-02T02:00:00",
+ "2023-01-02T03:00:00",
+ "2023-01-02T04:00:00",
+ "2023-01-02T05:00:00",
+ "2023-01-02T06:00:00",
+ "2023-01-02T07:00:00",
+ "2023-01-02T08:00:00",
+ "2023-01-02T09:00:00",
+ "2023-01-02T10:00:00",
+ "2023-01-02T11:00:00",
+ "2023-01-02T12:00:00",
+ "2023-01-02T13:00:00",
+ "2023-01-02T14:00:00",
+ "2023-01-02T15:00:00",
+ "2023-01-02T16:00:00",
+ "2023-01-02T17:00:00",
+ "2023-01-02T18:00:00",
+ "2023-01-02T19:00:00",
+ "2023-01-02T20:00:00",
+ "2023-01-02T21:00:00",
+ "2023-01-02T22:00:00",
+ "2023-01-02T23:00:00",
+ "2023-01-03T00:00:00",
+ "2023-01-03T01:00:00",
+ "2023-01-03T02:00:00",
+ "2023-01-03T03:00:00",
+ "2023-01-03T04:00:00",
+ "2023-01-03T05:00:00",
+ "2023-01-03T06:00:00",
+ "2023-01-03T07:00:00",
+ "2023-01-03T08:00:00",
+ "2023-01-03T09:00:00",
+ "2023-01-03T10:00:00",
+ "2023-01-03T11:00:00",
+ "2023-01-03T12:00:00",
+ "2023-01-03T13:00:00",
+ "2023-01-03T14:00:00",
+ "2023-01-03T15:00:00",
+ "2023-01-03T16:00:00",
+ "2023-01-03T17:00:00",
+ "2023-01-03T18:00:00",
+ "2023-01-03T19:00:00",
+ "2023-01-03T20:00:00",
+ "2023-01-03T21:00:00",
+ "2023-01-03T22:00:00",
+ "2023-01-03T23:00:00",
+ "2023-01-04T00:00:00",
+ "2023-01-04T01:00:00",
+ "2023-01-04T02:00:00",
+ "2023-01-04T03:00:00",
+ "2023-01-04T04:00:00",
+ "2023-01-04T05:00:00",
+ "2023-01-04T06:00:00",
+ "2023-01-04T07:00:00",
+ "2023-01-04T08:00:00",
+ "2023-01-04T09:00:00",
+ "2023-01-04T10:00:00",
+ "2023-01-04T11:00:00",
+ "2023-01-04T12:00:00",
+ "2023-01-04T13:00:00",
+ "2023-01-04T14:00:00",
+ "2023-01-04T15:00:00",
+ "2023-01-04T16:00:00",
+ "2023-01-04T17:00:00",
+ "2023-01-04T18:00:00",
+ "2023-01-04T19:00:00",
+ "2023-01-04T20:00:00",
+ "2023-01-04T21:00:00",
+ "2023-01-04T22:00:00",
+ "2023-01-04T23:00:00",
+ "2023-01-05T00:00:00",
+ "2023-01-05T01:00:00",
+ "2023-01-05T02:00:00",
+ "2023-01-05T03:00:00",
+ "2023-01-05T04:00:00",
+ "2023-01-05T05:00:00",
+ "2023-01-05T06:00:00",
+ "2023-01-05T07:00:00",
+ "2023-01-05T08:00:00",
+ "2023-01-05T09:00:00",
+ "2023-01-05T10:00:00",
+ "2023-01-05T11:00:00",
+ "2023-01-05T12:00:00",
+ "2023-01-05T13:00:00",
+ "2023-01-05T14:00:00",
+ "2023-01-05T15:00:00",
+ "2023-01-05T16:00:00",
+ "2023-01-05T17:00:00",
+ "2023-01-05T18:00:00",
+ "2023-01-05T19:00:00",
+ "2023-01-05T20:00:00",
+ "2023-01-05T21:00:00",
+ "2023-01-05T22:00:00",
+ "2023-01-05T23:00:00",
+ "2023-01-06T00:00:00",
+ "2023-01-06T01:00:00",
+ "2023-01-06T02:00:00",
+ "2023-01-06T03:00:00",
+ "2023-01-06T04:00:00",
+ "2023-01-06T05:00:00",
+ "2023-01-06T06:00:00",
+ "2023-01-06T07:00:00",
+ "2023-01-06T08:00:00",
+ "2023-01-06T09:00:00",
+ "2023-01-06T10:00:00",
+ "2023-01-06T11:00:00",
+ "2023-01-06T12:00:00",
+ "2023-01-06T13:00:00",
+ "2023-01-06T14:00:00",
+ "2023-01-06T15:00:00",
+ "2023-01-06T16:00:00",
+ "2023-01-06T17:00:00",
+ "2023-01-06T18:00:00",
+ "2023-01-06T19:00:00",
+ "2023-01-06T20:00:00",
+ "2023-01-06T21:00:00",
+ "2023-01-06T22:00:00",
+ "2023-01-06T23:00:00",
+ "2023-01-07T00:00:00",
+ "2023-01-07T01:00:00",
+ "2023-01-07T02:00:00",
+ "2023-01-07T03:00:00",
+ "2023-01-07T04:00:00",
+ "2023-01-07T05:00:00",
+ "2023-01-07T06:00:00",
+ "2023-01-07T07:00:00",
+ "2023-01-07T08:00:00",
+ "2023-01-07T09:00:00",
+ "2023-01-07T10:00:00",
+ "2023-01-07T11:00:00",
+ "2023-01-07T12:00:00",
+ "2023-01-07T13:00:00",
+ "2023-01-07T14:00:00",
+ "2023-01-07T15:00:00",
+ "2023-01-07T16:00:00",
+ "2023-01-07T17:00:00",
+ "2023-01-07T18:00:00",
+ "2023-01-07T19:00:00",
+ "2023-01-07T20:00:00",
+ "2023-01-07T21:00:00",
+ "2023-01-07T22:00:00",
+ "2023-01-07T23:00:00",
+ "2023-01-08T00:00:00",
+ "2023-01-08T01:00:00",
+ "2023-01-08T02:00:00",
+ "2023-01-08T03:00:00",
+ "2023-01-08T04:00:00",
+ "2023-01-08T05:00:00",
+ "2023-01-08T06:00:00",
+ "2023-01-08T07:00:00",
+ "2023-01-08T08:00:00",
+ "2023-01-08T09:00:00",
+ "2023-01-08T10:00:00",
+ "2023-01-08T11:00:00",
+ "2023-01-08T12:00:00",
+ "2023-01-08T13:00:00",
+ "2023-01-08T14:00:00",
+ "2023-01-08T15:00:00",
+ "2023-01-08T16:00:00",
+ "2023-01-08T17:00:00",
+ "2023-01-08T18:00:00",
+ "2023-01-08T19:00:00",
+ "2023-01-08T20:00:00",
+ "2023-01-08T21:00:00",
+ "2023-01-08T22:00:00",
+ "2023-01-08T23:00:00",
+ "2023-01-09T00:00:00",
+ "2023-01-09T01:00:00",
+ "2023-01-09T02:00:00",
+ "2023-01-09T03:00:00",
+ "2023-01-09T04:00:00",
+ "2023-01-09T05:00:00",
+ "2023-01-09T06:00:00",
+ "2023-01-09T07:00:00",
+ "2023-01-09T08:00:00",
+ "2023-01-09T09:00:00",
+ "2023-01-09T10:00:00",
+ "2023-01-09T11:00:00",
+ "2023-01-09T12:00:00",
+ "2023-01-09T13:00:00",
+ "2023-01-09T14:00:00",
+ "2023-01-09T15:00:00",
+ "2023-01-09T16:00:00",
+ "2023-01-09T17:00:00",
+ "2023-01-09T18:00:00",
+ "2023-01-09T19:00:00",
+ "2023-01-09T20:00:00",
+ "2023-01-09T21:00:00",
+ "2023-01-09T22:00:00",
+ "2023-01-09T23:00:00",
+ "2023-01-10T00:00:00",
+ "2023-01-10T01:00:00",
+ "2023-01-10T02:00:00",
+ "2023-01-10T03:00:00",
+ "2023-01-10T04:00:00",
+ "2023-01-10T05:00:00",
+ "2023-01-10T06:00:00",
+ "2023-01-10T07:00:00",
+ "2023-01-10T08:00:00",
+ "2023-01-10T09:00:00",
+ "2023-01-10T10:00:00",
+ "2023-01-10T11:00:00",
+ "2023-01-10T12:00:00",
+ "2023-01-10T13:00:00",
+ "2023-01-10T14:00:00",
+ "2023-01-10T15:00:00",
+ "2023-01-10T16:00:00",
+ "2023-01-10T17:00:00",
+ "2023-01-10T18:00:00",
+ "2023-01-10T19:00:00",
+ "2023-01-10T20:00:00",
+ "2023-01-10T21:00:00",
+ "2023-01-10T22:00:00",
+ "2023-01-10T23:00:00",
+ "2023-01-11T00:00:00",
+ "2023-01-11T01:00:00",
+ "2023-01-11T02:00:00",
+ "2023-01-11T03:00:00",
+ "2023-01-11T04:00:00",
+ "2023-01-11T05:00:00",
+ "2023-01-11T06:00:00",
+ "2023-01-11T07:00:00",
+ "2023-01-11T08:00:00",
+ "2023-01-11T09:00:00",
+ "2023-01-11T10:00:00",
+ "2023-01-11T11:00:00",
+ "2023-01-11T12:00:00",
+ "2023-01-11T13:00:00",
+ "2023-01-11T14:00:00",
+ "2023-01-11T15:00:00",
+ "2023-01-11T16:00:00",
+ "2023-01-11T17:00:00",
+ "2023-01-11T18:00:00",
+ "2023-01-11T19:00:00",
+ "2023-01-11T20:00:00",
+ "2023-01-11T21:00:00",
+ "2023-01-11T22:00:00",
+ "2023-01-11T23:00:00",
+ "2023-01-12T00:00:00",
+ "2023-01-12T01:00:00",
+ "2023-01-12T02:00:00",
+ "2023-01-12T03:00:00",
+ "2023-01-12T04:00:00",
+ "2023-01-12T05:00:00",
+ "2023-01-12T06:00:00",
+ "2023-01-12T07:00:00",
+ "2023-01-12T08:00:00",
+ "2023-01-12T09:00:00",
+ "2023-01-12T10:00:00",
+ "2023-01-12T11:00:00",
+ "2023-01-12T12:00:00",
+ "2023-01-12T13:00:00",
+ "2023-01-12T14:00:00",
+ "2023-01-12T15:00:00",
+ "2023-01-12T16:00:00",
+ "2023-01-12T17:00:00",
+ "2023-01-12T18:00:00",
+ "2023-01-12T19:00:00",
+ "2023-01-12T20:00:00",
+ "2023-01-12T21:00:00",
+ "2023-01-12T22:00:00",
+ "2023-01-12T23:00:00",
+ "2023-01-13T00:00:00",
+ "2023-01-13T01:00:00",
+ "2023-01-13T02:00:00",
+ "2023-01-13T03:00:00",
+ "2023-01-13T04:00:00",
+ "2023-01-13T05:00:00",
+ "2023-01-13T06:00:00",
+ "2023-01-13T07:00:00",
+ "2023-01-13T08:00:00",
+ "2023-01-13T09:00:00",
+ "2023-01-13T10:00:00",
+ "2023-01-13T11:00:00",
+ "2023-01-13T12:00:00",
+ "2023-01-13T13:00:00",
+ "2023-01-13T14:00:00",
+ "2023-01-13T15:00:00",
+ "2023-01-13T16:00:00",
+ "2023-01-13T17:00:00",
+ "2023-01-13T18:00:00",
+ "2023-01-13T19:00:00",
+ "2023-01-13T20:00:00",
+ "2023-01-13T21:00:00",
+ "2023-01-13T22:00:00",
+ "2023-01-13T23:00:00",
+ "2023-01-14T00:00:00",
+ "2023-01-14T01:00:00",
+ "2023-01-14T02:00:00",
+ "2023-01-14T03:00:00",
+ "2023-01-14T04:00:00",
+ "2023-01-14T05:00:00",
+ "2023-01-14T06:00:00",
+ "2023-01-14T07:00:00",
+ "2023-01-14T08:00:00",
+ "2023-01-14T09:00:00",
+ "2023-01-14T10:00:00",
+ "2023-01-14T11:00:00",
+ "2023-01-14T12:00:00",
+ "2023-01-14T13:00:00",
+ "2023-01-14T14:00:00",
+ "2023-01-14T15:00:00",
+ "2023-01-14T16:00:00",
+ "2023-01-14T17:00:00",
+ "2023-01-14T18:00:00",
+ "2023-01-14T19:00:00",
+ "2023-01-14T20:00:00",
+ "2023-01-14T21:00:00",
+ "2023-01-14T22:00:00",
+ "2023-01-14T23:00:00",
+ "2023-01-15T00:00:00",
+ "2023-01-15T01:00:00",
+ "2023-01-15T02:00:00",
+ "2023-01-15T03:00:00",
+ "2023-01-15T04:00:00",
+ "2023-01-15T05:00:00",
+ "2023-01-15T06:00:00",
+ "2023-01-15T07:00:00",
+ "2023-01-15T08:00:00",
+ "2023-01-15T09:00:00",
+ "2023-01-15T10:00:00",
+ "2023-01-15T11:00:00",
+ "2023-01-15T12:00:00",
+ "2023-01-15T13:00:00",
+ "2023-01-15T14:00:00",
+ "2023-01-15T15:00:00",
+ "2023-01-15T16:00:00",
+ "2023-01-15T17:00:00",
+ "2023-01-15T18:00:00",
+ "2023-01-15T19:00:00",
+ "2023-01-15T20:00:00",
+ "2023-01-15T21:00:00",
+ "2023-01-15T22:00:00",
+ "2023-01-15T23:00:00",
+ "2023-01-16T00:00:00",
+ "2023-01-16T01:00:00",
+ "2023-01-16T02:00:00",
+ "2023-01-16T03:00:00",
+ "2023-01-16T04:00:00",
+ "2023-01-16T05:00:00",
+ "2023-01-16T06:00:00",
+ "2023-01-16T07:00:00",
+ "2023-01-16T08:00:00",
+ "2023-01-16T09:00:00",
+ "2023-01-16T10:00:00",
+ "2023-01-16T11:00:00",
+ "2023-01-16T12:00:00",
+ "2023-01-16T13:00:00",
+ "2023-01-16T14:00:00",
+ "2023-01-16T15:00:00",
+ "2023-01-16T16:00:00",
+ "2023-01-16T17:00:00",
+ "2023-01-16T18:00:00",
+ "2023-01-16T19:00:00",
+ "2023-01-16T20:00:00",
+ "2023-01-16T21:00:00",
+ "2023-01-16T22:00:00",
+ "2023-01-16T23:00:00",
+ "2023-01-17T00:00:00",
+ "2023-01-17T01:00:00",
+ "2023-01-17T02:00:00",
+ "2023-01-17T03:00:00",
+ "2023-01-17T04:00:00",
+ "2023-01-17T05:00:00",
+ "2023-01-17T06:00:00",
+ "2023-01-17T07:00:00",
+ "2023-01-17T08:00:00",
+ "2023-01-17T09:00:00",
+ "2023-01-17T10:00:00",
+ "2023-01-17T11:00:00",
+ "2023-01-17T12:00:00",
+ "2023-01-17T13:00:00",
+ "2023-01-17T14:00:00",
+ "2023-01-17T15:00:00",
+ "2023-01-17T16:00:00",
+ "2023-01-17T17:00:00",
+ "2023-01-17T18:00:00",
+ "2023-01-17T19:00:00",
+ "2023-01-17T20:00:00",
+ "2023-01-17T21:00:00",
+ "2023-01-17T22:00:00",
+ "2023-01-17T23:00:00",
+ "2023-01-18T00:00:00",
+ "2023-01-18T01:00:00",
+ "2023-01-18T02:00:00",
+ "2023-01-18T03:00:00",
+ "2023-01-18T04:00:00",
+ "2023-01-18T05:00:00",
+ "2023-01-18T06:00:00",
+ "2023-01-18T07:00:00",
+ "2023-01-18T08:00:00",
+ "2023-01-18T09:00:00",
+ "2023-01-18T10:00:00",
+ "2023-01-18T11:00:00",
+ "2023-01-18T12:00:00",
+ "2023-01-18T13:00:00",
+ "2023-01-18T14:00:00",
+ "2023-01-18T15:00:00",
+ "2023-01-18T16:00:00",
+ "2023-01-18T17:00:00",
+ "2023-01-18T18:00:00",
+ "2023-01-18T19:00:00",
+ "2023-01-18T20:00:00",
+ "2023-01-18T21:00:00",
+ "2023-01-18T22:00:00",
+ "2023-01-18T23:00:00",
+ "2023-01-19T00:00:00",
+ "2023-01-19T01:00:00",
+ "2023-01-19T02:00:00",
+ "2023-01-19T03:00:00",
+ "2023-01-19T04:00:00",
+ "2023-01-19T05:00:00",
+ "2023-01-19T06:00:00",
+ "2023-01-19T07:00:00",
+ "2023-01-19T08:00:00",
+ "2023-01-19T09:00:00",
+ "2023-01-19T10:00:00",
+ "2023-01-19T11:00:00",
+ "2023-01-19T12:00:00",
+ "2023-01-19T13:00:00",
+ "2023-01-19T14:00:00",
+ "2023-01-19T15:00:00",
+ "2023-01-19T16:00:00",
+ "2023-01-19T17:00:00",
+ "2023-01-19T18:00:00",
+ "2023-01-19T19:00:00",
+ "2023-01-19T20:00:00",
+ "2023-01-19T21:00:00",
+ "2023-01-19T22:00:00",
+ "2023-01-19T23:00:00",
+ "2023-01-20T00:00:00",
+ "2023-01-20T01:00:00",
+ "2023-01-20T02:00:00",
+ "2023-01-20T03:00:00",
+ "2023-01-20T04:00:00",
+ "2023-01-20T05:00:00",
+ "2023-01-20T06:00:00",
+ "2023-01-20T07:00:00",
+ "2023-01-20T08:00:00",
+ "2023-01-20T09:00:00",
+ "2023-01-20T10:00:00",
+ "2023-01-20T11:00:00",
+ "2023-01-20T12:00:00",
+ "2023-01-20T13:00:00",
+ "2023-01-20T14:00:00",
+ "2023-01-20T15:00:00",
+ "2023-01-20T16:00:00",
+ "2023-01-20T17:00:00",
+ "2023-01-20T18:00:00",
+ "2023-01-20T19:00:00",
+ "2023-01-20T20:00:00",
+ "2023-01-20T21:00:00",
+ "2023-01-20T22:00:00",
+ "2023-01-20T23:00:00",
+ "2023-01-21T00:00:00",
+ "2023-01-21T01:00:00",
+ "2023-01-21T02:00:00",
+ "2023-01-21T03:00:00",
+ "2023-01-21T04:00:00",
+ "2023-01-21T05:00:00",
+ "2023-01-21T06:00:00",
+ "2023-01-21T07:00:00",
+ "2023-01-21T08:00:00",
+ "2023-01-21T09:00:00",
+ "2023-01-21T10:00:00",
+ "2023-01-21T11:00:00",
+ "2023-01-21T12:00:00",
+ "2023-01-21T13:00:00",
+ "2023-01-21T14:00:00",
+ "2023-01-21T15:00:00",
+ "2023-01-21T16:00:00",
+ "2023-01-21T17:00:00",
+ "2023-01-21T18:00:00",
+ "2023-01-21T19:00:00",
+ "2023-01-21T20:00:00",
+ "2023-01-21T21:00:00",
+ "2023-01-21T22:00:00",
+ "2023-01-21T23:00:00",
+ "2023-01-22T00:00:00",
+ "2023-01-22T01:00:00",
+ "2023-01-22T02:00:00",
+ "2023-01-22T03:00:00",
+ "2023-01-22T04:00:00",
+ "2023-01-22T05:00:00",
+ "2023-01-22T06:00:00",
+ "2023-01-22T07:00:00",
+ "2023-01-22T08:00:00",
+ "2023-01-22T09:00:00",
+ "2023-01-22T10:00:00",
+ "2023-01-22T11:00:00",
+ "2023-01-22T12:00:00",
+ "2023-01-22T13:00:00",
+ "2023-01-22T14:00:00",
+ "2023-01-22T15:00:00",
+ "2023-01-22T16:00:00",
+ "2023-01-22T17:00:00",
+ "2023-01-22T18:00:00",
+ "2023-01-22T19:00:00",
+ "2023-01-22T20:00:00",
+ "2023-01-22T21:00:00",
+ "2023-01-22T22:00:00",
+ "2023-01-22T23:00:00",
+ "2023-01-23T00:00:00",
+ "2023-01-23T01:00:00",
+ "2023-01-23T02:00:00",
+ "2023-01-23T03:00:00",
+ "2023-01-23T04:00:00",
+ "2023-01-23T05:00:00",
+ "2023-01-23T06:00:00",
+ "2023-01-23T07:00:00",
+ "2023-01-23T08:00:00",
+ "2023-01-23T09:00:00",
+ "2023-01-23T10:00:00",
+ "2023-01-23T11:00:00",
+ "2023-01-23T12:00:00",
+ "2023-01-23T13:00:00",
+ "2023-01-23T14:00:00",
+ "2023-01-23T15:00:00",
+ "2023-01-23T16:00:00",
+ "2023-01-23T17:00:00",
+ "2023-01-23T18:00:00",
+ "2023-01-23T19:00:00",
+ "2023-01-23T20:00:00",
+ "2023-01-23T21:00:00",
+ "2023-01-23T22:00:00",
+ "2023-01-23T23:00:00",
+ "2023-01-24T00:00:00",
+ "2023-01-24T01:00:00",
+ "2023-01-24T02:00:00",
+ "2023-01-24T03:00:00",
+ "2023-01-24T04:00:00",
+ "2023-01-24T05:00:00",
+ "2023-01-24T06:00:00",
+ "2023-01-24T07:00:00",
+ "2023-01-24T08:00:00",
+ "2023-01-24T09:00:00",
+ "2023-01-24T10:00:00",
+ "2023-01-24T11:00:00",
+ "2023-01-24T12:00:00",
+ "2023-01-24T13:00:00",
+ "2023-01-24T14:00:00",
+ "2023-01-24T15:00:00",
+ "2023-01-24T16:00:00",
+ "2023-01-24T17:00:00",
+ "2023-01-24T18:00:00",
+ "2023-01-24T19:00:00",
+ "2023-01-24T20:00:00",
+ "2023-01-24T21:00:00",
+ "2023-01-24T22:00:00",
+ "2023-01-24T23:00:00",
+ "2023-01-25T00:00:00",
+ "2023-01-25T01:00:00",
+ "2023-01-25T02:00:00",
+ "2023-01-25T03:00:00",
+ "2023-01-25T04:00:00",
+ "2023-01-25T05:00:00",
+ "2023-01-25T06:00:00",
+ "2023-01-25T07:00:00",
+ "2023-01-25T08:00:00",
+ "2023-01-25T09:00:00",
+ "2023-01-25T10:00:00",
+ "2023-01-25T11:00:00",
+ "2023-01-25T12:00:00",
+ "2023-01-25T13:00:00",
+ "2023-01-25T14:00:00",
+ "2023-01-25T15:00:00",
+ "2023-01-25T16:00:00",
+ "2023-01-25T17:00:00",
+ "2023-01-25T18:00:00",
+ "2023-01-25T19:00:00",
+ "2023-01-25T20:00:00",
+ "2023-01-25T21:00:00",
+ "2023-01-25T22:00:00",
+ "2023-01-25T23:00:00",
+ "2023-01-26T00:00:00",
+ "2023-01-26T01:00:00",
+ "2023-01-26T02:00:00",
+ "2023-01-26T03:00:00",
+ "2023-01-26T04:00:00",
+ "2023-01-26T05:00:00",
+ "2023-01-26T06:00:00",
+ "2023-01-26T07:00:00",
+ "2023-01-26T08:00:00",
+ "2023-01-26T09:00:00",
+ "2023-01-26T10:00:00",
+ "2023-01-26T11:00:00",
+ "2023-01-26T12:00:00",
+ "2023-01-26T13:00:00",
+ "2023-01-26T14:00:00",
+ "2023-01-26T15:00:00",
+ "2023-01-26T16:00:00",
+ "2023-01-26T17:00:00",
+ "2023-01-26T18:00:00",
+ "2023-01-26T19:00:00",
+ "2023-01-26T20:00:00",
+ "2023-01-26T21:00:00",
+ "2023-01-26T22:00:00",
+ "2023-01-26T23:00:00",
+ "2023-01-27T00:00:00",
+ "2023-01-27T01:00:00",
+ "2023-01-27T02:00:00",
+ "2023-01-27T03:00:00",
+ "2023-01-27T04:00:00",
+ "2023-01-27T05:00:00",
+ "2023-01-27T06:00:00",
+ "2023-01-27T07:00:00",
+ "2023-01-27T08:00:00",
+ "2023-01-27T09:00:00",
+ "2023-01-27T10:00:00",
+ "2023-01-27T11:00:00",
+ "2023-01-27T12:00:00",
+ "2023-01-27T13:00:00",
+ "2023-01-27T14:00:00",
+ "2023-01-27T15:00:00",
+ "2023-01-27T16:00:00",
+ "2023-01-27T17:00:00",
+ "2023-01-27T18:00:00",
+ "2023-01-27T19:00:00",
+ "2023-01-27T20:00:00",
+ "2023-01-27T21:00:00",
+ "2023-01-27T22:00:00",
+ "2023-01-27T23:00:00",
+ "2023-01-28T00:00:00",
+ "2023-01-28T01:00:00",
+ "2023-01-28T02:00:00",
+ "2023-01-28T03:00:00",
+ "2023-01-28T04:00:00",
+ "2023-01-28T05:00:00",
+ "2023-01-28T06:00:00",
+ "2023-01-28T07:00:00",
+ "2023-01-28T08:00:00",
+ "2023-01-28T09:00:00",
+ "2023-01-28T10:00:00",
+ "2023-01-28T11:00:00",
+ "2023-01-28T12:00:00",
+ "2023-01-28T13:00:00",
+ "2023-01-28T14:00:00",
+ "2023-01-28T15:00:00",
+ "2023-01-28T16:00:00",
+ "2023-01-28T17:00:00",
+ "2023-01-28T18:00:00",
+ "2023-01-28T19:00:00",
+ "2023-01-28T20:00:00",
+ "2023-01-28T21:00:00",
+ "2023-01-28T22:00:00",
+ "2023-01-28T23:00:00",
+ "2023-01-29T00:00:00",
+ "2023-01-29T01:00:00",
+ "2023-01-29T02:00:00",
+ "2023-01-29T03:00:00",
+ "2023-01-29T04:00:00",
+ "2023-01-29T05:00:00",
+ "2023-01-29T06:00:00",
+ "2023-01-29T07:00:00",
+ "2023-01-29T08:00:00",
+ "2023-01-29T09:00:00",
+ "2023-01-29T10:00:00",
+ "2023-01-29T11:00:00",
+ "2023-01-29T12:00:00",
+ "2023-01-29T13:00:00",
+ "2023-01-29T14:00:00",
+ "2023-01-29T15:00:00",
+ "2023-01-29T16:00:00",
+ "2023-01-29T17:00:00",
+ "2023-01-29T18:00:00",
+ "2023-01-29T19:00:00",
+ "2023-01-29T20:00:00",
+ "2023-01-29T21:00:00",
+ "2023-01-29T22:00:00",
+ "2023-01-29T23:00:00",
+ "2023-01-30T00:00:00",
+ "2023-01-30T01:00:00",
+ "2023-01-30T02:00:00",
+ "2023-01-30T03:00:00",
+ "2023-01-30T04:00:00",
+ "2023-01-30T05:00:00",
+ "2023-01-30T06:00:00",
+ "2023-01-30T07:00:00",
+ "2023-01-30T08:00:00",
+ "2023-01-30T09:00:00",
+ "2023-01-30T10:00:00",
+ "2023-01-30T11:00:00",
+ "2023-01-30T12:00:00",
+ "2023-01-30T13:00:00",
+ "2023-01-30T14:00:00",
+ "2023-01-30T15:00:00",
+ "2023-01-30T16:00:00",
+ "2023-01-30T17:00:00",
+ "2023-01-30T18:00:00",
+ "2023-01-30T19:00:00",
+ "2023-01-30T20:00:00",
+ "2023-01-30T21:00:00",
+ "2023-01-30T22:00:00",
+ "2023-01-30T23:00:00",
+ "2023-01-31T00:00:00",
+ "2023-01-31T01:00:00",
+ "2023-01-31T02:00:00",
+ "2023-01-31T03:00:00",
+ "2023-01-31T04:00:00",
+ "2023-01-31T05:00:00",
+ "2023-01-31T06:00:00",
+ "2023-01-31T07:00:00",
+ "2023-01-31T08:00:00",
+ "2023-01-31T09:00:00",
+ "2023-01-31T10:00:00",
+ "2023-01-31T11:00:00",
+ "2023-01-31T12:00:00",
+ "2023-01-31T13:00:00",
+ "2023-01-31T14:00:00",
+ "2023-01-31T15:00:00",
+ "2023-01-31T16:00:00",
+ "2023-01-31T17:00:00",
+ "2023-01-31T18:00:00",
+ "2023-01-31T19:00:00",
+ "2023-01-31T20:00:00",
+ "2023-01-31T21:00:00",
+ "2023-01-31T22:00:00",
+ "2023-01-31T23:00:00",
+ "2023-02-01T00:00:00",
+ "2023-02-01T01:00:00",
+ "2023-02-01T02:00:00",
+ "2023-02-01T03:00:00",
+ "2023-02-01T04:00:00",
+ "2023-02-01T05:00:00",
+ "2023-02-01T06:00:00",
+ "2023-02-01T07:00:00",
+ "2023-02-01T08:00:00",
+ "2023-02-01T09:00:00",
+ "2023-02-01T10:00:00",
+ "2023-02-01T11:00:00",
+ "2023-02-01T12:00:00",
+ "2023-02-01T13:00:00",
+ "2023-02-01T14:00:00",
+ "2023-02-01T15:00:00",
+ "2023-02-01T16:00:00",
+ "2023-02-01T17:00:00",
+ "2023-02-01T18:00:00",
+ "2023-02-01T19:00:00",
+ "2023-02-01T20:00:00",
+ "2023-02-01T21:00:00",
+ "2023-02-01T22:00:00",
+ "2023-02-01T23:00:00",
+ "2023-02-02T00:00:00",
+ "2023-02-02T01:00:00",
+ "2023-02-02T02:00:00",
+ "2023-02-02T03:00:00",
+ "2023-02-02T04:00:00",
+ "2023-02-02T05:00:00",
+ "2023-02-02T06:00:00",
+ "2023-02-02T07:00:00",
+ "2023-02-02T08:00:00",
+ "2023-02-02T09:00:00",
+ "2023-02-02T10:00:00",
+ "2023-02-02T11:00:00",
+ "2023-02-02T12:00:00",
+ "2023-02-02T13:00:00",
+ "2023-02-02T14:00:00",
+ "2023-02-02T15:00:00",
+ "2023-02-02T16:00:00",
+ "2023-02-02T17:00:00",
+ "2023-02-02T18:00:00",
+ "2023-02-02T19:00:00",
+ "2023-02-02T20:00:00",
+ "2023-02-02T21:00:00",
+ "2023-02-02T22:00:00",
+ "2023-02-02T23:00:00",
+ "2023-02-03T00:00:00",
+ "2023-02-03T01:00:00",
+ "2023-02-03T02:00:00",
+ "2023-02-03T03:00:00",
+ "2023-02-03T04:00:00",
+ "2023-02-03T05:00:00",
+ "2023-02-03T06:00:00",
+ "2023-02-03T07:00:00",
+ "2023-02-03T08:00:00",
+ "2023-02-03T09:00:00",
+ "2023-02-03T10:00:00",
+ "2023-02-03T11:00:00",
+ "2023-02-03T12:00:00",
+ "2023-02-03T13:00:00",
+ "2023-02-03T14:00:00",
+ "2023-02-03T15:00:00",
+ "2023-02-03T16:00:00",
+ "2023-02-03T17:00:00",
+ "2023-02-03T18:00:00",
+ "2023-02-03T19:00:00",
+ "2023-02-03T20:00:00",
+ "2023-02-03T21:00:00",
+ "2023-02-03T22:00:00",
+ "2023-02-03T23:00:00",
+ "2023-02-04T00:00:00",
+ "2023-02-04T01:00:00",
+ "2023-02-04T02:00:00",
+ "2023-02-04T03:00:00",
+ "2023-02-04T04:00:00",
+ "2023-02-04T05:00:00",
+ "2023-02-04T06:00:00",
+ "2023-02-04T07:00:00",
+ "2023-02-04T08:00:00",
+ "2023-02-04T09:00:00",
+ "2023-02-04T10:00:00",
+ "2023-02-04T11:00:00",
+ "2023-02-04T12:00:00",
+ "2023-02-04T13:00:00",
+ "2023-02-04T14:00:00",
+ "2023-02-04T15:00:00",
+ "2023-02-04T16:00:00",
+ "2023-02-04T17:00:00",
+ "2023-02-04T18:00:00",
+ "2023-02-04T19:00:00",
+ "2023-02-04T20:00:00",
+ "2023-02-04T21:00:00",
+ "2023-02-04T22:00:00",
+ "2023-02-04T23:00:00",
+ "2023-02-05T00:00:00",
+ "2023-02-05T01:00:00",
+ "2023-02-05T02:00:00",
+ "2023-02-05T03:00:00",
+ "2023-02-05T04:00:00",
+ "2023-02-05T05:00:00",
+ "2023-02-05T06:00:00",
+ "2023-02-05T07:00:00",
+ "2023-02-05T08:00:00",
+ "2023-02-05T09:00:00",
+ "2023-02-05T10:00:00",
+ "2023-02-05T11:00:00",
+ "2023-02-05T12:00:00",
+ "2023-02-05T13:00:00",
+ "2023-02-05T14:00:00",
+ "2023-02-05T15:00:00",
+ "2023-02-05T16:00:00",
+ "2023-02-05T17:00:00",
+ "2023-02-05T18:00:00",
+ "2023-02-05T19:00:00",
+ "2023-02-05T20:00:00",
+ "2023-02-05T21:00:00",
+ "2023-02-05T22:00:00",
+ "2023-02-05T23:00:00",
+ "2023-02-06T00:00:00",
+ "2023-02-06T01:00:00",
+ "2023-02-06T02:00:00",
+ "2023-02-06T03:00:00",
+ "2023-02-06T04:00:00",
+ "2023-02-06T05:00:00",
+ "2023-02-06T06:00:00",
+ "2023-02-06T07:00:00",
+ "2023-02-06T08:00:00",
+ "2023-02-06T09:00:00",
+ "2023-02-06T10:00:00",
+ "2023-02-06T11:00:00",
+ "2023-02-06T12:00:00",
+ "2023-02-06T13:00:00",
+ "2023-02-06T14:00:00",
+ "2023-02-06T15:00:00",
+ "2023-02-06T16:00:00",
+ "2023-02-06T17:00:00",
+ "2023-02-06T18:00:00",
+ "2023-02-06T19:00:00",
+ "2023-02-06T20:00:00",
+ "2023-02-06T21:00:00",
+ "2023-02-06T22:00:00",
+ "2023-02-06T23:00:00",
+ "2023-02-07T00:00:00",
+ "2023-02-07T01:00:00",
+ "2023-02-07T02:00:00",
+ "2023-02-07T03:00:00",
+ "2023-02-07T04:00:00",
+ "2023-02-07T05:00:00",
+ "2023-02-07T06:00:00",
+ "2023-02-07T07:00:00",
+ "2023-02-07T08:00:00",
+ "2023-02-07T09:00:00",
+ "2023-02-07T10:00:00",
+ "2023-02-07T11:00:00",
+ "2023-02-07T12:00:00",
+ "2023-02-07T13:00:00",
+ "2023-02-07T14:00:00",
+ "2023-02-07T15:00:00",
+ "2023-02-07T16:00:00",
+ "2023-02-07T17:00:00",
+ "2023-02-07T18:00:00",
+ "2023-02-07T19:00:00",
+ "2023-02-07T20:00:00",
+ "2023-02-07T21:00:00",
+ "2023-02-07T22:00:00",
+ "2023-02-07T23:00:00",
+ "2023-02-08T00:00:00",
+ "2023-02-08T01:00:00",
+ "2023-02-08T02:00:00",
+ "2023-02-08T03:00:00",
+ "2023-02-08T04:00:00",
+ "2023-02-08T05:00:00",
+ "2023-02-08T06:00:00",
+ "2023-02-08T07:00:00",
+ "2023-02-08T08:00:00",
+ "2023-02-08T09:00:00",
+ "2023-02-08T10:00:00",
+ "2023-02-08T11:00:00",
+ "2023-02-08T12:00:00",
+ "2023-02-08T13:00:00",
+ "2023-02-08T14:00:00",
+ "2023-02-08T15:00:00",
+ "2023-02-08T16:00:00",
+ "2023-02-08T17:00:00",
+ "2023-02-08T18:00:00",
+ "2023-02-08T19:00:00",
+ "2023-02-08T20:00:00",
+ "2023-02-08T21:00:00",
+ "2023-02-08T22:00:00",
+ "2023-02-08T23:00:00",
+ "2023-02-09T00:00:00",
+ "2023-02-09T01:00:00",
+ "2023-02-09T02:00:00",
+ "2023-02-09T03:00:00",
+ "2023-02-09T04:00:00",
+ "2023-02-09T05:00:00",
+ "2023-02-09T06:00:00",
+ "2023-02-09T07:00:00",
+ "2023-02-09T08:00:00",
+ "2023-02-09T09:00:00",
+ "2023-02-09T10:00:00",
+ "2023-02-09T11:00:00",
+ "2023-02-09T12:00:00",
+ "2023-02-09T13:00:00",
+ "2023-02-09T14:00:00",
+ "2023-02-09T15:00:00",
+ "2023-02-09T16:00:00",
+ "2023-02-09T17:00:00",
+ "2023-02-09T18:00:00",
+ "2023-02-09T19:00:00",
+ "2023-02-09T20:00:00",
+ "2023-02-09T21:00:00",
+ "2023-02-09T22:00:00",
+ "2023-02-09T23:00:00",
+ "2023-02-10T00:00:00",
+ "2023-02-10T01:00:00",
+ "2023-02-10T02:00:00",
+ "2023-02-10T03:00:00",
+ "2023-02-10T04:00:00",
+ "2023-02-10T05:00:00",
+ "2023-02-10T06:00:00",
+ "2023-02-10T07:00:00",
+ "2023-02-10T08:00:00",
+ "2023-02-10T09:00:00",
+ "2023-02-10T10:00:00",
+ "2023-02-10T11:00:00",
+ "2023-02-10T12:00:00",
+ "2023-02-10T13:00:00",
+ "2023-02-10T14:00:00",
+ "2023-02-10T15:00:00",
+ "2023-02-10T16:00:00",
+ "2023-02-10T17:00:00",
+ "2023-02-10T18:00:00",
+ "2023-02-10T19:00:00",
+ "2023-02-10T20:00:00",
+ "2023-02-10T21:00:00",
+ "2023-02-10T22:00:00",
+ "2023-02-10T23:00:00",
+ "2023-02-11T00:00:00",
+ "2023-02-11T01:00:00",
+ "2023-02-11T02:00:00",
+ "2023-02-11T03:00:00",
+ "2023-02-11T04:00:00",
+ "2023-02-11T05:00:00",
+ "2023-02-11T06:00:00",
+ "2023-02-11T07:00:00",
+ "2023-02-11T08:00:00",
+ "2023-02-11T09:00:00",
+ "2023-02-11T10:00:00",
+ "2023-02-11T11:00:00",
+ "2023-02-11T12:00:00",
+ "2023-02-11T13:00:00",
+ "2023-02-11T14:00:00",
+ "2023-02-11T15:00:00"
+ ],
+ "xaxis": "x",
+ "y": [
+ -0.6996777182930012,
+ -0.4623168414563844,
+ -0.02981518496008706,
+ 0.32346838885278695,
+ -0.34911165680679496,
+ -0.1967426927108748,
+ -0.44759661001386597,
+ -0.3175859008409847,
+ -0.5247763576596676,
+ 0.267617605780284,
+ -0.6586970328171629,
+ -0.09879980234619984,
+ -1.0376304363126327,
+ 0.3445939090447838,
+ -0.8679819015826247,
+ -0.0989553917313239,
+ 0.32570900180722406,
+ 0.24194291702716078,
+ 0.1601736540971601,
+ -0.21208297320095815,
+ -0.26141774401774986,
+ 0.28685000196928956,
+ 0.0121772961304914,
+ -1.0711351793059318,
+ -0.8637715850503557,
+ -0.21816183483701607,
+ -0.01900173908410019,
+ -0.060015663359130667,
+ -0.3067589863652083,
+ 0.5113962825992027,
+ 0.12868826871167255,
+ 0.8342920369387947,
+ -0.19961156130263963,
+ -0.3235979698513705,
+ 0.241593231149687,
+ -0.7869933816450164,
+ 0.6128828315011706,
+ 0.73218744010491,
+ -0.11222590927998599,
+ -0.5235491513060772,
+ -0.8419638457289342,
+ 0.22944213143447,
+ -0.5393404167156478,
+ 0.019254234750353608,
+ 0.0863136499704098,
+ -0.4418299687433362,
+ -0.3261614392067098,
+ 0.7881960784921247,
+ -0.7382701748629479,
+ -0.6900456770737258,
+ 0.3127813507547647,
+ -0.19790176671870452,
+ -0.2470150931413694,
+ -0.13033688291195356,
+ 0.2751525769227101,
+ 0.3358116839690257,
+ 0.012777035495722622,
+ -0.5863645096296823,
+ -0.2718000772972161,
+ 0.18530716604305297,
+ -0.38584935532417236,
+ 1.4242713103150377,
+ -0.5743828501860517,
+ 0.8698568893890498,
+ 0.1812204707015661,
+ 0.5598349473130719,
+ 0.6473407378604529,
+ -0.5804133936892599,
+ 0.23385060065594565,
+ -0.1732519408653579,
+ 0.023460289439591997,
+ -0.23852041361156084,
+ -0.038410945530127694,
+ 0.6414961120942848,
+ -0.4981334097235699,
+ 0.24687829158065622,
+ 0.7782909493298755,
+ 0.21405758048295626,
+ -0.7503798953171554,
+ -0.4251108710567464,
+ 0.17432606720392962,
+ 0.17462885215921442,
+ 0.16081752560869145,
+ -1.0383739917804204,
+ -0.19096772611577667,
+ -0.21502082359553482,
+ -0.5151417270159211,
+ -0.11939457951325672,
+ 0.12952107291035156,
+ 0.09817492454248922,
+ 0.03580062970703202,
+ 0.0186111182549209,
+ -0.3638147718184899,
+ -0.025972942903649765,
+ -0.3663200386077896,
+ 0.040358290054291146,
+ -0.03931759515804534,
+ 0.9991003422660538,
+ -0.45816383735124067,
+ -0.17324423794899635,
+ -0.4990050549298261,
+ 1.4481276890968446,
+ -1.0441873523903638,
+ 0.06979481407758688,
+ -0.5540914083687581,
+ 0.5199529635627654,
+ -0.3063869525312848,
+ 0.5267077815868281,
+ 0.3118844803479026,
+ -0.9570156769333931,
+ 0.09534120038167337,
+ -0.10871643658986141,
+ -0.43503386534437716,
+ -0.24784094398630252,
+ -0.07520945257178824,
+ -0.18248050123311277,
+ -1.2017077926191373,
+ 0.028809398516792706,
+ -0.10054952335748357,
+ -0.5253271980038061,
+ -0.5527629664789919,
+ -0.5935151527801901,
+ -0.31936511101459253,
+ 0.5715024563652418,
+ -0.8167157661505478,
+ 0.573172696509344,
+ -0.15131773261951662,
+ 0.37713792500967896,
+ 0.03206917329649617,
+ -0.16438120515174015,
+ -0.16067860772513654,
+ -0.21096037711764226,
+ -0.8068556345293235,
+ -0.22676715075698994,
+ 0.12207831764532434,
+ -0.4820435841441788,
+ -0.5947352444623203,
+ 0.6138039075684962,
+ -0.2987000349249289,
+ -0.35058637115544916,
+ 0.14878175167999586,
+ -0.68785340665581,
+ 0.07502779351626332,
+ -0.06278822673577111,
+ 0.0865359121419349,
+ -0.007789523790733721,
+ 0.5481375434476009,
+ 0.7200254412971472,
+ -0.7972525316124859,
+ 0.4234806741591639,
+ 0.49569617472815364,
+ 1.0766950568018574,
+ 0.3194808738447511,
+ 0.6615448967037492,
+ -0.8210075800681844,
+ -0.5049085446713171,
+ 0.344075172588862,
+ -1.1262179026721544,
+ -0.49088274349579714,
+ 0.16241569175431114,
+ 1.2497028574367866,
+ -1.1454712862953706,
+ 0.694786233381798,
+ 0.8226993734784459,
+ -0.5112852160048202,
+ -1.2198762031696364,
+ -0.6921364092552589,
+ -0.2819545600261799,
+ -0.29737717083264303,
+ -0.4267077793901538,
+ -0.37946429489338257,
+ -0.1405957119846879,
+ -0.05210055197593799,
+ 0.0312965639497611,
+ 0.3769822944333381,
+ 0.14033753843338692,
+ 0.8464784070976927,
+ 0.049169813397374806,
+ 0.49429555357545873,
+ 0.5517946586078857,
+ -0.08994707557673931,
+ -0.6960011431722997,
+ -0.4591583030011565,
+ 0.7852503018115885,
+ 0.4948140682851688,
+ -0.47038559399410795,
+ 0.4912436967691548,
+ 0.11231657499851233,
+ -0.27502604951227594,
+ 0.48417222743181754,
+ -0.052687753072979904,
+ 0.6670127474591021,
+ 0.30068382197560684,
+ -0.15989096707126849,
+ 0.7964968667658346,
+ -0.22023736898019952,
+ 0.009818899463340608,
+ -0.27624497720857377,
+ -0.11195706703233066,
+ -0.6820702149869221,
+ -0.06261225132395354,
+ 0.21470277056262654,
+ -0.061148751516141964,
+ -0.2716490145181938,
+ -0.024430035162852137,
+ -0.02029584560194119,
+ 0.35099584390337757,
+ 0.3314504587754741,
+ 0.7013026358998468,
+ -0.8747883715934694,
+ 0.6219316176956425,
+ 0.34645259889795366,
+ 0.35920363278459866,
+ -0.44746218847222075,
+ 0.1474748391460139,
+ -0.6238710363368671,
+ 0.33674531212193426,
+ -0.13949708111190096,
+ 0.41767352662987867,
+ -1.0725745638866941,
+ 0.5937992095147564,
+ -0.1549103551135138,
+ -0.31688844046604925,
+ -0.20689954872574912,
+ 0.09264382943885413,
+ 0.06491034986671318,
+ -0.02190573598955481,
+ 0.07350100081424432,
+ -0.48193955839745484,
+ -1.1052615007956756,
+ 0.2787458925039168,
+ 0.6849014897895389,
+ 0.044141024175627375,
+ -1.289854668827159,
+ 0.4018372839848654,
+ -0.819558402722034,
+ -0.8388504070382203,
+ 0.27679412085399735,
+ -0.2844915395926377,
+ -0.8141983115642688,
+ 0.18956387049374357,
+ 0.1017901800511809,
+ 0.2908404569743219,
+ 0.5073783653464334,
+ 0.32463877253300355,
+ 0.6119701333811283,
+ -0.017041734129613045,
+ 0.3849866155293209,
+ -0.11689295589537396,
+ 0.7779478231018137,
+ -0.16544011610722853,
+ -0.4167644808044624,
+ 0.9968678212857278,
+ -0.1870282849237861,
+ -0.6138344962366461,
+ 0.6048205093456027,
+ -0.8362861934188515,
+ -0.2095095046830226,
+ 0.35250592787920443,
+ 0.02788453882885311,
+ -0.2791634562608612,
+ -0.038002695706205736,
+ -0.2693779962231848,
+ 0.4603367965396832,
+ -0.084680412018039,
+ 0.70685724845249,
+ 0.055613030674350306,
+ 0.4519538207323949,
+ 0.3677649712948833,
+ -0.6180465876052187,
+ -0.5456550602971344,
+ -0.30456906045358845,
+ 0.5461563823362896,
+ 0.15820422484740096,
+ -0.6065488499895917,
+ -0.0708584568199524,
+ -1.1596647699908469,
+ -0.19665891969718594,
+ -0.09602455824501577,
+ 0.1545582321012507,
+ -0.06677045239114121,
+ 0.07623491819027195,
+ -0.3540543383442951,
+ -0.47835115839729203,
+ 0.3929947302539749,
+ 0.6656164767788888,
+ 0.9181026865516483,
+ -0.2539956634562719,
+ 0.5516833030869368,
+ 1.0764452964762414,
+ -0.19428930226548205,
+ -1.2464997587163953,
+ 0.003035455769946682,
+ -0.41924538722582105,
+ -0.04091467927378256,
+ 0.04944482659557137,
+ -0.4595382414938842,
+ 0.1451372720943257,
+ -0.1336961570359514,
+ -0.1608489030980068,
+ 0.33404522682152427,
+ -0.4960211747682614,
+ 0.08747987834770432,
+ 0.37787257974642235,
+ -0.26825492178520177,
+ 0.44923399089551863,
+ -0.014090578684564203,
+ 0.004559498322101785,
+ -0.542947782915789,
+ -0.2373491164399764,
+ 0.012513479372571967,
+ -0.4088831496001435,
+ -0.6951037745086567,
+ -0.2789051531759311,
+ -0.005176309921690381,
+ 0.6559181161750798,
+ 0.5325568315376863,
+ 0.15261235217733382,
+ 0.3047561010796416,
+ 0.09348565149272303,
+ -0.028324962448553585,
+ -0.26484637717836534,
+ 0.03524938902954555,
+ -0.24325082191310088,
+ -0.032237207405060087,
+ 0.9877332831769357,
+ 0.46966769690937715,
+ 0.07204377786080773,
+ 0.6048473714205538,
+ -0.29996436499810225,
+ -0.7653754161718487,
+ -0.6093809258486583,
+ 0.10672143546510399,
+ -0.745363068424976,
+ -0.0743337286010558,
+ 0.16854298555901964,
+ 0.3067013317704699,
+ 0.1512348432440641,
+ 0.19408840927061438,
+ -0.08520811118774385,
+ -0.08028699052493238,
+ -0.001523010076707236,
+ -0.21846908487317493,
+ -0.5953231373931707,
+ -0.47477706772066186,
+ 0.7424489842249518,
+ 1.2769605674509776,
+ -0.46715995561963686,
+ 0.6834393492077107,
+ 0.11238270094634173,
+ 0.5850565130296799,
+ 0.9009902187900098,
+ -0.27073136410239396,
+ -0.3795775801513234,
+ 0.2882552003633597,
+ 1.295521146072455,
+ 0.27312222412624143,
+ -0.19590200270127323,
+ 0.7394557843870644,
+ -0.09167995988957789,
+ 0.007654924586497774,
+ -0.28964574980054425,
+ -0.0597901842070766,
+ 0.4865344704407778,
+ -0.5982857508322457,
+ 0.07926478651348501,
+ 0.013652269754965918,
+ 0.4666339795365981,
+ 0.22164112559575522,
+ 0.4424013570134504,
+ 0.08647302996171147,
+ -0.8558542400711717,
+ 0.6859505714656782,
+ 0.8067806989383706,
+ -0.735585163746804,
+ 0.10466183857593303,
+ 0.3345363693299583,
+ -0.5199523436980382,
+ 0.30280776986843216,
+ -0.9130048567734681,
+ -0.33896293566963465,
+ 0.24395570407285128,
+ -1.0786541066327517,
+ 0.30285746150166926,
+ -0.37104768600465343,
+ -0.14964629020324594,
+ -0.650870644699399,
+ -0.7807555983634265,
+ -0.016002074532883326,
+ 0.3767089351730917,
+ -0.2299860714695583,
+ 0.3388576848760531,
+ -1.0066936237633115,
+ -0.06826766554136876,
+ 0.18266077565605432,
+ -0.09234015293245412,
+ 0.6735631447648482,
+ 0.48580701925532577,
+ -0.6002069539722127,
+ 0.32844713948569787,
+ 0.5234554913409699,
+ -0.2683263762636432,
+ -0.5928520773314985,
+ -0.35947665533253337,
+ -0.49802384290290824,
+ 0.3783975442847304,
+ 0.7109053333709219,
+ -0.7506668259777434,
+ 0.16133991942106785,
+ 0.1254165082275237,
+ -0.664097070924529,
+ -0.27811500470033,
+ -0.22794388604080362,
+ -1.082501172450542,
+ 0.3217591151900715,
+ -0.4639200640406185,
+ -0.028506562448542216,
+ -0.13429613943162844,
+ -0.7642342132062658,
+ -0.2539178781448118,
+ -0.2691480395248165,
+ -0.5362536686549011,
+ 0.1824763647714427,
+ 0.4196048336695032,
+ 0.5224045970105168,
+ 0.9831782946880009,
+ -1.028103564970161,
+ 0.5516041828608416,
+ 0.110626811792886,
+ 0.13840664994446028,
+ -0.15370334890455029,
+ -0.4078686062696484,
+ -0.4302367441798727,
+ 0.2915387192844693,
+ 0.08356085689320575,
+ -0.14128997524414988,
+ 0.12434556309177358,
+ -0.8036727880099963,
+ -0.24548747581912567,
+ -0.36743889302490873,
+ -0.33144063433370635,
+ -0.5867369287426625,
+ -0.09051077935185337,
+ 0.6484159739779232,
+ -0.19984397587632063,
+ 0.3256784468959145,
+ 0.2643083408748784,
+ -0.29318200937754657,
+ -0.6191415357168178,
+ -0.01063578836803103,
+ -0.1544165062994819,
+ -0.851107472317619,
+ -0.12037658974428411,
+ -1.3008415570901974,
+ -0.28275482281577213,
+ 0.880381379577909,
+ -0.37667081055226626,
+ -0.19057919244138888,
+ -0.6448763770413728,
+ -0.33659067563497924,
+ 0.0692279919918869,
+ 0.6121491181446829,
+ 0.10451162864301256,
+ 0.42526022710465017,
+ 0.29026172490236135,
+ -0.29428920221030475,
+ -0.8349522521757031,
+ -0.19733576491149055,
+ 0.5979415310175922,
+ -0.22230133411007036,
+ -0.5983157433228256,
+ 0.30489145215969105,
+ 0.06700858333645865,
+ -0.0073440973645985674,
+ 0.39244915654112,
+ -0.3241402169219295,
+ 0.06047407430389079,
+ -0.2097662219535139,
+ 0.44374608890105005,
+ 0.21872915016170522,
+ -0.3611906789138857,
+ 0.18641657604588335,
+ -0.8634819256167026,
+ 0.19981809280730123,
+ -0.11234236287594301,
+ -0.4662954159365449,
+ 0.7091828664665156,
+ 0.8804044059903879,
+ 0.7628281572850474,
+ -0.631292051713591,
+ 0.2759290729462235,
+ -1.2790996428341264,
+ 0.28212379932869436,
+ -0.09227565159851858,
+ -0.7710549762839377,
+ -1.0030464440795615,
+ -1.030751788318199,
+ -0.6041831152965712,
+ -0.5120312629057311,
+ -0.29626347460059144,
+ -0.38918053808331887,
+ 0.2755928581642667,
+ 0.40909944171115376,
+ 0.0016872287054760515,
+ 0.0850923112624642,
+ 0.22661402466363767,
+ -0.34819372372835766,
+ -0.47765260428525536,
+ -0.044203443145923726,
+ -0.7387650405276309,
+ 0.5708445570667524,
+ 0.09682972963985914,
+ 0.3584111603014024,
+ 0.9332683085365299,
+ 0.04134034292134969,
+ 0.06087375419164176,
+ -0.7567248716210655,
+ -0.31540584227738866,
+ 0.5120934121646025,
+ -0.9270462831670941,
+ -0.6105168477626766,
+ -0.2910488517343079,
+ 0.113242049424916,
+ 0.4797196183617398,
+ 0.1861033880355265,
+ -0.5443743098520932,
+ -0.9422931529673044,
+ -0.7716217641360945,
+ 0.244424710893137,
+ 0.5598087166445058,
+ -0.07044312345560197,
+ 0.8842196827814259,
+ -0.16158385709239076,
+ 0.07380129314933415,
+ 0.2330182509341212,
+ 0.7973515336333977,
+ -0.2568000532848582,
+ 0.26635041983095564,
+ 0.584958417855144,
+ 1.4361311066408247,
+ 0.013757452525318126,
+ -0.886125798334872,
+ -0.830629607273935,
+ 0.22854812829313592,
+ 0.3011060301808901,
+ -0.23438712803751183,
+ 0.4991927195941458,
+ -0.15089594990973298,
+ -0.38304013919234514,
+ -0.6134666119421538,
+ 0.050077038239976335,
+ 0.10183687508848294,
+ 0.4389912933782805,
+ 0.41344017701993,
+ 0.1132394459507634,
+ -0.18368275340808904,
+ -0.4567923131166247,
+ 0.40158947534017253,
+ -0.7463442844797609,
+ 0.13556180052128441,
+ 0.010683647174218103,
+ 0.3736058395739117,
+ 1.2121201301364708,
+ -0.44202269818052486,
+ -0.3684219485462167,
+ 0.14066377855910672,
+ -0.03349535861243602,
+ -0.2579696088520498,
+ 0.7812729284432711,
+ 0.26452633867314745,
+ -0.39713233981091356,
+ 0.6271447115846247,
+ -0.14677896608331464,
+ 0.6782909023117026,
+ -0.23321499121676315,
+ 0.01782074114874188,
+ 0.8075659079527546,
+ -0.5823696772285858,
+ 0.36729578839902444,
+ 0.4051262185071905,
+ -0.10028459861547143,
+ -0.5743186747143576,
+ 0.5079109094891985,
+ -0.030839924923985906,
+ -0.21440825016528647,
+ -0.34655280363157204,
+ -0.08822077763861258,
+ 0.18351391954166107,
+ 0.41379511032435984,
+ -0.043071941523187274,
+ 0.5360695059928035,
+ 1.4606752417473037,
+ -0.2182799020788339,
+ -0.45196742054309763,
+ 1.1814662177709192,
+ 0.5048653523549688,
+ -0.3095771305025989,
+ -1.0287477348558494,
+ -0.010396853837703945,
+ 0.3640014706145672,
+ 0.09144822055242008,
+ -0.6874382095740924,
+ 0.32298208956226765,
+ 0.3995960033251268,
+ 0.2413717610910162,
+ 0.4766643041293561,
+ -0.06133515799739775,
+ -0.8123392292347803,
+ -0.16153963655801462,
+ 0.12617675106314374,
+ 0.14590563445777205,
+ 0.7815954043483285,
+ -0.4415548885735795,
+ 0.038918598506401114,
+ 0.09023995679531271,
+ -1.5965537839224304,
+ -0.14937645418284312,
+ 0.37589552504759216,
+ 0.21317879810277165,
+ -0.5742228545983774,
+ -0.056635205268882216,
+ 0.7191389891586834,
+ -0.4596144672876017,
+ 0.334072042769497,
+ -0.9366488881087729,
+ -0.5400240328573243,
+ 0.22366094782937562,
+ -0.6405081808675565,
+ -0.03392775526370165,
+ -0.42638683756110973,
+ -0.24236640864723746,
+ 0.4231783274954368,
+ 0.321774916158731,
+ -0.5149804087905806,
+ 0.1673876660532705,
+ 0.20182423162099838,
+ 0.4775612896746765,
+ -0.21179953279673053,
+ -1.0312624596215725,
+ 0.5337664571271366,
+ -0.012109728336379022,
+ -0.7061102777077144,
+ 0.03982069562285759,
+ -0.226185898124867,
+ 0.5311967640734399,
+ -0.2141535486038243,
+ 0.09357213250227447,
+ -0.49286499783993143,
+ -0.5936930257823756,
+ -1.2947818210093072,
+ -0.28981658660678766,
+ -0.16289815829108312,
+ -0.09719215078866801,
+ 0.17658314640534423,
+ -0.1692419217308454,
+ 0.14770070506951472,
+ -0.08423048813480716,
+ -0.6587987678039797,
+ 0.5032712826398206,
+ -0.5699392805645227,
+ -0.6585575336699326,
+ 0.05903426349553936,
+ 1.0609274495042973,
+ 0.30391099354721623,
+ -0.6484972732805546,
+ 0.011434031149441082,
+ 0.4996511161474554,
+ 0.25238746061410877,
+ -0.42031001325227657,
+ -0.2733667841006897,
+ 0.11946604958484719,
+ 0.18341220590734375,
+ 0.19587907452191095,
+ 0.46120509224925127,
+ -0.8076878447347209,
+ 0.16116023460566992,
+ -0.6085792604127482,
+ -0.7606580259612259,
+ -0.49915544907398024,
+ 0.21581015635902423,
+ -0.20186504516830484,
+ 0.012097803195458057,
+ 0.4518509303650641,
+ -0.1621796408608016,
+ 0.5895198955799014,
+ -0.593839694230782,
+ 0.23230864864919654,
+ -0.10057982793641967,
+ -0.141643935773071,
+ 0.1294524868520387,
+ -0.29334690073763736,
+ 0.23745182831126233,
+ -0.4356486487286221,
+ 0.6729898401233743,
+ -0.06318978977320588,
+ -0.9694644995291425,
+ 0.5001656623027874,
+ 0.33887248526242575,
+ -0.25695392482945745,
+ -0.08979089096979898,
+ -0.17531504963677957,
+ -0.2445935650738318,
+ -0.31736073428088496,
+ -0.5548499209781116,
+ -0.20490932846425625,
+ 0.12062882730927127,
+ -0.33628685060136565,
+ -0.949940967447608,
+ 0.06631687319128687,
+ 0.4872646523353208,
+ -0.5535403346434864,
+ 0.06019058197679916,
+ 1.086334773007018,
+ -0.42371083857521086,
+ 0.26766409297696137,
+ 0.045266641152080345,
+ -0.16599016528450727,
+ -0.09524983988953328,
+ -0.3547259085695198,
+ 0.21774318528492165,
+ -0.25655289908804146,
+ 0.12977333879195863,
+ -0.3694052404437515,
+ -0.3076837420065268,
+ 0.46771935102229767,
+ -0.5429910580875161,
+ 0.267981722557024,
+ -0.4040288991405725,
+ -0.1836436567006703,
+ -0.9190918383975613,
+ 0.11173299118592606,
+ 0.17465839805909877,
+ 0.009709802943866253,
+ 0.15158989141713775,
+ -0.399970950971025,
+ 0.808155304218294,
+ 0.526841209573177,
+ 0.5339014607895964,
+ -0.47515379598678775,
+ -0.8553066862909624,
+ 0.05222460926873573,
+ 0.08441086159500533,
+ -0.035026081556590705,
+ -0.5809391513040953,
+ 0.46367656709528704,
+ -0.11918449136739256,
+ -0.4875988148912149,
+ -0.2505470849699226,
+ -0.0947908082993717,
+ -0.5005230462835706,
+ 1.3516161464996186,
+ -0.3389376597654538,
+ 0.3270378415637119,
+ 0.9153164484282286,
+ -0.25560129976249035,
+ -0.6868292725814786,
+ 0.06872425731384602,
+ -0.4764372736014695,
+ -0.8061391289943227,
+ -0.6574572267920238,
+ -0.8199822646856965,
+ -0.371063745535946,
+ -0.03771681945079619,
+ 0.8009829059485842,
+ 0.12303124406497412,
+ 0.42162329765809586,
+ -1.0854713587489067,
+ 0.08794290621616829,
+ -0.06160240339224282,
+ -0.27574268802023383,
+ -0.021801223186226792,
+ -0.8475255202153765,
+ 0.31132468086722587,
+ -0.0973037276186215,
+ 0.3712352928490241,
+ 0.6600112556103529,
+ 0.3058845454526427,
+ 0.018518398524206003,
+ 0.21465111225862998,
+ 0.34621048993692805,
+ 0.7031587318359169,
+ 0.04155278631434739,
+ 0.7523601870155011,
+ -0.38002798184480135,
+ -0.04121987646725156,
+ 0.7287757497324652,
+ 0.15460453852493172,
+ 0.3760782027952916,
+ -0.15958725520959027,
+ -0.6702252230115723,
+ 0.9375862348228723,
+ -0.05751303957370868,
+ 0.08006639778332025,
+ -0.33567003822523284,
+ -0.10659831411884457,
+ 0.3759846658694095,
+ 0.1595269678333091,
+ 0.3980129284017444,
+ -0.5380035692992993,
+ -0.01065582433597112,
+ -0.9505953428765035,
+ 0.03033040690731037,
+ 0.3542033834552314,
+ 0.7568571963064136,
+ 0.9015698381279725,
+ 0.7920679715027449,
+ -0.1335633255057418,
+ -0.2543625116149669,
+ 0.7905953510160666,
+ -0.44751915703805767,
+ 0.24153052584171975,
+ -0.0733965059927747,
+ -0.8061103141277122,
+ -0.44841965793276595,
+ 0.13426532395291613,
+ 0.44559611270764365,
+ 1.0759077006646525,
+ 0.35957665962121,
+ 0.10556511941384716,
+ 0.4935897635755919,
+ 0.06562848354615236,
+ -0.03842594147938394,
+ 0.1124279909040391,
+ 0.32500129041172987,
+ -0.08432733598336378,
+ -0.22097032478470435,
+ 0.545199538721423,
+ -0.705466189873135,
+ 0.04929406614213089,
+ -0.0094248114724238,
+ -0.3541072116282786,
+ -0.11660806563175083,
+ -0.47656831695662255,
+ -0.14356208260091208,
+ 0.30621868732021895,
+ -0.18075176260305081,
+ 0.571863103660331,
+ -0.054279852888261565,
+ 0.01661499532223032,
+ 0.1040584286362698,
+ 0.06426875571946533,
+ 0.9409245227488195,
+ 0.27436245387048075,
+ -0.04642245057055727,
+ -0.07992819599870016,
+ 0.5138375704629791,
+ -0.6328539204323502,
+ 0.43308742410725065,
+ -0.4847286002633684,
+ -0.21359718093584246,
+ 0.3231136549219015,
+ -0.887655446304756,
+ 0.59681841587824,
+ -0.45957708680500087,
+ -0.5002911590214891,
+ 0.33531010453832244,
+ -0.6962326500321644,
+ 0.1250232572994765,
+ -0.1443468146399285,
+ -0.13016091938561036,
+ 0.06715437073527386,
+ -0.40540413657989105,
+ -0.3967443602761067,
+ 0.8742659866190903,
+ -0.6521701214390763,
+ 0.8312459940178372,
+ -0.5162731021708287,
+ -0.5633525684137917,
+ 0.5454832151075991,
+ 0.20540714397729243,
+ 0.5528523342429679,
+ 0.10746051514436766,
+ 0.15401714209287065,
+ -0.3898302661346699,
+ -0.6551543730598043,
+ -0.697841905394978,
+ 0.28108401328915106,
+ 0.10461093687226386,
+ 0.8417190961104751,
+ 0.4029350332480943,
+ -0.48242581654872874,
+ -0.8077914117741158,
+ 0.617174435939961,
+ 0.2962321295764472,
+ 0.013202878479463553,
+ -0.14008057940980345,
+ 0.4048017599608231,
+ -0.21203052223204483,
+ 0.23691967353545806,
+ 0.007226135439139636,
+ -0.2731421240018499,
+ -0.003211134905468871,
+ 0.21819294526328425,
+ 0.05480490196291532,
+ 0.044181479602667606,
+ 0.18500551494106388,
+ 0.12939803133355118,
+ -0.7993235852523586,
+ -0.28045972397061947,
+ 0.1477401590145802,
+ -0.3484772022553678,
+ 0.16690974487800497,
+ -0.5865623187933207,
+ -0.18482109609904684,
+ 0.0536510720021145,
+ -0.22385846290513878,
+ 0.7854380760342496,
+ 0.5633837344549026,
+ 0.5969625031995277,
+ -0.07147154738185346,
+ -0.8662574997425458,
+ -1.1156500730963161,
+ -0.3190255507203785,
+ -0.25042223747222847,
+ 0.9005288670763695,
+ 0.2713368998670109,
+ 0.39389187595411945,
+ 0.310423799125558,
+ 0.08407190929239483,
+ 0.23604528884856368,
+ 0.9896499051878939,
+ -0.3739551280587669,
+ 0.5363715128699033,
+ -0.1196234320555748,
+ -1.0370413348749867,
+ 0.4596922957932117,
+ 1.2651437613731649,
+ 0.14300211094005544,
+ -0.5504798174992853,
+ -0.9791737271102969,
+ 0.6147747972262085,
+ -0.24834961161826108,
+ 0.23265522839002672,
+ 0.05297417715206798,
+ -1.3221716735085174,
+ 0.7514851641975766,
+ -0.12686983074728675,
+ -0.23384658588271656,
+ -0.5428931624696736,
+ -0.04899157673544774,
+ -0.15402526975205122,
+ 0.19582428371089555,
+ -0.1345634706225537,
+ 0.17159613774870527,
+ -0.31078594492802547,
+ 0.184805168021817,
+ -0.1885501969510932,
+ 0.014631406842489203,
+ -0.5630251253860841,
+ 0.02569686179424313,
+ 0.8865162341034407,
+ -0.6309607503569958,
+ 0.4528661504313094,
+ 0.32688316932440986,
+ 0.29783064702174605,
+ -0.6872190465854088,
+ 1.0678371069893478,
+ -1.5688742668299969,
+ -0.5280284045330259,
+ -0.11161945706457982,
+ 0.027447000308143177,
+ -0.1427770374288284,
+ -0.26056121418966915,
+ -0.3226077929750285,
+ -0.27780223300172424,
+ -0.044790340627624436,
+ 0.09866921015366314,
+ 0.07563664182675578,
+ 0.09745414017634052,
+ -0.5668850484335324,
+ -0.29677836114043094,
+ 1.4701943173321403,
+ -0.32795038826488043,
+ -0.09736809735938745,
+ 0.009354378222948712,
+ 0.19425922654444294,
+ -0.5620563599930067,
+ -0.47376323106142904,
+ 0.38643883391180456,
+ -0.20352614356226761,
+ 0.485828367270643,
+ 0.6898090823944651,
+ 0.3133586122949825,
+ -0.4311967361913794,
+ -0.47656252268804333,
+ -0.2565427100486466,
+ -0.3625478934239985,
+ -0.25808914355747925,
+ 0.3207407976114761,
+ -0.21596127233697032,
+ -0.40020476261384114,
+ -0.377145664906787,
+ -0.5944566857373215,
+ -0.35415192360053194,
+ -0.1757241037707915,
+ -0.5350751191582137,
+ 0.013260629624530118,
+ 0.4409373256138589,
+ 0.08153348197188204,
+ 0.37245132240322454
+ ],
+ "yaxis": "y"
},
- "id": "JQb9wuBJnFOc",
- "outputId": "ac13c900-127f-4648-9a20-4644311c3392"
- },
- "outputs": [
{
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Downloading: 100%|██████████| 36.4M/36.4M [00:00<00:00, 301MB/s]\n",
- "File downloaded and decompressed successfully.\n"
- ]
+ "line": {
+ "color": "rgba(255, 255, 255, 0.5)"
+ },
+ "mode": "lines",
+ "name": "Difference Trend",
+ "type": "scatter",
+ "x": [
+ "2023-01-01T00:00:00",
+ "2023-01-01T01:00:00",
+ "2023-01-01T02:00:00",
+ "2023-01-01T03:00:00",
+ "2023-01-01T04:00:00",
+ "2023-01-01T05:00:00",
+ "2023-01-01T06:00:00",
+ "2023-01-01T07:00:00",
+ "2023-01-01T08:00:00",
+ "2023-01-01T09:00:00",
+ "2023-01-01T10:00:00",
+ "2023-01-01T11:00:00",
+ "2023-01-01T12:00:00",
+ "2023-01-01T13:00:00",
+ "2023-01-01T14:00:00",
+ "2023-01-01T15:00:00",
+ "2023-01-01T16:00:00",
+ "2023-01-01T17:00:00",
+ "2023-01-01T18:00:00",
+ "2023-01-01T19:00:00",
+ "2023-01-01T20:00:00",
+ "2023-01-01T21:00:00",
+ "2023-01-01T22:00:00",
+ "2023-01-01T23:00:00",
+ "2023-01-02T00:00:00",
+ "2023-01-02T01:00:00",
+ "2023-01-02T02:00:00",
+ "2023-01-02T03:00:00",
+ "2023-01-02T04:00:00",
+ "2023-01-02T05:00:00",
+ "2023-01-02T06:00:00",
+ "2023-01-02T07:00:00",
+ "2023-01-02T08:00:00",
+ "2023-01-02T09:00:00",
+ "2023-01-02T10:00:00",
+ "2023-01-02T11:00:00",
+ "2023-01-02T12:00:00",
+ "2023-01-02T13:00:00",
+ "2023-01-02T14:00:00",
+ "2023-01-02T15:00:00",
+ "2023-01-02T16:00:00",
+ "2023-01-02T17:00:00",
+ "2023-01-02T18:00:00",
+ "2023-01-02T19:00:00",
+ "2023-01-02T20:00:00",
+ "2023-01-02T21:00:00",
+ "2023-01-02T22:00:00",
+ "2023-01-02T23:00:00",
+ "2023-01-03T00:00:00",
+ "2023-01-03T01:00:00",
+ "2023-01-03T02:00:00",
+ "2023-01-03T03:00:00",
+ "2023-01-03T04:00:00",
+ "2023-01-03T05:00:00",
+ "2023-01-03T06:00:00",
+ "2023-01-03T07:00:00",
+ "2023-01-03T08:00:00",
+ "2023-01-03T09:00:00",
+ "2023-01-03T10:00:00",
+ "2023-01-03T11:00:00",
+ "2023-01-03T12:00:00",
+ "2023-01-03T13:00:00",
+ "2023-01-03T14:00:00",
+ "2023-01-03T15:00:00",
+ "2023-01-03T16:00:00",
+ "2023-01-03T17:00:00",
+ "2023-01-03T18:00:00",
+ "2023-01-03T19:00:00",
+ "2023-01-03T20:00:00",
+ "2023-01-03T21:00:00",
+ "2023-01-03T22:00:00",
+ "2023-01-03T23:00:00",
+ "2023-01-04T00:00:00",
+ "2023-01-04T01:00:00",
+ "2023-01-04T02:00:00",
+ "2023-01-04T03:00:00",
+ "2023-01-04T04:00:00",
+ "2023-01-04T05:00:00",
+ "2023-01-04T06:00:00",
+ "2023-01-04T07:00:00",
+ "2023-01-04T08:00:00",
+ "2023-01-04T09:00:00",
+ "2023-01-04T10:00:00",
+ "2023-01-04T11:00:00",
+ "2023-01-04T12:00:00",
+ "2023-01-04T13:00:00",
+ "2023-01-04T14:00:00",
+ "2023-01-04T15:00:00",
+ "2023-01-04T16:00:00",
+ "2023-01-04T17:00:00",
+ "2023-01-04T18:00:00",
+ "2023-01-04T19:00:00",
+ "2023-01-04T20:00:00",
+ "2023-01-04T21:00:00",
+ "2023-01-04T22:00:00",
+ "2023-01-04T23:00:00",
+ "2023-01-05T00:00:00",
+ "2023-01-05T01:00:00",
+ "2023-01-05T02:00:00",
+ "2023-01-05T03:00:00",
+ "2023-01-05T04:00:00",
+ "2023-01-05T05:00:00",
+ "2023-01-05T06:00:00",
+ "2023-01-05T07:00:00",
+ "2023-01-05T08:00:00",
+ "2023-01-05T09:00:00",
+ "2023-01-05T10:00:00",
+ "2023-01-05T11:00:00",
+ "2023-01-05T12:00:00",
+ "2023-01-05T13:00:00",
+ "2023-01-05T14:00:00",
+ "2023-01-05T15:00:00",
+ "2023-01-05T16:00:00",
+ "2023-01-05T17:00:00",
+ "2023-01-05T18:00:00",
+ "2023-01-05T19:00:00",
+ "2023-01-05T20:00:00",
+ "2023-01-05T21:00:00",
+ "2023-01-05T22:00:00",
+ "2023-01-05T23:00:00",
+ "2023-01-06T00:00:00",
+ "2023-01-06T01:00:00",
+ "2023-01-06T02:00:00",
+ "2023-01-06T03:00:00",
+ "2023-01-06T04:00:00",
+ "2023-01-06T05:00:00",
+ "2023-01-06T06:00:00",
+ "2023-01-06T07:00:00",
+ "2023-01-06T08:00:00",
+ "2023-01-06T09:00:00",
+ "2023-01-06T10:00:00",
+ "2023-01-06T11:00:00",
+ "2023-01-06T12:00:00",
+ "2023-01-06T13:00:00",
+ "2023-01-06T14:00:00",
+ "2023-01-06T15:00:00",
+ "2023-01-06T16:00:00",
+ "2023-01-06T17:00:00",
+ "2023-01-06T18:00:00",
+ "2023-01-06T19:00:00",
+ "2023-01-06T20:00:00",
+ "2023-01-06T21:00:00",
+ "2023-01-06T22:00:00",
+ "2023-01-06T23:00:00",
+ "2023-01-07T00:00:00",
+ "2023-01-07T01:00:00",
+ "2023-01-07T02:00:00",
+ "2023-01-07T03:00:00",
+ "2023-01-07T04:00:00",
+ "2023-01-07T05:00:00",
+ "2023-01-07T06:00:00",
+ "2023-01-07T07:00:00",
+ "2023-01-07T08:00:00",
+ "2023-01-07T09:00:00",
+ "2023-01-07T10:00:00",
+ "2023-01-07T11:00:00",
+ "2023-01-07T12:00:00",
+ "2023-01-07T13:00:00",
+ "2023-01-07T14:00:00",
+ "2023-01-07T15:00:00",
+ "2023-01-07T16:00:00",
+ "2023-01-07T17:00:00",
+ "2023-01-07T18:00:00",
+ "2023-01-07T19:00:00",
+ "2023-01-07T20:00:00",
+ "2023-01-07T21:00:00",
+ "2023-01-07T22:00:00",
+ "2023-01-07T23:00:00",
+ "2023-01-08T00:00:00",
+ "2023-01-08T01:00:00",
+ "2023-01-08T02:00:00",
+ "2023-01-08T03:00:00",
+ "2023-01-08T04:00:00",
+ "2023-01-08T05:00:00",
+ "2023-01-08T06:00:00",
+ "2023-01-08T07:00:00",
+ "2023-01-08T08:00:00",
+ "2023-01-08T09:00:00",
+ "2023-01-08T10:00:00",
+ "2023-01-08T11:00:00",
+ "2023-01-08T12:00:00",
+ "2023-01-08T13:00:00",
+ "2023-01-08T14:00:00",
+ "2023-01-08T15:00:00",
+ "2023-01-08T16:00:00",
+ "2023-01-08T17:00:00",
+ "2023-01-08T18:00:00",
+ "2023-01-08T19:00:00",
+ "2023-01-08T20:00:00",
+ "2023-01-08T21:00:00",
+ "2023-01-08T22:00:00",
+ "2023-01-08T23:00:00",
+ "2023-01-09T00:00:00",
+ "2023-01-09T01:00:00",
+ "2023-01-09T02:00:00",
+ "2023-01-09T03:00:00",
+ "2023-01-09T04:00:00",
+ "2023-01-09T05:00:00",
+ "2023-01-09T06:00:00",
+ "2023-01-09T07:00:00",
+ "2023-01-09T08:00:00",
+ "2023-01-09T09:00:00",
+ "2023-01-09T10:00:00",
+ "2023-01-09T11:00:00",
+ "2023-01-09T12:00:00",
+ "2023-01-09T13:00:00",
+ "2023-01-09T14:00:00",
+ "2023-01-09T15:00:00",
+ "2023-01-09T16:00:00",
+ "2023-01-09T17:00:00",
+ "2023-01-09T18:00:00",
+ "2023-01-09T19:00:00",
+ "2023-01-09T20:00:00",
+ "2023-01-09T21:00:00",
+ "2023-01-09T22:00:00",
+ "2023-01-09T23:00:00",
+ "2023-01-10T00:00:00",
+ "2023-01-10T01:00:00",
+ "2023-01-10T02:00:00",
+ "2023-01-10T03:00:00",
+ "2023-01-10T04:00:00",
+ "2023-01-10T05:00:00",
+ "2023-01-10T06:00:00",
+ "2023-01-10T07:00:00",
+ "2023-01-10T08:00:00",
+ "2023-01-10T09:00:00",
+ "2023-01-10T10:00:00",
+ "2023-01-10T11:00:00",
+ "2023-01-10T12:00:00",
+ "2023-01-10T13:00:00",
+ "2023-01-10T14:00:00",
+ "2023-01-10T15:00:00",
+ "2023-01-10T16:00:00",
+ "2023-01-10T17:00:00",
+ "2023-01-10T18:00:00",
+ "2023-01-10T19:00:00",
+ "2023-01-10T20:00:00",
+ "2023-01-10T21:00:00",
+ "2023-01-10T22:00:00",
+ "2023-01-10T23:00:00",
+ "2023-01-11T00:00:00",
+ "2023-01-11T01:00:00",
+ "2023-01-11T02:00:00",
+ "2023-01-11T03:00:00",
+ "2023-01-11T04:00:00",
+ "2023-01-11T05:00:00",
+ "2023-01-11T06:00:00",
+ "2023-01-11T07:00:00",
+ "2023-01-11T08:00:00",
+ "2023-01-11T09:00:00",
+ "2023-01-11T10:00:00",
+ "2023-01-11T11:00:00",
+ "2023-01-11T12:00:00",
+ "2023-01-11T13:00:00",
+ "2023-01-11T14:00:00",
+ "2023-01-11T15:00:00",
+ "2023-01-11T16:00:00",
+ "2023-01-11T17:00:00",
+ "2023-01-11T18:00:00",
+ "2023-01-11T19:00:00",
+ "2023-01-11T20:00:00",
+ "2023-01-11T21:00:00",
+ "2023-01-11T22:00:00",
+ "2023-01-11T23:00:00",
+ "2023-01-12T00:00:00",
+ "2023-01-12T01:00:00",
+ "2023-01-12T02:00:00",
+ "2023-01-12T03:00:00",
+ "2023-01-12T04:00:00",
+ "2023-01-12T05:00:00",
+ "2023-01-12T06:00:00",
+ "2023-01-12T07:00:00",
+ "2023-01-12T08:00:00",
+ "2023-01-12T09:00:00",
+ "2023-01-12T10:00:00",
+ "2023-01-12T11:00:00",
+ "2023-01-12T12:00:00",
+ "2023-01-12T13:00:00",
+ "2023-01-12T14:00:00",
+ "2023-01-12T15:00:00",
+ "2023-01-12T16:00:00",
+ "2023-01-12T17:00:00",
+ "2023-01-12T18:00:00",
+ "2023-01-12T19:00:00",
+ "2023-01-12T20:00:00",
+ "2023-01-12T21:00:00",
+ "2023-01-12T22:00:00",
+ "2023-01-12T23:00:00",
+ "2023-01-13T00:00:00",
+ "2023-01-13T01:00:00",
+ "2023-01-13T02:00:00",
+ "2023-01-13T03:00:00",
+ "2023-01-13T04:00:00",
+ "2023-01-13T05:00:00",
+ "2023-01-13T06:00:00",
+ "2023-01-13T07:00:00",
+ "2023-01-13T08:00:00",
+ "2023-01-13T09:00:00",
+ "2023-01-13T10:00:00",
+ "2023-01-13T11:00:00",
+ "2023-01-13T12:00:00",
+ "2023-01-13T13:00:00",
+ "2023-01-13T14:00:00",
+ "2023-01-13T15:00:00",
+ "2023-01-13T16:00:00",
+ "2023-01-13T17:00:00",
+ "2023-01-13T18:00:00",
+ "2023-01-13T19:00:00",
+ "2023-01-13T20:00:00",
+ "2023-01-13T21:00:00",
+ "2023-01-13T22:00:00",
+ "2023-01-13T23:00:00",
+ "2023-01-14T00:00:00",
+ "2023-01-14T01:00:00",
+ "2023-01-14T02:00:00",
+ "2023-01-14T03:00:00",
+ "2023-01-14T04:00:00",
+ "2023-01-14T05:00:00",
+ "2023-01-14T06:00:00",
+ "2023-01-14T07:00:00",
+ "2023-01-14T08:00:00",
+ "2023-01-14T09:00:00",
+ "2023-01-14T10:00:00",
+ "2023-01-14T11:00:00",
+ "2023-01-14T12:00:00",
+ "2023-01-14T13:00:00",
+ "2023-01-14T14:00:00",
+ "2023-01-14T15:00:00",
+ "2023-01-14T16:00:00",
+ "2023-01-14T17:00:00",
+ "2023-01-14T18:00:00",
+ "2023-01-14T19:00:00",
+ "2023-01-14T20:00:00",
+ "2023-01-14T21:00:00",
+ "2023-01-14T22:00:00",
+ "2023-01-14T23:00:00",
+ "2023-01-15T00:00:00",
+ "2023-01-15T01:00:00",
+ "2023-01-15T02:00:00",
+ "2023-01-15T03:00:00",
+ "2023-01-15T04:00:00",
+ "2023-01-15T05:00:00",
+ "2023-01-15T06:00:00",
+ "2023-01-15T07:00:00",
+ "2023-01-15T08:00:00",
+ "2023-01-15T09:00:00",
+ "2023-01-15T10:00:00",
+ "2023-01-15T11:00:00",
+ "2023-01-15T12:00:00",
+ "2023-01-15T13:00:00",
+ "2023-01-15T14:00:00",
+ "2023-01-15T15:00:00",
+ "2023-01-15T16:00:00",
+ "2023-01-15T17:00:00",
+ "2023-01-15T18:00:00",
+ "2023-01-15T19:00:00",
+ "2023-01-15T20:00:00",
+ "2023-01-15T21:00:00",
+ "2023-01-15T22:00:00",
+ "2023-01-15T23:00:00",
+ "2023-01-16T00:00:00",
+ "2023-01-16T01:00:00",
+ "2023-01-16T02:00:00",
+ "2023-01-16T03:00:00",
+ "2023-01-16T04:00:00",
+ "2023-01-16T05:00:00",
+ "2023-01-16T06:00:00",
+ "2023-01-16T07:00:00",
+ "2023-01-16T08:00:00",
+ "2023-01-16T09:00:00",
+ "2023-01-16T10:00:00",
+ "2023-01-16T11:00:00",
+ "2023-01-16T12:00:00",
+ "2023-01-16T13:00:00",
+ "2023-01-16T14:00:00",
+ "2023-01-16T15:00:00",
+ "2023-01-16T16:00:00",
+ "2023-01-16T17:00:00",
+ "2023-01-16T18:00:00",
+ "2023-01-16T19:00:00",
+ "2023-01-16T20:00:00",
+ "2023-01-16T21:00:00",
+ "2023-01-16T22:00:00",
+ "2023-01-16T23:00:00",
+ "2023-01-17T00:00:00",
+ "2023-01-17T01:00:00",
+ "2023-01-17T02:00:00",
+ "2023-01-17T03:00:00",
+ "2023-01-17T04:00:00",
+ "2023-01-17T05:00:00",
+ "2023-01-17T06:00:00",
+ "2023-01-17T07:00:00",
+ "2023-01-17T08:00:00",
+ "2023-01-17T09:00:00",
+ "2023-01-17T10:00:00",
+ "2023-01-17T11:00:00",
+ "2023-01-17T12:00:00",
+ "2023-01-17T13:00:00",
+ "2023-01-17T14:00:00",
+ "2023-01-17T15:00:00",
+ "2023-01-17T16:00:00",
+ "2023-01-17T17:00:00",
+ "2023-01-17T18:00:00",
+ "2023-01-17T19:00:00",
+ "2023-01-17T20:00:00",
+ "2023-01-17T21:00:00",
+ "2023-01-17T22:00:00",
+ "2023-01-17T23:00:00",
+ "2023-01-18T00:00:00",
+ "2023-01-18T01:00:00",
+ "2023-01-18T02:00:00",
+ "2023-01-18T03:00:00",
+ "2023-01-18T04:00:00",
+ "2023-01-18T05:00:00",
+ "2023-01-18T06:00:00",
+ "2023-01-18T07:00:00",
+ "2023-01-18T08:00:00",
+ "2023-01-18T09:00:00",
+ "2023-01-18T10:00:00",
+ "2023-01-18T11:00:00",
+ "2023-01-18T12:00:00",
+ "2023-01-18T13:00:00",
+ "2023-01-18T14:00:00",
+ "2023-01-18T15:00:00",
+ "2023-01-18T16:00:00",
+ "2023-01-18T17:00:00",
+ "2023-01-18T18:00:00",
+ "2023-01-18T19:00:00",
+ "2023-01-18T20:00:00",
+ "2023-01-18T21:00:00",
+ "2023-01-18T22:00:00",
+ "2023-01-18T23:00:00",
+ "2023-01-19T00:00:00",
+ "2023-01-19T01:00:00",
+ "2023-01-19T02:00:00",
+ "2023-01-19T03:00:00",
+ "2023-01-19T04:00:00",
+ "2023-01-19T05:00:00",
+ "2023-01-19T06:00:00",
+ "2023-01-19T07:00:00",
+ "2023-01-19T08:00:00",
+ "2023-01-19T09:00:00",
+ "2023-01-19T10:00:00",
+ "2023-01-19T11:00:00",
+ "2023-01-19T12:00:00",
+ "2023-01-19T13:00:00",
+ "2023-01-19T14:00:00",
+ "2023-01-19T15:00:00",
+ "2023-01-19T16:00:00",
+ "2023-01-19T17:00:00",
+ "2023-01-19T18:00:00",
+ "2023-01-19T19:00:00",
+ "2023-01-19T20:00:00",
+ "2023-01-19T21:00:00",
+ "2023-01-19T22:00:00",
+ "2023-01-19T23:00:00",
+ "2023-01-20T00:00:00",
+ "2023-01-20T01:00:00",
+ "2023-01-20T02:00:00",
+ "2023-01-20T03:00:00",
+ "2023-01-20T04:00:00",
+ "2023-01-20T05:00:00",
+ "2023-01-20T06:00:00",
+ "2023-01-20T07:00:00",
+ "2023-01-20T08:00:00",
+ "2023-01-20T09:00:00",
+ "2023-01-20T10:00:00",
+ "2023-01-20T11:00:00",
+ "2023-01-20T12:00:00",
+ "2023-01-20T13:00:00",
+ "2023-01-20T14:00:00",
+ "2023-01-20T15:00:00",
+ "2023-01-20T16:00:00",
+ "2023-01-20T17:00:00",
+ "2023-01-20T18:00:00",
+ "2023-01-20T19:00:00",
+ "2023-01-20T20:00:00",
+ "2023-01-20T21:00:00",
+ "2023-01-20T22:00:00",
+ "2023-01-20T23:00:00",
+ "2023-01-21T00:00:00",
+ "2023-01-21T01:00:00",
+ "2023-01-21T02:00:00",
+ "2023-01-21T03:00:00",
+ "2023-01-21T04:00:00",
+ "2023-01-21T05:00:00",
+ "2023-01-21T06:00:00",
+ "2023-01-21T07:00:00",
+ "2023-01-21T08:00:00",
+ "2023-01-21T09:00:00",
+ "2023-01-21T10:00:00",
+ "2023-01-21T11:00:00",
+ "2023-01-21T12:00:00",
+ "2023-01-21T13:00:00",
+ "2023-01-21T14:00:00",
+ "2023-01-21T15:00:00",
+ "2023-01-21T16:00:00",
+ "2023-01-21T17:00:00",
+ "2023-01-21T18:00:00",
+ "2023-01-21T19:00:00",
+ "2023-01-21T20:00:00",
+ "2023-01-21T21:00:00",
+ "2023-01-21T22:00:00",
+ "2023-01-21T23:00:00",
+ "2023-01-22T00:00:00",
+ "2023-01-22T01:00:00",
+ "2023-01-22T02:00:00",
+ "2023-01-22T03:00:00",
+ "2023-01-22T04:00:00",
+ "2023-01-22T05:00:00",
+ "2023-01-22T06:00:00",
+ "2023-01-22T07:00:00",
+ "2023-01-22T08:00:00",
+ "2023-01-22T09:00:00",
+ "2023-01-22T10:00:00",
+ "2023-01-22T11:00:00",
+ "2023-01-22T12:00:00",
+ "2023-01-22T13:00:00",
+ "2023-01-22T14:00:00",
+ "2023-01-22T15:00:00",
+ "2023-01-22T16:00:00",
+ "2023-01-22T17:00:00",
+ "2023-01-22T18:00:00",
+ "2023-01-22T19:00:00",
+ "2023-01-22T20:00:00",
+ "2023-01-22T21:00:00",
+ "2023-01-22T22:00:00",
+ "2023-01-22T23:00:00",
+ "2023-01-23T00:00:00",
+ "2023-01-23T01:00:00",
+ "2023-01-23T02:00:00",
+ "2023-01-23T03:00:00",
+ "2023-01-23T04:00:00",
+ "2023-01-23T05:00:00",
+ "2023-01-23T06:00:00",
+ "2023-01-23T07:00:00",
+ "2023-01-23T08:00:00",
+ "2023-01-23T09:00:00",
+ "2023-01-23T10:00:00",
+ "2023-01-23T11:00:00",
+ "2023-01-23T12:00:00",
+ "2023-01-23T13:00:00",
+ "2023-01-23T14:00:00",
+ "2023-01-23T15:00:00",
+ "2023-01-23T16:00:00",
+ "2023-01-23T17:00:00",
+ "2023-01-23T18:00:00",
+ "2023-01-23T19:00:00",
+ "2023-01-23T20:00:00",
+ "2023-01-23T21:00:00",
+ "2023-01-23T22:00:00",
+ "2023-01-23T23:00:00",
+ "2023-01-24T00:00:00",
+ "2023-01-24T01:00:00",
+ "2023-01-24T02:00:00",
+ "2023-01-24T03:00:00",
+ "2023-01-24T04:00:00",
+ "2023-01-24T05:00:00",
+ "2023-01-24T06:00:00",
+ "2023-01-24T07:00:00",
+ "2023-01-24T08:00:00",
+ "2023-01-24T09:00:00",
+ "2023-01-24T10:00:00",
+ "2023-01-24T11:00:00",
+ "2023-01-24T12:00:00",
+ "2023-01-24T13:00:00",
+ "2023-01-24T14:00:00",
+ "2023-01-24T15:00:00",
+ "2023-01-24T16:00:00",
+ "2023-01-24T17:00:00",
+ "2023-01-24T18:00:00",
+ "2023-01-24T19:00:00",
+ "2023-01-24T20:00:00",
+ "2023-01-24T21:00:00",
+ "2023-01-24T22:00:00",
+ "2023-01-24T23:00:00",
+ "2023-01-25T00:00:00",
+ "2023-01-25T01:00:00",
+ "2023-01-25T02:00:00",
+ "2023-01-25T03:00:00",
+ "2023-01-25T04:00:00",
+ "2023-01-25T05:00:00",
+ "2023-01-25T06:00:00",
+ "2023-01-25T07:00:00",
+ "2023-01-25T08:00:00",
+ "2023-01-25T09:00:00",
+ "2023-01-25T10:00:00",
+ "2023-01-25T11:00:00",
+ "2023-01-25T12:00:00",
+ "2023-01-25T13:00:00",
+ "2023-01-25T14:00:00",
+ "2023-01-25T15:00:00",
+ "2023-01-25T16:00:00",
+ "2023-01-25T17:00:00",
+ "2023-01-25T18:00:00",
+ "2023-01-25T19:00:00",
+ "2023-01-25T20:00:00",
+ "2023-01-25T21:00:00",
+ "2023-01-25T22:00:00",
+ "2023-01-25T23:00:00",
+ "2023-01-26T00:00:00",
+ "2023-01-26T01:00:00",
+ "2023-01-26T02:00:00",
+ "2023-01-26T03:00:00",
+ "2023-01-26T04:00:00",
+ "2023-01-26T05:00:00",
+ "2023-01-26T06:00:00",
+ "2023-01-26T07:00:00",
+ "2023-01-26T08:00:00",
+ "2023-01-26T09:00:00",
+ "2023-01-26T10:00:00",
+ "2023-01-26T11:00:00",
+ "2023-01-26T12:00:00",
+ "2023-01-26T13:00:00",
+ "2023-01-26T14:00:00",
+ "2023-01-26T15:00:00",
+ "2023-01-26T16:00:00",
+ "2023-01-26T17:00:00",
+ "2023-01-26T18:00:00",
+ "2023-01-26T19:00:00",
+ "2023-01-26T20:00:00",
+ "2023-01-26T21:00:00",
+ "2023-01-26T22:00:00",
+ "2023-01-26T23:00:00",
+ "2023-01-27T00:00:00",
+ "2023-01-27T01:00:00",
+ "2023-01-27T02:00:00",
+ "2023-01-27T03:00:00",
+ "2023-01-27T04:00:00",
+ "2023-01-27T05:00:00",
+ "2023-01-27T06:00:00",
+ "2023-01-27T07:00:00",
+ "2023-01-27T08:00:00",
+ "2023-01-27T09:00:00",
+ "2023-01-27T10:00:00",
+ "2023-01-27T11:00:00",
+ "2023-01-27T12:00:00",
+ "2023-01-27T13:00:00",
+ "2023-01-27T14:00:00",
+ "2023-01-27T15:00:00",
+ "2023-01-27T16:00:00",
+ "2023-01-27T17:00:00",
+ "2023-01-27T18:00:00",
+ "2023-01-27T19:00:00",
+ "2023-01-27T20:00:00",
+ "2023-01-27T21:00:00",
+ "2023-01-27T22:00:00",
+ "2023-01-27T23:00:00",
+ "2023-01-28T00:00:00",
+ "2023-01-28T01:00:00",
+ "2023-01-28T02:00:00",
+ "2023-01-28T03:00:00",
+ "2023-01-28T04:00:00",
+ "2023-01-28T05:00:00",
+ "2023-01-28T06:00:00",
+ "2023-01-28T07:00:00",
+ "2023-01-28T08:00:00",
+ "2023-01-28T09:00:00",
+ "2023-01-28T10:00:00",
+ "2023-01-28T11:00:00",
+ "2023-01-28T12:00:00",
+ "2023-01-28T13:00:00",
+ "2023-01-28T14:00:00",
+ "2023-01-28T15:00:00",
+ "2023-01-28T16:00:00",
+ "2023-01-28T17:00:00",
+ "2023-01-28T18:00:00",
+ "2023-01-28T19:00:00",
+ "2023-01-28T20:00:00",
+ "2023-01-28T21:00:00",
+ "2023-01-28T22:00:00",
+ "2023-01-28T23:00:00",
+ "2023-01-29T00:00:00",
+ "2023-01-29T01:00:00",
+ "2023-01-29T02:00:00",
+ "2023-01-29T03:00:00",
+ "2023-01-29T04:00:00",
+ "2023-01-29T05:00:00",
+ "2023-01-29T06:00:00",
+ "2023-01-29T07:00:00",
+ "2023-01-29T08:00:00",
+ "2023-01-29T09:00:00",
+ "2023-01-29T10:00:00",
+ "2023-01-29T11:00:00",
+ "2023-01-29T12:00:00",
+ "2023-01-29T13:00:00",
+ "2023-01-29T14:00:00",
+ "2023-01-29T15:00:00",
+ "2023-01-29T16:00:00",
+ "2023-01-29T17:00:00",
+ "2023-01-29T18:00:00",
+ "2023-01-29T19:00:00",
+ "2023-01-29T20:00:00",
+ "2023-01-29T21:00:00",
+ "2023-01-29T22:00:00",
+ "2023-01-29T23:00:00",
+ "2023-01-30T00:00:00",
+ "2023-01-30T01:00:00",
+ "2023-01-30T02:00:00",
+ "2023-01-30T03:00:00",
+ "2023-01-30T04:00:00",
+ "2023-01-30T05:00:00",
+ "2023-01-30T06:00:00",
+ "2023-01-30T07:00:00",
+ "2023-01-30T08:00:00",
+ "2023-01-30T09:00:00",
+ "2023-01-30T10:00:00",
+ "2023-01-30T11:00:00",
+ "2023-01-30T12:00:00",
+ "2023-01-30T13:00:00",
+ "2023-01-30T14:00:00",
+ "2023-01-30T15:00:00",
+ "2023-01-30T16:00:00",
+ "2023-01-30T17:00:00",
+ "2023-01-30T18:00:00",
+ "2023-01-30T19:00:00",
+ "2023-01-30T20:00:00",
+ "2023-01-30T21:00:00",
+ "2023-01-30T22:00:00",
+ "2023-01-30T23:00:00",
+ "2023-01-31T00:00:00",
+ "2023-01-31T01:00:00",
+ "2023-01-31T02:00:00",
+ "2023-01-31T03:00:00",
+ "2023-01-31T04:00:00",
+ "2023-01-31T05:00:00",
+ "2023-01-31T06:00:00",
+ "2023-01-31T07:00:00",
+ "2023-01-31T08:00:00",
+ "2023-01-31T09:00:00",
+ "2023-01-31T10:00:00",
+ "2023-01-31T11:00:00",
+ "2023-01-31T12:00:00",
+ "2023-01-31T13:00:00",
+ "2023-01-31T14:00:00",
+ "2023-01-31T15:00:00",
+ "2023-01-31T16:00:00",
+ "2023-01-31T17:00:00",
+ "2023-01-31T18:00:00",
+ "2023-01-31T19:00:00",
+ "2023-01-31T20:00:00",
+ "2023-01-31T21:00:00",
+ "2023-01-31T22:00:00",
+ "2023-01-31T23:00:00",
+ "2023-02-01T00:00:00",
+ "2023-02-01T01:00:00",
+ "2023-02-01T02:00:00",
+ "2023-02-01T03:00:00",
+ "2023-02-01T04:00:00",
+ "2023-02-01T05:00:00",
+ "2023-02-01T06:00:00",
+ "2023-02-01T07:00:00",
+ "2023-02-01T08:00:00",
+ "2023-02-01T09:00:00",
+ "2023-02-01T10:00:00",
+ "2023-02-01T11:00:00",
+ "2023-02-01T12:00:00",
+ "2023-02-01T13:00:00",
+ "2023-02-01T14:00:00",
+ "2023-02-01T15:00:00",
+ "2023-02-01T16:00:00",
+ "2023-02-01T17:00:00",
+ "2023-02-01T18:00:00",
+ "2023-02-01T19:00:00",
+ "2023-02-01T20:00:00",
+ "2023-02-01T21:00:00",
+ "2023-02-01T22:00:00",
+ "2023-02-01T23:00:00",
+ "2023-02-02T00:00:00",
+ "2023-02-02T01:00:00",
+ "2023-02-02T02:00:00",
+ "2023-02-02T03:00:00",
+ "2023-02-02T04:00:00",
+ "2023-02-02T05:00:00",
+ "2023-02-02T06:00:00",
+ "2023-02-02T07:00:00",
+ "2023-02-02T08:00:00",
+ "2023-02-02T09:00:00",
+ "2023-02-02T10:00:00",
+ "2023-02-02T11:00:00",
+ "2023-02-02T12:00:00",
+ "2023-02-02T13:00:00",
+ "2023-02-02T14:00:00",
+ "2023-02-02T15:00:00",
+ "2023-02-02T16:00:00",
+ "2023-02-02T17:00:00",
+ "2023-02-02T18:00:00",
+ "2023-02-02T19:00:00",
+ "2023-02-02T20:00:00",
+ "2023-02-02T21:00:00",
+ "2023-02-02T22:00:00",
+ "2023-02-02T23:00:00",
+ "2023-02-03T00:00:00",
+ "2023-02-03T01:00:00",
+ "2023-02-03T02:00:00",
+ "2023-02-03T03:00:00",
+ "2023-02-03T04:00:00",
+ "2023-02-03T05:00:00",
+ "2023-02-03T06:00:00",
+ "2023-02-03T07:00:00",
+ "2023-02-03T08:00:00",
+ "2023-02-03T09:00:00",
+ "2023-02-03T10:00:00",
+ "2023-02-03T11:00:00",
+ "2023-02-03T12:00:00",
+ "2023-02-03T13:00:00",
+ "2023-02-03T14:00:00",
+ "2023-02-03T15:00:00",
+ "2023-02-03T16:00:00",
+ "2023-02-03T17:00:00",
+ "2023-02-03T18:00:00",
+ "2023-02-03T19:00:00",
+ "2023-02-03T20:00:00",
+ "2023-02-03T21:00:00",
+ "2023-02-03T22:00:00",
+ "2023-02-03T23:00:00",
+ "2023-02-04T00:00:00",
+ "2023-02-04T01:00:00",
+ "2023-02-04T02:00:00",
+ "2023-02-04T03:00:00",
+ "2023-02-04T04:00:00",
+ "2023-02-04T05:00:00",
+ "2023-02-04T06:00:00",
+ "2023-02-04T07:00:00",
+ "2023-02-04T08:00:00",
+ "2023-02-04T09:00:00",
+ "2023-02-04T10:00:00",
+ "2023-02-04T11:00:00",
+ "2023-02-04T12:00:00",
+ "2023-02-04T13:00:00",
+ "2023-02-04T14:00:00",
+ "2023-02-04T15:00:00",
+ "2023-02-04T16:00:00",
+ "2023-02-04T17:00:00",
+ "2023-02-04T18:00:00",
+ "2023-02-04T19:00:00",
+ "2023-02-04T20:00:00",
+ "2023-02-04T21:00:00",
+ "2023-02-04T22:00:00",
+ "2023-02-04T23:00:00",
+ "2023-02-05T00:00:00",
+ "2023-02-05T01:00:00",
+ "2023-02-05T02:00:00",
+ "2023-02-05T03:00:00",
+ "2023-02-05T04:00:00",
+ "2023-02-05T05:00:00",
+ "2023-02-05T06:00:00",
+ "2023-02-05T07:00:00",
+ "2023-02-05T08:00:00",
+ "2023-02-05T09:00:00",
+ "2023-02-05T10:00:00",
+ "2023-02-05T11:00:00",
+ "2023-02-05T12:00:00",
+ "2023-02-05T13:00:00",
+ "2023-02-05T14:00:00",
+ "2023-02-05T15:00:00",
+ "2023-02-05T16:00:00",
+ "2023-02-05T17:00:00",
+ "2023-02-05T18:00:00",
+ "2023-02-05T19:00:00",
+ "2023-02-05T20:00:00",
+ "2023-02-05T21:00:00",
+ "2023-02-05T22:00:00",
+ "2023-02-05T23:00:00",
+ "2023-02-06T00:00:00",
+ "2023-02-06T01:00:00",
+ "2023-02-06T02:00:00",
+ "2023-02-06T03:00:00",
+ "2023-02-06T04:00:00",
+ "2023-02-06T05:00:00",
+ "2023-02-06T06:00:00",
+ "2023-02-06T07:00:00",
+ "2023-02-06T08:00:00",
+ "2023-02-06T09:00:00",
+ "2023-02-06T10:00:00",
+ "2023-02-06T11:00:00",
+ "2023-02-06T12:00:00",
+ "2023-02-06T13:00:00",
+ "2023-02-06T14:00:00",
+ "2023-02-06T15:00:00",
+ "2023-02-06T16:00:00",
+ "2023-02-06T17:00:00",
+ "2023-02-06T18:00:00",
+ "2023-02-06T19:00:00",
+ "2023-02-06T20:00:00",
+ "2023-02-06T21:00:00",
+ "2023-02-06T22:00:00",
+ "2023-02-06T23:00:00",
+ "2023-02-07T00:00:00",
+ "2023-02-07T01:00:00",
+ "2023-02-07T02:00:00",
+ "2023-02-07T03:00:00",
+ "2023-02-07T04:00:00",
+ "2023-02-07T05:00:00",
+ "2023-02-07T06:00:00",
+ "2023-02-07T07:00:00",
+ "2023-02-07T08:00:00",
+ "2023-02-07T09:00:00",
+ "2023-02-07T10:00:00",
+ "2023-02-07T11:00:00",
+ "2023-02-07T12:00:00",
+ "2023-02-07T13:00:00",
+ "2023-02-07T14:00:00",
+ "2023-02-07T15:00:00",
+ "2023-02-07T16:00:00",
+ "2023-02-07T17:00:00",
+ "2023-02-07T18:00:00",
+ "2023-02-07T19:00:00",
+ "2023-02-07T20:00:00",
+ "2023-02-07T21:00:00",
+ "2023-02-07T22:00:00",
+ "2023-02-07T23:00:00",
+ "2023-02-08T00:00:00",
+ "2023-02-08T01:00:00",
+ "2023-02-08T02:00:00",
+ "2023-02-08T03:00:00",
+ "2023-02-08T04:00:00",
+ "2023-02-08T05:00:00",
+ "2023-02-08T06:00:00",
+ "2023-02-08T07:00:00",
+ "2023-02-08T08:00:00",
+ "2023-02-08T09:00:00",
+ "2023-02-08T10:00:00",
+ "2023-02-08T11:00:00",
+ "2023-02-08T12:00:00",
+ "2023-02-08T13:00:00",
+ "2023-02-08T14:00:00",
+ "2023-02-08T15:00:00",
+ "2023-02-08T16:00:00",
+ "2023-02-08T17:00:00",
+ "2023-02-08T18:00:00",
+ "2023-02-08T19:00:00",
+ "2023-02-08T20:00:00",
+ "2023-02-08T21:00:00",
+ "2023-02-08T22:00:00",
+ "2023-02-08T23:00:00",
+ "2023-02-09T00:00:00",
+ "2023-02-09T01:00:00",
+ "2023-02-09T02:00:00",
+ "2023-02-09T03:00:00",
+ "2023-02-09T04:00:00",
+ "2023-02-09T05:00:00",
+ "2023-02-09T06:00:00",
+ "2023-02-09T07:00:00",
+ "2023-02-09T08:00:00",
+ "2023-02-09T09:00:00",
+ "2023-02-09T10:00:00",
+ "2023-02-09T11:00:00",
+ "2023-02-09T12:00:00",
+ "2023-02-09T13:00:00",
+ "2023-02-09T14:00:00",
+ "2023-02-09T15:00:00",
+ "2023-02-09T16:00:00",
+ "2023-02-09T17:00:00",
+ "2023-02-09T18:00:00",
+ "2023-02-09T19:00:00",
+ "2023-02-09T20:00:00",
+ "2023-02-09T21:00:00",
+ "2023-02-09T22:00:00",
+ "2023-02-09T23:00:00",
+ "2023-02-10T00:00:00",
+ "2023-02-10T01:00:00",
+ "2023-02-10T02:00:00",
+ "2023-02-10T03:00:00",
+ "2023-02-10T04:00:00",
+ "2023-02-10T05:00:00",
+ "2023-02-10T06:00:00",
+ "2023-02-10T07:00:00",
+ "2023-02-10T08:00:00",
+ "2023-02-10T09:00:00",
+ "2023-02-10T10:00:00",
+ "2023-02-10T11:00:00",
+ "2023-02-10T12:00:00",
+ "2023-02-10T13:00:00",
+ "2023-02-10T14:00:00",
+ "2023-02-10T15:00:00",
+ "2023-02-10T16:00:00",
+ "2023-02-10T17:00:00",
+ "2023-02-10T18:00:00",
+ "2023-02-10T19:00:00",
+ "2023-02-10T20:00:00",
+ "2023-02-10T21:00:00",
+ "2023-02-10T22:00:00",
+ "2023-02-10T23:00:00",
+ "2023-02-11T00:00:00",
+ "2023-02-11T01:00:00",
+ "2023-02-11T02:00:00",
+ "2023-02-11T03:00:00",
+ "2023-02-11T04:00:00",
+ "2023-02-11T05:00:00",
+ "2023-02-11T06:00:00",
+ "2023-02-11T07:00:00",
+ "2023-02-11T08:00:00",
+ "2023-02-11T09:00:00",
+ "2023-02-11T10:00:00",
+ "2023-02-11T11:00:00",
+ "2023-02-11T12:00:00",
+ "2023-02-11T13:00:00",
+ "2023-02-11T14:00:00",
+ "2023-02-11T15:00:00"
+ ],
+ "xaxis": "x2",
+ "y": [
+ -0.6996777182930012,
+ -0.4623168414563844,
+ -0.02981518496008706,
+ 0.32346838885278695,
+ -0.34911165680679496,
+ -0.1967426927108748,
+ -0.44759661001386597,
+ -0.3175859008409847,
+ -0.5247763576596676,
+ 0.267617605780284,
+ -0.6586970328171629,
+ -0.09879980234619984,
+ -1.0376304363126327,
+ 0.3445939090447838,
+ -0.8679819015826247,
+ -0.0989553917313239,
+ 0.32570900180722406,
+ 0.24194291702716078,
+ 0.1601736540971601,
+ -0.21208297320095815,
+ -0.26141774401774986,
+ 0.28685000196928956,
+ 0.0121772961304914,
+ -1.0711351793059318,
+ -0.8637715850503557,
+ -0.21816183483701607,
+ -0.01900173908410019,
+ -0.060015663359130667,
+ -0.3067589863652083,
+ 0.5113962825992027,
+ 0.12868826871167255,
+ 0.8342920369387947,
+ -0.19961156130263963,
+ -0.3235979698513705,
+ 0.241593231149687,
+ -0.7869933816450164,
+ 0.6128828315011706,
+ 0.73218744010491,
+ -0.11222590927998599,
+ -0.5235491513060772,
+ -0.8419638457289342,
+ 0.22944213143447,
+ -0.5393404167156478,
+ 0.019254234750353608,
+ 0.0863136499704098,
+ -0.4418299687433362,
+ -0.3261614392067098,
+ 0.7881960784921247,
+ -0.7382701748629479,
+ -0.6900456770737258,
+ 0.3127813507547647,
+ -0.19790176671870452,
+ -0.2470150931413694,
+ -0.13033688291195356,
+ 0.2751525769227101,
+ 0.3358116839690257,
+ 0.012777035495722622,
+ -0.5863645096296823,
+ -0.2718000772972161,
+ 0.18530716604305297,
+ -0.38584935532417236,
+ 1.4242713103150377,
+ -0.5743828501860517,
+ 0.8698568893890498,
+ 0.1812204707015661,
+ 0.5598349473130719,
+ 0.6473407378604529,
+ -0.5804133936892599,
+ 0.23385060065594565,
+ -0.1732519408653579,
+ 0.023460289439591997,
+ -0.23852041361156084,
+ -0.038410945530127694,
+ 0.6414961120942848,
+ -0.4981334097235699,
+ 0.24687829158065622,
+ 0.7782909493298755,
+ 0.21405758048295626,
+ -0.7503798953171554,
+ -0.4251108710567464,
+ 0.17432606720392962,
+ 0.17462885215921442,
+ 0.16081752560869145,
+ -1.0383739917804204,
+ -0.19096772611577667,
+ -0.21502082359553482,
+ -0.5151417270159211,
+ -0.11939457951325672,
+ 0.12952107291035156,
+ 0.09817492454248922,
+ 0.03580062970703202,
+ 0.0186111182549209,
+ -0.3638147718184899,
+ -0.025972942903649765,
+ -0.3663200386077896,
+ 0.040358290054291146,
+ -0.03931759515804534,
+ 0.9991003422660538,
+ -0.45816383735124067,
+ -0.17324423794899635,
+ -0.4990050549298261,
+ 1.4481276890968446,
+ -1.0441873523903638,
+ 0.06979481407758688,
+ -0.5540914083687581,
+ 0.5199529635627654,
+ -0.3063869525312848,
+ 0.5267077815868281,
+ 0.3118844803479026,
+ -0.9570156769333931,
+ 0.09534120038167337,
+ -0.10871643658986141,
+ -0.43503386534437716,
+ -0.24784094398630252,
+ -0.07520945257178824,
+ -0.18248050123311277,
+ -1.2017077926191373,
+ 0.028809398516792706,
+ -0.10054952335748357,
+ -0.5253271980038061,
+ -0.5527629664789919,
+ -0.5935151527801901,
+ -0.31936511101459253,
+ 0.5715024563652418,
+ -0.8167157661505478,
+ 0.573172696509344,
+ -0.15131773261951662,
+ 0.37713792500967896,
+ 0.03206917329649617,
+ -0.16438120515174015,
+ -0.16067860772513654,
+ -0.21096037711764226,
+ -0.8068556345293235,
+ -0.22676715075698994,
+ 0.12207831764532434,
+ -0.4820435841441788,
+ -0.5947352444623203,
+ 0.6138039075684962,
+ -0.2987000349249289,
+ -0.35058637115544916,
+ 0.14878175167999586,
+ -0.68785340665581,
+ 0.07502779351626332,
+ -0.06278822673577111,
+ 0.0865359121419349,
+ -0.007789523790733721,
+ 0.5481375434476009,
+ 0.7200254412971472,
+ -0.7972525316124859,
+ 0.4234806741591639,
+ 0.49569617472815364,
+ 1.0766950568018574,
+ 0.3194808738447511,
+ 0.6615448967037492,
+ -0.8210075800681844,
+ -0.5049085446713171,
+ 0.344075172588862,
+ -1.1262179026721544,
+ -0.49088274349579714,
+ 0.16241569175431114,
+ 1.2497028574367866,
+ -1.1454712862953706,
+ 0.694786233381798,
+ 0.8226993734784459,
+ -0.5112852160048202,
+ -1.2198762031696364,
+ -0.6921364092552589,
+ -0.2819545600261799,
+ -0.29737717083264303,
+ -0.4267077793901538,
+ -0.37946429489338257,
+ -0.1405957119846879,
+ -0.05210055197593799,
+ 0.0312965639497611,
+ 0.3769822944333381,
+ 0.14033753843338692,
+ 0.8464784070976927,
+ 0.049169813397374806,
+ 0.49429555357545873,
+ 0.5517946586078857,
+ -0.08994707557673931,
+ -0.6960011431722997,
+ -0.4591583030011565,
+ 0.7852503018115885,
+ 0.4948140682851688,
+ -0.47038559399410795,
+ 0.4912436967691548,
+ 0.11231657499851233,
+ -0.27502604951227594,
+ 0.48417222743181754,
+ -0.052687753072979904,
+ 0.6670127474591021,
+ 0.30068382197560684,
+ -0.15989096707126849,
+ 0.7964968667658346,
+ -0.22023736898019952,
+ 0.009818899463340608,
+ -0.27624497720857377,
+ -0.11195706703233066,
+ -0.6820702149869221,
+ -0.06261225132395354,
+ 0.21470277056262654,
+ -0.061148751516141964,
+ -0.2716490145181938,
+ -0.024430035162852137,
+ -0.02029584560194119,
+ 0.35099584390337757,
+ 0.3314504587754741,
+ 0.7013026358998468,
+ -0.8747883715934694,
+ 0.6219316176956425,
+ 0.34645259889795366,
+ 0.35920363278459866,
+ -0.44746218847222075,
+ 0.1474748391460139,
+ -0.6238710363368671,
+ 0.33674531212193426,
+ -0.13949708111190096,
+ 0.41767352662987867,
+ -1.0725745638866941,
+ 0.5937992095147564,
+ -0.1549103551135138,
+ -0.31688844046604925,
+ -0.20689954872574912,
+ 0.09264382943885413,
+ 0.06491034986671318,
+ -0.02190573598955481,
+ 0.07350100081424432,
+ -0.48193955839745484,
+ -1.1052615007956756,
+ 0.2787458925039168,
+ 0.6849014897895389,
+ 0.044141024175627375,
+ -1.289854668827159,
+ 0.4018372839848654,
+ -0.819558402722034,
+ -0.8388504070382203,
+ 0.27679412085399735,
+ -0.2844915395926377,
+ -0.8141983115642688,
+ 0.18956387049374357,
+ 0.1017901800511809,
+ 0.2908404569743219,
+ 0.5073783653464334,
+ 0.32463877253300355,
+ 0.6119701333811283,
+ -0.017041734129613045,
+ 0.3849866155293209,
+ -0.11689295589537396,
+ 0.7779478231018137,
+ -0.16544011610722853,
+ -0.4167644808044624,
+ 0.9968678212857278,
+ -0.1870282849237861,
+ -0.6138344962366461,
+ 0.6048205093456027,
+ -0.8362861934188515,
+ -0.2095095046830226,
+ 0.35250592787920443,
+ 0.02788453882885311,
+ -0.2791634562608612,
+ -0.038002695706205736,
+ -0.2693779962231848,
+ 0.4603367965396832,
+ -0.084680412018039,
+ 0.70685724845249,
+ 0.055613030674350306,
+ 0.4519538207323949,
+ 0.3677649712948833,
+ -0.6180465876052187,
+ -0.5456550602971344,
+ -0.30456906045358845,
+ 0.5461563823362896,
+ 0.15820422484740096,
+ -0.6065488499895917,
+ -0.0708584568199524,
+ -1.1596647699908469,
+ -0.19665891969718594,
+ -0.09602455824501577,
+ 0.1545582321012507,
+ -0.06677045239114121,
+ 0.07623491819027195,
+ -0.3540543383442951,
+ -0.47835115839729203,
+ 0.3929947302539749,
+ 0.6656164767788888,
+ 0.9181026865516483,
+ -0.2539956634562719,
+ 0.5516833030869368,
+ 1.0764452964762414,
+ -0.19428930226548205,
+ -1.2464997587163953,
+ 0.003035455769946682,
+ -0.41924538722582105,
+ -0.04091467927378256,
+ 0.04944482659557137,
+ -0.4595382414938842,
+ 0.1451372720943257,
+ -0.1336961570359514,
+ -0.1608489030980068,
+ 0.33404522682152427,
+ -0.4960211747682614,
+ 0.08747987834770432,
+ 0.37787257974642235,
+ -0.26825492178520177,
+ 0.44923399089551863,
+ -0.014090578684564203,
+ 0.004559498322101785,
+ -0.542947782915789,
+ -0.2373491164399764,
+ 0.012513479372571967,
+ -0.4088831496001435,
+ -0.6951037745086567,
+ -0.2789051531759311,
+ -0.005176309921690381,
+ 0.6559181161750798,
+ 0.5325568315376863,
+ 0.15261235217733382,
+ 0.3047561010796416,
+ 0.09348565149272303,
+ -0.028324962448553585,
+ -0.26484637717836534,
+ 0.03524938902954555,
+ -0.24325082191310088,
+ -0.032237207405060087,
+ 0.9877332831769357,
+ 0.46966769690937715,
+ 0.07204377786080773,
+ 0.6048473714205538,
+ -0.29996436499810225,
+ -0.7653754161718487,
+ -0.6093809258486583,
+ 0.10672143546510399,
+ -0.745363068424976,
+ -0.0743337286010558,
+ 0.16854298555901964,
+ 0.3067013317704699,
+ 0.1512348432440641,
+ 0.19408840927061438,
+ -0.08520811118774385,
+ -0.08028699052493238,
+ -0.001523010076707236,
+ -0.21846908487317493,
+ -0.5953231373931707,
+ -0.47477706772066186,
+ 0.7424489842249518,
+ 1.2769605674509776,
+ -0.46715995561963686,
+ 0.6834393492077107,
+ 0.11238270094634173,
+ 0.5850565130296799,
+ 0.9009902187900098,
+ -0.27073136410239396,
+ -0.3795775801513234,
+ 0.2882552003633597,
+ 1.295521146072455,
+ 0.27312222412624143,
+ -0.19590200270127323,
+ 0.7394557843870644,
+ -0.09167995988957789,
+ 0.007654924586497774,
+ -0.28964574980054425,
+ -0.0597901842070766,
+ 0.4865344704407778,
+ -0.5982857508322457,
+ 0.07926478651348501,
+ 0.013652269754965918,
+ 0.4666339795365981,
+ 0.22164112559575522,
+ 0.4424013570134504,
+ 0.08647302996171147,
+ -0.8558542400711717,
+ 0.6859505714656782,
+ 0.8067806989383706,
+ -0.735585163746804,
+ 0.10466183857593303,
+ 0.3345363693299583,
+ -0.5199523436980382,
+ 0.30280776986843216,
+ -0.9130048567734681,
+ -0.33896293566963465,
+ 0.24395570407285128,
+ -1.0786541066327517,
+ 0.30285746150166926,
+ -0.37104768600465343,
+ -0.14964629020324594,
+ -0.650870644699399,
+ -0.7807555983634265,
+ -0.016002074532883326,
+ 0.3767089351730917,
+ -0.2299860714695583,
+ 0.3388576848760531,
+ -1.0066936237633115,
+ -0.06826766554136876,
+ 0.18266077565605432,
+ -0.09234015293245412,
+ 0.6735631447648482,
+ 0.48580701925532577,
+ -0.6002069539722127,
+ 0.32844713948569787,
+ 0.5234554913409699,
+ -0.2683263762636432,
+ -0.5928520773314985,
+ -0.35947665533253337,
+ -0.49802384290290824,
+ 0.3783975442847304,
+ 0.7109053333709219,
+ -0.7506668259777434,
+ 0.16133991942106785,
+ 0.1254165082275237,
+ -0.664097070924529,
+ -0.27811500470033,
+ -0.22794388604080362,
+ -1.082501172450542,
+ 0.3217591151900715,
+ -0.4639200640406185,
+ -0.028506562448542216,
+ -0.13429613943162844,
+ -0.7642342132062658,
+ -0.2539178781448118,
+ -0.2691480395248165,
+ -0.5362536686549011,
+ 0.1824763647714427,
+ 0.4196048336695032,
+ 0.5224045970105168,
+ 0.9831782946880009,
+ -1.028103564970161,
+ 0.5516041828608416,
+ 0.110626811792886,
+ 0.13840664994446028,
+ -0.15370334890455029,
+ -0.4078686062696484,
+ -0.4302367441798727,
+ 0.2915387192844693,
+ 0.08356085689320575,
+ -0.14128997524414988,
+ 0.12434556309177358,
+ -0.8036727880099963,
+ -0.24548747581912567,
+ -0.36743889302490873,
+ -0.33144063433370635,
+ -0.5867369287426625,
+ -0.09051077935185337,
+ 0.6484159739779232,
+ -0.19984397587632063,
+ 0.3256784468959145,
+ 0.2643083408748784,
+ -0.29318200937754657,
+ -0.6191415357168178,
+ -0.01063578836803103,
+ -0.1544165062994819,
+ -0.851107472317619,
+ -0.12037658974428411,
+ -1.3008415570901974,
+ -0.28275482281577213,
+ 0.880381379577909,
+ -0.37667081055226626,
+ -0.19057919244138888,
+ -0.6448763770413728,
+ -0.33659067563497924,
+ 0.0692279919918869,
+ 0.6121491181446829,
+ 0.10451162864301256,
+ 0.42526022710465017,
+ 0.29026172490236135,
+ -0.29428920221030475,
+ -0.8349522521757031,
+ -0.19733576491149055,
+ 0.5979415310175922,
+ -0.22230133411007036,
+ -0.5983157433228256,
+ 0.30489145215969105,
+ 0.06700858333645865,
+ -0.0073440973645985674,
+ 0.39244915654112,
+ -0.3241402169219295,
+ 0.06047407430389079,
+ -0.2097662219535139,
+ 0.44374608890105005,
+ 0.21872915016170522,
+ -0.3611906789138857,
+ 0.18641657604588335,
+ -0.8634819256167026,
+ 0.19981809280730123,
+ -0.11234236287594301,
+ -0.4662954159365449,
+ 0.7091828664665156,
+ 0.8804044059903879,
+ 0.7628281572850474,
+ -0.631292051713591,
+ 0.2759290729462235,
+ -1.2790996428341264,
+ 0.28212379932869436,
+ -0.09227565159851858,
+ -0.7710549762839377,
+ -1.0030464440795615,
+ -1.030751788318199,
+ -0.6041831152965712,
+ -0.5120312629057311,
+ -0.29626347460059144,
+ -0.38918053808331887,
+ 0.2755928581642667,
+ 0.40909944171115376,
+ 0.0016872287054760515,
+ 0.0850923112624642,
+ 0.22661402466363767,
+ -0.34819372372835766,
+ -0.47765260428525536,
+ -0.044203443145923726,
+ -0.7387650405276309,
+ 0.5708445570667524,
+ 0.09682972963985914,
+ 0.3584111603014024,
+ 0.9332683085365299,
+ 0.04134034292134969,
+ 0.06087375419164176,
+ -0.7567248716210655,
+ -0.31540584227738866,
+ 0.5120934121646025,
+ -0.9270462831670941,
+ -0.6105168477626766,
+ -0.2910488517343079,
+ 0.113242049424916,
+ 0.4797196183617398,
+ 0.1861033880355265,
+ -0.5443743098520932,
+ -0.9422931529673044,
+ -0.7716217641360945,
+ 0.244424710893137,
+ 0.5598087166445058,
+ -0.07044312345560197,
+ 0.8842196827814259,
+ -0.16158385709239076,
+ 0.07380129314933415,
+ 0.2330182509341212,
+ 0.7973515336333977,
+ -0.2568000532848582,
+ 0.26635041983095564,
+ 0.584958417855144,
+ 1.4361311066408247,
+ 0.013757452525318126,
+ -0.886125798334872,
+ -0.830629607273935,
+ 0.22854812829313592,
+ 0.3011060301808901,
+ -0.23438712803751183,
+ 0.4991927195941458,
+ -0.15089594990973298,
+ -0.38304013919234514,
+ -0.6134666119421538,
+ 0.050077038239976335,
+ 0.10183687508848294,
+ 0.4389912933782805,
+ 0.41344017701993,
+ 0.1132394459507634,
+ -0.18368275340808904,
+ -0.4567923131166247,
+ 0.40158947534017253,
+ -0.7463442844797609,
+ 0.13556180052128441,
+ 0.010683647174218103,
+ 0.3736058395739117,
+ 1.2121201301364708,
+ -0.44202269818052486,
+ -0.3684219485462167,
+ 0.14066377855910672,
+ -0.03349535861243602,
+ -0.2579696088520498,
+ 0.7812729284432711,
+ 0.26452633867314745,
+ -0.39713233981091356,
+ 0.6271447115846247,
+ -0.14677896608331464,
+ 0.6782909023117026,
+ -0.23321499121676315,
+ 0.01782074114874188,
+ 0.8075659079527546,
+ -0.5823696772285858,
+ 0.36729578839902444,
+ 0.4051262185071905,
+ -0.10028459861547143,
+ -0.5743186747143576,
+ 0.5079109094891985,
+ -0.030839924923985906,
+ -0.21440825016528647,
+ -0.34655280363157204,
+ -0.08822077763861258,
+ 0.18351391954166107,
+ 0.41379511032435984,
+ -0.043071941523187274,
+ 0.5360695059928035,
+ 1.4606752417473037,
+ -0.2182799020788339,
+ -0.45196742054309763,
+ 1.1814662177709192,
+ 0.5048653523549688,
+ -0.3095771305025989,
+ -1.0287477348558494,
+ -0.010396853837703945,
+ 0.3640014706145672,
+ 0.09144822055242008,
+ -0.6874382095740924,
+ 0.32298208956226765,
+ 0.3995960033251268,
+ 0.2413717610910162,
+ 0.4766643041293561,
+ -0.06133515799739775,
+ -0.8123392292347803,
+ -0.16153963655801462,
+ 0.12617675106314374,
+ 0.14590563445777205,
+ 0.7815954043483285,
+ -0.4415548885735795,
+ 0.038918598506401114,
+ 0.09023995679531271,
+ -1.5965537839224304,
+ -0.14937645418284312,
+ 0.37589552504759216,
+ 0.21317879810277165,
+ -0.5742228545983774,
+ -0.056635205268882216,
+ 0.7191389891586834,
+ -0.4596144672876017,
+ 0.334072042769497,
+ -0.9366488881087729,
+ -0.5400240328573243,
+ 0.22366094782937562,
+ -0.6405081808675565,
+ -0.03392775526370165,
+ -0.42638683756110973,
+ -0.24236640864723746,
+ 0.4231783274954368,
+ 0.321774916158731,
+ -0.5149804087905806,
+ 0.1673876660532705,
+ 0.20182423162099838,
+ 0.4775612896746765,
+ -0.21179953279673053,
+ -1.0312624596215725,
+ 0.5337664571271366,
+ -0.012109728336379022,
+ -0.7061102777077144,
+ 0.03982069562285759,
+ -0.226185898124867,
+ 0.5311967640734399,
+ -0.2141535486038243,
+ 0.09357213250227447,
+ -0.49286499783993143,
+ -0.5936930257823756,
+ -1.2947818210093072,
+ -0.28981658660678766,
+ -0.16289815829108312,
+ -0.09719215078866801,
+ 0.17658314640534423,
+ -0.1692419217308454,
+ 0.14770070506951472,
+ -0.08423048813480716,
+ -0.6587987678039797,
+ 0.5032712826398206,
+ -0.5699392805645227,
+ -0.6585575336699326,
+ 0.05903426349553936,
+ 1.0609274495042973,
+ 0.30391099354721623,
+ -0.6484972732805546,
+ 0.011434031149441082,
+ 0.4996511161474554,
+ 0.25238746061410877,
+ -0.42031001325227657,
+ -0.2733667841006897,
+ 0.11946604958484719,
+ 0.18341220590734375,
+ 0.19587907452191095,
+ 0.46120509224925127,
+ -0.8076878447347209,
+ 0.16116023460566992,
+ -0.6085792604127482,
+ -0.7606580259612259,
+ -0.49915544907398024,
+ 0.21581015635902423,
+ -0.20186504516830484,
+ 0.012097803195458057,
+ 0.4518509303650641,
+ -0.1621796408608016,
+ 0.5895198955799014,
+ -0.593839694230782,
+ 0.23230864864919654,
+ -0.10057982793641967,
+ -0.141643935773071,
+ 0.1294524868520387,
+ -0.29334690073763736,
+ 0.23745182831126233,
+ -0.4356486487286221,
+ 0.6729898401233743,
+ -0.06318978977320588,
+ -0.9694644995291425,
+ 0.5001656623027874,
+ 0.33887248526242575,
+ -0.25695392482945745,
+ -0.08979089096979898,
+ -0.17531504963677957,
+ -0.2445935650738318,
+ -0.31736073428088496,
+ -0.5548499209781116,
+ -0.20490932846425625,
+ 0.12062882730927127,
+ -0.33628685060136565,
+ -0.949940967447608,
+ 0.06631687319128687,
+ 0.4872646523353208,
+ -0.5535403346434864,
+ 0.06019058197679916,
+ 1.086334773007018,
+ -0.42371083857521086,
+ 0.26766409297696137,
+ 0.045266641152080345,
+ -0.16599016528450727,
+ -0.09524983988953328,
+ -0.3547259085695198,
+ 0.21774318528492165,
+ -0.25655289908804146,
+ 0.12977333879195863,
+ -0.3694052404437515,
+ -0.3076837420065268,
+ 0.46771935102229767,
+ -0.5429910580875161,
+ 0.267981722557024,
+ -0.4040288991405725,
+ -0.1836436567006703,
+ -0.9190918383975613,
+ 0.11173299118592606,
+ 0.17465839805909877,
+ 0.009709802943866253,
+ 0.15158989141713775,
+ -0.399970950971025,
+ 0.808155304218294,
+ 0.526841209573177,
+ 0.5339014607895964,
+ -0.47515379598678775,
+ -0.8553066862909624,
+ 0.05222460926873573,
+ 0.08441086159500533,
+ -0.035026081556590705,
+ -0.5809391513040953,
+ 0.46367656709528704,
+ -0.11918449136739256,
+ -0.4875988148912149,
+ -0.2505470849699226,
+ -0.0947908082993717,
+ -0.5005230462835706,
+ 1.3516161464996186,
+ -0.3389376597654538,
+ 0.3270378415637119,
+ 0.9153164484282286,
+ -0.25560129976249035,
+ -0.6868292725814786,
+ 0.06872425731384602,
+ -0.4764372736014695,
+ -0.8061391289943227,
+ -0.6574572267920238,
+ -0.8199822646856965,
+ -0.371063745535946,
+ -0.03771681945079619,
+ 0.8009829059485842,
+ 0.12303124406497412,
+ 0.42162329765809586,
+ -1.0854713587489067,
+ 0.08794290621616829,
+ -0.06160240339224282,
+ -0.27574268802023383,
+ -0.021801223186226792,
+ -0.8475255202153765,
+ 0.31132468086722587,
+ -0.0973037276186215,
+ 0.3712352928490241,
+ 0.6600112556103529,
+ 0.3058845454526427,
+ 0.018518398524206003,
+ 0.21465111225862998,
+ 0.34621048993692805,
+ 0.7031587318359169,
+ 0.04155278631434739,
+ 0.7523601870155011,
+ -0.38002798184480135,
+ -0.04121987646725156,
+ 0.7287757497324652,
+ 0.15460453852493172,
+ 0.3760782027952916,
+ -0.15958725520959027,
+ -0.6702252230115723,
+ 0.9375862348228723,
+ -0.05751303957370868,
+ 0.08006639778332025,
+ -0.33567003822523284,
+ -0.10659831411884457,
+ 0.3759846658694095,
+ 0.1595269678333091,
+ 0.3980129284017444,
+ -0.5380035692992993,
+ -0.01065582433597112,
+ -0.9505953428765035,
+ 0.03033040690731037,
+ 0.3542033834552314,
+ 0.7568571963064136,
+ 0.9015698381279725,
+ 0.7920679715027449,
+ -0.1335633255057418,
+ -0.2543625116149669,
+ 0.7905953510160666,
+ -0.44751915703805767,
+ 0.24153052584171975,
+ -0.0733965059927747,
+ -0.8061103141277122,
+ -0.44841965793276595,
+ 0.13426532395291613,
+ 0.44559611270764365,
+ 1.0759077006646525,
+ 0.35957665962121,
+ 0.10556511941384716,
+ 0.4935897635755919,
+ 0.06562848354615236,
+ -0.03842594147938394,
+ 0.1124279909040391,
+ 0.32500129041172987,
+ -0.08432733598336378,
+ -0.22097032478470435,
+ 0.545199538721423,
+ -0.705466189873135,
+ 0.04929406614213089,
+ -0.0094248114724238,
+ -0.3541072116282786,
+ -0.11660806563175083,
+ -0.47656831695662255,
+ -0.14356208260091208,
+ 0.30621868732021895,
+ -0.18075176260305081,
+ 0.571863103660331,
+ -0.054279852888261565,
+ 0.01661499532223032,
+ 0.1040584286362698,
+ 0.06426875571946533,
+ 0.9409245227488195,
+ 0.27436245387048075,
+ -0.04642245057055727,
+ -0.07992819599870016,
+ 0.5138375704629791,
+ -0.6328539204323502,
+ 0.43308742410725065,
+ -0.4847286002633684,
+ -0.21359718093584246,
+ 0.3231136549219015,
+ -0.887655446304756,
+ 0.59681841587824,
+ -0.45957708680500087,
+ -0.5002911590214891,
+ 0.33531010453832244,
+ -0.6962326500321644,
+ 0.1250232572994765,
+ -0.1443468146399285,
+ -0.13016091938561036,
+ 0.06715437073527386,
+ -0.40540413657989105,
+ -0.3967443602761067,
+ 0.8742659866190903,
+ -0.6521701214390763,
+ 0.8312459940178372,
+ -0.5162731021708287,
+ -0.5633525684137917,
+ 0.5454832151075991,
+ 0.20540714397729243,
+ 0.5528523342429679,
+ 0.10746051514436766,
+ 0.15401714209287065,
+ -0.3898302661346699,
+ -0.6551543730598043,
+ -0.697841905394978,
+ 0.28108401328915106,
+ 0.10461093687226386,
+ 0.8417190961104751,
+ 0.4029350332480943,
+ -0.48242581654872874,
+ -0.8077914117741158,
+ 0.617174435939961,
+ 0.2962321295764472,
+ 0.013202878479463553,
+ -0.14008057940980345,
+ 0.4048017599608231,
+ -0.21203052223204483,
+ 0.23691967353545806,
+ 0.007226135439139636,
+ -0.2731421240018499,
+ -0.003211134905468871,
+ 0.21819294526328425,
+ 0.05480490196291532,
+ 0.044181479602667606,
+ 0.18500551494106388,
+ 0.12939803133355118,
+ -0.7993235852523586,
+ -0.28045972397061947,
+ 0.1477401590145802,
+ -0.3484772022553678,
+ 0.16690974487800497,
+ -0.5865623187933207,
+ -0.18482109609904684,
+ 0.0536510720021145,
+ -0.22385846290513878,
+ 0.7854380760342496,
+ 0.5633837344549026,
+ 0.5969625031995277,
+ -0.07147154738185346,
+ -0.8662574997425458,
+ -1.1156500730963161,
+ -0.3190255507203785,
+ -0.25042223747222847,
+ 0.9005288670763695,
+ 0.2713368998670109,
+ 0.39389187595411945,
+ 0.310423799125558,
+ 0.08407190929239483,
+ 0.23604528884856368,
+ 0.9896499051878939,
+ -0.3739551280587669,
+ 0.5363715128699033,
+ -0.1196234320555748,
+ -1.0370413348749867,
+ 0.4596922957932117,
+ 1.2651437613731649,
+ 0.14300211094005544,
+ -0.5504798174992853,
+ -0.9791737271102969,
+ 0.6147747972262085,
+ -0.24834961161826108,
+ 0.23265522839002672,
+ 0.05297417715206798,
+ -1.3221716735085174,
+ 0.7514851641975766,
+ -0.12686983074728675,
+ -0.23384658588271656,
+ -0.5428931624696736,
+ -0.04899157673544774,
+ -0.15402526975205122,
+ 0.19582428371089555,
+ -0.1345634706225537,
+ 0.17159613774870527,
+ -0.31078594492802547,
+ 0.184805168021817,
+ -0.1885501969510932,
+ 0.014631406842489203,
+ -0.5630251253860841,
+ 0.02569686179424313,
+ 0.8865162341034407,
+ -0.6309607503569958,
+ 0.4528661504313094,
+ 0.32688316932440986,
+ 0.29783064702174605,
+ -0.6872190465854088,
+ 1.0678371069893478,
+ -1.5688742668299969,
+ -0.5280284045330259,
+ -0.11161945706457982,
+ 0.027447000308143177,
+ -0.1427770374288284,
+ -0.26056121418966915,
+ -0.3226077929750285,
+ -0.27780223300172424,
+ -0.044790340627624436,
+ 0.09866921015366314,
+ 0.07563664182675578,
+ 0.09745414017634052,
+ -0.5668850484335324,
+ -0.29677836114043094,
+ 1.4701943173321403,
+ -0.32795038826488043,
+ -0.09736809735938745,
+ 0.009354378222948712,
+ 0.19425922654444294,
+ -0.5620563599930067,
+ -0.47376323106142904,
+ 0.38643883391180456,
+ -0.20352614356226761,
+ 0.485828367270643,
+ 0.6898090823944651,
+ 0.3133586122949825,
+ -0.4311967361913794,
+ -0.47656252268804333,
+ -0.2565427100486466,
+ -0.3625478934239985,
+ -0.25808914355747925,
+ 0.3207407976114761,
+ -0.21596127233697032,
+ -0.40020476261384114,
+ -0.377145664906787,
+ -0.5944566857373215,
+ -0.35415192360053194,
+ -0.1757241037707915,
+ -0.5350751191582137,
+ 0.013260629624530118,
+ 0.4409373256138589,
+ 0.08153348197188204,
+ 0.37245132240322454
+ ],
+ "yaxis": "y2"
}
- ],
- "source": [
- "%run download_dataset"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "wrDpshHUnFOd"
- },
- "source": [
- "## Model"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 49,
- "referenced_widgets": [
- "94494955b6a94cf2a46a27d1d7016226",
- "a5d8febd3dbb4cf0b6627d69c193d5e9",
- "fc0529982c3541d3b828ecd22d393cb2",
- "68f7078a7fe14149a1f0bfaeed27af3d",
- "492d7a3140b74aa285c2d601ab05310d",
- "53c9e0bce43241da9a24c5727b08a33f",
- "91157c29d648453e8f634255a867f853",
- "6e97b634bff64e7c8dc288df99b583e4",
- "4ab291df191942a2af948edc15e83174",
- "442f227cd54a449ca76b191d151b64b2",
- "47c7b76960c842b7b46d6a121e01842c"
- ]
- },
- "id": "IKm2VnUKnFOe",
- "outputId": "0ca1d7ea-1720-4687-8383-cd2252dd3087"
- },
- "outputs": [
- {
- "data": {
- "application/vnd.jupyter.widget-view+json": {
- "model_id": "94494955b6a94cf2a46a27d1d7016226",
- "version_major": 2,
- "version_minor": 0
+ ],
+ "layout": {
+ "height": 800,
+ "template": {
+ "data": {
+ "bar": [
+ {
+ "error_x": {
+ "color": "#2a3f5f"
+ },
+ "error_y": {
+ "color": "#2a3f5f"
+ },
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "bar"
+ }
+ ],
+ "barpolar": [
+ {
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "barpolar"
+ }
+ ],
+ "carpet": [
+ {
+ "aaxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "baxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "type": "carpet"
+ }
+ ],
+ "choropleth": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "choropleth"
+ }
+ ],
+ "contour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "contour"
+ }
+ ],
+ "contourcarpet": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "contourcarpet"
+ }
+ ],
+ "heatmap": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "heatmap"
+ }
+ ],
+ "heatmapgl": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "heatmapgl"
+ }
+ ],
+ "histogram": [
+ {
+ "marker": {
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "histogram"
+ }
+ ],
+ "histogram2d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2d"
+ }
+ ],
+ "histogram2dcontour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2dcontour"
+ }
+ ],
+ "mesh3d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "mesh3d"
+ }
+ ],
+ "parcoords": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "parcoords"
+ }
+ ],
+ "pie": [
+ {
+ "automargin": true,
+ "type": "pie"
+ }
+ ],
+ "scatter": [
+ {
+ "fillpattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ },
+ "type": "scatter"
+ }
+ ],
+ "scatter3d": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatter3d"
+ }
+ ],
+ "scattercarpet": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattercarpet"
+ }
+ ],
+ "scattergeo": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergeo"
+ }
+ ],
+ "scattergl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergl"
+ }
+ ],
+ "scattermapbox": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermapbox"
+ }
+ ],
+ "scatterpolar": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolar"
+ }
+ ],
+ "scatterpolargl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolargl"
+ }
+ ],
+ "scatterternary": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterternary"
+ }
+ ],
+ "surface": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "surface"
+ }
+ ],
+ "table": [
+ {
+ "cells": {
+ "fill": {
+ "color": "#EBF0F8"
+ },
+ "line": {
+ "color": "white"
+ }
},
- "text/plain": [
- "generation_config.json: 0%| | 0.00/147 [00:00, ?B/s]"
+ "header": {
+ "fill": {
+ "color": "#C8D4E3"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "type": "table"
+ }
+ ]
+ },
+ "layout": {
+ "annotationdefaults": {
+ "arrowcolor": "#2a3f5f",
+ "arrowhead": 0,
+ "arrowwidth": 1
+ },
+ "autotypenumbers": "strict",
+ "coloraxis": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "colorscale": {
+ "diverging": [
+ [
+ 0,
+ "#8e0152"
+ ],
+ [
+ 0.1,
+ "#c51b7d"
+ ],
+ [
+ 0.2,
+ "#de77ae"
+ ],
+ [
+ 0.3,
+ "#f1b6da"
+ ],
+ [
+ 0.4,
+ "#fde0ef"
+ ],
+ [
+ 0.5,
+ "#f7f7f7"
+ ],
+ [
+ 0.6,
+ "#e6f5d0"
+ ],
+ [
+ 0.7,
+ "#b8e186"
+ ],
+ [
+ 0.8,
+ "#7fbc41"
+ ],
+ [
+ 0.9,
+ "#4d9221"
+ ],
+ [
+ 1,
+ "#276419"
+ ]
+ ],
+ "sequential": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "sequentialminus": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
]
+ ]
+ },
+ "colorway": [
+ "#636efa",
+ "#EF553B",
+ "#00cc96",
+ "#ab63fa",
+ "#FFA15A",
+ "#19d3f3",
+ "#FF6692",
+ "#B6E880",
+ "#FF97FF",
+ "#FECB52"
+ ],
+ "font": {
+ "color": "#2a3f5f"
+ },
+ "geo": {
+ "bgcolor": "white",
+ "lakecolor": "white",
+ "landcolor": "#E5ECF6",
+ "showlakes": true,
+ "showland": true,
+ "subunitcolor": "white"
+ },
+ "hoverlabel": {
+ "align": "left"
+ },
+ "hovermode": "closest",
+ "mapbox": {
+ "style": "light"
+ },
+ "paper_bgcolor": "white",
+ "plot_bgcolor": "#E5ECF6",
+ "polar": {
+ "angularaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "radialaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
},
- "metadata": {},
- "output_type": "display_data"
+ "scene": {
+ "xaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "yaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "zaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ }
+ },
+ "shapedefaults": {
+ "line": {
+ "color": "#2a3f5f"
+ }
+ },
+ "ternary": {
+ "aaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "baxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "caxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "title": {
+ "x": 0.05
+ },
+ "xaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ },
+ "yaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ }
+ }
+ },
+ "title": {
+ "text": "Temporal Density Heatmap of Prediction-Target Differences"
+ },
+ "width": 1200,
+ "xaxis": {
+ "anchor": "y",
+ "domain": [
+ 0,
+ 1
+ ],
+ "title": {
+ "text": "Time"
+ }
+ },
+ "xaxis2": {
+ "anchor": "y2",
+ "domain": [
+ 0,
+ 1
+ ],
+ "title": {
+ "text": "Time"
+ }
+ },
+ "yaxis": {
+ "anchor": "x",
+ "domain": [
+ 0.24,
+ 1
+ ],
+ "title": {
+ "text": "Prediction - Target"
+ }
+ },
+ "yaxis2": {
+ "anchor": "x2",
+ "domain": [
+ 0,
+ 0.19
+ ],
+ "title": {
+ "text": "Difference"
+ }
}
- ],
- "source": [
- "from transformers import T5ForConditionalGeneration, AutoTokenizer\n",
- "\n",
- "MODEL_ID = \"google-t5/t5-small\"\n",
- "COMP_EMBED_DIM = 512\n",
- "\n",
- "model = T5ForConditionalGeneration.from_pretrained(MODEL_ID)\n",
- "tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "_gq-mmhQxLFN"
+ }
},
- "outputs": [],
- "source": [
- "import torch.nn as nn\n",
- "\n",
- "pooling_layer = nn.Linear(model.encoder.config.d_model, COMP_EMBED_DIM)"
+ "text/html": [
+ "
"
]
- },
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "import plotly.graph_objects as go\n",
+ "from plotly.subplots import make_subplots\n",
+ "\n",
+ "# Generate sample data\n",
+ "np.random.seed(42)\n",
+ "n_points = 1000\n",
+ "times = pd.date_range(start='2023-01-01', periods=n_points, freq='H')\n",
+ "predictions = np.random.normal(loc=0, scale=1, size=n_points) + np.sin(np.linspace(0, 10, n_points))\n",
+ "targets = predictions + np.random.normal(loc=0, scale=0.5, size=n_points)\n",
+ "differences = predictions - targets\n",
+ "\n",
+ "# Create DataFrame\n",
+ "df = pd.DataFrame({\n",
+ " 'time': times,\n",
+ " 'difference': differences\n",
+ "})\n",
+ "\n",
+ "# Create 2D histogram\n",
+ "fig = make_subplots(rows=2, cols=1, row_heights=[0.8, 0.2], vertical_spacing=0.05)\n",
+ "\n",
+ "heatmap = go.Histogram2d(\n",
+ " x=df['time'],\n",
+ " y=df['difference'],\n",
+ " colorscale='Viridis',\n",
+ " nbinsx=100,\n",
+ " nbinsy=50,\n",
+ " colorbar=dict(title='Density'),\n",
+ ")\n",
+ "\n",
+ "fig.add_trace(heatmap, row=1, col=1)\n",
+ "\n",
+ "# Add a line plot to show the trend of differences\n",
+ "line = go.Scatter(\n",
+ " x=df['time'],\n",
+ " y=df['difference'],\n",
+ " mode='lines',\n",
+ " line=dict(color='rgba(255, 255, 255, 0.5)'),\n",
+ " name='Difference Trend'\n",
+ ")\n",
+ "\n",
+ "fig.add_trace(line, row=2, col=1)\n",
+ "\n",
+ "# Update layout\n",
+ "fig.update_layout(\n",
+ " title='Temporal Density Heatmap of Prediction-Target Differences',\n",
+ " xaxis_title='Time',\n",
+ " yaxis_title='Prediction - Target',\n",
+ " height=800,\n",
+ " width=1200,\n",
+ ")\n",
+ "\n",
+ "fig.update_xaxes(title_text=\"Time\", row=2, col=1)\n",
+ "fig.update_yaxes(title_text=\"Difference\", row=2, col=1)\n",
+ "\n",
+ "# Show the plot\n",
+ "fig.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [
{
- "cell_type": "markdown",
- "metadata": {
- "id": "NMCRynUDpAz6"
- },
- "source": [
- "## Data"
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0wAAAINCAYAAAAN7v/KAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOy9eZwcdZ3///pUX3PPJJmZnJODHBAIgUAU4oEg4sV64SqouyLei37dxYNdXV3BY2F1UXf3t6K7Kiiiggu6KKuoeCKCBAIhIQTIfWeSzN1XVX0+vz8+9amu7q6qruquPmbyfvIIyUxXV326uqo+79fnfTEhhABBEARBEARBEARRhtbsARAEQRAEQRAEQbQqJJgIgiAIgiAIgiA8IMFEEARBEARBEAThAQkmgiAIgiAIgiAID0gwEQRBEARBEARBeECCiSAIgiAIgiAIwgMSTARBEARBEARBEB6QYCIIgiAIgiAIgvAg3uwBNBLOOQ4ePIju7m4wxpo9HIIgCIIgCIIgmoQQAhMTE1iwYAE0zduPdFIJpoMHD2JoaKjZwyAIgiAIgiAIokXYt28fFi1a5Pn6SSWYuru7AciT0tPT0+TREARBEARBEATRLMbHxzE0NGRrBC9OKsGkwvB6enpIMBEEQRAEQRAEUTFVh4o+EARBEARBEARBeECCiSAIgiAIgiAIwgMSTARBEARBEARBEB6cVDlMBEEQBEEQrYAQAoZhwDTNZg+FIGYssVgM8Xi85nZCJJgIgiAIgiAaSD6fx6FDh5BOp5s9FIKY8XR0dGD+/PlIJpNV74MEE0EQBEEQRIPgnGPXrl2IxWJYsGABkslkzavfBEGUI4RAPp/H8PAwdu3ahZUrV/o2p/WDBBNBEARBEESDyOfz4JxjaGgIHR0dzR4OQcxo2tvbkUgksGfPHuTzebS1tVW1Hyr6QBAEQRAE0WCqXekmCCIcUdxrdLcSBEEQBEEQBEF4QIKJIAiCIAiCIAjCAxJMBEEQBEEQBBGS3/72t2CMYXR0FABw6623oq+vr6Z9RrEPInpIMBEEQRAEQRC+vOMd7wBjDO9///vLXrv66qvBGMM73vGOxg+shFtvvRWMMfvP/Pnz8eY3vxm7du2q+7Evv/xyPPPMM4G3X7p0Kb7yla/UtA+iMZBgIgiCIAiCICoyNDSEH/zgB8hkMvbvstksvv/972Px4sVNHFkxPT09OHToEA4ePIjvfe97ePzxx/Ha177WtUmwaiAcBe3t7RgcHGz6PojoIcFEEARBEATRJIQApqaa80eIcGM955xzsHjxYtx999327+6++24MDQ1h3bp1JZ9L4Atf+AJOOeUUtLe346yzzsL//M//2K+bpol3vetdWLZsGdrb23Hqqafi3/7t34r28Y53vAOvf/3r8a//+q+YP38+5syZgw984APQdd13nIwxzJs3D/Pnz8dFF12ET3/609iyZQuee+45O4zuvvvuw/r165FKpfCHP/yh4ngB4P/+7/+watUqtLe346KLLsLu3buLXncLp7vnnnuwfv16tLW1ob+/H5dddhkA4MILL8SePXtwzTXX2N4wr33cfPPNWL58OZLJJE499VTcdtttZZ/3G9/4Bt7whjego6MDK1euxD333ON7johwkGAiCIIgCIJoEuk00NXVnD/pdPjxXnXVVbjlllvsn7/1rW/hne98Z9l2n/zkJ3HLLbfg5ptvxtatW3HNNdfgr/7qr/C73/0OgGzgu2jRItx555146qmn8E//9E/4xCc+gTvvvLNoP7/5zW+wY8cO/OY3v8G3v/1t3Hrrrbj11ltDjbm9vR0AioTWtddeixtuuAHbtm3D2rVrK4533759uOyyy/DqV78ajz/+ON797nfjH/7hH3yPe++99+Kyyy7DpZdeik2bNuH+++/H+vXrAUihuWjRInzmM5/BoUOHcOjQIdd9/OhHP8Lf/u3f4iMf+Qi2bNmC973vfbjqqqvwm9/8pmi766+/Hm9+85uxefNmvPrVr8bb3vY2nDhxItR5InwQJxFjY2MCgBgbG2v2UAiCIAiCOAnJZDLiqaeeEplMRgghxOSkENLX0/g/k5PBx33llVeK173udWJ4eFikUimxa9cusXv3btHW1iaGh4fF6173OnHllVdan2lStLW1iQcffLBoH+9617vEW97yFs9jXH311eKNb3xj0TGXLFkiDMOwf/emN71JXH755Z77uOWWW0Rvb6/98759+8T5558vFi1aJHK5nPjNb34jAIgf//jH9jZBxvvxj39crF69WnDO7df//u//XgAQIyMjrsfesGGDeNvb3uY51iVLlogvf/nLvuN/wQteIN7znvcUbfOmN71JvPrVr7Z/BiA++clPFn0expj42c9+5nnsk4nSe85JUG0Qb6pa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ALNmzQJjDO94xztCfb777rsP69evRyqVwje/+U0wxvD0008XjeFLX/oSli5daouqd73rXVi2bBna29tx6qmn4t/+7d9CfaYoIMFEEARBEARBeGIYBkzTRFtbW9Hv29vb8cADDxT97re//S0GBwexatUqvOc978HRo0ft18466yxs3LgRIyMjePTRR5HJZLBixQo88MADeOyxx/ChD30o0Hhuv/12vOxlL8O6devKXkskEujs7AQgRdhdd92Fb3/723jsscewYsUKvOIVr8CJEyeK3vOP//iPuOmmm7Bx40bE43G8853vBABcfvnl+NWvfgUA+POf/4xDhw5haGio7Jg33XQTvvWtb+Gb3/wmHnjgAZw4cQI/+tGPirb55Cc/iVtuuQU333wztm7dimuuuQZ/9Vd/hd/97neBxgIA9957Ly677DJceuml2LRpky2uFFdddRX++Mc/4gc/+AE2b96MN73pTXjlK1+JZ599NtB5VVx//fV485vfjM2bN+PVr3413va2t+HEiRMYGhrCXXfdBQDYvn07Dh06ZIuXoJ/v2muvxQ033IBt27bhL//yL3Huuefi9ttvL9rme9/7Ht761reCMQbOORYtWoQ777wTTz31FP7pn/4Jn/jEJ3DnnXeG+kw1I04ixsbGBAAxNjbW7KEQBEEQBHESkslkxFNPPSUymYz9u7RuiEcOnhBPHBkVW4fH6/7niSOj4pGDJ0RaNwKPe8OGDeIlL3mJOHDggDAMQ9x2222CMSZWrVplb/ODH/xA/PSnPxVPPvmkuOeee8RZZ50lzjjjDJHNZu1tPv3pT4vly5eLNWvWiLvvvlvkcjmxZs0asXHjRvEf//EfYtWqVeIFL3iB2LJli+dY2tvbxYc+9CHf8U5OTopEIiFuv/12+3f5fF4sWLBAfOELXxBCCPGb3/xGABC/+tWv7G3uvfdeAcD+fjZt2iQAiF27dhV9hrPOOsv+ef78+eLGG2+0f9Z1XSxatEi87nWvs8fS1tYmHnzwwaIxvutd7xJvectbAo9lw4YN4m1ve5vr533uuecEY0wcOHCg6PcXX3yx+PjHP+55npYsWSK+/OUv2z8DEJ/85CftnycnJwVjTPzsZz8rGufIyEjRNkE/349//OOibb70pS+JU045xf55+/btAoDYunWr55ivvvpq8cY3vtH++corr7TPtRtu95wi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hR7znve8B7/2a7+GV7ziFb0eyqLm3/7t33DeeefhTW96E1asWIGzzz4b//AP/9DrYS1aLrroIvz3f/83nnzySQDAz372M9xzzz149atf3eORLW527NiBffv21T3X8/k8XvrSl9JzPSNMTEyAMdYX0XGj1wMgwnn66adx00034a/+6q96PZQFz6FDh2BZFlauXFn385UrV2Lfvn09GhUBqFXCD3zgA7joootw+umn93o4i5Z//ud/xtatW3H//ff3eiiLnu3bt+OWW27BBz7wAXz4wx/Gfffdh/e9733I5/N4+9vf3uvhLTquueYaTExM4JRTToEQApZl4WMf+xh+8zd/s9dDW9ToZ3fQc/3ZZ5/txZAID/Pz87j22mvx1re+FSMjI70eTlMowtQFbrjhBjDGIv888MADde/Zu3cvLr30UrzpTW/Cu9/97h6NfPHBGKv7t5Sy4WdEd3nve9+Ln//85/ja177W66EsWnbt2oX3v//9+MpXvoJCodDr4Sx6bNvGOeecg49//OM4++yz8Xu/93u48sor69KJie7x9a9/HV/5ylfw1a9+FVu3bsWXvvQlfPKTn8SXvvSlXg+NAD3Xs0ilUsHll18O27bxmc98ptfDiQVFmLrAe9/7Xlx++eWRrznuuOPcv+/duxeXXHIJLrjgAnzuc5/r8OgIABgfH4cQoiGadODAgYbVKaJ7/OEf/iH+7d/+DXfffTfWrVvX6+EsWh588EEcOHAA5557rvszy7Jw99134+abb0apVIIQoocjXFysXr0ap556at3PtmzZgn/5l3/p0YgWNx/84Adx7bXXus/5M844A88++yxuvPFGvOMd7+jx6BYvq1atAqAiTatXr3Z/Ts/13lKpVPDmN78ZO3bswJ133tkX0SWABFNXGB8fx/j4eKzX7tmzB5dccgnOPfdc3HrrreCcgoDdIJfL4dxzz8Udd9yBX//1X3d/fscdd+D1r399D0e2OJFS4g//8A/xrW99Cz/84Q+xadOmXg9pUfPyl78cjzzySN3Pfvu3fxunnHIKrrnmGhJLXeZFL3pRg83+k08+iY0bN/ZoRIub2dnZhme1EIJsxXvMpk2bsGrVKtxxxx04++yzAah65bvuuguf+MQnejy6xYkWS9u2bcMPfvADLFu2rNdDig0Jpgyxd+9eXHzxxdiwYQM++clP4uDBg+7v9EoJ0Tk+8IEP4Ld+67dw3nnnudG9nTt34qqrrur10BYd73nPe/DVr34V3/72tzE8POxG/kZHR1EsFns8usXH8PBwQ/3Y4OAgli1bRnVlPeCP/uiPcOGFF+LjH/843vzmN+O+++7D5z73OcpI6BGvfe1r8bGPfQwbNmzAaaedhoceegif+tSn8K53vavXQ1vwTE9P46mnnnL/vWPHDjz88MNYunQpNmzYgKuvvhof//jHsXnzZmzevBkf//jHMTAwgLe+9a09HPXCJep4rFmzBm984xuxdetW/Pu//zssy3Kf7UuXLkUul+vVsOMhicxw6623SgCBf4ju8Hd/93dy48aNMpfLyXPOOUfeddddvR7SoiTsOrj11lt7PTTC4aUvfal8//vf3+thLFq+853vyNNPP13m83l5yimnyM997nO9HtKiZXJyUr7//e+XGzZskIVCQR5//PHyIx/5iCyVSr0e2oLnBz/4QeCz4h3veIeUUkrbtuX1118vV61aJfP5vHzJS14iH3nkkd4OegETdTx27NgR+mz/wQ9+0OuhN4X6MBEEQRAEQRAEQYRABTIEQRAEQRAEQRAhkGAiCIIgCIIgCIIIgQQTQRAEQRAEQRBECCSYCIIgCIIgCIIgQiDBRBAEQRAEQRAEEQIJJoIgCIIgCIIgiBBIMBEEQRAEQRAEQYRAgokgCIJYcNxwww0466yzej0MgiAIYgFAjWsJgiCIvoIxFvn7d7zjHbj55ptRKpWwbNmyLo2KIAiCWKiQYCIIgiD6in379rl///rXv46PfvSjeOKJJ9yfFYtFjI6O9mJoBEEQxAKEUvIIgiCIvmLVqlXun9HRUTDGGn7mT8l75zvficsuuwwf//jHsXLlSoyNjeFP/uRPUK1W8cEPfhBLly7FunXr8IUvfKHus/bs2YO3vOUtWLJkCZYtW4bXv/71eOaZZ7r7hQmCIIieQoKJIAiCWBTceeed2Lt3L+6++2586lOfwg033IDXvOY1WLJkCX7605/iqquuwlVXXYVdu3YBAGZnZ3HJJZdgaGgId999N+655x4MDQ3h0ksvRblc7vG3IQiCILoFCSaCIAhiUbB06VL87d/+LU4++WS8613vwsknn4zZ2Vl8+MMfxubNm3Hdddchl8vh3nvvBQD88z//Mzjn+Md//EecccYZ2LJlC2699Vbs3LkTP/zhD3v7ZQiCIIiuYfR6AARBEATRDU477TRwXlsnXLlyJU4//XT330IILFu2DAcOHAAAPPjgg3jqqacwPDxct535+Xk8/fTT3Rk0QRAE0XNIMBEEQRCLAtM06/7NGAv8mW3bAADbtnHuuefin/7pnxq2tXz58s4NlCAIgsgUJJgIgiAIIoBzzjkHX//617FixQqMjIz0ejgEQRBEj6AaJoIgCIII4G1vexvGx8fx+te/Hj/60Y+wY8cO3HXXXXj/+9+P3bt393p4BEEQRJcgwUQQBEEQAQwMDODuu+/Ghg0b8IY3vAFbtmzBu971LszNzVHEiSAIYhFBjWsJgiAIgiAIgiBCoAgTQRAEQRAEQRBECCSYCIIgCIIgCIIgQiDBRBAEQRAEQRAEEQIJJoIgCIIgCIIgiBBIMBEEQRAEQRAEQYRAgokgCIIgCIIgCCIEEkwEQRAEQRAEQRAhkGAiCIIgCIIgCIIIgQQTQRAEQRAEQRBECCSYCIIgCIIgCIIgQiDBRBAEQRAEQRAEEQIJJoIgCIIgCIIgiBD+f5bAloiN6H8VAAAAAElFTkSuQmCC",
+ "text/plain": [
+ ""
]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import numpy as np\n",
+ "import seaborn as sns\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "# Example data (use your own predictions and x)\n",
+ "x = np.linspace(0, 10, 100) # Time or x-axis\n",
+ "predictions = np.random.normal(0, 1, (100, 10)) # Mock predictions over time\n",
+ "\n",
+ "# Flatten predictions and repeat x-values\n",
+ "x_repeated = np.tile(x, predictions.shape[1])\n",
+ "predictions_flattened = predictions.flatten()\n",
+ "\n",
+ "# Create the plot\n",
+ "fig, ax = plt.subplots(figsize=(10, 6))\n",
+ "\n",
+ "# Plot mean predictions over time\n",
+ "mean_predictions = predictions.mean(axis=1)\n",
+ "plt.plot(x, mean_predictions, color='blue', label='Mean Prediction')\n",
+ "\n",
+ "# Confidence interval (95%)\n",
+ "std_predictions = predictions.std(axis=1)\n",
+ "lower_bound = mean_predictions - 1.96 * std_predictions\n",
+ "upper_bound = mean_predictions + 1.96 * std_predictions\n",
+ "plt.fill_between(x, lower_bound, upper_bound, color='lightblue', alpha=0.5, label=\"95% Confidence Interval\")\n",
+ "\n",
+ "# Create a 2D density plot using KDE for each time step\n",
+ "sns.kdeplot(x=x_repeated, y=predictions_flattened, fill=True, cmap=\"Blues\", ax=ax, alpha=0.5)\n",
+ "\n",
+ "plt.xlabel(\"Time\")\n",
+ "plt.ylabel(\"Predicted Value\")\n",
+ "plt.legend()\n",
+ "plt.show()\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
},
+ "id": "vINNjRbwnFOa",
+ "outputId": "cb1c6076-ba6f-4e11-9b29-f16ceb46122b"
+ },
+ "outputs": [
{
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "2ZH6ZK2ypExq"
- },
- "outputs": [],
- "source": [
- "%pip install datasets"
- ]
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Requirement already satisfied: transformers in /usr/local/lib/python3.10/dist-packages (4.38.2)\n",
+ "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from transformers) (3.13.4)\n",
+ "Requirement already satisfied: huggingface-hub<1.0,>=0.19.3 in /usr/local/lib/python3.10/dist-packages (from transformers) (0.20.3)\n",
+ "Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.10/dist-packages (from transformers) (1.25.2)\n",
+ "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from transformers) (24.0)\n",
+ "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.10/dist-packages (from transformers) (6.0.1)\n",
+ "Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.10/dist-packages (from transformers) (2023.12.25)\n",
+ "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from transformers) (2.31.0)\n",
+ "Requirement already satisfied: tokenizers<0.19,>=0.14 in /usr/local/lib/python3.10/dist-packages (from transformers) (0.15.2)\n",
+ "Requirement already satisfied: safetensors>=0.4.1 in /usr/local/lib/python3.10/dist-packages (from transformers) (0.4.2)\n",
+ "Requirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.10/dist-packages (from transformers) (4.66.2)\n",
+ "Requirement already satisfied: fsspec>=2023.5.0 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0,>=0.19.3->transformers) (2023.6.0)\n",
+ "Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0,>=0.19.3->transformers) (4.11.0)\n",
+ "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (3.3.2)\n",
+ "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (3.6)\n",
+ "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (2.0.7)\n",
+ "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (2024.2.2)\n"
+ ]
+ }
+ ],
+ "source": [
+ "%pip install transformers"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "3yDIICSsnFOb"
+ },
+ "source": [
+ "## Download Data"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
},
+ "id": "QkZQTpFxnexd",
+ "outputId": "7b935131-d364-405b-d429-377e61772a56"
+ },
+ "outputs": [
{
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 49,
- "referenced_widgets": [
- "b52837dbe3f6464e89319ae13c7f571d",
- "1717a23099834c109ab6c2cd746dc196",
- "ed4e23d565d94444b645a5d6344d6676",
- "c8a24f0cd406418d830e16592770a533",
- "1360d09087064fe1808dd612b84f8235",
- "6e9ad313f8d84d5bb455992f6fbdb6e0",
- "1696865a399b4cf19b2e29f2e387a8c1",
- "ed6ff113bf17461e91e5533bb4b1a016",
- "3a0248bb4cd041e28a5924c13ebbdaa3",
- "2960c6f37441492e96aaff9cc128390c",
- "e6fae880577e4d82bf1afdc13d86fd30"
- ]
- },
- "id": "BF26H2PapAjj",
- "outputId": "9d9781a6-e8ff-4bcc-bddb-9ed59d8ea5ed"
- },
- "outputs": [
- {
- "data": {
- "application/vnd.jupyter.widget-view+json": {
- "model_id": "b52837dbe3f6464e89319ae13c7f571d",
- "version_major": 2,
- "version_minor": 0
- },
- "text/plain": [
- "Generating train split: 0 examples [00:00, ? examples/s]"
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "from datasets import load_dataset\n",
- "\n",
- "dataset = load_dataset(\"text\", data_files=[\"dataset/enwik8\"])"
- ]
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Collecting requests_cache\n",
+ " Downloading requests_cache-1.2.0-py3-none-any.whl (61 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m61.4/61.4 kB\u001b[0m \u001b[31m1.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hRequirement already satisfied: attrs>=21.2 in /usr/local/lib/python3.10/dist-packages (from requests_cache) (23.2.0)\n",
+ "Collecting cattrs>=22.2 (from requests_cache)\n",
+ " Downloading cattrs-23.2.3-py3-none-any.whl (57 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m57.5/57.5 kB\u001b[0m \u001b[31m6.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hRequirement already satisfied: platformdirs>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests_cache) (4.2.0)\n",
+ "Requirement already satisfied: requests>=2.22 in /usr/local/lib/python3.10/dist-packages (from requests_cache) (2.31.0)\n",
+ "Collecting url-normalize>=1.4 (from requests_cache)\n",
+ " Downloading url_normalize-1.4.3-py2.py3-none-any.whl (6.8 kB)\n",
+ "Requirement already satisfied: urllib3>=1.25.5 in /usr/local/lib/python3.10/dist-packages (from requests_cache) (2.0.7)\n",
+ "Requirement already satisfied: exceptiongroup>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from cattrs>=22.2->requests_cache) (1.2.0)\n",
+ "Requirement already satisfied: typing-extensions!=4.6.3,>=4.1.0 in /usr/local/lib/python3.10/dist-packages (from cattrs>=22.2->requests_cache) (4.11.0)\n",
+ "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests>=2.22->requests_cache) (3.3.2)\n",
+ "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests>=2.22->requests_cache) (3.6)\n",
+ "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests>=2.22->requests_cache) (2024.2.2)\n",
+ "Requirement already satisfied: six in /usr/local/lib/python3.10/dist-packages (from url-normalize>=1.4->requests_cache) (1.16.0)\n",
+ "Installing collected packages: url-normalize, cattrs, requests_cache\n",
+ "Successfully installed cattrs-23.2.3 requests_cache-1.2.0 url-normalize-1.4.3\n"
+ ]
+ }
+ ],
+ "source": [
+ "%pip install requests_cache"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
},
+ "id": "JQb9wuBJnFOc",
+ "outputId": "ac13c900-127f-4648-9a20-4644311c3392"
+ },
+ "outputs": [
{
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "4PLbqxdcpDmD"
- },
- "outputs": [],
- "source": [
- "dataset = dataset[\"train\"]"
- ]
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "Downloading: 100%|██████████| 36.4M/36.4M [00:00<00:00, 301MB/s]\n",
+ "File downloaded and decompressed successfully.\n"
+ ]
+ }
+ ],
+ "source": [
+ "%run download_dataset"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "wrDpshHUnFOd"
+ },
+ "source": [
+ "## Model"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 49,
+ "referenced_widgets": [
+ "94494955b6a94cf2a46a27d1d7016226",
+ "a5d8febd3dbb4cf0b6627d69c193d5e9",
+ "fc0529982c3541d3b828ecd22d393cb2",
+ "68f7078a7fe14149a1f0bfaeed27af3d",
+ "492d7a3140b74aa285c2d601ab05310d",
+ "53c9e0bce43241da9a24c5727b08a33f",
+ "91157c29d648453e8f634255a867f853",
+ "6e97b634bff64e7c8dc288df99b583e4",
+ "4ab291df191942a2af948edc15e83174",
+ "442f227cd54a449ca76b191d151b64b2",
+ "47c7b76960c842b7b46d6a121e01842c"
+ ]
},
+ "id": "IKm2VnUKnFOe",
+ "outputId": "0ca1d7ea-1720-4687-8383-cd2252dd3087"
+ },
+ "outputs": [
{
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "Secss3QypgJP"
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "94494955b6a94cf2a46a27d1d7016226",
+ "version_major": 2,
+ "version_minor": 0
},
- "outputs": [],
- "source": [
- "import random\n",
- "\n",
- "sample = random.choice(dataset)\n",
- "input_ids = tokenizer.encode(text=sample[\"text\"], return_tensors=\"pt\")"
+ "text/plain": [
+ "generation_config.json: 0%| | 0.00/147 [00:00, ?B/s]"
]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "from transformers import T5ForConditionalGeneration, AutoTokenizer\n",
+ "\n",
+ "MODEL_ID = \"google-t5/t5-small\"\n",
+ "COMP_EMBED_DIM = 512\n",
+ "\n",
+ "model = T5ForConditionalGeneration.from_pretrained(MODEL_ID)\n",
+ "tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "_gq-mmhQxLFN"
+ },
+ "outputs": [],
+ "source": [
+ "import torch.nn as nn\n",
+ "\n",
+ "pooling_layer = nn.Linear(model.encoder.config.d_model, COMP_EMBED_DIM)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "NMCRynUDpAz6"
+ },
+ "source": [
+ "## Data"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "2ZH6ZK2ypExq"
+ },
+ "outputs": [],
+ "source": [
+ "%pip install datasets"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 49,
+ "referenced_widgets": [
+ "b52837dbe3f6464e89319ae13c7f571d",
+ "1717a23099834c109ab6c2cd746dc196",
+ "ed4e23d565d94444b645a5d6344d6676",
+ "c8a24f0cd406418d830e16592770a533",
+ "1360d09087064fe1808dd612b84f8235",
+ "6e9ad313f8d84d5bb455992f6fbdb6e0",
+ "1696865a399b4cf19b2e29f2e387a8c1",
+ "ed6ff113bf17461e91e5533bb4b1a016",
+ "3a0248bb4cd041e28a5924c13ebbdaa3",
+ "2960c6f37441492e96aaff9cc128390c",
+ "e6fae880577e4d82bf1afdc13d86fd30"
+ ]
},
+ "id": "BF26H2PapAjj",
+ "outputId": "9d9781a6-e8ff-4bcc-bddb-9ed59d8ea5ed"
+ },
+ "outputs": [
{
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "pbPckam5p42B"
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "b52837dbe3f6464e89319ae13c7f571d",
+ "version_major": 2,
+ "version_minor": 0
},
- "outputs": [],
- "source": [
- "encoder_output = model.encoder(input_ids=input_ids)\n",
- "hiddens = encoder_output.last_hidden_state"
+ "text/plain": [
+ "Generating train split: 0 examples [00:00, ? examples/s]"
]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "from datasets import load_dataset\n",
+ "\n",
+ "dataset = load_dataset(\"text\", data_files=[\"dataset/enwik8\"])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "4PLbqxdcpDmD"
+ },
+ "outputs": [],
+ "source": [
+ "dataset = dataset[\"train\"]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "Secss3QypgJP"
+ },
+ "outputs": [],
+ "source": [
+ "import random\n",
+ "\n",
+ "sample = random.choice(dataset)\n",
+ "input_ids = tokenizer.encode(text=sample[\"text\"], return_tensors=\"pt\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "pbPckam5p42B"
+ },
+ "outputs": [],
+ "source": [
+ "encoder_output = model.encoder(input_ids=input_ids)\n",
+ "hiddens = encoder_output.last_hidden_state"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "oRKyCLNQqy0w"
+ },
+ "outputs": [],
+ "source": [
+ "pooled = pooling_layer(hiddens).mean(dim=-2)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "BQ9YgNO7xuD0"
+ },
+ "outputs": [],
+ "source": [
+ "assert model.decoder.config.d_model == COMP_EMBED_DIM, \\\n",
+ " \"Giving the embeddings directly to the decoder\"\n",
+ "\n",
+ "encoder_hidden_states = pooled.unsqueeze(-2)\n",
+ "\n",
+ "decoder_output = model.decoder(\n",
+ " input_ids=input_ids,\n",
+ " encoder_hidden_states=encoder_hidden_states,\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "2aHhKPJp1NtI"
+ },
+ "outputs": [],
+ "source": [
+ "model_output = model.forward(\n",
+ " decoder_input_ids=input_ids,\n",
+ " labels=input_ids,\n",
+ " encoder_outputs=(encoder_hidden_states,),\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
},
+ "id": "vV46EoAO4drs",
+ "outputId": "a6568bd1-8460-4517-df59-26bdafcfefc9"
+ },
+ "outputs": [
{
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "oRKyCLNQqy0w"
- },
- "outputs": [],
- "source": [
- "pooled = pooling_layer(hiddens).mean(dim=-2)"
+ "data": {
+ "text/plain": [
+ "tensor(6.1232, grad_fn=)"
]
+ },
+ "execution_count": 108,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "model_output.loss"
+ ]
+ }
+ ],
+ "metadata": {
+ "colab": {
+ "provenance": []
+ },
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.12.3"
+ },
+ "widgets": {
+ "application/vnd.jupyter.widget-state+json": {
+ "1360d09087064fe1808dd612b84f8235": {
+ "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
+ }
},
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "BQ9YgNO7xuD0"
- },
- "outputs": [],
- "source": [
- "assert model.decoder.config.d_model == COMP_EMBED_DIM, \\\n",
- " \"Giving the embeddings directly to the decoder\"\n",
- "\n",
- "encoder_hidden_states = pooled.unsqueeze(-2)\n",
- "\n",
- "decoder_output = model.decoder(\n",
- " input_ids=input_ids,\n",
- " encoder_hidden_states=encoder_hidden_states,\n",
- ")"
- ]
+ "1696865a399b4cf19b2e29f2e387a8c1": {
+ "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": ""
+ }
},
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "2aHhKPJp1NtI"
- },
- "outputs": [],
- "source": [
- "model_output = model.forward(\n",
- " decoder_input_ids=input_ids,\n",
- " labels=input_ids,\n",
- " encoder_outputs=(encoder_hidden_states,),\n",
- ")"
- ]
+ "1717a23099834c109ab6c2cd746dc196": {
+ "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_6e9ad313f8d84d5bb455992f6fbdb6e0",
+ "placeholder": "",
+ "style": "IPY_MODEL_1696865a399b4cf19b2e29f2e387a8c1",
+ "value": "Generating train split: "
+ }
},
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "id": "vV46EoAO4drs",
- "outputId": "a6568bd1-8460-4517-df59-26bdafcfefc9"
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "tensor(6.1232, grad_fn=)"
- ]
- },
- "execution_count": 108,
- "metadata": {},
- "output_type": "execute_result"
- }
+ "2960c6f37441492e96aaff9cc128390c": {
+ "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
+ }
+ },
+ "3a0248bb4cd041e28a5924c13ebbdaa3": {
+ "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": ""
+ }
+ },
+ "442f227cd54a449ca76b191d151b64b2": {
+ "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
+ }
+ },
+ "47c7b76960c842b7b46d6a121e01842c": {
+ "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": ""
+ }
+ },
+ "492d7a3140b74aa285c2d601ab05310d": {
+ "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
+ }
+ },
+ "4ab291df191942a2af948edc15e83174": {
+ "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": ""
+ }
+ },
+ "53c9e0bce43241da9a24c5727b08a33f": {
+ "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
+ }
+ },
+ "68f7078a7fe14149a1f0bfaeed27af3d": {
+ "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_442f227cd54a449ca76b191d151b64b2",
+ "placeholder": "",
+ "style": "IPY_MODEL_47c7b76960c842b7b46d6a121e01842c",
+ "value": " 147/147 [00:00<00:00, 8.84kB/s]"
+ }
+ },
+ "6e97b634bff64e7c8dc288df99b583e4": {
+ "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
+ }
+ },
+ "6e9ad313f8d84d5bb455992f6fbdb6e0": {
+ "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
+ }
+ },
+ "91157c29d648453e8f634255a867f853": {
+ "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": ""
+ }
+ },
+ "94494955b6a94cf2a46a27d1d7016226": {
+ "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_a5d8febd3dbb4cf0b6627d69c193d5e9",
+ "IPY_MODEL_fc0529982c3541d3b828ecd22d393cb2",
+ "IPY_MODEL_68f7078a7fe14149a1f0bfaeed27af3d"
],
- "source": [
- "model_output.loss"
- ]
- }
- ],
- "metadata": {
- "colab": {
- "provenance": []
+ "layout": "IPY_MODEL_492d7a3140b74aa285c2d601ab05310d"
+ }
},
- "kernelspec": {
- "display_name": "ai",
- "language": "python",
- "name": "python3"
+ "a5d8febd3dbb4cf0b6627d69c193d5e9": {
+ "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_53c9e0bce43241da9a24c5727b08a33f",
+ "placeholder": "",
+ "style": "IPY_MODEL_91157c29d648453e8f634255a867f853",
+ "value": "generation_config.json: 100%"
+ }
},
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.9.18"
+ "b52837dbe3f6464e89319ae13c7f571d": {
+ "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_1717a23099834c109ab6c2cd746dc196",
+ "IPY_MODEL_ed4e23d565d94444b645a5d6344d6676",
+ "IPY_MODEL_c8a24f0cd406418d830e16592770a533"
+ ],
+ "layout": "IPY_MODEL_1360d09087064fe1808dd612b84f8235"
+ }
},
- "widgets": {
- "application/vnd.jupyter.widget-state+json": {
- "1360d09087064fe1808dd612b84f8235": {
- "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
- }
- },
- "1696865a399b4cf19b2e29f2e387a8c1": {
- "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": ""
- }
- },
- "1717a23099834c109ab6c2cd746dc196": {
- "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_6e9ad313f8d84d5bb455992f6fbdb6e0",
- "placeholder": "",
- "style": "IPY_MODEL_1696865a399b4cf19b2e29f2e387a8c1",
- "value": "Generating train split: "
- }
- },
- "2960c6f37441492e96aaff9cc128390c": {
- "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
- }
- },
- "3a0248bb4cd041e28a5924c13ebbdaa3": {
- "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": ""
- }
- },
- "442f227cd54a449ca76b191d151b64b2": {
- "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
- }
- },
- "47c7b76960c842b7b46d6a121e01842c": {
- "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": ""
- }
- },
- "492d7a3140b74aa285c2d601ab05310d": {
- "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
- }
- },
- "4ab291df191942a2af948edc15e83174": {
- "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": ""
- }
- },
- "53c9e0bce43241da9a24c5727b08a33f": {
- "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
- }
- },
- "68f7078a7fe14149a1f0bfaeed27af3d": {
- "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_442f227cd54a449ca76b191d151b64b2",
- "placeholder": "",
- "style": "IPY_MODEL_47c7b76960c842b7b46d6a121e01842c",
- "value": " 147/147 [00:00<00:00, 8.84kB/s]"
- }
- },
- "6e97b634bff64e7c8dc288df99b583e4": {
- "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
- }
- },
- "6e9ad313f8d84d5bb455992f6fbdb6e0": {
- "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
- }
- },
- "91157c29d648453e8f634255a867f853": {
- "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": ""
- }
- },
- "94494955b6a94cf2a46a27d1d7016226": {
- "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_a5d8febd3dbb4cf0b6627d69c193d5e9",
- "IPY_MODEL_fc0529982c3541d3b828ecd22d393cb2",
- "IPY_MODEL_68f7078a7fe14149a1f0bfaeed27af3d"
- ],
- "layout": "IPY_MODEL_492d7a3140b74aa285c2d601ab05310d"
- }
- },
- "a5d8febd3dbb4cf0b6627d69c193d5e9": {
- "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_53c9e0bce43241da9a24c5727b08a33f",
- "placeholder": "",
- "style": "IPY_MODEL_91157c29d648453e8f634255a867f853",
- "value": "generation_config.json: 100%"
- }
- },
- "b52837dbe3f6464e89319ae13c7f571d": {
- "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_1717a23099834c109ab6c2cd746dc196",
- "IPY_MODEL_ed4e23d565d94444b645a5d6344d6676",
- "IPY_MODEL_c8a24f0cd406418d830e16592770a533"
- ],
- "layout": "IPY_MODEL_1360d09087064fe1808dd612b84f8235"
- }
- },
- "c8a24f0cd406418d830e16592770a533": {
- "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_2960c6f37441492e96aaff9cc128390c",
- "placeholder": "",
- "style": "IPY_MODEL_e6fae880577e4d82bf1afdc13d86fd30",
- "value": " 1128024/0 [00:01<00:00, 669968.44 examples/s]"
- }
- },
- "e6fae880577e4d82bf1afdc13d86fd30": {
- "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": ""
- }
- },
- "ed4e23d565d94444b645a5d6344d6676": {
- "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_ed6ff113bf17461e91e5533bb4b1a016",
- "max": 1,
- "min": 0,
- "orientation": "horizontal",
- "style": "IPY_MODEL_3a0248bb4cd041e28a5924c13ebbdaa3",
- "value": 1
- }
- },
- "ed6ff113bf17461e91e5533bb4b1a016": {
- "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"
- }
- },
- "fc0529982c3541d3b828ecd22d393cb2": {
- "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_6e97b634bff64e7c8dc288df99b583e4",
- "max": 147,
- "min": 0,
- "orientation": "horizontal",
- "style": "IPY_MODEL_4ab291df191942a2af948edc15e83174",
- "value": 147
- }
- }
- }
+ "c8a24f0cd406418d830e16592770a533": {
+ "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_2960c6f37441492e96aaff9cc128390c",
+ "placeholder": "",
+ "style": "IPY_MODEL_e6fae880577e4d82bf1afdc13d86fd30",
+ "value": " 1128024/0 [00:01<00:00, 669968.44 examples/s]"
+ }
+ },
+ "e6fae880577e4d82bf1afdc13d86fd30": {
+ "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": ""
+ }
+ },
+ "ed4e23d565d94444b645a5d6344d6676": {
+ "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_ed6ff113bf17461e91e5533bb4b1a016",
+ "max": 1,
+ "min": 0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_3a0248bb4cd041e28a5924c13ebbdaa3",
+ "value": 1
+ }
+ },
+ "ed6ff113bf17461e91e5533bb4b1a016": {
+ "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"
+ }
+ },
+ "fc0529982c3541d3b828ecd22d393cb2": {
+ "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_6e97b634bff64e7c8dc288df99b583e4",
+ "max": 147,
+ "min": 0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_4ab291df191942a2af948edc15e83174",
+ "value": 147
+ }
}
- },
- "nbformat": 4,
- "nbformat_minor": 0
+ }
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
}
diff --git a/TokenDethcod.ipynb b/TokenDethcod.ipynb
index 84a3f6b..bb5d776 100644
--- a/TokenDethcod.ipynb
+++ b/TokenDethcod.ipynb
@@ -2,25 +2,72 @@
"cells": [
{
"cell_type": "markdown",
- "metadata": {},
+ "metadata": {
+ "id": "unSiMpj_w4a7"
+ },
"source": [
"# Token based DETHCOD"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 1,
"metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
"id": "eSX4vKTl97pS",
- "outputId": "64d713f1-32ad-4db4-ef37-e338a7a4e841",
"scrolled": true
},
"outputs": [],
"source": [
- "%conda install -c conda-forge transformers wandb requests_cache datasets tqdm python-dotenv"
+ "!pip install transformers wandb requests_cache datasets tqdm python-dotenv peft accelerate bitsandbytes>0.37.0"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "id": "e-neGcFgTHdu",
+ "jupyter": {
+ "source_hidden": true
+ },
+ "outputId": "8ea87abe-c1a8-4a3c-82e5-6486b75e4e2a"
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001b[34m\u001b[1mwandb\u001b[0m: \u001b[33mWARNING\u001b[0m If you're specifying your api key in code, ensure this code is not shared publicly.\n",
+ "\u001b[34m\u001b[1mwandb\u001b[0m: \u001b[33mWARNING\u001b[0m Consider setting the WANDB_API_KEY environment variable, or running `wandb login` from the command line.\n",
+ "\u001b[34m\u001b[1mwandb\u001b[0m: Appending key for api.wandb.ai to your netrc file: /home/khodabandeh/.netrc\n"
+ ]
+ }
+ ],
+ "source": [
+ "import os\n",
+ "import wandb\n",
+ "\n",
+ "try:\n",
+ " from dotenv import load_dotenv\n",
+ " # Load environment variables from .env file\n",
+ " load_dotenv()\n",
+ "\n",
+ "except ImportError as e:\n",
+ " print(f\"Error importing dotenv: {e}\")\n",
+ "\n",
+ "\n",
+ "# Check if running in Colab\n",
+ "try:\n",
+ " from google.colab import userdata\n",
+ " # If running in Colab, use userdata.get to retrieve the token\n",
+ " wandb.login(key=userdata.get('wandb_token'))\n",
+ "\n",
+ "except ImportError:\n",
+ " # If not in Colab, load the token from the environment variable\n",
+ " wandb_token = os.getenv('WANDB_TOKEN')\n",
+ " if wandb_token:\n",
+ " wandb.login(key=wandb_token, relogin=True)\n",
+ " else:\n",
+ " print(\"W&B token not found in environment variable. Please set WANDB_TOKEN in your environment.\")\n"
]
},
{
@@ -34,20 +81,36 @@
},
{
"cell_type": "code",
- "execution_count": 1,
+ "execution_count": 2,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "JQb9wuBJnFOc",
- "outputId": "e2d53ae0-a602-4e1a-cc30-929920b959dd"
+ "jupyter": {
+ "source_hidden": true
+ },
+ "outputId": "14f92a7c-92b6-4c54-cb96-7aedd2d11747"
},
"outputs": [
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "232b0fe441ba44b4aa44cd07be90a238",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "Downloading: 0%| | 0.00/36.4M [00:00, ?B/s]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
{
"name": "stderr",
"output_type": "stream",
"text": [
- "Downloading: 100%|████████████████████████████████████████| 36.4M/36.4M [00:00<00:00, 678MB/s]\n",
"File downloaded and decompressed successfully.\n"
]
}
@@ -60,7 +123,7 @@
"\n",
"import requests\n",
"import requests_cache\n",
- "from tqdm import tqdm\n",
+ "from tqdm.auto import tqdm\n",
"\n",
"\n",
"zip_link = \"http://www.mattmahoney.net/dc/enwik8.zip\"\n",
@@ -111,9 +174,27 @@
},
{
"cell_type": "code",
- "execution_count": 1,
+ "execution_count": 2,
"metadata": {
- "id": "BF26H2PapAjj"
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 49,
+ "referenced_widgets": [
+ "2011e26c9fde4ada959624a30d935c6b",
+ "55a34be2f9d14d00926062efafa2d7b0",
+ "1925655871374689a1057b008f889052",
+ "576e75f0473145168b5d166acb903643",
+ "532d04fe48164a00a8db36177c9ea152",
+ "ffbc13e493114403b6f88a67db932b15",
+ "a5c93a83de084232a6964a113aecb930",
+ "232f001ecfd4414aba63125571389434",
+ "06df0c8f7b974e189272f1a91a5e28c5",
+ "4b524028a9564a61a935d10083922c4c",
+ "1dc435da8c744a6282e8f7cfce8b4f2f"
+ ]
+ },
+ "id": "BF26H2PapAjj",
+ "outputId": "f39ab00e-b77e-4ab5-9075-21f2501f44ca"
},
"outputs": [],
"source": [
@@ -125,13 +206,13 @@
},
{
"cell_type": "code",
- "execution_count": 2,
+ "execution_count": 3,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "pY1_Ux8uprdh",
- "outputId": "c2b8a9e8-08bd-4e6a-a051-9250780cc27b"
+ "outputId": "a0f15afa-0f49-4aea-d8ac-1f875aa8369e"
},
"outputs": [],
"source": [
@@ -143,9 +224,27 @@
},
{
"cell_type": "code",
- "execution_count": 3,
+ "execution_count": 4,
"metadata": {
- "id": "dZXhU0AfhrTJ"
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 49,
+ "referenced_widgets": [
+ "3bf1e9a699f14d709b1f81ae98bf1215",
+ "0124c91212644264aaf84fe52e26e1dd",
+ "61bc579763f6454cb6a36dc80b9068a0",
+ "f056e5f5aec54fe8b3cfc121e1c24430",
+ "e6563f7242f3412a940b8761621eeac7",
+ "71f62c2eb9ad40e289c5bbcc0c95490d",
+ "bc1b308fdc1b4e80a6d04a70e75de34e",
+ "b0349099323b4b6280e3f253ab2aa033",
+ "e486dae88741401a82d16c7aa84b57cf",
+ "654f5bb5e6e44858af000d593b701980",
+ "22d010b51fd34ddf82627507aed81676"
+ ]
+ },
+ "id": "dZXhU0AfhrTJ",
+ "outputId": "87a6d03b-25cf-4dd0-d61c-b340a250e1df"
},
"outputs": [],
"source": [
@@ -171,20 +270,20 @@
},
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": 5,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "WPWUhHX8A43h",
- "outputId": "099a0d8a-60f5-435b-fdc4-e135e3c4ff93"
+ "outputId": "82f3afe8-154a-40d7-c6a1-f0346072dc5b"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "'::<math> \\\\sum_{i=1}^\\\\infty\\\\|x_i\\\\|^2 = \\\\left\\\\|\\\\sum_{i=1}^\\\\infty x_i\\\\right\\\\|^2, </math>'\n"
+ "\"* RFC 1438 — '''[[Internet Engineering Task Force]] Statements Of Boredom (SOBs)'''. A. Lyman Chapin, C. Huitema. [[1 April]] [[1993]].\"\n"
]
}
],
@@ -205,9 +304,12 @@
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": 8,
"metadata": {
- "id": "fGqAZ6NY-FrU"
+ "id": "fGqAZ6NY-FrU",
+ "jupyter": {
+ "source_hidden": true
+ }
},
"outputs": [],
"source": [
@@ -280,7 +382,13 @@
" else:\n",
" value_predictions = None\n",
"\n",
+ " loss = None\n",
+ " if labels is not None:\n",
+ " loss_fct = nn.CrossEntropyLoss(ignore_index=self.config.pad_token_id)\n",
+ " loss = loss_fct(output.logits.view(-1, self.config.vocab_size), labels.view(-1))\n",
+ "\n",
" return CompressionOutput(\n",
+ " loss=loss,\n",
" value_predictions=value_predictions,\n",
" logits=output.logits,\n",
" past_key_values=output.past_key_values,\n",
@@ -313,39 +421,43 @@
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": 9,
"metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "id": "-OTuhuS295RZ",
- "outputId": "80eb955b-6f1f-4899-df53-f06c5bcda115"
+ "id": "-OTuhuS295RZ"
},
"outputs": [],
"source": [
"from pathlib import Path\n",
"\n",
- "device = torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\")\n",
- "MODEL_PATH = Path(\"./data/models/token-dethcod/a2c-v1\")"
+ "device = torch.device(\"cuda:1\" if torch.cuda.is_available() else \"cpu\")\n",
+ "MODEL_PATH = Path(\"./data/models/token-dethcod/a2c-v2-reward-norm\")"
]
},
{
"cell_type": "markdown",
- "metadata": {},
+ "metadata": {
+ "id": "qm6-SLkqw4bA"
+ },
"source": [
"### Load Model"
]
},
{
"cell_type": "code",
- "execution_count": 8,
- "metadata": {},
+ "execution_count": 11,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "bZRSpc8ow4bA",
+ "outputId": "ac709f40-8c80-4058-fb1f-15b448bccc1e"
+ },
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "Loading model from google-t5/t5-small\n"
+ "Loading google-t5/t5-small\n"
]
},
{
@@ -363,12 +475,12 @@
"if LOAD_LATEST:\n",
" compressor = CompressionModel.from_pretrained(MODEL_PATH / \"compressor\").to(device)\n",
" decompressor = DecompressionModel.from_pretrained(MODEL_PATH / \"decompressor\").to(device)\n",
+ "\n",
"else:\n",
- " model_path = \"google-t5/t5-small\"\n",
- " print(f\"Loading model from {model_path}\")\n",
- " compressor = CompressionModel.from_pretrained(model_path).to(device)\n",
+ " print(f\"Loading {MODEL_ID}\")\n",
+ " compressor = CompressionModel.from_pretrained(MODEL_ID).to(device)\n",
" compressor.critic_head.reset_parameters()\n",
- " decompressor = DecompressionModel.from_pretrained(model_path).to(device)"
+ " decompressor = DecompressionModel.from_pretrained(MODEL_ID).to(device)"
]
},
{
@@ -382,77 +494,31 @@
},
{
"cell_type": "code",
- "execution_count": 9,
- "metadata": {
- "id": "e-neGcFgTHdu"
- },
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\u001b[34m\u001b[1mwandb\u001b[0m: \u001b[33mWARNING\u001b[0m If you're specifying your api key in code, ensure this code is not shared publicly.\n",
- "\u001b[34m\u001b[1mwandb\u001b[0m: \u001b[33mWARNING\u001b[0m Consider setting the WANDB_API_KEY environment variable, or running `wandb login` from the command line.\n",
- "\u001b[34m\u001b[1mwandb\u001b[0m: Appending key for api.wandb.ai to your netrc file: /home/khodabandeh/.netrc\n"
- ]
- }
- ],
- "source": [
- "import os\n",
- "import wandb\n",
- "\n",
- "try:\n",
- " from dotenv import load_dotenv\n",
- " # Load environment variables from .env file\n",
- " load_dotenv()\n",
- "\n",
- "except ImportError as e:\n",
- " print(f\"Error importing dotenv: {e}\")\n",
- "\n",
- "\n",
- "# Check if running in Colab\n",
- "try:\n",
- " from google.colab import userdata\n",
- " # If running in Colab, use userdata.get to retrieve the token\n",
- " wandb.login(key=userdata.get('wandb_token'))\n",
- "\n",
- "except ImportError:\n",
- " # If not in Colab, load the token from the environment variable\n",
- " wandb_token = os.getenv('WANDB_TOKEN')\n",
- " if wandb_token:\n",
- " wandb.login(key=wandb_token, relogin=True)\n",
- " else:\n",
- " print(\"W&B token not found in environment variable. Please set WANDB_TOKEN in your environment.\")\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
+ "execution_count": 12,
"metadata": {
"id": "nbJccLQa_TKV"
},
"outputs": [],
"source": [
- "COMPRESSOR_LR = 1e-3\n",
- "DECOMPRESSOR_LR = 1e-3\n",
- "# CRITIC_BIAS_LR = 0.1\n",
- "\n",
- "# # Create parameter groups\n",
- "# param_groups = [\n",
- "# {\"params\": [param for name, param in compressor.named_parameters() if name != \"critic_head.bias\"], \"lr\": LR},\n",
- "# {\"params\": [compressor.critic_head.bias], \"lr\": CRITIC_BIAS_LR},\n",
- "# ]\n",
- "\n",
- "# # Define optimizer with parameter groups\n",
- "# compressor_optimizer = torch.optim.Adam(param_groups)\n",
- "\n",
- "compressor_optimizer = torch.optim.Adam(compressor.parameters(), lr=COMPRESSOR_LR)\n",
+ "# TODO: Log these to wandb\n",
+ "COMPRESSOR_LR = 1e-5\n",
+ "DECOMPRESSOR_LR = 1e-5\n",
+ "CRITIC_BIAS_LR = 1e-5\n",
+ "\n",
+ "# Create parameter groups\n",
+ "param_groups = [\n",
+ " {\"params\": [param for name, param in compressor.named_parameters() if name != \"critic_head.bias\"], \"lr\": COMPRESSOR_LR},\n",
+ " {\"params\": [compressor.critic_head.bias], \"lr\": CRITIC_BIAS_LR},\n",
+ "]\n",
+ "\n",
+ "# Define optimizer with parameter groups\n",
+ "compressor_optimizer = torch.optim.Adam(param_groups)\n",
"decompressor_optimizer = torch.optim.Adam(decompressor.parameters(), lr=DECOMPRESSOR_LR)"
]
},
{
"cell_type": "code",
- "execution_count": 12,
+ "execution_count": 13,
"metadata": {
"id": "zioTdU4gA2J2"
},
@@ -460,7 +526,8 @@
"source": [
"import math\n",
"\n",
- "BATCH_SIZE = 8\n",
+ "BATCH_SIZE = 16\n",
+ "REWARD_SCALING = 0.01\n",
"MAX_TOKEN_COST = math.log(compressor.config.vocab_size)\n",
"\n",
"train_dataset = dataset\n",
@@ -472,9 +539,10 @@
},
{
"cell_type": "code",
- "execution_count": 13,
+ "execution_count": 14,
"metadata": {
- "id": "SUo_c6cyTx2Y"
+ "id": "SUo_c6cyTx2Y",
+ "outputId": "317d1857-2c8e-45a7-ada8-99ef974f8124"
},
"outputs": [
{
@@ -487,7 +555,7 @@
{
"data": {
"text/html": [
- "wandb version 0.18.3 is available! To upgrade, please run:\n",
+ "wandb version 0.19.0 is available! To upgrade, please run:\n",
" $ pip install wandb --upgrade"
],
"text/plain": [
@@ -512,7 +580,7 @@
{
"data": {
"text/html": [
- "Run data is saved locally in /home/khodabandeh/Projects/dethcod/wandb/run-20241016_111725-slm0386f"
+ "Run data is saved locally in /home/khodabandeh/Projects/dethcod/wandb/run-20241207_182501-fqvjq6vk"
],
"text/plain": [
""
@@ -524,7 +592,7 @@
{
"data": {
"text/html": [
- "Syncing run Token Training to Weights & Biases (docs)
"
+ "Syncing run Token Training to Weights & Biases (docs)
"
],
"text/plain": [
""
@@ -548,7 +616,7 @@
{
"data": {
"text/html": [
- " View run at https://wandb.ai/chihuahuas/DETHCOD/runs/slm0386f"
+ " View run at https://wandb.ai/chihuahuas/DETHCOD/runs/fqvjq6vk"
],
"text/plain": [
""
@@ -560,15 +628,22 @@
{
"data": {
"text/html": [
- ""
+ ""
],
"text/plain": [
- ""
+ ""
]
},
- "execution_count": 13,
+ "execution_count": 14,
"metadata": {},
"output_type": "execute_result"
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "wandb: ERROR Error uploading \"diff.patch\": CommError, \n"
+ ]
}
],
"source": [
@@ -587,10 +662,18 @@
},
{
"cell_type": "code",
- "execution_count": 14,
- "metadata": {},
+ "execution_count": 15,
+ "metadata": {
+ "id": "DiB9sOSVw4bB",
+ "jupyter": {
+ "source_hidden": true
+ }
+ },
"outputs": [],
"source": [
+ "import math\n",
+ "\n",
+ "\n",
"class TokenCostScheduler:\n",
" def __init__(self, total_steps, max_token_cost, schedule_fn=None):\n",
" self.total_steps = total_steps\n",
@@ -605,13 +688,45 @@
" # Get the current token cost based on the schedule\n",
" token_cost = self.schedule_fn(self)\n",
" self.step_count += 1 # Increment the step count\n",
- " return token_cost"
+ " return token_cost\n",
+ "\n",
+ "\n",
+ "class ExponentialMovingAverage:\n",
+ " def __init__(self, lambda_decay: float = 1.0):\n",
+ " \"\"\"\n",
+ " Initialize the EMA calculator.\n",
+ " :param tau_half: The characteristic time constant (half-life) for exponential decay.\n",
+ " \"\"\"\n",
+ " self.lambda_decay = lambda_decay # Decay constant λ\n",
+ " self.numerator = 0.0 # Weighted sum\n",
+ " self.denominator = 0.0 # Sum of weights\n",
+ "\n",
+ " def update(self, x: float, delta_t: float = 1.0, weight: float = 1.0):\n",
+ " self.decay(delta_t)\n",
+ " self.add(x, weight)\n",
+ "\n",
+ " return self.expected_value()\n",
+ "\n",
+ " def decay(self, delta_t: float = 1.0):\n",
+ " alpha = math.exp(-self.lambda_decay * delta_t) # Exponential decay factor\n",
+ " self.numerator *= alpha\n",
+ " self.denominator *= alpha\n",
+ "\n",
+ " def add(self, x: float, weight: float = 1.0):\n",
+ " self.numerator += x * weight\n",
+ " self.denominator += weight\n",
+ "\n",
+ " def expected_value(self):\n",
+ " return self.numerator / self.denominator\n"
]
},
{
"cell_type": "code",
- "execution_count": 17,
- "metadata": {},
+ "execution_count": 16,
+ "metadata": {
+ "id": "YRjMbckLw4bB",
+ "outputId": "f6b49273-3ea8-423c-abb1-6e4b49df4bdf"
+ },
"outputs": [
{
"name": "stderr",
@@ -628,7 +743,9 @@
},
{
"cell_type": "markdown",
- "metadata": {},
+ "metadata": {
+ "id": "81konK25w4bB"
+ },
"source": [
"### RL Training Loop"
]
@@ -639,61 +756,44 @@
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
- "height": 388,
+ "height": 423,
"referenced_widgets": [
- "a0678d2428ff4198a9381b664dea08c4",
- "579d2c20323a4e14aa0b2fcc125e9eb9",
- "1a79263283254ba3a8e909ea3966e3ac",
- "e4dcb7f644ce4739b255809f9df0bf53",
- "584d3bd4ac484269bcf7da1d48c78448",
- "e648ad71485b482992d3b5b699fdf90b",
- "a7c81547e14040a28b9f3e8f469bc933",
- "460431870cd346caa15e02b9ffe0c63f",
- "a75e62964f224e8ab32e9136c00f786e",
- "6f20c7b7089045ffa62fda32898dd673",
- "e79223029d27455288e6daa49aabe4f3"
+ "259751f990bc4422b181c49619700334",
+ "a1b0cd399a2d44e6a5f3431ac861d2d2",
+ "b9be4ff6d92f4112aa8078e96b3838db",
+ "96e4d29108ca47ea9beb7f7b1a78d79a",
+ "8b32e1b93368443f981ec8187016c7f2",
+ "065511e68dfb4053b4f0a70ef7a91ee3",
+ "b2826da9f9314c1cb966b54a7b6120fe",
+ "7a87b54b7ed549bdb26958bf7f803af2",
+ "dad9de6f3118448eb665a9fcb544ff68",
+ "05f070c4b1294821b0874bf4ddc9d7d7",
+ "95b6d03796e84153a5e2a6904d640659"
]
},
"id": "-71bvb9b4Rth",
- "outputId": "058aeb31-300b-4aef-e930-5421113cbff1"
+ "outputId": "af7ae39c-cd07-4490-ed2c-d66ef023f852"
},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
- "model_id": "a1196b0e1600483c8f1c9e065cdb90f5",
+ "model_id": "1edbb81a6fbc4800b7f1062c0b3276a0",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
- " 0%| | 0/106887 [00:00, ?it/s]"
+ " 0%| | 0/53444 [00:00, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "IOPub message rate exceeded.\n",
- "The Jupyter server will temporarily stop sending output\n",
- "to the client in order to avoid crashing it.\n",
- "To change this limit, set the config variable\n",
- "`--ServerApp.iopub_msg_rate_limit`.\n",
- "\n",
- "Current values:\n",
- "ServerApp.iopub_msg_rate_limit=1000.0 (msgs/sec)\n",
- "ServerApp.rate_limit_window=3.0 (secs)\n",
- "\n"
- ]
}
],
"source": [
"import torch.nn.functional as F\n",
"import tqdm.auto as tqdm\n",
"from transformers import GenerationConfig\n",
- "from transformers import modeling_outputs\n",
"\n",
"\n",
"# Define your generation configuration as before\n",
@@ -710,6 +810,8 @@
"\n",
"# Initialize the scheduler\n",
"token_cost_scheduler = TokenCostScheduler(total_steps=SCHEDULING_STEPS, max_token_cost=MAX_TOKEN_COST)\n",
+ "comp_ratio_ema = ExponentialMovingAverage(1 / 400)\n",
+ "best_comp_ratio = 1.0\n",
"\n",
"with tqdm.tqdm(data_loader) as pbar:\n",
" for step, batch in enumerate(pbar):\n",
@@ -727,7 +829,6 @@
" compressed = compressor.generate(input_ids=input_ids, generation_config=generation_config)\n",
" decompressed = decompressor.forward(input_ids=compressed.sequences, labels=input_ids)\n",
"\n",
- " # Force last token to be eos for episodes with no eos (terminated by max_len)\n",
" full_episodes = (compressed.sequences != generation_config.eos_token_id).all(dim=-1)\n",
" sequences_copy = compressed.sequences.clone()\n",
" sequences_copy[..., full_episodes, -1] = generation_config.eos_token_id\n",
@@ -760,16 +861,29 @@
" actions == generation_config.eos_token_id,\n",
" -sequence_compression_loss.unsqueeze(-1),\n",
" -token_cost,\n",
- " ) * action_mask\n",
+ " ) * action_mask * REWARD_SCALING\n",
+ " # TODO: Implement temporal difference learning\n",
" qs = rewards.flip(dims=[-1]).cumsum(dim=-1).flip(dims=[-1])\n",
"\n",
" advantage = (qs - values) * action_mask\n",
- " masked_advantage = advantage[action_mask]\n",
- " critic_loss = (masked_advantage * masked_advantage).mean()\n",
+ " num_actions = action_mask.sum()\n",
+ " expected_advantage = advantage.sum() / num_actions\n",
+ " critic_loss = (advantage * advantage).sum() / num_actions\n",
"\n",
- " compressed_size = (action_mask.sum(dim=-1) - 1) * MAX_TOKEN_COST + sequence_compression_loss\n",
- " decompressed_size = ((input_ids != 0).sum(dim=-1) - 1) * MAX_TOKEN_COST\n",
+ " data_costs = torch.where(\n",
+ " actions == generation_config.eos_token_id,\n",
+ " sequence_compression_loss.unsqueeze(-1),\n",
+ " MAX_TOKEN_COST,\n",
+ " ) * action_mask\n",
+ " compressed_size = data_costs.sum(dim=-1)\n",
+ " decompressed_size = (input_ids != 0).sum(dim=-1) * MAX_TOKEN_COST\n",
" compression_ratio = (decompressed_size / compressed_size).mean()\n",
+ " comp_ratio_ema.update(compression_ratio)\n",
+ "\n",
+ " if comp_ratio_ema.expected_value() > best_comp_ratio:\n",
+ " best_comp_ratio = comp_ratio_ema.expected_value()\n",
+ " compressor.save_pretrained(MODEL_PATH / \"compressor\")\n",
+ " decompressor.save_pretrained(MODEL_PATH / \"decompressor\")\n",
"\n",
" if step < PRETRAINING_STEPS:\n",
" # Train the model to generate the original sequence\n",
@@ -814,9 +928,10 @@
" \"accuracy\": (-sequence_compression_loss).exp().mean(),\n",
" \"compressed_size\": compressed_length.float().mean(),\n",
" \"compression_ratio\": compression_ratio,\n",
- " \"expected_advantage\": masked_advantage.mean(),\n",
- " \"advantage_std\": masked_advantage.std(),\n",
- " \"advantage\": masked_advantage,\n",
+ " \"expected_advantage\": expected_advantage,\n",
+ " \"advantage\": advantage[action_mask],\n",
+ " \"saved_compression_ratio\": best_comp_ratio,\n",
+ " \"compression_ratio_ema\": comp_ratio_ema.expected_value(),\n",
" \"token_cost\": token_cost,\n",
" }\n",
" )\n"
@@ -824,80 +939,158 @@
},
{
"cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "wandb.finish()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Save"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 61,
- "metadata": {},
- "outputs": [],
- "source": [
- "compressor.save_pretrained(MODEL_PATH / \"compressor\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 62,
- "metadata": {},
- "outputs": [],
- "source": [
- "decompressor.save_pretrained(MODEL_PATH / \"decompressor\")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Playground"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 40,
- "metadata": {},
+ "execution_count": 21,
+ "metadata": {
+ "id": "MHotTfInw4bB"
+ },
"outputs": [
{
"data": {
- "image/png": "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",
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "",
+ "version_major": 2,
+ "version_minor": 0
+ },
"text/plain": [
- ""
+ "VBox(children=(Label(value='6.204 MB of 6.420 MB uploaded (0.202 MB deduped)\\r'), FloatProgress(value=0.966364…"
]
},
"metadata": {},
"output_type": "display_data"
- }
- ],
- "source": [
- "import torch\n",
- "import matplotlib.pyplot as plt\n",
- "\n",
- "top_token_count = 100\n",
- "\n",
- "# Assuming `action_distributions` is the tensor of shape [100, 32128]\n",
- "logits = action_distributions[1].detach().cpu() # Ensure it's on the CPU\n",
- "\n",
- "# Step 1: Average the logits across the first axis (dimension 0)\n",
- "avg_logits = torch.mean(logits, dim=0)\n",
- "\n",
- "# Step 2: Get the top 50 tokens based on average logit values\n",
- "top_values, top_indices = torch.topk(avg_logits, top_token_count)\n",
- "\n",
- "# Step 3: Convert the top indices to tokens using the tokenizer\n",
- "top_tokens = tokenizer.convert_ids_to_tokens(top_indices.numpy())\n",
- "\n",
- "# Step 4: Plot the top 50 logits using imshow with tokens as labels\n",
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "wandb: ERROR Error uploading \"wandb-summary.json\": CommError, \n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "W&B sync reduced upload amount by 3.1% "
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "Run history:
| accuracy | ▅▃▄▆▄▄▅▃▃▆▅▃█▅▃▅▁▆▁▂▂▁▁▃▃▂▃▂▁▂▂▂▁▂▁▂▃▂▄▁ |
| actor_loss | ▄▄▄▄▅▄▄▅▅▁▄▃▄▅▅▄▅▃▄▅▅▄▆█▄▅▄▄▄▄▄▅▄▄▅▅▄▅▄▄ |
| compressed_size | ▄▄█▅▆▄▄▄▃▄▃▄▂▂▂▂▂▂▁▁▁▁▂▁▁▂▂▁▃▁▃▁▁▁▁▁▁▁▁▁ |
| compression_ratio | ▁▁▁▁▂▂▂▂▄▃▃▃▄▅▇▃▃▄▄▅▅▄▄▆▃▅▃▄▄▅▅▄▄▅▄▆▆█▅▄ |
| compression_ratio_ema | ▁▁▁▁▂▂▂▃▃▃▃▄▄▅▆▇▆▇▇▆▇█▇▇▇▇▆▆▇▆▇█▇▇▇▇▇▇▇▇ |
| critic_loss | ▂▃▂▂▁█▂▂▂▅▁▂▂▁▁▁▁▃▁▂▁▁▁▁▁▁▄▁▂▁▃▁▁▁▁▁▁▁▁▁ |
| decompressor_loss | ▁▄▄▂▃▃▆▅▅▅▃█▃▃▅▄▄▆▅▃▄▆▄▃▄▃▅▃▃▃▄▃▅▆█▅▇▃▃▄ |
| expected_advantage | █▅▄▅▆▁▇▆▆▂▅▄▅▆▆▅▆▃▆▇▆▇▆▇▆▆▅▅▆▆▄▆▆▆▆▆▆▆▅▆ |
| reward | █▅▁▄▃▅▅▄▆▅▆▄▇▇▇▇▇▇▇▇██▇▇▇▇▆▇▆▇▅▇▇▇▇▇▇█▇▇ |
| saved_compression_ratio | ▁▂▂▂▂▃▃▃▃▄▅▆▇▇▇▇▇▇███████████████████ |
| token_cost | ▁███████████████████████████████████████ |
Run summary:
| accuracy | 0.0 |
| actor_loss | 0.32685 |
| compressed_size | 0.5 |
| compression_ratio | 3.14603 |
| compression_ratio_ema | 4.24513 |
| critic_loss | 0.25486 |
| decompressor_loss | 3.1615 |
| expected_advantage | 0.43224 |
| reward | -1.3481 |
| saved_compression_ratio | 4.97724 |
| token_cost | 10.37748 |
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " View run Token Training at: https://wandb.ai/chihuahuas/DETHCOD/runs/fqvjq6vk
View project at: https://wandb.ai/chihuahuas/DETHCOD
Synced 7 W&B file(s), 0 media file(s), 9 artifact file(s) and 2 other file(s)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Find logs at: ./wandb/run-20241207_182501-fqvjq6vk/logs"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "wandb.finish()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "EomSPfQ1w4bC"
+ },
+ "source": [
+ "### Save"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {
+ "id": "Hx_Iec6iw4bC"
+ },
+ "outputs": [],
+ "source": [
+ "compressor.save_pretrained(MODEL_PATH / \"compressor\")\n",
+ "decompressor.save_pretrained(MODEL_PATH / \"decompressor\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "1gR6WQBow4bC"
+ },
+ "source": [
+ "## Playground"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "0C0rFrBuw4bC",
+ "outputId": "c8a88452-7c0e-4267-f6de-5f599432a489"
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import torch\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "top_token_count = 100\n",
+ "\n",
+ "# Assuming `action_distributions` is the tensor of shape [100, 32128]\n",
+ "logits = action_distributions[1].detach().cpu() # Ensure it's on the CPU\n",
+ "\n",
+ "# Step 1: Average the logits across the first axis (dimension 0)\n",
+ "avg_logits = torch.mean(logits, dim=0)\n",
+ "\n",
+ "# Step 2: Get the top 50 tokens based on average logit values\n",
+ "top_values, top_indices = torch.topk(avg_logits, top_token_count)\n",
+ "\n",
+ "# Step 3: Convert the top indices to tokens using the tokenizer\n",
+ "top_tokens = tokenizer.convert_ids_to_tokens(top_indices.numpy())\n",
+ "\n",
+ "# Step 4: Plot the top 50 logits using imshow with tokens as labels\n",
"plt.figure(figsize=(10, 2))\n",
"plt.imshow(logits[..., top_indices].numpy(), cmap='viridis', aspect='auto', interpolation=\"nearest\")\n",
"plt.colorbar(label='Logit Value')\n",
@@ -909,72 +1102,56 @@
},
{
"cell_type": "code",
- "execution_count": 41,
- "metadata": {},
+ "execution_count": 17,
+ "metadata": {
+ "id": "U393aMyBw4bC",
+ "outputId": "faa47bfc-c434-41f9-a75d-83cb7a486888"
+ },
"outputs": [
{
"data": {
"text/plain": [
- "tensor([[ 165.1084, -36.0591, -121.1219, ..., 693.7413, 704.1188,\n",
- " 714.4963],\n",
- " [ 52.5199, -161.4629, -264.1466, ..., 560.4196, 570.7971,\n",
- " 581.1746],\n",
- " [ 108.7585, -87.1466, -611.3521, ..., 665.0784, 675.4559,\n",
- " 685.8333],\n",
- " ...,\n",
- " [ 141.6855, -90.8539, -191.5150, ..., 620.3885, 630.7659,\n",
- " 641.1434],\n",
- " [ -97.1033, -232.9352, -222.5577, ..., 698.5034, 708.8810,\n",
- " 719.2583],\n",
- " [ 129.4216, -67.8324, -597.4383, ..., 678.9921, 689.3696,\n",
- " 699.7472]], device='cuda:0', grad_fn=)"
+ "device(type='cuda', index=1)"
]
},
- "execution_count": 41,
+ "execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "advantage"
+ "compressor.device"
]
},
{
"cell_type": "code",
- "execution_count": 42,
- "metadata": {},
+ "execution_count": 18,
+ "metadata": {
+ "id": "mz4_KbSNw4bC",
+ "outputId": "d47df08d-66da-48f5-c1bb-42dc639804c1"
+ },
"outputs": [
{
- "data": {
- "text/plain": [
- "tensor([[-1512.3618, -1300.8169, -1205.3765, ..., -743.8093, -743.8093,\n",
- " -743.8093],\n",
- " [-1502.4591, -1278.0989, -1165.0376, ..., -713.1734, -713.1734,\n",
- " -713.1734],\n",
- " [-1512.4761, -1306.1935, -771.6105, ..., -771.6105, -771.6105,\n",
- " -771.6105],\n",
- " ...,\n",
- " [-1500.7911, -1257.8741, -1146.8356, ..., -682.3087, -682.3086,\n",
- " -682.3087],\n",
- " [-1571.7404, -1425.5309, -1425.5309, ..., -1070.1616, -1070.1617,\n",
- " -1070.1616],\n",
- " [-1510.2328, -1302.6012, -762.6179, ..., -762.6179, -762.6179,\n",
- " -762.6179]], device='cuda:0', grad_fn=)"
- ]
- },
- "execution_count": 42,
- "metadata": {},
- "output_type": "execute_result"
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "sequences torch.Size([4, 27])\n",
+ "logits 26\n",
+ "past_key_values 12\n"
+ ]
}
],
"source": [
- "values"
+ "for k, v in compressed.items():\n",
+ " print(k, v.shape if hasattr(v, \"shape\") else len(v))\n"
]
},
{
"cell_type": "code",
- "execution_count": 20,
- "metadata": {},
+ "execution_count": null,
+ "metadata": {
+ "id": "eaQR64z2w4bC"
+ },
"outputs": [],
"source": [
"val_tmp = values.detach()"
@@ -982,8 +1159,10 @@
},
{
"cell_type": "code",
- "execution_count": 48,
- "metadata": {},
+ "execution_count": null,
+ "metadata": {
+ "id": "6sBjWgK0w4bC"
+ },
"outputs": [],
"source": [
"bias = nn.Parameter(torch.tensor(0.0, device=device))\n",
@@ -992,8 +1171,10 @@
},
{
"cell_type": "code",
- "execution_count": 49,
- "metadata": {},
+ "execution_count": null,
+ "metadata": {
+ "id": "1QjHh1tDw4bD"
+ },
"outputs": [],
"source": [
"# optim_tmp.param_groups[0]['betas'] = (0.99, 0.5)\n",
@@ -1002,8 +1183,16 @@
},
{
"cell_type": "code",
- "execution_count": 52,
- "metadata": {},
+ "execution_count": null,
+ "metadata": {
+ "colab": {
+ "referenced_widgets": [
+ "198affb45b4f40b1beb28eb813be0481"
+ ]
+ },
+ "id": "oaYc-L-hw4bD",
+ "outputId": "f30208f9-8296-4586-ec88-701149d7764a"
+ },
"outputs": [
{
"data": {
@@ -1041,8 +1230,11 @@
},
{
"cell_type": "code",
- "execution_count": 29,
- "metadata": {},
+ "execution_count": null,
+ "metadata": {
+ "id": "WgiosFdvw4bD",
+ "outputId": "fcdd54bb-d839-4967-bf5e-055b457d5a6b"
+ },
"outputs": [
{
"data": {
@@ -1070,8 +1262,11 @@
},
{
"cell_type": "code",
- "execution_count": 17,
- "metadata": {},
+ "execution_count": null,
+ "metadata": {
+ "id": "QlzjNo7hw4bD",
+ "outputId": "9fafc9f1-b379-4d4d-9ab6-97098c868a90"
+ },
"outputs": [
{
"data": {
@@ -1142,8 +1337,11 @@
},
{
"cell_type": "code",
- "execution_count": 54,
- "metadata": {},
+ "execution_count": null,
+ "metadata": {
+ "id": "QTmN4OBdw4bD",
+ "outputId": "58688d92-d249-405e-82d1-45f8392feb97"
+ },
"outputs": [
{
"data": {
@@ -1162,8 +1360,11 @@
},
{
"cell_type": "code",
- "execution_count": 55,
- "metadata": {},
+ "execution_count": null,
+ "metadata": {
+ "id": "9Gb3kVLkw4bG",
+ "outputId": "290d9d5a-1da7-48d3-e1d7-d763845bcace"
+ },
"outputs": [
{
"data": {
@@ -1215,8 +1416,11 @@
},
{
"cell_type": "code",
- "execution_count": 49,
- "metadata": {},
+ "execution_count": null,
+ "metadata": {
+ "id": "9-Ex1IKEw4bG",
+ "outputId": "c6053fe6-5dd0-4595-957e-df5b9fc75dfa"
+ },
"outputs": [
{
"data": {
@@ -1269,8 +1473,11 @@
},
{
"cell_type": "code",
- "execution_count": 56,
- "metadata": {},
+ "execution_count": null,
+ "metadata": {
+ "id": "Mpfxu39uw4bG",
+ "outputId": "27cc1fc5-890a-484b-951e-a0a17e17ea01"
+ },
"outputs": [
{
"data": {
@@ -1304,8 +1511,11 @@
},
{
"cell_type": "code",
- "execution_count": 51,
- "metadata": {},
+ "execution_count": null,
+ "metadata": {
+ "id": "5rfN0jm2w4bG",
+ "outputId": "6c092a3c-e588-4744-9a73-ec8d6d37ffce"
+ },
"outputs": [
{
"data": {
@@ -1336,11 +1546,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "id": "eWtEiSe0RZqa",
- "outputId": "e2b87961-8603-48e7-9a72-fecfd1ebec4d"
+ "id": "eWtEiSe0RZqa"
},
"outputs": [],
"source": [
@@ -1407,7 +1613,9 @@
{
"cell_type": "code",
"execution_count": null,
- "metadata": {},
+ "metadata": {
+ "id": "3IceDKUVw4bG"
+ },
"outputs": [],
"source": [
"actions[2][4] = 1"
@@ -1416,21 +1624,27 @@
{
"cell_type": "code",
"execution_count": null,
- "metadata": {},
+ "metadata": {
+ "id": "C6M4pehdw4bG"
+ },
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
- "metadata": {},
+ "metadata": {
+ "id": "qRQ23pIHw4bH"
+ },
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
- "metadata": {},
+ "metadata": {
+ "id": "08ZGGXx5w4bH"
+ },
"outputs": [],
"source": [
"actions"
@@ -1439,7 +1653,9 @@
{
"cell_type": "code",
"execution_count": null,
- "metadata": {},
+ "metadata": {
+ "id": "EWH18Ssyw4bH"
+ },
"outputs": [],
"source": [
"_61.tolist()"
@@ -1448,7 +1664,9 @@
{
"cell_type": "code",
"execution_count": null,
- "metadata": {},
+ "metadata": {
+ "id": "SYyxH35jw4bH"
+ },
"outputs": [],
"source": [
"tokenizer.decode(compressed[0])"
@@ -1458,11 +1676,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "id": "PYiKrtM2M03J",
- "outputId": "ccf98ed3-034e-4363-e687-a08941c63c26"
+ "id": "PYiKrtM2M03J"
},
"outputs": [],
"source": []
@@ -1471,11 +1685,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "id": "FLVMLQIqQXCf",
- "outputId": "01a7d128-c502-49f3-9556-fc948ee1f1ef"
+ "id": "FLVMLQIqQXCf"
},
"outputs": [],
"source": [
@@ -1485,7 +1695,9 @@
{
"cell_type": "code",
"execution_count": null,
- "metadata": {},
+ "metadata": {
+ "id": "PfBhV45yw4bH"
+ },
"outputs": [],
"source": [
"compressed[0, 1] = 4"
@@ -1494,7 +1706,9 @@
{
"cell_type": "code",
"execution_count": null,
- "metadata": {},
+ "metadata": {
+ "id": "oxbMaMA1w4bH"
+ },
"outputs": [],
"source": [
"values, indices = compression_output.logits[0, -1].sort(descending=True)"
@@ -1503,7 +1717,9 @@
{
"cell_type": "code",
"execution_count": null,
- "metadata": {},
+ "metadata": {
+ "id": "W1LgK-jbw4bH"
+ },
"outputs": [],
"source": [
"indices"
@@ -1512,7 +1728,9 @@
{
"cell_type": "code",
"execution_count": null,
- "metadata": {},
+ "metadata": {
+ "id": "pLLIgKM4w4bH"
+ },
"outputs": [],
"source": [
"F.cross_entropy(\n",
@@ -1527,11 +1745,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "id": "e2T85EARPdwI",
- "outputId": "bc324f8e-e86a-44c4-ab3b-a95c72b1cae3"
+ "id": "e2T85EARPdwI"
},
"outputs": [],
"source": [
@@ -1541,7 +1755,9 @@
{
"cell_type": "code",
"execution_count": null,
- "metadata": {},
+ "metadata": {
+ "id": "eAIEFx4jw4bI"
+ },
"outputs": [],
"source": [
"len(action_logits)"
@@ -1550,7 +1766,9 @@
{
"cell_type": "code",
"execution_count": null,
- "metadata": {},
+ "metadata": {
+ "id": "f8fWsj1Rw4bI"
+ },
"outputs": [],
"source": [
"compressed"
@@ -1559,7 +1777,9 @@
{
"cell_type": "code",
"execution_count": null,
- "metadata": {},
+ "metadata": {
+ "id": "0n7pvXSLw4bI"
+ },
"outputs": [],
"source": [
"sample[\"text\"]"
@@ -1569,11 +1789,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "id": "GtKo3PPGQf0J",
- "outputId": "b0d3ea63-0a51-43ab-8fa2-e784c530ab45"
+ "id": "GtKo3PPGQf0J"
},
"outputs": [],
"source": [
@@ -1584,11 +1800,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "id": "VXhr1x1tQhII",
- "outputId": "213f761f-3ea8-4f9a-e857-b7e3ac69a167"
+ "id": "VXhr1x1tQhII"
},
"outputs": [],
"source": [
@@ -1599,11 +1811,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "id": "fLAz9DwoN5np",
- "outputId": "b3931440-5067-4716-99b2-9421357bd608"
+ "id": "fLAz9DwoN5np"
},
"outputs": [],
"source": [
@@ -1614,11 +1822,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "id": "xIKY8_DwNa4l",
- "outputId": "bf6eb955-9a2a-4b57-8db4-6d86a7e94675"
+ "id": "xIKY8_DwNa4l"
},
"outputs": [],
"source": [
@@ -1629,11 +1833,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "id": "5zxqYdtCNLn7",
- "outputId": "fb8f9db0-ea93-4a70-be64-dbced88bc02b"
+ "id": "5zxqYdtCNLn7"
},
"outputs": [],
"source": [
@@ -1644,11 +1844,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "id": "aDveEsAPMsQt",
- "outputId": "b2edf6d5-b6c8-44fa-99b8-13a4321b5afc"
+ "id": "aDveEsAPMsQt"
},
"outputs": [],
"source": [
@@ -1659,11 +1855,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "id": "SiJGEKx2MtlU",
- "outputId": "ad04d0e9-3976-418b-a74f-9a480ce1b48b"
+ "id": "SiJGEKx2MtlU"
},
"outputs": [],
"source": [
@@ -1675,7 +1867,6 @@
"accelerator": "GPU",
"colab": {
"gpuType": "T4",
- "include_colab_link": true,
"provenance": []
},
"kernelspec": {
@@ -1693,35 +1884,32 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.12.3"
+ "version": "3.11.10"
},
"widgets": {
"application/vnd.jupyter.widget-state+json": {
- "1a79263283254ba3a8e909ea3966e3ac": {
+ "0124c91212644264aaf84fe52e26e1dd": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
- "model_name": "FloatProgressModel",
+ "model_name": "HTMLModel",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
- "_model_name": "FloatProgressModel",
+ "_model_name": "HTMLModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
- "_view_name": "ProgressView",
- "bar_style": "danger",
+ "_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_460431870cd346caa15e02b9ffe0c63f",
- "max": 855090,
- "min": 0,
- "orientation": "horizontal",
- "style": "IPY_MODEL_a75e62964f224e8ab32e9136c00f786e",
- "value": 1702
+ "layout": "IPY_MODEL_71f62c2eb9ad40e289c5bbcc0c95490d",
+ "placeholder": "",
+ "style": "IPY_MODEL_bc1b308fdc1b4e80a6d04a70e75de34e",
+ "value": "Filter: 100%"
}
},
- "460431870cd346caa15e02b9ffe0c63f": {
+ "05f070c4b1294821b0874bf4ddc9d7d7": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
@@ -1773,28 +1961,521 @@
"width": null
}
},
- "579d2c20323a4e14aa0b2fcc125e9eb9": {
- "model_module": "@jupyter-widgets/controls",
- "model_module_version": "1.5.0",
- "model_name": "HTMLModel",
+ "065511e68dfb4053b4f0a70ef7a91ee3": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
"state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "HTMLModel",
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
"_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
+ "_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
+ }
+ },
+ "06df0c8f7b974e189272f1a91a5e28c5": {
+ "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": ""
+ }
+ },
+ "1925655871374689a1057b008f889052": {
+ "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_232f001ecfd4414aba63125571389434",
+ "max": 1,
+ "min": 0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_06df0c8f7b974e189272f1a91a5e28c5",
+ "value": 1
+ }
+ },
+ "1dc435da8c744a6282e8f7cfce8b4f2f": {
+ "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": ""
+ }
+ },
+ "2011e26c9fde4ada959624a30d935c6b": {
+ "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_55a34be2f9d14d00926062efafa2d7b0",
+ "IPY_MODEL_1925655871374689a1057b008f889052",
+ "IPY_MODEL_576e75f0473145168b5d166acb903643"
+ ],
+ "layout": "IPY_MODEL_532d04fe48164a00a8db36177c9ea152"
+ }
+ },
+ "22d010b51fd34ddf82627507aed81676": {
+ "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": ""
+ }
+ },
+ "232f001ecfd4414aba63125571389434": {
+ "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"
+ }
+ },
+ "259751f990bc4422b181c49619700334": {
+ "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_a1b0cd399a2d44e6a5f3431ac861d2d2",
+ "IPY_MODEL_b9be4ff6d92f4112aa8078e96b3838db",
+ "IPY_MODEL_96e4d29108ca47ea9beb7f7b1a78d79a"
+ ],
+ "layout": "IPY_MODEL_8b32e1b93368443f981ec8187016c7f2"
+ }
+ },
+ "3bf1e9a699f14d709b1f81ae98bf1215": {
+ "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_0124c91212644264aaf84fe52e26e1dd",
+ "IPY_MODEL_61bc579763f6454cb6a36dc80b9068a0",
+ "IPY_MODEL_f056e5f5aec54fe8b3cfc121e1c24430"
+ ],
+ "layout": "IPY_MODEL_e6563f7242f3412a940b8761621eeac7"
+ }
+ },
+ "4b524028a9564a61a935d10083922c4c": {
+ "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
+ }
+ },
+ "532d04fe48164a00a8db36177c9ea152": {
+ "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
+ }
+ },
+ "55a34be2f9d14d00926062efafa2d7b0": {
+ "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_ffbc13e493114403b6f88a67db932b15",
+ "placeholder": "",
+ "style": "IPY_MODEL_a5c93a83de084232a6964a113aecb930",
+ "value": "Generating train split: "
+ }
+ },
+ "576e75f0473145168b5d166acb903643": {
+ "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_e648ad71485b482992d3b5b699fdf90b",
+ "layout": "IPY_MODEL_4b524028a9564a61a935d10083922c4c",
"placeholder": "",
- "style": "IPY_MODEL_a7c81547e14040a28b9f3e8f469bc933",
- "value": "actor_loss=-10.76, critic_loss=745.64, decompressor_loss=1.31: 0%"
+ "style": "IPY_MODEL_1dc435da8c744a6282e8f7cfce8b4f2f",
+ "value": " 1128024/0 [00:02<00:00, 387057.12 examples/s]"
+ }
+ },
+ "61bc579763f6454cb6a36dc80b9068a0": {
+ "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_b0349099323b4b6280e3f253ab2aa033",
+ "max": 1128024,
+ "min": 0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_e486dae88741401a82d16c7aa84b57cf",
+ "value": 1128024
+ }
+ },
+ "654f5bb5e6e44858af000d593b701980": {
+ "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
+ }
+ },
+ "71f62c2eb9ad40e289c5bbcc0c95490d": {
+ "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
}
},
- "584d3bd4ac484269bcf7da1d48c78448": {
+ "7a87b54b7ed549bdb26958bf7f803af2": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
@@ -1846,7 +2527,7 @@
"width": null
}
},
- "6f20c7b7089045ffa62fda32898dd673": {
+ "8b32e1b93368443f981ec8187016c7f2": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
@@ -1898,45 +2579,131 @@
"width": null
}
},
- "a0678d2428ff4198a9381b664dea08c4": {
+ "95b6d03796e84153a5e2a6904d640659": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
- "model_name": "HBoxModel",
+ "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": ""
+ }
+ },
+ "96e4d29108ca47ea9beb7f7b1a78d79a": {
+ "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": "HBoxModel",
+ "_model_name": "HTMLModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
- "_view_name": "HBoxView",
- "box_style": "",
- "children": [
- "IPY_MODEL_579d2c20323a4e14aa0b2fcc125e9eb9",
- "IPY_MODEL_1a79263283254ba3a8e909ea3966e3ac",
- "IPY_MODEL_e4dcb7f644ce4739b255809f9df0bf53"
- ],
- "layout": "IPY_MODEL_584d3bd4ac484269bcf7da1d48c78448"
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_05f070c4b1294821b0874bf4ddc9d7d7",
+ "placeholder": "",
+ "style": "IPY_MODEL_95b6d03796e84153a5e2a6904d640659",
+ "value": " 2/107029 [00:17<228:26:51, 7.68s/it]"
}
},
- "a75e62964f224e8ab32e9136c00f786e": {
+ "a1b0cd399a2d44e6a5f3431ac861d2d2": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
- "model_name": "ProgressStyleModel",
+ "model_name": "HTMLModel",
"state": {
+ "_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
- "_model_name": "ProgressStyleModel",
+ "_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_065511e68dfb4053b4f0a70ef7a91ee3",
+ "placeholder": "",
+ "style": "IPY_MODEL_b2826da9f9314c1cb966b54a7b6120fe",
+ "value": "compression_ratio=0.85, critic_loss=5318.31, actor_loss=0.26, decompressor_loss=1.43: 0%"
+ }
+ },
+ "a5c93a83de084232a6964a113aecb930": {
+ "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",
- "bar_color": null,
"description_width": ""
}
},
- "a7c81547e14040a28b9f3e8f469bc933": {
+ "b0349099323b4b6280e3f253ab2aa033": {
+ "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
+ }
+ },
+ "b2826da9f9314c1cb966b54a7b6120fe": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "DescriptionStyleModel",
@@ -1951,28 +2718,78 @@
"description_width": ""
}
},
- "e4dcb7f644ce4739b255809f9df0bf53": {
+ "b9be4ff6d92f4112aa8078e96b3838db": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
- "model_name": "HTMLModel",
+ "model_name": "FloatProgressModel",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
- "_model_name": "HTMLModel",
+ "_model_name": "FloatProgressModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
- "_view_name": "HTMLView",
+ "_view_name": "ProgressView",
+ "bar_style": "danger",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_6f20c7b7089045ffa62fda32898dd673",
- "placeholder": "",
- "style": "IPY_MODEL_e79223029d27455288e6daa49aabe4f3",
- "value": " 1702/855090 [14:03<68:11:10, 3.48it/s]"
+ "layout": "IPY_MODEL_7a87b54b7ed549bdb26958bf7f803af2",
+ "max": 107029,
+ "min": 0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_dad9de6f3118448eb665a9fcb544ff68",
+ "value": 2
+ }
+ },
+ "bc1b308fdc1b4e80a6d04a70e75de34e": {
+ "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": ""
+ }
+ },
+ "dad9de6f3118448eb665a9fcb544ff68": {
+ "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": ""
+ }
+ },
+ "e486dae88741401a82d16c7aa84b57cf": {
+ "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": ""
}
},
- "e648ad71485b482992d3b5b699fdf90b": {
+ "e6563f7242f3412a940b8761621eeac7": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
@@ -2024,19 +2841,77 @@
"width": null
}
},
- "e79223029d27455288e6daa49aabe4f3": {
+ "f056e5f5aec54fe8b3cfc121e1c24430": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
- "model_name": "DescriptionStyleModel",
+ "model_name": "HTMLModel",
"state": {
+ "_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
- "_model_name": "DescriptionStyleModel",
+ "_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_654f5bb5e6e44858af000d593b701980",
+ "placeholder": "",
+ "style": "IPY_MODEL_22d010b51fd34ddf82627507aed81676",
+ "value": " 1128024/1128024 [02:45<00:00, 6447.57 examples/s]"
+ }
+ },
+ "ffbc13e493114403b6f88a67db932b15": {
+ "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": "StyleView",
- "description_width": ""
+ "_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
}
}
}
diff --git a/TokenDethcodEval.ipynb b/TokenDethcodEval.ipynb
new file mode 100644
index 0000000..614af67
--- /dev/null
+++ b/TokenDethcodEval.ipynb
@@ -0,0 +1,2050 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "unSiMpj_w4a7"
+ },
+ "source": [
+ "# Token based DETHCOD"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "eSX4vKTl97pS",
+ "scrolled": true
+ },
+ "outputs": [],
+ "source": [
+ "!pip install transformers wandb requests_cache datasets tqdm python-dotenv peft accelerate bitsandbytes>0.37.0"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "id": "e-neGcFgTHdu",
+ "outputId": "8ea87abe-c1a8-4a3c-82e5-6486b75e4e2a"
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001b[34m\u001b[1mwandb\u001b[0m: \u001b[33mWARNING\u001b[0m If you're specifying your api key in code, ensure this code is not shared publicly.\n",
+ "\u001b[34m\u001b[1mwandb\u001b[0m: \u001b[33mWARNING\u001b[0m Consider setting the WANDB_API_KEY environment variable, or running `wandb login` from the command line.\n",
+ "\u001b[34m\u001b[1mwandb\u001b[0m: Appending key for api.wandb.ai to your netrc file: /home/khodabandeh/.netrc\n"
+ ]
+ }
+ ],
+ "source": [
+ "import os\n",
+ "import wandb\n",
+ "\n",
+ "try:\n",
+ " from dotenv import load_dotenv\n",
+ " # Load environment variables from .env file\n",
+ " load_dotenv()\n",
+ "\n",
+ "except ImportError as e:\n",
+ " print(f\"Error importing dotenv: {e}\")\n",
+ "\n",
+ "\n",
+ "# Check if running in Colab\n",
+ "try:\n",
+ " from google.colab import userdata\n",
+ " # If running in Colab, use userdata.get to retrieve the token\n",
+ " wandb.login(key=userdata.get('wandb_token'))\n",
+ "\n",
+ "except ImportError:\n",
+ " # If not in Colab, load the token from the environment variable\n",
+ " wandb_token = os.getenv('WANDB_TOKEN')\n",
+ " if wandb_token:\n",
+ " wandb.login(key=wandb_token, relogin=True)\n",
+ " else:\n",
+ " print(\"W&B token not found in environment variable. Please set WANDB_TOKEN in your environment.\")\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "3yDIICSsnFOb"
+ },
+ "source": [
+ "## Download Data"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "JQb9wuBJnFOc",
+ "outputId": "14f92a7c-92b6-4c54-cb96-7aedd2d11747"
+ },
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "0281b1df4a3d4337acea1a6ed75c1dac",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "Downloading: 0%| | 0.00/36.4M [00:00, ?B/s]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "File downloaded and decompressed successfully.\n"
+ ]
+ }
+ ],
+ "source": [
+ "import io\n",
+ "import os\n",
+ "import sys\n",
+ "import zipfile\n",
+ "\n",
+ "import requests\n",
+ "import requests_cache\n",
+ "from tqdm.auto import tqdm\n",
+ "\n",
+ "\n",
+ "zip_link = \"http://www.mattmahoney.net/dc/enwik8.zip\"\n",
+ "data_folder = \"dataset\"\n",
+ "cache_file = \"download_cache\"\n",
+ "\n",
+ "# Ensure the data folder exists\n",
+ "if not os.path.exists(data_folder):\n",
+ " os.makedirs(data_folder)\n",
+ "\n",
+ "# Initialize requests_cache\n",
+ "requests_cache.install_cache(os.path.join(data_folder, cache_file))\n",
+ "\n",
+ "# Download the ZIP file with progress bar\n",
+ "response = requests.get(zip_link, stream=True)\n",
+ "response.raise_for_status()\n",
+ "\n",
+ "# Get the total file size for the progress bar\n",
+ "total_size = int(response.headers.get(\"content-length\", 0))\n",
+ "\n",
+ "# Open the ZIP file from the content\n",
+ "with open(os.path.join(data_folder, \"enwik8.zip\"), \"wb\") as file:\n",
+ " with tqdm(\n",
+ " total=total_size, unit=\"B\", unit_scale=True, desc=\"Downloading\"\n",
+ " ) as pbar:\n",
+ " for data in response.iter_content(chunk_size=1024):\n",
+ " file.write(data)\n",
+ " pbar.update(len(data))\n",
+ "\n",
+ "# Open the cached file\n",
+ "with open(os.path.join(data_folder, \"enwik8.zip\"), \"rb\") as file:\n",
+ " # Open the ZIP file from the content\n",
+ " with zipfile.ZipFile(io.BytesIO(file.read())) as zip_file:\n",
+ " # Extract all contents to the data folder\n",
+ " zip_file.extractall(data_folder)\n",
+ "\n",
+ "print(\"File downloaded and decompressed successfully.\", file=sys.stderr)\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "NMCRynUDpAz6"
+ },
+ "source": [
+ "## Data"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 49,
+ "referenced_widgets": [
+ "2011e26c9fde4ada959624a30d935c6b",
+ "55a34be2f9d14d00926062efafa2d7b0",
+ "1925655871374689a1057b008f889052",
+ "576e75f0473145168b5d166acb903643",
+ "532d04fe48164a00a8db36177c9ea152",
+ "ffbc13e493114403b6f88a67db932b15",
+ "a5c93a83de084232a6964a113aecb930",
+ "232f001ecfd4414aba63125571389434",
+ "06df0c8f7b974e189272f1a91a5e28c5",
+ "4b524028a9564a61a935d10083922c4c",
+ "1dc435da8c744a6282e8f7cfce8b4f2f"
+ ]
+ },
+ "id": "BF26H2PapAjj",
+ "outputId": "f39ab00e-b77e-4ab5-9075-21f2501f44ca"
+ },
+ "outputs": [],
+ "source": [
+ "from datasets import load_dataset\n",
+ "\n",
+ "dataset = load_dataset(\"text\", data_files=[\"dataset/enwik8\"])\n",
+ "dataset = dataset[\"train\"]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "pY1_Ux8uprdh",
+ "outputId": "a0f15afa-0f49-4aea-d8ac-1f875aa8369e"
+ },
+ "outputs": [],
+ "source": [
+ "from transformers import AutoTokenizer\n",
+ "\n",
+ "MODEL_ID = \"google-t5/t5-small\"\n",
+ "tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 49,
+ "referenced_widgets": [
+ "3bf1e9a699f14d709b1f81ae98bf1215",
+ "0124c91212644264aaf84fe52e26e1dd",
+ "61bc579763f6454cb6a36dc80b9068a0",
+ "f056e5f5aec54fe8b3cfc121e1c24430",
+ "e6563f7242f3412a940b8761621eeac7",
+ "71f62c2eb9ad40e289c5bbcc0c95490d",
+ "bc1b308fdc1b4e80a6d04a70e75de34e",
+ "b0349099323b4b6280e3f253ab2aa033",
+ "e486dae88741401a82d16c7aa84b57cf",
+ "654f5bb5e6e44858af000d593b701980",
+ "22d010b51fd34ddf82627507aed81676"
+ ]
+ },
+ "id": "dZXhU0AfhrTJ",
+ "outputId": "87a6d03b-25cf-4dd0-d61c-b340a250e1df"
+ },
+ "outputs": [],
+ "source": [
+ "# Removing large and empty samples\n",
+ "MAX_LENGTH = 128\n",
+ "\n",
+ "def filter_samples(example):\n",
+ " tokenized = tokenizer(\n",
+ " example[\"text\"],\n",
+ " truncation=True,\n",
+ " max_length=MAX_LENGTH + 1,\n",
+ " return_attention_mask=False,\n",
+ " return_length=True,\n",
+ " )\n",
+ "\n",
+ " return [\n",
+ " 1 < sample_length <= MAX_LENGTH\n",
+ " for sample_length in tokenized.length\n",
+ " ]\n",
+ "\n",
+ "dataset = dataset.filter(filter_samples, batched=True)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "WPWUhHX8A43h",
+ "outputId": "82f3afe8-154a-40d7-c6a1-f0346072dc5b"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "'area_note =|'\n"
+ ]
+ }
+ ],
+ "source": [
+ "import random\n",
+ "sample = random.choice(dataset)\n",
+ "print(repr(sample[\"text\"]))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "wrDpshHUnFOd"
+ },
+ "source": [
+ "## Model"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "id": "fGqAZ6NY-FrU"
+ },
+ "outputs": [],
+ "source": [
+ "from dataclasses import dataclass\n",
+ "from typing import Optional, Tuple, Union\n",
+ "\n",
+ "import torch\n",
+ "import torch.nn as nn\n",
+ "import transformers\n",
+ "import transformers.modeling_outputs\n",
+ "\n",
+ "\n",
+ "class CompressionConfig(transformers.T5Config): ...\n",
+ "\n",
+ "\n",
+ "@dataclass\n",
+ "class CompressionOutput(transformers.modeling_outputs.Seq2SeqLMOutput):\n",
+ " value_predictions: Optional[Tuple[torch.FloatTensor, ...]] = None\n",
+ "\n",
+ "\n",
+ "class CompressionModel(transformers.T5ForConditionalGeneration):\n",
+ " def __init__(self, config):\n",
+ " super().__init__(config)\n",
+ "\n",
+ " self.critic_head = nn.Linear(config.d_model, 1)\n",
+ " self.critic_head.weight.data.normal_(mean=0.0, std=(1 / config.d_model))\n",
+ " self.critic_head.bias.data.zero_()\n",
+ "\n",
+ " def forward(\n",
+ " self,\n",
+ " input_ids: Optional[torch.LongTensor] = None,\n",
+ " attention_mask: Optional[torch.FloatTensor] = None,\n",
+ " decoder_input_ids: Optional[torch.LongTensor] = None,\n",
+ " decoder_attention_mask: Optional[torch.BoolTensor] = None,\n",
+ " head_mask: Optional[torch.FloatTensor] = None,\n",
+ " decoder_head_mask: Optional[torch.FloatTensor] = None,\n",
+ " cross_attn_head_mask: Optional[torch.Tensor] = None,\n",
+ " encoder_outputs: Optional[Tuple[Tuple[torch.Tensor]]] = None,\n",
+ " past_key_values: Optional[Tuple[Tuple[torch.Tensor]]] = None,\n",
+ " inputs_embeds: Optional[torch.FloatTensor] = None,\n",
+ " decoder_inputs_embeds: Optional[torch.FloatTensor] = None,\n",
+ " labels: Optional[torch.LongTensor] = None,\n",
+ " use_cache: Optional[bool] = None,\n",
+ " output_attentions: Optional[bool] = None,\n",
+ " output_hidden_states: Optional[bool] = True,\n",
+ " return_dict: Optional[bool] = None,\n",
+ " ) -> Union[Tuple[torch.FloatTensor], CompressionOutput]:\n",
+ " output = super().forward(\n",
+ " input_ids=input_ids,\n",
+ " attention_mask=attention_mask,\n",
+ " decoder_input_ids=decoder_input_ids,\n",
+ " decoder_attention_mask=decoder_attention_mask,\n",
+ " head_mask=head_mask,\n",
+ " decoder_head_mask=decoder_head_mask,\n",
+ " cross_attn_head_mask=cross_attn_head_mask,\n",
+ " encoder_outputs=encoder_outputs,\n",
+ " past_key_values=past_key_values,\n",
+ " inputs_embeds=inputs_embeds,\n",
+ " decoder_inputs_embeds=decoder_inputs_embeds,\n",
+ " labels=labels,\n",
+ " use_cache=use_cache,\n",
+ " output_attentions=output_attentions,\n",
+ " output_hidden_states=output_hidden_states,\n",
+ " return_dict=return_dict,\n",
+ " )\n",
+ "\n",
+ " if output.decoder_hidden_states is not None:\n",
+ " last_hidden_state = output.decoder_hidden_states[-1]\n",
+ " value_predictions = self.critic_head(last_hidden_state).squeeze(-1)\n",
+ " else:\n",
+ " value_predictions = None\n",
+ "\n",
+ " loss = None\n",
+ " if labels is not None:\n",
+ " loss_fct = nn.CrossEntropyLoss(ignore_index=self.config.pad_token_id)\n",
+ " loss = loss_fct(output.logits.view(-1, self.config.vocab_size), labels.view(-1))\n",
+ "\n",
+ " return CompressionOutput(\n",
+ " loss=loss,\n",
+ " value_predictions=value_predictions,\n",
+ " logits=output.logits,\n",
+ " past_key_values=output.past_key_values,\n",
+ " decoder_hidden_states=output.decoder_hidden_states,\n",
+ " decoder_attentions=output.decoder_attentions,\n",
+ " cross_attentions=output.cross_attentions,\n",
+ " encoder_last_hidden_state=output.encoder_last_hidden_state,\n",
+ " encoder_hidden_states=output.encoder_hidden_states,\n",
+ " encoder_attentions=output.encoder_attentions,\n",
+ " )\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "id": "XMVtNmiu-30c"
+ },
+ "outputs": [],
+ "source": [
+ "import transformers\n",
+ "import transformers.modeling_outputs\n",
+ "\n",
+ "\n",
+ "class DecompressionConfig(transformers.T5Config): ...\n",
+ "\n",
+ "\n",
+ "class DecompressionModel(transformers.T5ForConditionalGeneration): ..."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "id": "-OTuhuS295RZ"
+ },
+ "outputs": [],
+ "source": [
+ "from pathlib import Path\n",
+ "\n",
+ "device = torch.device(\"cuda:1\" if torch.cuda.is_available() else \"cpu\")\n",
+ "MODEL_PATH = Path(\"./data/models/token-dethcod/a2c-v2-reward-norm\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "qm6-SLkqw4bA"
+ },
+ "source": [
+ "### Load Model"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "bZRSpc8ow4bA",
+ "outputId": "ac709f40-8c80-4058-fb1f-15b448bccc1e"
+ },
+ "outputs": [],
+ "source": [
+ "LOAD_LATEST = True\n",
+ "\n",
+ "if LOAD_LATEST:\n",
+ " compressor = CompressionModel.from_pretrained(MODEL_PATH / \"compressor\").to(device)\n",
+ " decompressor = DecompressionModel.from_pretrained(MODEL_PATH / \"decompressor\").to(device)\n",
+ "\n",
+ "else:\n",
+ " print(f\"Loading {MODEL_ID}\")\n",
+ " compressor = CompressionModel.from_pretrained(MODEL_ID, quantization_config=quantization_config).to(device)\n",
+ " compressor.critic_head.reset_parameters()\n",
+ " decompressor = DecompressionModel.from_pretrained(MODEL_ID, quantization_config=quantization_config).to(device)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "WeKAyrQz5k_k"
+ },
+ "source": [
+ "## Eval"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "id": "zioTdU4gA2J2"
+ },
+ "outputs": [],
+ "source": [
+ "import math\n",
+ "\n",
+ "BATCH_SIZE = 16\n",
+ "REWARD_SCALING = 0.01\n",
+ "MAX_TOKEN_COST = math.log(compressor.config.vocab_size)\n",
+ "\n",
+ "train_dataset = dataset\n",
+ "data_loader = torch.utils.data.DataLoader(train_dataset, batch_size=BATCH_SIZE, shuffle=True)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "id": "SUo_c6cyTx2Y",
+ "outputId": "317d1857-2c8e-45a7-ada8-99ef974f8124"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "Finishing last run (ID:25pvmaik) before initializing another..."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "VBox(children=(Label(value='0.047 MB of 0.071 MB uploaded (0.004 MB deduped)\\r'), FloatProgress(value=0.663507…"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "wandb: ERROR Error uploading \"requirements.txt\": CommError, \n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "W&B sync reduced upload amount by 5.2% "
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " View run Evaluation at: https://wandb.ai/chihuahuas/DETHCOD/runs/25pvmaik
View project at: https://wandb.ai/chihuahuas/DETHCOD
Synced 5 W&B file(s), 0 media file(s), 2 artifact file(s) and 0 other file(s)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Find logs at: ./wandb/run-20241215_171829-25pvmaik/logs"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Successfully finished last run (ID:25pvmaik). Initializing new run:
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "05172a4a8ff24a4785a3df5c9d62c633",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "VBox(children=(Label(value='Waiting for wandb.init()...\\r'), FloatProgress(value=0.011113023866588871, max=1.0…"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "wandb version 0.19.1 is available! To upgrade, please run:\n",
+ " $ pip install wandb --upgrade"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Tracking run with wandb version 0.16.6"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Run data is saved locally in /home/khodabandeh/Projects/dethcod/wandb/run-20241215_171835-qtzvtxmb"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Syncing run Evaluation to Weights & Biases (docs)
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " View project at https://wandb.ai/chihuahuas/DETHCOD"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " View run at https://wandb.ai/chihuahuas/DETHCOD/runs/qtzvtxmb"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ ""
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 12,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import wandb\n",
+ "\n",
+ "wandb.init(\n",
+ " name = \"Evaluation\",\n",
+ " project=\"DETHCOD\",\n",
+ " config={\n",
+ " \"compressor_model_config\": compressor.config.to_dict(),\n",
+ " \"decompressor_model_config\": decompressor.config.to_dict(),\n",
+ " # TODO: Add other parameters\n",
+ " },\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "YRjMbckLw4bB",
+ "outputId": "f6b49273-3ea8-423c-abb1-6e4b49df4bdf"
+ },
+ "outputs": [],
+ "source": [
+ "# graph = wandb.watch((compressor.critic_head, compressor.lm_head), log_freq=100, log=\"all\", log_graph=True)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "81konK25w4bB"
+ },
+ "source": [
+ "### RL Training Loop"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 423,
+ "referenced_widgets": [
+ "259751f990bc4422b181c49619700334",
+ "a1b0cd399a2d44e6a5f3431ac861d2d2",
+ "b9be4ff6d92f4112aa8078e96b3838db",
+ "96e4d29108ca47ea9beb7f7b1a78d79a",
+ "8b32e1b93368443f981ec8187016c7f2",
+ "065511e68dfb4053b4f0a70ef7a91ee3",
+ "b2826da9f9314c1cb966b54a7b6120fe",
+ "7a87b54b7ed549bdb26958bf7f803af2",
+ "dad9de6f3118448eb665a9fcb544ff68",
+ "05f070c4b1294821b0874bf4ddc9d7d7",
+ "95b6d03796e84153a5e2a6904d640659"
+ ]
+ },
+ "id": "-71bvb9b4Rth",
+ "outputId": "af7ae39c-cd07-4490-ed2c-d66ef023f852"
+ },
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "815b3c6bca8f43ab914ed761b26e9a8c",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ " 0%| | 0/53444 [00:00, ?it/s]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import torch.nn.functional as F\n",
+ "import tqdm.auto as tqdm\n",
+ "from transformers import GenerationConfig\n",
+ "\n",
+ "torch.set_grad_enabled(False)\n",
+ "\n",
+ "# Define your generation configuration as before\n",
+ "generation_config = GenerationConfig(\n",
+ " do_sample=True,\n",
+ " num_beams=1,\n",
+ " max_new_tokens=128,\n",
+ " decoder_start_token_id=compressor.generation_config.decoder_start_token_id,\n",
+ " eos_token_id=compressor.generation_config.eos_token_id,\n",
+ " pad_token_id=compressor.generation_config.pad_token_id,\n",
+ " return_dict_in_generate=True,\n",
+ " output_logits=True,\n",
+ ")\n",
+ "\n",
+ "total_decompressed_size = 0\n",
+ "total_compressed_size = 0\n",
+ "\n",
+ "with tqdm.tqdm(data_loader) as pbar:\n",
+ " for step, batch in enumerate(pbar):\n",
+ " # Get the current token cost from the scheduler\n",
+ " token_cost = MAX_TOKEN_COST\n",
+ "\n",
+ " input_ids = tokenizer(\n",
+ " batch[\"text\"],\n",
+ " return_tensors=\"pt\",\n",
+ " padding=True,\n",
+ " # TODO: Test if this has any effect\n",
+ " truncation=True,\n",
+ " ).input_ids.to(device)\n",
+ "\n",
+ " compressed = compressor.generate(input_ids=input_ids, generation_config=generation_config)\n",
+ " decompressed = decompressor.forward(input_ids=compressed.sequences, labels=input_ids)\n",
+ "\n",
+ " full_episodes = (compressed.sequences != generation_config.eos_token_id).all(dim=-1)\n",
+ " sequences_copy = compressed.sequences.clone()\n",
+ " sequences_copy[..., full_episodes, -1] = generation_config.eos_token_id\n",
+ " compressed.sequences = sequences_copy\n",
+ "\n",
+ " actions = compressed.sequences[..., 1:]\n",
+ " # compressed.logits: [\n",
+ " # torch.tensor(shape=(B, V))\n",
+ " # ]\n",
+ " # (L, B, V)\n",
+ " # (B, L, V)\n",
+ " action_distributions = torch.stack(compressed.logits).transpose(0, 1)\n",
+ " # TODO: Give the `actions` as decoder_input_ids instead\n",
+ " values = compressor.forward(input_ids=input_ids, decoder_input_ids=compressed.sequences).value_predictions[..., :-1]\n",
+ " action_mask = actions != generation_config.pad_token_id\n",
+ " is_pad = actions == generation_config.pad_token_id\n",
+ " is_eos = actions == generation_config.eos_token_id\n",
+ " compressed_length = actions.size(-1) - is_pad.logical_or(is_eos).sum(dim=-1)\n",
+ "\n",
+ " losses = F.cross_entropy(\n",
+ " decompressed.logits.flatten(0, -2),\n",
+ " target=input_ids.flatten(),\n",
+ " ignore_index=0,\n",
+ " reduction=\"none\",\n",
+ " ).view(input_ids.shape)\n",
+ " decompressor_loss = losses.mean()\n",
+ "\n",
+ " sequence_compression_loss = losses.detach().sum(dim=-1)\n",
+ " rewards = torch.where(\n",
+ " actions == generation_config.eos_token_id,\n",
+ " -sequence_compression_loss.unsqueeze(-1),\n",
+ " -token_cost,\n",
+ " ) * action_mask * REWARD_SCALING\n",
+ " # TODO: Implement temporal difference learning\n",
+ " qs = rewards.flip(dims=[-1]).cumsum(dim=-1).flip(dims=[-1])\n",
+ "\n",
+ " advantage = (qs - values) * action_mask\n",
+ " num_actions = action_mask.sum()\n",
+ " expected_advantage = advantage.sum() / num_actions\n",
+ " critic_loss = (advantage * advantage).sum() / num_actions\n",
+ "\n",
+ " data_costs = torch.where(\n",
+ " actions == generation_config.eos_token_id,\n",
+ " sequence_compression_loss.unsqueeze(-1),\n",
+ " MAX_TOKEN_COST,\n",
+ " ) * action_mask\n",
+ " compressed_size = data_costs.sum(dim=-1)\n",
+ " total_compressed_size += compressed_size.sum().item()\n",
+ " decompressed_size = (input_ids != 0).sum(dim=-1) * MAX_TOKEN_COST\n",
+ " total_decompressed_size += decompressed_size.sum().item()\n",
+ " compression_ratio = (decompressed_size / compressed_size).mean()\n",
+ "\n",
+ " action_logits = F.cross_entropy(\n",
+ " action_distributions.flatten(0, -2),\n",
+ " target=actions.flatten(),\n",
+ " ignore_index=0,\n",
+ " reduction=\"none\",\n",
+ " ).view(actions.shape)\n",
+ " actor_loss = (action_logits * advantage.detach()).mean()\n",
+ "\n",
+ " compressor_loss = actor_loss + critic_loss\n",
+ "\n",
+ " pbar.set_description(f\"{compression_ratio=:.2f}, {critic_loss=:.2f}, {actor_loss=:.2f}, {decompressor_loss=:.2f}\")\n",
+ "\n",
+ " with torch.no_grad():\n",
+ " wandb.log(\n",
+ " {\n",
+ " \"actor_loss\": actor_loss,\n",
+ " \"critic_loss\": critic_loss,\n",
+ " \"reward\": rewards.sum(dim=-1).mean(),\n",
+ " \"decompressor_loss\": decompressor_loss,\n",
+ " \"accuracy\": (-sequence_compression_loss).exp().mean(),\n",
+ " \"compressed_size\": compressed_length.float().mean(),\n",
+ " \"compression_ratio\": compression_ratio,\n",
+ " \"expected_advantage\": expected_advantage,\n",
+ " \"token_cost\": token_cost,\n",
+ " \"total_compressed_size\": total_compressed_size,\n",
+ " \"total_decompressed_size\": total_decompressed_size,\n",
+ " \"running_compression_ratio\": total_decompressed_size / total_compressed_size,\n",
+ " }\n",
+ " )\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "id": "MHotTfInw4bB"
+ },
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "VBox(children=(Label(value='5.613 MB of 5.613 MB uploaded (0.074 MB deduped)\\r'), FloatProgress(value=1.0, max…"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "W&B sync reduced upload amount by 1.3% "
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "Run history:
| accuracy | ▅▃▂▃▆▂▁▁▄▃▁▄▄▅▄▃▃▂▁▅▃▄▃▂▂▃▂▂▄▃▁▁█▂▁▁▄▁▄▃ |
| actor_loss | ▃▃▅▆▃▇▄▄▅▄▄▃▆▄▄▅▂▆▅▅▇▅▆▄▄▄▅▃▇▆▅▄▂▁█▃▂▆▅▅ |
| compressed_size | ▅▅▄▂▄▂▅▅▃▄▅▆▃▃▄▁▆▃▃▂▂▃▄▂▂▂▂▅▁▂▃▅█▇▁▅▆▂▅▄ |
| compression_ratio | ▂▁▂▁▅▄▁▂▄▁▃▂█▆▂▃▃▁▃▅▄▃▁▅▂▇▃▃▄▃▂▁▂▁▃▁▄▅▁▃ |
| critic_loss | ▄▃▁▁▄▁▂▃▂▃▂▃▂▂▁▁▅▂▂▂▁▁▁▂▃▃▂▂▁▂▂▂▃▅▁▃█▁▁▂ |
| decompressor_loss | ▃▃▃▃▂▃▁▄▄▃▃▅▁▂▂▄▅▇▃▄▃▄▂▃▄▅▄▆▄▄▂▃▄▅█▄▂▄▄▃ |
| expected_advantage | ▄▄▆▆▃▇▅▄▅▄▄▄▇▅▆▆▂▇▆▇▇▆▇▅▅▅▆▄▇▇▆▄▃▂█▄▁▆▆▆ |
| reward | ▆▅▇▄▇▅▆▆▅▄▅▅▇▆▆▂▄▇▄█▆▄▅▆▃▆▄▆▄▅▆▃▆▅▄▁▄▂▁▅ |
| running_compression_ratio | ▁█▄▃▃▃▄▄▄▄▄▄▄▄▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃ |
| token_cost | ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ |
| total_compressed_size | ▁▁▁▁▂▂▂▂▂▃▃▃▃▃▃▄▄▄▄▄▅▅▅▅▅▅▆▆▆▆▆▇▇▇▇▇▇███ |
| total_decompressed_size | ▁▁▁▁▂▂▂▂▂▃▃▃▃▃▃▄▄▄▄▄▅▅▅▅▅▅▆▆▆▆▆▇▇▇▇▇▇███ |
Run summary:
| accuracy | 0.00253 |
| actor_loss | 0.56255 |
| compressed_size | 2.5 |
| compression_ratio | 1.84862 |
| critic_loss | 0.05163 |
| decompressor_loss | 1.1767 |
| expected_advantage | 0.20043 |
| reward | -0.36534 |
| running_compression_ratio | 2.70787 |
| token_cost | 10.37748 |
| total_compressed_size | 80595864.103 |
| total_decompressed_size | 218243475.95416 |
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " View run Evaluation at: https://wandb.ai/chihuahuas/DETHCOD/runs/d3am86yx
View project at: https://wandb.ai/chihuahuas/DETHCOD
Synced 6 W&B file(s), 0 media file(s), 7 artifact file(s) and 2 other file(s)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Find logs at: ./wandb/run-20241205_153441-d3am86yx/logs"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "wandb.finish()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "EomSPfQ1w4bC"
+ },
+ "source": [
+ "### Save"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "MODEL_PATH = Path(\"./data/models/token-dethcod/a2c-v1-reward-norm\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "Hx_Iec6iw4bC"
+ },
+ "outputs": [],
+ "source": [
+ "compressor.save_pretrained(MODEL_PATH / \"compressor\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "33cJmyN2w4bC"
+ },
+ "outputs": [],
+ "source": [
+ "decompressor.save_pretrained(MODEL_PATH / \"decompressor\")"
+ ]
+ }
+ ],
+ "metadata": {
+ "accelerator": "GPU",
+ "colab": {
+ "gpuType": "T4",
+ "provenance": []
+ },
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.11.10"
+ },
+ "widgets": {
+ "application/vnd.jupyter.widget-state+json": {
+ "0124c91212644264aaf84fe52e26e1dd": {
+ "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_71f62c2eb9ad40e289c5bbcc0c95490d",
+ "placeholder": "",
+ "style": "IPY_MODEL_bc1b308fdc1b4e80a6d04a70e75de34e",
+ "value": "Filter: 100%"
+ }
+ },
+ "05f070c4b1294821b0874bf4ddc9d7d7": {
+ "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
+ }
+ },
+ "065511e68dfb4053b4f0a70ef7a91ee3": {
+ "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
+ }
+ },
+ "06df0c8f7b974e189272f1a91a5e28c5": {
+ "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": ""
+ }
+ },
+ "1925655871374689a1057b008f889052": {
+ "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_232f001ecfd4414aba63125571389434",
+ "max": 1,
+ "min": 0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_06df0c8f7b974e189272f1a91a5e28c5",
+ "value": 1
+ }
+ },
+ "1dc435da8c744a6282e8f7cfce8b4f2f": {
+ "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": ""
+ }
+ },
+ "2011e26c9fde4ada959624a30d935c6b": {
+ "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_55a34be2f9d14d00926062efafa2d7b0",
+ "IPY_MODEL_1925655871374689a1057b008f889052",
+ "IPY_MODEL_576e75f0473145168b5d166acb903643"
+ ],
+ "layout": "IPY_MODEL_532d04fe48164a00a8db36177c9ea152"
+ }
+ },
+ "22d010b51fd34ddf82627507aed81676": {
+ "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": ""
+ }
+ },
+ "232f001ecfd4414aba63125571389434": {
+ "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"
+ }
+ },
+ "259751f990bc4422b181c49619700334": {
+ "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_a1b0cd399a2d44e6a5f3431ac861d2d2",
+ "IPY_MODEL_b9be4ff6d92f4112aa8078e96b3838db",
+ "IPY_MODEL_96e4d29108ca47ea9beb7f7b1a78d79a"
+ ],
+ "layout": "IPY_MODEL_8b32e1b93368443f981ec8187016c7f2"
+ }
+ },
+ "3bf1e9a699f14d709b1f81ae98bf1215": {
+ "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_0124c91212644264aaf84fe52e26e1dd",
+ "IPY_MODEL_61bc579763f6454cb6a36dc80b9068a0",
+ "IPY_MODEL_f056e5f5aec54fe8b3cfc121e1c24430"
+ ],
+ "layout": "IPY_MODEL_e6563f7242f3412a940b8761621eeac7"
+ }
+ },
+ "4b524028a9564a61a935d10083922c4c": {
+ "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
+ }
+ },
+ "532d04fe48164a00a8db36177c9ea152": {
+ "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
+ }
+ },
+ "55a34be2f9d14d00926062efafa2d7b0": {
+ "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_ffbc13e493114403b6f88a67db932b15",
+ "placeholder": "",
+ "style": "IPY_MODEL_a5c93a83de084232a6964a113aecb930",
+ "value": "Generating train split: "
+ }
+ },
+ "576e75f0473145168b5d166acb903643": {
+ "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_4b524028a9564a61a935d10083922c4c",
+ "placeholder": "",
+ "style": "IPY_MODEL_1dc435da8c744a6282e8f7cfce8b4f2f",
+ "value": " 1128024/0 [00:02<00:00, 387057.12 examples/s]"
+ }
+ },
+ "61bc579763f6454cb6a36dc80b9068a0": {
+ "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_b0349099323b4b6280e3f253ab2aa033",
+ "max": 1128024,
+ "min": 0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_e486dae88741401a82d16c7aa84b57cf",
+ "value": 1128024
+ }
+ },
+ "654f5bb5e6e44858af000d593b701980": {
+ "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
+ }
+ },
+ "71f62c2eb9ad40e289c5bbcc0c95490d": {
+ "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
+ }
+ },
+ "7a87b54b7ed549bdb26958bf7f803af2": {
+ "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
+ }
+ },
+ "8b32e1b93368443f981ec8187016c7f2": {
+ "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
+ }
+ },
+ "95b6d03796e84153a5e2a6904d640659": {
+ "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": ""
+ }
+ },
+ "96e4d29108ca47ea9beb7f7b1a78d79a": {
+ "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_05f070c4b1294821b0874bf4ddc9d7d7",
+ "placeholder": "",
+ "style": "IPY_MODEL_95b6d03796e84153a5e2a6904d640659",
+ "value": " 2/107029 [00:17<228:26:51, 7.68s/it]"
+ }
+ },
+ "a1b0cd399a2d44e6a5f3431ac861d2d2": {
+ "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_065511e68dfb4053b4f0a70ef7a91ee3",
+ "placeholder": "",
+ "style": "IPY_MODEL_b2826da9f9314c1cb966b54a7b6120fe",
+ "value": "compression_ratio=0.85, critic_loss=5318.31, actor_loss=0.26, decompressor_loss=1.43: 0%"
+ }
+ },
+ "a5c93a83de084232a6964a113aecb930": {
+ "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": ""
+ }
+ },
+ "b0349099323b4b6280e3f253ab2aa033": {
+ "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
+ }
+ },
+ "b2826da9f9314c1cb966b54a7b6120fe": {
+ "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": ""
+ }
+ },
+ "b9be4ff6d92f4112aa8078e96b3838db": {
+ "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": "danger",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_7a87b54b7ed549bdb26958bf7f803af2",
+ "max": 107029,
+ "min": 0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_dad9de6f3118448eb665a9fcb544ff68",
+ "value": 2
+ }
+ },
+ "bc1b308fdc1b4e80a6d04a70e75de34e": {
+ "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": ""
+ }
+ },
+ "dad9de6f3118448eb665a9fcb544ff68": {
+ "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": ""
+ }
+ },
+ "e486dae88741401a82d16c7aa84b57cf": {
+ "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": ""
+ }
+ },
+ "e6563f7242f3412a940b8761621eeac7": {
+ "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
+ }
+ },
+ "f056e5f5aec54fe8b3cfc121e1c24430": {
+ "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_654f5bb5e6e44858af000d593b701980",
+ "placeholder": "",
+ "style": "IPY_MODEL_22d010b51fd34ddf82627507aed81676",
+ "value": " 1128024/1128024 [02:45<00:00, 6447.57 examples/s]"
+ }
+ },
+ "ffbc13e493114403b6f88a67db932b15": {
+ "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
+ }
+ }
+ }
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}