diff --git a/examples/causal_language_modeling/peft_lora_clm_accelerate_big_model_inference.ipynb b/examples/causal_language_modeling/peft_lora_clm_accelerate_big_model_inference.ipynb index b4c69ee..1d0ca35 100644 --- a/examples/causal_language_modeling/peft_lora_clm_accelerate_big_model_inference.ipynb +++ b/examples/causal_language_modeling/peft_lora_clm_accelerate_big_model_inference.ipynb @@ -48,70 +48,10 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "e1a3648b", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Found cached dataset raft (/home/sourab/.cache/huggingface/datasets/ought___raft/twitter_complaints/1.1.0/79c4de1312c1e3730043f7db07179c914f48403101f7124e2fe336f6f54d9f84)\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "d1160ad661de452dbce6944a881a160b", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/2 [00:00, task_type=, inference_mode=False, num_virtual_tokens=30, token_dim=1024, num_transformer_submodules=1, num_attention_heads=16, num_layers=24, encoder_hidden_size=1024, prefix_projection=False, postprocess_past_key_value_function=)" + "PrefixTuningConfig(peft_type=, base_model_name_or_path='bigscience/bloomz-560m', task_type=, inference_mode=False, num_virtual_tokens=30, token_dim=1024, num_transformer_submodules=1, num_attention_heads=16, num_layers=24, encoder_hidden_size=1024, prefix_projection=False)" ] }, - "execution_count": 11, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -1102,7 +367,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "id": "b2f91568", "metadata": {}, "outputs": [], @@ -1119,7 +384,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 14, "id": "e4fb69fc", "metadata": {}, "outputs": [ @@ -1127,750 +392,750 @@ "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:01<00:00, 5.93it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.43it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:01<00:00, 5.79it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.51it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=0: train_ppl=tensor(4.1394e+09, device='cuda:0') train_epoch_loss=tensor(22.1438, device='cuda:0') eval_ppl=tensor(1402.4835, device='cuda:0') eval_epoch_loss=tensor(7.2460, device='cuda:0')\n" + "epoch=0: train_ppl=tensor(1.8325e+09, device='cuda:0') train_epoch_loss=tensor(21.3289, device='cuda:0') eval_ppl=tensor(2713.4180, device='cuda:0') eval_epoch_loss=tensor(7.9060, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.39it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.49it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.44it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.53it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=1: train_ppl=tensor(246.8958, device='cuda:0') train_epoch_loss=tensor(5.5090, device='cuda:0') eval_ppl=tensor(62.6347, device='cuda:0') eval_epoch_loss=tensor(4.1373, device='cuda:0')\n" + "epoch=1: train_ppl=tensor(341.0600, device='cuda:0') train_epoch_loss=tensor(5.8321, device='cuda:0') eval_ppl=tensor(80.8206, device='cuda:0') eval_epoch_loss=tensor(4.3922, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.40it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.48it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.44it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.55it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=2: train_ppl=tensor(40.7671, device='cuda:0') train_epoch_loss=tensor(3.7079, device='cuda:0') eval_ppl=tensor(20.4430, device='cuda:0') eval_epoch_loss=tensor(3.0176, device='cuda:0')\n" + "epoch=2: train_ppl=tensor(59.8778, device='cuda:0') train_epoch_loss=tensor(4.0923, device='cuda:0') eval_ppl=tensor(34.4593, device='cuda:0') eval_epoch_loss=tensor(3.5398, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.37it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.52it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.45it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.55it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=3: train_ppl=tensor(13.3799, device='cuda:0') train_epoch_loss=tensor(2.5938, device='cuda:0') eval_ppl=tensor(7.8204, device='cuda:0') eval_epoch_loss=tensor(2.0567, device='cuda:0')\n" + "epoch=3: train_ppl=tensor(22.3307, device='cuda:0') train_epoch_loss=tensor(3.1060, device='cuda:0') eval_ppl=tensor(12.5947, device='cuda:0') eval_epoch_loss=tensor(2.5333, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.44it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.55it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.45it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.56it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=4: train_ppl=tensor(5.6719, device='cuda:0') train_epoch_loss=tensor(1.7355, device='cuda:0') eval_ppl=tensor(3.2507, device='cuda:0') eval_epoch_loss=tensor(1.1789, device='cuda:0')\n" + "epoch=4: train_ppl=tensor(9.1697, device='cuda:0') train_epoch_loss=tensor(2.2159, device='cuda:0') eval_ppl=tensor(4.5289, device='cuda:0') eval_epoch_loss=tensor(1.5105, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.44it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.48it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.45it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.52it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=5: train_ppl=tensor(2.4837, device='cuda:0') train_epoch_loss=tensor(0.9098, device='cuda:0') eval_ppl=tensor(1.5463, device='cuda:0') eval_epoch_loss=tensor(0.4359, device='cuda:0')\n" + "epoch=5: train_ppl=tensor(3.0172, device='cuda:0') train_epoch_loss=tensor(1.1043, device='cuda:0') eval_ppl=tensor(1.8092, device='cuda:0') eval_epoch_loss=tensor(0.5929, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.43it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.53it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.44it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.45it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=6: train_ppl=tensor(1.4864, device='cuda:0') train_epoch_loss=tensor(0.3964, device='cuda:0') eval_ppl=tensor(1.8123, device='cuda:0') eval_epoch_loss=tensor(0.5946, device='cuda:0')\n" + "epoch=6: train_ppl=tensor(1.4885, device='cuda:0') train_epoch_loss=tensor(0.3978, device='cuda:0') eval_ppl=tensor(1.4449, device='cuda:0') eval_epoch_loss=tensor(0.3680, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.45it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.49it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.43it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.48it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=7: train_ppl=tensor(1.4421, device='cuda:0') train_epoch_loss=tensor(0.3661, device='cuda:0') eval_ppl=tensor(1.6831, device='cuda:0') eval_epoch_loss=tensor(0.5206, device='cuda:0')\n" + "epoch=7: train_ppl=tensor(1.2967, device='cuda:0') train_epoch_loss=tensor(0.2598, device='cuda:0') eval_ppl=tensor(1.1587, device='cuda:0') eval_epoch_loss=tensor(0.1473, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.43it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.38it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.43it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.47it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=8: train_ppl=tensor(1.5938, device='cuda:0') train_epoch_loss=tensor(0.4661, device='cuda:0') eval_ppl=tensor(1.4380, device='cuda:0') eval_epoch_loss=tensor(0.3632, device='cuda:0')\n" + "epoch=8: train_ppl=tensor(1.1305, device='cuda:0') train_epoch_loss=tensor(0.1227, device='cuda:0') eval_ppl=tensor(1.0874, device='cuda:0') eval_epoch_loss=tensor(0.0838, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.43it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.44it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.45it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.46it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=9: train_ppl=tensor(1.2076, device='cuda:0') train_epoch_loss=tensor(0.1886, device='cuda:0') eval_ppl=tensor(1.2875, device='cuda:0') eval_epoch_loss=tensor(0.2527, device='cuda:0')\n" + "epoch=9: train_ppl=tensor(1.1608, device='cuda:0') train_epoch_loss=tensor(0.1491, device='cuda:0') eval_ppl=tensor(1.1461, device='cuda:0') eval_epoch_loss=tensor(0.1364, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.42it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.51it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.45it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.45it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=10: train_ppl=tensor(1.2741, device='cuda:0') train_epoch_loss=tensor(0.2422, device='cuda:0') eval_ppl=tensor(1.2635, device='cuda:0') eval_epoch_loss=tensor(0.2339, device='cuda:0')\n" + "epoch=10: train_ppl=tensor(1.3172, device='cuda:0') train_epoch_loss=tensor(0.2755, device='cuda:0') eval_ppl=tensor(1.1320, device='cuda:0') eval_epoch_loss=tensor(0.1240, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.42it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.48it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.44it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.46it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=11: train_ppl=tensor(1.2219, device='cuda:0') train_epoch_loss=tensor(0.2004, device='cuda:0') eval_ppl=tensor(1.1836, device='cuda:0') eval_epoch_loss=tensor(0.1686, device='cuda:0')\n" + "epoch=11: train_ppl=tensor(1.1437, device='cuda:0') train_epoch_loss=tensor(0.1343, device='cuda:0') eval_ppl=tensor(1.0676, device='cuda:0') eval_epoch_loss=tensor(0.0654, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.43it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.52it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.43it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.43it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=12: train_ppl=tensor(1.1773, device='cuda:0') train_epoch_loss=tensor(0.1632, device='cuda:0') eval_ppl=tensor(1.1829, device='cuda:0') eval_epoch_loss=tensor(0.1680, device='cuda:0')\n" + "epoch=12: train_ppl=tensor(1.0651, device='cuda:0') train_epoch_loss=tensor(0.0630, device='cuda:0') eval_ppl=tensor(1.0735, device='cuda:0') eval_epoch_loss=tensor(0.0710, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.41it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.53it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.46it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.47it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=13: train_ppl=tensor(1.1660, device='cuda:0') train_epoch_loss=tensor(0.1536, device='cuda:0') eval_ppl=tensor(1.1448, device='cuda:0') eval_epoch_loss=tensor(0.1353, device='cuda:0')\n" + "epoch=13: train_ppl=tensor(1.0607, device='cuda:0') train_epoch_loss=tensor(0.0589, device='cuda:0') eval_ppl=tensor(1.0399, device='cuda:0') eval_epoch_loss=tensor(0.0391, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.42it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.51it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.43it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.44it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=14: train_ppl=tensor(1.1428, device='cuda:0') train_epoch_loss=tensor(0.1334, device='cuda:0') eval_ppl=tensor(1.1405, device='cuda:0') eval_epoch_loss=tensor(0.1315, device='cuda:0')\n" + "epoch=14: train_ppl=tensor(1.0351, device='cuda:0') train_epoch_loss=tensor(0.0345, device='cuda:0') eval_ppl=tensor(1.0260, device='cuda:0') eval_epoch_loss=tensor(0.0257, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.42it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.48it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.44it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.43it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=15: train_ppl=tensor(1.1204, device='cuda:0') train_epoch_loss=tensor(0.1137, device='cuda:0') eval_ppl=tensor(1.1171, device='cuda:0') eval_epoch_loss=tensor(0.1108, device='cuda:0')\n" + "epoch=15: train_ppl=tensor(1.0217, device='cuda:0') train_epoch_loss=tensor(0.0215, device='cuda:0') eval_ppl=tensor(1.0168, device='cuda:0') eval_epoch_loss=tensor(0.0167, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.42it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.50it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.43it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.28it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=16: train_ppl=tensor(1.1038, device='cuda:0') train_epoch_loss=tensor(0.0988, device='cuda:0') eval_ppl=tensor(1.0856, device='cuda:0') eval_epoch_loss=tensor(0.0821, device='cuda:0')\n" + "epoch=16: train_ppl=tensor(1.0152, device='cuda:0') train_epoch_loss=tensor(0.0151, device='cuda:0') eval_ppl=tensor(1.0117, device='cuda:0') eval_epoch_loss=tensor(0.0116, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.43it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.53it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.43it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.41it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=17: train_ppl=tensor(1.0810, device='cuda:0') train_epoch_loss=tensor(0.0779, device='cuda:0') eval_ppl=tensor(1.0642, device='cuda:0') eval_epoch_loss=tensor(0.0623, device='cuda:0')\n" + "epoch=17: train_ppl=tensor(1.0102, device='cuda:0') train_epoch_loss=tensor(0.0101, device='cuda:0') eval_ppl=tensor(1.0088, device='cuda:0') eval_epoch_loss=tensor(0.0088, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.41it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.48it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.29it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.25it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=18: train_ppl=tensor(1.0586, device='cuda:0') train_epoch_loss=tensor(0.0569, device='cuda:0') eval_ppl=tensor(1.0542, device='cuda:0') eval_epoch_loss=tensor(0.0528, device='cuda:0')\n" + "epoch=18: train_ppl=tensor(1.0083, device='cuda:0') train_epoch_loss=tensor(0.0083, device='cuda:0') eval_ppl=tensor(1.0073, device='cuda:0') eval_epoch_loss=tensor(0.0073, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.43it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.48it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.43it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.46it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=19: train_ppl=tensor(1.0449, device='cuda:0') train_epoch_loss=tensor(0.0439, device='cuda:0') eval_ppl=tensor(1.0455, device='cuda:0') eval_epoch_loss=tensor(0.0445, device='cuda:0')\n" + "epoch=19: train_ppl=tensor(1.0070, device='cuda:0') train_epoch_loss=tensor(0.0070, device='cuda:0') eval_ppl=tensor(1.0064, device='cuda:0') eval_epoch_loss=tensor(0.0063, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.43it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.47it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.43it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.51it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=20: train_ppl=tensor(1.0310, device='cuda:0') train_epoch_loss=tensor(0.0306, device='cuda:0') eval_ppl=tensor(1.0159, device='cuda:0') eval_epoch_loss=tensor(0.0158, device='cuda:0')\n" + "epoch=20: train_ppl=tensor(1.0059, device='cuda:0') train_epoch_loss=tensor(0.0059, device='cuda:0') eval_ppl=tensor(1.0057, device='cuda:0') eval_epoch_loss=tensor(0.0057, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.43it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.42it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.43it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.47it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=21: train_ppl=tensor(1.0200, device='cuda:0') train_epoch_loss=tensor(0.0198, device='cuda:0') eval_ppl=tensor(1.0333, device='cuda:0') eval_epoch_loss=tensor(0.0327, device='cuda:0')\n" + "epoch=21: train_ppl=tensor(1.0056, device='cuda:0') train_epoch_loss=tensor(0.0056, device='cuda:0') eval_ppl=tensor(1.0052, device='cuda:0') eval_epoch_loss=tensor(0.0052, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.43it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.46it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.41it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.33it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=22: train_ppl=tensor(1.0209, device='cuda:0') train_epoch_loss=tensor(0.0207, device='cuda:0') eval_ppl=tensor(1.0187, device='cuda:0') eval_epoch_loss=tensor(0.0185, device='cuda:0')\n" + "epoch=22: train_ppl=tensor(1.0050, device='cuda:0') train_epoch_loss=tensor(0.0050, device='cuda:0') eval_ppl=tensor(1.0049, device='cuda:0') eval_epoch_loss=tensor(0.0049, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.43it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.40it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.39it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.44it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=23: train_ppl=tensor(1.0098, device='cuda:0') train_epoch_loss=tensor(0.0097, device='cuda:0') eval_ppl=tensor(1.0097, device='cuda:0') eval_epoch_loss=tensor(0.0096, device='cuda:0')\n" + "epoch=23: train_ppl=tensor(1.0049, device='cuda:0') train_epoch_loss=tensor(0.0049, device='cuda:0') eval_ppl=tensor(1.0045, device='cuda:0') eval_epoch_loss=tensor(0.0045, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.45it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.50it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.42it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.49it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=24: train_ppl=tensor(1.0120, device='cuda:0') train_epoch_loss=tensor(0.0120, device='cuda:0') eval_ppl=tensor(1.0162, device='cuda:0') eval_epoch_loss=tensor(0.0161, device='cuda:0')\n" + "epoch=24: train_ppl=tensor(1.0043, device='cuda:0') train_epoch_loss=tensor(0.0043, device='cuda:0') eval_ppl=tensor(1.0043, device='cuda:0') eval_epoch_loss=tensor(0.0043, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.43it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.49it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.46it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.47it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=25: train_ppl=tensor(1.0120, device='cuda:0') train_epoch_loss=tensor(0.0119, device='cuda:0') eval_ppl=tensor(1.0090, device='cuda:0') eval_epoch_loss=tensor(0.0090, device='cuda:0')\n" + "epoch=25: train_ppl=tensor(1.0042, device='cuda:0') train_epoch_loss=tensor(0.0042, device='cuda:0') eval_ppl=tensor(1.0040, device='cuda:0') eval_epoch_loss=tensor(0.0040, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.43it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.40it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.44it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.52it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=26: train_ppl=tensor(1.0125, device='cuda:0') train_epoch_loss=tensor(0.0124, device='cuda:0') eval_ppl=tensor(1.0079, device='cuda:0') eval_epoch_loss=tensor(0.0079, device='cuda:0')\n" + "epoch=26: train_ppl=tensor(1.0039, device='cuda:0') train_epoch_loss=tensor(0.0039, device='cuda:0') eval_ppl=tensor(1.0039, device='cuda:0') eval_epoch_loss=tensor(0.0039, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.42it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.47it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.44it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.48it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=27: train_ppl=tensor(1.0072, device='cuda:0') train_epoch_loss=tensor(0.0072, device='cuda:0') eval_ppl=tensor(1.0043, device='cuda:0') eval_epoch_loss=tensor(0.0043, device='cuda:0')\n" + "epoch=27: train_ppl=tensor(1.0038, device='cuda:0') train_epoch_loss=tensor(0.0038, device='cuda:0') eval_ppl=tensor(1.0037, device='cuda:0') eval_epoch_loss=tensor(0.0037, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.42it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.44it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.46it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.54it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=28: train_ppl=tensor(1.0044, device='cuda:0') train_epoch_loss=tensor(0.0044, device='cuda:0') eval_ppl=tensor(1.0049, device='cuda:0') eval_epoch_loss=tensor(0.0048, device='cuda:0')\n" + "epoch=28: train_ppl=tensor(1.0036, device='cuda:0') train_epoch_loss=tensor(0.0036, device='cuda:0') eval_ppl=tensor(1.0035, device='cuda:0') eval_epoch_loss=tensor(0.0035, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.42it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.51it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.45it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.53it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=29: train_ppl=tensor(1.0047, device='cuda:0') train_epoch_loss=tensor(0.0047, device='cuda:0') eval_ppl=tensor(1.0038, device='cuda:0') eval_epoch_loss=tensor(0.0038, device='cuda:0')\n" + "epoch=29: train_ppl=tensor(1.0034, device='cuda:0') train_epoch_loss=tensor(0.0034, device='cuda:0') eval_ppl=tensor(1.0034, device='cuda:0') eval_epoch_loss=tensor(0.0034, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.41it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.52it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.43it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.47it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=30: train_ppl=tensor(1.0037, device='cuda:0') train_epoch_loss=tensor(0.0037, device='cuda:0') eval_ppl=tensor(1.0035, device='cuda:0') eval_epoch_loss=tensor(0.0035, device='cuda:0')\n" + "epoch=30: train_ppl=tensor(1.0034, device='cuda:0') train_epoch_loss=tensor(0.0034, device='cuda:0') eval_ppl=tensor(1.0033, device='cuda:0') eval_epoch_loss=tensor(0.0033, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.42it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.47it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.43it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.47it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=31: train_ppl=tensor(1.0033, device='cuda:0') train_epoch_loss=tensor(0.0033, device='cuda:0') eval_ppl=tensor(1.0031, device='cuda:0') eval_epoch_loss=tensor(0.0031, device='cuda:0')\n" + "epoch=31: train_ppl=tensor(1.0033, device='cuda:0') train_epoch_loss=tensor(0.0033, device='cuda:0') eval_ppl=tensor(1.0032, device='cuda:0') eval_epoch_loss=tensor(0.0032, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.43it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.48it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.46it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.51it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=32: train_ppl=tensor(1.0029, device='cuda:0') train_epoch_loss=tensor(0.0029, device='cuda:0') eval_ppl=tensor(1.0029, device='cuda:0') eval_epoch_loss=tensor(0.0029, device='cuda:0')\n" + "epoch=32: train_ppl=tensor(1.0031, device='cuda:0') train_epoch_loss=tensor(0.0031, device='cuda:0') eval_ppl=tensor(1.0031, device='cuda:0') eval_epoch_loss=tensor(0.0031, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.42it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.45it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.44it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.43it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=33: train_ppl=tensor(1.0027, device='cuda:0') train_epoch_loss=tensor(0.0027, device='cuda:0') eval_ppl=tensor(1.0028, device='cuda:0') eval_epoch_loss=tensor(0.0028, device='cuda:0')\n" + "epoch=33: train_ppl=tensor(1.0030, device='cuda:0') train_epoch_loss=tensor(0.0030, device='cuda:0') eval_ppl=tensor(1.0030, device='cuda:0') eval_epoch_loss=tensor(0.0030, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.42it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.50it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.45it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.46it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=34: train_ppl=tensor(1.0026, device='cuda:0') train_epoch_loss=tensor(0.0026, device='cuda:0') eval_ppl=tensor(1.0027, device='cuda:0') eval_epoch_loss=tensor(0.0027, device='cuda:0')\n" + "epoch=34: train_ppl=tensor(1.0029, device='cuda:0') train_epoch_loss=tensor(0.0029, device='cuda:0') eval_ppl=tensor(1.0029, device='cuda:0') eval_epoch_loss=tensor(0.0029, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.43it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.49it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.45it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.47it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=35: train_ppl=tensor(1.0026, device='cuda:0') train_epoch_loss=tensor(0.0026, device='cuda:0') eval_ppl=tensor(1.0026, device='cuda:0') eval_epoch_loss=tensor(0.0026, device='cuda:0')\n" + "epoch=35: train_ppl=tensor(1.0028, device='cuda:0') train_epoch_loss=tensor(0.0028, device='cuda:0') eval_ppl=tensor(1.0029, device='cuda:0') eval_epoch_loss=tensor(0.0029, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.30it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.03it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.45it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.45it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=36: train_ppl=tensor(1.0025, device='cuda:0') train_epoch_loss=tensor(0.0025, device='cuda:0') eval_ppl=tensor(1.0025, device='cuda:0') eval_epoch_loss=tensor(0.0025, device='cuda:0')\n" + "epoch=36: train_ppl=tensor(1.0027, device='cuda:0') train_epoch_loss=tensor(0.0027, device='cuda:0') eval_ppl=tensor(1.0028, device='cuda:0') eval_epoch_loss=tensor(0.0028, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.42it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.47it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.45it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.47it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=37: train_ppl=tensor(1.0024, device='cuda:0') train_epoch_loss=tensor(0.0023, device='cuda:0') eval_ppl=tensor(1.0024, device='cuda:0') eval_epoch_loss=tensor(0.0024, device='cuda:0')\n" + "epoch=37: train_ppl=tensor(1.0027, device='cuda:0') train_epoch_loss=tensor(0.0027, device='cuda:0') eval_ppl=tensor(1.0027, device='cuda:0') eval_epoch_loss=tensor(0.0027, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.40it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.47it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.45it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.46it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=38: train_ppl=tensor(1.0023, device='cuda:0') train_epoch_loss=tensor(0.0023, device='cuda:0') eval_ppl=tensor(1.0023, device='cuda:0') eval_epoch_loss=tensor(0.0023, device='cuda:0')\n" + "epoch=38: train_ppl=tensor(1.0027, device='cuda:0') train_epoch_loss=tensor(0.0027, device='cuda:0') eval_ppl=tensor(1.0027, device='cuda:0') eval_epoch_loss=tensor(0.0027, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.42it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.47it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.44it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.43it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=39: train_ppl=tensor(1.0023, device='cuda:0') train_epoch_loss=tensor(0.0023, device='cuda:0') eval_ppl=tensor(1.0023, device='cuda:0') eval_epoch_loss=tensor(0.0023, device='cuda:0')\n" + "epoch=39: train_ppl=tensor(1.0025, device='cuda:0') train_epoch_loss=tensor(0.0025, device='cuda:0') eval_ppl=tensor(1.0026, device='cuda:0') eval_epoch_loss=tensor(0.0026, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.42it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.51it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.44it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.47it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=40: train_ppl=tensor(1.0022, device='cuda:0') train_epoch_loss=tensor(0.0022, device='cuda:0') eval_ppl=tensor(1.0023, device='cuda:0') eval_epoch_loss=tensor(0.0022, device='cuda:0')\n" + "epoch=40: train_ppl=tensor(1.0026, device='cuda:0') train_epoch_loss=tensor(0.0026, device='cuda:0') eval_ppl=tensor(1.0026, device='cuda:0') eval_epoch_loss=tensor(0.0026, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.43it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.46it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.44it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.33it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=41: train_ppl=tensor(1.0022, device='cuda:0') train_epoch_loss=tensor(0.0022, device='cuda:0') eval_ppl=tensor(1.0022, device='cuda:0') eval_epoch_loss=tensor(0.0022, device='cuda:0')\n" + "epoch=41: train_ppl=tensor(1.0025, device='cuda:0') train_epoch_loss=tensor(0.0025, device='cuda:0') eval_ppl=tensor(1.0025, device='cuda:0') eval_epoch_loss=tensor(0.0025, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.43it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.43it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.42it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.49it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=42: train_ppl=tensor(1.0021, device='cuda:0') train_epoch_loss=tensor(0.0021, device='cuda:0') eval_ppl=tensor(1.0022, device='cuda:0') eval_epoch_loss=tensor(0.0022, device='cuda:0')\n" + "epoch=42: train_ppl=tensor(1.0024, device='cuda:0') train_epoch_loss=tensor(0.0024, device='cuda:0') eval_ppl=tensor(1.0025, device='cuda:0') eval_epoch_loss=tensor(0.0025, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.43it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.49it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.44it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.47it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=43: train_ppl=tensor(1.0022, device='cuda:0') train_epoch_loss=tensor(0.0022, device='cuda:0') eval_ppl=tensor(1.0021, device='cuda:0') eval_epoch_loss=tensor(0.0021, device='cuda:0')\n" + "epoch=43: train_ppl=tensor(1.0024, device='cuda:0') train_epoch_loss=tensor(0.0024, device='cuda:0') eval_ppl=tensor(1.0025, device='cuda:0') eval_epoch_loss=tensor(0.0025, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.43it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.46it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.44it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.43it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=44: train_ppl=tensor(1.0021, device='cuda:0') train_epoch_loss=tensor(0.0021, device='cuda:0') eval_ppl=tensor(1.0021, device='cuda:0') eval_epoch_loss=tensor(0.0021, device='cuda:0')\n" + "epoch=44: train_ppl=tensor(1.0025, device='cuda:0') train_epoch_loss=tensor(0.0024, device='cuda:0') eval_ppl=tensor(1.0024, device='cuda:0') eval_epoch_loss=tensor(0.0024, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.42it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.40it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.43it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.50it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=45: train_ppl=tensor(1.0020, device='cuda:0') train_epoch_loss=tensor(0.0020, device='cuda:0') eval_ppl=tensor(1.0021, device='cuda:0') eval_epoch_loss=tensor(0.0021, device='cuda:0')\n" + "epoch=45: train_ppl=tensor(1.0024, device='cuda:0') train_epoch_loss=tensor(0.0024, device='cuda:0') eval_ppl=tensor(1.0024, device='cuda:0') eval_epoch_loss=tensor(0.0024, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.41it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.43it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.43it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.49it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=46: train_ppl=tensor(1.0021, device='cuda:0') train_epoch_loss=tensor(0.0021, device='cuda:0') eval_ppl=tensor(1.0021, device='cuda:0') eval_epoch_loss=tensor(0.0021, device='cuda:0')\n" + "epoch=46: train_ppl=tensor(1.0024, device='cuda:0') train_epoch_loss=tensor(0.0024, device='cuda:0') eval_ppl=tensor(1.0024, device='cuda:0') eval_epoch_loss=tensor(0.0024, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.40it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.45it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.42it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.39it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=47: train_ppl=tensor(1.0021, device='cuda:0') train_epoch_loss=tensor(0.0021, device='cuda:0') eval_ppl=tensor(1.0021, device='cuda:0') eval_epoch_loss=tensor(0.0021, device='cuda:0')\n" + "epoch=47: train_ppl=tensor(1.0023, device='cuda:0') train_epoch_loss=tensor(0.0023, device='cuda:0') eval_ppl=tensor(1.0024, device='cuda:0') eval_epoch_loss=tensor(0.0024, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.41it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.43it/s]\n" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.40it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.40it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=48: train_ppl=tensor(1.0020, device='cuda:0') train_epoch_loss=tensor(0.0020, device='cuda:0') eval_ppl=tensor(1.0021, device='cuda:0') eval_epoch_loss=tensor(0.0021, device='cuda:0')\n" + "epoch=48: train_ppl=tensor(1.0023, device='cuda:0') train_epoch_loss=tensor(0.0023, device='cuda:0') eval_ppl=tensor(1.0024, device='cuda:0') eval_epoch_loss=tensor(0.0024, device='cuda:0')\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.41it/s]\n", - "100%|█████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 22.42it/s]" + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 11.41it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 21.87it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "epoch=49: train_ppl=tensor(1.0020, device='cuda:0') train_epoch_loss=tensor(0.0020, device='cuda:0') eval_ppl=tensor(1.0021, device='cuda:0') eval_epoch_loss=tensor(0.0021, device='cuda:0')\n" + "epoch=49: train_ppl=tensor(1.0023, device='cuda:0') train_epoch_loss=tensor(0.0023, device='cuda:0') eval_ppl=tensor(1.0024, device='cuda:0') eval_epoch_loss=tensor(0.0024, device='cuda:0')\n" ] }, { @@ -1920,7 +1185,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 36, "id": "53752a7b", "metadata": {}, "outputs": [ @@ -1928,32 +1193,105 @@ "name": "stdout", "output_type": "stream", "text": [ - "@VW @QuirkCars some unauthorized work done on my engine now throwing a check engine light about a week later. Very upset.\n", - "{'input_ids': tensor([[227985, 5484, 915, 2566, 57, 58, 2566, 5232, 132511,\n", - " 38, 4599, 3331, 1035, 192352, 2909, 11541, 664, 2670,\n", - " 22218, 5840, 108218, 267, 7010, 22218, 12490, 3638, 267,\n", - " 14319, 10494, 17, 93269, 123055, 17, 77658, 915, 210]]), 'attention_mask': tensor([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", - " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]])}\n", - "tensor([[227985, 5484, 915, 2566, 57, 58, 2566, 5232, 132511,\n", - " 38, 4599, 3331, 1035, 192352, 2909, 11541, 664, 2670,\n", - " 22218, 5840, 108218, 267, 7010, 22218, 12490, 3638, 267,\n", - " 14319, 10494, 17, 93269, 123055, 17, 77658, 915, 210,\n", - " 16449, 5952, 3, 3, 3, 3, 3, 3, 3,\n", + "Hey @nytimes your link to cancel my subscription isn't working and nobody is answering the chat. Please don't play that kind of stupid game.\n", + "{'input_ids': tensor([[227985, 5484, 915, 54078, 2566, 7782, 24502, 2632, 8989,\n", + " 427, 36992, 2670, 140711, 21994, 10789, 530, 88399, 632,\n", + " 183542, 368, 44799, 17, 29901, 5926, 7229, 861, 11596,\n", + " 461, 78851, 14775, 17, 77658, 915, 210]]), 'attention_mask': tensor([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", + " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]])}\n", + "tensor([[227985, 5484, 915, 54078, 2566, 7782, 24502, 2632, 8989,\n", + " 427, 36992, 2670, 140711, 21994, 10789, 530, 88399, 632,\n", + " 183542, 368, 44799, 17, 29901, 5926, 7229, 861, 11596,\n", + " 461, 78851, 14775, 17, 77658, 915, 210, 16449, 5952,\n", " 3]], device='cuda:0')\n", - "['Tweet text : @VW @QuirkCars some unauthorized work done on my engine now throwing a check engine light about a week later. Very upset. Label : complaint']\n" + "[\"Tweet text : Hey @nytimes your link to cancel my subscription isn't working and nobody is answering the chat. Please don't play that kind of stupid game. Label : complaint\"]\n" ] } ], "source": [ "model.eval()\n", - "i = 12\n", + "i = 16\n", "inputs = tokenizer(f'{text_column} : {dataset[\"test\"][i][\"Tweet text\"]} Label : ', return_tensors=\"pt\")\n", "print(dataset[\"test\"][i][\"Tweet text\"])\n", "print(inputs)\n", "\n", "with torch.no_grad():\n", " inputs = {k: v.to(device) for k, v in inputs.items()}\n", - " outputs = model.generate(input_ids=inputs[\"input_ids\"], attention_mask=inputs[\"attention_mask\"], max_new_tokens=10)\n", + " outputs = model.generate(input_ids=inputs[\"input_ids\"], attention_mask=inputs[\"attention_mask\"], max_new_tokens=10, eos_token_id=3)\n", + " print(outputs)\n", + " print(tokenizer.batch_decode(outputs.detach().cpu().numpy(), skip_special_tokens=True))\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "24041ee1", + "metadata": {}, + "outputs": [], + "source": [ + "# saving model\n", + "peft_model_id = f\"{model_name_or_path}_{peft_config.peft_type}_{peft_config.task_type}\"\n", + "model.save_pretrained(peft_model_id)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "527eeaa4", + "metadata": {}, + "outputs": [], + "source": [ + "ckpt = f\"{peft_model_id}/adapter_model.bin\"\n", + "!du -h $ckpt" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "b19f5a90", + "metadata": {}, + "outputs": [], + "source": [ + "from peft import PeftModel, PeftConfig\n", + "peft_model_id = f\"{model_name_or_path}_{peft_config.peft_type}_{peft_config.task_type}\"\n", + "\n", + "config = PeftConfig.from_pretrained(peft_model_id)\n", + "model = AutoModelForCausalLM.from_pretrained(config.base_model_name_or_path)\n", + "model = PeftModel.from_pretrained(model, peft_model_id)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "a11a3768", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "@greateranglia Ok thanks...\n", + "{'input_ids': tensor([[227985, 5484, 915, 2566, 14173, 2960, 29906, 387, 20706,\n", + " 49337, 1369, 77658, 915, 210]]), 'attention_mask': tensor([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]])}\n", + "tensor([[227985, 5484, 915, 2566, 14173, 2960, 29906, 387, 20706,\n", + " 49337, 1369, 77658, 915, 210, 1936, 106863, 3]],\n", + " device='cuda:0')\n", + "['Tweet text : @greateranglia Ok thanks... Label : no complaint']\n" + ] + } + ], + "source": [ + "model.to(device)\n", + "model.eval()\n", + "i = 4\n", + "inputs = tokenizer(f'{text_column} : {dataset[\"test\"][i][\"Tweet text\"]} Label : ', return_tensors=\"pt\")\n", + "print(dataset[\"test\"][i][\"Tweet text\"])\n", + "print(inputs)\n", + "\n", + "with torch.no_grad():\n", + " inputs = {k: v.to(device) for k, v in inputs.items()}\n", + " outputs = model.generate(input_ids=inputs[\"input_ids\"], attention_mask=inputs[\"attention_mask\"], max_new_tokens=10, eos_token_id=3)\n", " print(outputs)\n", " print(tokenizer.batch_decode(outputs.detach().cpu().numpy(), skip_special_tokens=True))\n", " " @@ -1962,561 +1300,23 @@ { "cell_type": "code", "execution_count": null, - "id": "d8ba1f8c", + "id": "f890c951", "metadata": {}, "outputs": [], - "source": [ - "model.eval()\n", - "eval_loss = 0\n", - "eval_preds = []\n", - "for step, batch in enumerate(tqdm(test_dataloader)):\n", - " batch = {k: v.to(device) for k, v in batch.items() if k!=\"labels\"}\n", - " with torch.no_grad():\n", - " outputs = model.generate(**batch, max_new_tokens=10)\n", - " eval_preds.extend(tokenizer.batch_decode(outputs.detach().cpu().numpy(), skip_special_tokens=True))\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "252f733d", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'prompt_embeddings': tensor([[ 0.7356, -1.0849, -0.4560, ..., 1.0242, 0.3908, -0.8000],\n", - " [-1.5587, -0.3595, 0.1289, ..., 0.5427, 1.0976, 1.7641],\n", - " [-0.2113, -1.4675, -0.5976, ..., 0.1691, -0.5843, -0.2658],\n", - " ...,\n", - " [ 2.1275, 0.7253, 0.0323, ..., -1.2285, -0.5614, 0.0370],\n", - " [-0.2258, -1.5149, 0.0685, ..., -1.4476, -0.1348, -0.6910],\n", - " [ 0.9089, 0.3947, -1.5271, ..., 1.9079, 0.6473, 0.7306]])}\n" - ] - } - ], - "source": [ - "# saving model\n", - "state_dict = get_peft_model_state_dict(model)\n", - "torch.save(state_dict, checkpoint_name)\n", - "print(state_dict)" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "4928c7f1", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n", - "To disable this warning, you can either:\n", - "\t- Avoid using `tokenizers` before the fork if possible\n", - "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n", - "5,7M\ttwitter_complaints_bigscience_bloomz-560m_PREFIX_TUNING_CAUSAL_LM_v1.pt\r\n" - ] - } - ], - "source": [ - "!du -h $checkpoint_name" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "4d9476e1", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "PrefixTuningConfig(pet_type=, task_type=, inference_mode=True, num_virtual_tokens=30, token_dim=None, num_transformer_submodules=1, num_attention_heads=None, num_layers=None, encoder_hidden_size=None, prefix_projection=False, postprocess_past_key_value_function=)\n", - "trainable params: 1474560 || all params: 560689152 || trainable%: 0.26299064191632515\n" - ] - } - ], - "source": [ - "max_memory={0: \"1GIB\", 1: \"1GIB\", 2: \"2GIB\", 3: \"2GIB\", \"cpu\":\"30GB\"}\n", - "\n", - "peft_config.inference_mode = True\n", - "print(peft_config)\n", - "model = AutoModelForCausalLM.from_pretrained(model_name_or_path, device_map=\"auto\", max_memory=max_memory)\n", - "model = peft_model_load_and_dispatch(model, torch.load(checkpoint_name), peft_config, max_memory)\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "5c7b3d71", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "PETModelForCausalLM(\n", - " (base_model): BloomForCausalLM(\n", - " (transformer): BloomModel(\n", - " (word_embeddings): Embedding(250880, 1024)\n", - " (word_embeddings_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (h): ModuleList(\n", - " (0): BloomBlock(\n", - " (input_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (self_attention): BloomAttention(\n", - " (query_key_value): Linear(in_features=1024, out_features=3072, bias=True)\n", - " (dense): Linear(in_features=1024, out_features=1024, bias=True)\n", - " (attention_dropout): Dropout(p=0.0, inplace=False)\n", - " )\n", - " (post_attention_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (mlp): BloomMLP(\n", - " (dense_h_to_4h): Linear(in_features=1024, out_features=4096, bias=True)\n", - " (gelu_impl): BloomGelu()\n", - " (dense_4h_to_h): Linear(in_features=4096, out_features=1024, bias=True)\n", - " )\n", - " )\n", - " (1): BloomBlock(\n", - " (input_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (self_attention): BloomAttention(\n", - " (query_key_value): Linear(in_features=1024, out_features=3072, bias=True)\n", - " (dense): Linear(in_features=1024, out_features=1024, bias=True)\n", - " (attention_dropout): Dropout(p=0.0, inplace=False)\n", - " )\n", - " (post_attention_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (mlp): BloomMLP(\n", - " (dense_h_to_4h): Linear(in_features=1024, out_features=4096, bias=True)\n", - " (gelu_impl): BloomGelu()\n", - " (dense_4h_to_h): Linear(in_features=4096, out_features=1024, bias=True)\n", - " )\n", - " )\n", - " (2): BloomBlock(\n", - " (input_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (self_attention): BloomAttention(\n", - " (query_key_value): Linear(in_features=1024, out_features=3072, bias=True)\n", - " (dense): Linear(in_features=1024, out_features=1024, bias=True)\n", - " (attention_dropout): Dropout(p=0.0, inplace=False)\n", - " )\n", - " (post_attention_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (mlp): BloomMLP(\n", - " (dense_h_to_4h): Linear(in_features=1024, out_features=4096, bias=True)\n", - " (gelu_impl): BloomGelu()\n", - " (dense_4h_to_h): Linear(in_features=4096, out_features=1024, bias=True)\n", - " )\n", - " )\n", - " (3): BloomBlock(\n", - " (input_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (self_attention): BloomAttention(\n", - " (query_key_value): Linear(in_features=1024, out_features=3072, bias=True)\n", - " (dense): Linear(in_features=1024, out_features=1024, bias=True)\n", - " (attention_dropout): Dropout(p=0.0, inplace=False)\n", - " )\n", - " (post_attention_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (mlp): BloomMLP(\n", - " (dense_h_to_4h): Linear(in_features=1024, out_features=4096, bias=True)\n", - " (gelu_impl): BloomGelu()\n", - " (dense_4h_to_h): Linear(in_features=4096, out_features=1024, bias=True)\n", - " )\n", - " )\n", - " (4): BloomBlock(\n", - " (input_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (self_attention): BloomAttention(\n", - " (query_key_value): Linear(in_features=1024, out_features=3072, bias=True)\n", - " (dense): Linear(in_features=1024, out_features=1024, bias=True)\n", - " (attention_dropout): Dropout(p=0.0, inplace=False)\n", - " )\n", - " (post_attention_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (mlp): BloomMLP(\n", - " (dense_h_to_4h): Linear(in_features=1024, out_features=4096, bias=True)\n", - " (gelu_impl): BloomGelu()\n", - " (dense_4h_to_h): Linear(in_features=4096, out_features=1024, bias=True)\n", - " )\n", - " )\n", - " (5): BloomBlock(\n", - " (input_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (self_attention): BloomAttention(\n", - " (query_key_value): Linear(in_features=1024, out_features=3072, bias=True)\n", - " (dense): Linear(in_features=1024, out_features=1024, bias=True)\n", - " (attention_dropout): Dropout(p=0.0, inplace=False)\n", - " )\n", - " (post_attention_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (mlp): BloomMLP(\n", - " (dense_h_to_4h): Linear(in_features=1024, out_features=4096, bias=True)\n", - " (gelu_impl): BloomGelu()\n", - " (dense_4h_to_h): Linear(in_features=4096, out_features=1024, bias=True)\n", - " )\n", - " )\n", - " (6): BloomBlock(\n", - " (input_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (self_attention): BloomAttention(\n", - " (query_key_value): Linear(in_features=1024, out_features=3072, bias=True)\n", - " (dense): Linear(in_features=1024, out_features=1024, bias=True)\n", - " (attention_dropout): Dropout(p=0.0, inplace=False)\n", - " )\n", - " (post_attention_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (mlp): BloomMLP(\n", - " (dense_h_to_4h): Linear(in_features=1024, out_features=4096, bias=True)\n", - " (gelu_impl): BloomGelu()\n", - " (dense_4h_to_h): Linear(in_features=4096, out_features=1024, bias=True)\n", - " )\n", - " )\n", - " (7): BloomBlock(\n", - " (input_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (self_attention): BloomAttention(\n", - " (query_key_value): Linear(in_features=1024, out_features=3072, bias=True)\n", - " (dense): Linear(in_features=1024, out_features=1024, bias=True)\n", - " (attention_dropout): Dropout(p=0.0, inplace=False)\n", - " )\n", - " (post_attention_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (mlp): BloomMLP(\n", - " (dense_h_to_4h): Linear(in_features=1024, out_features=4096, bias=True)\n", - " (gelu_impl): BloomGelu()\n", - " (dense_4h_to_h): Linear(in_features=4096, out_features=1024, bias=True)\n", - " )\n", - " )\n", - " (8): BloomBlock(\n", - " (input_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (self_attention): BloomAttention(\n", - " (query_key_value): Linear(in_features=1024, out_features=3072, bias=True)\n", - " (dense): Linear(in_features=1024, out_features=1024, bias=True)\n", - " (attention_dropout): Dropout(p=0.0, inplace=False)\n", - " )\n", - " (post_attention_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (mlp): BloomMLP(\n", - " (dense_h_to_4h): Linear(in_features=1024, out_features=4096, bias=True)\n", - " (gelu_impl): BloomGelu()\n", - " (dense_4h_to_h): Linear(in_features=4096, out_features=1024, bias=True)\n", - " )\n", - " )\n", - " (9): BloomBlock(\n", - " (input_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (self_attention): BloomAttention(\n", - " (query_key_value): Linear(in_features=1024, out_features=3072, bias=True)\n", - " (dense): Linear(in_features=1024, out_features=1024, bias=True)\n", - " (attention_dropout): Dropout(p=0.0, inplace=False)\n", - " )\n", - " (post_attention_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (mlp): BloomMLP(\n", - " (dense_h_to_4h): Linear(in_features=1024, out_features=4096, bias=True)\n", - " (gelu_impl): BloomGelu()\n", - " (dense_4h_to_h): Linear(in_features=4096, out_features=1024, bias=True)\n", - " )\n", - " )\n", - " (10): BloomBlock(\n", - " (input_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (self_attention): BloomAttention(\n", - " (query_key_value): Linear(in_features=1024, out_features=3072, bias=True)\n", - " (dense): Linear(in_features=1024, out_features=1024, bias=True)\n", - " (attention_dropout): Dropout(p=0.0, inplace=False)\n", - " )\n", - " (post_attention_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (mlp): BloomMLP(\n", - " (dense_h_to_4h): Linear(in_features=1024, out_features=4096, bias=True)\n", - " (gelu_impl): BloomGelu()\n", - " (dense_4h_to_h): Linear(in_features=4096, out_features=1024, bias=True)\n", - " )\n", - " )\n", - " (11): BloomBlock(\n", - " (input_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (self_attention): BloomAttention(\n", - " (query_key_value): Linear(in_features=1024, out_features=3072, bias=True)\n", - " (dense): Linear(in_features=1024, out_features=1024, bias=True)\n", - " (attention_dropout): Dropout(p=0.0, inplace=False)\n", - " )\n", - " (post_attention_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (mlp): BloomMLP(\n", - " (dense_h_to_4h): Linear(in_features=1024, out_features=4096, bias=True)\n", - " (gelu_impl): BloomGelu()\n", - " (dense_4h_to_h): Linear(in_features=4096, out_features=1024, bias=True)\n", - " )\n", - " )\n", - " (12): BloomBlock(\n", - " (input_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (self_attention): BloomAttention(\n", - " (query_key_value): Linear(in_features=1024, out_features=3072, bias=True)\n", - " (dense): Linear(in_features=1024, out_features=1024, bias=True)\n", - " (attention_dropout): Dropout(p=0.0, inplace=False)\n", - " )\n", - " (post_attention_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (mlp): BloomMLP(\n", - " (dense_h_to_4h): Linear(in_features=1024, out_features=4096, bias=True)\n", - " (gelu_impl): BloomGelu()\n", - " (dense_4h_to_h): Linear(in_features=4096, out_features=1024, bias=True)\n", - " )\n", - " )\n", - " (13): BloomBlock(\n", - " (input_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (self_attention): BloomAttention(\n", - " (query_key_value): Linear(in_features=1024, out_features=3072, bias=True)\n", - " (dense): Linear(in_features=1024, out_features=1024, bias=True)\n", - " (attention_dropout): Dropout(p=0.0, inplace=False)\n", - " )\n", - " (post_attention_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (mlp): BloomMLP(\n", - " (dense_h_to_4h): Linear(in_features=1024, out_features=4096, bias=True)\n", - " (gelu_impl): BloomGelu()\n", - " (dense_4h_to_h): Linear(in_features=4096, out_features=1024, bias=True)\n", - " )\n", - " )\n", - " (14): BloomBlock(\n", - " (input_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (self_attention): BloomAttention(\n", - " (query_key_value): Linear(in_features=1024, out_features=3072, bias=True)\n", - " (dense): Linear(in_features=1024, out_features=1024, bias=True)\n", - " (attention_dropout): Dropout(p=0.0, inplace=False)\n", - " )\n", - " (post_attention_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (mlp): BloomMLP(\n", - " (dense_h_to_4h): Linear(in_features=1024, out_features=4096, bias=True)\n", - " (gelu_impl): BloomGelu()\n", - " (dense_4h_to_h): Linear(in_features=4096, out_features=1024, bias=True)\n", - " )\n", - " )\n", - " (15): BloomBlock(\n", - " (input_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (self_attention): BloomAttention(\n", - " (query_key_value): Linear(in_features=1024, out_features=3072, bias=True)\n", - " (dense): Linear(in_features=1024, out_features=1024, bias=True)\n", - " (attention_dropout): Dropout(p=0.0, inplace=False)\n", - " )\n", - " (post_attention_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (mlp): BloomMLP(\n", - " (dense_h_to_4h): Linear(in_features=1024, out_features=4096, bias=True)\n", - " (gelu_impl): BloomGelu()\n", - " (dense_4h_to_h): Linear(in_features=4096, out_features=1024, bias=True)\n", - " )\n", - " )\n", - " (16): BloomBlock(\n", - " (input_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (self_attention): BloomAttention(\n", - " (query_key_value): Linear(in_features=1024, out_features=3072, bias=True)\n", - " (dense): Linear(in_features=1024, out_features=1024, bias=True)\n", - " (attention_dropout): Dropout(p=0.0, inplace=False)\n", - " )\n", - " (post_attention_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (mlp): BloomMLP(\n", - " (dense_h_to_4h): Linear(in_features=1024, out_features=4096, bias=True)\n", - " (gelu_impl): BloomGelu()\n", - " (dense_4h_to_h): Linear(in_features=4096, out_features=1024, bias=True)\n", - " )\n", - " )\n", - " (17): BloomBlock(\n", - " (input_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (self_attention): BloomAttention(\n", - " (query_key_value): Linear(in_features=1024, out_features=3072, bias=True)\n", - " (dense): Linear(in_features=1024, out_features=1024, bias=True)\n", - " (attention_dropout): Dropout(p=0.0, inplace=False)\n", - " )\n", - " (post_attention_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (mlp): BloomMLP(\n", - " (dense_h_to_4h): Linear(in_features=1024, out_features=4096, bias=True)\n", - " (gelu_impl): BloomGelu()\n", - " (dense_4h_to_h): Linear(in_features=4096, out_features=1024, bias=True)\n", - " )\n", - " )\n", - " (18): BloomBlock(\n", - " (input_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (self_attention): BloomAttention(\n", - " (query_key_value): Linear(in_features=1024, out_features=3072, bias=True)\n", - " (dense): Linear(in_features=1024, out_features=1024, bias=True)\n", - " (attention_dropout): Dropout(p=0.0, inplace=False)\n", - " )\n", - " (post_attention_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (mlp): BloomMLP(\n", - " (dense_h_to_4h): Linear(in_features=1024, out_features=4096, bias=True)\n", - " (gelu_impl): BloomGelu()\n", - " (dense_4h_to_h): Linear(in_features=4096, out_features=1024, bias=True)\n", - " )\n", - " )\n", - " (19): BloomBlock(\n", - " (input_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (self_attention): BloomAttention(\n", - " (query_key_value): Linear(in_features=1024, out_features=3072, bias=True)\n", - " (dense): Linear(in_features=1024, out_features=1024, bias=True)\n", - " (attention_dropout): Dropout(p=0.0, inplace=False)\n", - " )\n", - " (post_attention_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (mlp): BloomMLP(\n", - " (dense_h_to_4h): Linear(in_features=1024, out_features=4096, bias=True)\n", - " (gelu_impl): BloomGelu()\n", - " (dense_4h_to_h): Linear(in_features=4096, out_features=1024, bias=True)\n", - " )\n", - " )\n", - " (20): BloomBlock(\n", - " (input_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (self_attention): BloomAttention(\n", - " (query_key_value): Linear(in_features=1024, out_features=3072, bias=True)\n", - " (dense): Linear(in_features=1024, out_features=1024, bias=True)\n", - " (attention_dropout): Dropout(p=0.0, inplace=False)\n", - " )\n", - " (post_attention_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (mlp): BloomMLP(\n", - " (dense_h_to_4h): Linear(in_features=1024, out_features=4096, bias=True)\n", - " (gelu_impl): BloomGelu()\n", - " (dense_4h_to_h): Linear(in_features=4096, out_features=1024, bias=True)\n", - " )\n", - " )\n", - " (21): BloomBlock(\n", - " (input_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (self_attention): BloomAttention(\n", - " (query_key_value): Linear(in_features=1024, out_features=3072, bias=True)\n", - " (dense): Linear(in_features=1024, out_features=1024, bias=True)\n", - " (attention_dropout): Dropout(p=0.0, inplace=False)\n", - " )\n", - " (post_attention_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (mlp): BloomMLP(\n", - " (dense_h_to_4h): Linear(in_features=1024, out_features=4096, bias=True)\n", - " (gelu_impl): BloomGelu()\n", - " (dense_4h_to_h): Linear(in_features=4096, out_features=1024, bias=True)\n", - " )\n", - " )\n", - " (22): BloomBlock(\n", - " (input_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (self_attention): BloomAttention(\n", - " (query_key_value): Linear(in_features=1024, out_features=3072, bias=True)\n", - " (dense): Linear(in_features=1024, out_features=1024, bias=True)\n", - " (attention_dropout): Dropout(p=0.0, inplace=False)\n", - " )\n", - " (post_attention_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (mlp): BloomMLP(\n", - " (dense_h_to_4h): Linear(in_features=1024, out_features=4096, bias=True)\n", - " (gelu_impl): BloomGelu()\n", - " (dense_4h_to_h): Linear(in_features=4096, out_features=1024, bias=True)\n", - " )\n", - " )\n", - " (23): BloomBlock(\n", - " (input_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (self_attention): BloomAttention(\n", - " (query_key_value): Linear(in_features=1024, out_features=3072, bias=True)\n", - " (dense): Linear(in_features=1024, out_features=1024, bias=True)\n", - " (attention_dropout): Dropout(p=0.0, inplace=False)\n", - " )\n", - " (post_attention_layernorm): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " (mlp): BloomMLP(\n", - " (dense_h_to_4h): Linear(in_features=1024, out_features=4096, bias=True)\n", - " (gelu_impl): BloomGelu()\n", - " (dense_4h_to_h): Linear(in_features=4096, out_features=1024, bias=True)\n", - " )\n", - " )\n", - " )\n", - " (ln_f): LayerNorm((1024,), eps=1e-05, elementwise_affine=True)\n", - " )\n", - " (lm_head): Linear(in_features=1024, out_features=250880, bias=False)\n", - " )\n", - " (word_embeddings): Embedding(250880, 1024)\n", - " (prompt_encoder): PrefixEncoder(\n", - " (embedding): Embedding(30, 49152)\n", - " )\n", - ")" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "model" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "b94465ee", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'base_model.transformer.word_embeddings': 3,\n", - " 'word_embeddings': 3,\n", - " 'base_model.transformer.word_embeddings_layernorm': 3,\n", - " 'base_model.transformer.h.0': 3,\n", - " 'base_model.transformer.h.1': 3,\n", - " 'base_model.transformer.h.2': 3,\n", - " 'base_model.transformer.h.3': 3,\n", - " 'base_model.transformer.h.4': 3,\n", - " 'base_model.transformer.h.5': 3,\n", - " 'base_model.transformer.h.6': 3,\n", - " 'base_model.transformer.h.7': 3,\n", - " 'base_model.transformer.h.8': 3,\n", - " 'base_model.transformer.h.9': 3,\n", - " 'base_model.transformer.h.10': 3,\n", - " 'base_model.transformer.h.11': 3,\n", - " 'base_model.transformer.h.12': 3,\n", - " 'base_model.transformer.h.13': 3,\n", - " 'base_model.transformer.h.14': 3,\n", - " 'base_model.transformer.h.15': 3,\n", - " 'base_model.transformer.h.16': 3,\n", - " 'base_model.transformer.h.17': 3,\n", - " 'base_model.transformer.h.18': 3,\n", - " 'base_model.transformer.h.19': 3,\n", - " 'base_model.transformer.h.20': 3,\n", - " 'base_model.transformer.h.21': 3,\n", - " 'base_model.transformer.h.22': 'cpu',\n", - " 'base_model.transformer.h.23': 'cpu',\n", - " 'base_model.transformer.ln_f': 'cpu',\n", - " 'base_model.lm_head': 'cpu',\n", - " 'prompt_encoder': 'cpu'}" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "model.hf_device_map" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "ebe174a6", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "@VW @QuirkCars some unauthorized work done on my engine now throwing a check engine light about a week later. Very upset.\n", - "{'input_ids': tensor([[227985, 5484, 915, 2566, 57, 58, 2566, 5232, 132511,\n", - " 38, 4599, 3331, 1035, 192352, 2909, 11541, 664, 2670,\n", - " 22218, 5840, 108218, 267, 7010, 22218, 12490, 3638, 267,\n", - " 14319, 10494, 17, 93269, 123055, 17, 77658, 915, 210]]), 'attention_mask': tensor([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", - " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]])}\n", - "tensor([[227985, 5484, 915, 2566, 57, 58, 2566, 5232, 132511,\n", - " 38, 4599, 3331, 1035, 192352, 2909, 11541, 664, 2670,\n", - " 22218, 5840, 108218, 267, 7010, 22218, 12490, 3638, 267,\n", - " 14319, 10494, 17, 93269, 123055, 17, 77658, 915, 210,\n", - " 16449, 5952, 3, 3, 3, 3, 3, 3, 3,\n", - " 3]], device='cuda:0')\n", - "['Tweet text : @VW @QuirkCars some unauthorized work done on my engine now throwing a check engine light about a week later. Very upset. Label : complaint']\n" - ] - } - ], - "source": [ - "model.eval()\n", - "i = 12\n", - "inputs = tokenizer(f'{text_column} : {dataset[\"test\"][i][\"Tweet text\"]} Label : ', return_tensors=\"pt\")\n", - "print(dataset[\"test\"][i][\"Tweet text\"])\n", - "print(inputs)\n", - "\n", - "with torch.no_grad():\n", - " inputs = {k: v.to(device) for k, v in inputs.items()}\n", - " outputs = model.generate(input_ids=inputs[\"input_ids\"], attention_mask=inputs[\"attention_mask\"], max_new_tokens=10)\n", - " print(outputs)\n", - " print(tokenizer.batch_decode(outputs.detach().cpu().numpy(), skip_special_tokens=True))\n" - ] + "source": [] }, { "cell_type": "code", "execution_count": null, - "id": "24041ee1", + "id": "463a41a2", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5c60c7a9", "metadata": {}, "outputs": [], "source": [] @@ -2524,7 +1324,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, diff --git a/examples/causal_language_modeling/peft_prompt_tuning_clm.ipynb b/examples/causal_language_modeling/peft_prompt_tuning_clm.ipynb new file mode 100644 index 0000000..fe03abc --- /dev/null +++ b/examples/causal_language_modeling/peft_prompt_tuning_clm.ipynb @@ -0,0 +1,1190 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "71fbfca2", + "metadata": {}, + "outputs": [], + "source": [ + "from transformers import AutoModelForCausalLM\n", + "from peft import get_peft_config, get_peft_model, PromptTuningInit, PromptTuningConfig, TaskType, PeftType\n", + "import torch\n", + "from datasets import load_dataset\n", + "import os\n", + "from transformers import AutoTokenizer\n", + "from torch.utils.data import DataLoader\n", + "from transformers import default_data_collator,get_linear_schedule_with_warmup\n", + "from tqdm import tqdm\n", + "from datasets import load_dataset\n", + "\n", + "device = \"cuda\"\n", + "model_name_or_path = \"bigscience/bloomz-560m\"\n", + "tokenizer_name_or_path = \"bigscience/bloomz-560m\"\n", + "peft_config = PromptTuningConfig(\n", + " task_type=TaskType.CAUSAL_LM,\n", + " prompt_tuning_init=PromptTuningInit.TEXT,\n", + " num_virtual_tokens=8,\n", + " prompt_tuning_init_text=\"Classify if the tweet is a compaint or not:\",\n", + " tokenizer_name_or_path=model_name_or_path,\n", + " )\n", + "\n", + "dataset_name = \"twitter_complaints\"\n", + "checkpoint_name = f\"{dataset_name}_{model_name_or_path}_{peft_config.peft_type}_{peft_config.task_type}_v1.pt\".replace(\"/\", \"_\")\n", + "text_column = \"Tweet text\"\n", + "label_column = \"text_label\"\n", + "max_length=64\n", + "lr = 3e-2\n", + "num_epochs = 50\n", + "batch_size=8\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e1a3648b", + "metadata": {}, + "outputs": [], + "source": [ + "from datasets import load_dataset\n", + "\n", + "dataset = load_dataset(\"ought/raft\", dataset_name)\n", + "\n", + "classes = [k.replace(\"_\", \" \") for k in dataset[\"train\"].features[\"Label\"].names]\n", + "print(classes)\n", + "dataset = dataset.map(\n", + " lambda x: {\"text_label\": [classes[label] for label in x[\"Label\"]]},\n", + " batched=True,\n", + " num_proc=1,\n", + " \n", + ")\n", + "print(dataset)\n", + "dataset[\"train\"][0]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fe12d4d3", + "metadata": {}, + "outputs": [], + "source": [ + "# data preprocessing\n", + "tokenizer = AutoTokenizer.from_pretrained(model_name_or_path)\n", + "if tokenizer.pad_token_id is None:\n", + " tokenizer.pad_token_id = tokenizer.eos_token_id\n", + "target_max_length = max([len(tokenizer(class_label)[\"input_ids\"]) for class_label in classes])\n", + "print(target_max_length)\n", + "def preprocess_function(examples):\n", + " batch_size = len(examples[text_column])\n", + " inputs = [f\"{text_column} : {x} Label : \" for x in examples[text_column]]\n", + " targets = [str(x) for x in examples[label_column]]\n", + " model_inputs = tokenizer(inputs)\n", + " labels = tokenizer(targets)\n", + " for i in range(batch_size):\n", + " sample_input_ids = model_inputs[\"input_ids\"][i]\n", + " label_input_ids = labels[\"input_ids\"][i] + [tokenizer.pad_token_id]\n", + " #print(i, sample_input_ids, label_input_ids)\n", + " model_inputs[\"input_ids\"][i] = sample_input_ids + label_input_ids \n", + " labels[\"input_ids\"][i] = [-100] * len(sample_input_ids) + label_input_ids\n", + " model_inputs[\"attention_mask\"][i] = [1] * len(model_inputs[\"input_ids\"][i])\n", + " #print(model_inputs)\n", + " for i in range(batch_size):\n", + " sample_input_ids = model_inputs[\"input_ids\"][i]\n", + " label_input_ids = labels[\"input_ids\"][i]\n", + " model_inputs[\"input_ids\"][i] = [tokenizer.pad_token_id]*(max_length-len(sample_input_ids)) + sample_input_ids\n", + " model_inputs[\"attention_mask\"][i] = [0]*(max_length-len(sample_input_ids)) + model_inputs[\"attention_mask\"][i]\n", + " labels[\"input_ids\"][i] = [-100]*(max_length-len(sample_input_ids)) + label_input_ids \n", + " model_inputs[\"input_ids\"][i] = torch.tensor(model_inputs[\"input_ids\"][i][:max_length])\n", + " model_inputs[\"attention_mask\"][i] = torch.tensor(model_inputs[\"attention_mask\"][i][:max_length])\n", + " labels[\"input_ids\"][i] = torch.tensor(labels[\"input_ids\"][i][:max_length]) \n", + " model_inputs[\"labels\"] = labels[\"input_ids\"]\n", + " return model_inputs\n", + "\n", + "\n", + "\n", + "processed_datasets = dataset.map(\n", + " preprocess_function,\n", + " batched=True,\n", + " num_proc=1,\n", + " remove_columns=dataset[\"train\"].column_names,\n", + " load_from_cache_file=False,\n", + " desc=\"Running tokenizer on dataset\",\n", + " )\n", + "\n", + "train_dataset = processed_datasets[\"train\"]\n", + "eval_dataset = processed_datasets[\"train\"]\n", + "\n", + "\n", + "train_dataloader = DataLoader(\n", + " train_dataset, shuffle=True, collate_fn=default_data_collator, batch_size=batch_size, pin_memory=True\n", + " )\n", + "eval_dataloader = DataLoader(eval_dataset, collate_fn=default_data_collator, batch_size=batch_size, pin_memory=True)\n", + "\n", + "\n", + "\n", + "\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "641b21fe", + "metadata": {}, + "outputs": [], + "source": [ + "def test_preprocess_function(examples):\n", + " batch_size = len(examples[text_column])\n", + " inputs = [f\"{text_column} : {x} Label : \" for x in examples[text_column]]\n", + " model_inputs = tokenizer(inputs)\n", + " #print(model_inputs)\n", + " for i in range(batch_size):\n", + " sample_input_ids = model_inputs[\"input_ids\"][i]\n", + " model_inputs[\"input_ids\"][i] = [tokenizer.pad_token_id]*(max_length-len(sample_input_ids)) + sample_input_ids\n", + " model_inputs[\"attention_mask\"][i] = [0]*(max_length-len(sample_input_ids)) + model_inputs[\"attention_mask\"][i]\n", + " model_inputs[\"input_ids\"][i] = torch.tensor(model_inputs[\"input_ids\"][i][:max_length])\n", + " model_inputs[\"attention_mask\"][i] = torch.tensor(model_inputs[\"attention_mask\"][i][:max_length])\n", + " return model_inputs\n", + "\n", + "test_dataset = dataset[\"test\"].map(\n", + " test_preprocess_function,\n", + " batched=True,\n", + " num_proc=1,\n", + " remove_columns=dataset[\"train\"].column_names,\n", + " load_from_cache_file=False,\n", + " desc=\"Running tokenizer on dataset\",\n", + " )\n", + "\n", + "test_dataloader = DataLoader(test_dataset, collate_fn=default_data_collator, batch_size=batch_size, pin_memory=True)\n", + "next(iter(test_dataloader))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "accc5012", + "metadata": {}, + "outputs": [], + "source": [ + "next(iter(train_dataloader))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "218df807", + "metadata": {}, + "outputs": [], + "source": [ + "len(test_dataloader)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "47d1fedf", + "metadata": {}, + "outputs": [], + "source": [ + "next(iter(test_dataloader))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a773e092", + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "# creating model\n", + "model = AutoModelForCausalLM.from_pretrained(model_name_or_path)\n", + "model = get_peft_model(model, peft_config)\n", + "model.print_trainable_parameters()\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "b2f91568", + "metadata": {}, + "outputs": [], + "source": [ + "# model\n", + "# optimizer and lr scheduler\n", + "optimizer = torch.optim.AdamW(model.parameters(), lr=lr)\n", + "lr_scheduler = get_linear_schedule_with_warmup(\n", + " optimizer=optimizer,\n", + " num_warmup_steps=0,\n", + " num_training_steps=(len(train_dataloader) * num_epochs),\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "e4fb69fc", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:01<00:00, 5.68it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 21.48it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=0: train_ppl=tensor(2.2720e+13, device='cuda:0') train_epoch_loss=tensor(30.7543, device='cuda:0') eval_ppl=tensor(483597.5625, device='cuda:0') eval_epoch_loss=tensor(13.0890, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 10.91it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 20.96it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=1: train_ppl=tensor(452658.3750, device='cuda:0') train_epoch_loss=tensor(13.0229, device='cuda:0') eval_ppl=tensor(275088.1875, device='cuda:0') eval_epoch_loss=tensor(12.5248, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 10.90it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 21.41it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=2: train_ppl=tensor(199203.3906, device='cuda:0') train_epoch_loss=tensor(12.2021, device='cuda:0') eval_ppl=tensor(143637.0312, device='cuda:0') eval_epoch_loss=tensor(11.8750, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 10.92it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 21.31it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=3: train_ppl=tensor(114743.9531, device='cuda:0') train_epoch_loss=tensor(11.6505, device='cuda:0') eval_ppl=tensor(54962., device='cuda:0') eval_epoch_loss=tensor(10.9144, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 10.81it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 21.34it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=4: train_ppl=tensor(40786.5977, device='cuda:0') train_epoch_loss=tensor(10.6161, device='cuda:0') eval_ppl=tensor(18342.5430, device='cuda:0') eval_epoch_loss=tensor(9.8170, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 10.89it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 21.34it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=5: train_ppl=tensor(14023.0830, device='cuda:0') train_epoch_loss=tensor(9.5485, device='cuda:0') eval_ppl=tensor(6316.8540, device='cuda:0') eval_epoch_loss=tensor(8.7510, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 10.84it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 21.32it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=6: train_ppl=tensor(5635.3262, device='cuda:0') train_epoch_loss=tensor(8.6368, device='cuda:0') eval_ppl=tensor(2476.5776, device='cuda:0') eval_epoch_loss=tensor(7.8146, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 10.88it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 21.30it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=7: train_ppl=tensor(1818.4940, device='cuda:0') train_epoch_loss=tensor(7.5058, device='cuda:0') eval_ppl=tensor(934.1146, device='cuda:0') eval_epoch_loss=tensor(6.8396, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 10.05it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 18.97it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=8: train_ppl=tensor(645.2143, device='cuda:0') train_epoch_loss=tensor(6.4696, device='cuda:0') eval_ppl=tensor(361.9093, device='cuda:0') eval_epoch_loss=tensor(5.8914, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 9.67it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 19.12it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=9: train_ppl=tensor(293.8047, device='cuda:0') train_epoch_loss=tensor(5.6829, device='cuda:0') eval_ppl=tensor(215.8185, device='cuda:0') eval_epoch_loss=tensor(5.3744, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 10.54it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 20.83it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=10: train_ppl=tensor(191.2377, device='cuda:0') train_epoch_loss=tensor(5.2535, device='cuda:0') eval_ppl=tensor(177.1512, device='cuda:0') eval_epoch_loss=tensor(5.1770, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 10.02it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 18.98it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=11: train_ppl=tensor(153.6052, device='cuda:0') train_epoch_loss=tensor(5.0344, device='cuda:0') eval_ppl=tensor(126.6154, device='cuda:0') eval_epoch_loss=tensor(4.8412, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 9.54it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 18.78it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=12: train_ppl=tensor(122.8925, device='cuda:0') train_epoch_loss=tensor(4.8113, device='cuda:0') eval_ppl=tensor(97.3331, device='cuda:0') eval_epoch_loss=tensor(4.5781, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 9.66it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 19.72it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=13: train_ppl=tensor(84.8845, device='cuda:0') train_epoch_loss=tensor(4.4413, device='cuda:0') eval_ppl=tensor(70.3213, device='cuda:0') eval_epoch_loss=tensor(4.2531, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:01<00:00, 6.73it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 16.07it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=14: train_ppl=tensor(64.6705, device='cuda:0') train_epoch_loss=tensor(4.1693, device='cuda:0') eval_ppl=tensor(50.4688, device='cuda:0') eval_epoch_loss=tensor(3.9214, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 8.41it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 15.63it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=15: train_ppl=tensor(44.2937, device='cuda:0') train_epoch_loss=tensor(3.7908, device='cuda:0') eval_ppl=tensor(34.8210, device='cuda:0') eval_epoch_loss=tensor(3.5502, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 8.31it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 15.67it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=16: train_ppl=tensor(30.0995, device='cuda:0') train_epoch_loss=tensor(3.4045, device='cuda:0') eval_ppl=tensor(24.7703, device='cuda:0') eval_epoch_loss=tensor(3.2096, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 8.31it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 15.59it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=17: train_ppl=tensor(23.3086, device='cuda:0') train_epoch_loss=tensor(3.1488, device='cuda:0') eval_ppl=tensor(20.8131, device='cuda:0') eval_epoch_loss=tensor(3.0356, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 8.29it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 16.04it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=18: train_ppl=tensor(16.4479, device='cuda:0') train_epoch_loss=tensor(2.8002, device='cuda:0') eval_ppl=tensor(12.0876, device='cuda:0') eval_epoch_loss=tensor(2.4922, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 8.37it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 15.37it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=19: train_ppl=tensor(11.1977, device='cuda:0') train_epoch_loss=tensor(2.4157, device='cuda:0') eval_ppl=tensor(9.0399, device='cuda:0') eval_epoch_loss=tensor(2.2016, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 8.23it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 17.29it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=20: train_ppl=tensor(8.1847, device='cuda:0') train_epoch_loss=tensor(2.1023, device='cuda:0') eval_ppl=tensor(6.7486, device='cuda:0') eval_epoch_loss=tensor(1.9093, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 8.30it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 15.58it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=21: train_ppl=tensor(6.1145, device='cuda:0') train_epoch_loss=tensor(1.8107, device='cuda:0') eval_ppl=tensor(5.5931, device='cuda:0') eval_epoch_loss=tensor(1.7215, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 8.34it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 21.36it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=22: train_ppl=tensor(5.2963, device='cuda:0') train_epoch_loss=tensor(1.6670, device='cuda:0') eval_ppl=tensor(5.0573, device='cuda:0') eval_epoch_loss=tensor(1.6208, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 10.84it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 21.26it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=23: train_ppl=tensor(4.7485, device='cuda:0') train_epoch_loss=tensor(1.5578, device='cuda:0') eval_ppl=tensor(3.6277, device='cuda:0') eval_epoch_loss=tensor(1.2886, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 10.84it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 21.31it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=24: train_ppl=tensor(3.4080, device='cuda:0') train_epoch_loss=tensor(1.2261, device='cuda:0') eval_ppl=tensor(3.0467, device='cuda:0') eval_epoch_loss=tensor(1.1141, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 10.88it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 21.25it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=25: train_ppl=tensor(3.3052, device='cuda:0') train_epoch_loss=tensor(1.1955, device='cuda:0') eval_ppl=tensor(2.7784, device='cuda:0') eval_epoch_loss=tensor(1.0219, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 10.86it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 21.22it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=26: train_ppl=tensor(2.9487, device='cuda:0') train_epoch_loss=tensor(1.0814, device='cuda:0') eval_ppl=tensor(2.9471, device='cuda:0') eval_epoch_loss=tensor(1.0808, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 10.85it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 21.25it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=27: train_ppl=tensor(2.8738, device='cuda:0') train_epoch_loss=tensor(1.0556, device='cuda:0') eval_ppl=tensor(2.5801, device='cuda:0') eval_epoch_loss=tensor(0.9478, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 10.84it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 21.28it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=28: train_ppl=tensor(2.3241, device='cuda:0') train_epoch_loss=tensor(0.8433, device='cuda:0') eval_ppl=tensor(2.2198, device='cuda:0') eval_epoch_loss=tensor(0.7974, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 10.84it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 20.89it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=29: train_ppl=tensor(2.0376, device='cuda:0') train_epoch_loss=tensor(0.7118, device='cuda:0') eval_ppl=tensor(1.8572, device='cuda:0') eval_epoch_loss=tensor(0.6191, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 9.76it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 18.83it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=30: train_ppl=tensor(1.8301, device='cuda:0') train_epoch_loss=tensor(0.6044, device='cuda:0') eval_ppl=tensor(1.8864, device='cuda:0') eval_epoch_loss=tensor(0.6347, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 9.80it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 19.81it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=31: train_ppl=tensor(1.7301, device='cuda:0') train_epoch_loss=tensor(0.5482, device='cuda:0') eval_ppl=tensor(1.6340, device='cuda:0') eval_epoch_loss=tensor(0.4910, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 10.60it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 19.11it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=32: train_ppl=tensor(1.5842, device='cuda:0') train_epoch_loss=tensor(0.4601, device='cuda:0') eval_ppl=tensor(1.6179, device='cuda:0') eval_epoch_loss=tensor(0.4811, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 10.11it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 18.35it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=33: train_ppl=tensor(1.5193, device='cuda:0') train_epoch_loss=tensor(0.4183, device='cuda:0') eval_ppl=tensor(1.5543, device='cuda:0') eval_epoch_loss=tensor(0.4410, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 9.59it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 18.60it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=34: train_ppl=tensor(1.5402, device='cuda:0') train_epoch_loss=tensor(0.4319, device='cuda:0') eval_ppl=tensor(1.4924, device='cuda:0') eval_epoch_loss=tensor(0.4004, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 9.80it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 19.63it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=35: train_ppl=tensor(1.4410, device='cuda:0') train_epoch_loss=tensor(0.3654, device='cuda:0') eval_ppl=tensor(1.3888, device='cuda:0') eval_epoch_loss=tensor(0.3284, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:01<00:00, 6.60it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 15.36it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=36: train_ppl=tensor(1.3675, device='cuda:0') train_epoch_loss=tensor(0.3130, device='cuda:0') eval_ppl=tensor(1.4001, device='cuda:0') eval_epoch_loss=tensor(0.3366, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 8.40it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 15.58it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=37: train_ppl=tensor(1.4197, device='cuda:0') train_epoch_loss=tensor(0.3505, device='cuda:0') eval_ppl=tensor(1.3214, device='cuda:0') eval_epoch_loss=tensor(0.2787, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 8.27it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 15.56it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=38: train_ppl=tensor(1.3855, device='cuda:0') train_epoch_loss=tensor(0.3261, device='cuda:0') eval_ppl=tensor(1.3501, device='cuda:0') eval_epoch_loss=tensor(0.3001, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 8.25it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 15.57it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=39: train_ppl=tensor(1.3643, device='cuda:0') train_epoch_loss=tensor(0.3107, device='cuda:0') eval_ppl=tensor(1.3549, device='cuda:0') eval_epoch_loss=tensor(0.3037, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 8.28it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 15.41it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=40: train_ppl=tensor(1.3093, device='cuda:0') train_epoch_loss=tensor(0.2695, device='cuda:0') eval_ppl=tensor(1.3233, device='cuda:0') eval_epoch_loss=tensor(0.2801, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 8.24it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 15.51it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=41: train_ppl=tensor(1.3108, device='cuda:0') train_epoch_loss=tensor(0.2706, device='cuda:0') eval_ppl=tensor(1.3440, device='cuda:0') eval_epoch_loss=tensor(0.2957, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 8.78it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 15.61it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=42: train_ppl=tensor(1.2944, device='cuda:0') train_epoch_loss=tensor(0.2581, device='cuda:0') eval_ppl=tensor(1.2711, device='cuda:0') eval_epoch_loss=tensor(0.2399, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 8.29it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 15.56it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=43: train_ppl=tensor(1.2616, device='cuda:0') train_epoch_loss=tensor(0.2323, device='cuda:0') eval_ppl=tensor(1.2449, device='cuda:0') eval_epoch_loss=tensor(0.2190, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 10.85it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 21.27it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=44: train_ppl=tensor(1.2478, device='cuda:0') train_epoch_loss=tensor(0.2214, device='cuda:0') eval_ppl=tensor(1.2202, device='cuda:0') eval_epoch_loss=tensor(0.1990, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 10.85it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 21.31it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=45: train_ppl=tensor(1.2350, device='cuda:0') train_epoch_loss=tensor(0.2111, device='cuda:0') eval_ppl=tensor(1.2180, device='cuda:0') eval_epoch_loss=tensor(0.1972, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 10.86it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 21.33it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=46: train_ppl=tensor(1.2277, device='cuda:0') train_epoch_loss=tensor(0.2052, device='cuda:0') eval_ppl=tensor(1.2077, device='cuda:0') eval_epoch_loss=tensor(0.1887, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 10.87it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 21.35it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=47: train_ppl=tensor(1.2037, device='cuda:0') train_epoch_loss=tensor(0.1854, device='cuda:0') eval_ppl=tensor(1.2041, device='cuda:0') eval_epoch_loss=tensor(0.1857, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 10.83it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 21.29it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=48: train_ppl=tensor(1.2026, device='cuda:0') train_epoch_loss=tensor(0.1845, device='cuda:0') eval_ppl=tensor(1.1982, device='cuda:0') eval_epoch_loss=tensor(0.1808, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 10.86it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 21.35it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch=49: train_ppl=tensor(1.2005, device='cuda:0') train_epoch_loss=tensor(0.1827, device='cuda:0') eval_ppl=tensor(1.1968, device='cuda:0') eval_epoch_loss=tensor(0.1796, device='cuda:0')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "# training and evaluation\n", + "model = model.to(device)\n", + "\n", + "for epoch in range(num_epochs):\n", + " model.train()\n", + " total_loss = 0\n", + " for step, batch in enumerate(tqdm(train_dataloader)):\n", + " batch = {k: v.to(device) for k, v in batch.items()}\n", + "# print(batch)\n", + "# print(batch[\"input_ids\"].shape)\n", + " outputs = model(**batch)\n", + " loss = outputs.loss\n", + " total_loss += loss.detach().float()\n", + " loss.backward()\n", + " optimizer.step()\n", + " lr_scheduler.step()\n", + " optimizer.zero_grad()\n", + "\n", + " model.eval()\n", + " eval_loss = 0\n", + " eval_preds = []\n", + " for step, batch in enumerate(tqdm(eval_dataloader)):\n", + " batch = {k: v.to(device) for k, v in batch.items()}\n", + " with torch.no_grad():\n", + " outputs = model(**batch)\n", + " loss = outputs.loss\n", + " eval_loss += loss.detach().float()\n", + " eval_preds.extend(tokenizer.batch_decode(torch.argmax(outputs.logits, -1).detach().cpu().numpy(), skip_special_tokens=True))\n", + "\n", + " eval_epoch_loss = eval_loss/len(train_dataloader)\n", + " eval_ppl = torch.exp(eval_epoch_loss)\n", + " train_epoch_loss = total_loss/len(eval_dataloader)\n", + " train_ppl = torch.exp(train_epoch_loss)\n", + " print(f\"{epoch=}: {train_ppl=} {train_epoch_loss=} {eval_ppl=} {eval_epoch_loss=}\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "53752a7b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "@TommyHilfiger Dramatic shopping exp. ordered 6 jeans same size (30/32) 2 fits / 2 too large / 2 too slim : same brand > different sizing\n", + "{'input_ids': tensor([[227985, 5484, 915, 2566, 226154, 126015, 5385, 259, 239364,\n", + " 3396, 70823, 5853, 17, 57247, 1231, 191040, 5025, 7869,\n", + " 375, 2324, 149349, 12, 415, 122321, 897, 415, 10136,\n", + " 10021, 897, 415, 10136, 6497, 381, 915, 5025, 51950,\n", + " 66869, 5955, 272, 20311, 77658, 915, 210]]), 'attention_mask': tensor([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", + " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]])}\n", + "tensor([[227985, 5484, 915, 2566, 226154, 126015, 5385, 259, 239364,\n", + " 3396, 70823, 5853, 17, 57247, 1231, 191040, 5025, 7869,\n", + " 375, 2324, 149349, 12, 415, 122321, 897, 415, 10136,\n", + " 10021, 897, 415, 10136, 6497, 381, 915, 5025, 51950,\n", + " 66869, 5955, 272, 20311, 77658, 915, 210, 16449, 5952,\n", + " 3]], device='cuda:0')\n", + "['Tweet text : @TommyHilfiger Dramatic shopping exp. ordered 6 jeans same size (30/32) 2 fits / 2 too large / 2 too slim : same brand > different sizing Label : complaint']\n" + ] + } + ], + "source": [ + "model.eval()\n", + "i = 33\n", + "inputs = tokenizer(f'{text_column} : {dataset[\"test\"][i][\"Tweet text\"]} Label : ', return_tensors=\"pt\")\n", + "print(dataset[\"test\"][i][\"Tweet text\"])\n", + "print(inputs)\n", + "\n", + "with torch.no_grad():\n", + " inputs = {k: v.to(device) for k, v in inputs.items()}\n", + " outputs = model.generate(input_ids=inputs[\"input_ids\"], attention_mask=inputs[\"attention_mask\"], max_new_tokens=10, eos_token_id=3)\n", + " print(outputs)\n", + " print(tokenizer.batch_decode(outputs.detach().cpu().numpy(), skip_special_tokens=True))\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "d8ba1f8c", + "metadata": {}, + "outputs": [], + "source": [ + "# saving model\n", + "peft_model_id = f\"{model_name_or_path}_{peft_config.peft_type}_{peft_config.task_type}\"\n", + "model.save_pretrained(peft_model_id)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "4928c7f1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n", + "To disable this warning, you can either:\n", + "\t- Avoid using `tokenizers` before the fork if possible\n", + "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n", + "36K\tbigscience/bloomz-560m_PROMPT_TUNING_CAUSAL_LM/adapter_model.bin\n" + ] + } + ], + "source": [ + "ckpt = f\"{peft_model_id}/adapter_model.bin\"\n", + "!du -h $ckpt" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "4d9476e1", + "metadata": {}, + "outputs": [], + "source": [ + "from peft import PeftModel, PeftConfig\n", + "peft_model_id = f\"{model_name_or_path}_{peft_config.peft_type}_{peft_config.task_type}\"\n", + "\n", + "config = PeftConfig.from_pretrained(peft_model_id)\n", + "model = AutoModelForCausalLM.from_pretrained(config.base_model_name_or_path)\n", + "model = PeftModel.from_pretrained(model, peft_model_id)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "ebe174a6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "@greateranglia Ok thanks...\n", + "{'input_ids': tensor([[227985, 5484, 915, 2566, 14173, 2960, 29906, 387, 20706,\n", + " 49337, 1369, 77658, 915, 210]]), 'attention_mask': tensor([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]])}\n", + "tensor([[227985, 5484, 915, 2566, 14173, 2960, 29906, 387, 20706,\n", + " 49337, 1369, 77658, 915, 210, 1936, 106863, 3]],\n", + " device='cuda:0')\n", + "['Tweet text : @greateranglia Ok thanks... Label : no complaint']\n" + ] + } + ], + "source": [ + "model.to(device)\n", + "model.eval()\n", + "i = 4\n", + "inputs = tokenizer(f'{text_column} : {dataset[\"test\"][i][\"Tweet text\"]} Label : ', return_tensors=\"pt\")\n", + "print(dataset[\"test\"][i][\"Tweet text\"])\n", + "print(inputs)\n", + "\n", + "with torch.no_grad():\n", + " inputs = {k: v.to(device) for k, v in inputs.items()}\n", + " outputs = model.generate(input_ids=inputs[\"input_ids\"], attention_mask=inputs[\"attention_mask\"], max_new_tokens=10, eos_token_id=3)\n", + " print(outputs)\n", + " print(tokenizer.batch_decode(outputs.detach().cpu().numpy(), skip_special_tokens=True))\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "24041ee1", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.5 (v3.10.5:f377153967, Jun 6 2022, 12:36:10) [Clang 13.0.0 (clang-1300.0.29.30)]" + }, + "vscode": { + "interpreter": { + "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/conditional_generation/peft_lora_seq2seq_accelerate_big_model_inference.ipynb b/examples/conditional_generation/peft_lora_seq2seq_accelerate_big_model_inference.ipynb index ff7d89d..7e2b25c 100644 --- a/examples/conditional_generation/peft_lora_seq2seq_accelerate_big_model_inference.ipynb +++ b/examples/conditional_generation/peft_lora_seq2seq_accelerate_big_model_inference.ipynb @@ -2,26 +2,10 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "71fbfca2", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "===================================BUG REPORT===================================\n", - "Welcome to bitsandbytes. For bug reports, please submit your error trace to: https://github.com/TimDettmers/bitsandbytes/issues\n", - "For effortless bug reporting copy-paste your error into this form: https://docs.google.com/forms/d/e/1FAIpQLScPB8emS3Thkp66nvqwmjTEgxp8Y9ufuWTzFyr9kJ5AoI47dQ/viewform?usp=sf_link\n", - "================================================================================\n", - "CUDA SETUP: CUDA runtime path found: /home/sourab/miniconda3/envs/ml/lib/libcudart.so\n", - "CUDA SETUP: Highest compute capability among GPUs detected: 7.5\n", - "CUDA SETUP: Detected CUDA version 117\n", - "CUDA SETUP: Loading binary /home/sourab/miniconda3/envs/ml/lib/python3.10/site-packages/bitsandbytes/libbitsandbytes_cuda117.so...\n" - ] - } - ], + "outputs": [], "source": [ "from transformers import AutoModelForSeq2SeqLM\n", "from peft import PeftModel, PeftConfig\n", @@ -59,70 +43,10 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "e1a3648b", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Found cached dataset raft (/home/sourab/.cache/huggingface/datasets/ought___raft/twitter_complaints/1.1.0/79c4de1312c1e3730043f7db07179c914f48403101f7124e2fe336f6f54d9f84)\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "0bf24d09ce9642ec804aa0f208f54e1d", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/2 [00:00" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "pipe = StableDiffusionPipeline.from_pretrained(MODEL_NAME, torch_dtype=torch.float16).to(\"cuda\")\n", "\n", @@ -166,36 +118,10 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "e50da571", "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "b405066c203e4c7fa45a0c3389f76796", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/50 [00:00" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "prompt = \"a photo of sks dog\"\n", "negative_prompt = \"low quality, blurry, unfinished\"\n", @@ -243,36 +169,10 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "id": "200d3358", "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "b669f753a13244d1884b7956ad0ccaf4", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/50 [00:00" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "prompt = \"sks dog with Eiffel Tower in the background\"\n", "image = pipe(prompt, num_inference_steps=50, \n", @@ -283,36 +183,10 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "id": "0518421e", "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "6e4e70ffd53d46b79955b068403ac229", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/50 [00:00" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "prompt = \"sks dog swimming in th pool with sunglasses\"\n", "image = pipe(prompt, num_inference_steps=50, guidance_scale=7.5, negative_prompt=negative_prompt).images[0]\n", @@ -321,36 +195,10 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": null, "id": "cca5106c", "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "d9beb64979364f10b5cd9bba50d9caba", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/50 [00:00" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "prompt = \"sks dog weaing red sweater\"\n", "image = pipe(prompt, num_inference_steps=50, guidance_scale=7.5, negative_prompt=negative_prompt).images[0]\n", diff --git a/examples/token_classification/peft_lora_token_cls.ipynb b/examples/token_classification/peft_lora_token_cls.ipynb index 5607402..e070af2 100644 --- a/examples/token_classification/peft_lora_token_cls.ipynb +++ b/examples/token_classification/peft_lora_token_cls.ipynb @@ -91,7 +91,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -100,19 +100,7 @@ "id": "eG-eGcj3sNPs", "outputId": "69ead0ea-15d6-4d5e-af61-a99a7533d31b" }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "from PIL import Image, ImageDraw, ImageFont\n", "import os\n", @@ -135,7 +123,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -143,38 +131,7 @@ "id": "JPKkuJQ4sdZc", "outputId": "c95bf306-98bb-4480-cc6b-ebb3aea548b3" }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'box': [292, 91, 376, 175], 'text': 'R&D', 'label': 'other', 'words': [{'box': [292, 91, 376, 175], 'text': 'R&D'}], 'linking': [], 'id': 0}\n", - "{'box': [219, 316, 225, 327], 'text': ':', 'label': 'question', 'words': [{'box': [219, 316, 225, 327], 'text': ':'}], 'linking': [], 'id': 1}\n", - "{'box': [95, 355, 169, 370], 'text': 'Suggestion:', 'label': 'question', 'words': [{'box': [95, 355, 169, 370], 'text': 'Suggestion:'}], 'linking': [[2, 16]], 'id': 2}\n", - "{'box': [482, 268, 518, 282], 'text': 'Date:', 'label': 'question', 'words': [{'box': [482, 268, 518, 282], 'text': 'Date:'}], 'linking': [[3, 12]], 'id': 3}\n", - "{'box': [511, 309, 570, 323], 'text': 'Licensee', 'label': 'answer', 'words': [{'box': [511, 309, 570, 323], 'text': 'Licensee'}], 'linking': [[13, 4]], 'id': 4}\n", - "{'box': [211, 651, 217, 662], 'text': '', 'label': 'question', 'words': [{'box': [211, 651, 217, 662], 'text': ''}], 'linking': [], 'id': 5}\n", - "{'box': [461, 605, 483, 619], 'text': 'Yes', 'label': 'question', 'words': [{'box': [461, 605, 483, 619], 'text': 'Yes'}], 'linking': [[19, 6]], 'id': 6}\n", - "{'box': [545, 603, 563, 617], 'text': 'No', 'label': 'question', 'words': [{'box': [545, 603, 563, 617], 'text': 'No'}], 'linking': [[19, 7]], 'id': 7}\n", - "{'box': [525, 904, 641, 926], 'text': '597005708', 'label': 'other', 'words': [{'box': [525, 904, 641, 926], 'text': '597005708'}], 'linking': [], 'id': 8}\n", - "{'text': 'R&D QUALITY IMPROVEMENT SUGGESTION/ SOLUTION FORM', 'box': [256, 201, 423, 230], 'linking': [], 'label': 'header', 'words': [{'text': 'R&D', 'box': [257, 203, 279, 214]}, {'text': 'QUALITY', 'box': [285, 203, 334, 216]}, {'text': 'IMPROVEMENT', 'box': [341, 201, 418, 211]}, {'text': 'SUGGESTION/', 'box': [256, 215, 324, 229]}, {'text': '', 'box': [324, 216, 332, 230]}, {'text': 'SOLUTION', 'box': [331, 214, 387, 228]}, {'text': 'FORM', 'box': [395, 215, 423, 228]}], 'id': 9}\n", - "{'text': 'Name / Phone Ext. :', 'box': [89, 272, 204, 289], 'linking': [[10, 11]], 'label': 'question', 'words': [{'text': 'Name', 'box': [89, 274, 118, 289]}, {'text': '/', 'box': [117, 274, 127, 288]}, {'text': 'Phone', 'box': [128, 274, 163, 289]}, {'text': 'Ext.', 'box': [169, 272, 196, 287]}, {'text': ':', 'box': [196, 274, 204, 288]}], 'id': 10}\n", - "{'text': 'M. Hamann P. Harper, P. Martinez', 'box': [215, 271, 451, 287], 'linking': [[10, 11]], 'label': 'answer', 'words': [{'text': 'M.', 'box': [215, 272, 230, 287]}, {'text': 'Hamann', 'box': [237, 272, 287, 286]}, {'text': 'P.', 'box': [293, 272, 307, 286]}, {'text': 'Harper,', 'box': [314, 274, 363, 285]}, {'text': 'P.', 'box': [370, 272, 384, 285]}, {'text': 'Martinez', 'box': [390, 271, 451, 282]}], 'id': 11}\n", - "{'text': '9/ 3/ 92', 'box': [543, 264, 590, 279], 'linking': [[3, 12]], 'label': 'answer', 'words': [{'text': '9/', 'box': [543, 265, 560, 279]}, {'text': '3/', 'box': [560, 264, 575, 279]}, {'text': '92', 'box': [575, 264, 590, 279]}], 'id': 12}\n", - "{'text': 'R&D Group:', 'box': [420, 310, 491, 323], 'linking': [[13, 4]], 'label': 'question', 'words': [{'text': 'R&D', 'box': [420, 310, 442, 323]}, {'text': 'Group:', 'box': [448, 310, 491, 323]}], 'id': 13}\n", - "{'text': 'J. S. Wigand', 'box': [236, 313, 327, 327], 'linking': [[15, 14]], 'label': 'answer', 'words': [{'text': 'J.', 'box': [236, 313, 251, 327]}, {'text': 'S.', 'box': [256, 313, 273, 326]}, {'text': 'Wigand', 'box': [278, 313, 327, 327]}], 'id': 14}\n", - "{'text': 'Supervisor / Manager', 'box': [91, 316, 218, 331], 'linking': [[15, 14]], 'label': 'question', 'words': [{'text': 'Supervisor', 'box': [91, 316, 161, 330]}, {'text': '/', 'box': [163, 318, 169, 331]}, {'text': 'Manager', 'box': [169, 317, 218, 327]}], 'id': 15}\n", - "{'text': 'Discontinue coal retention analyses on licensee submitted product samples (Note : Coal Retention testing is not performed by most licensees. Other B&W physical measurements as ends stability and inspection for soft spots in ciparettes are thought to be sufficient measures to assure cigarette physical integrity. The proposed action will increase laboratory productivity . )', 'box': [190, 346, 594, 447], 'linking': [[2, 16]], 'label': 'answer', 'words': [{'text': 'Discontinue', 'box': [190, 355, 268, 366]}, {'text': 'coal', 'box': [274, 353, 303, 366]}, {'text': 'retention', 'box': [309, 352, 375, 365]}, {'text': 'analyses', 'box': [381, 351, 435, 365]}, {'text': 'on', 'box': [443, 352, 458, 363]}, {'text': 'licensee', 'box': [464, 348, 520, 362]}, {'text': 'submitted', 'box': [527, 346, 594, 361]}, {'text': 'product', 'box': [190, 369, 240, 383]}, {'text': 'samples', 'box': [247, 367, 301, 380]}, {'text': '(Note', 'box': [318, 365, 352, 379]}, {'text': ':', 'box': [352, 367, 359, 380]}, {'text': 'Coal', 'box': [373, 366, 402, 376]}, {'text': 'Retention', 'box': [408, 366, 472, 376]}, {'text': 'testing', 'box': [479, 365, 529, 376]}, {'text': 'is', 'box': [536, 363, 549, 374]}, {'text': 'not', 'box': [554, 363, 578, 374]}, {'text': 'performed', 'box': [190, 383, 256, 394]}, {'text': 'by', 'box': [261, 381, 275, 394]}, {'text': 'most', 'box': [282, 383, 311, 393]}, {'text': 'licensees.', 'box': [318, 380, 386, 391]}, {'text': 'Other', 'box': [401, 378, 437, 389]}, {'text': 'B&W', 'box': [443, 378, 465, 389]}, {'text': 'physical', 'box': [471, 377, 528, 391]}, {'text': 'measurements', 'box': [191, 398, 275, 406]}, {'text': 'as', 'box': [282, 397, 297, 405]}, {'text': 'ends', 'box': [304, 394, 332, 405]}, {'text': 'stability', 'box': [339, 394, 402, 405]}, {'text': 'and', 'box': [409, 392, 430, 402]}, {'text': 'inspection', 'box': [437, 392, 508, 403]}, {'text': 'for', 'box': [515, 391, 535, 402]}, {'text': 'soft', 'box': [542, 391, 571, 401]}, {'text': 'spots', 'box': [193, 411, 228, 422]}, {'text': 'in', 'box': [235, 409, 250, 420]}, {'text': 'ciparettes', 'box': [256, 409, 327, 419]}, {'text': 'are', 'box': [332, 408, 352, 418]}, {'text': 'thought', 'box': [360, 406, 410, 419]}, {'text': 'to', 'box': [415, 406, 430, 416]}, {'text': 'be', 'box': [436, 404, 453, 417]}, {'text': 'sufficient', 'box': [458, 405, 529, 415]}, {'text': 'measures', 'box': [535, 405, 592, 415]}, {'text': 'to', 'box': [193, 425, 208, 433]}, {'text': 'assure', 'box': [214, 423, 255, 431]}, {'text': 'cigarette', 'box': [261, 420, 325, 434]}, {'text': 'physical', 'box': [331, 419, 390, 432]}, {'text': 'integrity.', 'box': [395, 418, 463, 431]}, {'text': 'The', 'box': [478, 416, 500, 429]}, {'text': 'proposed', 'box': [506, 418, 566, 431]}, {'text': 'action', 'box': [193, 436, 236, 447]}, {'text': 'will', 'box': [240, 436, 269, 447]}, {'text': 'increase', 'box': [277, 434, 333, 445]}, {'text': 'laboratory', 'box': [339, 433, 410, 446]}, {'text': 'productivity', 'box': [418, 430, 502, 445]}, {'text': '.', 'box': [503, 433, 507, 444]}, {'text': ')', 'box': [508, 430, 514, 444]}], 'id': 16}\n", - "{'text': 'Suggested Solutions (s) :', 'box': [95, 486, 250, 504], 'linking': [[17, 18]], 'label': 'question', 'words': [{'text': 'Suggested', 'box': [95, 489, 159, 504]}, {'text': 'Solutions', 'box': [165, 487, 222, 501]}, {'text': '(s)', 'box': [223, 486, 241, 503]}, {'text': ':', 'box': [243, 489, 250, 503]}], 'id': 17}\n", - "{'text': 'Delete coal retention from the list of standard analyses performed on licensee submitted product samples. Special requests for coal retention testing could still be submitted on an exception basis.', 'box': [263, 483, 593, 553], 'linking': [[17, 18]], 'label': 'answer', 'words': [{'text': 'Delete', 'box': [263, 486, 306, 500]}, {'text': 'coal', 'box': [313, 486, 341, 499]}, {'text': 'retention', 'box': [348, 486, 412, 497]}, {'text': 'from', 'box': [416, 485, 447, 498]}, {'text': 'the', 'box': [453, 485, 475, 498]}, {'text': 'list', 'box': [480, 483, 508, 496]}, {'text': 'of', 'box': [515, 483, 532, 494]}, {'text': 'standard', 'box': [536, 483, 593, 494]}, {'text': 'analyses', 'box': [264, 501, 320, 514]}, {'text': 'performed', 'box': [324, 501, 392, 512]}, {'text': 'on', 'box': [397, 501, 412, 511]}, {'text': 'licensee', 'box': [419, 499, 475, 512]}, {'text': 'submitted', 'box': [482, 499, 546, 510]}, {'text': 'product', 'box': [264, 517, 314, 528]}, {'text': 'samples.', 'box': [320, 514, 374, 528]}, {'text': 'Special', 'box': [390, 513, 439, 526]}, {'text': 'requests', 'box': [446, 513, 502, 524]}, {'text': 'for', 'box': [508, 511, 530, 522]}, {'text': 'coal', 'box': [538, 510, 566, 523]}, {'text': 'retention', 'box': [263, 529, 330, 540]}, {'text': 'testing', 'box': [335, 527, 387, 540]}, {'text': 'could', 'box': [390, 527, 428, 538]}, {'text': 'still', 'box': [433, 525, 468, 536]}, {'text': 'be', 'box': [473, 525, 488, 535]}, {'text': 'submitted', 'box': [496, 524, 560, 537]}, {'text': 'on', 'box': [566, 524, 584, 537]}, {'text': 'an', 'box': [264, 543, 281, 553]}, {'text': 'exception', 'box': [286, 539, 350, 553]}, {'text': 'basis.', 'box': [355, 541, 397, 551]}], 'id': 18}\n", - "{'text': 'Have you contacted your Manager/ Supervisor?', 'box': [96, 608, 398, 624], 'linking': [[19, 6], [19, 7]], 'label': 'header', 'words': [{'text': 'Have', 'box': [96, 612, 127, 623]}, {'text': 'you', 'box': [131, 613, 156, 624]}, {'text': 'contacted', 'box': [161, 612, 225, 623]}, {'text': 'your', 'box': [229, 610, 260, 623]}, {'text': 'Manager/', 'box': [264, 609, 314, 622]}, {'text': '', 'box': [314, 608, 322, 622]}, {'text': 'Supervisor?', 'box': [323, 608, 398, 621]}], 'id': 19}\n", - "{'text': 'Manager Comments:', 'box': [98, 651, 211, 665], 'linking': [[20, 21], [20, 22]], 'label': 'question', 'words': [{'text': 'Manager', 'box': [98, 654, 150, 665]}, {'text': 'Comments:', 'box': [154, 651, 211, 664]}], 'id': 20}\n", - "{'text': 'Manager, please contact suggester and forward', 'box': [232, 644, 547, 662], 'linking': [[20, 21]], 'label': 'answer', 'words': [{'text': 'Manager,', 'box': [232, 648, 288, 662]}, {'text': 'please', 'box': [296, 649, 338, 662]}, {'text': 'contact', 'box': [344, 648, 394, 662]}, {'text': 'suggester', 'box': [401, 648, 464, 661]}, {'text': 'and', 'box': [469, 647, 491, 658]}, {'text': 'forward', 'box': [497, 644, 547, 657]}], 'id': 21}\n", - "{'text': 'comments to the Quality Council.', 'box': [99, 662, 323, 677], 'linking': [[20, 22]], 'label': 'answer', 'words': [{'text': 'comments', 'box': [99, 666, 155, 677]}, {'text': 'to', 'box': [162, 665, 177, 676]}, {'text': 'the', 'box': [183, 665, 205, 675]}, {'text': 'Quality', 'box': [211, 663, 261, 676]}, {'text': 'Council.', 'box': [267, 662, 323, 676]}], 'id': 22}\n", - "{'text': 'qip . wp', 'box': [102, 823, 145, 838], 'linking': [], 'label': 'other', 'words': [{'text': 'qip', 'box': [102, 824, 123, 837]}, {'text': '.', 'box': [124, 824, 130, 838]}, {'text': 'wp', 'box': [130, 823, 145, 837]}], 'id': 23}\n" - ] - } - ], + "outputs": [], "source": [ "import json\n", "\n", @@ -196,7 +153,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -205,19 +162,7 @@ "id": "gWaHFM_LtKPP", "outputId": "c498e560-035f-4170-b0b9-85ba3956711c" }, - "outputs": [ - { - "data": { - "image/png": "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ao/Pno9+twB8cl+sX+mb8v+DL4QQ8vDhw1WrVhFCdu3apSrw22+/0Q5bspxERkbSF//eX2s5efjw4b/1/H8Z1b+MjAyynAwfPpwurl69+n/vUsv/7QdWrad/TdatW5f2rhcZEtq0aRMhpPjYyt69ezt06DBhwoSmTZuamZm9e/eOXgyyZMmSvn37urm59ezZc+7cuZcvXzY1NV20aJGrq+uAAQMcHBxmz57NsuzFixe7du16+vTp7du3t2jRIiMj48KFC/Qs+8cff9DuGdX80IkTJyYlJclkMolEQju3T58+LRQK8/LyMjMz58+frxrMyszMPHXqFFvZwaz3798zDLN3716GYehg1v3793/66afVq1dPmDCB/H8n/LZt206ePMmybGpqqpmZmZOTE61kz549q1evHj9+PI/HS01NZVl269athoaG9CP8+uuvLMu+fftWIBDQcwAhREtLSzWjs1mzZitWrPhoO0tb37JlS/q6yKDDkCFDXFxc6OuoqChCiL29PV1UKpV0AK5169ZGRkYbN26MiIiwtbWlE3svX76ckZFBI2bNmjUXL1785MkTQggdRVIqla9fvz5//nyJraLtGTdu3PPnzyMiImbPnh0eHs6y7MCBA+nm69evV31fubm5ubm50Q0bN268atUqlmUzMjJEItHQoUOXLl26YMGCFStWPHjwoGXLlvSvAjs7u1q1avn4+Mhkst9//71169bLli1btGiRUCikQzYFBQXOzs7a2to+Pj6DBw/u27evXC4vbTCLEGJiYtK5c2cDA4Nnz56xLPvhwwd6qw9XV9fhw4cTQoKDg1+9ekUIYRiGpjQ6gkb7/FQrVT9HZ86cmT179syZM//880+6o23bts2cOXP+/PkzZsygw6aqr8LKlSunTp2qGhhiWfb48eMTJ05UzYZmWdbPz2/evHmLFi2aNm0anUZd/MirFmUyWUFBAR0cp+0p/L/qS09fKxQK1TD6p7jIrtphMOu78tUOZqF3p2IMDQ2PHj1Kh4dYliWEpKWltW/fPmFUAiFEvEYsWSBpFdyK3ulr3JtxrYJbRQ6ItDpmxbZkVbfcsD1ne+/eveDg4N53emdkZBBCCgoKCCFkOVm4fCEh5GLXiw7XHMhyEj8yvn379mmT0+i249+O31Fvh7e3t4uLi0KhKM9f2CqrV6/u16/fhg0b4uPju3fvfv/+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", - "text/plain": [ - "" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "draw = ImageDraw.Draw(image, \"RGBA\")\n", "\n", @@ -838,7 +783,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -847,18 +792,7 @@ "id": "RhINSBw9I24G", "outputId": "28738ce2-617c-47d3-b8c9-f949d3066d60" }, - "outputs": [ - { - "data": { - "text/plain": [ - "'[CLS] project objective : date : btf - to : files confidential epb : cc : odl project initiation form september 16, 1980 project code : project name : project leader : work requested by : e. p. barbee r. s. sprinkle, iii to develop cigarette cigarette to utilize a filter tip with longitudinal grooves from the mouth end to the tobacco end in con - junction with perforated tipping paper. other personnel assigned : j. e. mann, jr. d. e. cawthon approved by : r. s. sprinkle, iii bmc / rmi / epb jem / dec prc / drb [SEP] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD]'" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "batch = next(iter(train_dataloader))\n", "input_ids = batch[0][0]\n", @@ -907,7 +841,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -926,465 +860,7 @@ "id": "xIdOsFBiTsuw", "outputId": "95e8811c-025a-41a0-9d03-4285a17f2a9b" }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Some weights of the model checkpoint at microsoft/layoutlm-base-uncased were not used when initializing LayoutLMForTokenClassification: ['cls.predictions.transform.dense.bias', 'cls.predictions.decoder.bias', 'cls.predictions.bias', 'cls.predictions.decoder.weight', 'cls.predictions.transform.LayerNorm.weight', 'cls.predictions.transform.LayerNorm.bias', 'cls.predictions.transform.dense.weight']\n", - "- This IS expected if you are initializing LayoutLMForTokenClassification from the checkpoint of a model trained on another task or with another architecture (e.g. initializing a BertForSequenceClassification model from a BertForPreTraining model).\n", - "- This IS NOT expected if you are initializing LayoutLMForTokenClassification from the checkpoint of a model that you expect to be exactly identical (initializing a BertForSequenceClassification model from a BertForSequenceClassification model).\n", - "Some weights of LayoutLMForTokenClassification were not initialized from the model checkpoint at microsoft/layoutlm-base-uncased and are newly initialized: ['classifier.weight', 'classifier.bias']\n", - "You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.\n" - ] - }, - { - "data": { - "text/plain": [ - "PETModelForTokenClassification(\n", - " (base_model): LoRAModel(\n", - " (model): LayoutLMForTokenClassification(\n", - " (layoutlm): LayoutLMModel(\n", - " (embeddings): LayoutLMEmbeddings(\n", - " (word_embeddings): Embedding(30522, 768, padding_idx=0)\n", - " (position_embeddings): Embedding(512, 768)\n", - " (x_position_embeddings): Embedding(1024, 768)\n", - " (y_position_embeddings): Embedding(1024, 768)\n", - " (h_position_embeddings): Embedding(1024, 768)\n", - " (w_position_embeddings): Embedding(1024, 768)\n", - " (token_type_embeddings): Embedding(2, 768)\n", - " (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " (encoder): LayoutLMEncoder(\n", - " (layer): ModuleList(\n", - " (0): LayoutLMLayer(\n", - " (attention): LayoutLMAttention(\n", - " (self): LayoutLMSelfAttention(\n", - " (query): Linear(\n", - " in_features=768, out_features=768, bias=True\n", - " (lora_dropout): Dropout(p=0.1, inplace=False)\n", - " (lora_A): Linear(in_features=768, out_features=16, bias=False)\n", - " (lora_B): Linear(in_features=16, out_features=768, bias=False)\n", - " )\n", - " (key): Linear(in_features=768, out_features=768, bias=True)\n", - " (value): Linear(\n", - " in_features=768, out_features=768, bias=True\n", - " (lora_dropout): Dropout(p=0.1, inplace=False)\n", - " (lora_A): Linear(in_features=768, out_features=16, bias=False)\n", - " (lora_B): Linear(in_features=16, out_features=768, bias=False)\n", - " )\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " (output): LayoutLMSelfOutput(\n", - " (dense): Linear(in_features=768, out_features=768, bias=True)\n", - " (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " )\n", - " (intermediate): LayoutLMIntermediate(\n", - " (dense): Linear(in_features=768, out_features=3072, bias=True)\n", - " (intermediate_act_fn): GELUActivation()\n", - " )\n", - " (output): LayoutLMOutput(\n", - " (dense): Linear(in_features=3072, out_features=768, bias=True)\n", - " (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " )\n", - " (1): LayoutLMLayer(\n", - " (attention): LayoutLMAttention(\n", - " (self): LayoutLMSelfAttention(\n", - " (query): Linear(\n", - " in_features=768, out_features=768, bias=True\n", - " (lora_dropout): Dropout(p=0.1, inplace=False)\n", - " (lora_A): Linear(in_features=768, out_features=16, bias=False)\n", - " (lora_B): Linear(in_features=16, out_features=768, bias=False)\n", - " )\n", - " (key): Linear(in_features=768, out_features=768, bias=True)\n", - " (value): Linear(\n", - " in_features=768, out_features=768, bias=True\n", - " (lora_dropout): Dropout(p=0.1, inplace=False)\n", - " (lora_A): Linear(in_features=768, out_features=16, bias=False)\n", - " (lora_B): Linear(in_features=16, out_features=768, bias=False)\n", - " )\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " (output): LayoutLMSelfOutput(\n", - " (dense): Linear(in_features=768, out_features=768, bias=True)\n", - " (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " )\n", - " (intermediate): LayoutLMIntermediate(\n", - " (dense): Linear(in_features=768, out_features=3072, bias=True)\n", - " (intermediate_act_fn): GELUActivation()\n", - " )\n", - " (output): LayoutLMOutput(\n", - " (dense): Linear(in_features=3072, out_features=768, bias=True)\n", - " (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " )\n", - " (2): LayoutLMLayer(\n", - " (attention): LayoutLMAttention(\n", - " (self): LayoutLMSelfAttention(\n", - " (query): Linear(\n", - " in_features=768, out_features=768, bias=True\n", - " (lora_dropout): Dropout(p=0.1, inplace=False)\n", - " (lora_A): Linear(in_features=768, out_features=16, bias=False)\n", - " (lora_B): Linear(in_features=16, out_features=768, bias=False)\n", - " )\n", - " (key): Linear(in_features=768, out_features=768, bias=True)\n", - " (value): Linear(\n", - " in_features=768, out_features=768, bias=True\n", - " (lora_dropout): Dropout(p=0.1, inplace=False)\n", - " (lora_A): Linear(in_features=768, out_features=16, bias=False)\n", - " (lora_B): Linear(in_features=16, out_features=768, bias=False)\n", - " )\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " (output): LayoutLMSelfOutput(\n", - " (dense): Linear(in_features=768, out_features=768, bias=True)\n", - " (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " )\n", - " (intermediate): LayoutLMIntermediate(\n", - " (dense): Linear(in_features=768, out_features=3072, bias=True)\n", - " (intermediate_act_fn): GELUActivation()\n", - " )\n", - " (output): LayoutLMOutput(\n", - " (dense): Linear(in_features=3072, out_features=768, bias=True)\n", - " (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " )\n", - " (3): LayoutLMLayer(\n", - " (attention): LayoutLMAttention(\n", - " (self): LayoutLMSelfAttention(\n", - " (query): Linear(\n", - " in_features=768, out_features=768, bias=True\n", - " (lora_dropout): Dropout(p=0.1, inplace=False)\n", - " (lora_A): Linear(in_features=768, out_features=16, bias=False)\n", - " (lora_B): Linear(in_features=16, out_features=768, bias=False)\n", - " )\n", - " (key): Linear(in_features=768, out_features=768, bias=True)\n", - " (value): Linear(\n", - " in_features=768, out_features=768, bias=True\n", - " (lora_dropout): Dropout(p=0.1, inplace=False)\n", - " (lora_A): Linear(in_features=768, out_features=16, bias=False)\n", - " (lora_B): Linear(in_features=16, out_features=768, bias=False)\n", - " )\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " (output): LayoutLMSelfOutput(\n", - " (dense): Linear(in_features=768, out_features=768, bias=True)\n", - " (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " )\n", - " (intermediate): LayoutLMIntermediate(\n", - " (dense): Linear(in_features=768, out_features=3072, bias=True)\n", - " (intermediate_act_fn): GELUActivation()\n", - " )\n", - " (output): LayoutLMOutput(\n", - " (dense): Linear(in_features=3072, out_features=768, bias=True)\n", - " (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " )\n", - " (4): LayoutLMLayer(\n", - " (attention): LayoutLMAttention(\n", - " (self): LayoutLMSelfAttention(\n", - " (query): Linear(\n", - " in_features=768, out_features=768, bias=True\n", - " (lora_dropout): Dropout(p=0.1, inplace=False)\n", - " (lora_A): Linear(in_features=768, out_features=16, bias=False)\n", - " (lora_B): Linear(in_features=16, out_features=768, bias=False)\n", - " )\n", - " (key): Linear(in_features=768, out_features=768, bias=True)\n", - " (value): Linear(\n", - " in_features=768, out_features=768, bias=True\n", - " (lora_dropout): Dropout(p=0.1, inplace=False)\n", - " (lora_A): Linear(in_features=768, out_features=16, bias=False)\n", - " (lora_B): Linear(in_features=16, out_features=768, bias=False)\n", - " )\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " (output): LayoutLMSelfOutput(\n", - " (dense): Linear(in_features=768, out_features=768, bias=True)\n", - " (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " )\n", - " (intermediate): LayoutLMIntermediate(\n", - " (dense): Linear(in_features=768, out_features=3072, bias=True)\n", - " (intermediate_act_fn): GELUActivation()\n", - " )\n", - " (output): LayoutLMOutput(\n", - " (dense): Linear(in_features=3072, out_features=768, bias=True)\n", - " (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " )\n", - " (5): LayoutLMLayer(\n", - " (attention): LayoutLMAttention(\n", - " (self): LayoutLMSelfAttention(\n", - " (query): Linear(\n", - " in_features=768, out_features=768, bias=True\n", - " (lora_dropout): Dropout(p=0.1, inplace=False)\n", - " (lora_A): Linear(in_features=768, out_features=16, bias=False)\n", - " (lora_B): Linear(in_features=16, out_features=768, bias=False)\n", - " )\n", - " (key): Linear(in_features=768, out_features=768, bias=True)\n", - " (value): Linear(\n", - " in_features=768, out_features=768, bias=True\n", - " (lora_dropout): Dropout(p=0.1, inplace=False)\n", - " (lora_A): Linear(in_features=768, out_features=16, bias=False)\n", - " (lora_B): Linear(in_features=16, out_features=768, bias=False)\n", - " )\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " (output): LayoutLMSelfOutput(\n", - " (dense): Linear(in_features=768, out_features=768, bias=True)\n", - " (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " )\n", - " (intermediate): LayoutLMIntermediate(\n", - " (dense): Linear(in_features=768, out_features=3072, bias=True)\n", - " (intermediate_act_fn): GELUActivation()\n", - " )\n", - " (output): LayoutLMOutput(\n", - " (dense): Linear(in_features=3072, out_features=768, bias=True)\n", - " (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " )\n", - " (6): LayoutLMLayer(\n", - " (attention): LayoutLMAttention(\n", - " (self): LayoutLMSelfAttention(\n", - " (query): Linear(\n", - " in_features=768, out_features=768, bias=True\n", - " (lora_dropout): Dropout(p=0.1, inplace=False)\n", - " (lora_A): Linear(in_features=768, out_features=16, bias=False)\n", - " (lora_B): Linear(in_features=16, out_features=768, bias=False)\n", - " )\n", - " (key): Linear(in_features=768, out_features=768, bias=True)\n", - " (value): Linear(\n", - " in_features=768, out_features=768, bias=True\n", - " (lora_dropout): Dropout(p=0.1, inplace=False)\n", - " (lora_A): Linear(in_features=768, out_features=16, bias=False)\n", - " (lora_B): Linear(in_features=16, out_features=768, bias=False)\n", - " )\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " (output): LayoutLMSelfOutput(\n", - " (dense): Linear(in_features=768, out_features=768, bias=True)\n", - " (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " )\n", - " (intermediate): LayoutLMIntermediate(\n", - " (dense): Linear(in_features=768, out_features=3072, bias=True)\n", - " (intermediate_act_fn): GELUActivation()\n", - " )\n", - " (output): LayoutLMOutput(\n", - " (dense): Linear(in_features=3072, out_features=768, bias=True)\n", - " (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " )\n", - " (7): LayoutLMLayer(\n", - " (attention): LayoutLMAttention(\n", - " (self): LayoutLMSelfAttention(\n", - " (query): Linear(\n", - " in_features=768, out_features=768, bias=True\n", - " (lora_dropout): Dropout(p=0.1, inplace=False)\n", - " (lora_A): Linear(in_features=768, out_features=16, bias=False)\n", - " (lora_B): Linear(in_features=16, out_features=768, bias=False)\n", - " )\n", - " (key): Linear(in_features=768, out_features=768, bias=True)\n", - " (value): Linear(\n", - " in_features=768, out_features=768, bias=True\n", - " (lora_dropout): Dropout(p=0.1, inplace=False)\n", - " (lora_A): Linear(in_features=768, out_features=16, bias=False)\n", - " (lora_B): Linear(in_features=16, out_features=768, bias=False)\n", - " )\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " (output): LayoutLMSelfOutput(\n", - " (dense): Linear(in_features=768, out_features=768, bias=True)\n", - " (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " )\n", - " (intermediate): LayoutLMIntermediate(\n", - " (dense): Linear(in_features=768, out_features=3072, bias=True)\n", - " (intermediate_act_fn): GELUActivation()\n", - " )\n", - " (output): LayoutLMOutput(\n", - " (dense): Linear(in_features=3072, out_features=768, bias=True)\n", - " (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " )\n", - " (8): LayoutLMLayer(\n", - " (attention): LayoutLMAttention(\n", - " (self): LayoutLMSelfAttention(\n", - " (query): Linear(\n", - " in_features=768, out_features=768, bias=True\n", - " (lora_dropout): Dropout(p=0.1, inplace=False)\n", - " (lora_A): Linear(in_features=768, out_features=16, bias=False)\n", - " (lora_B): Linear(in_features=16, out_features=768, bias=False)\n", - " )\n", - " (key): Linear(in_features=768, out_features=768, bias=True)\n", - " (value): Linear(\n", - " in_features=768, out_features=768, bias=True\n", - " (lora_dropout): Dropout(p=0.1, inplace=False)\n", - " (lora_A): Linear(in_features=768, out_features=16, bias=False)\n", - " (lora_B): Linear(in_features=16, out_features=768, bias=False)\n", - " )\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " (output): LayoutLMSelfOutput(\n", - " (dense): Linear(in_features=768, out_features=768, bias=True)\n", - " (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " )\n", - " (intermediate): LayoutLMIntermediate(\n", - " (dense): Linear(in_features=768, out_features=3072, bias=True)\n", - " (intermediate_act_fn): GELUActivation()\n", - " )\n", - " (output): LayoutLMOutput(\n", - " (dense): Linear(in_features=3072, out_features=768, bias=True)\n", - " (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " )\n", - " (9): LayoutLMLayer(\n", - " (attention): LayoutLMAttention(\n", - " (self): LayoutLMSelfAttention(\n", - " (query): Linear(\n", - " in_features=768, out_features=768, bias=True\n", - " (lora_dropout): Dropout(p=0.1, inplace=False)\n", - " (lora_A): Linear(in_features=768, out_features=16, bias=False)\n", - " (lora_B): Linear(in_features=16, out_features=768, bias=False)\n", - " )\n", - " (key): Linear(in_features=768, out_features=768, bias=True)\n", - " (value): Linear(\n", - " in_features=768, out_features=768, bias=True\n", - " (lora_dropout): Dropout(p=0.1, inplace=False)\n", - " (lora_A): Linear(in_features=768, out_features=16, bias=False)\n", - " (lora_B): Linear(in_features=16, out_features=768, bias=False)\n", - " )\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " (output): LayoutLMSelfOutput(\n", - " (dense): Linear(in_features=768, out_features=768, bias=True)\n", - " (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " )\n", - " (intermediate): LayoutLMIntermediate(\n", - " (dense): Linear(in_features=768, out_features=3072, bias=True)\n", - " (intermediate_act_fn): GELUActivation()\n", - " )\n", - " (output): LayoutLMOutput(\n", - " (dense): Linear(in_features=3072, out_features=768, bias=True)\n", - " (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " )\n", - " (10): LayoutLMLayer(\n", - " (attention): LayoutLMAttention(\n", - " (self): LayoutLMSelfAttention(\n", - " (query): Linear(\n", - " in_features=768, out_features=768, bias=True\n", - " (lora_dropout): Dropout(p=0.1, inplace=False)\n", - " (lora_A): Linear(in_features=768, out_features=16, bias=False)\n", - " (lora_B): Linear(in_features=16, out_features=768, bias=False)\n", - " )\n", - " (key): Linear(in_features=768, out_features=768, bias=True)\n", - " (value): Linear(\n", - " in_features=768, out_features=768, bias=True\n", - " (lora_dropout): Dropout(p=0.1, inplace=False)\n", - " (lora_A): Linear(in_features=768, out_features=16, bias=False)\n", - " (lora_B): Linear(in_features=16, out_features=768, bias=False)\n", - " )\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " (output): LayoutLMSelfOutput(\n", - " (dense): Linear(in_features=768, out_features=768, bias=True)\n", - " (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " )\n", - " (intermediate): LayoutLMIntermediate(\n", - " (dense): Linear(in_features=768, out_features=3072, bias=True)\n", - " (intermediate_act_fn): GELUActivation()\n", - " )\n", - " (output): LayoutLMOutput(\n", - " (dense): Linear(in_features=3072, out_features=768, bias=True)\n", - " (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " )\n", - " (11): LayoutLMLayer(\n", - " (attention): LayoutLMAttention(\n", - " (self): LayoutLMSelfAttention(\n", - " (query): Linear(\n", - " in_features=768, out_features=768, bias=True\n", - " (lora_dropout): Dropout(p=0.1, inplace=False)\n", - " (lora_A): Linear(in_features=768, out_features=16, bias=False)\n", - " (lora_B): Linear(in_features=16, out_features=768, bias=False)\n", - " )\n", - " (key): Linear(in_features=768, out_features=768, bias=True)\n", - " (value): Linear(\n", - " in_features=768, out_features=768, bias=True\n", - " (lora_dropout): Dropout(p=0.1, inplace=False)\n", - " (lora_A): Linear(in_features=768, out_features=16, bias=False)\n", - " (lora_B): Linear(in_features=16, out_features=768, bias=False)\n", - " )\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " (output): LayoutLMSelfOutput(\n", - " (dense): Linear(in_features=768, out_features=768, bias=True)\n", - " (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " )\n", - " (intermediate): LayoutLMIntermediate(\n", - " (dense): Linear(in_features=768, out_features=3072, bias=True)\n", - " (intermediate_act_fn): GELUActivation()\n", - " )\n", - " (output): LayoutLMOutput(\n", - " (dense): Linear(in_features=3072, out_features=768, bias=True)\n", - " (LayerNorm): LayerNorm((768,), eps=1e-12, elementwise_affine=True)\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " )\n", - " )\n", - " )\n", - " )\n", - " (pooler): LayoutLMPooler(\n", - " (dense): Linear(in_features=768, out_features=768, bias=True)\n", - " (activation): Tanh()\n", - " )\n", - " )\n", - " (dropout): Dropout(p=0.1, inplace=False)\n", - " (classifier): Linear(in_features=768, out_features=13, bias=True)\n", - " )\n", - " )\n", - ")" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "from transformers import LayoutLMForTokenClassification\n", "import torch\n", @@ -1401,48 +877,9 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Parameter containing:\n", - "tensor([[-0.0224, 0.0299, -0.0252, ..., -0.0109, 0.0444, 0.0079],\n", - " [-0.0067, 0.0337, -0.0272, ..., -0.0594, 0.1091, 0.0007],\n", - " [ 0.0390, 0.0659, 0.0154, ..., -0.0101, 0.0157, -0.0150],\n", - " ...,\n", - " [ 0.0020, 0.0183, 0.0587, ..., 0.0487, -0.0090, -0.0306],\n", - " [-0.0447, 0.0733, 0.0809, ..., -0.0755, 0.0394, 0.0626],\n", - " [ 0.0111, -0.0696, -0.0267, ..., -0.0041, -0.0576, -0.0373]],\n", - " device='cuda:0')\n", - "Parameter containing:\n", - "tensor([[-0.0253, 0.0085, 0.0225, ..., 0.0184, -0.0036, -0.0280],\n", - " [ 0.0029, -0.0113, -0.0316, ..., 0.0294, -0.0333, -0.0033],\n", - " [ 0.0151, 0.0121, 0.0291, ..., -0.0328, -0.0295, -0.0161],\n", - " ...,\n", - " [-0.0248, -0.0324, -0.0055, ..., 0.0129, -0.0264, -0.0004],\n", - " [ 0.0191, 0.0314, 0.0033, ..., -0.0264, 0.0292, 0.0079],\n", - " [ 0.0197, 0.0346, -0.0040, ..., 0.0037, 0.0151, -0.0032]],\n", - " device='cuda:0', requires_grad=True)\n", - "Parameter containing:\n", - "tensor([[ 3.3286e-03, 2.5395e-04, 1.2631e-02, ..., -2.2320e-02,\n", - " 3.2886e-02, 1.8957e-02],\n", - " [ 3.3295e-02, -2.8352e-02, -1.4806e-02, ..., -6.0922e-04,\n", - " -9.3333e-05, -1.5491e-02],\n", - " [ 1.4130e-02, -4.7829e-03, -1.1069e-02, ..., 2.9516e-02,\n", - " -4.1938e-03, -9.6518e-04],\n", - " ...,\n", - " [-7.7986e-04, -1.9359e-02, 1.9118e-02, ..., -1.6913e-02,\n", - " -3.6974e-03, -1.3698e-02],\n", - " [ 1.1183e-02, -1.6715e-02, 7.0737e-03, ..., -2.1076e-02,\n", - " -1.6323e-02, -4.1332e-03],\n", - " [-2.9230e-02, 5.7393e-05, 1.9348e-02, ..., -1.4401e-02,\n", - " 2.9383e-03, 9.1288e-03]], device='cuda:0', requires_grad=True)\n" - ] - } - ], + "outputs": [], "source": [ "print(model.model.layoutlm.encoder.layer[0].attention.self.query.weight)\n", "print(model.model.layoutlm.encoder.layer[0].attention.self.query.lora_A.weight)\n", @@ -1460,7 +897,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -1468,1514 +905,7 @@ "id": "Yu0qePs2cRKo", "outputId": "cdbb9a03-eb9b-4740-bbe3-da06b9192bae" }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 10%|█████▍ | 1/10 [00:01<00:09, 1.11s/it]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 0 steps: 2.6514651775360107\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:03<00:00, 2.87it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.52it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 10 steps: 2.384181022644043\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.75it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.52it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 20 steps: 2.183215856552124\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.74it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.51it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 30 steps: 1.7022178173065186\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.74it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.51it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 40 steps: 1.1768041849136353\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.74it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.54it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 50 steps: 0.9286957383155823\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.74it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.53it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 60 steps: 0.7891858816146851\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.74it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 70 steps: 0.6700936555862427\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.74it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.51it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 80 steps: 0.5903935432434082\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.74it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.52it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 90 steps: 0.46567460894584656\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.74it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.51it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 100 steps: 0.43472540378570557\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.74it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 110 steps: 0.4344632029533386\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.73it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.51it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 120 steps: 0.29618480801582336\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.73it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.51it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 130 steps: 0.3432932496070862\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.73it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.51it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 140 steps: 0.26484620571136475\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.73it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.52it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 150 steps: 0.3635620176792145\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.73it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.52it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 160 steps: 0.28532707691192627\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.73it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.51it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 170 steps: 0.2699059247970581\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.73it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 180 steps: 0.25385379791259766\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.73it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.51it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 190 steps: 0.23770077526569366\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.73it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 200 steps: 0.18621960282325745\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.73it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 210 steps: 0.22020076215267181\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.73it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.52it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 220 steps: 0.16716673970222473\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.73it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 230 steps: 0.12251073122024536\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.73it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.51it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 240 steps: 0.12013913691043854\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.73it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.51it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 250 steps: 0.09276405721902847\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.73it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.52it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 260 steps: 0.11919382959604263\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.73it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.51it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 270 steps: 0.12163368612527847\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.73it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.51it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 280 steps: 0.09964565187692642\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.73it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.49it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 290 steps: 0.2966587543487549\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.73it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.53it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 300 steps: 0.1136971265077591\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.73it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.52it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 310 steps: 0.15149033069610596\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 320 steps: 0.11433174461126328\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.52it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 330 steps: 0.08340273052453995\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.51it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 340 steps: 0.05601643770933151\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.51it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 350 steps: 0.06016877666115761\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.52it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 360 steps: 0.06651942431926727\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.51it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 370 steps: 0.38789188861846924\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.73it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.51it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 380 steps: 0.16247011721134186\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.49it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 390 steps: 0.10822084546089172\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.49it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 400 steps: 0.10201780498027802\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.73it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.52it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 410 steps: 0.09159471094608307\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.73it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 420 steps: 0.052561257034540176\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.51it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 430 steps: 0.07446825504302979\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.52it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 440 steps: 0.055142153054475784\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.73it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.51it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 450 steps: 0.04064352810382843\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.51it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 460 steps: 0.047722212970256805\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.49it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 470 steps: 0.03962016478180885\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 480 steps: 0.05285123735666275\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 490 steps: 0.04547346383333206\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.49it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 500 steps: 0.035933323204517365\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.51it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 510 steps: 0.01684512570500374\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.73it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.52it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 520 steps: 0.018589401617646217\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.48it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 530 steps: 0.034401122480630875\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.49it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 540 steps: 0.029914753511548042\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 550 steps: 0.019160285592079163\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.49it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 560 steps: 0.030683889985084534\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 570 steps: 0.0281855259090662\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 580 steps: 0.019448189064860344\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 590 steps: 0.01689102128148079\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 600 steps: 0.012563714757561684\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 610 steps: 0.017075713723897934\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.52it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 620 steps: 0.011337793432176113\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 630 steps: 0.01142528560012579\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.71it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.49it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 640 steps: 0.012161443941295147\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 650 steps: 0.01025047805160284\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.49it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 660 steps: 0.008623240515589714\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.48it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 670 steps: 0.020196430385112762\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 680 steps: 0.013619341887533665\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 690 steps: 0.014648614451289177\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.49it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 700 steps: 0.012998558580875397\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 710 steps: 0.021816464141011238\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.71it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.49it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 720 steps: 0.01582351326942444\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 730 steps: 0.014046266674995422\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 740 steps: 0.007438092492520809\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.47it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 750 steps: 0.01699301227927208\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.49it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 760 steps: 0.013121521100401878\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.51it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 770 steps: 0.01430545188486576\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.49it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 780 steps: 0.016542932018637657\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 790 steps: 0.008827055804431438\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 800 steps: 0.014699053950607777\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 810 steps: 0.01083141379058361\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 820 steps: 0.011546650901436806\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 830 steps: 0.007675974629819393\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.71it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 840 steps: 0.011567591689527035\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 850 steps: 0.006588640157133341\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 860 steps: 0.012320021167397499\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.49it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 870 steps: 0.021453894674777985\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 880 steps: 0.010092893615365028\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.49it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 890 steps: 0.009351171553134918\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.49it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 900 steps: 0.004404681734740734\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.48it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 910 steps: 0.002058168640360236\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.71it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 920 steps: 0.0021678945049643517\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.51it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 930 steps: 0.006458617746829987\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.49it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 940 steps: 0.007828252390027046\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.49it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 950 steps: 0.008966044522821903\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.71it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.51it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 960 steps: 0.014970815740525723\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.71it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.49it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 970 steps: 0.0066721560433506966\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 980 steps: 0.004333506338298321\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n", - "Training: 10%|█████▍ | 1/10 [00:00<00:02, 3.51it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loss after 990 steps: 0.006984252016991377\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Training: 100%|█████████████████████████████████████████████████████| 10/10 [00:02<00:00, 3.72it/s]\n" - ] - } - ], + "outputs": [], "source": [ "from transformers import AdamW, get_linear_schedule_with_warmup\n", "from tqdm import tqdm\n",