{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "provenance": [] }, "kernelspec": { "name": "python3", "display_name": "Python 3" }, "language_info": { "name": "python" } }, "cells": [ { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000, "referenced_widgets": [ "db441240ce3548bfb4ba2f9c149a84f8", "992852aedd074b999bb3d9f14f470a35", "861dfc8a4c9849a38ac23dffe19e3f13", "aba88d7d83964522831187874dbbc27a", "0cac4910335848689bdca8154f71ed93", "fd81c0390e0c494fbb1150d2b8e5344d", "d73f968a5e2f44a28139f8e2be8cd676", "a432627561b649f597da827798fa4406", "30a8a97f231242898550d40b9dfde958", "3f1c8c3d30a943f4a695c4e91c2ad750", "36f3ef789e914ca98a1a2ea903f6194c", "b6ef5519fca04fc0b485e3e17292d7b8", "6353ec74a14a44b1bb9b2289707955ec", "18279f32691b46d7aaeaf3ba8d5e6c76", "54520b08fa1e40c5ae9abdc726ee9463", "00fa39c62c12469ba606e024a5ee0f48", "291d635e101f4fd3a497fecbb217598d", "02bf580c8c4f48f694992e4a73ec6226", "2f955225d1cc471daaf77c5b8913a499", "7ffa4300065e4813a4daaafcc19e34d3", "027e2b346ddc470da1ec31a6dea54899", "f14f3c647a6548cebc1c290867c478d1", "12124f93dded468d88c2cada8002549b", "c6bb0a4c01e847ecab1583327e24b595", "ebe7c61ab91e4952b86d39609d7aa51f", "0113ddeabf7f45738cd238e31c72be9f", "2bc50b56fdd4400291e7fdf3a2f67559", "d5ffd60026384b63a682604c150c9545", "d93a882bf6d745a5bf53e2be9c7ae7d1", "d4f526dab75b4603a5119484146c74de", "19a085dd9ec64b27a0afa96a1cf9c77b", "9c3bf725edbf427b98c1d4b78d145eb6", "242a9b4c2cf44ef3989e600f99109dbd", "8a7601455aba41ba94d99b3995022a4f", "1116d04e353145b2bdee2f7c26fcb89a", "c905b377085744fdacf0f2378962a7e8", "afa9dd62ef78469698b3a262485c33db", "0a25f46ee05648f4ba25bfb6acb815b8", "438f2815c7c54ccabe57f109137f8cbe", "60fca3cfad0d445bb866e9f5f063c600", "c95450890a2e4068a991be5e11e7a556", "ac68d50c3c6d4bf59f1bd3a1dc828c2c", "3f9fc317542449749f74866e810b4fa4", "761400ae50244385b7d0327dca7579b4", "38145911d9984423a641bdab06c7231c", "b65dc7b82f75468a81b47ab8e7893533", "b7493c1aff4d43d4a520a65deb750f5a", "bf576b18b17845bbac1c69ffd03c24f5", "a29e91582b7643c7bd6020d7446c31d7", "953b54e107d04fec84dd319b6abcba2e", "063ac09bae2a4fc2b3daaf039f321478", "d25128bf88ee429db92d6263741086f5", "f61ba17d9de94592a6c5bc49fa616d1c", "69fe402d16d44c8ea2facc26e386da26", "d7fd250697024498802e5d7f3f6d1e76", "1f1e1cb6c61d4b97af3eb737b52b1bd7", "74035c3be87642b8ba6cb52d3198e911", "9b5b0f47fab4471fab26173bdaa23824", "e19e4ea11dde4e5fb84e90a872f70b6c", "3855b1c8b8a64b1bbcdd92b46dd36700", "6db67239856e40cb8d51840c255d5bc1", "1fa5ce55c24647b29cfb4ddd46d6dcdb", "9a5bff8deaba4b6180eb9f41df22f496", "02c4ce7351584a7bbe3cf8d97cf1ea37", "56a8f068b9b24407903996d7504e743a", "50820d432efa4a2ba0d9682da82c47b9", "e0782f135c1b4f8cb7ef46943b98a1c0", "bc11d54419954bbdac4fc737ccb44667", "601386462eca4ffea1aca99301ac7f64", "3b8249ea24514f1bb0b7b384d0303c79", "90dfddf605af450dbd4fd84118ce30f6", "f88c7ec5136b4ab7aa9cb3c5fa7c59fa", "78724f98a0e24165b13ffddc77b0ffb0", "ff75cc9e11454d5dbf99c066f320e5a2", "04332c8400af4f97ae43732bb33318cb", "fde1580f854d494e837ebf61ccb08c12", "ab87218e1a0d43d4a6e340fbec7223da", "85a90ff7a9d743d089cf1a2df0fee00c", "981e7b377ce2429c84d1e1c7711b1d84", "45f029954fbc49b59549dcbaf78e6c57", "bcde68e0cf7b447c920b0008f2c1d0b3", "8fa0da896b1e499c9363bca8f3e77161", "e44da1ff410e491bbdd2b9e6944b5dd4", "32ed4e3fbccb401b95caa32a8b416a46", "700eb3be104145d8856116cf1ec97a91", "f05c27c995b24dc591bb3cc2eb88498d", "61ec0d4a5aad459fb7e17c7a1f40d8ea", "256ba051b8974a22a8c5806c33036302", "81e383a7144d40758155b7390f96cd36", "81509994ee72468c94c6446e4dce7bc4", "aa59aa4191814f5590df7b615cba8662", "fb30c48831ff49c0a93afe9f78b3d3ce", "100017db2b1643959e5fa9f9a151eca0", "d158b2021779494e8f45093dbd19763e", "94f2273c0d184bc1b45b8822eac844ae", "0e883221fdf44ceb9a3edb8a9d2e0f3e", "665a16b9f1c84a37b4e98e3ebb018079", "c494fae99a17475a888f2906e6777299", "c8e4bfe829f74f488afc145663efad9e", "70f74db9f35e49ad9ce25e676163bc27", "8a3d7e1753ad43a28764bf320dfb1f27", "fe7f9eb43f1546d6b1c2ebe6b667bba9", "84ff6cd46c124ae3a81efae655ab19ca", "10631bc855c94fd9a709405dbdc3e282", "9d857b4eb8964338ad440b0ce0dd04a4", "eb3604ac38d54a529309e6c5de500b28", "0ea515fd0808401b9fdeef8af42d3a84", "52143427e13f4f2f9c5bdba7894f45c4", "87021fde2b3447c0b901cf8256f0e48b", "167b90e3a1ce4e91bc28f3ab63952a4f", "301bb7b48eae4c8dbb8d0d746ceae489", "83e048ac798e4fe8af4188bc81c45a1f", "93db3f978c784c9285120f19bb9b064b", "5985cad0fc474efb89e677e281694696", "6efe3801db2346fba192e10136b58b62", "e3ccb91b91e54c0e9d41752b2f71e40a", "b880c1cf529b4462aa65da4d13a76193", "30b9e64f2db14bbaa9e81bc613cdaf2f", "a324204e66f44ab9a4653085b9ea7eb6" ] }, "id": "72b21d99-0540-4ec4-9e6b-618d41eb6fb4", "outputId": "6dfd6ea9-32e0-4c8a-8b92-8f4ec785b6b7" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "🔍 Fetching required dependencies...\n", "✅ All files ready!\n", "\n", "Requirement already satisfied: huggingface_hub in /usr/local/lib/python3.12/dist-packages (1.10.1)\n", "Requirement already satisfied: filelock>=3.10.0 in /usr/local/lib/python3.12/dist-packages (from huggingface_hub) (3.25.2)\n", "Requirement already satisfied: fsspec>=2023.5.0 in /usr/local/lib/python3.12/dist-packages (from huggingface_hub) (2025.3.0)\n", "Requirement already satisfied: hf-xet<2.0.0,>=1.4.3 in /usr/local/lib/python3.12/dist-packages (from huggingface_hub) (1.4.3)\n", "Requirement already satisfied: httpx<1,>=0.23.0 in /usr/local/lib/python3.12/dist-packages (from huggingface_hub) (0.28.1)\n", "Requirement already satisfied: packaging>=20.9 in /usr/local/lib/python3.12/dist-packages (from huggingface_hub) (26.0)\n", "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.12/dist-packages (from huggingface_hub) (6.0.3)\n", "Requirement already satisfied: tqdm>=4.42.1 in /usr/local/lib/python3.12/dist-packages (from huggingface_hub) (4.67.3)\n", "Requirement already satisfied: typer in /usr/local/lib/python3.12/dist-packages (from huggingface_hub) (0.24.1)\n", "Requirement already satisfied: typing-extensions>=4.1.0 in /usr/local/lib/python3.12/dist-packages (from huggingface_hub) (4.15.0)\n", "Requirement already satisfied: anyio in /usr/local/lib/python3.12/dist-packages (from httpx<1,>=0.23.0->huggingface_hub) (4.13.0)\n", "Requirement already satisfied: certifi in /usr/local/lib/python3.12/dist-packages (from httpx<1,>=0.23.0->huggingface_hub) (2026.2.25)\n", "Requirement already satisfied: httpcore==1.* in /usr/local/lib/python3.12/dist-packages (from httpx<1,>=0.23.0->huggingface_hub) (1.0.9)\n", "Requirement already satisfied: idna in /usr/local/lib/python3.12/dist-packages (from httpx<1,>=0.23.0->huggingface_hub) (3.11)\n", "Requirement already satisfied: h11>=0.16 in /usr/local/lib/python3.12/dist-packages (from httpcore==1.*->httpx<1,>=0.23.0->huggingface_hub) (0.16.0)\n", "Requirement already satisfied: click>=8.2.1 in /usr/local/lib/python3.12/dist-packages (from typer->huggingface_hub) (8.3.2)\n", "Requirement already satisfied: shellingham>=1.3.0 in /usr/local/lib/python3.12/dist-packages (from typer->huggingface_hub) (1.5.4)\n", "Requirement already satisfied: rich>=12.3.0 in /usr/local/lib/python3.12/dist-packages (from typer->huggingface_hub) (13.9.4)\n", "Requirement already satisfied: annotated-doc>=0.0.2 in /usr/local/lib/python3.12/dist-packages (from typer->huggingface_hub) (0.0.4)\n", "Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.12/dist-packages (from rich>=12.3.0->typer->huggingface_hub) (4.0.0)\n", "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.12/dist-packages (from rich>=12.3.0->typer->huggingface_hub) (2.20.0)\n", "Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.12/dist-packages (from markdown-it-py>=2.2.0->rich>=12.3.0->typer->huggingface_hub) (0.1.2)\n", "☁️ Colab detected! Please log in to Hugging Face to download Llama-3.2:\n" ] }, { "output_type": "display_data", "data": { "text/plain": [ "VBox(children=(HTML(value='
Reward: +0.83 | Total: +0.83\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 2: route_to_human -> Reward: +0.83 | Total: +1.66\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 3: ask_for_clarification -> Reward: -0.37 | Total: +1.29\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 4: route_to_human -> Reward: -0.97 | Total: +0.32\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 5: auto_reply -> Reward: -0.67 | Total: -0.35\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 6: route_to_human -> Reward: -0.97 | Total: -1.32\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 7: route_to_human -> Reward: +0.83 | Total: -0.49\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "/usr/local/lib/python3.12/dist-packages/transformers/modeling_attn_mask_utils.py:71: FutureWarning: The attention mask API under `transformers.modeling_attn_mask_utils` (`AttentionMaskConverter`) is deprecated and will be removed in Transformers v5.10. Please use the new API in `transformers.masking_utils`.\n", " warnings.warn(DEPRECATION_MESSAGE, FutureWarning)\n", "/usr/local/lib/python3.12/dist-packages/transformers/modeling_attn_mask_utils.py:281: FutureWarning: The attention mask API under `transformers.modeling_attn_mask_utils` (`AttentionMaskConverter`) is deprecated and will be removed in Transformers v5.10. Please use the new API in `transformers.masking_utils`.\n", " warnings.warn(DEPRECATION_MESSAGE, FutureWarning)\n", "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 8: route_to_human -> Reward: +0.83 | Total: +0.34\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 9: ask_for_clarification -> Reward: -0.37 | Total: -0.03\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\n", "Collecting rollouts: 3%|▎ | 1/30 [00:27<13:18, 27.53s/it]\u001b[ABoth `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 10: route_to_human -> Reward: -0.97 | Total: -1.00\n", "✅ Successfully loaded 100 emails from dataset.json\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 1: auto_reply -> Reward: -0.67 | Total: -0.67\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 2: auto_reply -> Reward: +1.14 | Total: +0.47\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 3: route_to_human -> Reward: +0.83 | Total: +1.30\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 4: ask_for_clarification -> Reward: -0.37 | Total: +0.93\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 5: auto_reply -> Reward: +0.93 | Total: +1.86\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 6: auto_reply -> Reward: -0.67 | Total: +1.19\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 7: auto_reply -> Reward: +0.94 | Total: +2.13\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 8: route_to_human -> Reward: -0.98 | Total: +1.15\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 9: auto_reply -> Reward: +0.93 | Total: +2.08\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\n", "Collecting rollouts: 7%|▋ | 2/30 [01:00<14:24, 30.87s/it]\u001b[ABoth `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 10: route_to_human -> Reward: +0.83 | Total: +2.91\n", "✅ Successfully loaded 100 emails from dataset.json\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 1: auto_reply -> Reward: +0.93 | Total: +0.93\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 2: ask_for_clarification -> Reward: -0.37 | Total: +0.56\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 3: route_to_human -> Reward: +0.83 | Total: +1.39\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 4: route_to_human -> Reward: +0.63 | Total: +2.02\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 5: auto_reply -> Reward: -0.67 | Total: +1.35\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 6: route_to_human -> Reward: +0.83 | Total: +2.18\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 7: route_to_human -> Reward: -0.97 | Total: +1.21\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 8: route_to_human -> Reward: +0.83 | Total: +2.04\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 9: auto_reply -> Reward: -0.67 | Total: +1.37\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\n", "Collecting rollouts: 10%|█ | 3/30 [01:27<13:04, 29.07s/it]\u001b[ABoth `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 10: route_to_human -> Reward: +0.83 | Total: +2.20\n", "✅ Successfully loaded 100 emails from dataset.json\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 1: route_to_human -> Reward: +0.83 | Total: +0.83\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 2: ask_for_clarification -> Reward: -0.37 | Total: +0.46\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 3: auto_reply -> Reward: +0.94 | Total: +1.40\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 4: route_to_human -> Reward: +0.83 | Total: +2.23\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 5: ask_for_clarification -> Reward: -0.37 | Total: +1.86\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 6: route_to_human -> Reward: +0.83 | Total: +2.69\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 7: route_to_human -> Reward: -0.97 | Total: +1.72\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 8: ask_for_clarification -> Reward: -0.37 | Total: +1.35\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 9: ask_for_clarification -> Reward: -0.37 | Total: +0.98\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\n", "Collecting rollouts: 13%|█▎ | 4/30 [01:47<10:57, 25.27s/it]\u001b[ABoth `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 10: route_to_human -> Reward: -0.98 | Total: +0.00\n", "✅ Successfully loaded 100 emails from dataset.json\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 1: route_to_human -> Reward: +0.83 | Total: +0.83\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 2: ask_for_clarification -> Reward: -0.37 | Total: +0.46\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 3: route_to_human -> Reward: +0.83 | Total: +1.29\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 4: route_to_human -> Reward: +0.83 | Total: +2.12\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 5: ask_for_clarification -> Reward: -0.37 | Total: +1.75\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 6: auto_reply -> Reward: +0.93 | Total: +2.68\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 7: route_to_human -> Reward: +0.83 | Total: +3.51\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 8: route_to_human -> Reward: +0.83 | Total: +4.34\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 9: route_to_human -> Reward: +0.83 | Total: +5.17\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\n", "Collecting rollouts: 17%|█▋ | 5/30 [02:10<10:12, 24.49s/it]\u001b[ABoth `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 10: auto_reply -> Reward: -0.67 | Total: +4.50\n", "✅ Successfully loaded 100 emails from dataset.json\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 1: route_to_human -> Reward: +0.83 | Total: +0.83\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 2: route_to_human -> Reward: +0.63 | Total: +1.46\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 3: ask_for_clarification -> Reward: -0.37 | Total: +1.09\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 4: ask_for_clarification -> Reward: -0.37 | Total: +0.72\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 5: ask_for_clarification -> Reward: -0.37 | Total: +0.35\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 6: auto_reply -> Reward: +0.94 | Total: +1.29\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 7: auto_reply -> Reward: -0.67 | Total: +0.62\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 8: route_to_human -> Reward: -0.98 | Total: -0.36\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 9: route_to_human -> Reward: -0.97 | Total: -1.33\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\n", "Collecting rollouts: 20%|██ | 6/30 [02:31<09:17, 23.23s/it]\u001b[ABoth `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 10: route_to_human -> Reward: -0.97 | Total: -2.30\n", "✅ Successfully loaded 100 emails from dataset.json\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 1: auto_reply -> Reward: -0.67 | Total: -0.67\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 2: auto_reply -> Reward: +0.94 | Total: +0.27\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 3: auto_reply -> Reward: +1.14 | Total: +1.41\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 4: route_to_human -> Reward: -0.97 | Total: +0.44\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 5: auto_reply -> Reward: +0.93 | Total: +1.37\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 6: ask_for_clarification -> Reward: -0.37 | Total: +1.00\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 7: route_to_human -> Reward: +0.83 | Total: +1.83\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 8: ask_for_clarification -> Reward: -0.37 | Total: +1.46\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 9: route_to_human -> Reward: +0.83 | Total: +2.29\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\n", "Collecting rollouts: 23%|██▎ | 7/30 [02:57<09:15, 24.17s/it]\u001b[ABoth `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 10: route_to_human -> Reward: +0.63 | Total: +2.92\n", "✅ Successfully loaded 100 emails from dataset.json\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 1: ask_for_clarification -> Reward: -0.37 | Total: -0.37\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 2: auto_reply -> Reward: -0.67 | Total: -1.04\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 3: route_to_human -> Reward: -0.98 | Total: -2.02\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 4: route_to_human -> Reward: +0.83 | Total: -1.19\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 5: ask_for_clarification -> Reward: -0.37 | Total: -1.56\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 6: route_to_human -> Reward: +0.83 | Total: -0.73\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 7: route_to_human -> Reward: +0.83 | Total: +0.10\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 8: auto_reply -> Reward: +1.14 | Total: +1.24\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 9: ask_for_clarification -> Reward: -0.37 | Total: +0.87\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\n", "Collecting rollouts: 27%|██▋ | 8/30 [03:17<08:28, 23.11s/it]\u001b[ABoth `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 10: ask_for_clarification -> Reward: -0.37 | Total: +0.50\n", "✅ Successfully loaded 100 emails from dataset.json\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 1: auto_reply -> Reward: +1.14 | Total: +1.14\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 2: route_to_human -> Reward: +0.83 | Total: +1.97\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 3: auto_reply -> Reward: -0.67 | Total: +1.30\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 4: route_to_human -> Reward: -0.98 | Total: +0.32\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 5: ask_for_clarification -> Reward: -0.37 | Total: -0.05\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 6: route_to_human -> Reward: -0.97 | Total: -1.02\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 7: route_to_human -> Reward: +0.83 | Total: -0.19\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 8: route_to_human -> Reward: +0.83 | Total: +0.64\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 9: ask_for_clarification -> Reward: -0.37 | Total: +0.27\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\n", "Collecting rollouts: 30%|███ | 9/30 [03:40<08:01, 22.93s/it]\u001b[ABoth `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 10: ask_for_clarification -> Reward: -0.37 | Total: -0.10\n", "✅ Successfully loaded 100 emails from dataset.json\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 1: route_to_human -> Reward: -0.97 | Total: -0.97\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 2: route_to_human -> Reward: -0.62 | Total: -1.59\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 3: auto_reply -> Reward: +0.94 | Total: -0.65\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 4: ask_for_clarification -> Reward: -0.37 | Total: -1.02\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 5: auto_reply -> Reward: -0.67 | Total: -1.69\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 6: ask_for_clarification -> Reward: -0.37 | Total: -2.06\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 7: auto_reply -> Reward: +0.94 | Total: -1.12\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 8: auto_reply -> Reward: +1.14 | Total: +0.02\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 9: route_to_human -> Reward: -0.97 | Total: -0.95\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\n", "Collecting rollouts: 33%|███▎ | 10/30 [04:06<07:57, 23.90s/it]\u001b[ABoth `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 10: route_to_human -> Reward: +0.63 | Total: -0.32\n", "✅ Successfully loaded 100 emails from dataset.json\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 1: route_to_human -> Reward: +0.83 | Total: +0.83\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 2: auto_reply -> Reward: +0.93 | Total: +1.76\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 3: route_to_human -> Reward: +0.83 | Total: +2.59\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 4: auto_reply -> Reward: -0.67 | Total: +1.92\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 5: route_to_human -> Reward: +0.83 | Total: +2.75\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 6: route_to_human -> Reward: +0.83 | Total: +3.58\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 7: auto_reply -> Reward: +0.93 | Total: +4.51\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 8: route_to_human -> Reward: -0.97 | Total: +3.54\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 9: auto_reply -> Reward: +0.93 | Total: +4.47\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\n", "Collecting rollouts: 37%|███▋ | 11/30 [04:38<08:21, 26.40s/it]\u001b[ABoth `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 10: route_to_human -> Reward: +0.83 | Total: +5.30\n", "✅ Successfully loaded 100 emails from dataset.json\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 1: ask_for_clarification -> Reward: -0.37 | Total: -0.37\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 2: route_to_human -> Reward: +0.83 | Total: +0.46\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 3: auto_reply -> Reward: +0.94 | Total: +1.40\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 4: route_to_human -> Reward: -0.97 | Total: +0.43\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 5: ask_for_clarification -> Reward: -0.37 | Total: +0.06\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 6: route_to_human -> Reward: +0.83 | Total: +0.89\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 7: route_to_human -> Reward: +0.83 | Total: +1.72\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 8: ask_for_clarification -> Reward: -0.37 | Total: +1.35\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 9: route_to_human -> Reward: +0.83 | Total: +2.18\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\n", "Collecting rollouts: 40%|████ | 12/30 [04:59<07:22, 24.58s/it]\u001b[ABoth `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 10: route_to_human -> Reward: +0.83 | Total: +3.01\n", "✅ Successfully loaded 100 emails from dataset.json\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 1: ask_for_clarification -> Reward: -0.37 | Total: -0.37\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 2: auto_reply -> Reward: +0.94 | Total: +0.57\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 3: ask_for_clarification -> Reward: -0.37 | Total: +0.20\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 4: ask_for_clarification -> Reward: -0.37 | Total: -0.17\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 5: auto_reply -> Reward: +0.94 | Total: +0.77\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 6: auto_reply -> Reward: +1.14 | Total: +1.91\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 7: auto_reply -> Reward: +1.14 | Total: +3.05\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 8: route_to_human -> Reward: +0.83 | Total: +3.88\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 9: auto_reply -> Reward: -0.67 | Total: +3.21\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\n", "Collecting rollouts: 43%|████▎ | 13/30 [05:24<07:03, 24.94s/it]\u001b[ABoth `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 10: ask_for_clarification -> Reward: -0.37 | Total: +2.84\n", "✅ Successfully loaded 100 emails from dataset.json\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 1: auto_reply -> Reward: -0.67 | Total: -0.67\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 2: route_to_human -> Reward: +0.83 | Total: +0.16\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 3: auto_reply -> Reward: +0.93 | Total: +1.09\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 4: route_to_human -> Reward: +0.83 | Total: +1.92\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 5: ask_for_clarification -> Reward: -0.37 | Total: +1.55\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 6: auto_reply -> Reward: +1.14 | Total: +2.69\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 7: auto_reply -> Reward: +0.94 | Total: +3.63\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 8: route_to_human -> Reward: +0.63 | Total: +4.26\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 9: auto_reply -> Reward: -0.67 | Total: +3.59\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\n", "Collecting rollouts: 47%|████▋ | 14/30 [05:53<06:56, 26.00s/it]\u001b[ABoth `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 10: ask_for_clarification -> Reward: -0.37 | Total: +3.22\n", "✅ Successfully loaded 100 emails from dataset.json\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 1: auto_reply -> Reward: +1.14 | Total: +1.14\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 2: auto_reply -> Reward: +0.93 | Total: +2.07\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 3: auto_reply -> Reward: +0.93 | Total: +3.00\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 4: route_to_human -> Reward: +0.83 | Total: +3.83\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 5: ask_for_clarification -> Reward: -0.37 | Total: +3.46\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 6: ask_for_clarification -> Reward: -0.37 | Total: +3.09\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 7: auto_reply -> Reward: +0.94 | Total: +4.03\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 8: route_to_human -> Reward: -0.98 | Total: +3.05\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 9: auto_reply -> Reward: +0.93 | Total: +3.98\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\n", "Collecting rollouts: 50%|█████ | 15/30 [06:23<06:49, 27.33s/it]\u001b[ABoth `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 10: ask_for_clarification -> Reward: -0.37 | Total: +3.61\n", "✅ Successfully loaded 100 emails from dataset.json\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 1: route_to_human -> Reward: +0.83 | Total: +0.83\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 2: auto_reply -> Reward: +0.94 | Total: +1.77\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 3: auto_reply -> Reward: +0.93 | Total: +2.70\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 4: ask_for_clarification -> Reward: -0.37 | Total: +2.33\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 5: route_to_human -> Reward: -0.97 | Total: +1.36\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 6: route_to_human -> Reward: +0.83 | Total: +2.19\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 7: route_to_human -> Reward: +0.83 | Total: +3.02\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 8: ask_for_clarification -> Reward: -0.37 | Total: +2.65\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 9: route_to_human -> Reward: +0.63 | Total: +3.28\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\n", "Collecting rollouts: 53%|█████▎ | 16/30 [06:47<06:07, 26.26s/it]\u001b[ABoth `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 10: ask_for_clarification -> Reward: -0.37 | Total: +2.91\n", "✅ Successfully loaded 100 emails from dataset.json\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 1: auto_reply -> Reward: +1.14 | Total: +1.14\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 2: ask_for_clarification -> Reward: -0.37 | Total: +0.77\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 3: ask_for_clarification -> Reward: -0.37 | Total: +0.40\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 4: ask_for_clarification -> Reward: -0.37 | Total: +0.03\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 5: auto_reply -> Reward: +0.93 | Total: +0.96\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 6: auto_reply -> Reward: +0.93 | Total: +1.89\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 7: ask_for_clarification -> Reward: -0.37 | Total: +1.52\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 8: route_to_human -> Reward: -0.97 | Total: +0.55\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 9: auto_reply -> Reward: -0.67 | Total: -0.12\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\n", "Collecting rollouts: 57%|█████▋ | 17/30 [07:15<05:47, 26.76s/it]\u001b[ABoth `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 10: route_to_human -> Reward: +0.83 | Total: +0.71\n", "✅ Successfully loaded 100 emails from dataset.json\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 1: route_to_human -> Reward: -0.97 | Total: -0.97\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 2: route_to_human -> Reward: +0.63 | Total: -0.34\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 3: route_to_human -> Reward: +0.83 | Total: +0.49\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 4: route_to_human -> Reward: +0.83 | Total: +1.32\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 5: route_to_human -> Reward: -0.97 | Total: +0.35\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 6: route_to_human -> Reward: +0.83 | Total: +1.18\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 7: auto_reply -> Reward: +0.93 | Total: +2.11\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 8: auto_reply -> Reward: -0.67 | Total: +1.44\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 9: auto_reply -> Reward: -0.67 | Total: +0.77\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\n", "Collecting rollouts: 60%|██████ | 18/30 [07:41<05:18, 26.56s/it]\u001b[ABoth `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 10: auto_reply -> Reward: -0.67 | Total: +0.10\n", "✅ Successfully loaded 100 emails from dataset.json\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 1: ask_for_clarification -> Reward: -0.37 | Total: -0.37\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 2: route_to_human -> Reward: -0.98 | Total: -1.35\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 3: route_to_human -> Reward: -0.97 | Total: -2.32\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 4: route_to_human -> Reward: +0.83 | Total: -1.49\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 5: ask_for_clarification -> Reward: -0.37 | Total: -1.86\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 6: route_to_human -> Reward: +0.83 | Total: -1.03\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 7: ask_for_clarification -> Reward: -0.37 | Total: -1.40\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 8: auto_reply -> Reward: +0.93 | Total: -0.47\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 9: route_to_human -> Reward: -0.97 | Total: -1.44\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\n", "Collecting rollouts: 63%|██████▎ | 19/30 [08:04<04:40, 25.47s/it]\u001b[ABoth `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 10: route_to_human -> Reward: -0.97 | Total: -2.41\n", "✅ Successfully loaded 100 emails from dataset.json\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 1: route_to_human -> Reward: -0.97 | Total: -0.97\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 2: auto_reply -> Reward: -0.67 | Total: -1.64\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 3: route_to_human -> Reward: +0.63 | Total: -1.01\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 4: route_to_human -> Reward: +0.83 | Total: -0.18\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 5: auto_reply -> Reward: +0.94 | Total: +0.76\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 6: route_to_human -> Reward: +0.83 | Total: +1.59\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 7: auto_reply -> Reward: +0.94 | Total: +2.53\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 8: route_to_human -> Reward: +0.83 | Total: +3.36\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 9: ask_for_clarification -> Reward: -0.37 | Total: +2.99\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\n", "Collecting rollouts: 67%|██████▋ | 20/30 [08:34<04:27, 26.71s/it]\u001b[ABoth `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 10: auto_reply -> Reward: +0.93 | Total: +3.92\n", "✅ Successfully loaded 100 emails from dataset.json\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 1: route_to_human -> Reward: -0.62 | Total: -0.62\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 2: auto_reply -> Reward: +1.14 | Total: +0.52\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 3: route_to_human -> Reward: +0.83 | Total: +1.35\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 4: ask_for_clarification -> Reward: -0.37 | Total: +0.98\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 5: auto_reply -> Reward: +0.94 | Total: +1.92\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 6: route_to_human -> Reward: +0.63 | Total: +2.55\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 7: route_to_human -> Reward: +0.83 | Total: +3.38\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 8: route_to_human -> Reward: -0.97 | Total: +2.41\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 9: auto_reply -> Reward: +1.14 | Total: +3.55\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\n", "Collecting rollouts: 70%|███████ | 21/30 [09:01<04:03, 27.02s/it]\u001b[ABoth `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 10: auto_reply -> Reward: +0.93 | Total: +4.48\n", "✅ Successfully loaded 100 emails from dataset.json\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 1: route_to_human -> Reward: +0.83 | Total: +0.83\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 2: route_to_human -> Reward: +0.63 | Total: +1.46\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 3: auto_reply -> Reward: -0.67 | Total: +0.79\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 4: route_to_human -> Reward: -0.97 | Total: -0.18\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 5: route_to_human -> Reward: +0.83 | Total: +0.65\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 6: auto_reply -> Reward: -0.67 | Total: -0.02\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 7: route_to_human -> Reward: +0.83 | Total: +0.81\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 8: route_to_human -> Reward: +0.83 | Total: +1.64\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 9: ask_for_clarification -> Reward: -0.37 | Total: +1.27\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\n", "Collecting rollouts: 73%|███████▎ | 22/30 [09:27<03:33, 26.66s/it]\u001b[ABoth `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 10: auto_reply -> Reward: +0.93 | Total: +2.20\n", "✅ Successfully loaded 100 emails from dataset.json\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 1: ask_for_clarification -> Reward: -0.37 | Total: -0.37\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 2: auto_reply -> Reward: +1.14 | Total: +0.77\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 3: auto_reply -> Reward: -0.67 | Total: +0.10\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 4: route_to_human -> Reward: +0.63 | Total: +0.73\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 5: route_to_human -> Reward: +0.83 | Total: +1.56\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 6: ask_for_clarification -> Reward: -0.37 | Total: +1.19\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 7: route_to_human -> Reward: +0.83 | Total: +2.02\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 8: route_to_human -> Reward: +0.83 | Total: +2.85\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 9: route_to_human -> Reward: -0.97 | Total: +1.88\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\n", "Collecting rollouts: 77%|███████▋ | 23/30 [09:49<02:56, 25.25s/it]\u001b[ABoth `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 10: route_to_human -> Reward: +0.83 | Total: +2.71\n", "✅ Successfully loaded 100 emails from dataset.json\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 1: route_to_human -> Reward: +0.83 | Total: +0.83\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 2: route_to_human -> Reward: -0.97 | Total: -0.14\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 3: route_to_human -> Reward: +0.83 | Total: +0.69\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 4: auto_reply -> Reward: +0.93 | Total: +1.62\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 5: route_to_human -> Reward: +0.63 | Total: +2.25\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 6: route_to_human -> Reward: +0.83 | Total: +3.08\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 7: ask_for_clarification -> Reward: -0.37 | Total: +2.71\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 8: route_to_human -> Reward: +0.83 | Total: +3.54\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 9: auto_reply -> Reward: +0.94 | Total: +4.48\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\n", "Collecting rollouts: 80%|████████ | 24/30 [10:13<02:29, 24.87s/it]\u001b[ABoth `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 10: route_to_human -> Reward: +0.83 | Total: +5.31\n", "✅ Successfully loaded 100 emails from dataset.json\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 1: ask_for_clarification -> Reward: -0.37 | Total: -0.37\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 2: ask_for_clarification -> Reward: -0.37 | Total: -0.74\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 3: route_to_human -> Reward: -0.98 | Total: -1.72\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 4: route_to_human -> Reward: +0.83 | Total: -0.89\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 5: ask_for_clarification -> Reward: -0.37 | Total: -1.26\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 6: ask_for_clarification -> Reward: -0.37 | Total: -1.63\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 7: ask_for_clarification -> Reward: -0.37 | Total: -2.00\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 8: auto_reply -> Reward: -0.67 | Total: -2.67\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 9: route_to_human -> Reward: +0.83 | Total: -1.84\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\n", "Collecting rollouts: 83%|████████▎ | 25/30 [10:34<01:59, 23.83s/it]\u001b[ABoth `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 10: auto_reply -> Reward: +1.14 | Total: -0.70\n", "✅ Successfully loaded 100 emails from dataset.json\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 1: auto_reply -> Reward: +0.93 | Total: +0.93\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 2: route_to_human -> Reward: -0.97 | Total: -0.04\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 3: auto_reply -> Reward: +1.14 | Total: +1.10\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 4: ask_for_clarification -> Reward: -0.37 | Total: +0.73\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 5: auto_reply -> Reward: +0.94 | Total: +1.67\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 6: route_to_human -> Reward: -0.97 | Total: +0.70\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 7: ask_for_clarification -> Reward: -0.37 | Total: +0.33\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 8: ask_for_clarification -> Reward: -0.37 | Total: -0.04\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 9: route_to_human -> Reward: +0.63 | Total: +0.59\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\n", "Collecting rollouts: 87%|████████▋ | 26/30 [11:01<01:39, 24.79s/it]\u001b[ABoth `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 10: auto_reply -> Reward: +1.14 | Total: +1.73\n", "✅ Successfully loaded 100 emails from dataset.json\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 1: route_to_human -> Reward: -0.97 | Total: -0.97\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 2: route_to_human -> Reward: +0.63 | Total: -0.34\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 3: auto_reply -> Reward: +1.14 | Total: +0.80\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 4: route_to_human -> Reward: -0.97 | Total: -0.17\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 5: route_to_human -> Reward: +0.63 | Total: +0.46\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 6: ask_for_clarification -> Reward: -0.37 | Total: +0.09\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 7: auto_reply -> Reward: -0.67 | Total: -0.58\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 8: auto_reply -> Reward: -0.67 | Total: -1.25\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 9: ask_for_clarification -> Reward: -0.37 | Total: -1.62\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\n", "Collecting rollouts: 90%|█████████ | 27/30 [11:24<01:12, 24.23s/it]\u001b[ABoth `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 10: route_to_human -> Reward: +0.83 | Total: -0.79\n", "✅ Successfully loaded 100 emails from dataset.json\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 1: ask_for_clarification -> Reward: -0.37 | Total: -0.37\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 2: auto_reply -> Reward: +0.93 | Total: +0.56\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 3: ask_for_clarification -> Reward: -0.37 | Total: +0.19\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 4: auto_reply -> Reward: +1.14 | Total: +1.33\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 5: route_to_human -> Reward: +0.83 | Total: +2.16\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 6: route_to_human -> Reward: -0.98 | Total: +1.18\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 7: route_to_human -> Reward: +0.83 | Total: +2.01\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 8: auto_reply -> Reward: -0.67 | Total: +1.34\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 9: route_to_human -> Reward: -0.97 | Total: +0.37\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\n", "Collecting rollouts: 93%|█████████▎| 28/30 [11:49<00:48, 24.44s/it]\u001b[ABoth `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 10: route_to_human -> Reward: +0.83 | Total: +1.20\n", "✅ Successfully loaded 100 emails from dataset.json\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 1: ask_for_clarification -> Reward: -0.37 | Total: -0.37\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 2: route_to_human -> Reward: -0.97 | Total: -1.34\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 3: auto_reply -> Reward: -0.67 | Total: -2.01\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 4: auto_reply -> Reward: +0.93 | Total: -1.08\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 5: route_to_human -> Reward: +0.83 | Total: -0.25\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 6: route_to_human -> Reward: +0.83 | Total: +0.58\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 7: auto_reply -> Reward: -0.67 | Total: -0.09\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 8: route_to_human -> Reward: +0.83 | Total: +0.74\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 9: auto_reply -> Reward: +0.93 | Total: +1.67\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\n", "Collecting rollouts: 97%|█████████▋| 29/30 [12:20<00:26, 26.25s/it]\u001b[ABoth `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 10: ask_for_clarification -> Reward: -0.37 | Total: +1.30\n", "✅ Successfully loaded 100 emails from dataset.json\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 1: auto_reply -> Reward: -0.67 | Total: -0.67\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 2: route_to_human -> Reward: -0.98 | Total: -1.65\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 3: route_to_human -> Reward: -0.97 | Total: -2.62\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 4: ask_for_clarification -> Reward: -0.37 | Total: -2.99\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 5: route_to_human -> Reward: +0.83 | Total: -2.16\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 6: auto_reply -> Reward: +0.94 | Total: -1.22\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 7: auto_reply -> Reward: +1.14 | Total: -0.08\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 8: auto_reply -> Reward: +0.93 | Total: +0.85\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Both `max_new_tokens` (=300) and `max_length`(=131072) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 9: ask_for_clarification -> Reward: -0.37 | Total: +0.48\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\n", "Collecting rollouts: 100%|██████████| 30/30 [12:51<00:00, 25.70s/it]" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Step 10: auto_reply -> Reward: -0.67 | Total: -0.19\n", "Collected 300 transitions\n", "Filtering for successful behaviors...\n", "Found 157 highly successful actions to train on!\n", "Configuring SFT Trainer...\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "\n" ] }, { "output_type": "display_data", "data": { "text/plain": [ "Unsloth: Tokenizing [\"text\"] (num_proc=6): 0%| | 0/157 [00:00" ], "text/html": [ "\n", "
\n", " \n", " \n", " [60/60 05:37, Epoch 6/6]\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
StepTraining Loss
12.152883
22.022747
31.767257
41.552131
51.428172
61.220372
70.998826
80.852252
90.714095
100.550235
110.452012
120.370951
130.339939
140.312247
150.291677
160.283311
170.266445
180.257108
190.246741
200.237073
210.231704
220.226140
230.223047
240.209619
250.206410
260.188748
270.193096
280.196588
290.202704
300.176750
310.177845
320.178486
330.169722
340.168342
350.168780
360.168199
370.158695
380.163469
390.156987
400.164859
410.150555
420.156389
430.136087
440.154172
450.151162
460.144176
470.138656
480.140523
490.140241
500.142222
510.136642
520.128443
530.136383
540.136021
550.141095
560.131959
570.134330
580.140001
590.134156
600.133044

" ] }, "metadata": {} }, { "output_type": "stream", "name": "stderr", "text": [ "Unsloth: Restored added_tokens_decoder metadata in email-triage-lora-final/checkpoint-60/tokenizer_config.json.\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Training completed! Saving LoRA adapters...\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ "Unsloth: Restored added_tokens_decoder metadata in email-triage-lora-final/tokenizer_config.json.\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "SUCCESS: Model weights saved locally!\n", "Generating validation plots...\n", "✅ Saved training_loss.png\n", "✅ Saved reward_curve.png\n", "🎉 ALL TASKS COMPLETE. Script is ready for judging!\n" ] }, { "output_type": "display_data", "data": { "text/plain": [ "

" ], "image/png": "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9HaXOfM/Fx1Nod36Py09ofVfoFvcddddePvtt7Fo0SKMGzcOYWFhkCQJN910k8MkBh3pzlhcnUpcK0OGDEFWVhb+97//YcOGDfjwww/x8ssvY+nSpVi2bBkA4IYbbsDEiRPx8ccf46uvvsI//vEPPPnkk/joo486PQbNHbqThyzLuOyyy3Dvvfe2e/s555zjcL2911NXObuOzp77ltfqLbfc0uHxeMOHD+92f1t09Dw78/w//vjjePDBB/Hb3/4Wjz76KMxmMwwGAxYtWuTUe85dnH3uu/sZcaaW+7z77ruIjY1tczungSfqWXyHEZHbrFmzBtHR0eqsXq199NFH+Pjjj7Fy5UoEBASgX79+2LJlizo1dIsjR4443K9li4Svr6/TWxec4amTfK5btw7z5s3DM888o7Y1NDSoExNozdkcuvsYWVlZbdozMzPV21sEBQXhxhtvxI033gir1YprrrkGf//737FkyRJ1Cuu4uDjceeeduPPOO1FaWopRo0bh73//u0eKK2d09NoaMGAAampq3PI6btk60UJRFBw5cqRbBc7Znvs+ffogJCQENpvNre/DnrBu3TpMmTIFb775pkN7RUUFoqKiNOpVx5z9jOjXr1+778sz21rOuRcdHe31WRGJiMdcEZFb1NfX46OPPsIVV1yB6667rs1l4cKFqK6uVqdPnz59OpqamvD666+r65BluU1hFh0djcmTJ+PVV19FUVFRm8dtPQ12VwQFBXmkwDEajW22arzwwgttpkPXirM5dMfll1+O3bt3Y+fOnWpbbW0tXnvtNSQnJ6vHpZSVlTncz2QyYejQoVAUBU1NTbDZbG12pYyOjkZ8fDwaGxvVtp6Yir0rOnpt3XDDDdi5cye+/PLLNrdVVFSgubnZ6cd45513UF1drV5ft24dioqKXC4wO3vujUYjrr32Wnz44Yc4cOBAm/u7+j7sCe295z744IM2x2Z6C2c/I6ZPn46dO3di3759apvFYmlzqovp06cjNDQUjz/+OJqamto8njdlRSQibrkiIrf49NNPUV1djV/96lft3n7hhReiT58+WLNmDW688UbMnj0bY8aMwV/+8hccOXIEgwcPxqeffgqLxQLA8a//L730Ei666CKkpaXhtttuQ0pKCkpKSrBz504UFha2OX+NM0aPHo1XXnkFjz32GAYOHIjo6OgOj1HojiuuuALvvvsuwsLCMHToUOzcuRObNm3y6LEfZ9OVHM7mww8/VLdEtTZv3jzcf//9+Pe//42ZM2fi7rvvhtlsxurVq5GTk4MPP/xQnXxg2rRpiI2NxYQJExATE4NDhw7hxRdfxKxZsxASEoKKigr07dsX1113HUaMGIHg4GBs2rQJP/zwg8Nf/bs6FXtzczP+9a9/tXvb1Vdf3aWTQQMdv7b++te/4tNPP8UVV1yBW2+9FaNHj0ZtbS3S09Oxbt065ObmOr1lxWw246KLLsL8+fNRUlKCFStWYODAgQ4Tk3RFZ889YD9Z7pYtWzB27FjcdtttGDp0KCwWC/bu3YtNmzapr5mzOXbsWLvPdXBwMGbPnu1S3890xRVX4JFHHsH8+fMxfvx4pKenY82aNd06Lq8nOfsZce+99+Jf//oXLrvsMtx1113qVOxJSUmwWCzqezU0NBSvvPIKfvOb32DUqFG46aab0KdPH+Tn5+Ozzz7DhAkT8OKLL2oxVKJegcUVEbnFmjVr4O/vj8suu6zd2w0GA2bNmoU1a9agrKwMkZGR+Oyzz/CnP/0Jq1evhsFgwNVXX42HHnoIEyZMUHcBA4ChQ4fixx9/xLJly7Bq1SqUlZUhOjoaI0eOxNKlS13q79KlS5GXl4ennnoK1dXVmDRpUo8UV8899xyMRiPWrFmDhoYGTJgwAZs2berw+DFPMxqNTudwNu0dYwfYZ+676KKLsGPHDtx333144YUX0NDQgOHDh+O///0vZs2apS77hz/8AWvWrMGzzz6Lmpoa9O3bF3fffTf+7//+DwAQGBiIO++8E1999RU++ugjyLKMgQMH4uWXX1bP2+WKxsZG/OY3v2n3tpycnC4XVx29tgIDA7Ft2zY8/vjj+OCDD/DOO+8gNDQU55xzDpYtW4awsDCnH+OBBx7A/v37sXz5clRXV+PSSy/Fyy+/3Ol50zrS2XMP2M/XtXv3bjzyyCP46KOP8PLLLyMyMhLDhg3Dk08+6dTj7Nu3r93nul+/fm4rrh544AHU1tbivffew9q1azFq1Ch89tlnuP/++92yfndz9jMiMTERW7Zswd13343HH38cffr0wYIFCxAUFIS7777b4b168803Iz4+Hk888QT+8Y9/oLGxEQkJCZg4caJTs0cSkeskpaeP8CYi6oL169fj6quvxvbt2x1miSPPYg7eaevWrZgyZQo++OADXHfddVp3h7zAokWL8Oqrr6KmpkZ3k9gQiYjHXBGRZurr6x2u22w2vPDCCwgNDcWoUaM06lXvwxyI9OHM92pZWRneffddXHTRRSysiLwEdwskIs3cddddqK+vx7hx49DY2IiPPvoIO3bswOOPP+6WaajJOcyBSB/GjRuHyZMnY8iQISgpKcGbb76JqqqqDs8BSESex+KKiDRzySWX4JlnnsH//vc/NDQ0YODAgXjhhRewcOFCrbvWqzAHIn24/PLLsW7dOrz22muQJAmjRo3Cm2++iYsvvljrrhHRKTzmioiIiIiIyA00PeZq+fLluOCCCxASEoLo6GjMnj273RNNtvb6669j4sSJiIiIQEREBKZOnYrdu3c7LHPrrbdCkiSHy4wZM3pyKERERERE1MtpWlxt27YNCxYswPfff4+NGzeiqakJ06ZNQ21tbYf32bp1K+bMmYMtW7Zg586dSExMxLRp09qcHHDGjBkoKipSL//+9797ejhERERERNSLedVugSdOnEB0dDS2bdvm9P7DNpsNERERePHFFzF37lwA9i1XFRUVWL9+vVPraGxsRGNjo3pdlmVYLBZERkY6fQJNIiIiIiISj6IoqK6uRnx8vHri+4541YQWlZWVAOxnnndWXV0dmpqa2txn69atiI6ORkREBC655BI89thjbc523mL58uVYtmyZ6x0nIiIiIiKhFRQUoG/fvmddxmu2XMmyjF/96leoqKjA9u3bnb7fnXfeiS+//BIZGRnq2cnff/99BAYGon///jh69CgeeOABBAcHY+fOne2eB+LMLVeVlZVISkpCbm4uQkNDAQCSJMFgMECWZbR+ylrabTabwzo7alcUBQcPHsTgwYMd+tJSBcuy7LB8R+1GoxGKorTbfmYfO2p315gMBgMkSWq3vbeNqampCYcOHcKQIUNgNBqFGJOIObkyJpvNpmZrMpmEGFNn7b1pTLIs49ChQ20+m/U8JhFzcmVMsizjwIED6ueyCGMSMSd+54qbk6tjavnePffccyFJkqZjqqqqQnJyMioqKhAWFoaz8ZotVwsWLMCBAwe6VFg98cQTeP/997F161a1sAKAm266Sf09LS0Nw4cPx4ABA7B161Zceumlbdbj5+cHPz+/Nu0RERFqceUuNpsNcXFxiIiI4An/BGSz2RAfH898BcRsxcbPZnHxvSsu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\n" }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0kAAAHWCAYAAACi1sL/AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAT4ZJREFUeJzt3X18T/Xj//Hne7O9N2NbmM0yzHUIhTSRi9ZnISXSBX2YFEU+IZRKijSUi9RQfTSqj4/Sjy4+FTGXfV3kshK5DsVmxK7seuf3x9rxftvIZnPebY/77XZut/M+73PO+/neDttz55zX22YYhiEAAAAAgCTJzeoAAAAAAOBKKEkAAAAA4ICSBAAAAAAOKEkAAAAA4ICSBAAAAAAOKEkAAAAA4ICSBAAAAAAOKEkAAAAA4ICSBAAAAAAOKEkAUA516tRJnTp1Mh//+uuvstlsWrBggWWZyquLvxclyWaz6eWXXy6VfTtau3atbDab1q5day7r1KmTmjVrVuqvLXH8Aih5lCQAfzsLFiyQzWa75LR582arI17W119/XaRfXDt16uT0/ry9vdW8eXPNmjVLubm5pRe0FLz22mv67LPPrmjd/F988yc3NzdVqVJFXbt21aZNm0o3qAuqU6eO09fC399fN954owYPHqwtW7aU2OssWrRIs2bNKrH9lSRXzgagbKlgdQAAKK6JEycqNDS0wPL69etbkObKff3114qOji5SUapZs6aioqIkSadPn9aiRYs0cuRIJSQkaPLkyaWUtOS99tpruv/++9WzZ88r3ubhhx9Wt27dlJOTo/3792vOnDnq3Lmztm7dqhtvvLH0wrqgli1b6plnnpEkJScna+/evVqyZInee+89jRw5UjNmzHBaPy0tTRUqFO1H/aJFi7R7926NGDHiire5/fbblZaWJk9PzyK9VlFdKlvt2rWVlpYmDw+PUn19AOUHJQnA31bXrl3VunVrq2NcsdTUVPn4+BRrWz8/Pz3yyCPm4yeeeEKNGzfWW2+9pYkTJ8rd3b2kYrqcm2++2em9d+jQQV27dtXcuXM1Z84cC5Ndmav5vl/s+uuvd/paSNLUqVPVt29fzZw5Uw0aNNCTTz5pPufl5VUir3sp6enp8vT0lJubW6m/1uXYbDZLXx9A2cPldgDKrAkTJsjNzU2xsbFOywcPHixPT0/98MMPki7cT/Hxxx/r+eefV1BQkHx8fHTPPffo+PHjBfa7ZcsW3XXXXfLz81PFihXVsWNH/d///Z/TOi+//LJsNpv27Nmjvn376rrrrlP79u0VGRmp6OhoSXK6lKyovLy81KZNGyUnJ+vUqVPm8uzsbE2aNEn16tWT3W5XnTp19PzzzysjI6PIryFJq1evVocOHeTj4yN/f3/de++92rt3r9M6kZGRqlOnToFt878G+Ww2m1JTU7Vw4ULzfUdGRhY5U4cOHSRJhw4dclp+7tw5jRgxQiEhIbLb7apfv76mTp3qdEnizTffrF69ejltd+ONN8pms+nHH380l3388cey2Wzmez169KiGDh2qRo0aydvbW1WrVlWfPn3066+/Ou0r/1LQdevWaejQoapevbpq1qxpPv/uu++qXr168vb21i233KINGzYU+f1fzNvbWx9++KGqVKmiyZMnyzAM87mL70lKTk7WiBEjVKdOHdntdlWvXl133nmnduzYISnv0s6vvvpKR48eNb9H+d/b/H8nixcv1osvvqjrr79eFStWVFJSUqH3JOXbvn272rVrJ29vb4WGhmrevHmFfs0u/lpevM/LZbvUPUlXcvzmH6cHDx5UZGSk/P395efnp4EDB+r8+fNX9k0AUOZwJgnA31ZiYqJOnz7ttMxms6lq1aqSpBdffFFffvmlBg0apJ9++kmVK1fWihUr9N5772nSpElq0aKF07aTJ0+WzWbTs88+q1OnTmnWrFkKDw/Xrl275O3tLSnvl66uXbuqVatWZgmLiYlRly5dtGHDBt1yyy1O++zTp48aNGig1157TYZh6KabbtKJEye0cuVKffjhh1f1/vN/MfT39zeXPfbYY1q4cKHuv/9+PfPMM9qyZYuioqK0d+9eLVu2rEj7X7Vqlbp27aq6devq5ZdfVlpamt566y3ddttt2rFjR6HF6HI+/PBDPfbYY7rllls0ePBgSVK9evWKtA9J5i/T1113nbns/Pnz6tixo37//XcNGTJEtWrV0saNGzVu3DidPHnSvI+lQ4cO+u9//2tu98cff+jnn3+Wm5ubNmzYoObNm0uSNmzYoICAAN1www2SpK1bt2rjxo166KGHVLNmTf3666+aO3euOnXqpD179qhixYpOGYcOHaqAgAC99NJLSk1NlSTNnz9fQ4YMUbt27TRixAgdPnxY99xzj6pUqaKQkJAifx0cVapUSffdd5/mz5+vPXv2qGnTpoWu98QTT+jTTz/VU089pSZNmujMmTP67rvvtHfvXt1888164YUXlJiYqN9++00zZ8409+1o0qRJ8vT01OjRo5WRkXHZS+zOnj2rbt266YEHHtDDDz+sTz75RE8++aQ8PT316KOPFuk9Xkk2R0U9fh944AGFhoYqKipKO3bs0L///W9Vr15dU6dOLVJOAGWEAQB/MzExMYakQie73e607k8//WR4enoajz32mHH27Fnj+uuvN1q3bm1kZWWZ66xZs8aQZFx//fVGUlKSufyTTz4xJBlvvvmmYRiGkZubazRo0MCIiIgwcnNzzfXOnz9vhIaGGnfeeae5bMKECYYk4+GHHy6Qf9iwYUZR/vvt2LGj0bhxYyMhIcFISEgwfvnlF2PMmDGGJKN79+7mert27TIkGY899pjT9qNHjzYkGatXr3baZ8eOHc3HR44cMSQZMTEx5rKWLVsa1atXN86cOWMu++GHHww3Nzejf//+5rIBAwYYtWvXLpA7/2vgyMfHxxgwYMAVve/8TK+88oqRkJBgxMXFGRs2bDDatGljSDKWLFlirjtp0iTDx8fH2L9/v9M+nnvuOcPd3d04duyYYRiGsWTJEkOSsWfPHsMwDOOLL74w7Ha7cc899xgPPviguV3z5s2N++67z3x8/vz5Avk2bdpkSDI++OADc1n+sdm+fXsjOzvbXJ6ZmWlUr17daNmypZGRkWEuf/fddw1JTt+LS6ldu7bT9/tiM2fONCQZn3/+ublMkjFhwgTzsZ+fnzFs2LDLvk737t0L/X7m/zupW7duga9H/nNr1qwxl3Xs2NGQZEyfPt1clpGRYR5XmZmZhmFc+JodOXLkL/d5qWxXc/zmH6ePPvqo0z7vu+8+o2rVqgVeC0D5wOV2AP62oqOjtXLlSqfpm2++cVqnWbNmeuWVV/Tvf/9bEREROn36tBYuXFjozez9+/dX5cqVzcf333+/atSooa+//lqStGvXLh04cEB9+/bVmTNndPr0aZ0+fVqpqam64447tH79+gKjzT3xxBMl8l5/+eUXBQQEKCAgQI0bN9brr7+ue+65x+nyovyco0aNcto2/0b/r7766opf7+TJk9q1a5ciIyNVpUoVc3nz5s115513mq91LUyYMEEBAQEKCgpShw4dtHfvXk2fPl3333+/uc6SJUvUoUMHXXfddeb35fTp0woPD1dOTo7Wr18v6cKlevmPN2zYoDZt2ujOO+80L307d+6cdu/eba4ryTyTKElZWVk6c+aM6tevL39/f/NSNUePP/64031i27Zt06lTp/TEE084nXmJjIyUn59fSXyZzLMqycnJl1zH399fW7Zs0YkTJ4r9OgMGDHD6elxOhQoVNGTIEPOxp6enhgwZolOnTmn79u3FzvBXinP8XvxvtUOHDjpz5oySkpJKLScA18XldgD+tm655ZYrGrhhzJgxWrx4sb7//nu99tpratKkSaHrNWjQwOmxzWZT/fr1zcu7Dhw4ICnvl8RLSUxMdLoMrLDR94qjTp06eu+995Sbm6tDhw5p8uTJSkhIcLpZ/ejRo3Jzcyswul9QUJD8/f119OjRK369/HUbNWpU4LkbbrhBK1asKNEBCS5n8ODB6tOnj9LT07V69WrNnj1bOTk5TuscOHBAP/74owICAgrdR/59W4GBgWrQoIE2bNigIUOGaMOGDercubNuv/12DR8+XIcPH9bevXuVm5vrVJLS0tIUFRWlmJgY/f777073/SQmJhZ4vYu/7/lfz4uPMQ8PD9WtW7cIX41LS0lJkSSnon+xadOmacCAAQoJCVGrVq3UrVs39e/fv0gZinJMBwcHFzhGGjZsKCnvsslbb731ivdVFMU5fmvVquW0Xv6/47Nnz8rX17dUcgJwXZQkAGXe4cOHzYLz008/FXs/+WeJXn/9dbVs2bLQdS6+R+JK/+L+V3x8fBQeHm4+vu2223TzzTfr+eef1+zZs53WLc5AEFfjUq93cZEprgYNGpjv/e6775a7u7uee+45de7c2SzJubm5uvPOOzV27NhC95H/i7kktW/fXrGxsUpLS9P27dv10ksvqVmzZvL399eGDRu0d+9eVapUSTfddJO5zfDhwxUTE6MRI0YoLCxMfn5+stlseuihhwr9rKqS+r4Xxe7duyVdfgj8Bx54QB06dNCyZcv07bff6vXXX9fUqVO1dOlSde3a9Ypep6TfW2kfP1fqUiNEOhZiAOUHJQlAmZabm6vIyEj5+vpqxIgR5uf0XDzCmXThTFE+wzB08OBB82b+/EEGfH19nQpLUZVEiWnevLkeeeQRvfPOOxo9erRq1aql2rVrKzc3VwcOHDAHHJCk+Ph4nTt3TrVr177i/eevu2/fvgLP/fLLL6pWrZr5V/jrrrtO586dK7BeYWeuSuK9v/DCC3rvvff04osvavny5ZLyvjcpKSlX9H3p0KGDYmJitHjxYuXk5Khdu3Zyc3NT+/btzZLUrl07p1+aP/30Uw0YMEDTp083l6Wnpxf6vguT//U8cOCAunTpYi7PysrSkSNHCgwiUlQpKSlatmyZQkJCnL73halRo4aGDh2qoUOH6tSpU7r55ps1efJksySVZMk+ceJEgTM2+/fvlyRz4IT8MzYXfy2v5vgpyvELAIXhniQAZdqMGTO0ceNGvfvuu5o0aZLatWunJ598ssCoeJL0wQcfON3P8emnn+rkyZPmL4+tWrVSvXr19MYbb5iXNjlKSEi4okz5v5xd6S/YlzJ27FhlZWWZHyDarVs3STJHcsuX/3z37t2veN81atRQy5YttXDhQqecu3fv1rfffmu+lpRXUBITE52G0D558mSho+n5+Phc9fv29/fXkCFDtGLFCu3atUtS3hmSTZs2acWKFQXWP3funLKzs83H+ZfRTZ06Vc2bNzfvCerQoYNiY2O1bds2p0vtpLyzDBefUXjrrbeu+GxH69atFRAQoHnz5ikzM9NcvmDBgqv+eqSlpemf//yn/vjjD73wwguXPTNz8aWB1atXV3BwsNMQ8T4+PoVeQlgc2dnZeuedd8zHmZmZeueddxQQEKBWrVpJuvDHh/z7xPKzvvvuuwX2d6XZinL8AkBhOJME4G/rm2++0S+//FJgebt27VS3bl3t3btX48ePV2RkpHr06CEp75fSli1baujQofrkk0+ctqtSpYrat2+vgQMHKj4+XrNmzVL9+vX1+OOPS5Lc3Nz073//W127dlXTpk01cOBAXX/99fr999+1Zs0a+fr66ssvv/zL3Pm/HP7rX/9SRESE3N3d9dBDDxX5/Tdp0kTdunXTv//9b40fP14tWrTQgAED9O677+rcuXPq2LGjvv/+ey1cuFA9e/ZU586di7T/119/XV27dlVYWJgGDRpkDqHs5+fn9Nk7Dz30kJ599lndd999+te//qXz589r7ty5atiwYYFBDVq1aqVVq1ZpxowZCg4OVmhoqNq2bVvk9/70009r1qxZmjJlihYvXqwxY8boiy++0N13363IyEi1atVKqamp+umnn/Tpp5/q119/VbVq1STlXY4WFBSkffv2afjw4eY+b7/9dj37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LruezfirNSx04sQJXX/99dq4caPCwsLM5WPHjtW6deu0ZcuWAtu8/PLLeuWVV65lTAAAAAB/I8ePH1fNmjUv+bxLn0kqjnHjxmnUqFHm49zcXP3xxx+qWrWqbDZbqb9+UlKSQkJCdPz4cfn6+pb66wFXimMTrojjEq6I4xKuiOOyZBiGoeTkZAUHB192PZcuSdWqVZO7u7vi4+OdlsfHxysoKKjQbex2u+x2u9Myf3//0op4Sb6+vhzAcEkcm3BFHJdwRRyXcEUcl1fPz8/vL9dx6YEbPD091apVK8XGxprLcnNzFRsb63T5HQAAAACUFJc+kyRJo0aN0oABA9S6dWvdcsstmjVrllJTUzVw4ECrowEAAAAog1y+JD344INKSEjQSy+9pLi4OLVs2VLLly9XYGCg1dEKZbfbNWHChAKX/AFW49iEK+K4hCviuIQr4ri8tlx6dDsAAAAAuNZc+p4kAAAAALjWKEkAAAAA4ICSBAAAAAAOKEkAAAAA4ICSVAImT56sdu3aqWLFilf8wbWGYeill15SjRo15O3trfDwcB04cKB0g6Jc+eOPP9SvXz/5+vrK399fgwYNUkpKymW36dSpk2w2m9P0xBNPXKPEKKuio6NVp04deXl5qW3btvr+++8vu/6SJUvUuHFjeXl56cYbb9TXX399jZKiPCnKcblgwYIC/zd6eXldw7QoD9avX68ePXooODhYNptNn3322V9us3btWt18882y2+2qX7++FixYUOo5ywtKUgnIzMxUnz599OSTT17xNtOmTdPs2bM1b948bdmyRT4+PoqIiFB6enopJkV50q9fP/38889auXKl/ve//2n9+vUaPHjwX273+OOP6+TJk+Y0bdq0a5AWZdXHH3+sUaNGacKECdqxY4datGihiIgInTp1qtD1N27cqIcffliDBg3Szp071bNnT/Xs2VO7d+++xslRlhX1uJQkX19fp/8bjx49eg0TozxITU1VixYtFB0dfUXrHzlyRN27d1fnzp21a9cujRgxQo899phWrFhRyknLCQMlJiYmxvDz8/vL9XJzc42goCDj9ddfN5edO3fOsNvtxn//+99STIjyYs+ePYYkY+vWreayb775xrDZbMbvv/9+ye06duxoPP3009cgIcqLW265xRg2bJj5OCcnxwgODjaioqIKXf+BBx4wunfv7rSsbdu2xpAhQ0o1J8qXoh6XV/rzHSgpkoxly5Zddp2xY8caTZs2dVr24IMPGhEREaWYrPzgTJIFjhw5ori4OIWHh5vL/Pz81LZtW23atMnCZCgrNm3aJH9/f7Vu3dpcFh4eLjc3N23ZsuWy2/7nP/9RtWrV1KxZM40bN07nz58v7bgoozIzM7V9+3an/+vc3NwUHh5+yf/rNm3a5LS+JEVERPB/I0pMcY5LSUpJSVHt2rUVEhKie++9Vz///PO1iAtcEv9flq4KVgcoj+Li4iRJgYGBTssDAwPN54CrERcXp+rVqzstq1ChgqpUqXLZY6xv376qXbu2goOD9eOPP+rZZ5/Vvn37tHTp0tKOjDLo9OnTysnJKfT/ul9++aXQbeLi4vi/EaWqOMdlo0aN9P7776t58+ZKTEzUG2+8oXbt2unnn39WzZo1r0VsoIBL/X+ZlJSktLQ0eXt7W5SsbOBM0iU899xzBW7SvHi61H+mQGkp7eNy8ODBioiI0I033qh+/frpgw8+0LJly3To0KESfBcA8PcSFham/v37q2XLlurYsaOWLl2qgIAAvfPOO1ZHA1BKOJN0Cc8884wiIyMvu07dunWLte+goCBJUnx8vGrUqGEuj4+PV8uWLYu1T5QPV3pcBgUFFbgBOTs7W3/88Yd5/F2Jtm3bSpIOHjyoevXqFTkvyrdq1arJ3d1d8fHxTsvj4+MveRwGBQUVaX2gqIpzXF7Mw8NDN910kw4ePFgaEYErcqn/L319fTmLVAIoSZcQEBCggICAUtl3aGiogoKCFBsba5aipKQkbdmypUgj5KH8udLjMiwsTOfOndP27dvVqlUrSdLq1auVm5trFp8rsWvXLklyKvPAlfL09FSrVq0UGxurnj17SpJyc3MVGxurp556qtBtwsLCFBsbqxEjRpjLVq5cqbCwsGuQGOVBcY7Li+Xk5Oinn35St27dSjEpcHlhYWEFPiKB/y9LkNUjR5QFR48eNXbu3Gm88sorRqVKlYydO3caO3fuNJKTk811GjVqZCxdutR8PGXKFMPf39/4/PPPjR9//NG49957jdDQUCMtLc2Kt4Ay6K677jJuuukmY8uWLcZ3331nNGjQwHj44YfN53/77TejUaNGxpYtWwzDMIyDBw8aEydONLZt22YcOXLE+Pzzz426desat99+u1VvAWXA4sWLDbvdbixYsMDYs2ePMXjwYMPf39+Ii4szDMMw/vnPfxrPPfecuf7//d//GRUqVDDeeOMNY+/evcaECRMMDw8P46effrLqLaAMKupx+corrxgrVqwwDh06ZGzfvt146KGHDC8vL+Pnn3+26i2gDEpOTjZ/h5RkzJgxw9i5c6dx9OhRwzAM47nnnjP++c9/musfPnzYqFixojFmzBhj7969RnR0tOHu7m4sX77cqrdQplCSSsCAAQMMSQWmNWvWmOtIMmJiYszHubm5xvjx443AwEDDbrcbd9xxh7Fv375rHx5l1pkzZ4yHH37YqFSpkuHr62sMHDjQqbgfOXLE6Tg9duyYcfvttxtVqlQx7Ha7Ub9+fWPMmDFGYmKiRe8AZcVbb71l1KpVy/D09DRuueUWY/PmzeZzHTt2NAYMGOC0/ieffGI0bNjQ8PT0NJo2bWp89dVX1zgxyoOiHJcjRoww1w0MDDS6detm7Nixw4LUKMvWrFlT6O+T+cfigAEDjI4dOxbYpmXLloanp6dRt25dp981cXVshmEYlpzCAgAAAAAXxOh2AAAAAOCAkgQAAAAADihJAAAAAOCAkgQAAAAADihJAAAAAOCAkgQAAAAADihJAAAAAOCAkgQAAAAADihJAIBypVOnThoxYkSpvsbLL7+sli1bluprAABKDyUJAFAkkZGRstlsstls8vDwUGhoqMaOHav09HSro1216dOn67rrriv0vZw/f16+vr6aPXu2BckAANcSJQkAUGR33XWXTp48qcOHD2vmzJl65513NGHCBKtjmQzDUHZ2dpG3++c//6nU1FQtXbq0wHOffvqpMjMz9cgjj5RERACAC6MkAQCKzG63KygoSCEhIerZs6fCw8O1cuVK8/nc3FxFRUUpNDRU3t7eatGihT799FPz+datW+uNN94wH/fs2VMeHh5KSUmRJP3222+y2Ww6ePCgJOnDDz9U69atVblyZQUFBalv3746deqUuf3atWtls9n0zTffqFWrVrLb7fruu++Umpqq/v37q1KlSqpRo4amT59+2fdVvXp19ejRQ++//36B595//3317NlTVapU0bPPPquGDRuqYsWKqlu3rsaPH6+srKxL7rewS/x69uypyMhI83FGRoZGjx6t66+/Xj4+Pmrbtq3Wrl172bwAgNJBSQIAXJXdu3dr48aN8vT0NJdFRUXpgw8+0Lx58/Tzzz9r5MiReuSRR7Ru3TpJUseOHc0CYBiGNmzYIH9/f3333XeSpHXr1un6669X/fr1JUlZWVmaNGmSfvjhB3322Wf69ddfnQpGvueee05TpkzR3r171bx5c40ZM0br1q3T559/rm+//VZr167Vjh07Lvt+Bg0apNWrV+vo0aPmssOHD2v9+vUaNGiQJKly5cpasGCB9uzZozfffFPvvfeeZs6cWeyvoSQ99dRT2rRpkxYvXqwff/xRffr00V133aUDBw5c1X4BAEVXweoAAIC/n//973+qVKmSsrOzlZGRITc3N7399tuS8s6IvPbaa1q1apXCwsIkSXXr1tV3332nd955Rx07dlSnTp00f/585eTkaPfu3fL09NSDDz6otWvX6q677tLatWvVsWNH8/UeffRRc75u3bqaPXu22rRpo5SUFFWqVMl8buLEibrzzjslSSkpKZo/f74++ugj3XHHHZKkhQsXqmbNmpd9bxEREQoODlZMTIxefvllSdKCBQsUEhJi7ufFF180169Tp45Gjx6txYsXa+zYscX6eh47dkwxMTE6duyYgoODJUmjR4/W8uXLFRMTo9dee61Y+wUAFA8lCQBQZJ07d9bcuXOVmpqqmTNnqkKFCurdu7ck6eDBgzp//rxZVvJlZmbqpptukiR16NBBycnJ2rlzpzZu3GgWpylTpkjKO5M0ZswYc9vt27fr5Zdf1g8//KCzZ88qNzdXUl65aNKkible69atzflDhw4pMzNTbdu2NZdVqVJFjRo1uux7c3d314ABA7RgwQJNmDBBhmFo4cKFGjhwoNzc8i7A+PjjjzV79mwdOnRIKSkpys7Olq+vb5G/jvl++ukn5eTkqGHDhk7LMzIyVLVq1WLvFwBQPJQkAECR+fj4mJfCvf/++2rRooXmz5+vQYMGmfcVffXVV7r++uudtrPb7ZIkf39/tWjRQmvXrtWmTZt055136vbbb9eDDz6o/fv368CBA+aZpNTUVEVERCgiIkL/+c9/FBAQoGPHjikiIkKZmZkFcpWERx99VFFRUVq9erVyc3N1/PhxDRw4UJK0adMm9evXT6+88ooiIiLk5+enxYsXX/Z+Jzc3NxmG4bTM8R6mlJQUubu7a/v27XJ3d3daz/FMGQDg2qAkAQCuipubm55//nmNGjVKffv2VZMmTWS323Xs2DGnS+Yu1rFjR61Zs0bff/+9Jk+erCpVquiGG27Q5MmTVaNGDfOsyi+//KIzZ85oypQpCgkJkSRt27btL3PVq1dPHh4e2rJli2rVqiVJOnv2rPbv33/ZXPnbduzYUe+//74Mw1B4eLhq164tSdq4caNq166tF154wVzf8f6lwgQEBOjkyZPm4/zLDDt37ixJuummm5STk6NTp06pQ4cOf/neAACli4EbAABXrU+fPnJ3d1d0dLQqV66s0aNHa+TIkVq4cKEOHTqkHTt26K233tLChQvNbTp16qQVK1aoQoUKaty4sbnsP//5j1OJqVWrljw9PfXWW2/p8OHD+uKLLzRp0qS/zFSpUiUNGjRIY8aM0erVq7V7925FRkaal8z9lUGDBmnp0qVatmyZOWCDJDVo0EDHjh3T4sWLdejQIc2ePVvLli277L66dOmir776Sl999ZV++eUXPfnkkzp37pz5fMOGDdWvXz/1799fS5cu1ZEjR/T9998rKipKX3311RXlBQCUHEoSAOCqVahQQU899ZSmTZum1NRUTZo0SePHj1dUVJRuuOEG3XXXXfrqq68UGhpqbtOhQwfl5uY6FaJOnTopJydHnTp1MpcFBARowYIFWrJkiZo0aaIpU6Y4DR9+Oa+//ro6dOigHj16KDw8XO3bt1erVq2uaNvevXvLbrerYsWK6tmzp7n8nnvu0ciRI/XUU0+pZcuW2rhxo8aPH3/ZfT366KMaMGCA+vfvr44dO6pu3brmWaR8MTEx6t+/v5555hk1atRIPXv21NatW82zYACAa8dmXHyRNAAAAACUY5xJAgAAAAAHlCQAAAAAcEBJAgAAAAAHlCQAAAAAcEBJAgAAAAAHlCQAAAAAcEBJAgAAAAAHlCQAAAAAcEBJAgAAAAAHlCQAAAAAcEBJAgAAAAAH/x9djQzqsU6ftwAAAABJRU5ErkJggg==\n" }, "metadata": {} } ], "source": [ "# ==========================================\n", "# 0. SIMPLE AUTHENTICATION & FILE FETCH\n", "# ==========================================\n", "import os\n", "import sys\n", "import urllib.request\n", "\n", "# --- NEW: AUTO-FETCH FILES FOR COLAB ---\n", "print(\"🔍 Fetching required dependencies...\")\n", "repo_url = \"https://huggingface.co/spaces/Proteinrequired/enterprise-email-triage/resolve/main/\"\n", "files_needed = [\"env.py\", \"dataset.json\", \"reward_system.py\"]\n", "\n", "for file in files_needed:\n", " if not os.path.exists(file):\n", " try:\n", " print(f\"⬇️ Downloading {file}...\")\n", " urllib.request.urlretrieve(repo_url + file, file)\n", " except Exception as e:\n", " print(f\"⚠️ Could not download {file}. Error: {e}\")\n", "print(\"✅ All files ready!\\n\")\n", "# ---------------------------------------\n", "\n", "!pip install huggingface_hub\n", "from huggingface_hub import login\n", "\n", "# Grab the secret if it exists (Works in HF Spaces)\n", "hf_token = os.environ.get(\"HF_TOKEN\")\n", "\n", "if hf_token:\n", " # Silently log in so Unsloth can download the gated weights\n", " login(token=hf_token.strip())\n", " print(\"✅ Authenticated via Environment Secret. Ready to load Llama-3.2.\")\n", "\n", "elif \"COLAB_RELEASE_TAG\" in os.environ:\n", " # If in Colab, pop up a secure login widget for the judge\n", " print(\"☁️ Colab detected! Please log in to Hugging Face to download Llama-3.2:\")\n", " from huggingface_hub import notebook_login\n", " notebook_login()\n", "\n", "else:\n", " # Failsafe for local machines\n", " print(\"❌ ERROR: HF_TOKEN not found. Llama-3.2 download will fail.\")\n", " sys.exit(1)\n", "\n", "# ==========================================\n", "# 1. THE STABLE ENVIRONMENT INSTALL\n", "# ==========================================\n", "# (Commented out for local runs, judges will run these if necessary)\n", "import os\n", "os.system('pip install \"torch>=2.4.0,<2.11.0\" torchvision torchaudio')\n", "os.system('pip install unsloth unsloth_zoo')\n", "os.system('pip install \"trl==0.22.0\" peft accelerate bitsandbytes openenv-core datasets matplotlib pandas')\n", "\n", "import re\n", "import json\n", "import torch\n", "import matplotlib.pyplot as plt\n", "from tqdm import tqdm\n", "from datasets import Dataset\n", "from unsloth import FastLanguageModel\n", "from trl import SFTTrainer\n", "from transformers import TrainingArguments\n", "\n", "# Import the environment we just ensured exists\n", "from env import EnterpriseEmailEnv\n", "\n", "# ==========================================\n", "# 2. LOAD THE FAST 3B MODEL\n", "# ==========================================\n", "print(\"Loading Unsloth 3B Model...\")\n", "model, tokenizer = FastLanguageModel.from_pretrained(\n", " model_name = \"unsloth/Llama-3.2-3B-Instruct-bnb-4bit\",\n", " max_seq_length = 512,\n", " dtype = None,\n", " load_in_4bit = True,\n", " token = hf_token, # Explicitly passing the token here\n", ")\n", "\n", "# Apply LoRA adapters\n", "model = FastLanguageModel.get_peft_model(\n", " model,\n", " r = 16,\n", " target_modules = [\"q_proj\", \"k_proj\", \"v_proj\", \"o_proj\", \"gate_proj\", \"up_proj\", \"down_proj\"],\n", " lora_alpha = 16,\n", " lora_dropout = 0,\n", " bias = \"none\",\n", " use_gradient_checkpointing = \"unsloth\",\n", " random_state = 3407,\n", ")\n", "\n", "# ==========================================\n", "# 3. GENERATE ROLLOUTS (BULLETPROOF PARSER)\n", "# ==========================================\n", "print(\"Initializing OpenEnv...\")\n", "env = EnterpriseEmailEnv()\n", "\n", "def format_observation_to_prompt(obs):\n", " current_email = obs.get('current_email', {})\n", " email_id = current_email.get('email_id', 'UNKNOWN_ID')\n", " sender = current_email.get('sender', 'Unknown')\n", " subject = current_email.get('subject', 'No Subject')\n", " body = current_email.get('body', '')[:1000]\n", "\n", " prompt = f\"\"\"<|begin_of_text|><|start_header_id|>system<|end_header_id|>\n", "You are a Corporate Email Triage Agent. You must respond ONLY with a JSON object.\n", "### AVAILABLE TOOLS:\n", "1. {{\"tool\": \"route_to_human\", \"arguments\": {{\"email_id\": \"{email_id}\", \"department\": \"IT/Support/HR\"}}}}\n", " *RULE: Use this for VIPs, Angry customers, Server Outages, or Sensitive HR issues.*\n", "2. {{\"tool\": \"auto_reply\", \"arguments\": {{\"email_id\": \"{email_id}\", \"message\": \"REPLY_TEXT\"}}}}\n", " *RULE: Use this for routine tasks like password resets or feature requests.*\n", "3. {{\"tool\": \"ask_for_clarification\", \"arguments\": {{\"email_id\": \"{email_id}\"}}}}\n", " *RULE: Use this only if the email is confusing or missing data.*\n", "Always use the correct Email ID: {email_id}<|eot_id|><|start_header_id|>user<|end_header_id|>\n", "Email ID: {email_id}\n", "From: {sender}\n", "Subject: {subject}\n", "Body: {body}<|eot_id|><|start_header_id|>assistant<|end_header_id|>\"\"\"\n", " return prompt\n", "\n", "def collect_rollouts(env, model, tokenizer, num_episodes=30):\n", " rollout_data = []\n", " FastLanguageModel.for_inference(model)\n", "\n", " for episode in tqdm(range(num_episodes), desc=\"Collecting rollouts\"):\n", " obs = env.reset()\n", " episode_data = []\n", "\n", " while not env.current_step >= env.max_steps and len(env.processed_emails) < len(env.emails):\n", " prompt = format_observation_to_prompt(obs)\n", " inputs = tokenizer(prompt, return_tensors=\"pt\", padding=True, truncation=True, max_length=2048).to(model.device)\n", "\n", " with torch.no_grad():\n", " outputs = model.generate(\n", " **inputs,\n", " max_new_tokens=300,\n", " temperature=0.1,\n", " do_sample=True,\n", " pad_token_id=tokenizer.eos_token_id,\n", " )\n", "\n", " generated_text = tokenizer.decode(outputs[0][inputs.input_ids.shape[-1]:], skip_special_tokens=True)\n", "\n", " start_idx = generated_text.find('{')\n", " end_idx = generated_text.rfind('}') + 1\n", "\n", " if start_idx != -1 and end_idx != 0:\n", " clean_json = generated_text[start_idx:end_idx]\n", " try:\n", " action = json.loads(clean_json)\n", " if \"tool\" not in action or \"arguments\" not in action:\n", " action = {\"tool\": \"ask_for_clarification\", \"arguments\": {\"email_id\": obs['current_email']['email_id']}}\n", " except:\n", " action = {\"tool\": \"ask_for_clarification\", \"arguments\": {\"email_id\": obs['current_email']['email_id']}}\n", " else:\n", " action = {\"tool\": \"ask_for_clarification\", \"arguments\": {\"email_id\": obs['current_email']['email_id']}}\n", "\n", " next_obs, reward, done, info = env.step(action)\n", "\n", " episode_data.append({\n", " \"prompt\": prompt,\n", " \"action\": action,\n", " \"reward\": reward,\n", " \"observation\": next_obs\n", " })\n", "\n", " print(f\"Step {env.current_step}: {action['tool']} -> Reward: {reward:+.2f} | Total: {env.total_reward:+.2f}\")\n", " obs = next_obs\n", " if done: break\n", "\n", " rollout_data.extend(episode_data)\n", "\n", " FastLanguageModel.for_training(model)\n", " return rollout_data\n", "\n", "print(\"Collecting rollouts (playing the game)...\")\n", "rollout_data = collect_rollouts(env, model, tokenizer, num_episodes=30)\n", "print(f\"Collected {len(rollout_data)} transitions\")\n", "\n", "# ==========================================\n", "# 4. PREPARE BEHAVIORAL CLONING DATASET\n", "# ==========================================\n", "print(\"Filtering for successful behaviors...\")\n", "winning_rollouts = [item for item in rollout_data if item[\"reward\"] > 0]\n", "print(f\"Found {len(winning_rollouts)} highly successful actions to train on!\")\n", "\n", "sft_dataset_dict = {\n", " \"text\": [item[\"prompt\"] + json.dumps(item[\"action\"]) + tokenizer.eos_token for item in winning_rollouts]\n", "}\n", "sft_dataset = Dataset.from_dict(sft_dataset_dict)\n", "\n", "# ==========================================\n", "# 5. INITIALIZE SFT TRAINER\n", "# ==========================================\n", "print(\"Configuring SFT Trainer...\")\n", "sft_config = TrainingArguments(\n", " output_dir=\"email-triage-lora-final\",\n", " per_device_train_batch_size=4,\n", " gradient_accumulation_steps=4,\n", " learning_rate=2e-4,\n", " logging_steps=1,\n", " max_steps=60,\n", " optim=\"adamw_8bit\",\n", " fp16=not torch.cuda.is_bf16_supported(),\n", " bf16=torch.cuda.is_bf16_supported(),\n", ")\n", "\n", "sft_trainer = SFTTrainer(\n", " model=model,\n", " tokenizer=tokenizer,\n", " train_dataset=sft_dataset,\n", " dataset_text_field=\"text\",\n", " max_seq_length=512,\n", " args=sft_config,\n", ")\n", "\n", "# ==========================================\n", "# 6. EXECUTE TRAINING & SAVE DELIVERABLES\n", "# ==========================================\n", "print(\"Starting Behavioral Cloning Training...\")\n", "sft_trainer.train()\n", "\n", "print(\"Training completed! Saving LoRA adapters...\")\n", "model.save_pretrained(\"email-triage-lora-final\")\n", "tokenizer.save_pretrained(\"email-triage-lora-final\")\n", "print(\"SUCCESS: Model weights saved locally!\")\n", "\n", "# ==========================================\n", "# 7. GENERATE HACKATHON EVIDENCE (PLOTS)\n", "# ==========================================\n", "print(\"Generating validation plots...\")\n", "\n", "# Plot 1: Training Loss\n", "try:\n", " history = sft_trainer.state.log_history\n", " steps = [x['step'] for x in history if 'loss' in x]\n", " loss = [x['loss'] for x in history if 'loss' in x]\n", "\n", " if loss:\n", " plt.figure(figsize=(10, 5))\n", " plt.plot(steps, loss, color='#1f77b4', linewidth=2, label='Training Loss')\n", " plt.title('Agent Training Loss: Enterprise Email Triage')\n", " plt.xlabel('Step')\n", " plt.ylabel('Loss')\n", " plt.grid(True, linestyle='--', alpha=0.6)\n", " plt.legend()\n", " plt.savefig('training_loss.png')\n", " print(\"✅ Saved training_loss.png\")\n", "except Exception as e:\n", " print(f\"⚠️ Could not generate loss curve: {e}\")\n", "\n", "# Plot 2: Reward Distribution\n", "try:\n", " rewards = [item['reward'] for item in rollout_data]\n", " if rewards:\n", " plt.figure(figsize=(10, 5))\n", " plt.hist(rewards, bins=10, color='green', alpha=0.7, edgecolor='black')\n", " plt.title('Expert Rollout Reward Distribution')\n", " plt.xlabel('Reward Value')\n", " plt.ylabel('Frequency')\n", " plt.axvline(0, color='red', linestyle='--')\n", " plt.savefig('reward_curve.png')\n", " print(\"✅ Saved reward_curve.png\")\n", "except Exception as e:\n", " print(f\"⚠️ Could not generate reward curve: {e}\")\n", "\n", "print(\"🎉 ALL TASKS COMPLETE. Script is ready for judging!\")" ] } ] }