Commit
·
2b1afca
1
Parent(s):
4b6931c
Updating for falcon
Browse files- 00-poe-generate-falcon-reasoning.ipynb +229 -134
- 01-poe-dataset-creation.ipynb +0 -0
- gradio_test.ipynb +0 -0
- requirements.txt +2 -3
00-poe-generate-falcon-reasoning.ipynb
CHANGED
@@ -26,7 +26,10 @@
|
|
26 |
"INPUT_DATASET = 'layoric/labeled-multiple-choice-explained'\n",
|
27 |
"REVISION = '536f3b8'\n",
|
28 |
"OUTPUT_DATASET = 'derek-thomas/labeled-multiple-choice-explained-falcon-reasoning'\n",
|
29 |
-
"NAMESPACE = 'HF-test-lab' # Use your username or wherever you have the ability to deploy inference endpoints"
|
|
|
|
|
|
|
30 |
]
|
31 |
},
|
32 |
{
|
@@ -38,7 +41,7 @@
|
|
38 |
{
|
39 |
"data": {
|
40 |
"application/vnd.jupyter.widget-view+json": {
|
41 |
-
"model_id": "
|
42 |
"version_major": 2,
|
43 |
"version_minor": 0
|
44 |
},
|
@@ -64,7 +67,6 @@
|
|
64 |
"metadata": {},
|
65 |
"outputs": [],
|
66 |
"source": [
|
67 |
-
"BASE_MODEL = 'tiiuae/Falcon3-7B-Instruct'\n",
|
68 |
"tokenizer = AutoTokenizer.from_pretrained(BASE_MODEL, token=get_token())"
|
69 |
]
|
70 |
},
|
@@ -72,7 +74,9 @@
|
|
72 |
"cell_type": "markdown",
|
73 |
"id": "ef2d177e-3651-4747-be3c-648be3a9b5ff",
|
74 |
"metadata": {},
|
75 |
-
"source":
|
|
|
|
|
76 |
},
|
77 |
{
|
78 |
"cell_type": "code",
|
@@ -383,7 +387,7 @@
|
|
383 |
" <tr style=\"text-align: right;\">\n",
|
384 |
" <th></th>\n",
|
385 |
" <th>formatted_question</th>\n",
|
386 |
-
" <th>
|
387 |
" <th>answer_key</th>\n",
|
388 |
" <th>topic</th>\n",
|
389 |
" <th>explanation</th>\n",
|
@@ -497,7 +501,7 @@
|
|
497 |
"8411 what is essential for cellular respiration for... \n",
|
498 |
"8412 what helps insulate and protect the body? (a) ... \n",
|
499 |
"\n",
|
500 |
-
"
|
501 |
"0 satellite technology is used for predicting wh... c \n",
|
502 |
"1 irradiated food improves food safety. c \n",
|
503 |
"2 fiber follicles protect mammal skin a \n",
|
@@ -609,7 +613,7 @@
|
|
609 |
" <tr style=\"text-align: right;\">\n",
|
610 |
" <th></th>\n",
|
611 |
" <th>formatted_question</th>\n",
|
612 |
-
" <th>
|
613 |
" <th>answer_key</th>\n",
|
614 |
" <th>topic</th>\n",
|
615 |
" <th>explanation</th>\n",
|
@@ -747,7 +751,7 @@
|
|
747 |
"8411 what is essential for cellular respiration for... \n",
|
748 |
"8412 what helps insulate and protect the body? (a) ... \n",
|
749 |
"\n",
|
750 |
-
"
|
751 |
"0 satellite technology is used for predicting wh... c \n",
|
752 |
"1 irradiated food improves food safety. c \n",
|
753 |
"2 fiber follicles protect mammal skin a \n",
|
@@ -868,21 +872,22 @@
|
|
868 |
"system_prompt = \"\"\"You are an AI assistant that helps people find information. User will give you a question. Your task is to answer as faithfully as you can, and most importantly, provide explanation why incorrect answers are not correct. While answering think step-by-step and justify your answer.\"\"\"\n",
|
869 |
"\n",
|
870 |
"def create_reasoning_prompt(row):\n",
|
871 |
-
" reasoning_instructions = f\"\"\"\n",
|
872 |
-
"Topic: {row['topic']}\n",
|
873 |
"Question: {row['question_text']}\n",
|
|
|
874 |
"\n",
|
875 |
"### Answer\n",
|
876 |
-
"The correct answer is
|
877 |
-
"{row['answer_key']}). {row['answer']}\n",
|
878 |
"\n",
|
879 |
-
"### Explanation:\n",
|
880 |
"Let's break it down step by step.\n",
|
881 |
"\n",
|
882 |
"1. Read the question and options carefully.\n",
|
883 |
"2. Identify the differences between the options.\n",
|
884 |
"3. Determine which options are not logical based on the difference.\n",
|
885 |
"4. Go through each incorrect answer providing an explanation why it is incorrect.\n",
|
|
|
|
|
886 |
"\"\"\"\n",
|
887 |
"\n",
|
888 |
" return [{\"role\": \"system\", \"content\": system_prompt}, {\"role\": \"user\", \"content\": reasoning_instructions}]\n"
|
@@ -906,25 +911,11 @@
|
|
906 |
"name": "stdout",
|
907 |
"output_type": "stream",
|
908 |
"text": [
|
909 |
-
"[{'role': '
|
910 |
"\n",
|
911 |
"---\n",
|
912 |
"\n",
|
913 |
-
"You are an AI assistant that helps people find information. User will give you a question
|
914 |
-
"\n",
|
915 |
-
"Topic: Technology\n",
|
916 |
-
"Question: What is satellite technology used for predicting?\n",
|
917 |
-
"Answer Choices: (a) Seconds and minutes (b) The strength and magnitude of an earthquake (c) What it's like outside each day (d) 70-75 degrees fahrenheit (e) Rapid changes occur (f) Dead-ends and false starts. (g) Snow, ice, and rock (h) Around 5 to 27 degrees celsius\n",
|
918 |
-
"\n",
|
919 |
-
"The correct answer is: (c)\n",
|
920 |
-
"\n",
|
921 |
-
"### Reasoning:\n",
|
922 |
-
"Let's break it down step by step.\n",
|
923 |
-
"\n",
|
924 |
-
"1. Read the question and options carefully.\n",
|
925 |
-
"2. Identify the differences between the options.\n",
|
926 |
-
"3. Determine which options are not logical based on the difference.\n",
|
927 |
-
"4. Go through each incorrect answer providing an explanation why it is incorrect.\n"
|
928 |
]
|
929 |
}
|
930 |
],
|
@@ -943,7 +934,7 @@
|
|
943 |
"outputs": [
|
944 |
{
|
945 |
"data": {
|
946 |
-
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAkQAAAHHCAYAAABeLEexAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABDaElEQVR4nO3deVxV1d7H8e9BmRwAEQG5Kmqa83AzB3JOE6dyqnudUsuyATTTrLx5U7OyNIcG03zK6TZodrN8nBJnU7M0yRmHLCxBQwUEFRHW80cv9tMRVMTDoPvzfr32q/baa6/z2yuFb3s422GMMQIAALAxt8IuAAAAoLARiAAAgO0RiAAAgO0RiAAAgO0RiAAAgO0RiAAAgO0RiAAAgO0RiAAAgO0RiAAAgO0RiIBCVrlyZQ0aNKiwy7jtTZ48WVWrVlWxYsXUsGHDfP2sDRs2yOFw6IsvvsjXzwHgOgQiwIXmzZsnh8OhHTt25Li9TZs2qlu37k1/zooVKzRu3LibHscuVq9ereeff17NmzfX3Llz9frrr2frkxVicrPcii5evKhp06apadOm8vX1lZeXl+68805FRkbq0KFDhV2eJGnr1q0aN26cEhMTC7sU2FDxwi4AsLuYmBi5ud3Y/5usWLFCM2bMIBTl0rp16+Tm5qaPPvpIHh4eOfapVauW/vOf/zi1jR49WqVKldJLL71UEGXmm4SEBHXs2FE7d+5U165d1bdvX5UqVUoxMTFauHChZs+erUuXLhV2mdq6davGjx+vQYMGyc/Pr7DLgc0QiIBC5unpWdgl3LDU1FSVLFmysMvItVOnTsnb2/uqYUiSgoKC1L9/f6e2N954QwEBAdnabzWDBg3Srl279MUXX6hXr15O2yZMmHDLBz7AFbhkBhSyK+8hSk9P1/jx41W9enV5eXmpbNmyatGihaKioiT9+cttxowZkpTjZZzU1FSNHDlSFStWlKenp2rUqKG33npLxhinz71w4YKGDRumgIAAlS5dWg888IB+//13ORwOpzNP48aNk8Ph0P79+9W3b1+VKVNGLVq0kCTt3r1bgwYNUtWqVeXl5aXg4GA9+uijOn36tNNnZY1x6NAh9e/fX76+vipXrpz+/e9/yxij48ePq1u3bvLx8VFwcLCmTJmSq7m7fPmyJkyYoDvuuEOenp6qXLmy/vWvfyktLc3q43A4NHfuXKWmplpzNW/evFyNn5Off/5ZDz30kPz9/VWiRAk1a9ZMy5cvv+5+aWlp6tq1q3x9fbV161ZJUmZmpqZPn646derIy8tLQUFBeuKJJ3T27FmnfStXrqyuXbvq22+/VZMmTeTl5aWqVatqwYIF1/3c7du3a/ny5Ro8eHC2MCT9Gcjfeustp7Z169apZcuWKlmypPz8/NStWzcdOHDAqc+gQYNUuXLlbONl/bf+K4fDocjISH311VeqW7euPD09VadOHa1atcppv1GjRkmSqlSpYv23+uWXXyRJUVFRatGihfz8/FSqVCnVqFFD//rXv657/EBucYYIyAdJSUlKSEjI1p6enn7dfceNG6eJEyfqscceU5MmTZScnKwdO3boxx9/1H333acnnnhCJ06cUFRUVLZLPMYYPfDAA1q/fr0GDx6shg0b6ptvvtGoUaP0+++/a9q0aVbfQYMG6fPPP9fDDz+sZs2aaePGjerSpctV63rooYdUvXp1vf7661a4ioqK0s8//6xHHnlEwcHB2rdvn2bPnq19+/bpu+++y/aL8Z///Kdq1aqlN954Q8uXL9err74qf39/ffDBB7r33nv15ptv6pNPPtFzzz2nxo0bq1WrVtecq8cee0zz58/Xgw8+qJEjR2r79u2aOHGiDhw4oCVLlkiS/vOf/2j27Nn6/vvv9eGHH0qS7rnnnuv+d8jJyZMndc899+j8+fMaNmyYypYtq/nz5+uBBx7QF198oR49euS434ULF9StWzft2LFDa9asUePGjSVJTzzxhObNm6dHHnlEw4YN07Fjx/Tee+9p165d2rJli9zd3a0xjhw5ogcffFCDBw/WwIEDNWfOHA0aNEiNGjVSnTp1rlrz0qVLJUkPP/xwro5xzZo16tSpk6pWrapx48bpwoULevfdd9W8eXP9+OOPOYag3Pj222/15Zdf6umnn1bp0qX1zjvvqFevXoqNjVXZsmXVs2dPHTp0SJ999pmmTZumgIAASVK5cuW0b98+de3aVfXr19crr7wiT09PHTlyRFu2bMlTLUCODACXmTt3rpF0zaVOnTpO+4SGhpqBAwda6w0aNDBdunS55udERESYnP76fvXVV0aSefXVV53aH3zwQeNwOMyRI0eMMcbs3LnTSDLDhw936jdo0CAjyYwdO9ZqGzt2rJFk+vTpk+3zzp8/n63ts88+M5LM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d911lzw9PVWtWjXNmzcvvw8PAADcIgo1EG3cuFERERH67rvvFBUVpfT0dHXo0EGpqalO/R5//HHFxcVZy6RJk6xtGRkZ6tKliy5duqStW7dq/vz5mjdvnl5++WWrz7Fjx9SlSxe1bdtW0dHRGj58uB577DF98803BXasAACg6CpSb7v/448/FBgYqI0bN6pVq1aS/jxD1LBhQ02fPj3HfVauXKmuXbvqxIkTCgoKkiTNmjVLL7zwgv744w95eHjohRde0PLly7V3715rv969eysxMVGrVq26bl3Jycny9fVVUlIS30MEAMAt4kZ+fxepe4iSkpIkSf7+/k7tn3zyiQICAlS3bl2NHj1a58+ft7Zt27ZN9erVs8KQJIWHhys5OVn79u2z+rRv395pzPDwcG3bti3HOtLS0pScnOy0AACA21eR+abqzMxMDR8+XM2bN1fdunWt9r59+yo0NFQhISHavXu3XnjhBcXExOjLL7+UJMXHxzuFIUnWenx8/DX7JCcn68KFC/L29nbaNnHiRI0fP97lxwgAAIqmIhOIIiIitHfvXn377bdO7UOGDLH+vV69eipfvrzatWuno0eP6o477siXWkaPHq0RI0ZY61nvQgEAALenInHJLDIyUsuWLdP69euv+zbapk2bSpKOHDkiSQoODtbJkyed+mStBwcHX7OPj49PtrNDkuTp6Wm9t4z3lwEAcPsr1EBkjFFkZKSWLFmidevWqUqVKtfdJzo6WpJUvnx5SVJYWJj27NmjU6dOWX2ioqLk4+Oj2rVrW33Wrl3rNE5UVJTCwsJcdCQAAOBWVqiBKCIiQh9//LE+/fRTlS5dWvHx8YqPj9eFCxckSUePHtWECRO0c+dO/fLLL1q6dKkGDBigVq1aqX79+pKkDh06qHbt2nr44Yf1008/6ZtvvtGYMWMUEREhT09PSdKTTz6pn3/+Wc8//7wOHjyo999/X59//rmeffbZQjt2AABQdBTqY/cOhyPH9rlz52rQoEE6fvy4+vfvr7179yo1NVUVK1ZUjx49NGbMGKfLWL/++queeuopbdiwQSVLltTAgQP1xhtvqHjx/79FasOGDXr22We1f/9+VahQQf/+9781aNCgXNXJY/fZxcbGKiEhIV/GDggIUKVKlfJlbACAfdzI7+8i9T1ERRWByFlsbKxq1KylixfOX79zHnh5l1DM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AgAAtkcgAgAAtkcgAgAAtkcgAgAAtkcgAgAAtkcgAgAAtkcgAgAAtleogWjTpk26//77FRISIofDoa+++spp+6BBg+RwOJyWjh07OvU5c+aM+vXrJx8fH/n5+Wnw4MFKSUlx6rN79261bNlSXl5eqlixoiZNmpTfhwYAAG4heQpEP//8s0s+PDU1VQ0aNNCMGTOu2qdjx46Ki4uzls8++8xpe79+/bRv3z5FRUVp2bJl2rRpk4YMGWJtT05OVocOHRQaGqqdO3dq8uTJGjdunGbPnu2SYwAAALe+4nnZqVq1amrdurUGDx6sBx98UF5eXnn68E6dOqlTp07X7OPp6ang4OActx04cECrVq3SDz/8oLvvvluS9O6776pz58566623FBISok8++USXLl3SnDlz5OHhoTp16ig6OlpTp051Ck4AAMC+8nSG6Mcff1T9+vU1YsQIBQcH64knntD333/v6tokSRs2bFBgYKBq1Kihp556SqdPn7a2bdu2TX5+flYYkqT27dvLzc1N27dvt/q0atVKHh4eVp/w8HDFxMTo7NmzOX5mWlqakpOTnRYAAHD7ylMgatiwod5++22dOHFCc+bMUVxcnFq0aKG6detq6tSp+uOPP1xSXMeOHbVgwQKtXbtWb775pjZu3KhOnTopIyNDkhQfH6/AwECnfYoXLy5/f3/Fx8dbfYKCgpz6ZK1n9bnSxIkT5evray0VK1Z0yfEAAICi6aZuqi5evLh69uypxYsX680339SRI0f03HPPqWLFihowYIDi4uJuqrjevXvrgQceUL169dS9e3ctW7ZMP/zwgzZs2HBT417P6NGjlZSUZC3Hjx/P188DAACF66YC0Y4dO/T000+rfPnymjp1qp577jkdPXpUUVFROnHihLp16+aqOiVJVatWVUBAgI4cOSJJCg4O1qlTp5z6XL58WWfOnLHuOwoODtbJkyed+mStX+3eJE9PT/n4+DgtAADg9pWnQDR16lTVq1dP99xzj06cOKEFCxbo119/1auvvqoqVaqoZcuWmjdvnn788UeXFvvbb7/p9OnTKl++vCQpLCxMiYmJ2rlzp9Vn3bp1yszMVNOmTa0+mzZtUnp6utUnKipKNWrUUJkyZVxaHwAAuDXlKRDNnDlTffv21a+//qqvvvpKXbt2lZub81CBgYH66KOPrjlOSkqKoqOjFR0dLUk6duyYoqOjFRsbq5SUFI0aNUrfffedfvnlF61du1bdunVTtWrVFB4eLkmqVauWOnbsqMcff1zff/+9tmzZosjISPXu3VshISGSpL59+8rDw0ODBw/Wvn37tGjRIr399tsaMWJEXg4dAADchvL02P3hw4ev28fDw0MDBw68Zp8dO3aobdu21npWSBk4cKBmzpyp3bt3a/78+UpMTFRISIg6dOigCRMmyNPT09rnk08+UWRkpNq1ayc3Nzf16tVL77zzjrXd19dXq1evVkREhBo1aqSAgAC9/PLLPHIPAAAseQpEc+fOValSpfTQQw85tS9evFjnz5+/bhDK0qZNGxljrrr9m2++ue4Y/v7++vTTT6/Zp379+tq8eXOuagIAAPaTp0tmEydOVEBAQLb2wMBAvf766zddFAAAQEHKUyCKjY1VlSpVsrWHhoYqNjb2posCAAAoSHkKRIGBgdq9e3e29p9++klly5a96aIAAAAKUp4CUZ8+fTRs2DCtX79eGRkZysjI0Lp16/TMM8+od+/erq4RAAAgX+XppuoJEybol19+Ubt27VS8+J9DZGZmasCAAdxDBAAAbjl5CkQeHh5atGiRJkyYoJ9++kne3t6qV6+eQkNDXV0fAABAvstTIMpy55136s4773RVLQAAAIUiT4EoIyND8+bN09q1a3Xq1CllZmY6bV+3bp1LigMAACgIeQpEzzzzjObNm6cuXbqobt26cjgcrq4LAACgwOQpEC1cuFCff/65Onfu7Op64EKxsbFKSEhw+bgHDhxw+ZgAABSmPN9UXa1aNVfXAheKjY1VjZq1dPHC+cIuBQCAIi9PgWjkyJF6++239d5773G5rIhKSEjQxQvnVbbrSLmXrejSsS/8vENJmz926ZgAABSmPAWib7/9VuvXr9fKlStVp04dubu7O23/8ssvXVIcbp572YryDHbt2bz008ddOh4AAIUtT4HIz89PPXr0cHUtAAAAhSJPgWju3LmurgMAAKDQ5OldZpJ0+fJlrVmzRh988IHOnTsnSTpx4oRSUlJcVhwAAEBByNMZol9//VUdO3ZUbGys0tLSdN9996l06dJ68803lZaWplmzZrm6TgAAgHyTpzNEzzzzjO6++26dPXtW3t7eVnuPHj20du1alxUHAABQEPJ0hmjz5s3aunWrPDw8nNorV66s33//3SWFAQAA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VaooODhYa9eutdqSk5O1fft2hYWFSZLCwsKUmJionTt3Wn3WrVunzMxMNW3a1OqzadMmpaenW32ioqJUo0aNHC+XSZKnp6d8fHycFgAAcPsq1ECUkpKi6OhoRUdHS/rzRuro6GjFxsbK4XBo+PDhevXVV7V06VLt2bNHAwYMUEhIiPVdRbVq1VLHjh31+OOP6/vvv9eWLVsUGRmp3r17KyQkRJLUt29feXh4aPDgwdq3b58WLVqkt99+WyNGjCikowYAAEVNod5UvWPHDrVt29ZazwopAwcO1Lx58/T8888rNTVVQ4YMUWJiolq0aKFVq1bJy8vL2ueTTz5RZGSk2rVrZ30x4zvvvGNt9/X11erVqxUREaFGjRopICBAL7/8Mo/cAwAAS6EGojZt2sgYc9XtDodDr7zyil555ZWr9vH399enn356zc+pX7++Nm/enOc6AQDA7a3I3kMEAABQUAhEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ghEAADA9ooXdgHA7eLAgQMuHzMgIECVKlVy+bgAAGcEIuAmZaSclRwO9e/f3+Vje3mXUMzBA4QiAMhnBCLgJmWmpUjGqGzXkXIvW9Fl46afPq7Ty6YoISGBQAQA+YxABLiIe9mK8gyuVthlAADygJuqAQCA7RGIAACA7RGIAACA7RGIAACA7RGIAACA7RGIAACA7RGIAACA7RGIAACA7RGIAACA7RGIAACA7RGIAACA7RGIAACA7RGIAACA7RGIAACA7RGIAACA7RGIAACA7RXpQDRu3Dg5HA6npWbNmtb2ixcvKiIiQmXLllWpUqXUq1cvnTx50mmM2NhYdenSRSVKlFBgYKBGjRqly5cvF/ShAACAIqx4YRdwPXXq1NGaNWus9eLF/7/kZ599VsuXL9fixYvl6+uryMhI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505r+7p165SZmammTZvm/0EUkOvN1fnz5yVJbm7Ov5qKFStmnWmzy1zlJDMzU2lpafxszy+Feks3bspTTz1lfH19zYYNG0xcXJy1nD9/3urz5JNPmkqVKpl169aZHTt2mLCwMBMWFmZtz3o0s0OHDiY6OtqsWrXKlCtX7rZ7NPN6c5WUlGSaNm1q6tWrZ44cOeLU5/Lly8YY5uqvf66upKs8dn+7z5UxuZuvadOmGR8fH7N48WJz+PBhM2bMGOPl5WWOHDli9enYsaP5+9//brZv326+/fZbU7169dvuUfLrzdWlS5dMtWrVTMuWLc327dvNkSNHzFtvvWUcDodZvny5NY4d5urFF180GzduNMeOHTO7d+82L774onE4HGb16tXGGH625wcC0S1MUo7L3LlzrT4XLlwwTz/9tClTpowpUaKE6dGjh4mLi3Ma55dffjGdOnUy3t7eJiAgwIwcOdJ61Px2cb25Wr9+/VX7HDt2zBqHubr6Pn8NRMbYY66Myf18TZw40VSoUMGUKFHChIWFmc2bNzttP336tOnTp48pVaqU8fHxMY888og5d+5cAR5J/svNXB06dMj07NnTBAYGmhIlSpj69etnewzfDnP16KOPmtDQUOPh4WHKlStn2rVrZ4UhY/jZnh8cxhiTn2egAAAAijruIQIAALZHIAIAALZHIAIAALZHIAIAALZHIAIAALZHIAIAALZHIAIAALZHIAJQJP3yyy9yOBzWq0EAID8RiADkG4fDcc1l3LhxhV1ijo4cOaJHHnlEFSpUkKenp6pUqaI+ffpox44dBVoHoRAoOMULuwAAt6+4uDjr3xctWqSXX37Z6SWnpUqVKoyyrmnHjh1q166d6tatqw8++EA1a9bUuXPn9PXXX2vkyJHauHFjYZcIIB9whghAvgkODrYWX19fORwOaz0wMFBTp061zsI0bNhQq1atuupYGRkZevTRR1WzZk3FxsZKkr7++mvddddd8vLyUtWqVTV+/HhdvnzZ2sfhcOjDDz9Ujx49VKJECVWvXl1Lly696mcYYzRo0CBVr15dmzdvVpcuXXTHHXeoYcOGGjt2rL7++mur7549e3TvvffK29tbZcuW1ZAhQ5SSkmJtb9OmjYYPH+40fvfu3TVo0CBrvXLlynr99df16KOPqnTp0qpUqZJmz55tbc96G/zf//53ORwOtWnT5przDSDvCEQACsXbb7+tKVOm6K233tLu3bsVHh6uBx54QIcPH87WNy0tTQ899JCio6O1efNmVapUSZs3b9aAAQP0zDPPaP/+/frggw80b948vfbaa077jh8/Xv/4xz+0e/dude7cWf369dOZM2dyrCk6Olr79u3TyJEj5eaW/cejn5+fJCk1NVXh4eEqU6aMfvjhBy1evFhr1qxRZGTkDc/DlClTdPfdd2vXrl16+umn9dRTT1ln0b7//ntJ0po1axQXF6cvv/zyhscHkEuF/HJZADYxd+5c4+vra62HhISY1157zalP48aNzdNPP22MMebYsWNGktm8ebNp166dadGihUlMTLT6tmvXzrz++utO+//nP/8x5cuXt9YlmTFjxljrKSkpRpJZuXJljjUuWrTISDI//vjjNY9l9uzZpkyZMiYlJcVqW758uXFzczPx8fHGGGNat25tnnnmGaf9unXrZgYOHGith4aGmv79+1vrmZmZJjAw0MycOdNpDnbt2nXNegDcPO4hAlDgkpOTdeLECTVv3typvXnz5vrpp5+c2vr06aMKFSpo3bp18vb2ttp/+uknbdmyxemMUEZGhi5evKjz58+rRIkSkqT69etb20uWLCkfHx+dOnUqx7qMMbmq/8CBA2rQoIFKlizpVHtmZqZiYmIUFBSUq3GurC/rkuLV6gOQf7hkBqBI69y5s3bv3q1t27Y5taekpGj8+PGKjo62lj179ujw4cPy8vKy+rm7uzvt53A4lJmZmeNn3XnnnZKkgwcP3nTdbm5u2QJWenp6tn43Uh+A/EMgAlDgfHx8FBISoi1btji1b9myRbVr13Zqe+qpp/TGG2/ogQcecHrC66677lJMTIyqVauWbcnp/p/caNiwoWrXrq0pU6bkGEoSExMlSbVq1dJPP/2k1NRUp9rd3NxUo0YNSVK5cuWcnrLLyMjQ3r17b6geDw8Pa18A+YtABKBQjBo1Sm+++aYWLVqkmJgYvfjii4qOjtYzzzyTre/QoUP16quvqmvXrvr2228lSS+//LIWLFig8ePHa9++fTpw4IAWLlyoMWPG5Lkmh8OhuXPn6tChQ2rZsqVWrFihn3/+Wbt379Zrr72mbt26SZL69esnLy8vDRw4UHv37tX69es1dOhQPfzww9blsnvvvVfLly/X8uXLdfDgQT311FNWoMqtwMBAeXt7a9WqVTp58qSSkpLyfGwAro1ABKBQDBs2TCNGjNDIkSNVr149rVq1SkuXLlX16tVz7D98+HCNHz9enTt31tatWxUeHq5ly5Zp9erVaty4sZo1a6Zp06YpNDT0pupq0qSJduzYoWrVqunxxx9XrVq19MADD2jfvn2aPn26JKlEiRL65ptvdObMGTVu3FgPPvig2rVrp/fee88a59FHH9XAgQM1YMAAtW7dWlWrVlXbtm1vqJbixYvrnXfe0QcffKCQkBArkAFwPYfJ7V2EAAAAtynOEAEAANsjEAEAANsjEAEAANsjEAEAANsjEAEAANsjEAEAANsjEAEAANsjEAEAANsjEAEAANsjEAEAANsjEAEAANsjEAEAANv7P02mbcQUBh7zAAAAAElFTkSuQmCC",
|
947 |
"text/plain": [
|
948 |
"<Figure size 640x480 with 1 Axes>"
|
949 |
]
|
@@ -955,7 +946,7 @@
|
|
955 |
"name": "stdout",
|
956 |
"output_type": "stream",
|
957 |
"text": [
|
958 |
-
"
|
959 |
]
|
960 |
}
|
961 |
],
|
@@ -1002,13 +993,8 @@
|
|
1002 |
" # Custom Docker image details\n",
|
1003 |
" custom_image = {\n",
|
1004 |
" \"health_route\": \"/health\",\n",
|
1005 |
-
" \"url\": \"ghcr.io/huggingface/text-generation-inference:
|
1006 |
" \"env\": {\n",
|
1007 |
-
" \"MAX_BATCH_PREFILL_TOKENS\": \"8192\",\n",
|
1008 |
-
" \"MAX_INPUT_TOKENS\": \"320\", # Set according to your needs\n",
|
1009 |
-
" \"MAX_TOTAL_TOKENS\": \"2000\", # Set according to your needs\n",
|
1010 |
-
" \"DISABLE_CUSTOM_KERNELS\": 'false',\n",
|
1011 |
-
" \"MODEL_ID\": \"/repository\"\n",
|
1012 |
" },\n",
|
1013 |
" }\n",
|
1014 |
" \n",
|
@@ -1027,16 +1013,16 @@
|
|
1027 |
" instance_type=\"nvidia-l4\",\n",
|
1028 |
" region=\"us-east-1\",\n",
|
1029 |
" vendor=\"aws\",\n",
|
1030 |
-
" min_replica=
|
1031 |
-
" max_replica=
|
1032 |
" task=\"text-generation\",\n",
|
1033 |
" custom_image=custom_image,\n",
|
1034 |
" secrets=secrets\n",
|
1035 |
" )\n",
|
1036 |
" # endpoint.wait()\n",
|
1037 |
" \n",
|
1038 |
-
" print(\"Your model is ready to use!\")\n",
|
1039 |
" endpoint.wait()\n",
|
|
|
1040 |
" return endpoint"
|
1041 |
]
|
1042 |
},
|
@@ -1050,11 +1036,14 @@
|
|
1050 |
"name": "stdout",
|
1051 |
"output_type": "stream",
|
1052 |
"text": [
|
1053 |
-
"Your model is ready to use!\n"
|
|
|
|
|
1054 |
]
|
1055 |
}
|
1056 |
],
|
1057 |
"source": [
|
|
|
1058 |
"endpoint = get_my_endpoint()"
|
1059 |
]
|
1060 |
},
|
@@ -1065,31 +1054,46 @@
|
|
1065 |
"metadata": {},
|
1066 |
"outputs": [
|
1067 |
{
|
1068 |
-
"
|
1069 |
-
|
1070 |
-
|
1071 |
-
|
1072 |
-
|
1073 |
-
|
1074 |
-
|
1075 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1076 |
}
|
1077 |
],
|
1078 |
"source": [
|
1079 |
-
"response = endpoint.client.chat_completion(df['falcon_reasoning_prompt'].iloc[0], max_tokens=
|
1080 |
-
"response.choices[0].message.content"
|
1081 |
]
|
1082 |
},
|
1083 |
{
|
1084 |
"cell_type": "code",
|
1085 |
"execution_count": 17,
|
1086 |
-
"id": "
|
1087 |
-
"metadata": {
|
|
|
|
|
1088 |
"outputs": [
|
1089 |
{
|
1090 |
"data": {
|
1091 |
"application/vnd.jupyter.widget-view+json": {
|
1092 |
-
"model_id": "
|
1093 |
"version_major": 2,
|
1094 |
"version_minor": 0
|
1095 |
},
|
@@ -1099,52 +1103,141 @@
|
|
1099 |
},
|
1100 |
"metadata": {},
|
1101 |
"output_type": "display_data"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1102 |
}
|
1103 |
],
|
1104 |
"source": [
|
|
|
|
|
1105 |
"import nest_asyncio\n",
|
1106 |
"import asyncio\n",
|
1107 |
"import pandas as pd\n",
|
1108 |
"from concurrent.futures import ThreadPoolExecutor\n",
|
1109 |
"from tqdm.notebook import tqdm\n",
|
1110 |
"\n",
|
1111 |
-
"# Assuming 'endpoint' and 'df' are already defined\n",
|
1112 |
-
"\n",
|
1113 |
"nest_asyncio.apply()\n",
|
1114 |
"\n",
|
1115 |
-
"async def async_chat_completion(prompt, max_tokens=
|
1116 |
" response = await endpoint.async_client.chat_completion(prompt, max_tokens=max_tokens)\n",
|
1117 |
" return response.choices[0].message.content\n",
|
1118 |
"\n",
|
1119 |
-
"async def generate_falcon_reasoning(prompts, max_tokens=
|
1120 |
" loop = asyncio.get_event_loop()\n",
|
1121 |
" with ThreadPoolExecutor(max_workers=num_workers) as executor:\n",
|
1122 |
-
" tasks = [loop.run_in_executor(executor, lambda p=
|
1123 |
-
"
|
|
|
|
|
|
|
1124 |
" with tqdm(total=len(tasks), desc=\"Processing Prompts\") as pbar:\n",
|
1125 |
-
" for result in asyncio.as_completed(
|
1126 |
-
"
|
|
|
1127 |
" pbar.update(1)\n",
|
1128 |
" return results\n",
|
|
|
|
|
|
|
|
|
|
|
1129 |
"\n",
|
1130 |
-
"
|
1131 |
-
"
|
1132 |
-
"df['falcon_reasoning'] = falcon_reasonings\n"
|
1133 |
]
|
1134 |
},
|
1135 |
{
|
1136 |
"cell_type": "code",
|
1137 |
-
"execution_count":
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1138 |
"id": "573008db-78aa-4ca9-992b-3bdebcfd5fc9",
|
1139 |
"metadata": {},
|
1140 |
"outputs": [
|
1141 |
{
|
1142 |
"data": {
|
1143 |
"text/plain": [
|
1144 |
-
"InferenceEndpoint(name='poe-reasoning', namespace='HF-test-lab', repository='
|
1145 |
]
|
1146 |
},
|
1147 |
-
"execution_count":
|
1148 |
"metadata": {},
|
1149 |
"output_type": "execute_result"
|
1150 |
}
|
@@ -1155,37 +1248,39 @@
|
|
1155 |
},
|
1156 |
{
|
1157 |
"cell_type": "code",
|
1158 |
-
"execution_count":
|
1159 |
"id": "0a31bb96-66cd-4f03-83b4-25b64c58a591",
|
1160 |
"metadata": {},
|
1161 |
"outputs": [
|
1162 |
{
|
1163 |
"data": {
|
1164 |
"text/plain": [
|
1165 |
-
"0
|
1166 |
-
"1
|
1167 |
-
"2
|
1168 |
-
"3 1.
|
1169 |
-
"4
|
1170 |
" ... \n",
|
1171 |
-
"8408
|
1172 |
-
"8409 1. Read the question and options carefully
|
1173 |
-
"8410
|
1174 |
-
"8411 1.
|
1175 |
-
"8412 1. Read the question and options carefully
|
1176 |
-
"Name:
|
1177 |
]
|
1178 |
},
|
1179 |
-
"execution_count":
|
1180 |
"metadata": {},
|
1181 |
"output_type": "execute_result"
|
1182 |
}
|
1183 |
],
|
1184 |
-
"source":
|
|
|
|
|
1185 |
},
|
1186 |
{
|
1187 |
"cell_type": "code",
|
1188 |
-
"execution_count":
|
1189 |
"id": "27542a33-187e-4b3f-aa20-4177f778312d",
|
1190 |
"metadata": {},
|
1191 |
"outputs": [
|
@@ -1217,8 +1312,8 @@
|
|
1217 |
" <th>explanation</th>\n",
|
1218 |
" <th>question_text</th>\n",
|
1219 |
" <th>answer_choices</th>\n",
|
1220 |
-
" <th>
|
1221 |
-
" <th>
|
1222 |
" </tr>\n",
|
1223 |
" </thead>\n",
|
1224 |
" <tbody>\n",
|
@@ -1231,8 +1326,8 @@
|
|
1231 |
" <td>a) Seconds and minutes: This option is incorre...</td>\n",
|
1232 |
" <td>What is satellite technology used for predicting?</td>\n",
|
1233 |
" <td>(a) Seconds and minutes (b) The strength and m...</td>\n",
|
1234 |
-
" <td>[{'role': '
|
1235 |
-
" <td
|
1236 |
" </tr>\n",
|
1237 |
" <tr>\n",
|
1238 |
" <th>1</th>\n",
|
@@ -1243,8 +1338,8 @@
|
|
1243 |
" <td>(a) Relieve pain: This option is not correct b...</td>\n",
|
1244 |
" <td>What does irradiating food do?</td>\n",
|
1245 |
" <td>(a) Relieve pain (b) Enhance food's nutrients ...</td>\n",
|
1246 |
-
" <td>[{'role': '
|
1247 |
-
" <td>
|
1248 |
" </tr>\n",
|
1249 |
" <tr>\n",
|
1250 |
" <th>2</th>\n",
|
@@ -1255,8 +1350,8 @@
|
|
1255 |
" <td>b) Exfoliation: Exfoliation is the process of ...</td>\n",
|
1256 |
" <td>What protects a mammal's skin?</td>\n",
|
1257 |
" <td>(a) Fiber follicles (b) Exfoliation (c) Resist...</td>\n",
|
1258 |
-
" <td>[{'role': '
|
1259 |
-
" <td>
|
1260 |
" </tr>\n",
|
1261 |
" <tr>\n",
|
1262 |
" <th>3</th>\n",
|
@@ -1267,8 +1362,8 @@
|
|
1267 |
" <td>a) Dies: This option is not correct because ea...</td>\n",
|
1268 |
" <td>What do earthworms do when a segment breaks off?</td>\n",
|
1269 |
" <td>(a) Dies (b) Regrows it (c) Reproduces (d) Sed...</td>\n",
|
1270 |
-
" <td>[{'role': '
|
1271 |
-
" <td>1.
|
1272 |
" </tr>\n",
|
1273 |
" <tr>\n",
|
1274 |
" <th>4</th>\n",
|
@@ -1279,8 +1374,8 @@
|
|
1279 |
" <td>b) Rainstorms: Lightning is actually a natural...</td>\n",
|
1280 |
" <td>Lightning can be bad for what?</td>\n",
|
1281 |
" <td>(a) The environment (b) Rainstorms (c) Destruc...</td>\n",
|
1282 |
-
" <td>[{'role': '
|
1283 |
-
" <td>
|
1284 |
" </tr>\n",
|
1285 |
" <tr>\n",
|
1286 |
" <th>...</th>\n",
|
@@ -1303,8 +1398,8 @@
|
|
1303 |
" <td>a) Bandaging open sores is not the correct ans...</td>\n",
|
1304 |
" <td>Organisms that can cause infection do what?</td>\n",
|
1305 |
" <td>(a) Bandage open sores (b) Keep flesh clean (c...</td>\n",
|
1306 |
-
" <td>[{'role': '
|
1307 |
-
" <td>
|
1308 |
" </tr>\n",
|
1309 |
" <tr>\n",
|
1310 |
" <th>8409</th>\n",
|
@@ -1315,8 +1410,8 @@
|
|
1315 |
" <td>b) Fungi are living things that can make their...</td>\n",
|
1316 |
" <td>Fungi are living things that cannot make their...</td>\n",
|
1317 |
" <td>(a) Food (b) Cells (c) Energy (d) Fruits (e) H...</td>\n",
|
1318 |
-
" <td>[{'role': '
|
1319 |
-
" <td>1. Read the question and options carefully
|
1320 |
" </tr>\n",
|
1321 |
" <tr>\n",
|
1322 |
" <th>8410</th>\n",
|
@@ -1327,8 +1422,8 @@
|
|
1327 |
" <td>a) Metabolic reaction: This option is incorrec...</td>\n",
|
1328 |
" <td>An overheated body can use water for:?</td>\n",
|
1329 |
" <td>(a) Metabolic reaction (b) Dehydrating (c) Rai...</td>\n",
|
1330 |
-
" <td>[{'role': '
|
1331 |
-
" <td
|
1332 |
" </tr>\n",
|
1333 |
" <tr>\n",
|
1334 |
" <th>8411</th>\n",
|
@@ -1339,8 +1434,8 @@
|
|
1339 |
" <td>a) Electrons are involved in cellular respirat...</td>\n",
|
1340 |
" <td>What is essential for cellular respiration for...</td>\n",
|
1341 |
" <td>(a) Electron (b) Glucose (c) Energy (d) Energy...</td>\n",
|
1342 |
-
" <td>[{'role': '
|
1343 |
-
" <td>1.
|
1344 |
" </tr>\n",
|
1345 |
" <tr>\n",
|
1346 |
" <th>8412</th>\n",
|
@@ -1351,8 +1446,8 @@
|
|
1351 |
" <td>a) H2O: Water is essential for life, but it do...</td>\n",
|
1352 |
" <td>What helps insulate and protect the body?</td>\n",
|
1353 |
" <td>(a) H2o (b) Living cells in follicles (c) Laye...</td>\n",
|
1354 |
-
" <td>[{'role': '
|
1355 |
-
" <td>1. Read the question and options carefully
|
1356 |
" </tr>\n",
|
1357 |
" </tbody>\n",
|
1358 |
"</table>\n",
|
@@ -1425,36 +1520,36 @@
|
|
1425 |
"8411 (a) Electron (b) Glucose (c) Energy (d) Energy... \n",
|
1426 |
"8412 (a) H2o (b) Living cells in follicles (c) Laye... \n",
|
1427 |
"\n",
|
1428 |
-
"
|
1429 |
-
"0 [{'role': '
|
1430 |
-
"1 [{'role': '
|
1431 |
-
"2 [{'role': '
|
1432 |
-
"3 [{'role': '
|
1433 |
-
"4 [{'role': '
|
1434 |
"... ... \n",
|
1435 |
-
"8408 [{'role': '
|
1436 |
-
"8409 [{'role': '
|
1437 |
-
"8410 [{'role': '
|
1438 |
-
"8411 [{'role': '
|
1439 |
-
"8412 [{'role': '
|
1440 |
"\n",
|
1441 |
-
"
|
1442 |
-
"0
|
1443 |
-
"1
|
1444 |
-
"2
|
1445 |
-
"3 1.
|
1446 |
-
"4
|
1447 |
"... ... \n",
|
1448 |
-
"8408
|
1449 |
-
"8409 1. Read the question and options carefully
|
1450 |
-
"8410
|
1451 |
-
"8411 1.
|
1452 |
-
"8412 1. Read the question and options carefully
|
1453 |
"\n",
|
1454 |
"[8413 rows x 9 columns]"
|
1455 |
]
|
1456 |
},
|
1457 |
-
"execution_count":
|
1458 |
"metadata": {},
|
1459 |
"output_type": "execute_result"
|
1460 |
}
|
@@ -1465,14 +1560,14 @@
|
|
1465 |
},
|
1466 |
{
|
1467 |
"cell_type": "code",
|
1468 |
-
"execution_count":
|
1469 |
"id": "55bc6940-07e4-402f-9c56-fb830a35290f",
|
1470 |
"metadata": {},
|
1471 |
"outputs": [
|
1472 |
{
|
1473 |
"data": {
|
1474 |
"application/vnd.jupyter.widget-view+json": {
|
1475 |
-
"model_id": "
|
1476 |
"version_major": 2,
|
1477 |
"version_minor": 0
|
1478 |
},
|
@@ -1486,7 +1581,7 @@
|
|
1486 |
{
|
1487 |
"data": {
|
1488 |
"application/vnd.jupyter.widget-view+json": {
|
1489 |
-
"model_id": "
|
1490 |
"version_major": 2,
|
1491 |
"version_minor": 0
|
1492 |
},
|
@@ -1500,10 +1595,10 @@
|
|
1500 |
{
|
1501 |
"data": {
|
1502 |
"text/plain": [
|
1503 |
-
"CommitInfo(commit_url='https://huggingface.co/datasets/derek-thomas/labeled-multiple-choice-explained-
|
1504 |
]
|
1505 |
},
|
1506 |
-
"execution_count":
|
1507 |
"metadata": {},
|
1508 |
"output_type": "execute_result"
|
1509 |
}
|
@@ -1540,7 +1635,7 @@
|
|
1540 |
"name": "python",
|
1541 |
"nbconvert_exporter": "python",
|
1542 |
"pygments_lexer": "ipython3",
|
1543 |
-
"version": "3.11.
|
1544 |
}
|
1545 |
},
|
1546 |
"nbformat": 4,
|
|
|
26 |
"INPUT_DATASET = 'layoric/labeled-multiple-choice-explained'\n",
|
27 |
"REVISION = '536f3b8'\n",
|
28 |
"OUTPUT_DATASET = 'derek-thomas/labeled-multiple-choice-explained-falcon-reasoning'\n",
|
29 |
+
"NAMESPACE = 'HF-test-lab' # Use your username or wherever you have the ability to deploy inference endpoints\n",
|
30 |
+
"BASE_MODEL = 'tiiuae/Falcon3-7B-Instruct'\n",
|
31 |
+
"MAX_WORKERS = 16\n",
|
32 |
+
"MAX_TOKENS = 1650"
|
33 |
]
|
34 |
},
|
35 |
{
|
|
|
41 |
{
|
42 |
"data": {
|
43 |
"application/vnd.jupyter.widget-view+json": {
|
44 |
+
"model_id": "4439ab58168e4bbcbf4da1051b8f9ada",
|
45 |
"version_major": 2,
|
46 |
"version_minor": 0
|
47 |
},
|
|
|
67 |
"metadata": {},
|
68 |
"outputs": [],
|
69 |
"source": [
|
|
|
70 |
"tokenizer = AutoTokenizer.from_pretrained(BASE_MODEL, token=get_token())"
|
71 |
]
|
72 |
},
|
|
|
74 |
"cell_type": "markdown",
|
75 |
"id": "ef2d177e-3651-4747-be3c-648be3a9b5ff",
|
76 |
"metadata": {},
|
77 |
+
"source": [
|
78 |
+
"# Falcon Prompt Creation"
|
79 |
+
]
|
80 |
},
|
81 |
{
|
82 |
"cell_type": "code",
|
|
|
387 |
" <tr style=\"text-align: right;\">\n",
|
388 |
" <th></th>\n",
|
389 |
" <th>formatted_question</th>\n",
|
390 |
+
" <th>combined_fact</th>\n",
|
391 |
" <th>answer_key</th>\n",
|
392 |
" <th>topic</th>\n",
|
393 |
" <th>explanation</th>\n",
|
|
|
501 |
"8411 what is essential for cellular respiration for... \n",
|
502 |
"8412 what helps insulate and protect the body? (a) ... \n",
|
503 |
"\n",
|
504 |
+
" combined_fact answer_key \\\n",
|
505 |
"0 satellite technology is used for predicting wh... c \n",
|
506 |
"1 irradiated food improves food safety. c \n",
|
507 |
"2 fiber follicles protect mammal skin a \n",
|
|
|
613 |
" <tr style=\"text-align: right;\">\n",
|
614 |
" <th></th>\n",
|
615 |
" <th>formatted_question</th>\n",
|
616 |
+
" <th>combined_fact</th>\n",
|
617 |
" <th>answer_key</th>\n",
|
618 |
" <th>topic</th>\n",
|
619 |
" <th>explanation</th>\n",
|
|
|
751 |
"8411 what is essential for cellular respiration for... \n",
|
752 |
"8412 what helps insulate and protect the body? (a) ... \n",
|
753 |
"\n",
|
754 |
+
" combined_fact answer_key \\\n",
|
755 |
"0 satellite technology is used for predicting wh... c \n",
|
756 |
"1 irradiated food improves food safety. c \n",
|
757 |
"2 fiber follicles protect mammal skin a \n",
|
|
|
872 |
"system_prompt = \"\"\"You are an AI assistant that helps people find information. User will give you a question. Your task is to answer as faithfully as you can, and most importantly, provide explanation why incorrect answers are not correct. While answering think step-by-step and justify your answer.\"\"\"\n",
|
873 |
"\n",
|
874 |
"def create_reasoning_prompt(row):\n",
|
875 |
+
" reasoning_instructions = f\"\"\"Topic: {row['topic']}\n",
|
|
|
876 |
"Question: {row['question_text']}\n",
|
877 |
+
"Answer Choices: {row['answer_choices']}\n",
|
878 |
"\n",
|
879 |
"### Answer\n",
|
880 |
+
"The correct answer is: ({row['answer_key']})\n",
|
|
|
881 |
"\n",
|
882 |
+
"### Explanation Instructions:\n",
|
883 |
"Let's break it down step by step.\n",
|
884 |
"\n",
|
885 |
"1. Read the question and options carefully.\n",
|
886 |
"2. Identify the differences between the options.\n",
|
887 |
"3. Determine which options are not logical based on the difference.\n",
|
888 |
"4. Go through each incorrect answer providing an explanation why it is incorrect.\n",
|
889 |
+
"\n",
|
890 |
+
"### Explanation\n",
|
891 |
"\"\"\"\n",
|
892 |
"\n",
|
893 |
" return [{\"role\": \"system\", \"content\": system_prompt}, {\"role\": \"user\", \"content\": reasoning_instructions}]\n"
|
|
|
911 |
"name": "stdout",
|
912 |
"output_type": "stream",
|
913 |
"text": [
|
914 |
+
"[{'role': 'system', 'content': 'You are an AI assistant that helps people find information. User will give you a question. Your task is to answer as faithfully as you can, and most importantly, provide explanation why incorrect answers are not correct. While answering think step-by-step and justify your answer.'}, {'role': 'user', 'content': \"Topic: Technology\\nQuestion: What is satellite technology used for predicting?\\nAnswer Choices: (a) Seconds and minutes (b) The strength and magnitude of an earthquake (c) What it's like outside each day (d) 70-75 degrees fahrenheit (e) Rapid changes occur (f) Dead-ends and false starts. (g) Snow, ice, and rock (h) Around 5 to 27 degrees celsius\\n\\n### Answer\\nThe correct answer is: (c)\\n\\n### Explanation Instructions:\\nLet's break it down step by step.\\n\\n1. Read the question and options carefully.\\n2. Identify the differences between the options.\\n3. Determine which options are not logical based on the difference.\\n4. Go through each incorrect answer providing an explanation why it is incorrect.\\n\\n### Explanation\\n\"}]\n",
|
915 |
"\n",
|
916 |
"---\n",
|
917 |
"\n",
|
918 |
+
"You are an AI assistant that helps people find information. User will give you a question. Your task is to answer as faithfully as you can, and most importantly, provide explanation why incorrect answers are not correct. While answering think step-by-step and justify your answer.\n"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
919 |
]
|
920 |
}
|
921 |
],
|
|
|
934 |
"outputs": [
|
935 |
{
|
936 |
"data": {
|
937 |
+
"image/png": "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unTpku1fViVKlMhVm6QsD4HnpDh/LlCvXr20YsUKvfbaa1q+fLnDxytkZGTIz89PH330Ubb7li9f3mE9r/NUu3ZtSdL+/fsdrjDdrJzmPT09Pdv2m/l9dnd317Zt27RlyxatW7dO4eHhWrlypTp06KCNGzfmODZwI7hCBBRD3t7eGj58uD755BMdO3ZMDRs2dHjzK6e/jIKCghQfH5/lasDPP/9s357534yMDB09etSh35EjR3Jd45kzZ7R582Y999xzmjZtmvr06aN7771X1apVy/UYNyPzHK6+tXjixAmdPXvWfq75fczY2Ngs7VfPb6bevXtr8eLF+vjjjzVq1CiHbXfccYdOnTqlVq1aZXs1sVGjRvlSc8+ePSVJH3744XX7Ztaf0zn6+vraP26hXLly2X6A4s1cmbtWuHVyclLHjh01d+5cHThwQK+88ooiIyOz3FoE8opABBQzV7+yXqZMGVWvXt3hVfLMv5Su/gupW7duSk9P19tvv+3QPm/ePNlsNnXt2lWSFBISIkl65513HPq99dZbua4z81/lV/8Lf/78+bke42Z069Yt2+PNnTtXkq75xtzNHPO7775TVFSUvS0lJUWLFi1SlSpVVLdu3Sz7DBkyRG+++aYWLlyoZ5991t7+4IMPKj09XdOnT8+yz5UrV/Lt05qDg4PVpUsXvf/++1q9enWW7ZcvX9bTTz8tSapQoYIaN26sZcuWORz/p59+0saNG+1zLv0d6M6dO+dwO/f48eP2t/vyIqc/16dPn87SN/N5rH/+fwHcDG6ZAcVM3bp11b59ezVp0kTe3t7avXu3PvvsM4WFhdn7NGnSRJI0ZswYhYSEqESJEurfv7969uype+65Ry+88IJ+++03NWrUSBs3btSXX36pcePG2R9qbdKkifr166f58+fr1KlT9tfuM7/CITe3oTw8PNS2bVvNnDlTaWlp+te//qWNGzdmuepUUBo1aqShQ4dq0aJFOnv2rNq1a6fvvvtOy5YtU+/evXXPPffk+zGfe+45ffLJJ+ratavGjBkjb29vLVu2TEePHtV///vfHD9xPCwsTElJSXrhhRfk6emp559/Xu3atdNjjz2mGTNmKDo6Wp07d5azs7MOHz6sVatW6Y033tD999+fL3UvX75cnTt3Vt++fdWzZ0917NhRpUuX1uHDh7VixQodP37c/llEs2bNUteuXRUcHKzQ0FD7a/eenp4OVyn79++vZ599Vn369NGYMWN04cIFvfvuu6pZs2a2D9TnRuaf6xdeeEH9+/eXs7OzevbsqZdeeknbtm1T9+7dFRQUpJMnT+qdd95RxYoVHR5wB25KUb7iBtxuMl+7//7777Pd3q5du+u+dv/yyy+b5s2bGy8vL+Pu7m5q165tXnnlFXP58mV7nytXrpjRo0eb8uXLG5vN5vCa8/nz581TTz1lAgMDjbOzs6lRo4aZNWuWycjIcDhuSkqKGTVqlPH29jZlypQxvXv3NrGxsUaSw2vwma9RZ/fK8x9//GH69OljvLy8jKenp3nggQdMfHx8jq/uXz1GTq/DZzdP2UlLSzPTpk0zVatWNc7OzqZSpUpm0qRJ5tKlS7k6zvVc/dq9Mcb88ssv5v777zdeXl7Gzc3NNG/e3Kxdu9ahzz9fu/+nZ555xkgyb7/9tr1t0aJFpkmTJsbd3d2ULVvWNGjQwDzzzDMmPj7e3icoKCjbj2Jo165dlvpycuHCBTN79mzTrFkzU6ZMGePi4mJq1KhhRo8e7fA6vDHGbNq0ybRq1cq4u7sbDw8P07NnT3PgwIEsY27cuNHUr1/fuLi4mFq1apkPP/wwx9fuR40alWX/q//sG2PM9OnTzb/+9S/j5ORkfwV/8+bNplevXiYwMNC4uLiYwMBAM2DAAHPo0KFcnTuQGzZjcvnkIoDbXnR0tO688059+OGHGjhwYFGXAwCFhmeIAIu6ePFilrb58+fLycnpup8QDQC3G54hAixq5syZ2rNnj+655x6VLFlSGzZs0IYNGzRy5EhVqlSpqMsDgELFLTPAoiIiIjRt2jQdOHBAycnJqly5sgYPHqwXXnhBJUvybyUA1kIgAgAAlsczRAAAwPIIRAAAwPJ4UCAXMjIyFB8fr7Jlyxbr700CAAD/xxij8+fPKzAwMMcPTs1EIMqF+Ph43roBAOAWdezYMVWsWPGafQhEuVC2bFlJf0+oh4dHEVcDAAByIykpSZUqVbL/PX4tBKJcyLxN5uHhQSACAOAWk5vHXXioGgAAWB6BCAAAWB6BCAAAWB6BCAAAWB6BCAAAWB6BCAAAWB6BCAAAWB6BCAAAWB6BCAAAWB6BCAAAWB6BCAAAWB6BCAAAWB6BCAAAWB6BCAAAWF7Joi4ABScuLk6JiYkFMnZqaqpcXV0LZGxfX19Vrly5QMYGACA7BKLbVFxcnGrVrqNLFy8UzAFsTpLJKJCh3dxLKfbng4QiAEChIRDdphITE3Xp4gX59JggZ59K+Tr2xV9369z2Dwtk7LRTx3Rq7RwlJiYSiAAAhYZAdJtz9qkk14Dq+Tpm2qljBTY2AABFgYeqAQCA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RVpIJoxY4aaNWumsmXLys/PT71791ZsbKxDn0uXLmnUqFHy8fFRmTJl1K9fP504ccKhT1xcnLp3765SpUrJz89PEydO1JUrVxz6fP3117rrrrvk6uqq6tWra+nSpQV9egAA4BZRpIFo69atGjVqlL799ltFREQoLS1NnTt3VkpKir3PU089pf/9739atWqVtm7dqvj4ePXt29e+PT09Xd27d9fly5e1c+dOLVu2TEuXLtXkyZPtfY4eParu3bvrnnvuUXR0tMaNG6dHHnlEX331VaGeLwAAKJ5KFuXBw8PDHdaXLl0qPz8/7dmzR23bttW5c+f0wQcf6OOPP1aHDh0kSUuWLFGdOnX07bffqmXLltq4caMOHDigTZs2yd/fX40bN9b06dP17LPPaurUqXJxcdHChQtVtWpVzZkzR5JUp04dffPNN5o3b55CQkIK/bwBAEDxUqyeITp37pwkydvbW5K0Z88epaWlqVOnTvY+tWvXVuXKlRUVFSVJioqKUoMGDeTv72/vExISoqSkJMXExNj7/HOMzD6ZYwAAAGsr0itE/5SRkaFx48apVatWql+/viQpISFBLi4u8vLycujr7++vhIQEe59/hqHM7ZnbrtUnKSlJFy9elLu7u8O21NRUpaam2teTkpJu/gQBAECxVWyuEI0a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S5cuevTRR/Xdd99px44dCgsLU//+/RUYGChJevjhh+Xi4qLQ0FDFxMRo5cqVeuONNxyuAAEAAGu7qdfub9bu3bt1zz332NczQ8rQoUO1dOlSPfPMM0pJSdHIkSN19uxZtW7dWuHh4XJzc7Pv89FHHyksLEwdO3aUk5OT+vXrpzfffNO+3dPTUxs3btSoUaPUpEkT+fr6avLkybxyDwAA7Io0ELVv3/6an2Vks9n00ksv6aWXXsqxj7e3tz7++ONrHqdhw4bavn17nusEAAC3t2L7DBEAAEBhIRABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLK1nUBQCF6eDBgwUyrq+vrypXrlwgYwMACh6BCJaQnnxGstk0aNCgAhnfzb2UYn8+SCgCgFsUgQiWkJGaLBkjnx4T5OxTKV/HTjt1TKfWzlFiYiKBCABuUQQiWIqzTyW5BlQv6jIAAMUMgagYiIuLU2JiYr6OWVDPygAAcDsiEBWxuLg41apdR5cuXijqUgAAsCwCURFLTEzUpYsX8v3Zlou/7ta57R/m23gAANzOCETFRH4/25J26li+jQUAwO2OD2YEAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWV6wD0dSpU2Wz2RyW2rVr27dfunRJo0aNko+Pj8qUKaN+/frpxIkTDmPExcWpe/fuKlWqlPz8/DRx4kRduXKlsE8FAAAUYyWLuoDrqVevnjZt2mRfL1ny/0p+6qmntG7dOq1atUqenp4KCwtT3759tWPHDklSenq6unfvroCAAO3cuVPHjx/XkCFD5OzsrFdffbXQzwUAABRPxT4QlSxZUgEB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",
|
938 |
"text/plain": [
|
939 |
"<Figure size 640x480 with 1 Axes>"
|
940 |
]
|
|
|
946 |
"name": "stdout",
|
947 |
"output_type": "stream",
|
948 |
"text": [
|
949 |
+
"310 208\n"
|
950 |
]
|
951 |
}
|
952 |
],
|
|
|
993 |
" # Custom Docker image details\n",
|
994 |
" custom_image = {\n",
|
995 |
" \"health_route\": \"/health\",\n",
|
996 |
+
" \"url\": \"ghcr.io/huggingface/text-generation-inference:3.0.1\", # This is the min version\n",
|
997 |
" \"env\": {\n",
|
|
|
|
|
|
|
|
|
|
|
998 |
" },\n",
|
999 |
" }\n",
|
1000 |
" \n",
|
|
|
1013 |
" instance_type=\"nvidia-l4\",\n",
|
1014 |
" region=\"us-east-1\",\n",
|
1015 |
" vendor=\"aws\",\n",
|
1016 |
+
" min_replica=8,\n",
|
1017 |
+
" max_replica=8,\n",
|
1018 |
" task=\"text-generation\",\n",
|
1019 |
" custom_image=custom_image,\n",
|
1020 |
" secrets=secrets\n",
|
1021 |
" )\n",
|
1022 |
" # endpoint.wait()\n",
|
1023 |
" \n",
|
|
|
1024 |
" endpoint.wait()\n",
|
1025 |
+
" print(\"Your model is ready to use!\")\n",
|
1026 |
" return endpoint"
|
1027 |
]
|
1028 |
},
|
|
|
1036 |
"name": "stdout",
|
1037 |
"output_type": "stream",
|
1038 |
"text": [
|
1039 |
+
"Your model is ready to use!\n",
|
1040 |
+
"CPU times: user 420 ms, sys: 831 ms, total: 1.25 s\n",
|
1041 |
+
"Wall time: 54.3 s\n"
|
1042 |
]
|
1043 |
}
|
1044 |
],
|
1045 |
"source": [
|
1046 |
+
"%%time\n",
|
1047 |
"endpoint = get_my_endpoint()"
|
1048 |
]
|
1049 |
},
|
|
|
1054 |
"metadata": {},
|
1055 |
"outputs": [
|
1056 |
{
|
1057 |
+
"name": "stdout",
|
1058 |
+
"output_type": "stream",
|
1059 |
+
"text": [
|
1060 |
+
"(a) Seconds and minutes: This option is incorrect because satellite technology doesn't predict specific moments like seconds and minutes.\n",
|
1061 |
+
"\n",
|
1062 |
+
"(b) The strength and magnitude of an earthquake: While satellites can detect seismic activity, they primarily support research after an earthquake to analyze the data rather than predict the specific strength or magnitude beforehand in real-time.\n",
|
1063 |
+
"\n",
|
1064 |
+
"(c) What it's like outside each day: This is the correct answer. Satellites, including weather satellites, monitor and predict weather patterns, snowfall, temperature, etc., to give us an idea of what it's like outside each day.\n",
|
1065 |
+
"\n",
|
1066 |
+
"(d) 70-75 degrees fahrenheit: This option is not correct because while satellites can certainly help in predicting temperature, the phrase \"70-75 degrees fahrenheit\" is too specific. Temperature predictions can vary widely and are not confined to a narrow range like this without context about a specific location and time.\n",
|
1067 |
+
"\n",
|
1068 |
+
"(e) Rapid changes occur: Satellites are used to monitor changes over time, but they don't predict if changes will be rapid. They provide data on changes, and it's interpreted by meteorologists or other scientists to understand the nature of the change.\n",
|
1069 |
+
"\n",
|
1070 |
+
"(f) Dead-ends and false starts: This option is not relevant to satellite technology as it pertains to screen captions or subtitles in media content, not technology used for prediction.\n",
|
1071 |
+
"\n",
|
1072 |
+
"(g) Snow, ice, and rock: While satellites can monitor snow cover, ice conditions, and potentially detect rock falls or movements, this phrase is a bit vague. They're used for prediction but the full range of prediction they cover is broader and not limited just to these elements.\n",
|
1073 |
+
"\n",
|
1074 |
+
"(h) Around 5 to 27 degrees celsius: Similar to (d), this is too specific for a general prediction about temperatures over a wide area. Temperatures can vary greatly and satellites help predict a range of temperatures, but stating a specific narrow range without context is incorrect.\n",
|
1075 |
+
"\n",
|
1076 |
+
"In conclusion, the correct answer is (c) because satellite technology, specifically remote sensing from satellites, is extensively used for creating weather forecasts and predictions about atmospheric conditions, which includes what it's like outside each day in terms of weather patterns such as temperature, humidity, cloud cover, and precipitation.\n"
|
1077 |
+
]
|
1078 |
}
|
1079 |
],
|
1080 |
"source": [
|
1081 |
+
"response = endpoint.client.chat_completion(df['falcon_reasoning_prompt'].iloc[0], max_tokens=MAX_TOKENS)\n",
|
1082 |
+
"print(response.choices[0].message.content)"
|
1083 |
]
|
1084 |
},
|
1085 |
{
|
1086 |
"cell_type": "code",
|
1087 |
"execution_count": 17,
|
1088 |
+
"id": "9ebd6503-35e4-4805-8603-65aea2947ab8",
|
1089 |
+
"metadata": {
|
1090 |
+
"scrolled": true
|
1091 |
+
},
|
1092 |
"outputs": [
|
1093 |
{
|
1094 |
"data": {
|
1095 |
"application/vnd.jupyter.widget-view+json": {
|
1096 |
+
"model_id": "0fbdeab8c90e4cc98f51ee520f4aff27",
|
1097 |
"version_major": 2,
|
1098 |
"version_minor": 0
|
1099 |
},
|
|
|
1103 |
},
|
1104 |
"metadata": {},
|
1105 |
"output_type": "display_data"
|
1106 |
+
},
|
1107 |
+
{
|
1108 |
+
"name": "stdout",
|
1109 |
+
"output_type": "stream",
|
1110 |
+
"text": [
|
1111 |
+
"CPU times: user 1min 30s, sys: 34.3 s, total: 2min 4s\n",
|
1112 |
+
"Wall time: 4h 36min 7s\n"
|
1113 |
+
]
|
1114 |
}
|
1115 |
],
|
1116 |
"source": [
|
1117 |
+
"%%time\n",
|
1118 |
+
"\n",
|
1119 |
"import nest_asyncio\n",
|
1120 |
"import asyncio\n",
|
1121 |
"import pandas as pd\n",
|
1122 |
"from concurrent.futures import ThreadPoolExecutor\n",
|
1123 |
"from tqdm.notebook import tqdm\n",
|
1124 |
"\n",
|
|
|
|
|
1125 |
"nest_asyncio.apply()\n",
|
1126 |
"\n",
|
1127 |
+
"async def async_chat_completion(prompt, max_tokens=MAX_TOKENS):\n",
|
1128 |
" response = await endpoint.async_client.chat_completion(prompt, max_tokens=max_tokens)\n",
|
1129 |
" return response.choices[0].message.content\n",
|
1130 |
"\n",
|
1131 |
+
"async def generate_falcon_reasoning(prompts, max_tokens=MAX_TOKENS, num_workers=MAX_WORKERS):\n",
|
1132 |
" loop = asyncio.get_event_loop()\n",
|
1133 |
" with ThreadPoolExecutor(max_workers=num_workers) as executor:\n",
|
1134 |
+
" tasks = [loop.run_in_executor(executor, lambda p=p: asyncio.run(async_chat_completion(p, max_tokens))) for p in prompts]\n",
|
1135 |
+
" indexed_tasks = list(enumerate(tasks))\n",
|
1136 |
+
" \n",
|
1137 |
+
" results = [None] * len(prompts)\n",
|
1138 |
+
"\n",
|
1139 |
" with tqdm(total=len(tasks), desc=\"Processing Prompts\") as pbar:\n",
|
1140 |
+
" for i, result in enumerate(asyncio.as_completed([task for _, task in indexed_tasks])):\n",
|
1141 |
+
" index = indexed_tasks[i][0]\n",
|
1142 |
+
" results[index] = await result\n",
|
1143 |
" pbar.update(1)\n",
|
1144 |
" return results\n",
|
1145 |
+
" \n",
|
1146 |
+
"async def main():\n",
|
1147 |
+
" prompts = df['falcon_reasoning_prompt'].tolist()\n",
|
1148 |
+
" falcon_reasonings = await generate_falcon_reasoning(prompts)\n",
|
1149 |
+
" df['falcon_reasoning'] = falcon_reasonings\n",
|
1150 |
"\n",
|
1151 |
+
"# Run the main function\n",
|
1152 |
+
"asyncio.run(main())"
|
|
|
1153 |
]
|
1154 |
},
|
1155 |
{
|
1156 |
"cell_type": "code",
|
1157 |
+
"execution_count": 17,
|
1158 |
+
"id": "ce144640-34f6-42ad-96e9-cdeada5db647",
|
1159 |
+
"metadata": {},
|
1160 |
+
"outputs": [
|
1161 |
+
{
|
1162 |
+
"name": "stdout",
|
1163 |
+
"output_type": "stream",
|
1164 |
+
"text": [
|
1165 |
+
"CPU times: user 1.56 ms, sys: 4.26 ms, total: 5.83 ms\n",
|
1166 |
+
"Wall time: 6.33 ms\n"
|
1167 |
+
]
|
1168 |
+
}
|
1169 |
+
],
|
1170 |
+
"source": [
|
1171 |
+
"%%time\n",
|
1172 |
+
"\n",
|
1173 |
+
"import asyncio\n",
|
1174 |
+
"import pandas as pd\n",
|
1175 |
+
"from aiohttp import ClientSession\n",
|
1176 |
+
"from tqdm.asyncio import tqdm\n",
|
1177 |
+
"import nest_asyncio\n",
|
1178 |
+
"\n",
|
1179 |
+
"nest_asyncio.apply() # Patches the event loop to allow nested async calls\n",
|
1180 |
+
"\n",
|
1181 |
+
"# Example async chat completion function\n",
|
1182 |
+
"async def async_chat_completion(prompt, max_tokens=MAX_TOKENS):\n",
|
1183 |
+
" response = await endpoint.async_client.chat_completion(prompt, max_tokens=max_tokens)\n",
|
1184 |
+
" return response.choices[0].message.content\n",
|
1185 |
+
"\n",
|
1186 |
+
"# Semaphore wrapper for concurrency control\n",
|
1187 |
+
"async def fetch_with_semaphore(semaphore, prompt, max_tokens=MAX_TOKENS):\n",
|
1188 |
+
" async with semaphore:\n",
|
1189 |
+
" return await async_chat_completion(prompt, max_tokens)\n",
|
1190 |
+
"\n",
|
1191 |
+
"# Process dataframe asynchronously\n",
|
1192 |
+
"async def process_dataframe_async(df, max_tokens=MAX_TOKENS, workers=16):\n",
|
1193 |
+
" semaphore = asyncio.Semaphore(workers)\n",
|
1194 |
+
" tasks = []\n",
|
1195 |
+
" \n",
|
1196 |
+
" for prompt in df['falcon_reasoning_prompt']:\n",
|
1197 |
+
" task = fetch_with_semaphore(semaphore, prompt, max_tokens)\n",
|
1198 |
+
" tasks.append(task)\n",
|
1199 |
+
" \n",
|
1200 |
+
" results = await tqdm.gather(*tasks)\n",
|
1201 |
+
" df['falcon_reasoning'] = results\n",
|
1202 |
+
" return df\n",
|
1203 |
+
"\n",
|
1204 |
+
"# Run async process with nest_asyncio\n",
|
1205 |
+
"def run_async_process(df):\n",
|
1206 |
+
" loop = asyncio.get_event_loop()\n",
|
1207 |
+
" return loop.run_until_complete(process_dataframe_async(df))\n"
|
1208 |
+
]
|
1209 |
+
},
|
1210 |
+
{
|
1211 |
+
"cell_type": "code",
|
1212 |
+
"execution_count": 19,
|
1213 |
+
"id": "14080408-1fb1-42c7-9427-acd2006e33f0",
|
1214 |
+
"metadata": {},
|
1215 |
+
"outputs": [
|
1216 |
+
{
|
1217 |
+
"name": "stderr",
|
1218 |
+
"output_type": "stream",
|
1219 |
+
"text": [
|
1220 |
+
"100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████���██████| 8413/8413 [4:24:10<00:00, 1.88s/it]\n"
|
1221 |
+
]
|
1222 |
+
}
|
1223 |
+
],
|
1224 |
+
"source": [
|
1225 |
+
"df = run_async_process(df)"
|
1226 |
+
]
|
1227 |
+
},
|
1228 |
+
{
|
1229 |
+
"cell_type": "code",
|
1230 |
+
"execution_count": 20,
|
1231 |
"id": "573008db-78aa-4ca9-992b-3bdebcfd5fc9",
|
1232 |
"metadata": {},
|
1233 |
"outputs": [
|
1234 |
{
|
1235 |
"data": {
|
1236 |
"text/plain": [
|
1237 |
+
"InferenceEndpoint(name='poe-reasoning', namespace='HF-test-lab', repository='tiiuae/Falcon3-7B-Instruct', status='paused', url=None)"
|
1238 |
]
|
1239 |
},
|
1240 |
+
"execution_count": 20,
|
1241 |
"metadata": {},
|
1242 |
"output_type": "execute_result"
|
1243 |
}
|
|
|
1248 |
},
|
1249 |
{
|
1250 |
"cell_type": "code",
|
1251 |
+
"execution_count": 21,
|
1252 |
"id": "0a31bb96-66cd-4f03-83b4-25b64c58a591",
|
1253 |
"metadata": {},
|
1254 |
"outputs": [
|
1255 |
{
|
1256 |
"data": {
|
1257 |
"text/plain": [
|
1258 |
+
"0 - (a) Seconds and minutes: Satellite technolog...\n",
|
1259 |
+
"1 (a) Relieve pain: Irradiating food does not ha...\n",
|
1260 |
+
"2 (a) **Fiber follicles**: This is the correct a...\n",
|
1261 |
+
"3 1. **Option (a): Dies**\\n - Earthworms are s...\n",
|
1262 |
+
"4 (a) The environment: Lightning can release lar...\n",
|
1263 |
" ... \n",
|
1264 |
+
"8408 (a) Bandage open sores: This action is typical...\n",
|
1265 |
+
"8409 1. **Read the question and options carefully.*...\n",
|
1266 |
+
"8410 - (a) Metabolic reaction: This is incorrect be...\n",
|
1267 |
+
"8411 1. **Glucose (b)**: Glucose is one of the reac...\n",
|
1268 |
+
"8412 1. **Read the question and options carefully.*...\n",
|
1269 |
+
"Name: falcon_reasoning, Length: 8413, dtype: object"
|
1270 |
]
|
1271 |
},
|
1272 |
+
"execution_count": 21,
|
1273 |
"metadata": {},
|
1274 |
"output_type": "execute_result"
|
1275 |
}
|
1276 |
],
|
1277 |
+
"source": [
|
1278 |
+
"df.falcon_reasoning"
|
1279 |
+
]
|
1280 |
},
|
1281 |
{
|
1282 |
"cell_type": "code",
|
1283 |
+
"execution_count": 22,
|
1284 |
"id": "27542a33-187e-4b3f-aa20-4177f778312d",
|
1285 |
"metadata": {},
|
1286 |
"outputs": [
|
|
|
1312 |
" <th>explanation</th>\n",
|
1313 |
" <th>question_text</th>\n",
|
1314 |
" <th>answer_choices</th>\n",
|
1315 |
+
" <th>falcon_reasoning_prompt</th>\n",
|
1316 |
+
" <th>falcon_reasoning</th>\n",
|
1317 |
" </tr>\n",
|
1318 |
" </thead>\n",
|
1319 |
" <tbody>\n",
|
|
|
1326 |
" <td>a) Seconds and minutes: This option is incorre...</td>\n",
|
1327 |
" <td>What is satellite technology used for predicting?</td>\n",
|
1328 |
" <td>(a) Seconds and minutes (b) The strength and m...</td>\n",
|
1329 |
+
" <td>[{'role': 'system', 'content': 'You are an AI ...</td>\n",
|
1330 |
+
" <td>- (a) Seconds and minutes: Satellite technolog...</td>\n",
|
1331 |
" </tr>\n",
|
1332 |
" <tr>\n",
|
1333 |
" <th>1</th>\n",
|
|
|
1338 |
" <td>(a) Relieve pain: This option is not correct b...</td>\n",
|
1339 |
" <td>What does irradiating food do?</td>\n",
|
1340 |
" <td>(a) Relieve pain (b) Enhance food's nutrients ...</td>\n",
|
1341 |
+
" <td>[{'role': 'system', 'content': 'You are an AI ...</td>\n",
|
1342 |
+
" <td>(a) Relieve pain: Irradiating food does not ha...</td>\n",
|
1343 |
" </tr>\n",
|
1344 |
" <tr>\n",
|
1345 |
" <th>2</th>\n",
|
|
|
1350 |
" <td>b) Exfoliation: Exfoliation is the process of ...</td>\n",
|
1351 |
" <td>What protects a mammal's skin?</td>\n",
|
1352 |
" <td>(a) Fiber follicles (b) Exfoliation (c) Resist...</td>\n",
|
1353 |
+
" <td>[{'role': 'system', 'content': 'You are an AI ...</td>\n",
|
1354 |
+
" <td>(a) **Fiber follicles**: This is the correct a...</td>\n",
|
1355 |
" </tr>\n",
|
1356 |
" <tr>\n",
|
1357 |
" <th>3</th>\n",
|
|
|
1362 |
" <td>a) Dies: This option is not correct because ea...</td>\n",
|
1363 |
" <td>What do earthworms do when a segment breaks off?</td>\n",
|
1364 |
" <td>(a) Dies (b) Regrows it (c) Reproduces (d) Sed...</td>\n",
|
1365 |
+
" <td>[{'role': 'system', 'content': 'You are an AI ...</td>\n",
|
1366 |
+
" <td>1. **Option (a): Dies**\\n - Earthworms are s...</td>\n",
|
1367 |
" </tr>\n",
|
1368 |
" <tr>\n",
|
1369 |
" <th>4</th>\n",
|
|
|
1374 |
" <td>b) Rainstorms: Lightning is actually a natural...</td>\n",
|
1375 |
" <td>Lightning can be bad for what?</td>\n",
|
1376 |
" <td>(a) The environment (b) Rainstorms (c) Destruc...</td>\n",
|
1377 |
+
" <td>[{'role': 'system', 'content': 'You are an AI ...</td>\n",
|
1378 |
+
" <td>(a) The environment: Lightning can release lar...</td>\n",
|
1379 |
" </tr>\n",
|
1380 |
" <tr>\n",
|
1381 |
" <th>...</th>\n",
|
|
|
1398 |
" <td>a) Bandaging open sores is not the correct ans...</td>\n",
|
1399 |
" <td>Organisms that can cause infection do what?</td>\n",
|
1400 |
" <td>(a) Bandage open sores (b) Keep flesh clean (c...</td>\n",
|
1401 |
+
" <td>[{'role': 'system', 'content': 'You are an AI ...</td>\n",
|
1402 |
+
" <td>(a) Bandage open sores: This action is typical...</td>\n",
|
1403 |
" </tr>\n",
|
1404 |
" <tr>\n",
|
1405 |
" <th>8409</th>\n",
|
|
|
1410 |
" <td>b) Fungi are living things that can make their...</td>\n",
|
1411 |
" <td>Fungi are living things that cannot make their...</td>\n",
|
1412 |
" <td>(a) Food (b) Cells (c) Energy (d) Fruits (e) H...</td>\n",
|
1413 |
+
" <td>[{'role': 'system', 'content': 'You are an AI ...</td>\n",
|
1414 |
+
" <td>1. **Read the question and options carefully.*...</td>\n",
|
1415 |
" </tr>\n",
|
1416 |
" <tr>\n",
|
1417 |
" <th>8410</th>\n",
|
|
|
1422 |
" <td>a) Metabolic reaction: This option is incorrec...</td>\n",
|
1423 |
" <td>An overheated body can use water for:?</td>\n",
|
1424 |
" <td>(a) Metabolic reaction (b) Dehydrating (c) Rai...</td>\n",
|
1425 |
+
" <td>[{'role': 'system', 'content': 'You are an AI ...</td>\n",
|
1426 |
+
" <td>- (a) Metabolic reaction: This is incorrect be...</td>\n",
|
1427 |
" </tr>\n",
|
1428 |
" <tr>\n",
|
1429 |
" <th>8411</th>\n",
|
|
|
1434 |
" <td>a) Electrons are involved in cellular respirat...</td>\n",
|
1435 |
" <td>What is essential for cellular respiration for...</td>\n",
|
1436 |
" <td>(a) Electron (b) Glucose (c) Energy (d) Energy...</td>\n",
|
1437 |
+
" <td>[{'role': 'system', 'content': 'You are an AI ...</td>\n",
|
1438 |
+
" <td>1. **Glucose (b)**: Glucose is one of the reac...</td>\n",
|
1439 |
" </tr>\n",
|
1440 |
" <tr>\n",
|
1441 |
" <th>8412</th>\n",
|
|
|
1446 |
" <td>a) H2O: Water is essential for life, but it do...</td>\n",
|
1447 |
" <td>What helps insulate and protect the body?</td>\n",
|
1448 |
" <td>(a) H2o (b) Living cells in follicles (c) Laye...</td>\n",
|
1449 |
+
" <td>[{'role': 'system', 'content': 'You are an AI ...</td>\n",
|
1450 |
+
" <td>1. **Read the question and options carefully.*...</td>\n",
|
1451 |
" </tr>\n",
|
1452 |
" </tbody>\n",
|
1453 |
"</table>\n",
|
|
|
1520 |
"8411 (a) Electron (b) Glucose (c) Energy (d) Energy... \n",
|
1521 |
"8412 (a) H2o (b) Living cells in follicles (c) Laye... \n",
|
1522 |
"\n",
|
1523 |
+
" falcon_reasoning_prompt \\\n",
|
1524 |
+
"0 [{'role': 'system', 'content': 'You are an AI ... \n",
|
1525 |
+
"1 [{'role': 'system', 'content': 'You are an AI ... \n",
|
1526 |
+
"2 [{'role': 'system', 'content': 'You are an AI ... \n",
|
1527 |
+
"3 [{'role': 'system', 'content': 'You are an AI ... \n",
|
1528 |
+
"4 [{'role': 'system', 'content': 'You are an AI ... \n",
|
1529 |
"... ... \n",
|
1530 |
+
"8408 [{'role': 'system', 'content': 'You are an AI ... \n",
|
1531 |
+
"8409 [{'role': 'system', 'content': 'You are an AI ... \n",
|
1532 |
+
"8410 [{'role': 'system', 'content': 'You are an AI ... \n",
|
1533 |
+
"8411 [{'role': 'system', 'content': 'You are an AI ... \n",
|
1534 |
+
"8412 [{'role': 'system', 'content': 'You are an AI ... \n",
|
1535 |
"\n",
|
1536 |
+
" falcon_reasoning \n",
|
1537 |
+
"0 - (a) Seconds and minutes: Satellite technolog... \n",
|
1538 |
+
"1 (a) Relieve pain: Irradiating food does not ha... \n",
|
1539 |
+
"2 (a) **Fiber follicles**: This is the correct a... \n",
|
1540 |
+
"3 1. **Option (a): Dies**\\n - Earthworms are s... \n",
|
1541 |
+
"4 (a) The environment: Lightning can release lar... \n",
|
1542 |
"... ... \n",
|
1543 |
+
"8408 (a) Bandage open sores: This action is typical... \n",
|
1544 |
+
"8409 1. **Read the question and options carefully.*... \n",
|
1545 |
+
"8410 - (a) Metabolic reaction: This is incorrect be... \n",
|
1546 |
+
"8411 1. **Glucose (b)**: Glucose is one of the reac... \n",
|
1547 |
+
"8412 1. **Read the question and options carefully.*... \n",
|
1548 |
"\n",
|
1549 |
"[8413 rows x 9 columns]"
|
1550 |
]
|
1551 |
},
|
1552 |
+
"execution_count": 22,
|
1553 |
"metadata": {},
|
1554 |
"output_type": "execute_result"
|
1555 |
}
|
|
|
1560 |
},
|
1561 |
{
|
1562 |
"cell_type": "code",
|
1563 |
+
"execution_count": 23,
|
1564 |
"id": "55bc6940-07e4-402f-9c56-fb830a35290f",
|
1565 |
"metadata": {},
|
1566 |
"outputs": [
|
1567 |
{
|
1568 |
"data": {
|
1569 |
"application/vnd.jupyter.widget-view+json": {
|
1570 |
+
"model_id": "2c00d0ec716c4f8883388c94a66d44d3",
|
1571 |
"version_major": 2,
|
1572 |
"version_minor": 0
|
1573 |
},
|
|
|
1581 |
{
|
1582 |
"data": {
|
1583 |
"application/vnd.jupyter.widget-view+json": {
|
1584 |
+
"model_id": "547a19e852f64b019297b0155bac03d7",
|
1585 |
"version_major": 2,
|
1586 |
"version_minor": 0
|
1587 |
},
|
|
|
1595 |
{
|
1596 |
"data": {
|
1597 |
"text/plain": [
|
1598 |
+
"CommitInfo(commit_url='https://huggingface.co/datasets/derek-thomas/labeled-multiple-choice-explained-falcon-reasoning/commit/11e1ed7503d2aa5724146ee4508cb924b1bb9783', commit_message='Upload dataset', commit_description='', oid='11e1ed7503d2aa5724146ee4508cb924b1bb9783', pr_url=None, repo_url=RepoUrl('https://huggingface.co/datasets/derek-thomas/labeled-multiple-choice-explained-falcon-reasoning', endpoint='https://huggingface.co', repo_type='dataset', repo_id='derek-thomas/labeled-multiple-choice-explained-falcon-reasoning'), pr_revision=None, pr_num=None)"
|
1599 |
]
|
1600 |
},
|
1601 |
+
"execution_count": 23,
|
1602 |
"metadata": {},
|
1603 |
"output_type": "execute_result"
|
1604 |
}
|
|
|
1635 |
"name": "python",
|
1636 |
"nbconvert_exporter": "python",
|
1637 |
"pygments_lexer": "ipython3",
|
1638 |
+
"version": "3.11.11"
|
1639 |
}
|
1640 |
},
|
1641 |
"nbformat": 4,
|
01-poe-dataset-creation.ipynb
CHANGED
The diff for this file is too large to render.
See raw diff
|
|
gradio_test.ipynb
DELETED
The diff for this file is too large to render.
See raw diff
|
|
requirements.txt
CHANGED
@@ -1,11 +1,10 @@
|
|
1 |
-
autotrain-advanced
|
2 |
wandb==0.18.7
|
3 |
huggingface_hub==0.26.2
|
4 |
datasets==3.1.0
|
5 |
pandas==2.2.3
|
6 |
-
gradio
|
7 |
scikit-learn==1.5.2
|
8 |
-
lighteval[tensorboardX,adapters]==0.6.2
|
9 |
nest_asyncio==1.6.0
|
10 |
plotly==5.24.1
|
11 |
ipywidgets==8.1.5
|
|
|
1 |
+
autotrain-advanced
|
2 |
wandb==0.18.7
|
3 |
huggingface_hub==0.26.2
|
4 |
datasets==3.1.0
|
5 |
pandas==2.2.3
|
6 |
+
gradio
|
7 |
scikit-learn==1.5.2
|
|
|
8 |
nest_asyncio==1.6.0
|
9 |
plotly==5.24.1
|
10 |
ipywidgets==8.1.5
|