diff --git a/projekt/FLAN_T5_sms_spam.ipynb b/projekt/FLAN_T5_sms_spam.ipynb index 68423c7..c3b132a 100644 --- a/projekt/FLAN_T5_sms_spam.ipynb +++ b/projekt/FLAN_T5_sms_spam.ipynb @@ -13,10 +13,9 @@ "name": "python" }, "gpuClass": "standard", - "accelerator": "GPU", "widgets": { "application/vnd.jupyter.widget-state+json": { - "e4bb6f2f32de48d4b1f6d7ecf97ce376": { + "a8e120a9a97d45d59fcf275af25a591e": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", @@ -31,14 +30,14 @@ "_view_name": "HBoxView", "box_style": "", "children": [ - "IPY_MODEL_3305b30f1bfa48e9b0c1ba3add06094e", - "IPY_MODEL_a343619acbb745baa6aa561271ec8815", - "IPY_MODEL_c493fc54d9eb421f96d6e8519c8a1b0e" + "IPY_MODEL_e665879731604133a593e13155f4e03b", + "IPY_MODEL_d451aa9d81ca4d5ea901297e702762c0", + "IPY_MODEL_a9edac4d193f4930aa691fa496badc64" ], - "layout": "IPY_MODEL_12fd6daa8e604ecd9ad731b6296815da" + "layout": "IPY_MODEL_a21e8fec1d92496a835ae8ad71c287ab" } }, - "3305b30f1bfa48e9b0c1ba3add06094e": { + "e665879731604133a593e13155f4e03b": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -53,13 +52,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_805f497aa3304353a1be8b4cc87bfb54", + "layout": "IPY_MODEL_d168c852a75a43f5addcfbc75c48ec14", "placeholder": "​", - "style": "IPY_MODEL_594a6d13f81f479eb00fa45fd4094146", + "style": "IPY_MODEL_589f9c90c98b48bda9ecb020cb384eab", "value": "Downloading builder script: 100%" } }, - "a343619acbb745baa6aa561271ec8815": { + "d451aa9d81ca4d5ea901297e702762c0": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", @@ -75,15 +74,15 @@ "bar_style": "success", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_236979048eb8461f9b7d8c4103905eed", + "layout": "IPY_MODEL_e35fb285260b4b86aa9854eac11a6dfd", "max": 3208, "min": 0, "orientation": "horizontal", - "style": "IPY_MODEL_4620faf461ca449a88de45e86467e265", + "style": "IPY_MODEL_f505b8ea01ff4e2f90edf1d08c5096b1", "value": 3208 } }, - "c493fc54d9eb421f96d6e8519c8a1b0e": { + "a9edac4d193f4930aa691fa496badc64": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -98,13 +97,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_8dc2f0f2e66741edbccab7abaaf634ce", + "layout": "IPY_MODEL_0baf1fcb54e945679e3591276182aa9e", "placeholder": "​", - "style": "IPY_MODEL_0d49bfb55dfd4090ba57c544eaa97902", - "value": " 3.21k/3.21k [00:00<00:00, 139kB/s]" + "style": "IPY_MODEL_2d57d4b6086e47e1a7d6a9a1375cc49f", + "value": " 3.21k/3.21k [00:00<00:00, 82.3kB/s]" } }, - "12fd6daa8e604ecd9ad731b6296815da": { + "a21e8fec1d92496a835ae8ad71c287ab": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -156,7 +155,7 @@ "width": null } }, - "805f497aa3304353a1be8b4cc87bfb54": { + "d168c852a75a43f5addcfbc75c48ec14": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -208,7 +207,7 @@ "width": null } }, - "594a6d13f81f479eb00fa45fd4094146": { + "589f9c90c98b48bda9ecb020cb384eab": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -223,7 +222,7 @@ "description_width": "" } }, - "236979048eb8461f9b7d8c4103905eed": { + "e35fb285260b4b86aa9854eac11a6dfd": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -275,7 +274,7 @@ "width": null } }, - "4620faf461ca449a88de45e86467e265": { + "f505b8ea01ff4e2f90edf1d08c5096b1": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", @@ -291,7 +290,7 @@ "description_width": "" } }, - "8dc2f0f2e66741edbccab7abaaf634ce": { + "0baf1fcb54e945679e3591276182aa9e": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -343,7 +342,7 @@ "width": null } }, - "0d49bfb55dfd4090ba57c544eaa97902": { + "2d57d4b6086e47e1a7d6a9a1375cc49f": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -358,7 +357,7 @@ "description_width": "" } }, - "4084f218fca64fc9b765e04d0cc073ac": { + "564f30aef6c34efa952fdd1402627d13": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", @@ -373,14 +372,14 @@ "_view_name": "HBoxView", "box_style": "", "children": [ - "IPY_MODEL_fec67d95a5904ac199f6648a34ef1ff9", - "IPY_MODEL_a734d44f6baf4a5f8dfda576c09fffca", - "IPY_MODEL_3fc2d009da594365854aa11be804b388" + "IPY_MODEL_0ee3c4b36db247d09e7fb9e68e856abb", + "IPY_MODEL_03ee22d44e2141d99e54bbd59246b328", + "IPY_MODEL_19465851c65e445fbaed11e33ac09098" ], - "layout": "IPY_MODEL_45c7d35932ec44bcb2ccdc73f0ae6b46" + "layout": "IPY_MODEL_6a7e920546444da7bf855620f00c45e0" } }, - "fec67d95a5904ac199f6648a34ef1ff9": { + "0ee3c4b36db247d09e7fb9e68e856abb": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -395,13 +394,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_0c1c3db046f24599b27daa44217f48d2", + "layout": "IPY_MODEL_e8b69414b5004f489f5c6793b6cc0746", "placeholder": "​", - "style": "IPY_MODEL_c3f9ed611a154e22b875d0696ef6022d", + "style": "IPY_MODEL_474f0c044be14860b6a38321281d0d1f", "value": "Downloading metadata: 100%" } }, - "a734d44f6baf4a5f8dfda576c09fffca": { + "03ee22d44e2141d99e54bbd59246b328": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", @@ -417,15 +416,15 @@ "bar_style": "success", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_7fd51c34909b41a8884fa358cccdbf48", + "layout": "IPY_MODEL_f2861641cda34f2786112b28bac2b36f", "max": 1687, "min": 0, "orientation": "horizontal", - "style": "IPY_MODEL_9d9edc5471de40c2b7c2b9156637997d", + "style": "IPY_MODEL_f07c5cffb60c4a89bb29c49811d73aba", "value": 1687 } }, - "3fc2d009da594365854aa11be804b388": { + "19465851c65e445fbaed11e33ac09098": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -440,13 +439,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_02c64bf3ff95438cb43c7dc52034cc43", + "layout": "IPY_MODEL_e502595b7e6b45498d2018e62e6fa6f2", "placeholder": "​", - "style": "IPY_MODEL_f0b71ecb6b1c4d1190ca899af7d3e82c", - "value": " 1.69k/1.69k [00:00<00:00, 37.7kB/s]" + "style": "IPY_MODEL_80b9042089364fae8e0cffc7a49203c1", + "value": " 1.69k/1.69k [00:00<00:00, 43.9kB/s]" } }, - "45c7d35932ec44bcb2ccdc73f0ae6b46": { + "6a7e920546444da7bf855620f00c45e0": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -498,7 +497,7 @@ "width": null } }, - "0c1c3db046f24599b27daa44217f48d2": { + "e8b69414b5004f489f5c6793b6cc0746": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -550,7 +549,7 @@ "width": null } }, - "c3f9ed611a154e22b875d0696ef6022d": { + "474f0c044be14860b6a38321281d0d1f": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -565,7 +564,7 @@ "description_width": "" } }, - "7fd51c34909b41a8884fa358cccdbf48": { + "f2861641cda34f2786112b28bac2b36f": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -617,7 +616,7 @@ "width": null } }, - "9d9edc5471de40c2b7c2b9156637997d": { + "f07c5cffb60c4a89bb29c49811d73aba": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", @@ -633,7 +632,7 @@ "description_width": "" } }, - "02c64bf3ff95438cb43c7dc52034cc43": { + "e502595b7e6b45498d2018e62e6fa6f2": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -685,7 +684,7 @@ "width": null } }, - "f0b71ecb6b1c4d1190ca899af7d3e82c": { + "80b9042089364fae8e0cffc7a49203c1": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -700,7 +699,7 @@ "description_width": "" } }, - "8cae9c49e18f43248072b5e059429f6d": { + "ae89e755c6e64ab2a3101913d08820ef": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", @@ -715,14 +714,14 @@ "_view_name": "HBoxView", "box_style": "", "children": [ - "IPY_MODEL_88c8adca128b44c1bbbec437630c2074", - "IPY_MODEL_0f73f5e2c8af41eaae5f1c27f212da8b", - "IPY_MODEL_255b4480e11f4b3e892a5d2dc6abfd4b" + "IPY_MODEL_5181e91045d240308e1371af2a560d56", + "IPY_MODEL_3551b2e33fac44f38988c07fc5819b23", + "IPY_MODEL_9a418f8782a842898d730f8cbc4fe311" ], - "layout": "IPY_MODEL_a96eab6312f6447b9eff3f914c5a6827" + "layout": "IPY_MODEL_c9d1c36d765345e183d4cdf911ad07b3" } }, - "88c8adca128b44c1bbbec437630c2074": { + "5181e91045d240308e1371af2a560d56": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -737,13 +736,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_063059d53dc942d1aee9e3fe2f27687d", + "layout": "IPY_MODEL_75a75524abc04743a7533f9030769bb2", "placeholder": "​", - "style": "IPY_MODEL_ca50704df2cc430fae6b5902c5399414", + "style": "IPY_MODEL_84e9b5aef48c4d429742d0fde6fc125e", "value": "Downloading readme: 100%" } }, - "0f73f5e2c8af41eaae5f1c27f212da8b": { + "3551b2e33fac44f38988c07fc5819b23": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", @@ -759,15 +758,15 @@ "bar_style": "success", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_64f5cdd8d1c14be79278ee4de89993d1", + "layout": "IPY_MODEL_24492355887d405b98f8f42c4be836b6", "max": 4872, "min": 0, "orientation": "horizontal", - "style": "IPY_MODEL_f065dcd7d1d34cb6806f2eb28bb3cd6f", + "style": "IPY_MODEL_5c7cbcd333f145488ab9411512467c19", "value": 4872 } }, - "255b4480e11f4b3e892a5d2dc6abfd4b": { + "9a418f8782a842898d730f8cbc4fe311": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -782,13 +781,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_67663505c87640b58e04d3ce028537ea", + "layout": "IPY_MODEL_6cc08744eb594bbc913da9fc2a15c939", "placeholder": "​", - "style": "IPY_MODEL_f5a17bc6f9f94b2ca119528b0ca2d456", - "value": " 4.87k/4.87k [00:00<00:00, 116kB/s]" + "style": "IPY_MODEL_17c7c64eafb14d168bd386cae79902aa", + "value": " 4.87k/4.87k [00:00<00:00, 82.7kB/s]" } }, - "a96eab6312f6447b9eff3f914c5a6827": { + "c9d1c36d765345e183d4cdf911ad07b3": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -840,7 +839,7 @@ "width": null } }, - "063059d53dc942d1aee9e3fe2f27687d": { + "75a75524abc04743a7533f9030769bb2": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -892,7 +891,7 @@ "width": null } }, - "ca50704df2cc430fae6b5902c5399414": { + "84e9b5aef48c4d429742d0fde6fc125e": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -907,7 +906,7 @@ "description_width": "" } }, - "64f5cdd8d1c14be79278ee4de89993d1": { + "24492355887d405b98f8f42c4be836b6": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -959,7 +958,7 @@ "width": null } }, - "f065dcd7d1d34cb6806f2eb28bb3cd6f": { + "5c7cbcd333f145488ab9411512467c19": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", @@ -975,7 +974,7 @@ "description_width": "" } }, - "67663505c87640b58e04d3ce028537ea": { + "6cc08744eb594bbc913da9fc2a15c939": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -1027,7 +1026,7 @@ "width": null } }, - "f5a17bc6f9f94b2ca119528b0ca2d456": { + "17c7c64eafb14d168bd386cae79902aa": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -1042,7 +1041,7 @@ "description_width": "" } }, - "ec0f16c3cbb14d9287e148887127219b": { + "db79fbdb9e25432a8f95221cc0bed971": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", @@ -1057,14 +1056,14 @@ "_view_name": "HBoxView", "box_style": "", "children": [ - "IPY_MODEL_ba832204e1d4413f8b8a15e10bac7d95", - "IPY_MODEL_8179dbec98b7466ea2195affb0568498", - "IPY_MODEL_7e9abda7b55c459b8a9888edaf1cc116" + "IPY_MODEL_3c14418eb66d4392bcaa64ca3394084c", + "IPY_MODEL_3144d6d798df44afacc4f34bed90f0e4", + "IPY_MODEL_9259558984d847ae99435ef4e312e3b7" ], - "layout": "IPY_MODEL_64c8860ae16848af9b04bb41955a8446" + "layout": "IPY_MODEL_1b05d118f33949dfa5daf732520f9c62" } }, - "ba832204e1d4413f8b8a15e10bac7d95": { + "3c14418eb66d4392bcaa64ca3394084c": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -1079,13 +1078,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_64fe250082bf4d4fb126a319920d2f0a", + "layout": "IPY_MODEL_dc652b3692ed4da6b3fd959acb773b66", "placeholder": "​", - "style": "IPY_MODEL_0b278b6f5da94921afbacb873c15d9c9", + "style": "IPY_MODEL_ce7027fdd804415db2c60560be3c66e9", "value": "Downloading data: 100%" } }, - "8179dbec98b7466ea2195affb0568498": { + "3144d6d798df44afacc4f34bed90f0e4": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", @@ -1101,15 +1100,15 @@ "bar_style": "success", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_b688bc7f34e941488831da5d4aed9396", + "layout": "IPY_MODEL_3ab3add96759441eba1571795b0edaae", "max": 203415, "min": 0, "orientation": "horizontal", - "style": "IPY_MODEL_44cec66cbaeb49abb26dbfc5420ceacb", + "style": "IPY_MODEL_d88268e0bb52404e86a37b01fdac5957", "value": 203415 } }, - "7e9abda7b55c459b8a9888edaf1cc116": { + "9259558984d847ae99435ef4e312e3b7": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -1124,13 +1123,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_67a750dcfa8b44499956572fda3dbacf", + "layout": "IPY_MODEL_dae3457866114776818227ec44284ced", "placeholder": "​", - "style": "IPY_MODEL_edad6f2eb6704468bd06006c50697f86", - "value": " 203k/203k [00:00<00:00, 171kB/s]" + "style": "IPY_MODEL_2aab0424351e4b9594cdcf631632c690", + "value": " 203k/203k [00:00<00:00, 400kB/s]" } }, - "64c8860ae16848af9b04bb41955a8446": { + "1b05d118f33949dfa5daf732520f9c62": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -1182,7 +1181,7 @@ "width": null } }, - "64fe250082bf4d4fb126a319920d2f0a": { + "dc652b3692ed4da6b3fd959acb773b66": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -1234,7 +1233,7 @@ "width": null } }, - "0b278b6f5da94921afbacb873c15d9c9": { + "ce7027fdd804415db2c60560be3c66e9": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -1249,7 +1248,7 @@ "description_width": "" } }, - "b688bc7f34e941488831da5d4aed9396": { + "3ab3add96759441eba1571795b0edaae": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -1301,7 +1300,7 @@ "width": null } }, - "44cec66cbaeb49abb26dbfc5420ceacb": { + "d88268e0bb52404e86a37b01fdac5957": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", @@ -1317,7 +1316,7 @@ "description_width": "" } }, - "67a750dcfa8b44499956572fda3dbacf": { + "dae3457866114776818227ec44284ced": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -1369,7 +1368,7 @@ "width": null } }, - "edad6f2eb6704468bd06006c50697f86": { + "2aab0424351e4b9594cdcf631632c690": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -1384,7 +1383,7 @@ "description_width": "" } }, - "699a1bdf38ca48e2affc3c6bd771852f": { + "6fd330314de74ccc983da44783bcac7d": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", @@ -1399,14 +1398,14 @@ "_view_name": "HBoxView", "box_style": "", "children": [ - "IPY_MODEL_4e5a92d4acdc43d487290ffd8a842ea5", - "IPY_MODEL_8bc8c44b6324478a8209094f9b7e9ccd", - "IPY_MODEL_e95f31e693674a0aae8de0e167a49daf" + "IPY_MODEL_209778054761411190cf91741a43b2d3", + "IPY_MODEL_5d45d48713924a8d805368867c7bb5e0", + "IPY_MODEL_fa0715f8876c401ba6a2681d0abf7e5a" ], - "layout": "IPY_MODEL_069a68aed2bb4d37a00c9c0feedd3e17" + "layout": "IPY_MODEL_b6afff9e8ee44d42814dc84670ed999f" } }, - "4e5a92d4acdc43d487290ffd8a842ea5": { + "209778054761411190cf91741a43b2d3": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -1421,13 +1420,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_9930f171a6db47939e996016cb49fe20", + "layout": "IPY_MODEL_7b636bb9a4724d2783148aa8d6aa791e", "placeholder": "​", - "style": "IPY_MODEL_ddd0c0abba074aa7a33b5c825ccf8760", - "value": "Generating train split: 100%" + "style": "IPY_MODEL_dd488415b19349d8a5306153907ba902", + "value": "Generating train split: 89%" } }, - "8bc8c44b6324478a8209094f9b7e9ccd": { + "5d45d48713924a8d805368867c7bb5e0": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", @@ -1443,15 +1442,15 @@ "bar_style": "", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_8bbb7307312648b0afb901f701a4e466", + "layout": "IPY_MODEL_174930418d51405f969eaa6b5aa67dde", "max": 5574, "min": 0, "orientation": "horizontal", - "style": "IPY_MODEL_4a2eb48d3583446598fdd1b7175c96fd", + "style": "IPY_MODEL_75f8a0de12974b84a4b8bde1a16c33c4", "value": 5574 } }, - "e95f31e693674a0aae8de0e167a49daf": { + "fa0715f8876c401ba6a2681d0abf7e5a": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -1466,13 +1465,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_b3eae90c5aea409ab1a2c541948658f8", + "layout": "IPY_MODEL_101281b2ecf441a39abc9d4e49398e43", "placeholder": "​", - "style": "IPY_MODEL_41b5186c2e194402a1e18f1c1a9f18a4", - "value": " 5574/5574 [00:12<00:00, 7617.98 examples/s]" + "style": "IPY_MODEL_20ad8bc6a1c94be090190ea3de64a10f", + "value": " 4957/5574 [00:00<00:00, 8825.97 examples/s]" } }, - "069a68aed2bb4d37a00c9c0feedd3e17": { + "b6afff9e8ee44d42814dc84670ed999f": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -1524,7 +1523,7 @@ "width": null } }, - "9930f171a6db47939e996016cb49fe20": { + "7b636bb9a4724d2783148aa8d6aa791e": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -1576,7 +1575,7 @@ "width": null } }, - "ddd0c0abba074aa7a33b5c825ccf8760": { + "dd488415b19349d8a5306153907ba902": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -1591,7 +1590,7 @@ "description_width": "" } }, - "8bbb7307312648b0afb901f701a4e466": { + "174930418d51405f969eaa6b5aa67dde": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -1643,7 +1642,7 @@ "width": null } }, - "4a2eb48d3583446598fdd1b7175c96fd": { + "75f8a0de12974b84a4b8bde1a16c33c4": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", @@ -1659,7 +1658,7 @@ "description_width": "" } }, - "b3eae90c5aea409ab1a2c541948658f8": { + "101281b2ecf441a39abc9d4e49398e43": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -1711,7 +1710,7 @@ "width": null } }, - "41b5186c2e194402a1e18f1c1a9f18a4": { + "20ad8bc6a1c94be090190ea3de64a10f": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -1726,7 +1725,7 @@ "description_width": "" } }, - "3c84850ebe3e45d297d3bfa8a12f1b86": { + "99cbe58514e3460398f032b93a57d068": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", @@ -1741,14 +1740,14 @@ "_view_name": "HBoxView", "box_style": "", "children": [ - "IPY_MODEL_8a5f71a073ca4b0cb929ba3cf31fd296", - "IPY_MODEL_b5be73849b61415fb9187d011261be1e", - "IPY_MODEL_46a51fbd984344b1958889c608ea04ed" + "IPY_MODEL_797dcecef4874b9f8de64e643661c637", + "IPY_MODEL_9d97e656e72d4f99a2b4669e811918cd", + "IPY_MODEL_df4a5058866c4ec8875cfb5189c738c5" ], - "layout": "IPY_MODEL_0d25092adebd4f94b1799df263ccaf55" + "layout": "IPY_MODEL_fcd408ec35cd44f1b7309931256adfaa" } }, - "8a5f71a073ca4b0cb929ba3cf31fd296": { + "797dcecef4874b9f8de64e643661c637": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -1763,13 +1762,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_e4814d2ee2df4f6a9f411b134ebca546", + "layout": "IPY_MODEL_2ab3431929a540609d0edac159d63d41", "placeholder": "​", - "style": "IPY_MODEL_09669f6ac72b45689e082b4fb489a23f", + "style": "IPY_MODEL_fa0e9bb620c04cca998be8929f50c4d8", "value": "100%" } }, - "b5be73849b61415fb9187d011261be1e": { + "9d97e656e72d4f99a2b4669e811918cd": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", @@ -1785,15 +1784,15 @@ "bar_style": "success", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_7afda94f85794acf882856b760a3eb63", + "layout": "IPY_MODEL_4d131181a5fa4f0880946ef5cd984790", "max": 1, "min": 0, "orientation": "horizontal", - "style": "IPY_MODEL_a70df5e47adb4a4d8b80a543dedfd708", + "style": "IPY_MODEL_2f3024af40c346a188793eeddff5848b", "value": 1 } }, - "46a51fbd984344b1958889c608ea04ed": { + "df4a5058866c4ec8875cfb5189c738c5": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -1808,13 +1807,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_140058b69379422797bdc22374192bd6", + "layout": "IPY_MODEL_914ceee224b244b9ac0492305fb1fb24", "placeholder": "​", - "style": "IPY_MODEL_8aabd23e2fa242e4b8cf4ef43fbebe2e", - "value": " 1/1 [00:00<00:00, 13.35it/s]" + "style": "IPY_MODEL_5e394d73c2df4d34b39989cd1b24dc57", + "value": " 1/1 [00:00<00:00, 24.99it/s]" } }, - "0d25092adebd4f94b1799df263ccaf55": { + "fcd408ec35cd44f1b7309931256adfaa": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -1866,7 +1865,7 @@ "width": null } }, - "e4814d2ee2df4f6a9f411b134ebca546": { + "2ab3431929a540609d0edac159d63d41": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -1918,7 +1917,7 @@ "width": null } }, - "09669f6ac72b45689e082b4fb489a23f": { + "fa0e9bb620c04cca998be8929f50c4d8": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -1933,7 +1932,7 @@ "description_width": "" } }, - "7afda94f85794acf882856b760a3eb63": { + "4d131181a5fa4f0880946ef5cd984790": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -1985,7 +1984,7 @@ "width": null } }, - "a70df5e47adb4a4d8b80a543dedfd708": { + "2f3024af40c346a188793eeddff5848b": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", @@ -2001,7 +2000,7 @@ "description_width": "" } }, - "140058b69379422797bdc22374192bd6": { + "914ceee224b244b9ac0492305fb1fb24": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -2053,7 +2052,7 @@ "width": null } }, - "8aabd23e2fa242e4b8cf4ef43fbebe2e": { + "5e394d73c2df4d34b39989cd1b24dc57": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -2068,7 +2067,7 @@ "description_width": "" } }, - "040698c1b4be4adebfe751751a64c11d": { + "6fb269ceeada49c19adf46819664fa98": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", @@ -2083,14 +2082,14 @@ "_view_name": "HBoxView", "box_style": "", "children": [ - "IPY_MODEL_11b4ddede4494fe093329c50097b7df5", - "IPY_MODEL_7986c625c9c34d039fad240333d0da08", - "IPY_MODEL_b35a6f8e81184f81990a0111cc5c6ca8" + "IPY_MODEL_341f67fcddff4a91813fb1331fd63c3e", + "IPY_MODEL_33c7a0d0629342288601999a3b11d71c", + "IPY_MODEL_87d7f2540c724ba88b6f972049043702" ], - "layout": "IPY_MODEL_2968992398a94adeb626eec2f45a8699" + "layout": "IPY_MODEL_36111c073ea34489886c767532713233" } }, - "11b4ddede4494fe093329c50097b7df5": { + "341f67fcddff4a91813fb1331fd63c3e": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -2105,13 +2104,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_c9f8f67483fb45c8a6b59fceae40fe42", + "layout": "IPY_MODEL_c05a5532720d47e39e6cb710617aab67", "placeholder": "​", - "style": "IPY_MODEL_c5a862e7d71c430c865fa87dc21b1f6d", + "style": "IPY_MODEL_458619b05af848fe8f40fac408e4c521", "value": "Downloading (…)okenizer_config.json: 100%" } }, - "7986c625c9c34d039fad240333d0da08": { + "33c7a0d0629342288601999a3b11d71c": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", @@ -2127,15 +2126,15 @@ "bar_style": "success", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_d69171bdd6544c8ab9e96f3f3dfe7f92", + "layout": "IPY_MODEL_3cf20c5c605b46e1bc4890769cdeffe3", "max": 2537, "min": 0, "orientation": "horizontal", - "style": "IPY_MODEL_9cca59c67c5f452eb1d9e8dd22296968", + "style": "IPY_MODEL_15c19b89e55243cc88e77c56895d56b4", "value": 2537 } }, - "b35a6f8e81184f81990a0111cc5c6ca8": { + "87d7f2540c724ba88b6f972049043702": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -2150,13 +2149,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_0f18ab0690ce4bc3b9b7c2f4d10c2049", + "layout": "IPY_MODEL_b4dd2e86dd6a4d579f315293d4b0ba21", "placeholder": "​", - "style": "IPY_MODEL_af26b98c1e3440daa11e104ed1c8b7e4", - "value": " 2.54k/2.54k [00:00<00:00, 97.2kB/s]" + "style": "IPY_MODEL_60577d05c1ad4acea832bd4e34efa6f4", + "value": " 2.54k/2.54k [00:00<00:00, 102kB/s]" } }, - "2968992398a94adeb626eec2f45a8699": { + "36111c073ea34489886c767532713233": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -2208,7 +2207,7 @@ "width": null } }, - "c9f8f67483fb45c8a6b59fceae40fe42": { + "c05a5532720d47e39e6cb710617aab67": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -2260,7 +2259,7 @@ "width": null } }, - "c5a862e7d71c430c865fa87dc21b1f6d": { + "458619b05af848fe8f40fac408e4c521": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -2275,7 +2274,7 @@ "description_width": "" } }, - "d69171bdd6544c8ab9e96f3f3dfe7f92": { + "3cf20c5c605b46e1bc4890769cdeffe3": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -2327,7 +2326,7 @@ "width": null } }, - "9cca59c67c5f452eb1d9e8dd22296968": { + "15c19b89e55243cc88e77c56895d56b4": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", @@ -2343,7 +2342,7 @@ "description_width": "" } }, - "0f18ab0690ce4bc3b9b7c2f4d10c2049": { + "b4dd2e86dd6a4d579f315293d4b0ba21": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -2395,7 +2394,7 @@ "width": null } }, - "af26b98c1e3440daa11e104ed1c8b7e4": { + "60577d05c1ad4acea832bd4e34efa6f4": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -2410,7 +2409,7 @@ "description_width": "" } }, - "be9060616d68475ea2e4674f7e460566": { + "4f67d0fe28914c1bb3d1057225c409cd": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", @@ -2425,14 +2424,14 @@ "_view_name": "HBoxView", "box_style": "", "children": [ - "IPY_MODEL_264afd978de54dbeaa1b711e4c0b1c07", - "IPY_MODEL_bbcefda6eea74b8ea8313e4f7167df65", - "IPY_MODEL_68d85f6957ea4807a1fe7c82c9a7bc06" + "IPY_MODEL_f384fc9cd7f2428fad3b6d10ffac7efd", + "IPY_MODEL_36838c7736594b1b83f3046c8f0cc265", + "IPY_MODEL_b98e34b842054f99ae1ac5f96104321f" ], - "layout": "IPY_MODEL_cdfaf060f34a4d23afe97243d5f4c709" + "layout": "IPY_MODEL_a4ce8092283747e89e730a7e39e64834" } }, - "264afd978de54dbeaa1b711e4c0b1c07": { + "f384fc9cd7f2428fad3b6d10ffac7efd": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -2447,13 +2446,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_9411023294ab44b284894aebf3f8f589", + "layout": "IPY_MODEL_0aa55ed422a94e94b01c117598842a10", "placeholder": "​", - "style": "IPY_MODEL_d8bf78a3d7ea47a9824d6e01e70b0237", + "style": "IPY_MODEL_d54619fbb71e441eb90d9c42145ba07b", "value": "Downloading (…)"spiece.model";: 100%" } }, - "bbcefda6eea74b8ea8313e4f7167df65": { + "36838c7736594b1b83f3046c8f0cc265": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", @@ -2469,15 +2468,15 @@ "bar_style": "success", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_b95ece9507db467fad710338bdf29177", + "layout": "IPY_MODEL_da3487b705264da9a8f92254e568b76e", "max": 791656, "min": 0, "orientation": "horizontal", - "style": "IPY_MODEL_34a31746a99c4916b1402a2829e71a98", + "style": "IPY_MODEL_9f378f21d7804f49ad9f72ccabb4a10b", "value": 791656 } }, - "68d85f6957ea4807a1fe7c82c9a7bc06": { + "b98e34b842054f99ae1ac5f96104321f": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -2492,13 +2491,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_29b2a7a233a9484c92056034cc70b8ca", + "layout": "IPY_MODEL_ebb15c7aaf1d4b59a2186e2abbea2868", "placeholder": "​", - "style": "IPY_MODEL_c9a72e2599e94e9e9bc2b4912d25877b", - "value": " 792k/792k [00:00<00:00, 19.7MB/s]" + "style": "IPY_MODEL_6510cda1ab33418882a1e6811f826ed4", + "value": " 792k/792k [00:00<00:00, 9.67MB/s]" } }, - "cdfaf060f34a4d23afe97243d5f4c709": { + "a4ce8092283747e89e730a7e39e64834": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -2550,7 +2549,7 @@ "width": null } }, - "9411023294ab44b284894aebf3f8f589": { + "0aa55ed422a94e94b01c117598842a10": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -2602,7 +2601,7 @@ "width": null } }, - "d8bf78a3d7ea47a9824d6e01e70b0237": { + "d54619fbb71e441eb90d9c42145ba07b": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -2617,7 +2616,7 @@ "description_width": "" } }, - "b95ece9507db467fad710338bdf29177": { + "da3487b705264da9a8f92254e568b76e": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -2669,7 +2668,7 @@ "width": null } }, - "34a31746a99c4916b1402a2829e71a98": { + "9f378f21d7804f49ad9f72ccabb4a10b": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", @@ -2685,7 +2684,7 @@ "description_width": "" } }, - "29b2a7a233a9484c92056034cc70b8ca": { + "ebb15c7aaf1d4b59a2186e2abbea2868": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -2737,7 +2736,7 @@ "width": null } }, - "c9a72e2599e94e9e9bc2b4912d25877b": { + "6510cda1ab33418882a1e6811f826ed4": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -2752,7 +2751,7 @@ "description_width": "" } }, - "2c24af439f3e45db8a0e004686e912ed": { + "0b3c6eb43a5c4644adbc17ee2b06b079": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", @@ -2767,14 +2766,14 @@ "_view_name": "HBoxView", "box_style": "", "children": [ - "IPY_MODEL_dcb13b35232145fd85be1b6e4442cc5a", - "IPY_MODEL_58037f9984bb414a9c6e56337d86215c", - "IPY_MODEL_6e9379baaf2049658790e176ca279531" + "IPY_MODEL_fcb7ce49c0c14dc4a5dbbd9870334921", + "IPY_MODEL_2f58b16a741f4f1d822c71c17a1c5606", + "IPY_MODEL_35cbd0d168714ecc9f0c9236b3707d0a" ], - "layout": "IPY_MODEL_772e39d516cf43fdbb1b3db001d53d77" + "layout": "IPY_MODEL_b9393265011640c493b2bd4de43a4aef" } }, - "dcb13b35232145fd85be1b6e4442cc5a": { + "fcb7ce49c0c14dc4a5dbbd9870334921": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -2789,13 +2788,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_c08c1e0783324c53b7fc02912fa14af9", + "layout": "IPY_MODEL_eaeeca2372be4fe3868d2d3f42839bc2", "placeholder": "​", - "style": "IPY_MODEL_9bcdda510c0147178f651b66450b48ac", + "style": "IPY_MODEL_079b78ca1493431880754da6fc4ac127", "value": "Downloading (…)/main/tokenizer.json: 100%" } }, - "58037f9984bb414a9c6e56337d86215c": { + "2f58b16a741f4f1d822c71c17a1c5606": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", @@ -2811,15 +2810,15 @@ "bar_style": "success", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_18ab5e8088e04cdca93df7519156a59f", + "layout": "IPY_MODEL_6c7e4ab3930c4570a05a4e3d9db6782d", "max": 2424064, "min": 0, "orientation": "horizontal", - "style": "IPY_MODEL_f502a26154d840b89b5c61a2aae4f827", + "style": "IPY_MODEL_2ae3b00d50f04990b8c1839dfa705dc8", "value": 2424064 } }, - "6e9379baaf2049658790e176ca279531": { + "35cbd0d168714ecc9f0c9236b3707d0a": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -2834,13 +2833,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_7beb993a979443dcb93d26ec6e6718c3", + "layout": "IPY_MODEL_cfcae44ed5734d7086ecb5028281cf9a", "placeholder": "​", - "style": "IPY_MODEL_62e60fc862054e4d8d0d18cb1957cf6d", - "value": " 2.42M/2.42M [00:01<00:00, 1.56MB/s]" + "style": "IPY_MODEL_281ca6dc827f41d3833ba1c60606529d", + "value": " 2.42M/2.42M [00:00<00:00, 3.93MB/s]" } }, - "772e39d516cf43fdbb1b3db001d53d77": { + "b9393265011640c493b2bd4de43a4aef": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -2892,7 +2891,7 @@ "width": null } }, - "c08c1e0783324c53b7fc02912fa14af9": { + "eaeeca2372be4fe3868d2d3f42839bc2": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -2944,7 +2943,7 @@ "width": null } }, - "9bcdda510c0147178f651b66450b48ac": { + "079b78ca1493431880754da6fc4ac127": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -2959,7 +2958,7 @@ "description_width": "" } }, - "18ab5e8088e04cdca93df7519156a59f": { + "6c7e4ab3930c4570a05a4e3d9db6782d": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -3011,7 +3010,7 @@ "width": null } }, - "f502a26154d840b89b5c61a2aae4f827": { + "2ae3b00d50f04990b8c1839dfa705dc8": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", @@ -3027,7 +3026,7 @@ "description_width": "" } }, - "7beb993a979443dcb93d26ec6e6718c3": { + "cfcae44ed5734d7086ecb5028281cf9a": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -3079,7 +3078,7 @@ "width": null } }, - "62e60fc862054e4d8d0d18cb1957cf6d": { + "281ca6dc827f41d3833ba1c60606529d": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -3094,7 +3093,7 @@ "description_width": "" } }, - "bd697213d4fa4c1d9119657c537e78fe": { + "bce6a704b2924287b8b9279d791b633b": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", @@ -3109,14 +3108,14 @@ "_view_name": "HBoxView", "box_style": "", "children": [ - "IPY_MODEL_67f9f97815354675bf3bd435f2ed0436", - "IPY_MODEL_27bd6c78e7f74ff385509e9856c2b8d0", - "IPY_MODEL_34f670acaa3542eebc8c19018e900ce3" + "IPY_MODEL_b1dae5dc568446b0ba896b3abe3afb49", + "IPY_MODEL_29ff3a3e656a489182943da91cd73813", + "IPY_MODEL_585cf66f9f3648e0b950ca04eb17cc63" ], - "layout": "IPY_MODEL_ec2d082874844b6daf8542824bfde1a0" + "layout": "IPY_MODEL_71e629333d5d4009bc8072b9f12c0cee" } }, - "67f9f97815354675bf3bd435f2ed0436": { + "b1dae5dc568446b0ba896b3abe3afb49": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -3131,13 +3130,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_b9df5fc8959447449d873bd17e6696f7", + "layout": "IPY_MODEL_d5438b0c54104ddd99ed097fa65bc21c", "placeholder": "​", - "style": "IPY_MODEL_f8489ecaa1a844369bcb427c5f4c95e6", + "style": "IPY_MODEL_224c2c07bdc5444aaddf46ca6325e681", "value": "Downloading (…)cial_tokens_map.json: 100%" } }, - "27bd6c78e7f74ff385509e9856c2b8d0": { + "29ff3a3e656a489182943da91cd73813": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", @@ -3153,15 +3152,15 @@ "bar_style": "success", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_b21e65a9dff040f4a045580d9989ac20", + "layout": "IPY_MODEL_197d80f118764b65b29ad5049edd0087", "max": 2201, "min": 0, "orientation": "horizontal", - "style": "IPY_MODEL_0efa19170c9e4de891e328365543c916", + "style": "IPY_MODEL_e0326b59a1334117bbe6ccb06c1f4020", "value": 2201 } }, - "34f670acaa3542eebc8c19018e900ce3": { + "585cf66f9f3648e0b950ca04eb17cc63": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -3176,13 +3175,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_8c6fa802ddd5491581c092e5422bfeab", + "layout": "IPY_MODEL_6fd86b989a354a2696c8b9e880109a95", "placeholder": "​", - "style": "IPY_MODEL_42cfc2ada7ac408fab39251add66f6ef", - "value": " 2.20k/2.20k [00:00<00:00, 67.2kB/s]" + "style": "IPY_MODEL_2caff09a31ad46f59e717e25462b12d6", + "value": " 2.20k/2.20k [00:00<00:00, 125kB/s]" } }, - "ec2d082874844b6daf8542824bfde1a0": { + "71e629333d5d4009bc8072b9f12c0cee": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -3234,7 +3233,7 @@ "width": null } }, - "b9df5fc8959447449d873bd17e6696f7": { + "d5438b0c54104ddd99ed097fa65bc21c": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -3286,7 +3285,7 @@ "width": null } }, - "f8489ecaa1a844369bcb427c5f4c95e6": { + "224c2c07bdc5444aaddf46ca6325e681": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -3301,7 +3300,7 @@ "description_width": "" } }, - "b21e65a9dff040f4a045580d9989ac20": { + "197d80f118764b65b29ad5049edd0087": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -3353,7 +3352,7 @@ "width": null } }, - "0efa19170c9e4de891e328365543c916": { + "e0326b59a1334117bbe6ccb06c1f4020": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", @@ -3369,7 +3368,7 @@ "description_width": "" } }, - "8c6fa802ddd5491581c092e5422bfeab": { + "6fd86b989a354a2696c8b9e880109a95": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -3421,7 +3420,7 @@ "width": null } }, - "42cfc2ada7ac408fab39251add66f6ef": { + "2caff09a31ad46f59e717e25462b12d6": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -3436,7 +3435,7 @@ "description_width": "" } }, - "3747d0aa68d642449ff32b7efd47d497": { + "8e60f2b1a9f7455db02eb846af52df63": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", @@ -3451,14 +3450,14 @@ "_view_name": "HBoxView", "box_style": "", "children": [ - "IPY_MODEL_2a84ccf3660a4e24b37bfc1d952f06d9", - "IPY_MODEL_43b98452768846eb9b773839a4681cc6", - "IPY_MODEL_2dfbcef644a84b558ce99b2ddaf091b6" + "IPY_MODEL_71ff180cc81a4376b6a27455ed5cba26", + "IPY_MODEL_4dc7c026d3e5469da3ada03bf77d7019", + "IPY_MODEL_279308acf5be418ab7f25c3501739c9d" ], - "layout": "IPY_MODEL_9dd02373a1994433a49e0015b76dd858" + "layout": "IPY_MODEL_5c4c0f7bfb6c4a518cdfd3f1d70e77d5" } }, - "2a84ccf3660a4e24b37bfc1d952f06d9": { + "71ff180cc81a4376b6a27455ed5cba26": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -3473,13 +3472,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_42a620dfccb4416c95fbd7a76637dc73", + "layout": "IPY_MODEL_7182f8c40174456db2d6f974e1a672a9", "placeholder": "​", - "style": "IPY_MODEL_9d953b41e24c4263b18e1ff2174eb797", + "style": "IPY_MODEL_f34bf1f4156b4dec8990f16cbceccb00", "value": "Downloading (…)lve/main/config.json: 100%" } }, - "43b98452768846eb9b773839a4681cc6": { + "4dc7c026d3e5469da3ada03bf77d7019": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", @@ -3495,15 +3494,15 @@ "bar_style": "success", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_cb409960af114fa690bac72c1d51d2ab", + "layout": "IPY_MODEL_bcf3f636355347338e1d57c191e2349f", "max": 1404, "min": 0, "orientation": "horizontal", - "style": "IPY_MODEL_995a94c35b4c441b86598d1976281711", + "style": "IPY_MODEL_e36598bd61874b4eb737d248df7c1212", "value": 1404 } }, - "2dfbcef644a84b558ce99b2ddaf091b6": { + "279308acf5be418ab7f25c3501739c9d": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -3518,13 +3517,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_4ea2ccb5fa264dd5a042f570c22db7de", + "layout": "IPY_MODEL_f9c113d3c4f64aee969c897451b4522e", "placeholder": "​", - "style": "IPY_MODEL_4d5668e5b66d4993b935b077a1dc281c", - "value": " 1.40k/1.40k [00:00<00:00, 54.0kB/s]" + "style": "IPY_MODEL_fc647c0c0bd14b87b59d539db3793d0a", + "value": " 1.40k/1.40k [00:00<00:00, 24.5kB/s]" } }, - "9dd02373a1994433a49e0015b76dd858": { + "5c4c0f7bfb6c4a518cdfd3f1d70e77d5": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -3576,7 +3575,7 @@ "width": null } }, - "42a620dfccb4416c95fbd7a76637dc73": { + "7182f8c40174456db2d6f974e1a672a9": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -3628,7 +3627,7 @@ "width": null } }, - "9d953b41e24c4263b18e1ff2174eb797": { + "f34bf1f4156b4dec8990f16cbceccb00": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -3643,7 +3642,7 @@ "description_width": "" } }, - "cb409960af114fa690bac72c1d51d2ab": { + "bcf3f636355347338e1d57c191e2349f": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -3695,7 +3694,7 @@ "width": null } }, - "995a94c35b4c441b86598d1976281711": { + "e36598bd61874b4eb737d248df7c1212": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", @@ -3711,7 +3710,7 @@ "description_width": "" } }, - "4ea2ccb5fa264dd5a042f570c22db7de": { + "f9c113d3c4f64aee969c897451b4522e": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -3763,7 +3762,7 @@ "width": null } }, - "4d5668e5b66d4993b935b077a1dc281c": { + "fc647c0c0bd14b87b59d539db3793d0a": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -3778,7 +3777,7 @@ "description_width": "" } }, - "cf36c750119449e8a16aa97a9b66a124": { + "3fcb6b4a0c454d59a6d5503cec84ba37": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", @@ -3793,14 +3792,14 @@ "_view_name": "HBoxView", "box_style": "", "children": [ - "IPY_MODEL_0de691bf20804830ba5e6710c205c9ac", - "IPY_MODEL_7ee532c002784554b12fede964c6c05a", - "IPY_MODEL_25e5c76c84a8414495b61663250825aa" + "IPY_MODEL_17d4993dc58949ca87a852e7e6c02e0c", + "IPY_MODEL_db24a85aa3e24a2c9275b9aa4ac78faa", + "IPY_MODEL_48a5bb74641a4a2fba370c0ddad1f6cb" ], - "layout": "IPY_MODEL_12bd0cd379754967bfd5481d5836b7a4" + "layout": "IPY_MODEL_1b0971b224444e2c8ddbf817f2f02131" } }, - "0de691bf20804830ba5e6710c205c9ac": { + "17d4993dc58949ca87a852e7e6c02e0c": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -3815,13 +3814,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_d55d326ffbdc420da0a399c141f7fb56", + "layout": "IPY_MODEL_07c9e3207eb04c5fb004744c3e4eb3b2", "placeholder": "​", - "style": "IPY_MODEL_092323b59b734eada8d88197d9f0eb72", + "style": "IPY_MODEL_957e7a116bad4dee93ab449d7766d8ba", "value": "Downloading (…)"pytorch_model.bin";: 100%" } }, - "7ee532c002784554b12fede964c6c05a": { + "db24a85aa3e24a2c9275b9aa4ac78faa": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", @@ -3837,15 +3836,15 @@ "bar_style": "success", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_622df288b2ae4f62b776cb101de18b9f", + "layout": "IPY_MODEL_1a2ed54b1c584fa3bd2e0517a878790f", "max": 990402637, "min": 0, "orientation": "horizontal", - "style": "IPY_MODEL_c72abd216b9444ef9bdb0f8a0a6771b0", + "style": "IPY_MODEL_444add600a24462aa2272f2758ddb99d", "value": 990402637 } }, - "25e5c76c84a8414495b61663250825aa": { + "48a5bb74641a4a2fba370c0ddad1f6cb": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -3860,13 +3859,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_03d5f2402e464b7cb5244db0f824df1d", + "layout": "IPY_MODEL_98a9c4dc9bf349d1a8cf985c6a132530", "placeholder": "​", - "style": "IPY_MODEL_4a6e196f590d4b329e0edefc910d4730", - "value": " 990M/990M [00:09<00:00, 135MB/s]" + "style": "IPY_MODEL_4d94cb68eed54ffd97cc8272f70a92f3", + "value": " 990M/990M [00:11<00:00, 86.0MB/s]" } }, - "12bd0cd379754967bfd5481d5836b7a4": { + "1b0971b224444e2c8ddbf817f2f02131": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -3918,7 +3917,7 @@ "width": null } }, - "d55d326ffbdc420da0a399c141f7fb56": { + "07c9e3207eb04c5fb004744c3e4eb3b2": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -3970,7 +3969,7 @@ "width": null } }, - "092323b59b734eada8d88197d9f0eb72": { + "957e7a116bad4dee93ab449d7766d8ba": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -3985,7 +3984,7 @@ "description_width": "" } }, - "622df288b2ae4f62b776cb101de18b9f": { + "1a2ed54b1c584fa3bd2e0517a878790f": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -4037,7 +4036,7 @@ "width": null } }, - "c72abd216b9444ef9bdb0f8a0a6771b0": { + "444add600a24462aa2272f2758ddb99d": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", @@ -4053,7 +4052,7 @@ "description_width": "" } }, - "03d5f2402e464b7cb5244db0f824df1d": { + "98a9c4dc9bf349d1a8cf985c6a132530": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -4105,7 +4104,7 @@ "width": null } }, - "4a6e196f590d4b329e0edefc910d4730": { + "4d94cb68eed54ffd97cc8272f70a92f3": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -4120,7 +4119,7 @@ "description_width": "" } }, - "9a04f6723e2a40288eb42eea0134dfaf": { + "c2a8099dd85e42599911991b467a7afe": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", @@ -4135,14 +4134,14 @@ "_view_name": "HBoxView", "box_style": "", "children": [ - "IPY_MODEL_4065d0eed87e4d268de8f4536287e225", - "IPY_MODEL_bebca147a83446abaf19c3e3db11744e", - "IPY_MODEL_cf525a599ca245b19204bfff3fa1bd11" + "IPY_MODEL_72d0effc5d0948378103da4b2c8da5ae", + "IPY_MODEL_cf3ac6e0e69643639d6b0a2577fff71a", + "IPY_MODEL_d8f4949af74342d3b72200484ee3f1fb" ], - "layout": "IPY_MODEL_b60759f0730343849ef3e51d2c8be38c" + "layout": "IPY_MODEL_ff42d87d84694bb2a6a7e63e43750029" } }, - "4065d0eed87e4d268de8f4536287e225": { + "72d0effc5d0948378103da4b2c8da5ae": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -4157,13 +4156,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_dcc795e3fac0401b9a4d2aac3bd6e8cc", + "layout": "IPY_MODEL_ae619521ac64447b91b9fb26c46e696a", "placeholder": "​", - "style": "IPY_MODEL_ed7ca6da408842b38a466097ec9d4616", + "style": "IPY_MODEL_62a20c9c11f4452389dfdde24fa90d03", "value": "Downloading (…)neration_config.json: 100%" } }, - "bebca147a83446abaf19c3e3db11744e": { + "cf3ac6e0e69643639d6b0a2577fff71a": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", @@ -4179,15 +4178,15 @@ "bar_style": "success", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_0335f29f40564adf9b577707dfb40aa9", + "layout": "IPY_MODEL_cb94c6469891495db93c332e2b707299", "max": 147, "min": 0, "orientation": "horizontal", - "style": "IPY_MODEL_a200da1478fa46a19695a5b2f2c77fd1", + "style": "IPY_MODEL_4e0b6f1f2b2f497d9b6e0183b0bc7ade", "value": 147 } }, - "cf525a599ca245b19204bfff3fa1bd11": { + "d8f4949af74342d3b72200484ee3f1fb": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -4202,13 +4201,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_e21e75bbbc4149b4ac85fece44aee355", + "layout": "IPY_MODEL_999d0e74507b4acfae447018abb03323", "placeholder": "​", - "style": "IPY_MODEL_c014c271cd374f62a0d113efca14001a", - "value": " 147/147 [00:00<00:00, 6.16kB/s]" + "style": "IPY_MODEL_eaa726bb3b9d45d29c011053e844a97e", + "value": " 147/147 [00:00<00:00, 4.33kB/s]" } }, - "b60759f0730343849ef3e51d2c8be38c": { + "ff42d87d84694bb2a6a7e63e43750029": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -4260,7 +4259,7 @@ "width": null } }, - "dcc795e3fac0401b9a4d2aac3bd6e8cc": { + "ae619521ac64447b91b9fb26c46e696a": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -4312,7 +4311,7 @@ "width": null } }, - "ed7ca6da408842b38a466097ec9d4616": { + "62a20c9c11f4452389dfdde24fa90d03": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -4327,7 +4326,7 @@ "description_width": "" } }, - "0335f29f40564adf9b577707dfb40aa9": { + "cb94c6469891495db93c332e2b707299": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -4379,7 +4378,7 @@ "width": null } }, - "a200da1478fa46a19695a5b2f2c77fd1": { + "4e0b6f1f2b2f497d9b6e0183b0bc7ade": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", @@ -4395,7 +4394,7 @@ "description_width": "" } }, - "e21e75bbbc4149b4ac85fece44aee355": { + "999d0e74507b4acfae447018abb03323": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -4447,7 +4446,7 @@ "width": null } }, - "c014c271cd374f62a0d113efca14001a": { + "eaa726bb3b9d45d29c011053e844a97e": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -4463,7 +4462,8 @@ } } } - } + }, + "accelerator": "GPU" }, "cells": [ { @@ -4483,7 +4483,7 @@ "base_uri": "https://localhost:8080/" }, "id": "8l0hzptKNiZS", - "outputId": "6ebbbe8e-00ec-4108-d209-e7dd267f6d1e" + "outputId": "f5a51cde-6e0a-46dd-a5bd-682bdd4f173b" }, "outputs": [ { @@ -4493,57 +4493,57 @@ "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n", "Collecting transformers\n", " Downloading transformers-4.26.1-py3-none-any.whl (6.3 MB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m6.3/6.3 MB\u001b[0m \u001b[31m47.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m6.3/6.3 MB\u001b[0m \u001b[31m83.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting datasets\n", " Downloading datasets-2.9.0-py3-none-any.whl (462 kB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m462.8/462.8 KB\u001b[0m \u001b[31m22.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m462.8/462.8 KB\u001b[0m \u001b[31m51.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: torch in /usr/local/lib/python3.8/dist-packages (1.13.1+cu116)\n", "Collecting sentencepiece\n", " Downloading sentencepiece-0.1.97-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.3/1.3 MB\u001b[0m \u001b[31m15.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", - "\u001b[?25hRequirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.8/dist-packages (from transformers) (6.0)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.3/1.3 MB\u001b[0m \u001b[31m81.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: filelock in /usr/local/lib/python3.8/dist-packages (from transformers) (3.9.0)\n", + "Requirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.8/dist-packages (from transformers) (4.64.1)\n", + "Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.8/dist-packages (from transformers) (1.21.6)\n", "Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.8/dist-packages (from transformers) (2022.6.2)\n", + "Requirement already satisfied: requests in /usr/local/lib/python3.8/dist-packages (from transformers) (2.25.1)\n", + "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.8/dist-packages (from transformers) (6.0)\n", "Collecting huggingface-hub<1.0,>=0.11.0\n", " Downloading huggingface_hub-0.12.0-py3-none-any.whl (190 kB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m190.3/190.3 KB\u001b[0m \u001b[31m13.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m190.3/190.3 KB\u001b[0m \u001b[31m26.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting tokenizers!=0.11.3,<0.14,>=0.11.1\n", " Downloading tokenizers-0.13.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.6 MB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.6/7.6 MB\u001b[0m \u001b[31m56.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", - "\u001b[?25hRequirement already satisfied: filelock in /usr/local/lib/python3.8/dist-packages (from transformers) (3.9.0)\n", - "Requirement already satisfied: requests in /usr/local/lib/python3.8/dist-packages (from transformers) (2.25.1)\n", - "Requirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.8/dist-packages (from transformers) (4.64.1)\n", - "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.8/dist-packages (from transformers) (23.0)\n", - "Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.8/dist-packages (from transformers) (1.21.6)\n", - "Collecting multiprocess\n", - " Downloading multiprocess-0.70.14-py38-none-any.whl (132 kB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m132.0/132.0 KB\u001b[0m \u001b[31m4.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", - "\u001b[?25hRequirement already satisfied: dill<0.3.7 in /usr/local/lib/python3.8/dist-packages (from datasets) (0.3.6)\n", - "Collecting xxhash\n", - " Downloading xxhash-3.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (213 kB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m213.0/213.0 KB\u001b[0m \u001b[31m8.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", - "\u001b[?25hRequirement already satisfied: pyarrow>=6.0.0 in /usr/local/lib/python3.8/dist-packages (from datasets) (9.0.0)\n", - "Requirement already satisfied: pandas in /usr/local/lib/python3.8/dist-packages (from datasets) (1.3.5)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.6/7.6 MB\u001b[0m \u001b[31m87.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.8/dist-packages (from transformers) (23.0)\n", + "Requirement already satisfied: dill<0.3.7 in /usr/local/lib/python3.8/dist-packages (from datasets) (0.3.6)\n", "Collecting responses<0.19\n", " Downloading responses-0.18.0-py3-none-any.whl (38 kB)\n", - "Requirement already satisfied: aiohttp in /usr/local/lib/python3.8/dist-packages (from datasets) (3.8.3)\n", "Requirement already satisfied: fsspec[http]>=2021.11.1 in /usr/local/lib/python3.8/dist-packages (from datasets) (2023.1.0)\n", - "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.8/dist-packages (from torch) (4.4.0)\n", + "Requirement already satisfied: pyarrow>=6.0.0 in /usr/local/lib/python3.8/dist-packages (from datasets) (9.0.0)\n", + "Collecting xxhash\n", + " Downloading xxhash-3.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (213 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m213.0/213.0 KB\u001b[0m \u001b[31m28.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: pandas in /usr/local/lib/python3.8/dist-packages (from datasets) (1.3.5)\n", + "Requirement already satisfied: aiohttp in /usr/local/lib/python3.8/dist-packages (from datasets) (3.8.3)\n", + "Collecting multiprocess\n", + " Downloading multiprocess-0.70.14-py38-none-any.whl (132 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m132.0/132.0 KB\u001b[0m \u001b[31m18.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: typing-extensions in /usr/local/lib/python3.8/dist-packages (from torch) (4.4.0)\n", + "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (6.0.4)\n", + "Requirement already satisfied: charset-normalizer<3.0,>=2.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (2.1.1)\n", + "Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (1.8.2)\n", "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (22.2.0)\n", "Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (4.0.2)\n", - "Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (1.8.2)\n", - "Requirement already satisfied: charset-normalizer<3.0,>=2.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (2.1.1)\n", - "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (6.0.4)\n", "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (1.3.1)\n", "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (1.3.3)\n", - "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (1.24.3)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (2022.12.7)\n", - "Requirement already satisfied: chardet<5,>=3.0.2 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (4.0.0)\n", "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (2.10)\n", + "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (1.24.3)\n", + "Requirement already satisfied: chardet<5,>=3.0.2 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (4.0.0)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (2022.12.7)\n", "Collecting urllib3<1.27,>=1.21.1\n", " Downloading urllib3-1.26.14-py2.py3-none-any.whl (140 kB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m140.6/140.6 KB\u001b[0m \u001b[31m9.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", - "\u001b[?25hRequirement already satisfied: python-dateutil>=2.7.3 in /usr/local/lib/python3.8/dist-packages (from pandas->datasets) (2.8.2)\n", - "Requirement already satisfied: pytz>=2017.3 in /usr/local/lib/python3.8/dist-packages (from pandas->datasets) (2022.7.1)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m140.6/140.6 KB\u001b[0m \u001b[31m19.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: pytz>=2017.3 in /usr/local/lib/python3.8/dist-packages (from pandas->datasets) (2022.7.1)\n", + "Requirement already satisfied: python-dateutil>=2.7.3 in /usr/local/lib/python3.8/dist-packages (from pandas->datasets) (2.8.2)\n", "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.8/dist-packages (from python-dateutil>=2.7.3->pandas->datasets) (1.15.0)\n", "Installing collected packages: tokenizers, sentencepiece, xxhash, urllib3, multiprocess, responses, huggingface-hub, transformers, datasets\n", " Attempting uninstall: urllib3\n", @@ -4586,78 +4586,78 @@ "metadata": { "colab": { "base_uri": "https://localhost:8080/", - "height": 244, + "height": 231, "referenced_widgets": [ - "e4bb6f2f32de48d4b1f6d7ecf97ce376", - "3305b30f1bfa48e9b0c1ba3add06094e", - "a343619acbb745baa6aa561271ec8815", - "c493fc54d9eb421f96d6e8519c8a1b0e", - "12fd6daa8e604ecd9ad731b6296815da", - "805f497aa3304353a1be8b4cc87bfb54", - "594a6d13f81f479eb00fa45fd4094146", - "236979048eb8461f9b7d8c4103905eed", - "4620faf461ca449a88de45e86467e265", - "8dc2f0f2e66741edbccab7abaaf634ce", - "0d49bfb55dfd4090ba57c544eaa97902", - "4084f218fca64fc9b765e04d0cc073ac", - "fec67d95a5904ac199f6648a34ef1ff9", - "a734d44f6baf4a5f8dfda576c09fffca", - "3fc2d009da594365854aa11be804b388", - "45c7d35932ec44bcb2ccdc73f0ae6b46", - "0c1c3db046f24599b27daa44217f48d2", - "c3f9ed611a154e22b875d0696ef6022d", - "7fd51c34909b41a8884fa358cccdbf48", - "9d9edc5471de40c2b7c2b9156637997d", - "02c64bf3ff95438cb43c7dc52034cc43", - "f0b71ecb6b1c4d1190ca899af7d3e82c", - "8cae9c49e18f43248072b5e059429f6d", - "88c8adca128b44c1bbbec437630c2074", - "0f73f5e2c8af41eaae5f1c27f212da8b", - "255b4480e11f4b3e892a5d2dc6abfd4b", - "a96eab6312f6447b9eff3f914c5a6827", - "063059d53dc942d1aee9e3fe2f27687d", - "ca50704df2cc430fae6b5902c5399414", - "64f5cdd8d1c14be79278ee4de89993d1", - "f065dcd7d1d34cb6806f2eb28bb3cd6f", - "67663505c87640b58e04d3ce028537ea", - "f5a17bc6f9f94b2ca119528b0ca2d456", - "ec0f16c3cbb14d9287e148887127219b", - "ba832204e1d4413f8b8a15e10bac7d95", - "8179dbec98b7466ea2195affb0568498", - "7e9abda7b55c459b8a9888edaf1cc116", - "64c8860ae16848af9b04bb41955a8446", - "64fe250082bf4d4fb126a319920d2f0a", - "0b278b6f5da94921afbacb873c15d9c9", - "b688bc7f34e941488831da5d4aed9396", - "44cec66cbaeb49abb26dbfc5420ceacb", - "67a750dcfa8b44499956572fda3dbacf", - "edad6f2eb6704468bd06006c50697f86", - "699a1bdf38ca48e2affc3c6bd771852f", - "4e5a92d4acdc43d487290ffd8a842ea5", - "8bc8c44b6324478a8209094f9b7e9ccd", - "e95f31e693674a0aae8de0e167a49daf", - "069a68aed2bb4d37a00c9c0feedd3e17", - "9930f171a6db47939e996016cb49fe20", - "ddd0c0abba074aa7a33b5c825ccf8760", - "8bbb7307312648b0afb901f701a4e466", - "4a2eb48d3583446598fdd1b7175c96fd", - "b3eae90c5aea409ab1a2c541948658f8", - "41b5186c2e194402a1e18f1c1a9f18a4", - "3c84850ebe3e45d297d3bfa8a12f1b86", - "8a5f71a073ca4b0cb929ba3cf31fd296", - "b5be73849b61415fb9187d011261be1e", - "46a51fbd984344b1958889c608ea04ed", - "0d25092adebd4f94b1799df263ccaf55", - "e4814d2ee2df4f6a9f411b134ebca546", - "09669f6ac72b45689e082b4fb489a23f", - "7afda94f85794acf882856b760a3eb63", - "a70df5e47adb4a4d8b80a543dedfd708", - "140058b69379422797bdc22374192bd6", - "8aabd23e2fa242e4b8cf4ef43fbebe2e" + "a8e120a9a97d45d59fcf275af25a591e", + "e665879731604133a593e13155f4e03b", + "d451aa9d81ca4d5ea901297e702762c0", + "a9edac4d193f4930aa691fa496badc64", + "a21e8fec1d92496a835ae8ad71c287ab", + "d168c852a75a43f5addcfbc75c48ec14", + "589f9c90c98b48bda9ecb020cb384eab", + "e35fb285260b4b86aa9854eac11a6dfd", + "f505b8ea01ff4e2f90edf1d08c5096b1", + "0baf1fcb54e945679e3591276182aa9e", + "2d57d4b6086e47e1a7d6a9a1375cc49f", + "564f30aef6c34efa952fdd1402627d13", + "0ee3c4b36db247d09e7fb9e68e856abb", + "03ee22d44e2141d99e54bbd59246b328", + "19465851c65e445fbaed11e33ac09098", + "6a7e920546444da7bf855620f00c45e0", + "e8b69414b5004f489f5c6793b6cc0746", + "474f0c044be14860b6a38321281d0d1f", + "f2861641cda34f2786112b28bac2b36f", + "f07c5cffb60c4a89bb29c49811d73aba", + "e502595b7e6b45498d2018e62e6fa6f2", + "80b9042089364fae8e0cffc7a49203c1", + "ae89e755c6e64ab2a3101913d08820ef", + "5181e91045d240308e1371af2a560d56", + "3551b2e33fac44f38988c07fc5819b23", + "9a418f8782a842898d730f8cbc4fe311", + "c9d1c36d765345e183d4cdf911ad07b3", + "75a75524abc04743a7533f9030769bb2", + "84e9b5aef48c4d429742d0fde6fc125e", + "24492355887d405b98f8f42c4be836b6", + "5c7cbcd333f145488ab9411512467c19", + "6cc08744eb594bbc913da9fc2a15c939", + "17c7c64eafb14d168bd386cae79902aa", + "db79fbdb9e25432a8f95221cc0bed971", + "3c14418eb66d4392bcaa64ca3394084c", + "3144d6d798df44afacc4f34bed90f0e4", + "9259558984d847ae99435ef4e312e3b7", + "1b05d118f33949dfa5daf732520f9c62", + "dc652b3692ed4da6b3fd959acb773b66", + "ce7027fdd804415db2c60560be3c66e9", + "3ab3add96759441eba1571795b0edaae", + "d88268e0bb52404e86a37b01fdac5957", + "dae3457866114776818227ec44284ced", + "2aab0424351e4b9594cdcf631632c690", + "6fd330314de74ccc983da44783bcac7d", + "209778054761411190cf91741a43b2d3", + "5d45d48713924a8d805368867c7bb5e0", + "fa0715f8876c401ba6a2681d0abf7e5a", + "b6afff9e8ee44d42814dc84670ed999f", + "7b636bb9a4724d2783148aa8d6aa791e", + "dd488415b19349d8a5306153907ba902", + "174930418d51405f969eaa6b5aa67dde", + "75f8a0de12974b84a4b8bde1a16c33c4", + "101281b2ecf441a39abc9d4e49398e43", + "20ad8bc6a1c94be090190ea3de64a10f", + "99cbe58514e3460398f032b93a57d068", + "797dcecef4874b9f8de64e643661c637", + "9d97e656e72d4f99a2b4669e811918cd", + "df4a5058866c4ec8875cfb5189c738c5", + "fcd408ec35cd44f1b7309931256adfaa", + "2ab3431929a540609d0edac159d63d41", + "fa0e9bb620c04cca998be8929f50c4d8", + "4d131181a5fa4f0880946ef5cd984790", + "2f3024af40c346a188793eeddff5848b", + "914ceee224b244b9ac0492305fb1fb24", + "5e394d73c2df4d34b39989cd1b24dc57" ] }, "id": "cCiAuRqrOkvV", - "outputId": "394df630-e545-4005-b3a4-82b0341b210b" + "outputId": "0a6da048-12e3-41b6-b623-d21cb246030c" }, "execution_count": 3, "outputs": [ @@ -4670,7 +4670,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "e4bb6f2f32de48d4b1f6d7ecf97ce376" + "model_id": "a8e120a9a97d45d59fcf275af25a591e" } }, "metadata": {} @@ -4684,7 +4684,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "4084f218fca64fc9b765e04d0cc073ac" + "model_id": "564f30aef6c34efa952fdd1402627d13" } }, "metadata": {} @@ -4698,7 +4698,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "8cae9c49e18f43248072b5e059429f6d" + "model_id": "ae89e755c6e64ab2a3101913d08820ef" } }, "metadata": {} @@ -4719,7 +4719,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "ec0f16c3cbb14d9287e148887127219b" + "model_id": "db79fbdb9e25432a8f95221cc0bed971" } }, "metadata": {} @@ -4733,7 +4733,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "699a1bdf38ca48e2affc3c6bd771852f" + "model_id": "6fd330314de74ccc983da44783bcac7d" } }, "metadata": {} @@ -4754,7 +4754,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "3c84850ebe3e45d297d3bfa8a12f1b86" + "model_id": "99cbe58514e3460398f032b93a57d068" } }, "metadata": {} @@ -4764,14 +4764,14 @@ { "cell_type": "code", "source": [ - "dataset['train'][123]" + "dataset['train'][0]" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "JKFHPko3OnAV", - "outputId": "423375ec-0be7-431b-8a65-f531df1d94d8" + "outputId": "e9aeffd1-9049-48fc-e59c-0ff8c43cd0f4" }, "execution_count": 4, "outputs": [ @@ -4779,8 +4779,8 @@ "output_type": "execute_result", "data": { "text/plain": [ - "{'sms': 'Todays Voda numbers ending 7548 are selected to receive a $350 award. If you have a match please call 08712300220 quoting claim code 4041 standard rates app\\n',\n", - " 'label': 1}" + "{'sms': 'Go until jurong point, crazy.. Available only in bugis n great world la e buffet... Cine there got amore wat...\\n',\n", + " 'label': 0}" ] }, "metadata": {}, @@ -4791,7 +4791,7 @@ { "cell_type": "markdown", "source": [ - "# Modyfikacja datasetu - klasyfikacja zero-shot" + "# Przygotowanie datasetu" ], "metadata": { "id": "l140vJrgYxPr" @@ -4803,13 +4803,13 @@ "parsed_dataset = []\n", "\n", "for row in dataset['train']:\n", - " text = \"Answer the question in one word - true if provided text is spam or false, if provided text is not spam.\\n Q: Is this text spam? \\nText: \" + row['sms'] + \"A: \"\n", + " text = row['sms'].replace(\"\\n\", \"\")\n", " new_row = {}\n", " new_row['sms'] = text\n", " if row['label'] == 0:\n", - " new_row['label'] = \"true\"\n", + " new_row['label'] = \"False\"\n", " else:\n", - " new_row['label'] = \"false\"\n", + " new_row['label'] = \"True\"\n", " parsed_dataset.append(new_row)\n", "\n", "parsed_dataset[0]" @@ -4819,7 +4819,7 @@ "base_uri": "https://localhost:8080/" }, "id": "1boUF-YiY3_y", - "outputId": "a7ecfad8-7c97-4de2-8852-80b28ea7c965" + "outputId": "d0088428-9014-43bf-e5d1-920042374797" }, "execution_count": 5, "outputs": [ @@ -4827,8 +4827,8 @@ "output_type": "execute_result", "data": { "text/plain": [ - "{'sms': 'Answer the question in one word - true if provided text is spam or false, if provided text is not spam.\\n Q: Is this text spam? \\nText: Go until jurong point, crazy.. Available only in bugis n great world la e buffet... Cine there got amore wat...\\nA: ',\n", - " 'label': 'true'}" + "{'sms': 'Go until jurong point, crazy.. Available only in bugis n great world la e buffet... Cine there got amore wat...',\n", + " 'label': 'False'}" ] }, "metadata": {}, @@ -4866,54 +4866,54 @@ "base_uri": "https://localhost:8080/", "height": 145, "referenced_widgets": [ - "040698c1b4be4adebfe751751a64c11d", - "11b4ddede4494fe093329c50097b7df5", - "7986c625c9c34d039fad240333d0da08", - "b35a6f8e81184f81990a0111cc5c6ca8", - "2968992398a94adeb626eec2f45a8699", - "c9f8f67483fb45c8a6b59fceae40fe42", - "c5a862e7d71c430c865fa87dc21b1f6d", - "d69171bdd6544c8ab9e96f3f3dfe7f92", - "9cca59c67c5f452eb1d9e8dd22296968", - "0f18ab0690ce4bc3b9b7c2f4d10c2049", - "af26b98c1e3440daa11e104ed1c8b7e4", - "be9060616d68475ea2e4674f7e460566", - "264afd978de54dbeaa1b711e4c0b1c07", - "bbcefda6eea74b8ea8313e4f7167df65", - "68d85f6957ea4807a1fe7c82c9a7bc06", - "cdfaf060f34a4d23afe97243d5f4c709", - "9411023294ab44b284894aebf3f8f589", - "d8bf78a3d7ea47a9824d6e01e70b0237", - "b95ece9507db467fad710338bdf29177", - "34a31746a99c4916b1402a2829e71a98", - "29b2a7a233a9484c92056034cc70b8ca", - "c9a72e2599e94e9e9bc2b4912d25877b", - "2c24af439f3e45db8a0e004686e912ed", - "dcb13b35232145fd85be1b6e4442cc5a", - "58037f9984bb414a9c6e56337d86215c", - "6e9379baaf2049658790e176ca279531", - "772e39d516cf43fdbb1b3db001d53d77", - "c08c1e0783324c53b7fc02912fa14af9", - "9bcdda510c0147178f651b66450b48ac", - "18ab5e8088e04cdca93df7519156a59f", - "f502a26154d840b89b5c61a2aae4f827", - "7beb993a979443dcb93d26ec6e6718c3", - "62e60fc862054e4d8d0d18cb1957cf6d", - "bd697213d4fa4c1d9119657c537e78fe", - "67f9f97815354675bf3bd435f2ed0436", - "27bd6c78e7f74ff385509e9856c2b8d0", - "34f670acaa3542eebc8c19018e900ce3", - "ec2d082874844b6daf8542824bfde1a0", - "b9df5fc8959447449d873bd17e6696f7", - "f8489ecaa1a844369bcb427c5f4c95e6", - "b21e65a9dff040f4a045580d9989ac20", - "0efa19170c9e4de891e328365543c916", - "8c6fa802ddd5491581c092e5422bfeab", - "42cfc2ada7ac408fab39251add66f6ef" + "6fb269ceeada49c19adf46819664fa98", + "341f67fcddff4a91813fb1331fd63c3e", + "33c7a0d0629342288601999a3b11d71c", + "87d7f2540c724ba88b6f972049043702", + "36111c073ea34489886c767532713233", + "c05a5532720d47e39e6cb710617aab67", + "458619b05af848fe8f40fac408e4c521", + "3cf20c5c605b46e1bc4890769cdeffe3", + "15c19b89e55243cc88e77c56895d56b4", + "b4dd2e86dd6a4d579f315293d4b0ba21", + "60577d05c1ad4acea832bd4e34efa6f4", + "4f67d0fe28914c1bb3d1057225c409cd", + "f384fc9cd7f2428fad3b6d10ffac7efd", + "36838c7736594b1b83f3046c8f0cc265", + "b98e34b842054f99ae1ac5f96104321f", + "a4ce8092283747e89e730a7e39e64834", + "0aa55ed422a94e94b01c117598842a10", + "d54619fbb71e441eb90d9c42145ba07b", + "da3487b705264da9a8f92254e568b76e", + "9f378f21d7804f49ad9f72ccabb4a10b", + "ebb15c7aaf1d4b59a2186e2abbea2868", + "6510cda1ab33418882a1e6811f826ed4", + "0b3c6eb43a5c4644adbc17ee2b06b079", + "fcb7ce49c0c14dc4a5dbbd9870334921", + "2f58b16a741f4f1d822c71c17a1c5606", + "35cbd0d168714ecc9f0c9236b3707d0a", + "b9393265011640c493b2bd4de43a4aef", + "eaeeca2372be4fe3868d2d3f42839bc2", + "079b78ca1493431880754da6fc4ac127", + "6c7e4ab3930c4570a05a4e3d9db6782d", + "2ae3b00d50f04990b8c1839dfa705dc8", + "cfcae44ed5734d7086ecb5028281cf9a", + "281ca6dc827f41d3833ba1c60606529d", + "bce6a704b2924287b8b9279d791b633b", + "b1dae5dc568446b0ba896b3abe3afb49", + "29ff3a3e656a489182943da91cd73813", + "585cf66f9f3648e0b950ca04eb17cc63", + "71e629333d5d4009bc8072b9f12c0cee", + "d5438b0c54104ddd99ed097fa65bc21c", + "224c2c07bdc5444aaddf46ca6325e681", + "197d80f118764b65b29ad5049edd0087", + "e0326b59a1334117bbe6ccb06c1f4020", + "6fd86b989a354a2696c8b9e880109a95", + "2caff09a31ad46f59e717e25462b12d6" ] }, "id": "q5Jz0E_oPMBr", - "outputId": "c71131a5-4737-4354-e58f-17aa88116348" + "outputId": "b3c09e2f-577b-49e9-8ae7-cc9cede74cc8" }, "execution_count": 7, "outputs": [ @@ -4926,7 +4926,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "040698c1b4be4adebfe751751a64c11d" + "model_id": "6fb269ceeada49c19adf46819664fa98" } }, "metadata": {} @@ -4940,7 +4940,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "be9060616d68475ea2e4674f7e460566" + "model_id": "4f67d0fe28914c1bb3d1057225c409cd" } }, "metadata": {} @@ -4954,7 +4954,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "2c24af439f3e45db8a0e004686e912ed" + "model_id": "0b3c6eb43a5c4644adbc17ee2b06b079" } }, "metadata": {} @@ -4968,7 +4968,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "bd697213d4fa4c1d9119657c537e78fe" + "model_id": "bce6a704b2924287b8b9279d791b633b" } }, "metadata": {} @@ -4979,7 +4979,7 @@ "cell_type": "code", "source": [ "sms = parsed_dataset[0]['sms']\n", - "print('Original: \\n', sms)\n", + "print('Original: ', sms)\n", "print('Tokenized: ', tokenizer.tokenize(sms))\n", "print('Token IDs: ', tokenizer.convert_tokens_to_ids(tokenizer.tokenize(sms)))" ], @@ -4988,7 +4988,7 @@ "base_uri": "https://localhost:8080/" }, "id": "dfxJQpoePsvI", - "outputId": "2ce963db-ed94-467a-e859-fd0515849ee2" + "outputId": "00e742fc-45d6-49d8-b5a5-f42f7c8f5037" }, "execution_count": 8, "outputs": [ @@ -4996,13 +4996,9 @@ "output_type": "stream", "name": "stdout", "text": [ - "Original: \n", - " Answer the question in one word - true if provided text is spam or false, if provided text is not spam.\n", - " Q: Is this text spam? \n", - "Text: Go until jurong point, crazy.. Available only in bugis n great world la e buffet... Cine there got amore wat...\n", - "A: \n", - "Tokenized: ['▁Answer', '▁the', '▁question', '▁in', '▁one', '▁word', '▁', '-', '▁true', '▁', 'if', '▁provided', '▁text', '▁is', '▁spam', '▁or', '▁false', ',', '▁', 'if', '▁provided', '▁text', '▁is', '▁not', '▁spam', '.', '▁Q', ':', '▁I', 's', '▁this', '▁text', '▁spam', '?', '▁Text', ':', '▁Go', '▁until', '▁jur', 'ong', '▁point', ',', '▁crazy', '.', '.', '▁Available', '▁only', '▁in', '▁bug', 'is', '▁', 'n', '▁great', '▁world', '▁la', '▁', 'e', '▁buffet', '...', '▁Cine', '▁there', '▁got', '▁', 'a', 'more', '▁wa', 't', '...', '▁A', ':', '▁']\n", - "Token IDs: [11801, 8, 822, 16, 80, 1448, 3, 18, 1176, 3, 99, 937, 1499, 19, 13655, 42, 6136, 6, 3, 99, 937, 1499, 19, 59, 13655, 5, 1593, 10, 27, 7, 48, 1499, 13655, 58, 5027, 10, 1263, 552, 10081, 2444, 500, 6, 6139, 5, 5, 8144, 163, 16, 8143, 159, 3, 29, 248, 296, 50, 3, 15, 15385, 233, 17270, 132, 530, 3, 9, 3706, 8036, 17, 233, 71, 10, 3]\n" + "Original: Go until jurong point, crazy.. Available only in bugis n great world la e buffet... Cine there got amore wat...\n", + "Tokenized: ['▁Go', '▁until', '▁jur', 'ong', '▁point', ',', '▁crazy', '.', '.', '▁Available', '▁only', '▁in', '▁bug', 'is', '▁', 'n', '▁great', '▁world', '▁la', '▁', 'e', '▁buffet', '...', '▁Cine', '▁there', '▁got', '▁', 'a', 'more', '▁wa', 't', '...']\n", + "Token IDs: [1263, 552, 10081, 2444, 500, 6, 6139, 5, 5, 8144, 163, 16, 8143, 159, 3, 29, 248, 296, 50, 3, 15, 15385, 233, 17270, 132, 530, 3, 9, 3706, 8036, 17, 233]\n" ] } ] @@ -5010,7 +5006,7 @@ { "cell_type": "markdown", "source": [ - "# Check maximum lenght of a sentence" + "# Few shot learning" ], "metadata": { "id": "UpluhM8cU5Ir" @@ -5019,28 +5015,28 @@ { "cell_type": "code", "source": [ - "max_len = 0\n", - "\n", - "for sentence in parsed_dataset:\n", - " input_ids = tokenizer.encode(sentence['sms'], add_special_tokens=True)\n", - " max_len = max(max_len, len(input_ids))\n", - "\n", - "print('Max sentence length: ', max_len)" + "print(parsed_dataset[0]) #0\n", + "print(parsed_dataset[123]) #1\n", + "print(parsed_dataset[2000]) #0\n", + "print(parsed_dataset[3002]) #1" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "7uNUkixPU85O", - "outputId": "352b31bb-164e-42a8-a8b0-6be9d3eca0c4" + "outputId": "9c2c8ef6-30c3-4043-b1a8-f33715d10334" }, - "execution_count": 12, + "execution_count": 9, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ - "Max sentence length: 377\n" + "{'sms': 'Go until jurong point, crazy.. Available only in bugis n great world la e buffet... Cine there got amore wat...', 'label': 'False'}\n", + "{'sms': 'Todays Voda numbers ending 7548 are selected to receive a $350 award. If you have a match please call 08712300220 quoting claim code 4041 standard rates app', 'label': 'True'}\n", + "{'sms': \"LMAO where's your fish memory when I need it?\", 'label': 'False'}\n", + "{'sms': 'This message is free. Welcome to the new & improved Sex & Dogging club! To unsubscribe from this service reply STOP. msgs@150p 18+only', 'label': 'True'}\n" ] } ] @@ -5048,285 +5044,40 @@ { "cell_type": "code", "source": [ - "max_label_len = 0\n", + "non_spam_1 = \"SMS: \" + parsed_dataset[0]['sms'] + \"\\nSpam: False\\n\\n\"\n", + "spam_1 = \"SMS: \" + parsed_dataset[123]['sms'] + \"\\nSpam: True\\n\\n\"\n", + "non_spam_2 = \"SMS: \" + parsed_dataset[2000]['sms'] + \"\\nSpam: False\\n\\n\"\n", + "spam_2 = \"SMS: \" + parsed_dataset[3002]['sms'] + \"\\nSpam: True\\n\\n\"\n", "\n", - "for sentence in parsed_dataset:\n", - " input_ids = tokenizer.encode(sentence['label'], add_special_tokens=True)\n", - " max_label_len = max(max_label_len, len(input_ids))\n", - "\n", - "print('Max sentence length: ', max_label_len)" + "few_shot_prefix = non_spam_1 + spam_1 + non_spam_2 + spam_2 + \"SMS: \"\n", + "print(few_shot_prefix)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "lj0issBznZfK", - "outputId": "53defde8-ed8d-4927-add4-5d7d63f737df" + "outputId": "a8aa4038-4145-4950-9d9f-91593a550d12" }, - "execution_count": 13, + "execution_count": 10, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ - "Max sentence length: 2\n" - ] - } - ] - }, - { - "cell_type": "markdown", - "source": [ - "# Pre train tokenization" - ], - "metadata": { - "id": "nfw62HdgSERb" - } - }, - { - "cell_type": "code", - "source": [ - "import torch" - ], - "metadata": { - "id": "KTXYalS1VLqH" - }, - "execution_count": 11, - "outputs": [] - }, - { - "cell_type": "code", - "source": [ - "input_ids = []\n", - "target_ids = []\n", - "attention_masks = []\n", - "\n", - "for sentence in parsed_dataset:\n", - " encoded_dict = tokenizer.encode_plus(\n", - " sentence['sms'],\n", - " add_special_tokens = True,\n", - " max_length = 380,\n", - " padding = 'max_length',\n", - " truncation=True,\n", - " return_attention_mask = True,\n", - " return_tensors = 'pt',\n", - " )\n", - " \n", - " encoded_target_dict = tokenizer.encode_plus(\n", - " sentence['label'],\n", - " add_special_tokens = True,\n", - " max_length = 2,\n", - " padding = 'max_length',\n", - " truncation=True,\n", - " return_attention_mask = True,\n", - " return_tensors = 'pt',\n", - " )\n", - " \n", - " input_ids.append(encoded_dict['input_ids'])\n", - " target_ids.append(encoded_target_dict['input_ids'])\n", - " attention_masks.append(encoded_dict['attention_mask'])\n", - "\n", - "input_ids = torch.cat(input_ids, dim=0)\n", - "target_ids = torch.cat(target_ids, dim=0)\n", - "attention_masks = torch.cat(attention_masks, dim=0)\n", - "\n", - "print('Original: ', parsed_dataset[0])\n", - "print('Token IDs:', input_ids[0])\n", - "print('Label token IDs:', target_ids[0])" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Z28QYfLnSGxR", - "outputId": "eb9d48d0-cb2d-4596-c752-14b18f6e3590" - }, - "execution_count": 14, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Original: {'sms': 'Answer the question in one word - true if provided text is spam or false, if provided text is not spam.\\n Q: Is this text spam? \\nText: Go until jurong point, crazy.. Available only in bugis n great world la e buffet... Cine there got amore wat...\\nA: ', 'label': 'true'}\n", - "Token IDs: tensor([11801, 8, 822, 16, 80, 1448, 3, 18, 1176, 3,\n", - " 99, 937, 1499, 19, 13655, 42, 6136, 6, 3, 99,\n", - " 937, 1499, 19, 59, 13655, 5, 1593, 10, 27, 7,\n", - " 48, 1499, 13655, 58, 5027, 10, 1263, 552, 10081, 2444,\n", - " 500, 6, 6139, 5, 5, 8144, 163, 16, 8143, 159,\n", - " 3, 29, 248, 296, 50, 3, 15, 15385, 233, 17270,\n", - " 132, 530, 3, 9, 3706, 8036, 17, 233, 71, 10,\n", - " 3, 1, 0, 0, 0, 0, 0, 0, 0, 0,\n", - " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", - " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", - " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", - " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", - " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", - " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", - " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", - " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", - " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", - " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", - " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", - " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", - " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", - " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", - " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", - " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", - " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", - " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", - " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", - " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", - " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", - " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", - " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", - " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", - " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", - " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", - " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", - " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", - " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", - " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])\n", - "Label token IDs: tensor([1176, 1])\n" - ] - } - ] - }, - { - "cell_type": "markdown", - "source": [ - "# Split dataset" - ], - "metadata": { - "id": "qD_t0y0KVVSy" - } - }, - { - "cell_type": "code", - "source": [ - "from torch.utils.data import TensorDataset, random_split" - ], - "metadata": { - "id": "vN_SatRIVa4c" - }, - "execution_count": 15, - "outputs": [] - }, - { - "cell_type": "code", - "source": [ - "dataset = TensorDataset(input_ids, attention_masks, target_ids)\n", - "\n", - "test_size = 1000\n", - "dataset_len = len(dataset)\n", - "train_size = int(0.9 * (dataset_len-test_size))\n", - "val_size = (dataset_len-test_size) - train_size\n", - "\n", - "test_dataset, train_dataset, val_dataset = random_split(dataset, [test_size, train_size, val_size])\n", - "\n", - "print('{:>5,} test samples'.format(test_size))\n", - "print('{:>5,} training samples'.format(train_size))\n", - "print('{:>5,} validation samples'.format(val_size))" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Mm6vc6lLVW3l", - "outputId": "023efb5b-eab3-4675-9900-3918aedae90f" - }, - "execution_count": 16, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "1,000 test samples\n", - "4,116 training samples\n", - " 458 validation samples\n" - ] - } - ] - }, - { - "cell_type": "markdown", - "source": [ - "# Create train and validation loaders" - ], - "metadata": { - "id": "bmgQOP4EVfA1" - } - }, - { - "cell_type": "code", - "source": [ - "from torch.utils.data import DataLoader, RandomSampler, SequentialSampler" - ], - "metadata": { - "id": "CxnQ3cmIVlNh" - }, - "execution_count": 17, - "outputs": [] - }, - { - "cell_type": "code", - "source": [ - "batch_size = 8\n", - "\n", - "train_dataloader = DataLoader(\n", - " train_dataset,\n", - " sampler = RandomSampler(train_dataset),\n", - " batch_size = batch_size\n", - " )\n", - "\n", - "validation_dataloader = DataLoader(\n", - " val_dataset,\n", - " sampler = SequentialSampler(val_dataset),\n", - " batch_size = batch_size\n", - " )" - ], - "metadata": { - "id": "0hcpO_onVjEC" - }, - "execution_count": 18, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "# Device check" - ], - "metadata": { - "id": "efwhqLyyVu9z" - } - }, - { - "cell_type": "code", - "source": [ - "if torch.cuda.is_available(): \n", - " device = torch.device(\"cuda\")\n", - "\n", - " print('There are %d GPU(s) available.' % torch.cuda.device_count())\n", - " print('We will use the GPU:', torch.cuda.get_device_name(0))\n", - "\n", - "else:\n", - " print('No GPU available, using the CPU instead.')\n", - " device = torch.device(\"cpu\")" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "ANBCfNGnVwVk", - "outputId": "6192e88f-5e61-4de6-b476-de9a6e3a59a6" - }, - "execution_count": 19, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "There are 1 GPU(s) available.\n", - "We will use the GPU: Tesla T4\n" + "SMS: Go until jurong point, crazy.. Available only in bugis n great world la e buffet... Cine there got amore wat...\n", + "Spam: False\n", + "\n", + "SMS: Todays Voda numbers ending 7548 are selected to receive a $350 award. If you have a match please call 08712300220 quoting claim code 4041 standard rates app\n", + "Spam: True\n", + "\n", + "SMS: LMAO where's your fish memory when I need it?\n", + "Spam: False\n", + "\n", + "SMS: This message is free. Welcome to the new & improved Sex & Dogging club! To unsubscribe from this service reply STOP. msgs@150p 18+only\n", + "Spam: True\n", + "\n", + "SMS: \n" ] } ] @@ -5348,7 +5099,7 @@ "metadata": { "id": "Eu-7Eed8WgN0" }, - "execution_count": 20, + "execution_count": 11, "outputs": [] }, { @@ -5363,45 +5114,45 @@ "base_uri": "https://localhost:8080/", "height": 1000, "referenced_widgets": [ - "3747d0aa68d642449ff32b7efd47d497", - "2a84ccf3660a4e24b37bfc1d952f06d9", - "43b98452768846eb9b773839a4681cc6", - "2dfbcef644a84b558ce99b2ddaf091b6", - "9dd02373a1994433a49e0015b76dd858", - "42a620dfccb4416c95fbd7a76637dc73", - "9d953b41e24c4263b18e1ff2174eb797", - "cb409960af114fa690bac72c1d51d2ab", - "995a94c35b4c441b86598d1976281711", - "4ea2ccb5fa264dd5a042f570c22db7de", - "4d5668e5b66d4993b935b077a1dc281c", - "cf36c750119449e8a16aa97a9b66a124", - "0de691bf20804830ba5e6710c205c9ac", - "7ee532c002784554b12fede964c6c05a", - "25e5c76c84a8414495b61663250825aa", - "12bd0cd379754967bfd5481d5836b7a4", - "d55d326ffbdc420da0a399c141f7fb56", - "092323b59b734eada8d88197d9f0eb72", - "622df288b2ae4f62b776cb101de18b9f", - "c72abd216b9444ef9bdb0f8a0a6771b0", - "03d5f2402e464b7cb5244db0f824df1d", - "4a6e196f590d4b329e0edefc910d4730", - "9a04f6723e2a40288eb42eea0134dfaf", - "4065d0eed87e4d268de8f4536287e225", - "bebca147a83446abaf19c3e3db11744e", - "cf525a599ca245b19204bfff3fa1bd11", - "b60759f0730343849ef3e51d2c8be38c", - "dcc795e3fac0401b9a4d2aac3bd6e8cc", - "ed7ca6da408842b38a466097ec9d4616", - "0335f29f40564adf9b577707dfb40aa9", - "a200da1478fa46a19695a5b2f2c77fd1", - "e21e75bbbc4149b4ac85fece44aee355", - "c014c271cd374f62a0d113efca14001a" + "8e60f2b1a9f7455db02eb846af52df63", + "71ff180cc81a4376b6a27455ed5cba26", + "4dc7c026d3e5469da3ada03bf77d7019", + "279308acf5be418ab7f25c3501739c9d", + "5c4c0f7bfb6c4a518cdfd3f1d70e77d5", + "7182f8c40174456db2d6f974e1a672a9", + "f34bf1f4156b4dec8990f16cbceccb00", + "bcf3f636355347338e1d57c191e2349f", + "e36598bd61874b4eb737d248df7c1212", + "f9c113d3c4f64aee969c897451b4522e", + "fc647c0c0bd14b87b59d539db3793d0a", + "3fcb6b4a0c454d59a6d5503cec84ba37", + "17d4993dc58949ca87a852e7e6c02e0c", + "db24a85aa3e24a2c9275b9aa4ac78faa", + "48a5bb74641a4a2fba370c0ddad1f6cb", + "1b0971b224444e2c8ddbf817f2f02131", + "07c9e3207eb04c5fb004744c3e4eb3b2", + "957e7a116bad4dee93ab449d7766d8ba", + "1a2ed54b1c584fa3bd2e0517a878790f", + "444add600a24462aa2272f2758ddb99d", + "98a9c4dc9bf349d1a8cf985c6a132530", + "4d94cb68eed54ffd97cc8272f70a92f3", + "c2a8099dd85e42599911991b467a7afe", + "72d0effc5d0948378103da4b2c8da5ae", + "cf3ac6e0e69643639d6b0a2577fff71a", + "d8f4949af74342d3b72200484ee3f1fb", + "ff42d87d84694bb2a6a7e63e43750029", + "ae619521ac64447b91b9fb26c46e696a", + "62a20c9c11f4452389dfdde24fa90d03", + "cb94c6469891495db93c332e2b707299", + "4e0b6f1f2b2f497d9b6e0183b0bc7ade", + "999d0e74507b4acfae447018abb03323", + "eaa726bb3b9d45d29c011053e844a97e" ] }, "id": "JKv9O8kfV2zZ", - "outputId": "6893e79a-48f7-4713-c4a4-a9558acbcf7c" + "outputId": "c902fc89-7c47-4eca-da89-411bc5b5e501" }, - "execution_count": 21, + "execution_count": 12, "outputs": [ { "output_type": "display_data", @@ -5412,7 +5163,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "3747d0aa68d642449ff32b7efd47d497" + "model_id": "8e60f2b1a9f7455db02eb846af52df63" } }, "metadata": {} @@ -5426,7 +5177,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "cf36c750119449e8a16aa97a9b66a124" + "model_id": "3fcb6b4a0c454d59a6d5503cec84ba37" } }, "metadata": {} @@ -5440,7 +5191,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "9a04f6723e2a40288eb42eea0134dfaf" + "model_id": "c2a8099dd85e42599911991b467a7afe" } }, "metadata": {} @@ -6192,7 +5943,7 @@ ] }, "metadata": {}, - "execution_count": 21 + "execution_count": 12 } ] }, @@ -6208,13 +5959,12 @@ { "cell_type": "code", "source": [ - "import datetime\n", - "import numpy as np" + "import torch" ], "metadata": { - "id": "s-q6_F38bLVA" + "id": "rdWMg_KJZEZH" }, - "execution_count": 22, + "execution_count": 13, "outputs": [] }, { @@ -6230,360 +5980,42 @@ " else:\n", " results_false += 1.0\n", "\n", - " return results_ok / (results_ok + results_false)\n", - "\n", - "def format_time(elapsed):\n", - " '''\n", - " Takes a time in seconds and returns a string hh:mm:ss\n", - " '''\n", - " elapsed_rounded = int(round((elapsed)))\n", - " return str(datetime.timedelta(seconds=elapsed_rounded))" + " return results_ok / (results_ok + results_false)" ], "metadata": { "id": "FzUi8908ax61" }, - "execution_count": 23, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "# Init training" - ], - "metadata": { - "id": "ucChBa-9bXJy" - } - }, - { - "cell_type": "code", - "source": [ - "from transformers import get_linear_schedule_with_warmup" - ], - "metadata": { - "id": "c9e7rbGwbdEp" - }, - "execution_count": 24, + "execution_count": 14, "outputs": [] }, { "cell_type": "code", "source": [ - "optimizer = torch.optim.AdamW(model.parameters(),\n", - " lr = 3e-4,\n", - " eps = 1e-8\n", - " )\n", + "if torch.cuda.is_available(): \n", + " device = torch.device(\"cuda\")\n", "\n", - "epochs = 4\n", + " print('There are %d GPU(s) available.' % torch.cuda.device_count())\n", + " print('We will use the GPU:', torch.cuda.get_device_name(0))\n", "\n", - "total_steps = len(train_dataloader) * epochs\n", - "\n", - "scheduler = get_linear_schedule_with_warmup(optimizer, \n", - " num_warmup_steps = 0,\n", - " num_training_steps = total_steps)" - ], - "metadata": { - "id": "A7XUF4PNbYy8" - }, - "execution_count": 25, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "# Training" - ], - "metadata": { - "id": "DAzQWODja0A3" - } - }, - { - "cell_type": "code", - "source": [ - "import random\n", - "import time" - ], - "metadata": { - "id": "Hoa7NlU0bI7G" - }, - "execution_count": 26, - "outputs": [] - }, - { - "cell_type": "code", - "source": [ - "# This training code is based on the `run_glue.py` script here:\n", - "# https://github.com/huggingface/transformers/blob/5bfcd0485ece086ebcbed2d008813037968a9e58/examples/run_glue.py#L128\n", - "\n", - "seed_val = 42\n", - "\n", - "random.seed(seed_val)\n", - "np.random.seed(seed_val)\n", - "torch.manual_seed(seed_val)\n", - "torch.cuda.manual_seed_all(seed_val)\n", - "\n", - "training_stats = []\n", - "total_t0 = time.time()\n", - "\n", - "for epoch_i in range(0, epochs):\n", - " \n", - " # ========================================\n", - " # Training\n", - " # ========================================\n", - "\n", - " print(\"\")\n", - " print('======== Epoch {:} / {:} ========'.format(epoch_i + 1, epochs))\n", - " print('Training...')\n", - "\n", - " t0 = time.time()\n", - "\n", - " total_train_loss = 0\n", - " total_train_acc = 0\n", - "\n", - " model.train()\n", - "\n", - " for step, batch in enumerate(train_dataloader):\n", - " if step % 40 == 0 and not step == 0:\n", - " elapsed = format_time(time.time() - t0)\n", - " print(' Batch {:>5,} of {:>5,}. Elapsed: {:}.'.format(step, len(train_dataloader), elapsed))\n", - "\n", - "\n", - " b_input_ids = batch[0].to(device)\n", - " b_input_mask = batch[1].to(device)\n", - "\n", - " y = batch[2].to(device)\n", - " y_ids = y[:, :-1].contiguous()\n", - " lm_labels = y[:, 1:].clone().detach()\n", - " lm_labels[y[:, 1:] == tokenizer.pad_token_id] = -100\n", - "\n", - " model.zero_grad() \n", - "\n", - " outputs = model(\n", - " input_ids=b_input_ids,\n", - " attention_mask=b_input_mask,\n", - " decoder_input_ids=y_ids,\n", - " labels=lm_labels\n", - " )\n", - "\n", - " generated_ids = model.generate(\n", - " input_ids = b_input_ids,\n", - " attention_mask = b_input_mask, \n", - " max_length=2, \n", - " num_beams=2,\n", - " repetition_penalty=2.5, \n", - " length_penalty=1.0, \n", - " early_stopping=True\n", - " )\n", - "\n", - " preds = [tokenizer.decode(g, skip_special_tokens=True, clean_up_tokenization_spaces=True) for g in generated_ids]\n", - " target = [tokenizer.decode(t, skip_special_tokens=True, clean_up_tokenization_spaces=True) for t in y]\n", - " total_train_acc += calculate_accuracy(preds, target) \n", - "\n", - " loss = outputs['loss']\n", - " total_train_loss += loss.item()\n", - "\n", - " loss.backward()\n", - " torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0)\n", - "\n", - " optimizer.step()\n", - " scheduler.step()\n", - "\n", - " avg_train_loss = total_train_loss / len(train_dataloader) \n", - " avg_train_acc = total_train_acc / len(train_dataloader) \n", - " \n", - " training_time = format_time(time.time() - t0)\n", - "\n", - " print(\"\")\n", - " print(\" Average training loss: {0:.2f}\".format(avg_train_loss))\n", - " print(\" Average training acc: {0:.2f}\".format(avg_train_acc))\n", - " print(\" Training epcoh took: {:}\".format(training_time))\n", - " \n", - " # ========================================\n", - " # Validation\n", - " # ========================================\n", - "\n", - " print(\"\")\n", - " print(\"Running Validation...\")\n", - "\n", - " t0 = time.time()\n", - " model.eval()\n", - "\n", - " total_eval_loss = 0\n", - " total_eval_accuracy = 0\n", - "\n", - " for batch in validation_dataloader:\n", - "\n", - " b_input_ids = batch[0].to(device)\n", - " b_input_mask = batch[1].to(device)\n", - "\n", - " y = batch[2].to(device)\n", - " y_ids = y[:, :-1].contiguous()\n", - " lm_labels = y[:, 1:].clone().detach()\n", - " lm_labels[y[:, 1:] == tokenizer.pad_token_id] = -100\n", - " \n", - " with torch.no_grad(): \n", - "\n", - " outputs = model(\n", - " input_ids=b_input_ids,\n", - " attention_mask=b_input_mask,\n", - " decoder_input_ids=y_ids,\n", - " labels=lm_labels\n", - " )\n", - "\n", - " loss = outputs['loss']\n", - " total_eval_loss += loss.item()\n", - "\n", - " generated_ids = model.generate(\n", - " input_ids = b_input_ids,\n", - " attention_mask = b_input_mask, \n", - " max_length=2, \n", - " num_beams=2,\n", - " repetition_penalty=2.5, \n", - " length_penalty=1.0, \n", - " early_stopping=True\n", - " )\n", - "\n", - " preds = [tokenizer.decode(g, skip_special_tokens=True, clean_up_tokenization_spaces=True) for g in generated_ids]\n", - " target = [tokenizer.decode(t, skip_special_tokens=True, clean_up_tokenization_spaces=True) for t in y]\n", - " total_eval_accuracy += calculate_accuracy(preds, target) \n", - "\n", - " avg_val_loss = total_eval_loss / len(validation_dataloader)\n", - "\n", - " avg_val_accuracy = total_eval_accuracy / len(validation_dataloader)\n", - " print(\" Accuracy: {0:.2f}\".format(avg_val_accuracy))\n", - " \n", - " validation_time = format_time(time.time() - t0)\n", - " print(\" Validation took: {:}\".format(validation_time))\n", - " print(\" Validation Loss: {0:.2f}\".format(avg_val_loss))\n", - "\n", - " training_stats.append(\n", - " {\n", - " 'epoch': epoch_i + 1,\n", - " 'Training Loss': avg_train_loss,\n", - " 'Training Accur.': avg_train_acc,\n", - " 'Valid. Loss': avg_val_loss,\n", - " 'Valid. Accur.': avg_val_accuracy,\n", - " 'Training Time': training_time,\n", - " 'Validation Time': validation_time\n", - " }\n", - " )\n", - "\n", - "print(\"\")\n", - "print(\"Training complete!\")\n", - "\n", - "print(\"Total training took {:} (h:mm:ss)\".format(format_time(time.time()-total_t0)))" + "else:\n", + " print('No GPU available, using the CPU instead.')\n", + " device = torch.device(\"cpu\")" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, - "id": "xsHxfslka1u5", - "outputId": "28c30ee0-6f41-4ede-eb3a-eebd4269c332" + "id": "86i7iRmtW-6L", + "outputId": "109072a9-ff0c-4ac0-fc74-4de30065af95" }, - "execution_count": 27, + "execution_count": 15, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ - "\n", - "======== Epoch 1 / 4 ========\n", - "Training...\n", - " Batch 40 of 515. Elapsed: 0:00:46.\n", - " Batch 80 of 515. Elapsed: 0:01:30.\n", - " Batch 120 of 515. Elapsed: 0:02:14.\n", - " Batch 160 of 515. Elapsed: 0:02:59.\n", - " Batch 200 of 515. Elapsed: 0:03:44.\n", - " Batch 240 of 515. Elapsed: 0:04:28.\n", - " Batch 280 of 515. Elapsed: 0:05:13.\n", - " Batch 320 of 515. Elapsed: 0:05:57.\n", - " Batch 360 of 515. Elapsed: 0:06:42.\n", - " Batch 400 of 515. Elapsed: 0:07:26.\n", - " Batch 440 of 515. Elapsed: 0:08:11.\n", - " Batch 480 of 515. Elapsed: 0:08:55.\n", - "\n", - " Average training loss: 0.01\n", - " Average training acc: 0.59\n", - " Training epcoh took: 0:09:34\n", - "\n", - "Running Validation...\n", - " Accuracy: 0.47\n", - " Validation took: 0:00:31\n", - " Validation Loss: 0.00\n", - "\n", - "======== Epoch 2 / 4 ========\n", - "Training...\n", - " Batch 40 of 515. Elapsed: 0:00:44.\n", - " Batch 80 of 515. Elapsed: 0:01:29.\n", - " Batch 120 of 515. Elapsed: 0:02:13.\n", - " Batch 160 of 515. Elapsed: 0:02:58.\n", - " Batch 200 of 515. Elapsed: 0:03:42.\n", - " Batch 240 of 515. Elapsed: 0:04:27.\n", - " Batch 280 of 515. Elapsed: 0:05:11.\n", - " Batch 320 of 515. Elapsed: 0:05:56.\n", - " Batch 360 of 515. Elapsed: 0:06:40.\n", - " Batch 400 of 515. Elapsed: 0:07:25.\n", - " Batch 440 of 515. Elapsed: 0:08:09.\n", - " Batch 480 of 515. Elapsed: 0:08:54.\n", - "\n", - " Average training loss: 0.00\n", - " Average training acc: 0.59\n", - " Training epcoh took: 0:09:32\n", - "\n", - "Running Validation...\n", - " Accuracy: 0.46\n", - " Validation took: 0:00:31\n", - " Validation Loss: 0.00\n", - "\n", - "======== Epoch 3 / 4 ========\n", - "Training...\n", - " Batch 40 of 515. Elapsed: 0:00:44.\n", - " Batch 80 of 515. Elapsed: 0:01:34.\n", - " Batch 120 of 515. Elapsed: 0:02:20.\n", - " Batch 160 of 515. Elapsed: 0:03:05.\n", - " Batch 200 of 515. Elapsed: 0:03:49.\n", - " Batch 240 of 515. Elapsed: 0:04:34.\n", - " Batch 280 of 515. Elapsed: 0:05:18.\n", - " Batch 320 of 515. Elapsed: 0:06:03.\n", - " Batch 360 of 515. Elapsed: 0:06:47.\n", - " Batch 400 of 515. Elapsed: 0:07:32.\n", - " Batch 440 of 515. Elapsed: 0:08:16.\n", - " Batch 480 of 515. Elapsed: 0:09:00.\n", - "\n", - " Average training loss: 0.00\n", - " Average training acc: 0.59\n", - " Training epcoh took: 0:09:39\n", - "\n", - "Running Validation...\n", - " Accuracy: 0.46\n", - " Validation took: 0:00:31\n", - " Validation Loss: 0.00\n", - "\n", - "======== Epoch 4 / 4 ========\n", - "Training...\n", - " Batch 40 of 515. Elapsed: 0:00:45.\n", - " Batch 80 of 515. Elapsed: 0:01:29.\n", - " Batch 120 of 515. Elapsed: 0:02:14.\n", - " Batch 160 of 515. Elapsed: 0:02:58.\n", - " Batch 200 of 515. Elapsed: 0:03:42.\n", - " Batch 240 of 515. Elapsed: 0:04:27.\n", - " Batch 280 of 515. Elapsed: 0:05:11.\n", - " Batch 320 of 515. Elapsed: 0:05:56.\n", - " Batch 360 of 515. Elapsed: 0:06:40.\n", - " Batch 400 of 515. Elapsed: 0:07:24.\n", - " Batch 440 of 515. Elapsed: 0:08:09.\n", - " Batch 480 of 515. Elapsed: 0:08:53.\n", - "\n", - " Average training loss: 0.00\n", - " Average training acc: 0.58\n", - " Training epcoh took: 0:09:32\n", - "\n", - "Running Validation...\n", - " Accuracy: 0.46\n", - " Validation took: 0:00:31\n", - " Validation Loss: 0.00\n", - "\n", - "Training complete!\n", - "Total training took 0:40:22 (h:mm:ss)\n" + "There are 1 GPU(s) available.\n", + "We will use the GPU: Tesla T4\n" ] } ] @@ -6591,341 +6023,46 @@ { "cell_type": "markdown", "source": [ - "# Train summary" + "# Predykcja" ], "metadata": { - "id": "xIpFPoRb91Or" + "id": "H_YI3bS3VHQE" } }, { "cell_type": "code", "source": [ - "import pandas as pd\n", + "parsed_dataset = parsed_dataset[1:123] + parsed_dataset[124:2000] + parsed_dataset[2001:3002] + parsed_dataset[3003:]\n", + "predictions = []\n", + "expected = []\n", "\n", - "pd.set_option('precision', 2)\n", - "df_stats = pd.DataFrame(data=training_stats)\n", + "for row in parsed_dataset:\n", + " input_text = few_shot_prefix + row['sms'] + \"\\nSpam: \"\n", + " input_ids = tokenizer(input_text, return_tensors=\"pt\").input_ids.to(device)\n", "\n", - "df_stats = df_stats.set_index('epoch')\n", - "df_stats" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 206 - }, - "id": "GjYqBrrO93Oh", - "outputId": "0087ee68-c017-41fd-db84-ca6e0d25fb12" - }, - "execution_count": 28, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - " Training Loss Training Accur. Valid. Loss Valid. Accur. \\\n", - "epoch \n", - "1 5.27e-03 0.59 0.0 0.47 \n", - "2 2.74e-08 0.59 0.0 0.46 \n", - "3 1.58e-08 0.59 0.0 0.46 \n", - "4 1.55e-08 0.58 0.0 0.46 \n", - "\n", - " Training Time Validation Time \n", - "epoch \n", - "1 0:09:34 0:00:31 \n", - "2 0:09:32 0:00:31 \n", - "3 0:09:39 0:00:31 \n", - "4 0:09:32 0:00:31 " - ], - "text/html": [ - "\n", - "
\n", - "
\n", - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Training LossTraining Accur.Valid. LossValid. Accur.Training TimeValidation Time
epoch
15.27e-030.590.00.470:09:340:00:31
22.74e-080.590.00.460:09:320:00:31
31.58e-080.590.00.460:09:390:00:31
41.55e-080.580.00.460:09:320:00:31
\n", - "
\n", - " \n", - " \n", - " \n", - "\n", - " \n", - "
\n", - "
\n", - " " - ] - }, - "metadata": {}, - "execution_count": 28 - } - ] - }, - { - "cell_type": "code", - "source": [ - "import matplotlib.pyplot as plt\n", - "%matplotlib inline\n", + " generated_ids = model.generate(input_ids, do_sample=True, temperature=0.9, max_length=200)\n", + " generated_text = tokenizer.decode(generated_ids[0], skip_special_tokens=True, clean_up_tokenization_spaces=True)\n", + " \n", + " predictions.append(generated_text)\n", + " expected.append(row['label'])\n", "\n", - "import seaborn as sns\n", - "\n", - "sns.set(style='darkgrid')\n", - "\n", - "sns.set(font_scale=1.5)\n", - "plt.rcParams[\"figure.figsize\"] = (12,6)\n", - "\n", - "plt.plot(df_stats['Training Loss'], 'b-o', label=\"Training\")\n", - "plt.plot(df_stats['Valid. Loss'], 'g-o', label=\"Validation\")\n", - "\n", - "plt.title(\"Training & Validation Loss\")\n", - "plt.xlabel(\"Epoch\")\n", - "plt.ylabel(\"Loss\")\n", - "plt.legend()\n", - "plt.xticks([1, 2, 3, 4])\n", - "\n", - "plt.show()" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 427 - }, - "id": "Xk3gzkeU96v3", - "outputId": "aa447af5-09f3-4bc2-e234-8a74bba87c05" - }, - "execution_count": 29, - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": [ - "
" - ], - "image/png": "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yxa9/PLLysnJ0fz5891zCwoK9Mtf/lKFhYUaMWKEOnTooNLSUh04cEDbt29X79693XMvXbqkcePGqVOnTvrNb36jgoICLVu2TNOnT1d6err8/Pxu0p8QAHgPij4AwGOvv/66Xn/99Wrj/fv315tvvun+OScnR2vWrFH79u0lSePGjdMTTzyhtWvXavTo0ercubMk6S9/+YscDodWrVqluLg499xZs2YpPT1djzzyiHr27ClJeu6553TmzBktWrRI99xzT5XrO53OKj+fP39ekydP1tSpU91jTZs21bx587R9+/Zq6wHAF1H0AQAeGz16tJKTk6uNN23atMrPvXr1cpd8STKZTJoyZYo+/fRTffLJJ+rcubMKCwu1b98+3Xfffe6SXzn3V7/6lTZs2KBPPvlEPXv2lN1u17///W/dc889NZb0qz8MbDabq90l6O6775YkHT16lKIPoEGg6AMAPBYdHa1evXr96Lx27dpVG7vjjjskScePH5f0/VGcH47/UNu2bWU2m91zjx07JpfLpYSEBI9yRkZGKjAwsMpYWFiYJMlut3v0HABQ3/FhXACAz7nWGXyXy1WHSQDAOBR9AMANl5eXV23s0KFDkqSoqChJ0u23315l/IcOHz4sp9PpntuqVSuZTCZlZ2ffrMgA4HMo+gCAG2779u365ptv3D+7XC4tWrRIkjRo0CBJUkREhLp06aItW7bo4MGDVeb+61//kiTdd999kr4/dtO3b19t3bpV27dvr3Y93qUHgOo4ow8A8FhWVpbS0tJqfKyywEtSXFycHnvsMY0dO1ZWq1WbNm3S9u3bNWLECHXp0sU9b86cOUpNTdXYsWM1ZswYWa1WbdmyRV988YVSUlLcd9yRpGeffVZZWVmaOnWqHnzwQbVv317l5eU6cOCAbrvtNv3nf/7nzXvhAFAPUfQBAB5LT09Xenp6jY99/PHH7rPxAwYMUJs2bfTmm28qPz9fERERmj59uqZPn15lTWJiolatWqW///3vWrlypS5duqSoqCjNnj1bkyZNqjI3KipK7777rv7xj39o69atSktL0y233KK4uDiNHj365rxgAKjHTC5+3wkAuEEKCgo0cOBAPfHEE3ryySeNjgMADRpn9AEAAAAfRNEHAAAAfBBFHwAAAPBBnNEHAAAAfBDv6AMAAAA+iKIPAAAA+CCKPgAAAOCDKPoAAACAD6LoAwAAAD6Iog8AAAD4oP8PNVsOiJSeSu0AAAAASUVORK5CYII=\n" - }, - "metadata": {} - } - ] - }, - { - "cell_type": "markdown", - "source": [ - "# Create test loader" - ], - "metadata": { - "id": "UJlKxl0r-W-m" - } - }, - { - "cell_type": "code", - "source": [ - "prediction_dataloader = DataLoader(\n", - " test_dataset,\n", - " sampler = SequentialSampler(test_dataset),\n", - " batch_size = batch_size\n", - " )" - ], - "metadata": { - "id": "eQGsEEDh-YxG" - }, - "execution_count": 30, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "# Evaluate on test dataset" - ], - "metadata": { - "id": "gHSDNWvA-aq9" - } - }, - { - "cell_type": "code", - "source": [ - "print('Predicting labels for {:,} test sentences...'.format(len(test_dataset)))\n", - "\n", - "model.eval()\n", - "predictions , true_labels = [], []\n", - "\n", - "for batch in prediction_dataloader:\n", - "\n", - " b_input_ids = batch[0].to(device)\n", - " b_input_mask = batch[1].to(device)\n", - " y = batch[2].to(device)\n", - " \n", - " with torch.no_grad(): \n", - "\n", - " generated_ids = model.generate(\n", - " input_ids = b_input_ids,\n", - " attention_mask = b_input_mask, \n", - " max_length=2, \n", - " num_beams=2,\n", - " repetition_penalty=2.5, \n", - " length_penalty=1.0, \n", - " early_stopping=True\n", - " )\n", - " \n", - " preds = [tokenizer.decode(g, skip_special_tokens=True, clean_up_tokenization_spaces=True) for g in generated_ids]\n", - " target = [tokenizer.decode(t, skip_special_tokens=True, clean_up_tokenization_spaces=True) for t in y]\n", - "\n", - " predictions.append(preds)\n", - " true_labels.append(target)\n", - "\n", - "print(' DONE.')" + "acc = calculate_accuracy(predictions, expected)\n", + "print(acc)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, - "id": "OPcQkHnJ-c9A", - "outputId": "768230ca-117a-423c-9e5d-058a63fa8838" + "id": "vunLGuBGVGmh", + "outputId": "07945f48-6cf3-4762-a91a-df68ec0d599b" }, - "execution_count": 31, + "execution_count": 16, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ - "Predicting labels for 1,000 test sentences...\n", - " DONE.\n" + "0.4601436265709156\n" ] } ] @@ -6933,54 +6070,22 @@ { "cell_type": "code", "source": [ - "results_ok = 0\n", - "results_false = 0\n", - "for idx, true_labels_batch in enumerate(true_labels):\n", - " for bidx, true_label in enumerate(true_labels_batch):\n", - " if true_label == predictions[idx][bidx]:\n", - " results_ok += 1\n", - " else:\n", - " results_false += 1\n", - "\n", - "print(\"Correct predictions: {}, incorrect results: {}, accuracy: {}\".format(results_ok, results_false, float(results_ok) / (results_ok + results_false)))" + "print(\"Sample prediction: {}, expected: {}\".format(predictions[101], expected[101]))" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, - "id": "ifz56jYW-zBN", - "outputId": "0d8585e1-c0d7-4cca-a0d9-2f1c0f3dd1a9" + "id": "20WbYZmLaDl7", + "outputId": "6a5eb397-39ed-4095-8640-d76b6cdab520" }, - "execution_count": 32, + "execution_count": 18, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ - "Correct predictions: 431, incorrect results: 569, accuracy: 0.431\n" - ] - } - ] - }, - { - "cell_type": "code", - "source": [ - "print(\"Sample prediction: {}, expected: {}\".format(predictions[2][0], true_labels[2][0]))" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "1LqVo4wW-2g-", - "outputId": "f777b5ba-8c10-466b-c9be-d61382478d77" - }, - "execution_count": null, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Sample prediction: I, expected: true\n" + "Sample prediction: False, expected: False\n" ] } ] @@ -6999,87 +6104,25 @@ "source": [ "from sklearn.metrics import matthews_corrcoef\n", "\n", - "matthews_set = []\n", "print('Calculating Matthews Corr. Coef. for each batch...')\n", - "\n", - "for i in range(len(true_labels)):\n", - " matthews = matthews_corrcoef(true_labels[i], predictions[i]) \n", - " matthews_set.append(matthews)" + "matthews = matthews_corrcoef(expected, predictions) \n", + "print('Total MCC: %.3f' % matthews)" ], "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, "id": "hPEPpXXX_DXR", - "outputId": "215f4970-5e0d-4477-cf5b-95ec1b27317f" - }, - "execution_count": 33, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Calculating Matthews Corr. Coef. for each batch...\n" - ] - } - ] - }, - { - "cell_type": "code", - "source": [ - "ax = sns.barplot(x=list(range(len(matthews_set))), y=matthews_set, ci=None)\n", - "\n", - "plt.title('MCC Score per Batch')\n", - "plt.ylabel('MCC Score (-1 to +1)')\n", - "plt.xlabel('Batch #')\n", - "\n", - "plt.show()" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 427 - }, - "id": "qjtAYcme_EyM", - "outputId": "00d36441-d6fb-4398-dad1-dfed14b8c7e6" - }, - "execution_count": 34, - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": [ - "
" - ], - "image/png": "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uHXrFo4cOYLp06dbLloiIiIiIqoWo78A5OXloVGjRjp1P//8M0QikV5i0LNnT1y/ft38ERIRERERkdkYTQBcXFygVqt16n755RcAQNu2bXXqvb29oVKpzBweERERERGZk9EEwM/PDxkZGdpyWVkZzp49i4CAAHh5eem0VSgU8PHxsUyURERERERkFkbXAISGhmLlypVo164dunTpgqSkJOTl5SEyMlKvbWZmJho2bGixQImIiIiIqPqMJgAxMTFITU3F/PnzATx6AlCDBg0wYcIEnXaFhYX4/vvvERsba7FAybAylQr13nxPp0zWpVaVImpCml6dWOJaI+dXqZWIiz6oV0fWpVSr8O3w/9MpExGR4yhTPYTv9GE6ZWfJM2/JVS1Gz+rh4YGkpCTs3LkT169fh7+/P0aMGIHatWvrtMvOzkZERAQGDRpk0WBJX15BKYBSa4dBT1AUqADof7iTyWomAShQqAGoK21HNatQUYpC/q0SETmsvIIHenUymacVIjFhJ2APDw9MnDjRaJu2bdvqLQomIiIiIiLbY3QRMBERERERPV+YABARERERORAmAEREREREDoQJABERERGRA2ECQERERETkQJgAEBERERE5EKMJQFlZGRYvXoxt27YZHWTr1q34/PPPIQiCWYMjIiIiIiLzMpoAfPPNN1i3bh2Cg4ONDhISEoK1a9di3759Zg2OiIiIiIjMy2gCcODAAXTr1g2tW7c2Okjr1q3RvXt37N+/36zBERERERGReRlNAH799Vd07drVpIE6d+6M8+fPmyUoIiIiIiKyDKMJQEFBAerWrWvSQHXq1IFCoTBLUEREREREZBlGEwB3d3fk5+ebNJBCoYC7u7tZgiIiIiIiIsswmgA0bdoUR48eNWmgo0ePomnTpmYJioiIiIiILMNoAtCvXz8cO3YM6enpRgc5cuQIjh07htDQULMGR0RERERE5mU0ARg9ejT8/f3x9ttv44svvkBOTo7O8ZycHHzxxRd4++238dJLL2H06NEWDZaIiIiIiKrHxdhBqVSKNWvWYOrUqVi9ejXWrFkDDw8PuLu7o7i4GEVFRRAEAY0bN8bq1avh6upaI0Hfv38fn376KQ4fPgylUomQkBDMnTsXLVq0qNI4ZWVlGDZsGC5fvoy5c+ciNjbWMgETEREREdkIowkAAAQEBCA1NRU7d+7EwYMH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\n" - }, - "metadata": {} - } - ] - }, - { - "cell_type": "code", - "source": [ - "flat_predictions = np.concatenate(predictions, axis=0)\n", - "flat_true_labels = np.concatenate(true_labels, axis=0)\n", - "\n", - "mcc = matthews_corrcoef(flat_true_labels, flat_predictions)\n", - "print('Total MCC: %.3f' % mcc)" - ], - "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, - "id": "rkonN244_HPz", - "outputId": "cbf3d43c-f453-4146-ee38-58e45475aeb2" + "outputId": "9e0a324e-b880-4591-9243-dfb45ecb21cd" }, - "execution_count": 35, + "execution_count": 22, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ - "Total MCC: -0.033\n" + "Calculating Matthews Corr. Coef. for each batch...\n", + "Total MCC: -0.001\n" ] } ] @@ -7108,13 +6151,13 @@ "tokenizer.save_pretrained(output_dir)" ], "metadata": { + "id": "avafCMoS_KDF", "colab": { "base_uri": "https://localhost:8080/" }, - "id": "avafCMoS_KDF", - "outputId": "c1148369-1c8e-4448-de94-af6ea058c171" + "outputId": "16223c2c-299d-4059-8d6f-3ec2637f1185" }, - "execution_count": 36, + "execution_count": 23, "outputs": [ { "output_type": "stream", @@ -7136,7 +6179,7 @@ ] }, "metadata": {}, - "execution_count": 36 + "execution_count": 23 } ] }, diff --git a/projekt/README.md b/projekt/README.md index 40b2554..1b9156f 100644 --- a/projekt/README.md +++ b/projekt/README.md @@ -1,16 +1,19 @@ # Projekt Wykrywanie czy podany SMS to spam - klasyfikacja. + ## Zbiór danych -Wykorzystaliśmy zbiór danych [sms spam](https://huggingface.co/datasets/sms_spam). Dataset posiada tylko zbiór treningowy dlatego w trakcie uczenia modeli podzielilśmy go losowo na 3 podzbiory: +Wykorzystaliśmy zbiór danych [sms spam](https://huggingface.co/datasets/sms_spam). Dataset posiada tylko zbiór treningowy dlatego w trakcie uczenia modeli podzielilśmy go losowo na 3 podzbiory (wyjątek few-shot learning): - zbiór testowy 1 000 przykładów - zbiór treningowy 4 116 przykładów - zbiór walidacyjny 458 przykładów + ## Ewaluacja Ewaluacja modeli występuje po etapie trenowania na zbiorze testowym. Metryki: - accuracy 0-100% -- Matthews’s correlation coefficient - w skrócie accuracy, tylko bierze pod uwagę zbalansowanie zbioru, wyniki: -1 przeciwne predykcje, 0 losowe, 1 100% dokładności. +- Matthews’s correlation coefficient - w skrócie accuracy, tylko bierze pod uwagę zbalansowanie zbioru, wyniki: -1 przeciwne predykcje, 0 losowe, 1 idealna predykcja. + ## Rozwiązania Wykorzystaliśmy 4 modele - BERT, GPT2, T5 oraz FLAN-T5 @@ -48,26 +51,49 @@ Najważniejsze cechy: - wytrenowany model t5-base - typ modelu transformers.T5ForConditionalGeneration - input modelu - 'binary classification: ' + treść smsa -- output modelu - tekstowo '1' lub '0' +- output modelu - tekstowo '0' lub '1' - finetuning na zbiorze treningowym - adamW optimizer - learning rate 3e-4 - 16 batch size - 4 epoch -- Accuracy: 74% -- MCC: 0.190 +- Accuracy: 87% +- MCC: 0.042 +- Ciekawostka - accuracy bez finetuningu to 30% (dla klas wyjściowych True False) -### Zero-shot Transformer Encoder-Decoder - FLAN-T5 +### Few-shot Transformer Encoder-Decoder - FLAN-T5 Najważniejsze cechy: - wytrenowany model google/flan-t5-base - typ modelu transformers.AutoModelForSeq2SeqLM -- input modelu - Opis zadania + treść smsa - - Przykład: "Answer the question in one word - true if provided text is spam or false, if provided text is not spam. \nQ: Is this text spam? \nText: treść smsa \nA:" -- output modelu - tekstowo klasa 1 'true' lub klasa 2 'false' -- finetuning na zbiorze treningowym - - adamW optimizer - - learning rate 3e-4 - - 8 batch size - - 4 epoch -- Accauracy: 43% -- MCC: -0.033 \ No newline at end of file +- input modelu - 4 przykłady + docelowy sms + ``` + SMS: Go until jurong point, crazy.. Available only in bugis n great world la e buffet... Cine there got amore wat... + Spam: False + + SMS: Todays Voda numbers ending 7548 are selected to receive a $350 award. If you have a match please call 08712300220 quoting claim code 4041 standard rates app + Spam: True + + SMS: LMAO where's your fish memory when I need it? + Spam: False + + SMS: This message is free. Welcome to the new & improved Sex & Dogging club! To unsubscribe from this service reply STOP. msgs@150p 18+only + Spam: True + + SMS: treść docelowego smsa + Spam: + ``` +- output modelu - tekstowo 'True' lub 'False' +- Ewaluacja na całym zbiorze bez 4 przykładów +- Accauracy: 46% +- MCC: -0.001 + + +## Wnioski + +### BERT oraz GPT2 +Dzięki głowie modelu, która jest przeznaczona specjalnie do zadania klasyfikacji tekstu, modele osiągnęły prawie perfekcyjny wynik accuracy i MCC. Dalsze modyfikacje są zbędne, ponieważ nie poprawiłby znacząco rezultatów. + +### T5 oraz FLAN-T5 +Modele T5 oraz FLAN-T5 to modele text-2-text, których głównym celem jest multizadaniowość. Nie są zoptymalizowane do zadania klasyfikacji, ale mimo to osiągnęły dobry wynik. W modelu T5 bardzo ważne jest określnie zadania w prefixie inputu, które będzie wykonywał model. Testowaliśmy różne kombinacje - brak prefixu, dokładny opis zadania, różne klasy wyjściowe, ale najlepsze rezultaty uzyskał prefix 'binary classification: ' z klasami wyjściowymi '0' lub '1'. Niski MCC świadczy o niezbalansowaniu predykcji. +

+FLAN-T5 to zoptymalizowany model T5. Został dodatkowo finetunowany na większym zbiorze danych. Przy uczeniu FLAN-T5 zastosowaliśmy metodę few-shot learning. Model mimo bardzo małej ilości przykładów osiągnął accuracy na poziomie 46%, jednak wynik MCC wskazuje na duże niezbalansowanie i losowe predykcje. Jest to jednak bardzo ciekawe, że wykorzystując tylko 4 przykady do uczenia, model może odpowiadać z pasującymi wynikami (niekoniecznie prawdziwymi). \ No newline at end of file diff --git a/projekt/T5_sms_spam.ipynb b/projekt/T5_sms_spam.ipynb index cc354b3..50c41db 100644 --- a/projekt/T5_sms_spam.ipynb +++ b/projekt/T5_sms_spam.ipynb @@ -1,3453 +1,13 @@ { - "nbformat": 4, - "nbformat_minor": 0, - "metadata": { - "colab": { - "provenance": [] - }, - "kernelspec": { - "name": "python3", - "display_name": "Python 3" - }, - "language_info": { - "name": "python" - }, - "gpuClass": "standard", - "accelerator": "GPU", - "widgets": { - "application/vnd.jupyter.widget-state+json": { - "137fa30b14f34f57a0beb8a6c6e60cf5": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HBoxModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_755a0a2d6a154feab203d06a6daf9848", - "IPY_MODEL_c0c63e8ee5e84757a66dc953b11116d7", - "IPY_MODEL_cf211c4bc94c47e2a9b752d4a9890271" - ], - "layout": "IPY_MODEL_070471ec9b8d4523be8e8779c87e7d9e" - } - }, - "755a0a2d6a154feab203d06a6daf9848": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_c22bd9c427b34a7dad89b1293da20e65", - "placeholder": "​", - "style": "IPY_MODEL_39348508617043c8a3cbec645ef49331", - "value": "Downloading builder script: 100%" - } - }, - "c0c63e8ee5e84757a66dc953b11116d7": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatProgressModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "FloatProgressModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "ProgressView", - "bar_style": "success", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_d1f02d9191c6458a9fc42f5ebb2d5961", - "max": 3208, - "min": 0, - "orientation": "horizontal", - "style": "IPY_MODEL_11b4792c447c4b56acbdc5b3f7427c54", - "value": 3208 - } - }, - "cf211c4bc94c47e2a9b752d4a9890271": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_633950f724a8490b9425bb2fa2e4e84a", - "placeholder": "​", - "style": "IPY_MODEL_fe588dfbdc0f4fabaf54a1c3e02c0be3", - "value": " 3.21k/3.21k [00:00<00:00, 67.3kB/s]" - } - }, - "070471ec9b8d4523be8e8779c87e7d9e": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "c22bd9c427b34a7dad89b1293da20e65": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "39348508617043c8a3cbec645ef49331": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "d1f02d9191c6458a9fc42f5ebb2d5961": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "11b4792c447c4b56acbdc5b3f7427c54": { - "model_module": "@jupyter-widgets/controls", - "model_name": "ProgressStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "ProgressStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "bar_color": null, - "description_width": "" - } - }, - "633950f724a8490b9425bb2fa2e4e84a": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "fe588dfbdc0f4fabaf54a1c3e02c0be3": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "47463520a286401ba3d5d29fce07ede5": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HBoxModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_f26179b81ddd477588764f8262560e2f", - "IPY_MODEL_5d6c567d1f2a430c9632cf063572c8de", - "IPY_MODEL_25f45b49e5f643ee994fbb5998807676" - ], - "layout": "IPY_MODEL_6030ad10c42c4993ac7d6610c8f0d77f" - } - }, - "f26179b81ddd477588764f8262560e2f": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_945360806d6445418fd779166c114994", - "placeholder": "​", - "style": "IPY_MODEL_d24b647f4a1542e5a4ebfa59bcf2bb2b", - "value": "Downloading metadata: 100%" - } - }, - "5d6c567d1f2a430c9632cf063572c8de": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatProgressModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "FloatProgressModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "ProgressView", - "bar_style": "success", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_1bc411a48f1c4f849351440d4e9c646f", - "max": 1687, - "min": 0, - "orientation": "horizontal", - "style": "IPY_MODEL_dd1c430002dd4fd6a08cb5b576bf0290", - "value": 1687 - } - }, - "25f45b49e5f643ee994fbb5998807676": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_2d551e5c6a4548ae82c34d827f919d18", - "placeholder": "​", - "style": "IPY_MODEL_02cb3347a1be49bf8808e95a45a34801", - "value": " 1.69k/1.69k [00:00<00:00, 36.1kB/s]" - } - }, - "6030ad10c42c4993ac7d6610c8f0d77f": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "945360806d6445418fd779166c114994": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "d24b647f4a1542e5a4ebfa59bcf2bb2b": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "1bc411a48f1c4f849351440d4e9c646f": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "dd1c430002dd4fd6a08cb5b576bf0290": { - "model_module": "@jupyter-widgets/controls", - "model_name": "ProgressStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "ProgressStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "bar_color": null, - "description_width": "" - } - }, - "2d551e5c6a4548ae82c34d827f919d18": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "02cb3347a1be49bf8808e95a45a34801": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "0926a24353a94b82a8e405ec72bef775": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HBoxModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_7e44b8cbc06f4d3bb5f073fad6a0b151", - "IPY_MODEL_bcca70a24e7d4a5b9b2a98cebc5c5eda", - "IPY_MODEL_0d26ce82d9f1424dbe8d08ce7b7e5b0b" - ], - "layout": "IPY_MODEL_9bdccfd08b814f4fb1f53c5a8a0bded0" - } - }, - "7e44b8cbc06f4d3bb5f073fad6a0b151": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_3977c23fd48348b1b3855c3cc0db6827", - "placeholder": "​", - "style": "IPY_MODEL_2573a6dce3d94ca79cadee9a793d9e91", - "value": "Downloading readme: 100%" - } - }, - "bcca70a24e7d4a5b9b2a98cebc5c5eda": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatProgressModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "FloatProgressModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "ProgressView", - "bar_style": "success", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_f01fad907cf742f6aae936051f36579d", - "max": 4872, - "min": 0, - "orientation": "horizontal", - "style": "IPY_MODEL_86661cdb45b44daeaf1581ca1b8d4cc6", - "value": 4872 - } - }, - "0d26ce82d9f1424dbe8d08ce7b7e5b0b": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_04f96b4447a547b8ba8ff13b9bbedc04", - "placeholder": "​", - "style": "IPY_MODEL_dbdeaaff21924caca89dc32b633f80da", - "value": " 4.87k/4.87k [00:00<00:00, 157kB/s]" - } - }, - "9bdccfd08b814f4fb1f53c5a8a0bded0": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "3977c23fd48348b1b3855c3cc0db6827": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "2573a6dce3d94ca79cadee9a793d9e91": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "f01fad907cf742f6aae936051f36579d": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "86661cdb45b44daeaf1581ca1b8d4cc6": { - "model_module": "@jupyter-widgets/controls", - "model_name": "ProgressStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "ProgressStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "bar_color": null, - "description_width": "" - } - }, - "04f96b4447a547b8ba8ff13b9bbedc04": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "dbdeaaff21924caca89dc32b633f80da": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "320ba3e1e74541288c307eedbd5e2754": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HBoxModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_e9675016075e4ec89c891033452ec11c", - "IPY_MODEL_305a6be9c48c4381983307f584c5c6c8", - "IPY_MODEL_cbfc39d75c494de284e2b8a3c95e6057" - ], - "layout": "IPY_MODEL_6bc6798a84944c9e8dad7391d1baa997" - } - }, - "e9675016075e4ec89c891033452ec11c": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_86c211b9dac34fd0ad51d81385d59fd8", - "placeholder": "​", - "style": "IPY_MODEL_21df98aa3cdc403f91acd1c21f4b4e9d", - "value": "Downloading data: 100%" - } - }, - "305a6be9c48c4381983307f584c5c6c8": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatProgressModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "FloatProgressModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "ProgressView", - "bar_style": "success", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_eeb508fdb9064c09b8152b800fe61214", - "max": 203415, - "min": 0, - "orientation": "horizontal", - "style": "IPY_MODEL_ce0d0132b7904f1794037e81880a563a", - "value": 203415 - } - }, - "cbfc39d75c494de284e2b8a3c95e6057": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_113ab2100a894a16b74040611824c91d", - "placeholder": "​", - "style": "IPY_MODEL_834964317e404dd5a9a28c63a58ce6c9", - "value": " 203k/203k [00:00<00:00, 1.05MB/s]" - } - }, - "6bc6798a84944c9e8dad7391d1baa997": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "86c211b9dac34fd0ad51d81385d59fd8": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "21df98aa3cdc403f91acd1c21f4b4e9d": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "eeb508fdb9064c09b8152b800fe61214": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "ce0d0132b7904f1794037e81880a563a": { - "model_module": "@jupyter-widgets/controls", - "model_name": "ProgressStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "ProgressStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "bar_color": null, - "description_width": "" - } - }, - "113ab2100a894a16b74040611824c91d": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "834964317e404dd5a9a28c63a58ce6c9": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "a950c7427a174b22abdd17fb7710ece7": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HBoxModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_b72789fe47914768ba2808926ad54c86", - "IPY_MODEL_327a1bc8f6c644d6b3168f708a2c6876", - "IPY_MODEL_5f8f6e108647479eb92fb44ec1916d0d" - ], - "layout": "IPY_MODEL_7fa6a321dd3a4e198451da879be60a9b" - } - }, - "b72789fe47914768ba2808926ad54c86": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_b179785454d8400fb495f810ae2aede2", - "placeholder": "​", - "style": "IPY_MODEL_2b16bccddc0e4be78d83cc012c2224e9", - "value": "Generating train split: 96%" - } - }, - "327a1bc8f6c644d6b3168f708a2c6876": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatProgressModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "FloatProgressModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "ProgressView", - "bar_style": "", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_6d601c96a62c46ff96cbc4fd8e0fbbb6", - "max": 5574, - "min": 0, - "orientation": "horizontal", - "style": "IPY_MODEL_498224e7a7b54c56ba45261a1b39c1c3", - "value": 5574 - } - }, - "5f8f6e108647479eb92fb44ec1916d0d": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_e9319122f48e43a5b15ef55823347507", - "placeholder": "​", - "style": "IPY_MODEL_7ea7ab8cba484142b5a3d8019e9c9c84", - "value": " 5359/5574 [00:00<00:00, 11295.24 examples/s]" - } - }, - "7fa6a321dd3a4e198451da879be60a9b": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": "hidden", - "width": null - } - }, - "b179785454d8400fb495f810ae2aede2": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "2b16bccddc0e4be78d83cc012c2224e9": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "6d601c96a62c46ff96cbc4fd8e0fbbb6": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "498224e7a7b54c56ba45261a1b39c1c3": { - "model_module": "@jupyter-widgets/controls", - "model_name": "ProgressStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "ProgressStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "bar_color": null, - "description_width": "" - } - }, - "e9319122f48e43a5b15ef55823347507": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "7ea7ab8cba484142b5a3d8019e9c9c84": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "fddd4ee4bc054b0f90ed88018fc3e3a0": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HBoxModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_55b5df3163a34561a4a5ba27efada434", - "IPY_MODEL_2823c1041e914dd8887498410baaab43", - "IPY_MODEL_fba57e030f624bbab5b51b65d7d36722" - ], - "layout": "IPY_MODEL_86fa9ce6cd9b4ec9af6d24d943aac75b" - } - }, - "55b5df3163a34561a4a5ba27efada434": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_97a0725bbb044103911e1e29bb07360e", - "placeholder": "​", - "style": "IPY_MODEL_1cf99cee3c374e30abd95c03e9696bbe", - "value": "100%" - } - }, - "2823c1041e914dd8887498410baaab43": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatProgressModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "FloatProgressModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "ProgressView", - "bar_style": "success", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_d17a7d096d964a41a7ee183f5028c037", - "max": 1, - "min": 0, - "orientation": "horizontal", - "style": "IPY_MODEL_c6a51ab4f16649c0899bbfd14fdc9cb8", - "value": 1 - } - }, - "fba57e030f624bbab5b51b65d7d36722": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_876c522f96a64809a82d316f4afa1bae", - "placeholder": "​", - "style": "IPY_MODEL_1c38d46a00224aa791cad25fdd4d33e2", - "value": " 1/1 [00:00<00:00, 24.93it/s]" - } - }, - "86fa9ce6cd9b4ec9af6d24d943aac75b": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "97a0725bbb044103911e1e29bb07360e": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "1cf99cee3c374e30abd95c03e9696bbe": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "d17a7d096d964a41a7ee183f5028c037": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "c6a51ab4f16649c0899bbfd14fdc9cb8": { - "model_module": "@jupyter-widgets/controls", - "model_name": "ProgressStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "ProgressStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "bar_color": null, - "description_width": "" - } - }, - "876c522f96a64809a82d316f4afa1bae": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "1c38d46a00224aa791cad25fdd4d33e2": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "6e2b903343ad49c89339a38a1c626619": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HBoxModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_b1e96f5c00d048c69c1c0fadeb31dcd9", - "IPY_MODEL_ec994f6daafb4ef8a08371f2394918dd", - "IPY_MODEL_699d9f4479854372ada35ab38fe80352" - ], - "layout": "IPY_MODEL_cb36ca390eac4c76ad8cfbcbdb5b6950" - } - }, - "b1e96f5c00d048c69c1c0fadeb31dcd9": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_5ffe2a0b8e3342a9b764fbbdf1395f1c", - "placeholder": "​", - "style": "IPY_MODEL_ea92e7a968d4479e842c368ece4b60c1", - "value": "Downloading (…)ve/main/spiece.model: 100%" - } - }, - "ec994f6daafb4ef8a08371f2394918dd": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatProgressModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "FloatProgressModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "ProgressView", - "bar_style": "success", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_95a4496f03414cf8a8d7cf5e6cc3f37b", - "max": 791656, - "min": 0, - "orientation": "horizontal", - "style": "IPY_MODEL_7b1d15df592048fe8a8c043e7a8461ad", - "value": 791656 - } - }, - "699d9f4479854372ada35ab38fe80352": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_cc73442788a3462a8d5d53c9c799df7a", - "placeholder": "​", - "style": "IPY_MODEL_ee75218b2c4047fdb265df7a54feea78", - "value": " 792k/792k [00:00<00:00, 2.55MB/s]" - } - }, - "cb36ca390eac4c76ad8cfbcbdb5b6950": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "5ffe2a0b8e3342a9b764fbbdf1395f1c": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "ea92e7a968d4479e842c368ece4b60c1": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "95a4496f03414cf8a8d7cf5e6cc3f37b": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "7b1d15df592048fe8a8c043e7a8461ad": { - "model_module": "@jupyter-widgets/controls", - "model_name": "ProgressStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "ProgressStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "bar_color": null, - "description_width": "" - } - }, - "cc73442788a3462a8d5d53c9c799df7a": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "ee75218b2c4047fdb265df7a54feea78": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "e720c7e5ef0849918eb6e7123673c95e": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HBoxModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_8b2ff14cab9941388b547140d06e1dd5", - "IPY_MODEL_0eb67bf20ecf4cc0b5f3bd0589440e6b", - "IPY_MODEL_4e976d7959e640f4b098d9a02320f228" - ], - "layout": "IPY_MODEL_48de3465dc194fff9903fd3813aae91a" - } - }, - "8b2ff14cab9941388b547140d06e1dd5": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_29558f7cc7574024879d274548ac4cd7", - "placeholder": "​", - "style": "IPY_MODEL_ce5531904574465d84d65365b0fc2951", - "value": "Downloading (…)lve/main/config.json: 100%" - } - }, - "0eb67bf20ecf4cc0b5f3bd0589440e6b": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatProgressModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "FloatProgressModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "ProgressView", - "bar_style": "success", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_10cc03c556cf4fb791697277b3deef35", - "max": 1208, - "min": 0, - "orientation": "horizontal", - "style": "IPY_MODEL_2113acabfb014e7ab55d099d28845914", - "value": 1208 - } - }, - "4e976d7959e640f4b098d9a02320f228": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_504b320daae543b78b8777cebbe65dea", - "placeholder": "​", - "style": "IPY_MODEL_5ea6f5fa80184fe58ef86a536ec0f8f0", - "value": " 1.21k/1.21k [00:00<00:00, 41.1kB/s]" - } - }, - "48de3465dc194fff9903fd3813aae91a": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "29558f7cc7574024879d274548ac4cd7": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "ce5531904574465d84d65365b0fc2951": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "10cc03c556cf4fb791697277b3deef35": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "2113acabfb014e7ab55d099d28845914": { - "model_module": "@jupyter-widgets/controls", - "model_name": "ProgressStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "ProgressStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "bar_color": null, - "description_width": "" - } - }, - "504b320daae543b78b8777cebbe65dea": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "5ea6f5fa80184fe58ef86a536ec0f8f0": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "b1d7a5cf900b48408e515baa4c66a1cd": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HBoxModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_6846a2acd95b45a3a0e2cb79f552f0c0", - "IPY_MODEL_fce901d34cc34feeb92854999e98c0f9", - "IPY_MODEL_5a89ce40643247fda326742531912a01" - ], - "layout": "IPY_MODEL_bcc7a0cd035e485680b41e7c4a78b8f8" - } - }, - "6846a2acd95b45a3a0e2cb79f552f0c0": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_bd0a578fefb44fb4b2662d59fd2ff12e", - "placeholder": "​", - "style": "IPY_MODEL_6585bd6115c047fd881c0bfd323142f0", - "value": "Downloading (…)"pytorch_model.bin";: 100%" - } - }, - "fce901d34cc34feeb92854999e98c0f9": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatProgressModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "FloatProgressModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "ProgressView", - "bar_style": "success", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_dbc7f7aa90174ff68b5cc829a6fd8690", - "max": 891691430, - "min": 0, - "orientation": "horizontal", - "style": "IPY_MODEL_ca3a8e4611c6422380351b947882876a", - "value": 891691430 - } - }, - "5a89ce40643247fda326742531912a01": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_2470365762844b62a09dc6fa818c4a09", - "placeholder": "​", - "style": "IPY_MODEL_3f2489ce0ae941a1a720c60a3052ee70", - "value": " 892M/892M [00:03<00:00, 274MB/s]" - } - }, - "bcc7a0cd035e485680b41e7c4a78b8f8": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "bd0a578fefb44fb4b2662d59fd2ff12e": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "6585bd6115c047fd881c0bfd323142f0": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "dbc7f7aa90174ff68b5cc829a6fd8690": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "ca3a8e4611c6422380351b947882876a": { - "model_module": "@jupyter-widgets/controls", - "model_name": "ProgressStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "ProgressStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "bar_color": null, - "description_width": "" - } - }, - "2470365762844b62a09dc6fa818c4a09": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "3f2489ce0ae941a1a720c60a3052ee70": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "0795a8385c68409fb5539b9ea6756a47": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HBoxModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_05dfc6dc9f78483da34b2c6513315e7d", - "IPY_MODEL_5cfe28a638cb42fc914dc81eb02a46f4", - "IPY_MODEL_d061dcb2f3e840ec9ba6a6ec4d972619" - ], - "layout": "IPY_MODEL_df418dee3efd4da8aa57ca0044190b2e" - } - }, - "05dfc6dc9f78483da34b2c6513315e7d": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_9d3d394c756d4eabb0f3fd66ba8ef05a", - "placeholder": "​", - "style": "IPY_MODEL_00612595fa42467a83aa6e4b55343339", - "value": "Downloading (…)neration_config.json: 100%" - } - }, - "5cfe28a638cb42fc914dc81eb02a46f4": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatProgressModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "FloatProgressModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "ProgressView", - "bar_style": "success", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_33521be9887b4c368915b4f8f2438440", - "max": 147, - "min": 0, - "orientation": "horizontal", - "style": "IPY_MODEL_990a862f07894fa9b9f08d3bb7e082ca", - "value": 147 - } - }, - "d061dcb2f3e840ec9ba6a6ec4d972619": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_1b793ae9c46740bdbbec5e617a899683", - "placeholder": "​", - "style": "IPY_MODEL_cbfde7f5f0204417abdced523c5621e9", - "value": " 147/147 [00:00<00:00, 5.72kB/s]" - } - }, - "df418dee3efd4da8aa57ca0044190b2e": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "9d3d394c756d4eabb0f3fd66ba8ef05a": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "00612595fa42467a83aa6e4b55343339": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "33521be9887b4c368915b4f8f2438440": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "990a862f07894fa9b9f08d3bb7e082ca": { - "model_module": "@jupyter-widgets/controls", - "model_name": "ProgressStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "ProgressStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "bar_color": null, - "description_width": "" - } - }, - "1b793ae9c46740bdbbec5e617a899683": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "cbfde7f5f0204417abdced523c5621e9": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - } - } - } - }, "cells": [ { "cell_type": "markdown", - "source": [ - "# Instalacja pakietów" - ], "metadata": { "id": "ZXsOR6oJOJbd" - } + }, + "source": [ + "# Instalacja pakietów" + ] }, { "cell_type": "code", @@ -3457,7 +17,7 @@ "base_uri": "https://localhost:8080/" }, "id": "8l0hzptKNiZS", - "outputId": "49caa437-96c0-41bc-fc92-1d6c6847e100" + "outputId": "29622435-2f50-4c0a-d921-e0bee5470440" }, "outputs": [ { @@ -3467,55 +27,55 @@ "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n", "Collecting transformers\n", " Downloading transformers-4.26.1-py3-none-any.whl (6.3 MB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m6.3/6.3 MB\u001b[0m \u001b[31m45.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m6.3/6.3 MB\u001b[0m \u001b[31m47.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting datasets\n", " Downloading datasets-2.9.0-py3-none-any.whl (462 kB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m462.8/462.8 KB\u001b[0m \u001b[31m28.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m462.8/462.8 KB\u001b[0m \u001b[31m23.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: torch in /usr/local/lib/python3.8/dist-packages (1.13.1+cu116)\n", "Collecting sentencepiece\n", " Downloading sentencepiece-0.1.97-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.3/1.3 MB\u001b[0m \u001b[31m40.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", - "\u001b[?25hRequirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.8/dist-packages (from transformers) (4.64.1)\n", - "Requirement already satisfied: filelock in /usr/local/lib/python3.8/dist-packages (from transformers) (3.9.0)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.3/1.3 MB\u001b[0m \u001b[31m13.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.8/dist-packages (from transformers) (2022.6.2)\n", "Collecting tokenizers!=0.11.3,<0.14,>=0.11.1\n", " Downloading tokenizers-0.13.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.6 MB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.6/7.6 MB\u001b[0m \u001b[31m59.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", - "\u001b[?25hRequirement already satisfied: requests in /usr/local/lib/python3.8/dist-packages (from transformers) (2.25.1)\n", - "Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.8/dist-packages (from transformers) (2022.6.2)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.6/7.6 MB\u001b[0m \u001b[31m43.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.8/dist-packages (from transformers) (6.0)\n", "Collecting huggingface-hub<1.0,>=0.11.0\n", " Downloading huggingface_hub-0.12.0-py3-none-any.whl (190 kB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m190.3/190.3 KB\u001b[0m \u001b[31m10.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", - "\u001b[?25hRequirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.8/dist-packages (from transformers) (23.0)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m190.3/190.3 KB\u001b[0m \u001b[31m7.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.8/dist-packages (from transformers) (4.64.1)\n", + "Requirement already satisfied: requests in /usr/local/lib/python3.8/dist-packages (from transformers) (2.25.1)\n", + "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.8/dist-packages (from transformers) (23.0)\n", + "Requirement already satisfied: filelock in /usr/local/lib/python3.8/dist-packages (from transformers) (3.9.0)\n", "Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.8/dist-packages (from transformers) (1.21.6)\n", - "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.8/dist-packages (from transformers) (6.0)\n", "Collecting xxhash\n", " Downloading xxhash-3.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (213 kB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m213.0/213.0 KB\u001b[0m \u001b[31m1.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", - "\u001b[?25hRequirement already satisfied: fsspec[http]>=2021.11.1 in /usr/local/lib/python3.8/dist-packages (from datasets) (2023.1.0)\n", - "Requirement already satisfied: dill<0.3.7 in /usr/local/lib/python3.8/dist-packages (from datasets) (0.3.6)\n", - "Requirement already satisfied: pyarrow>=6.0.0 in /usr/local/lib/python3.8/dist-packages (from datasets) (9.0.0)\n", - "Collecting multiprocess\n", - " Downloading multiprocess-0.70.14-py38-none-any.whl (132 kB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m132.0/132.0 KB\u001b[0m \u001b[31m8.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", - "\u001b[?25hRequirement already satisfied: aiohttp in /usr/local/lib/python3.8/dist-packages (from datasets) (3.8.3)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m213.0/213.0 KB\u001b[0m \u001b[31m9.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: pyarrow>=6.0.0 in /usr/local/lib/python3.8/dist-packages (from datasets) (9.0.0)\n", + "Requirement already satisfied: aiohttp in /usr/local/lib/python3.8/dist-packages (from datasets) (3.8.3)\n", "Collecting responses<0.19\n", " Downloading responses-0.18.0-py3-none-any.whl (38 kB)\n", - "Requirement already satisfied: pandas in /usr/local/lib/python3.8/dist-packages (from datasets) (1.3.5)\n", + "Collecting multiprocess\n", + " Downloading multiprocess-0.70.14-py38-none-any.whl (132 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m132.0/132.0 KB\u001b[0m \u001b[31m2.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: pandas in /usr/local/lib/python3.8/dist-packages (from datasets) (1.3.5)\n", + "Requirement already satisfied: fsspec[http]>=2021.11.1 in /usr/local/lib/python3.8/dist-packages (from datasets) (2023.1.0)\n", + "Requirement already satisfied: dill<0.3.7 in /usr/local/lib/python3.8/dist-packages (from datasets) (0.3.6)\n", "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.8/dist-packages (from torch) (4.4.0)\n", + "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (6.0.4)\n", "Requirement already satisfied: charset-normalizer<3.0,>=2.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (2.1.1)\n", + "Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (4.0.2)\n", + "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (1.3.3)\n", + "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (1.3.1)\n", "Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (1.8.2)\n", "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (22.2.0)\n", - "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (6.0.4)\n", - "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (1.3.1)\n", - "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (1.3.3)\n", - "Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (4.0.2)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (2022.12.7)\n", "Requirement already satisfied: chardet<5,>=3.0.2 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (4.0.0)\n", - "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (2.10)\n", "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (1.24.3)\n", + "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (2.10)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (2022.12.7)\n", "Collecting urllib3<1.27,>=1.21.1\n", " Downloading urllib3-1.26.14-py2.py3-none-any.whl (140 kB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m140.6/140.6 KB\u001b[0m \u001b[31m4.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m140.6/140.6 KB\u001b[0m \u001b[31m9.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: python-dateutil>=2.7.3 in /usr/local/lib/python3.8/dist-packages (from pandas->datasets) (2.8.2)\n", "Requirement already satisfied: pytz>=2017.3 in /usr/local/lib/python3.8/dist-packages (from pandas->datasets) (2022.7.1)\n", "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.8/dist-packages (from python-dateutil>=2.7.3->pandas->datasets) (1.15.0)\n", @@ -3534,106 +94,103 @@ }, { "cell_type": "markdown", - "source": [ - "# Załadowanie datasetu" - ], "metadata": { "id": "dhN0rmb5Oi3d" - } + }, + "source": [ + "# Załadowanie datasetu" + ] }, { "cell_type": "code", - "source": [ - "from datasets import load_dataset" - ], + "execution_count": 2, "metadata": { "id": "tnaDkwZ2Pbnn" }, - "execution_count": 2, - "outputs": [] + "outputs": [], + "source": [ + "from datasets import load_dataset" + ] }, { "cell_type": "code", - "source": [ - "dataset = load_dataset(\"sms_spam\")" - ], + "execution_count": 3, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 231, "referenced_widgets": [ - "137fa30b14f34f57a0beb8a6c6e60cf5", - "755a0a2d6a154feab203d06a6daf9848", - "c0c63e8ee5e84757a66dc953b11116d7", - "cf211c4bc94c47e2a9b752d4a9890271", - "070471ec9b8d4523be8e8779c87e7d9e", - "c22bd9c427b34a7dad89b1293da20e65", - "39348508617043c8a3cbec645ef49331", - "d1f02d9191c6458a9fc42f5ebb2d5961", - "11b4792c447c4b56acbdc5b3f7427c54", - "633950f724a8490b9425bb2fa2e4e84a", - "fe588dfbdc0f4fabaf54a1c3e02c0be3", - "47463520a286401ba3d5d29fce07ede5", - "f26179b81ddd477588764f8262560e2f", - "5d6c567d1f2a430c9632cf063572c8de", - "25f45b49e5f643ee994fbb5998807676", - "6030ad10c42c4993ac7d6610c8f0d77f", - "945360806d6445418fd779166c114994", - "d24b647f4a1542e5a4ebfa59bcf2bb2b", - "1bc411a48f1c4f849351440d4e9c646f", - "dd1c430002dd4fd6a08cb5b576bf0290", - "2d551e5c6a4548ae82c34d827f919d18", - "02cb3347a1be49bf8808e95a45a34801", - "0926a24353a94b82a8e405ec72bef775", - "7e44b8cbc06f4d3bb5f073fad6a0b151", - "bcca70a24e7d4a5b9b2a98cebc5c5eda", - "0d26ce82d9f1424dbe8d08ce7b7e5b0b", - "9bdccfd08b814f4fb1f53c5a8a0bded0", - "3977c23fd48348b1b3855c3cc0db6827", - "2573a6dce3d94ca79cadee9a793d9e91", - "f01fad907cf742f6aae936051f36579d", - "86661cdb45b44daeaf1581ca1b8d4cc6", - "04f96b4447a547b8ba8ff13b9bbedc04", - "dbdeaaff21924caca89dc32b633f80da", - "320ba3e1e74541288c307eedbd5e2754", - "e9675016075e4ec89c891033452ec11c", - "305a6be9c48c4381983307f584c5c6c8", - "cbfc39d75c494de284e2b8a3c95e6057", - "6bc6798a84944c9e8dad7391d1baa997", - "86c211b9dac34fd0ad51d81385d59fd8", - "21df98aa3cdc403f91acd1c21f4b4e9d", - "eeb508fdb9064c09b8152b800fe61214", - "ce0d0132b7904f1794037e81880a563a", - "113ab2100a894a16b74040611824c91d", - "834964317e404dd5a9a28c63a58ce6c9", - "a950c7427a174b22abdd17fb7710ece7", - "b72789fe47914768ba2808926ad54c86", - "327a1bc8f6c644d6b3168f708a2c6876", - "5f8f6e108647479eb92fb44ec1916d0d", - "7fa6a321dd3a4e198451da879be60a9b", - "b179785454d8400fb495f810ae2aede2", - "2b16bccddc0e4be78d83cc012c2224e9", - "6d601c96a62c46ff96cbc4fd8e0fbbb6", - "498224e7a7b54c56ba45261a1b39c1c3", - "e9319122f48e43a5b15ef55823347507", - "7ea7ab8cba484142b5a3d8019e9c9c84", - "fddd4ee4bc054b0f90ed88018fc3e3a0", - "55b5df3163a34561a4a5ba27efada434", - "2823c1041e914dd8887498410baaab43", - "fba57e030f624bbab5b51b65d7d36722", - "86fa9ce6cd9b4ec9af6d24d943aac75b", - "97a0725bbb044103911e1e29bb07360e", - "1cf99cee3c374e30abd95c03e9696bbe", - "d17a7d096d964a41a7ee183f5028c037", - "c6a51ab4f16649c0899bbfd14fdc9cb8", - "876c522f96a64809a82d316f4afa1bae", - "1c38d46a00224aa791cad25fdd4d33e2" + "d481c2d945214c45b716d266d5d75184", + "b59689c435074e14a5ffab86f7358d79", + "8e53b6fe3c9b4ddb95c6bc13431f330e", + "a8e97add56944729a2ead40f46e0acd8", + "5e960877834348318c208650676ac592", + "df1e772af2fa43fd8d705e82aae29a28", + "5de4c85766684223a885de341a2375a9", + "951d4aa7857542599bfa653eb6e98dd8", + "57e82888c8764d67b04362742b177118", + "04c3671ec63e4e19a29df60b9e35b9f4", + "6d4ff2e0c30e4b4891e1882a246191a7", + "0a4967eb8656482988be61b4e884ab6b", + "70bf1a3b71c349678cead7c1e7f59408", + "692a335df661445cb4dfa84a60708884", + "b37e5ec6cb7c4a07a904c8924f6d3ac9", + "129641fbac844cda9261d89ba1b02a9c", + "286c12dec8c84e5fbebc9bfecdcaf362", + "c1ccf4622a57496684a1232730d12aae", + "fe4d858e5a12465bb3e1ed4f0964a592", + "d6d4fa7b46a24c90832fda7d030f729a", + "09f51cd5ae6140d7b7d93f0682954024", + "a35de7678ed04a0094d09162d6dc719b", + "36974fdfee5141b7850289e25b23df3c", + "5c5294c17e2a4c52912d9722210886cd", + "99279b2dc5004a4f878e6e4d08257fb6", + "ff6597d5d8cd457f9e8290339fcb42f5", + "434546b6ac0a404aa36700a170709688", + "973260a8e814424aac53d061ba9325bd", + "f983b467dc0c433995aa865e5055fe05", + "b5a31b3ad4224d009745b9604088476f", + "dda925b25f6d42c5aca2fb619f3625e5", + "f99fca76deeb408c8a953712adc4658c", + "0b2f4e8e08474341be8e46ee255d8451", + "4bbbc1eaabb0460cba315a082cd69783", + "ec970d97055b434cac97bca5b1d24069", + "6d28f8333ec2447cbf9f03d333d86e82", + "af29ca374d42465b93525a7cb54c7869", + "f6c0f046a62a489497e659d6a786324a", + "0d1267b2242d4a93ab5791a0f45aaa84", + "2af172c9becf4b24a12afa75f7c23bfa", + "9c9c5376fbed445dbea430c02cff9194", + "ca515e1f8f154ec398c8a823629a5622", + "c93b2a9a14134fccb9b815e3228ed56a", + "90d9bc90d3944b4297b13af2ba123f99", + "7f68486bff314b178c4fdb5b54cca92e", + "e11096eae0ef432dabb00cb49c5e96b8", + "84576cd6a7c64d6f809dc708b137134c", + "c096402cab6e4e4b911c4aa41b285e1b", + "556b1cb4381b473db666c64ca193585c", + "9213dd04267b42ffb51918b5a6e8bfe0", + "69b79fd9c03b4801bef03d27604ef51c", + "4e6240934876400db18bacae780b9839", + "616c196921514481aef009cde26fe0a8", + "6ac66769ad604b66aa658bf52b11914a", + "75db994dd2c24faaa36a2fdddcd11fb9", + "0cdcd5131b5148bf8ef7130e741e7f9b", + "296cc18ff4b5480e9cf22136589b23b2", + "1c465c9fe6314a75aefcf6293c79f800", + "03cc9c6818ff45c1b791557da43d5d77", + "19d794a37566410592951ac2f7d6f8d4", + "7a965267d797415a94c4b1d08eb11e63", + "1ea948fb5ea54ae3ae24fc124d64ac45", + "454abc04b69a46b5b28c10be09db3adf", + "41b58dbbb09c4b9497b0acb4a7484f45", + "7a0a7e8ab334489d8d363459b9e0bd37", + "7071959c1e2141d58bceb19e1e0759f3" ] }, "id": "cCiAuRqrOkvV", - "outputId": "b8dfca85-8b7a-4321-da77-ec7eea1843e9" + "outputId": "22cf5f97-411a-4e6c-b0bf-28b477607386" }, - "execution_count": 3, "outputs": [ { "output_type": "display_data", @@ -3644,7 +201,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "137fa30b14f34f57a0beb8a6c6e60cf5" + "model_id": "d481c2d945214c45b716d266d5d75184" } }, "metadata": {} @@ -3658,7 +215,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "47463520a286401ba3d5d29fce07ede5" + "model_id": "0a4967eb8656482988be61b4e884ab6b" } }, "metadata": {} @@ -3672,7 +229,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "0926a24353a94b82a8e405ec72bef775" + "model_id": "36974fdfee5141b7850289e25b23df3c" } }, "metadata": {} @@ -3693,7 +250,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "320ba3e1e74541288c307eedbd5e2754" + "model_id": "4bbbc1eaabb0460cba315a082cd69783" } }, "metadata": {} @@ -3707,7 +264,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "a950c7427a174b22abdd17fb7710ece7" + "model_id": "7f68486bff314b178c4fdb5b54cca92e" } }, "metadata": {} @@ -3728,26 +285,26 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "fddd4ee4bc054b0f90ed88018fc3e3a0" + "model_id": "0cdcd5131b5148bf8ef7130e741e7f9b" } }, "metadata": {} } + ], + "source": [ + "dataset = load_dataset(\"sms_spam\")" ] }, { "cell_type": "code", - "source": [ - "dataset['train'][0]" - ], + "execution_count": 4, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "JKFHPko3OnAV", - "outputId": "2048bc4f-4d5f-45e4-e5c9-0be61d9d7349" + "outputId": "2682981e-b242-4563-8e88-21f1b56f2d15" }, - "execution_count": 4, "outputs": [ { "output_type": "execute_result", @@ -3760,19 +317,43 @@ "metadata": {}, "execution_count": 4 } + ], + "source": [ + "dataset['train'][0]" ] }, { "cell_type": "markdown", - "source": [ - "# Modyfikacja datasetu - klasyfikacja" - ], "metadata": { "id": "l140vJrgYxPr" - } + }, + "source": [ + "# Modyfikacja datasetu - klasyfikacja" + ] }, { "cell_type": "code", + "execution_count": 5, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "1boUF-YiY3_y", + "outputId": "f031453d-54d7-4fba-abc4-26ff8e110d96" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "{'sms': 'binary classification: Go until jurong point, crazy.. Available only in bugis n great world la e buffet... Cine there got amore wat...',\n", + " 'label': '0'}" + ] + }, + "metadata": {}, + "execution_count": 5 + } + ], "source": [ "parsed_dataset = []\n", "\n", @@ -3787,87 +368,63 @@ " parsed_dataset.append(new_row)\n", "\n", "parsed_dataset[0]" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "1boUF-YiY3_y", - "outputId": "fed6fa9c-8699-4727-ae1b-37475f831b61" - }, - "execution_count": 5, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "{'sms': 'binary classification: Go until jurong point, crazy.. Available only in bugis n great world la e buffet... Cine there got amore wat...',\n", - " 'label': '0'}" - ] - }, - "metadata": {}, - "execution_count": 5 - } ] }, { "cell_type": "markdown", - "source": [ - "# Tokenizer T5" - ], "metadata": { "id": "O-J-jBDxPJcn" - } + }, + "source": [ + "# Tokenizer T5" + ] }, { "cell_type": "code", - "source": [ - "from transformers import T5Tokenizer" - ], + "execution_count": 6, "metadata": { "id": "P23AYPX1PZ6g" }, - "execution_count": 6, - "outputs": [] + "outputs": [], + "source": [ + "from transformers import T5Tokenizer" + ] }, { "cell_type": "code", - "source": [ - "tokenizer = T5Tokenizer.from_pretrained('t5-base')" - ], + "execution_count": 7, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 203, "referenced_widgets": [ - "6e2b903343ad49c89339a38a1c626619", - "b1e96f5c00d048c69c1c0fadeb31dcd9", - "ec994f6daafb4ef8a08371f2394918dd", - "699d9f4479854372ada35ab38fe80352", - "cb36ca390eac4c76ad8cfbcbdb5b6950", - "5ffe2a0b8e3342a9b764fbbdf1395f1c", - "ea92e7a968d4479e842c368ece4b60c1", - "95a4496f03414cf8a8d7cf5e6cc3f37b", - "7b1d15df592048fe8a8c043e7a8461ad", - "cc73442788a3462a8d5d53c9c799df7a", - "ee75218b2c4047fdb265df7a54feea78", - "e720c7e5ef0849918eb6e7123673c95e", - "8b2ff14cab9941388b547140d06e1dd5", - "0eb67bf20ecf4cc0b5f3bd0589440e6b", - "4e976d7959e640f4b098d9a02320f228", - "48de3465dc194fff9903fd3813aae91a", - "29558f7cc7574024879d274548ac4cd7", - "ce5531904574465d84d65365b0fc2951", - "10cc03c556cf4fb791697277b3deef35", - "2113acabfb014e7ab55d099d28845914", - "504b320daae543b78b8777cebbe65dea", - "5ea6f5fa80184fe58ef86a536ec0f8f0" + "e9563b43a79542b3ac4607b3b32fef36", + "dd79782a047542c79cf638d50c4fb6b5", + "ecada9c5179b40cfa2aba932c5a9aedd", + "e64dfd8ce12043a48eb24ee8fafaaa5e", + "fb537b30046a4b699cd0ac5d21c0cb5e", + "e63a74cb438b488a9f1f5e340842e5e0", + "4c3f3eeffbc946428cd198bf16fbdac0", + "5f0ceff818cf43308975724aabc9d799", + "e1e65e6fe54c4d60a6c93573d3cd1fd0", + "b163c0caacc547199a2372e03bdabcce", + "faf1774fb05940b8908415eafe3a1070", + "bf509a7ff72a4e40bfea72feb958477c", + "1479e73733d548d4881d163983549014", + "1eff9f6872ca41feb2a67795d6b2af20", + "054b198ab5174073bfaa2a951410dc37", + "2f029974bf9643dab5e96eb15c6834b8", + "28036b83d1fc438e913f8f3f4cb19391", + "ef17ea825afa4cf8898f13c1cefa8475", + "b31a9cf7195b47faaa22deb09fe1f0d1", + "2c056fb1574a42eaaeb4d64c45b9e884", + "28f716fbfec540819b13602a705e69cd", + "5a0c5d19389e4ccbb552ed41111dfa2c" ] }, "id": "q5Jz0E_oPMBr", - "outputId": "bbe8a564-fee5-42ef-da4d-04ae4af111db" + "outputId": "2a01700a-67b3-4347-afda-a2763b30c714" }, - "execution_count": 7, "outputs": [ { "output_type": "display_data", @@ -3878,7 +435,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "6e2b903343ad49c89339a38a1c626619" + "model_id": "e9563b43a79542b3ac4607b3b32fef36" } }, "metadata": {} @@ -3892,7 +449,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "e720c7e5ef0849918eb6e7123673c95e" + "model_id": "bf509a7ff72a4e40bfea72feb958477c" } }, "metadata": {} @@ -3909,24 +466,21 @@ " warnings.warn(\n" ] } + ], + "source": [ + "tokenizer = T5Tokenizer.from_pretrained('t5-base')" ] }, { "cell_type": "code", - "source": [ - "sms = parsed_dataset[0]['sms']\n", - "print('Original: ', sms)\n", - "print('Tokenized: ', tokenizer.tokenize(sms))\n", - "print('Token IDs: ', tokenizer.convert_tokens_to_ids(tokenizer.tokenize(sms)))" - ], + "execution_count": 8, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "dfxJQpoePsvI", - "outputId": "fa44a9cd-aff1-4b64-957e-52595dad7472" + "outputId": "305252ef-73f2-4677-d7c9-31efc4d249a6" }, - "execution_count": 8, "outputs": [ { "output_type": "stream", @@ -3937,36 +491,33 @@ "Token IDs: [14865, 13774, 10, 1263, 552, 10081, 2444, 500, 6, 6139, 5, 5, 8144, 163, 16, 8143, 159, 3, 29, 248, 296, 50, 3, 15, 15385, 233, 17270, 132, 530, 3, 9, 3706, 8036, 17, 233]\n" ] } + ], + "source": [ + "sms = parsed_dataset[0]['sms']\n", + "print('Original: ', sms)\n", + "print('Tokenized: ', tokenizer.tokenize(sms))\n", + "print('Token IDs: ', tokenizer.convert_tokens_to_ids(tokenizer.tokenize(sms)))" ] }, { "cell_type": "markdown", - "source": [ - "# Check maximum lenght of a sentence" - ], "metadata": { "id": "UpluhM8cU5Ir" - } + }, + "source": [ + "# Check maximum lenght of a sentence" + ] }, { "cell_type": "code", - "source": [ - "max_len = 0\n", - "\n", - "for sentence in parsed_dataset:\n", - " input_ids = tokenizer.encode(sentence['sms'], add_special_tokens=True)\n", - " max_len = max(max_len, len(input_ids))\n", - "\n", - "print('Max sentence length: ', max_len)" - ], + "execution_count": 9, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "7uNUkixPU85O", - "outputId": "2ec78c60-f5ae-4201-c8e5-30208c94efab" + "outputId": "6812abc8-d279-4ee8-9947-9c9a5932e47c" }, - "execution_count": 9, "outputs": [ { "output_type": "stream", @@ -3975,27 +526,27 @@ "Max sentence length: 341\n" ] } + ], + "source": [ + "max_len = 0\n", + "\n", + "for sentence in parsed_dataset:\n", + " input_ids = tokenizer.encode(sentence['sms'], add_special_tokens=True)\n", + " max_len = max(max_len, len(input_ids))\n", + "\n", + "print('Max sentence length: ', max_len)" ] }, { "cell_type": "code", - "source": [ - "max_label_len = 0\n", - "\n", - "for sentence in parsed_dataset:\n", - " input_ids = tokenizer.encode(sentence['label'], add_special_tokens=True)\n", - " max_label_len = max(max_label_len, len(input_ids))\n", - "\n", - "print('Max sentence length: ', max_label_len)" - ], + "execution_count": 10, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "lj0issBznZfK", - "outputId": "2fb86f95-c0a0-45ea-a36d-a6b174f32aac" + "outputId": "9dccb0f2-6452-460b-b955-83468285a635" }, - "execution_count": 10, "outputs": [ { "output_type": "stream", @@ -4004,76 +555,47 @@ "Max sentence length: 3\n" ] } + ], + "source": [ + "max_label_len = 0\n", + "\n", + "for sentence in parsed_dataset:\n", + " input_ids = tokenizer.encode(sentence['label'], add_special_tokens=True)\n", + " max_label_len = max(max_label_len, len(input_ids))\n", + "\n", + "print('Max sentence length: ', max_label_len)" ] }, { "cell_type": "markdown", - "source": [ - "# Pre train tokenization" - ], "metadata": { "id": "nfw62HdgSERb" - } + }, + "source": [ + "# Pre train tokenization" + ] }, { "cell_type": "code", - "source": [ - "import torch" - ], + "execution_count": 11, "metadata": { "id": "KTXYalS1VLqH" }, - "execution_count": 11, - "outputs": [] + "outputs": [], + "source": [ + "import torch" + ] }, { "cell_type": "code", - "source": [ - "input_ids = []\n", - "target_ids = []\n", - "attention_masks = []\n", - "\n", - "for sentence in parsed_dataset:\n", - " encoded_dict = tokenizer.encode_plus(\n", - " sentence['sms'],\n", - " add_special_tokens = True,\n", - " max_length = 341,\n", - " padding = 'max_length',\n", - " truncation=True,\n", - " return_attention_mask = True,\n", - " return_tensors = 'pt',\n", - " )\n", - " \n", - " encoded_target_dict = tokenizer.encode_plus(\n", - " sentence['label'],\n", - " add_special_tokens = True,\n", - " max_length = 3,\n", - " padding = 'max_length',\n", - " truncation=True,\n", - " return_attention_mask = True,\n", - " return_tensors = 'pt',\n", - " )\n", - " \n", - " input_ids.append(encoded_dict['input_ids'])\n", - " target_ids.append(encoded_target_dict['input_ids'])\n", - " attention_masks.append(encoded_dict['attention_mask'])\n", - "\n", - "input_ids = torch.cat(input_ids, dim=0)\n", - "target_ids = torch.cat(target_ids, dim=0)\n", - "attention_masks = torch.cat(attention_masks, dim=0)\n", - "\n", - "print('Original: ', parsed_dataset[0])\n", - "print('Token IDs:', input_ids[0])\n", - "print('Label token IDs:', target_ids[0])" - ], + "execution_count": 12, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "Z28QYfLnSGxR", - "outputId": "e90e2369-25d1-4fc1-b7fd-b805eaf1f5de" + "outputId": "bcb84fca-c7e0-4e4a-a8f6-ff3db86e143d" }, - "execution_count": 12, "outputs": [ { "output_type": "stream", @@ -4118,30 +640,87 @@ "Label token IDs: tensor([ 3, 632, 1])\n" ] } + ], + "source": [ + "input_ids = []\n", + "target_ids = []\n", + "attention_masks = []\n", + "\n", + "for sentence in parsed_dataset:\n", + " encoded_dict = tokenizer.encode_plus(\n", + " sentence['sms'],\n", + " add_special_tokens = True,\n", + " max_length = 341,\n", + " padding = 'max_length',\n", + " truncation=True,\n", + " return_attention_mask = True,\n", + " return_tensors = 'pt',\n", + " )\n", + " \n", + " encoded_target_dict = tokenizer.encode_plus(\n", + " sentence['label'],\n", + " add_special_tokens = True,\n", + " max_length = 3,\n", + " padding = 'max_length',\n", + " truncation=True,\n", + " return_attention_mask = True,\n", + " return_tensors = 'pt',\n", + " )\n", + " \n", + " input_ids.append(encoded_dict['input_ids'])\n", + " target_ids.append(encoded_target_dict['input_ids'])\n", + " attention_masks.append(encoded_dict['attention_mask'])\n", + "\n", + "input_ids = torch.cat(input_ids, dim=0)\n", + "target_ids = torch.cat(target_ids, dim=0)\n", + "attention_masks = torch.cat(attention_masks, dim=0)\n", + "\n", + "print('Original: ', parsed_dataset[0])\n", + "print('Token IDs:', input_ids[0])\n", + "print('Label token IDs:', target_ids[0])" ] }, { "cell_type": "markdown", - "source": [ - "# Split dataset" - ], "metadata": { "id": "qD_t0y0KVVSy" - } + }, + "source": [ + "# Split dataset" + ] }, { "cell_type": "code", - "source": [ - "from torch.utils.data import TensorDataset, random_split" - ], + "execution_count": 13, "metadata": { "id": "vN_SatRIVa4c" }, - "execution_count": 13, - "outputs": [] + "outputs": [], + "source": [ + "from torch.utils.data import TensorDataset, random_split" + ] }, { "cell_type": "code", + "execution_count": 14, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Mm6vc6lLVW3l", + "outputId": "2ff9533f-7117-4492-dae2-5a8dada86e41" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "1,000 test samples\n", + "4,116 training samples\n", + " 458 validation samples\n" + ] + } + ], "source": [ "dataset = TensorDataset(input_ids, attention_masks, target_ids)\n", "\n", @@ -4155,49 +734,35 @@ "print('{:>5,} test samples'.format(test_size))\n", "print('{:>5,} training samples'.format(train_size))\n", "print('{:>5,} validation samples'.format(val_size))" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Mm6vc6lLVW3l", - "outputId": "af8a7007-791f-426c-c277-1c77a1fd9d78" - }, - "execution_count": 14, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "1,000 test samples\n", - "4,116 training samples\n", - " 458 validation samples\n" - ] - } ] }, { "cell_type": "markdown", - "source": [ - "# Create train and validation loaders" - ], "metadata": { "id": "bmgQOP4EVfA1" - } + }, + "source": [ + "# Create train and validation loaders" + ] }, { "cell_type": "code", - "source": [ - "from torch.utils.data import DataLoader, RandomSampler, SequentialSampler" - ], + "execution_count": 15, "metadata": { "id": "CxnQ3cmIVlNh" }, - "execution_count": 15, - "outputs": [] + "outputs": [], + "source": [ + "from torch.utils.data import DataLoader, RandomSampler, SequentialSampler" + ] }, { "cell_type": "code", + "execution_count": 16, + "metadata": { + "id": "0hcpO_onVjEC" + }, + "outputs": [], "source": [ "batch_size = 16\n", "\n", @@ -4212,24 +777,37 @@ " sampler = SequentialSampler(val_dataset),\n", " batch_size = batch_size\n", " )" - ], - "metadata": { - "id": "0hcpO_onVjEC" - }, - "execution_count": 16, - "outputs": [] + ] }, { "cell_type": "markdown", - "source": [ - "# Device check" - ], "metadata": { "id": "efwhqLyyVu9z" - } + }, + "source": [ + "# Device check" + ] }, { "cell_type": "code", + "execution_count": 17, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "ANBCfNGnVwVk", + "outputId": "ff2ff959-f0e9-47f3-d504-9daa45f870c2" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "There are 1 GPU(s) available.\n", + "We will use the GPU: Tesla T4\n" + ] + } + ], "source": [ "if torch.cuda.is_available(): \n", " device = torch.device(\"cuda\")\n", @@ -4240,86 +818,63 @@ "else:\n", " print('No GPU available, using the CPU instead.')\n", " device = torch.device(\"cpu\")" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "ANBCfNGnVwVk", - "outputId": "02086b95-30b8-4be0-aa4b-ac0041b4b007" - }, - "execution_count": 17, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "There are 1 GPU(s) available.\n", - "We will use the GPU: Tesla T4\n" - ] - } ] }, { "cell_type": "markdown", - "source": [ - "# Load T5 model" - ], "metadata": { "id": "okTx_ynMV0rH" - } + }, + "source": [ + "# Load T5 model" + ] }, { "cell_type": "code", - "source": [ - "from transformers import T5ForConditionalGeneration" - ], + "execution_count": 18, "metadata": { "id": "Eu-7Eed8WgN0" }, - "execution_count": 18, - "outputs": [] + "outputs": [], + "source": [ + "from transformers import T5ForConditionalGeneration" + ] }, { "cell_type": "code", - "source": [ - "model = T5ForConditionalGeneration.from_pretrained('t5-base')\n", - "\n", - "model.cuda()" - ], + "execution_count": 19, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000, "referenced_widgets": [ - "b1d7a5cf900b48408e515baa4c66a1cd", - "6846a2acd95b45a3a0e2cb79f552f0c0", - "fce901d34cc34feeb92854999e98c0f9", - "5a89ce40643247fda326742531912a01", - "bcc7a0cd035e485680b41e7c4a78b8f8", - "bd0a578fefb44fb4b2662d59fd2ff12e", - "6585bd6115c047fd881c0bfd323142f0", - "dbc7f7aa90174ff68b5cc829a6fd8690", - "ca3a8e4611c6422380351b947882876a", - "2470365762844b62a09dc6fa818c4a09", - "3f2489ce0ae941a1a720c60a3052ee70", - "0795a8385c68409fb5539b9ea6756a47", - "05dfc6dc9f78483da34b2c6513315e7d", - "5cfe28a638cb42fc914dc81eb02a46f4", - "d061dcb2f3e840ec9ba6a6ec4d972619", - "df418dee3efd4da8aa57ca0044190b2e", - "9d3d394c756d4eabb0f3fd66ba8ef05a", - "00612595fa42467a83aa6e4b55343339", - "33521be9887b4c368915b4f8f2438440", - "990a862f07894fa9b9f08d3bb7e082ca", - "1b793ae9c46740bdbbec5e617a899683", - "cbfde7f5f0204417abdced523c5621e9" + "68418b4f08654a2c8a19bdefa31ef7e2", + "f59f1fe74df84329baa0137729651d7e", + "4e6666f32de94c14973b2f5895c4f4ec", + "9a8b0e9cf614453789dceff586f47682", + "a4e1407e1a42416087a3138812851afa", + "1813bc00d8db4de5a7bb7cd276346312", + "ab6b0613a4934f34aad4d28cd855362d", + "7514dfc8c5c34f29ab9a246ba6b45dc2", + "017b00a3a26743d3a761a5b05f72fe73", + "1cfe23326f964bb0a2925456aea14ad5", + "384aac4ea3274eebbb43ea847036793a", + "17986d272156460f8e9bcee2559088d9", + "f1c7c8e7770848dabf155be27b342c6f", + "719b8ebc46884edd9b36829f49680c98", + "f28050af08f947678a41e1ea5611067f", + "2ff5d9e91bf64330a2747c9c518ba31c", + "85bd410d586b4ac98b8df72f980c0194", + "feb7905c359e4acd9c9f848fb63d5d55", + "b1d4154a8b054c8380a9ac70c311755b", + "2fee9e3e54ae41c8977beaae6802010f", + "42dc0f0578ed4105abeee4362667a98a", + "04bb3488deec4565a0864049b122437d" ] }, "id": "JKv9O8kfV2zZ", - "outputId": "b4b823d6-f7dc-4b78-a12b-4a2bae4e463f" + "outputId": "ad88a39b-bdc7-4325-b588-ed5feb453c3e" }, - "execution_count": 19, "outputs": [ { "output_type": "display_data", @@ -4330,7 +885,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "b1d7a5cf900b48408e515baa4c66a1cd" + "model_id": "68418b4f08654a2c8a19bdefa31ef7e2" } }, "metadata": {} @@ -4344,7 +899,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "0795a8385c68409fb5539b9ea6756a47" + "model_id": "17986d272156460f8e9bcee2559088d9" } }, "metadata": {} @@ -5074,31 +1629,41 @@ "metadata": {}, "execution_count": 19 } + ], + "source": [ + "model = T5ForConditionalGeneration.from_pretrained('t5-base')\n", + "\n", + "model.cuda()" ] }, { "cell_type": "markdown", - "source": [ - "# Helper functions" - ], "metadata": { "id": "F_SDAwxoawDy" - } + }, + "source": [ + "# Helper functions" + ] }, { "cell_type": "code", - "source": [ - "import datetime\n", - "import numpy as np" - ], + "execution_count": 20, "metadata": { "id": "s-q6_F38bLVA" }, - "execution_count": 20, - "outputs": [] + "outputs": [], + "source": [ + "import datetime\n", + "import numpy as np" + ] }, { "cell_type": "code", + "execution_count": 21, + "metadata": { + "id": "FzUi8908ax61" + }, + "outputs": [], "source": [ "def calculate_accuracy(preds, target):\n", " results_ok = 0.0\n", @@ -5118,35 +1683,24 @@ " '''\n", " elapsed_rounded = int(round((elapsed)))\n", " return str(datetime.timedelta(seconds=elapsed_rounded))" - ], - "metadata": { - "id": "FzUi8908ax61" - }, - "execution_count": 21, - "outputs": [] + ] }, { "cell_type": "markdown", - "source": [ - "# Init training" - ], "metadata": { "id": "ucChBa-9bXJy" - } - }, - { - "cell_type": "code", - "source": [ - "from transformers import get_linear_schedule_with_warmup" - ], - "metadata": { - "id": "c9e7rbGwbdEp" }, - "execution_count": 22, - "outputs": [] + "source": [ + "# Init training" + ] }, { "cell_type": "code", + "execution_count": 22, + "metadata": { + "id": "A7XUF4PNbYy8" + }, + "outputs": [], "source": [ "optimizer = torch.optim.AdamW(model.parameters(),\n", " lr = 3e-4,\n", @@ -5154,42 +1708,123 @@ " )\n", "\n", "epochs = 4\n", - "\n", - "total_steps = len(train_dataloader) * epochs\n", - "\n", - "scheduler = get_linear_schedule_with_warmup(optimizer, \n", - " num_warmup_steps = 0,\n", - " num_training_steps = total_steps)" - ], - "metadata": { - "id": "A7XUF4PNbYy8" - }, - "execution_count": 23, - "outputs": [] + "total_steps = len(train_dataloader) * epochs" + ] }, { "cell_type": "markdown", - "source": [ - "# Training" - ], "metadata": { "id": "DAzQWODja0A3" - } + }, + "source": [ + "# Training" + ] }, { "cell_type": "code", - "source": [ - "import random\n", - "import time" - ], + "execution_count": 23, "metadata": { "id": "Hoa7NlU0bI7G" }, - "execution_count": 24, - "outputs": [] + "outputs": [], + "source": [ + "import random\n", + "import time" + ] }, { "cell_type": "code", + "execution_count": 24, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "xsHxfslka1u5", + "outputId": "e40d00a1-baf8-4554-e5ec-aeb87ee35f66" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n", + "======== Epoch 1 / 4 ========\n", + "Training...\n", + " Batch 40 of 258. Elapsed: 0:01:12.\n", + " Batch 80 of 258. Elapsed: 0:02:20.\n", + " Batch 120 of 258. Elapsed: 0:03:28.\n", + " Batch 160 of 258. Elapsed: 0:04:36.\n", + " Batch 200 of 258. Elapsed: 0:05:45.\n", + " Batch 240 of 258. Elapsed: 0:06:53.\n", + "\n", + " Average training loss: 0.09\n", + " Average training acc: 0.81\n", + " Training epcoh took: 0:07:23\n", + "\n", + "Running Validation...\n", + " Accuracy: 0.83\n", + " Validation took: 0:00:27\n", + " Validation Loss: 0.00\n", + "\n", + "======== Epoch 2 / 4 ========\n", + "Training...\n", + " Batch 40 of 258. Elapsed: 0:01:09.\n", + " Batch 80 of 258. Elapsed: 0:02:17.\n", + " Batch 120 of 258. Elapsed: 0:03:25.\n", + " Batch 160 of 258. Elapsed: 0:04:33.\n", + " Batch 200 of 258. Elapsed: 0:05:42.\n", + " Batch 240 of 258. Elapsed: 0:06:50.\n", + "\n", + " Average training loss: 0.00\n", + " Average training acc: 0.86\n", + " Training epcoh took: 0:07:19\n", + "\n", + "Running Validation...\n", + " Accuracy: 0.83\n", + " Validation took: 0:00:26\n", + " Validation Loss: 0.00\n", + "\n", + "======== Epoch 3 / 4 ========\n", + "Training...\n", + " Batch 40 of 258. Elapsed: 0:01:08.\n", + " Batch 80 of 258. Elapsed: 0:02:16.\n", + " Batch 120 of 258. Elapsed: 0:03:24.\n", + " Batch 160 of 258. Elapsed: 0:04:32.\n", + " Batch 200 of 258. Elapsed: 0:05:41.\n", + " Batch 240 of 258. Elapsed: 0:06:49.\n", + "\n", + " Average training loss: 0.00\n", + " Average training acc: 0.85\n", + " Training epcoh took: 0:07:18\n", + "\n", + "Running Validation...\n", + " Accuracy: 0.83\n", + " Validation took: 0:00:26\n", + " Validation Loss: 0.00\n", + "\n", + "======== Epoch 4 / 4 ========\n", + "Training...\n", + " Batch 40 of 258. Elapsed: 0:01:08.\n", + " Batch 80 of 258. Elapsed: 0:02:16.\n", + " Batch 120 of 258. Elapsed: 0:03:24.\n", + " Batch 160 of 258. Elapsed: 0:04:32.\n", + " Batch 200 of 258. Elapsed: 0:05:41.\n", + " Batch 240 of 258. Elapsed: 0:06:49.\n", + "\n", + " Average training loss: 0.00\n", + " Average training acc: 0.86\n", + " Training epcoh took: 0:07:18\n", + "\n", + "Running Validation...\n", + " Accuracy: 0.83\n", + " Validation took: 0:00:26\n", + " Validation Loss: 0.00\n", + "\n", + "Training complete!\n", + "Total training took 0:31:02 (h:mm:ss)\n" + ] + } + ], "source": [ "# This training code is based on the `run_glue.py` script here:\n", "# https://github.com/huggingface/transformers/blob/5bfcd0485ece086ebcbed2d008813037968a9e58/examples/run_glue.py#L128\n", @@ -5231,9 +1866,7 @@ " y = batch[2].to(device)\n", " y_ids = y[:, :-1].contiguous()\n", " lm_labels = y[:, 1:].clone().detach()\n", - " lm_labels[y[:, 1:] == tokenizer.pad_token_id] = -100\n", - "\n", - " model.zero_grad() \n", + " lm_labels[y[:, 1:] == tokenizer.pad_token_id] = -100 \n", "\n", " outputs = model(\n", " input_ids=b_input_ids,\n", @@ -5245,7 +1878,7 @@ " generated_ids = model.generate(\n", " input_ids = b_input_ids,\n", " attention_mask = b_input_mask, \n", - " max_length=2, \n", + " max_length=3, \n", " num_beams=2,\n", " repetition_penalty=2.5, \n", " length_penalty=1.0, \n", @@ -5256,14 +1889,13 @@ " target = [tokenizer.decode(t, skip_special_tokens=True, clean_up_tokenization_spaces=True) for t in y]\n", " total_train_acc += calculate_accuracy(preds, target) \n", "\n", - " loss = outputs['loss']\n", - " total_train_loss += loss.item()\n", + " loss = outputs[0]\n", "\n", + " optimizer.zero_grad()\n", " loss.backward()\n", - " torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0)\n", - "\n", " optimizer.step()\n", - " scheduler.step()\n", + "\n", + " total_train_loss += loss.item()\n", "\n", " avg_train_loss = total_train_loss / len(train_dataloader) \n", " avg_train_acc = total_train_acc / len(train_dataloader) \n", @@ -5305,13 +1937,13 @@ " labels=lm_labels\n", " )\n", "\n", - " loss = outputs['loss']\n", + " loss = outputs[0]\n", " total_eval_loss += loss.item()\n", "\n", " generated_ids = model.generate(\n", " input_ids = b_input_ids,\n", " attention_mask = b_input_mask, \n", - " max_length=2, \n", + " max_length=3, \n", " num_beams=2,\n", " repetition_penalty=2.5, \n", " length_penalty=1.0, \n", @@ -5347,128 +1979,28 @@ "print(\"Training complete!\")\n", "\n", "print(\"Total training took {:} (h:mm:ss)\".format(format_time(time.time()-total_t0)))" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "xsHxfslka1u5", - "outputId": "60bea81f-a963-4599-ca22-b1992c14a3e5" - }, - "execution_count": 25, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "\n", - "======== Epoch 1 / 4 ========\n", - "Training...\n", - " Batch 40 of 258. Elapsed: 0:01:06.\n", - " Batch 80 of 258. Elapsed: 0:02:13.\n", - " Batch 120 of 258. Elapsed: 0:03:22.\n", - " Batch 160 of 258. Elapsed: 0:04:32.\n", - " Batch 200 of 258. Elapsed: 0:05:42.\n", - " Batch 240 of 258. Elapsed: 0:06:52.\n", - "\n", - " Average training loss: 0.09\n", - " Average training acc: 0.42\n", - " Training epcoh took: 0:07:22\n", - "\n", - "Running Validation...\n", - " Accuracy: 0.68\n", - " Validation took: 0:00:25\n", - " Validation Loss: 0.00\n", - "\n", - "======== Epoch 2 / 4 ========\n", - "Training...\n", - " Batch 40 of 258. Elapsed: 0:01:10.\n", - " Batch 80 of 258. Elapsed: 0:02:19.\n", - " Batch 120 of 258. Elapsed: 0:03:29.\n", - " Batch 160 of 258. Elapsed: 0:04:39.\n", - " Batch 200 of 258. Elapsed: 0:05:48.\n", - " Batch 240 of 258. Elapsed: 0:06:58.\n", - "\n", - " Average training loss: 0.00\n", - " Average training acc: 0.49\n", - " Training epcoh took: 0:07:28\n", - "\n", - "Running Validation...\n", - " Accuracy: 0.72\n", - " Validation took: 0:00:25\n", - " Validation Loss: 0.00\n", - "\n", - "======== Epoch 3 / 4 ========\n", - "Training...\n", - " Batch 40 of 258. Elapsed: 0:01:10.\n", - " Batch 80 of 258. Elapsed: 0:02:19.\n", - " Batch 120 of 258. Elapsed: 0:03:29.\n", - " Batch 160 of 258. Elapsed: 0:04:39.\n", - " Batch 200 of 258. Elapsed: 0:05:49.\n", - " Batch 240 of 258. Elapsed: 0:06:58.\n", - "\n", - " Average training loss: 0.00\n", - " Average training acc: 0.50\n", - " Training epcoh took: 0:07:29\n", - "\n", - "Running Validation...\n", - " Accuracy: 0.72\n", - " Validation took: 0:00:25\n", - " Validation Loss: 0.00\n", - "\n", - "======== Epoch 4 / 4 ========\n", - "Training...\n", - " Batch 40 of 258. Elapsed: 0:01:10.\n", - " Batch 80 of 258. Elapsed: 0:02:19.\n", - " Batch 120 of 258. Elapsed: 0:03:29.\n", - " Batch 160 of 258. Elapsed: 0:04:39.\n", - " Batch 200 of 258. Elapsed: 0:05:49.\n", - " Batch 240 of 258. Elapsed: 0:06:58.\n", - "\n", - " Average training loss: 0.00\n", - " Average training acc: 0.50\n", - " Training epcoh took: 0:07:29\n", - "\n", - "Running Validation...\n", - " Accuracy: 0.72\n", - " Validation took: 0:00:25\n", - " Validation Loss: 0.00\n", - "\n", - "Training complete!\n", - "Total training took 0:31:29 (h:mm:ss)\n" - ] - } ] }, { "cell_type": "markdown", - "source": [ - "# Train summary" - ], "metadata": { "id": "xIpFPoRb91Or" - } + }, + "source": [ + "# Train summary" + ] }, { "cell_type": "code", - "source": [ - "import pandas as pd\n", - "\n", - "pd.set_option('precision', 2)\n", - "df_stats = pd.DataFrame(data=training_stats)\n", - "\n", - "df_stats = df_stats.set_index('epoch')\n", - "df_stats" - ], + "execution_count": 25, "metadata": { + "id": "GjYqBrrO93Oh", "colab": { "base_uri": "https://localhost:8080/", "height": 204 }, - "id": "GjYqBrrO93Oh", - "outputId": "d5742682-1cb4-4910-ab30-9424671b31e4" + "outputId": "326edb05-56a5-4376-d793-424e5e122507" }, - "execution_count": 26, "outputs": [ { "output_type": "execute_result", @@ -5476,21 +2008,21 @@ "text/plain": [ " Training Loss Training Accur. Valid. Loss Valid. Accur. \\\n", "epoch \n", - "1 8.67e-02 0.42 1.46e-08 0.68 \n", - "2 2.02e-06 0.49 2.65e-10 0.72 \n", - "3 1.50e-06 0.50 0.00e+00 0.72 \n", - "4 1.10e-06 0.50 0.00e+00 0.72 \n", + "1 9.03e-02 0.81 9.89e-07 0.83 \n", + "2 1.30e-05 0.86 2.26e-08 0.83 \n", + "3 3.05e-06 0.85 0.00e+00 0.83 \n", + "4 5.13e-06 0.86 0.00e+00 0.83 \n", "\n", " Training Time Validation Time \n", "epoch \n", - "1 0:07:22 0:00:25 \n", - "2 0:07:28 0:00:25 \n", - "3 0:07:29 0:00:25 \n", - "4 0:07:29 0:00:25 " + "1 0:07:23 0:00:27 \n", + "2 0:07:19 0:00:26 \n", + "3 0:07:18 0:00:26 \n", + "4 0:07:18 0:00:26 " ], "text/html": [ "\n", - "
\n", + "
\n", "
\n", "
\n", "