{ "cells": [ { "cell_type": "code", "execution_count": 91, "id": "645f6486-3a80-41a6-8b2f-9cefbb3607c4", "metadata": {}, "outputs": [], "source": [ "from analyze_results import *\n", "from analyze_results import load_json_files_from_dir\n", "import warnings\n", "# Suppress FutureWarning messages\n", "warnings.simplefilter(action='ignore', category=FutureWarning)\n" ] }, { "cell_type": "code", "execution_count": 2, "id": "dcc68299-5d7c-417e-be4e-9eeaa4aecec6", "metadata": {}, "outputs": [], "source": [ "models = [\n", " \"gemma2b\",\n", " \"gemma7b\",\n", " \"phi-3\",\n", " \"llama-3-8b\",\n", " \"llama-2-7b\",\n", " \"starling\",\n", " \"zephyr\",\n", " \"gpt-3.5\",\n", " \"gpt-4\"\n", " ]" ] }, { "cell_type": "markdown", "id": "0c0bba11-99cd-46a5-9298-f5a9560b8b29", "metadata": {}, "source": [ "# Sep score + sep score by insistence\n", "\n", "In this section and the following two we compute SEP score of various models for the **Original** experiment, as well as the sep score for various dimensions of the data. " ] }, { "cell_type": "code", "execution_count": 3, "id": "86453dad-e264-4a49-96d0-9d1cf06637d7", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "gemma2b\n", "Including 6000-10000.json\n", "Including 0-3000.json\n", "Including 3000-6000.json\n", "Total items loaded: 9160\n", "neutral [0.729, 0.011]\n", "insistent [0.734, 0.01]\n", "global [0.732, 0.008]\n", "Name: sep_metric_mean_std, dtype: object \n", "\n", "gemma7b\n", "Including 0-9160.json\n", "Total items loaded: 9160\n", "neutral [0.634, 0.011]\n", "insistent [0.516, 0.01]\n", "global [0.569, 0.008]\n", "Name: sep_metric_mean_std, dtype: object \n", "\n", "phi-3\n", "Including 3000-6000.json\n", "Including 0-3000.json\n", "Including 6000-10000.json\n", "Total items loaded: 9160\n", "neutral [0.189, 0.006]\n", "insistent [0.081, 0.004]\n", "global [0.133, 0.004]\n", "Name: sep_metric_mean_std, dtype: object \n", "\n", "llama-3-8b\n", "Including 0-9160.json\n", "Including llama-3-8b.json\n", "Total items loaded: 18320\n", "neutral [0.39, 0.006]\n", "insistent [0.232, 0.005]\n", "global [0.308, 0.004]\n", "Name: sep_metric_mean_std, dtype: object \n", "\n", "llama-2-7b\n", "Including llama-2-7b.json\n", "Including 5000-9160.json\n", "Including 0-5000.json\n", "Total items loaded: 18244\n", "neutral [0.61, 0.006]\n", "insistent [0.295, 0.005]\n", "global [0.443, 0.004]\n", "Name: sep_metric_mean_std, dtype: object \n", "\n", "starling\n", "Including 0-3000.json\n", "Including 6000-10000.json\n", "Including 3000-6000.json\n", "Total items loaded: 9160\n", "neutral [0.195, 0.006]\n", "insistent [0.091, 0.004]\n", "global [0.14, 0.004]\n", "Name: sep_metric_mean_std, dtype: object \n", "\n", "zephyr\n", "Including 0-9160.json\n", "Total items loaded: 9160\n", "neutral [0.357, 0.01]\n", "insistent [0.249, 0.009]\n", "global [0.3, 0.007]\n", "Name: sep_metric_mean_std, dtype: object \n", "\n", "gpt-3.5\n", "Including 5000-10000.json\n", "Including 0-5000.json\n", "Total items loaded: 9160\n", "neutral [0.552, 0.009]\n", "insistent [0.578, 0.008]\n", "global [0.566, 0.006]\n", "Name: sep_metric_mean_std, dtype: object \n", "\n", "gpt-4\n", "Including 3000-6000.json\n", "Including 6000-10000.json\n", "Including 0-3000.json\n", "Total items loaded: 9160\n", "neutral [0.373, 0.008]\n", "insistent [0.083, 0.004]\n", "global [0.208, 0.005]\n", "Name: sep_metric_mean_std, dtype: object \n", "\n" ] } ], "source": [ "for model in models: \n", " print(model)\n", " model_outputs = load_json_files_from_dir(f\"./model_outputs/eval/{model}/prompt_0\")\n", " processed_output = process_dataset_detailed(model_outputs)\n", " print(get_separation_score(*processed_output)[\"sep_metric_mean_std\"], \"\\n\")" ] }, { "cell_type": "markdown", "id": "ac9436e1-b585-41ed-a39c-a6fc8d23918a", "metadata": {}, "source": [ "# Sep score by appended type " ] }, { "cell_type": "code", "execution_count": 16, "id": "0f9df03a-e0f6-4172-a690-53c56ac43a97", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "gemma2b\n", "Including 6000-10000.json\n", "Including 0-3000.json\n", "Including 3000-6000.json\n", "Total items loaded: 9160\n", "ll [0.732, 0.014]\n", "lr [0.816, 0.012]\n", "rl [0.616, 0.019]\n", "rr [0.711, 0.018]\n", "left-any [0.773, 0.009]\n", "right-any [0.664, 0.013]\n", "any-left [0.688, 0.011]\n", "any-right [0.776, 0.01]\n", "Name: sep_metric_mean_std, dtype: object \n", "\n", "gemma7b\n", "Including 0-9160.json\n", "Total items loaded: 9160\n", "ll [0.706, 0.013]\n", "lr [0.538, 0.014]\n", "rl [0.619, 0.017]\n", "rr [0.373, 0.016]\n", "left-any [0.623, 0.01]\n", "right-any [0.493, 0.012]\n", "any-left [0.671, 0.01]\n", "any-right [0.468, 0.011]\n", "Name: sep_metric_mean_std, dtype: object \n", "\n", "phi-3\n", "Including 3000-6000.json\n", "Including 0-3000.json\n", "Including 6000-10000.json\n", "Total items loaded: 9160\n", "ll [0.203, 0.009]\n", "lr [0.071, 0.006]\n", "rl [0.196, 0.009]\n", "rr [0.064, 0.005]\n", "left-any [0.137, 0.006]\n", "right-any [0.129, 0.005]\n", "any-left [0.199, 0.006]\n", "any-right [0.067, 0.004]\n", "Name: sep_metric_mean_std, dtype: object \n", "\n", "llama-3-8b\n", "Including 0-9160.json\n", "Including llama-3-8b.json\n", "Total items loaded: 18320\n", "ll [0.378, 0.008]\n", "lr [0.253, 0.007]\n", "rl [0.362, 0.007]\n", "rr [0.241, 0.007]\n", "left-any [0.316, 0.005]\n", "right-any [0.3, 0.005]\n", "any-left [0.37, 0.005]\n", "any-right [0.246, 0.005]\n", "Name: sep_metric_mean_std, dtype: object \n", "\n", "llama-2-7b\n", "Including llama-2-7b.json\n", "Including 5000-9160.json\n", "Including 0-5000.json\n", "Total items loaded: 18244\n", "ll [0.48, 0.008]\n", "lr [0.44, 0.008]\n", "rl [0.45, 0.008]\n", "rr [0.403, 0.008]\n", "left-any [0.46, 0.006]\n", "right-any [0.426, 0.006]\n", "any-left [0.464, 0.006]\n", "any-right [0.421, 0.006]\n", "Name: sep_metric_mean_std, dtype: object \n", "\n", "starling\n", "Including 0-3000.json\n", "Including 6000-10000.json\n", "Including 3000-6000.json\n", "Total items loaded: 9160\n", "ll [0.234, 0.01]\n", "lr [0.06, 0.005]\n", "rl [0.225, 0.009]\n", "rr [0.043, 0.004]\n", "left-any [0.147, 0.006]\n", "right-any [0.132, 0.005]\n", "any-left [0.23, 0.007]\n", "any-right [0.051, 0.003]\n", "Name: sep_metric_mean_std, dtype: object \n", "\n", "zephyr\n", "Including 0-9160.json\n", "Total items loaded: 9160\n", "ll [0.323, 0.018]\n", "lr [0.214, 0.016]\n", "rl [0.399, 0.012]\n", "rr [0.225, 0.01]\n", "left-any [0.269, 0.012]\n", "right-any [0.312, 0.008]\n", "any-left [0.377, 0.01]\n", "any-right [0.222, 0.009]\n", "Name: sep_metric_mean_std, dtype: object \n", "\n", "gpt-3.5\n", "Including 5000-10000.json\n", "Including 0-5000.json\n", "Total items loaded: 9160\n", "ll [0.659, 0.012]\n", "lr [0.474, 0.012]\n", "rl [0.665, 0.011]\n", "rr [0.467, 0.011]\n", "left-any [0.567, 0.009]\n", "right-any [0.565, 0.008]\n", "any-left [0.662, 0.008]\n", "any-right [0.47, 0.008]\n", "Name: sep_metric_mean_std, dtype: object \n", "\n", "gpt-4\n", "Including 3000-6000.json\n", "Including 6000-10000.json\n", "Including 0-3000.json\n", "Total items loaded: 9160\n", "ll [0.277, 0.011]\n", "lr [0.122, 0.008]\n", "rl [0.293, 0.01]\n", "rr [0.139, 0.008]\n", "left-any [0.2, 0.007]\n", "right-any [0.215, 0.006]\n", "any-left [0.286, 0.007]\n", "any-right [0.131, 0.005]\n", "Name: sep_metric_mean_std, dtype: object \n", "\n" ] } ], "source": [ "for model in models: \n", " print(model)\n", " model_outputs = load_json_files_from_dir(f\"./model_outputs/eval/{model}/prompt_0\")\n", " processed_output = process_dataset_detailed(model_outputs)\n", " print(get_score_by_appended_type(*processed_output)[\"sep_metric_mean_std\"], \"\\n\")" ] }, { "cell_type": "markdown", "id": "54fd5f3e-f0f2-469c-be0b-48e76a15e89d", "metadata": {}, "source": [ "# SEP score by task domain" ] }, { "cell_type": "code", "execution_count": 17, "id": "1ccc7e2c-461b-49f5-ba6f-57b3b97509c5", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "gemma2b\n", "Including 6000-10000.json\n", "Including 0-3000.json\n", "Including 3000-6000.json\n", "Total items loaded: 9160\n", "Information [0.822, 0.013]\n", "Analytical [0.778, 0.012]\n", "Creative [0.622, 0.014]\n", "Name: sep_metric_mean_std, dtype: object \n", "\n", "gemma7b\n", "Including 0-9160.json\n", "Total items loaded: 9160\n", "Information [0.757, 0.014]\n", "Analytical [0.619, 0.012]\n", "Creative [0.408, 0.012]\n", "Name: sep_metric_mean_std, dtype: object \n", "\n", "phi-3\n", "Including 3000-6000.json\n", "Including 0-3000.json\n", "Including 6000-10000.json\n", "Total items loaded: 9160\n", "Information [0.143, 0.007]\n", "Analytical [0.132, 0.006]\n", "Creative [0.123, 0.007]\n", "Name: sep_metric_mean_std, dtype: object \n", "\n", "llama-3-8b\n", "Including 0-9160.json\n", "Including llama-3-8b.json\n", "Total items loaded: 18320\n", "Information [0.424, 0.007]\n", "Analytical [0.307, 0.006]\n", "Creative [0.185, 0.006]\n", "Name: sep_metric_mean_std, dtype: object \n", "\n", "llama-2-7b\n", "Including llama-2-7b.json\n", "Including 5000-9160.json\n", "Including 0-5000.json\n", "Total items loaded: 18244\n", "Information [0.535, 0.007]\n", "Analytical [0.448, 0.007]\n", "Creative [0.33, 0.007]\n", "Name: sep_metric_mean_std, dtype: object \n", "\n", "starling\n", "Including 0-3000.json\n", "Including 6000-10000.json\n", "Including 3000-6000.json\n", "Total items loaded: 9160\n", "Information [0.168, 0.007]\n", "Analytical [0.124, 0.006]\n", "Creative [0.128, 0.007]\n", "Name: sep_metric_mean_std, dtype: object \n", "\n", "zephyr\n", "Including 0-9160.json\n", "Total items loaded: 9160\n", "Information [0.315, 0.012]\n", "Analytical [0.313, 0.011]\n", "Creative [0.272, 0.011]\n", "Name: sep_metric_mean_std, dtype: object \n", "\n", "gpt-3.5\n", "Including 5000-10000.json\n", "Including 0-5000.json\n", "Total items loaded: 9160\n", "Information [0.696, 0.01]\n", "Analytical [0.595, 0.009]\n", "Creative [0.398, 0.01]\n", "Name: sep_metric_mean_std, dtype: object \n", "\n", "gpt-4\n", "Including 3000-6000.json\n", "Including 6000-10000.json\n", "Including 0-3000.json\n", "Total items loaded: 9160\n", "Information [0.251, 0.009]\n", "Analytical [0.193, 0.007]\n", "Creative [0.179, 0.008]\n", "Name: sep_metric_mean_std, dtype: object \n", "\n" ] } ], "source": [ "for model in models: \n", " print(model)\n", " model_outputs = load_json_files_from_dir(f\"./model_outputs/eval/{model}/prompt_0\")\n", " processed_output = process_dataset_detailed(model_outputs)\n", " print(get_score_by_domain(*processed_output)[\"sep_metric_mean_std\"], \"\\n\")" ] }, { "cell_type": "code", "execution_count": null, "id": "0317014f-59b1-4f1f-a022-6657387c15f6", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "e0e84daa-5137-43af-b4b5-b6de28bcb61c", "metadata": {}, "source": [ "# Model / prompt selection (main eval code)\n", "\n", "In this section, we get sep and utility scores for all models and all modes (evaluation/validation for original/fine-tuning/prompt engineering/ prompt optimization). In particular, we demonstrate how we perform prompt / model selection. " ] }, { "cell_type": "code", "execution_count": 104, "id": "7709594d-839f-4127-943c-511b6b98b220", "metadata": {}, "outputs": [], "source": [ "from typing import Dict, Optional, Union\n", "\n", "def get_scores(mode: str, model: str) -> pd.DataFrame:\n", " \"\"\"\n", " Retrieve the scores for a given mode and model.\n", "\n", " Parameters:\n", " mode (str): The mode to use (e.g., 'eval', 'ft', 'rpo', 'peng').\n", " model (str): The model name.\n", "\n", " Returns:\n", " pd.DataFrame: A DataFrame containing the scores for the specified mode and model.\n", " \"\"\" \n", " scores = get_df_scores_for_model(f\"./model_outputs/{mode}/{model}\")\n", " return scores\n", "\n", "\n", "\n", "def analyze(mode: str, model: str) -> None:\n", " \"\"\"\n", " Analyze the scores for a given mode and model, printing the best score and corresponding prompt.\n", "\n", " Parameters:\n", " mode (str): The mode to use (e.g., 'eval', 'train').\n", " model (str): The model name.\n", " \"\"\"\n", " scores = get_scores(mode, model)\n", " sep = list(map(lambda x: x[0], np.array(scores[\"sep_metric\"])))\n", " ix = np.argmax(sep)\n", " best_score = sep[ix]\n", " best_prompt = list(scores[\"prompt_index\"])[ix]\n", " print(scores)\n", " print(f\"Best score for prompt {best_prompt} is {best_score}\")\n", "\n", "def map_method_to_util(model: str, only_mean = True) -> Dict[str, Optional[float]]:\n", " \"\"\"\n", " Map methods to their utility scores for a given model.\n", "\n", " Parameters:\n", " model (str): The model name.\n", " only_mean (bool): if false, standard error is included, else only the mean. \n", "\n", " Returns:\n", " Dict[str, Optional[float]]: A dictionary mapping methods to their utility scores.\n", " \"\"\"\n", " scores = get_scores(\"eval\", model)\n", " p_ix = scores[\"prompt_index\"]\n", " utility = scores[\"probe_in_instruct_asr\"]\n", " method_to_util = {\n", " \"original\": None,\n", " \"peng\": None,\n", " \"popt\": None, \n", " \"ft\": None\n", " }\n", " for prompt_index, util in zip(p_ix, utility): \n", " if only_mean: \n", " util = util[0]\n", " if prompt_index == \"0\": \n", " method_to_util[\"original\"] = util\n", " elif \"ft\" in prompt_index: \n", " method_to_util[\"ft\"] = util\n", " elif \"rpo\" in prompt_index: \n", " method_to_util[\"popt\"] = util\n", " elif prompt_index.isdigit():\n", " method_to_util[\"peng\"] = util\n", " if \"phi-3\" in model:\n", " method_to_util[\"popt\"] = method_to_util[\"original\"]\n", " if \"gemma7b\" in model:\n", " method_to_util[\"peng\"] = method_to_util[\"original\"]\n", " return method_to_util\n", "\n", "def map_method_to_sep(model: str) -> Dict[str, Optional[float]]:\n", " \"\"\"\n", " Map methods to their separation metrics for a given model.\n", "\n", " Parameters:\n", " model (str): The model name.\n", "\n", " Returns:\n", " Dict[str, Optional[float]]: A dictionary mapping methods to their separation metrics.\n", " \"\"\"\n", " scores = get_scores(\"eval\", model)\n", " p_ix = scores[\"prompt_index\"]\n", " sep_values = list(map(lambda x: x[0], scores[\"sep_metric\"]))\n", " method_to_sep = {\n", " \"original\": None,\n", " \"peng\": None,\n", " \"popt\": None, \n", " \"ft\": None\n", " }\n", " for prompt_index, sep_val in zip(p_ix, sep_values): \n", " if prompt_index == \"0\": \n", " method_to_sep[\"original\"] = sep_val\n", " elif \"ft\" in prompt_index: \n", " method_to_sep[\"ft\"] = sep_val\n", " elif \"rpo\" in prompt_index: \n", " method_to_sep[\"popt\"] = sep_val\n", " elif prompt_index.isdigit():\n", " method_to_sep[\"peng\"] = sep_val\n", " if \"phi-3\" in model:\n", " method_to_sep[\"popt\"] = method_to_sep[\"original\"]\n", " if \"gemma7b\" in model:\n", " method_to_sep[\"peng\"] = method_to_sep[\"original\"]\n", " return method_to_sep" ] }, { "cell_type": "markdown", "id": "b39a63f1-166b-411a-9b63-a2b25d45efc1", "metadata": {}, "source": [ "### Prompt Engineering (validation set)" ] }, { "cell_type": "code", "execution_count": 100, "id": "774f9878-42b9-493a-97d7-9db2904b7ca4", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Scores for prompt engineering on the val set for gemma2b\n", " prompt_index sep_metric prompt_in_data_asr probe_in_instruct_asr \\\n", "0 0 [0.707, 0.033] [0.093, 0.009] [0.191, 0.012] \n", "1 1 [0.745, 0.036] [0.059, 0.007] [0.149, 0.011] \n", "2 10 [0.885, 0.041] [0.019, 0.004] [0.061, 0.008] \n", "3 11 [0.673, 0.045] [0.063, 0.008] [0.11, 0.01] \n", "4 12 [0.787, 0.042] [0.039, 0.006] [0.094, 0.009] \n", "5 13 [0.815, 0.029] [0.052, 0.007] [0.184, 0.012] \n", "6 14 [0.716, 0.039] [0.067, 0.008] [0.134, 0.011] \n", "7 15 [0.614, 0.052] [0.066, 0.008] [0.088, 0.009] \n", "8 2 [0.73, 0.04] [0.053, 0.007] [0.126, 0.01] \n", "9 3 [0.72, 0.04] [0.056, 0.007] [0.125, 0.01] \n", "10 4 [0.701, 0.039] [0.065, 0.008] [0.137, 0.011] \n", "11 5 [0.798, 0.026] [0.075, 0.008] [0.243, 0.014] \n", "12 6 [0.792, 0.029] [0.066, 0.008] [0.202, 0.013] \n", "13 7 [0.731, 0.041] [0.089, 0.009] [0.119, 0.01] \n", "14 8 [0.847, 0.037] [0.03, 0.005] [0.098, 0.009] \n", "15 9 [0.772, 0.044] [0.057, 0.007] [0.092, 0.009] \n", "\n", " same_output_rate \n", "0 [0.828, 0.012] \n", "1 [0.868, 0.011] \n", "2 [0.934, 0.008] \n", "3 [0.899, 0.01] \n", "4 [0.907, 0.009] \n", "5 [0.832, 0.012] \n", "6 [0.875, 0.01] \n", "7 [0.914, 0.009] \n", "8 [0.889, 0.01] \n", "9 [0.889, 0.01] \n", "10 [0.88, 0.01] \n", "11 [0.78, 0.013] \n", "12 [0.816, 0.012] \n", "13 [0.856, 0.011] \n", "14 [0.902, 0.009] \n", "15 [0.893, 0.01] \n", "Best score for prompt 10 is 0.885\n", "Scores for prompt engineering on the val set for gemma7b\n", " prompt_index sep_metric prompt_in_data_asr probe_in_instruct_asr \\\n", "0 0 [0.728, 0.033] [0.084, 0.009] [0.184, 0.012] \n", "1 1 [0.803, 0.051] [0.04, 0.006] [0.061, 0.008] \n", "2 10 [0.849, 0.028] [0.035, 0.006] [0.166, 0.012] \n", "3 11 [0.838, 0.026] [0.045, 0.007] [0.197, 0.013] \n", "4 12 [0.83, 0.036] [0.039, 0.006] [0.112, 0.01] \n", "5 13 [0.822, 0.03] [0.047, 0.007] [0.163, 0.012] \n", "6 14 [0.818, 0.032] [0.065, 0.008] [0.143, 0.011] \n", "7 15 [0.718, 0.042] [0.054, 0.007] [0.117, 0.01] \n", "8 2 [0.671, 0.052] [0.053, 0.007] [0.082, 0.009] \n", "9 3 [0.662, 0.057] [0.061, 0.008] [0.071, 0.008] \n", "10 4 [0.768, 0.043] [0.057, 0.007] [0.099, 0.009] \n", "11 5 [0.766, 0.029] [0.074, 0.008] [0.214, 0.013] \n", "12 6 [0.855, 0.023] [0.048, 0.007] [0.234, 0.013] \n", "13 7 [0.782, 0.028] [0.074, 0.008] [0.216, 0.013] \n", "14 8 [0.832, 0.034] [0.03, 0.005] [0.125, 0.01] \n", "15 9 [0.701, 0.031] [0.109, 0.01] [0.221, 0.013] \n", "\n", " same_output_rate \n", "0 [0.832, 0.012] \n", "1 [0.923, 0.008] \n", "2 [0.849, 0.011] \n", "3 [0.822, 0.012] \n", "4 [0.887, 0.01] \n", "5 [0.848, 0.011] \n", "6 [0.844, 0.011] \n", "7 [0.895, 0.01] \n", "8 [0.919, 0.009] \n", "9 [0.916, 0.009] \n", "10 [0.89, 0.01] \n", "11 [0.812, 0.012] \n", "12 [0.786, 0.013] \n", "13 [0.804, 0.013] \n", "14 [0.887, 0.01] \n", "15 [0.802, 0.013] \n", "Best score for prompt 6 is 0.855\n", "Scores for prompt engineering on the val set for phi-3\n", " prompt_index sep_metric prompt_in_data_asr probe_in_instruct_asr \\\n", "0 0 [0.224, 0.018] [0.614, 0.015] [0.566, 0.016] \n", "1 1 [0.684, 0.021] [0.218, 0.013] [0.507, 0.016] \n", "2 10 [0.525, 0.021] [0.365, 0.015] [0.581, 0.016] \n", "3 11 [0.38, 0.022] [0.48, 0.016] [0.476, 0.016] \n", "4 12 [0.388, 0.021] [0.483, 0.016] [0.551, 0.016] \n", "5 13 [0.333, 0.019] [0.528, 0.016] [0.619, 0.015] \n", "6 14 [0.184, 0.018] [0.62, 0.015] [0.488, 0.016] \n", "7 15 [0.218, 0.019] [0.585, 0.016] [0.472, 0.016] \n", "8 2 [0.466, 0.02] [0.428, 0.016] [0.624, 0.015] \n", "9 3 [0.591, 0.019] [0.326, 0.015] [0.684, 0.015] \n", "10 4 [0.517, 0.021] [0.406, 0.016] [0.592, 0.016] \n", "11 5 [0.293, 0.019] [0.543, 0.016] [0.598, 0.016] \n", "12 6 [0.614, 0.02] [0.297, 0.014] [0.604, 0.015] \n", "13 7 [0.455, 0.022] [0.42, 0.016] [0.505, 0.016] \n", "14 8 [0.424, 0.02] [0.446, 0.016] [0.606, 0.015] \n", "15 9 [0.268, 0.02] [0.539, 0.016] [0.473, 0.016] \n", "\n", " same_output_rate \n", "0 [0.698, 0.015] \n", "1 [0.595, 0.016] \n", "2 [0.606, 0.015] \n", "3 [0.634, 0.015] \n", "4 [0.64, 0.015] \n", "5 [0.679, 0.015] \n", "6 [0.688, 0.015] \n", "7 [0.681, 0.015] \n", "8 [0.614, 0.015] \n", "9 [0.55, 0.016] \n", "10 [0.574, 0.016] \n", "11 [0.705, 0.014] \n", "12 [0.565, 0.016] \n", "13 [0.625, 0.015] \n", "14 [0.646, 0.015] \n", "15 [0.68, 0.015] \n", "Best score for prompt 1 is 0.684\n", "Scores for prompt engineering on the val set for llama-3-8b\n", " prompt_index sep_metric prompt_in_data_asr probe_in_instruct_asr \\\n", "0 0 [0.729, 0.022] [0.175, 0.012] [0.414, 0.016] \n", "1 1 [0.854, 0.024] [0.068, 0.008] [0.219, 0.013] \n", "2 10 [0.712, 0.026] [0.166, 0.012] [0.306, 0.015] \n", "3 11 [0.721, 0.032] [0.167, 0.012] [0.197, 0.013] \n", "4 12 [0.7, 0.03] [0.212, 0.013] [0.233, 0.013] \n", "5 13 [0.683, 0.023] [0.195, 0.013] [0.394, 0.015] \n", "6 14 [0.529, 0.035] [0.355, 0.015] [0.206, 0.013] \n", "7 15 [0.579, 0.026] [0.306, 0.015] [0.373, 0.015] \n", "8 2 [0.742, 0.023] [0.145, 0.011] [0.36, 0.015] \n", "9 3 [0.815, 0.023] [0.111, 0.01] [0.292, 0.014] \n", "10 4 [0.801, 0.023] [0.126, 0.01] [0.312, 0.015] \n", "11 5 [0.771, 0.021] [0.12, 0.01] [0.414, 0.016] \n", "12 6 [0.772, 0.033] [0.099, 0.009] [0.158, 0.012] \n", "13 7 [0.814, 0.06] [0.164, 0.012] [0.043, 0.006] \n", "14 8 [0.689, 0.042] [0.142, 0.011] [0.122, 0.01] \n", "15 9 [0.523, 0.034] [0.325, 0.015] [0.218, 0.013] \n", "\n", " same_output_rate \n", "0 [0.635, 0.015] \n", "1 [0.777, 0.013] \n", "2 [0.704, 0.014] \n", "3 [0.746, 0.014] \n", "4 [0.695, 0.015] \n", "5 [0.661, 0.015] \n", "6 [0.633, 0.015] \n", "7 [0.635, 0.015] \n", "8 [0.681, 0.015] \n", "9 [0.705, 0.014] \n", "10 [0.686, 0.015] \n", "11 [0.656, 0.015] \n", "12 [0.815, 0.012] \n", "13 [0.809, 0.012] \n", "14 [0.812, 0.012] \n", "15 [0.665, 0.015] \n", "Best score for prompt 1 is 0.854\n", "Scores for prompt engineering on the val set for llama-2-7b\n", " prompt_index sep_metric prompt_in_data_asr probe_in_instruct_asr \\\n", "0 0 [0.839, 0.015] [0.112, 0.01] [0.621, 0.015] \n", "1 1 [0.84, 0.017] [0.108, 0.01] [0.451, 0.016] \n", "2 10 [0.834, 0.017] [0.109, 0.01] [0.494, 0.016] \n", "3 11 [0.708, 0.018] [0.233, 0.013] [0.64, 0.015] \n", "4 12 [0.73, 0.018] [0.2, 0.013] [0.6, 0.015] \n", "5 13 [0.881, 0.013] [0.093, 0.009] [0.636, 0.015] \n", "6 14 [0.719, 0.018] [0.227, 0.013] [0.64, 0.015] \n", "7 15 [0.668, 0.021] [0.234, 0.013] [0.521, 0.016] \n", "8 2 [0.81, 0.016] [0.126, 0.01] [0.58, 0.016] \n", "9 3 [0.81, 0.018] [0.124, 0.01] [0.468, 0.016] \n", "10 4 [0.809, 0.017] [0.126, 0.01] [0.53, 0.016] \n", "11 5 [0.777, 0.015] [0.17, 0.012] [0.725, 0.014] \n", "12 6 [0.804, 0.016] [0.144, 0.011] [0.657, 0.015] \n", "13 7 [0.788, 0.021] [0.135, 0.011] [0.382, 0.015] \n", "14 8 [0.783, 0.017] [0.16, 0.012] [0.621, 0.015] \n", "15 9 [0.555, 0.021] [0.339, 0.015] [0.573, 0.016] \n", "\n", " same_output_rate \n", "0 [0.467, 0.016] \n", "1 [0.585, 0.016] \n", "2 [0.561, 0.016] \n", "3 [0.501, 0.016] \n", "4 [0.524, 0.016] \n", "5 [0.423, 0.016] \n", "6 [0.493, 0.016] \n", "7 [0.591, 0.016] \n", "8 [0.514, 0.016] \n", "9 [0.586, 0.016] \n", "10 [0.546, 0.016] \n", "11 [0.429, 0.016] \n", "12 [0.457, 0.016] \n", "13 [0.645, 0.015] \n", "14 [0.489, 0.016] \n", "15 [0.598, 0.016] \n", "Best score for prompt 13 is 0.881\n", "Scores for prompt engineering on the val set for starling\n", " prompt_index sep_metric prompt_in_data_asr probe_in_instruct_asr \\\n", "0 0 [0.206, 0.014] [0.692, 0.015] [0.809, 0.012] \n", "1 1 [0.727, 0.017] [0.225, 0.013] [0.674, 0.015] \n", "2 10 [0.414, 0.019] [0.48, 0.016] [0.676, 0.015] \n", "3 11 [0.258, 0.016] [0.618, 0.015] [0.74, 0.014] \n", "4 12 [0.413, 0.018] [0.495, 0.016] [0.767, 0.013] \n", "5 13 [0.463, 0.018] [0.45, 0.016] [0.771, 0.013] \n", "6 14 [0.217, 0.015] [0.648, 0.015] [0.738, 0.014] \n", "7 15 [0.277, 0.017] [0.589, 0.016] [0.705, 0.014] \n", "8 2 [0.4, 0.019] [0.503, 0.016] [0.645, 0.015] \n", "9 3 [0.335, 0.017] [0.565, 0.016] [0.788, 0.013] \n", "10 4 [0.606, 0.018] [0.336, 0.015] [0.753, 0.014] \n", "11 5 [0.312, 0.016] [0.592, 0.016] [0.811, 0.012] \n", "12 6 [0.329, 0.018] [0.556, 0.016] [0.705, 0.014] \n", "13 7 [0.459, 0.02] [0.46, 0.016] [0.601, 0.015] \n", "14 8 [0.293, 0.016] [0.596, 0.016] [0.765, 0.013] \n", "15 9 [0.154, 0.013] [0.732, 0.014] [0.749, 0.014] \n", "\n", " same_output_rate \n", "0 [0.783, 0.013] \n", "1 [0.469, 0.016] \n", "2 [0.636, 0.015] \n", "3 [0.74, 0.014] \n", "4 [0.638, 0.015] \n", "5 [0.607, 0.015] \n", "6 [0.77, 0.013] \n", "7 [0.726, 0.014] \n", "8 [0.626, 0.015] \n", "9 [0.695, 0.015] \n", "10 [0.505, 0.016] \n", "11 [0.713, 0.014] \n", "12 [0.685, 0.015] \n", "13 [0.589, 0.016] \n", "14 [0.721, 0.014] \n", "15 [0.787, 0.013] \n", "Best score for prompt 1 is 0.727\n", "Scores for prompt engineering on the val set for zephyr\n", " prompt_index sep_metric prompt_in_data_asr probe_in_instruct_asr \\\n", "0 0 [0.568, 0.033] [0.211, 0.013] [0.22, 0.013] \n", "1 1 [0.622, 0.049] [0.221, 0.013] [0.098, 0.009] \n", "2 10 [0.739, 0.04] [0.118, 0.01] [0.119, 0.01] \n", "3 11 [0.373, 0.048] [0.43, 0.016] [0.102, 0.01] \n", "4 12 [0.307, 0.054] [0.287, 0.014] [0.075, 0.008] \n", "5 13 [0.565, 0.037] [0.292, 0.014] [0.184, 0.012] \n", "6 14 [0.472, 0.069] [0.38, 0.015] [0.053, 0.007] \n", "7 15 [0.257, 0.075] [0.425, 0.016] [0.035, 0.006] \n", "8 2 [0.656, 0.038] [0.164, 0.012] [0.157, 0.012] \n", "9 3 [0.708, 0.033] [0.165, 0.012] [0.195, 0.013] \n", "10 4 [0.655, 0.034] [0.154, 0.011] [0.2, 0.013] \n", "11 5 [0.766, 0.018] [0.191, 0.012] [0.555, 0.016] \n", "12 6 [0.525, 0.05] [0.325, 0.015] [0.101, 0.01] \n", "13 7 [0.465, 0.077] [0.328, 0.015] [0.043, 0.006] \n", "14 8 [0.433, 0.045] [0.262, 0.014] [0.12, 0.01] \n", "15 9 [0.477, 0.038] [0.433, 0.016] [0.176, 0.012] \n", "\n", " same_output_rate \n", "0 [0.759, 0.014] \n", "1 [0.755, 0.014] \n", "2 [0.825, 0.012] \n", "3 [0.596, 0.016] \n", "4 [0.742, 0.014] \n", "5 [0.684, 0.015] \n", "6 [0.623, 0.015] \n", "7 [0.592, 0.016] \n", "8 [0.787, 0.013] \n", "9 [0.754, 0.014] \n", "10 [0.784, 0.013] \n", "11 [0.514, 0.016] \n", "12 [0.67, 0.015] \n", "13 [0.675, 0.015] \n", "14 [0.754, 0.014] \n", "15 [0.575, 0.016] \n", "Best score for prompt 5 is 0.766\n", "Scores for prompt engineering on the val set for gpt-3.5\n", " prompt_index sep_metric prompt_in_data_asr probe_in_instruct_asr \\\n", "0 0 [0.719, 0.019] [0.214, 0.013] [0.534, 0.016] \n", "1 1 [0.97, 0.007] [0.021, 0.005] [0.564, 0.016] \n", "2 10 [0.919, 0.011] [0.061, 0.008] [0.643, 0.015] \n", "3 11 [0.525, 0.025] [0.365, 0.015] [0.396, 0.015] \n", "4 12 [0.749, 0.02] [0.176, 0.012] [0.47, 0.016] \n", "5 13 [0.909, 0.011] [0.069, 0.008] [0.647, 0.015] \n", "6 14 [0.763, 0.028] [0.142, 0.011] [0.228, 0.013] \n", "7 15 [0.645, 0.023] [0.267, 0.014] [0.445, 0.016] \n", "8 2 [0.871, 0.013] [0.105, 0.01] [0.682, 0.015] \n", "9 3 [0.932, 0.01] [0.049, 0.007] [0.649, 0.015] \n", "10 4 [0.877, 0.016] [0.073, 0.008] [0.416, 0.016] \n", "11 5 [0.907, 0.012] [0.068, 0.008] [0.621, 0.015] \n", "12 6 [0.91, 0.014] [0.072, 0.008] [0.422, 0.016] \n", "13 7 [0.718, 0.023] [0.199, 0.013] [0.372, 0.015] \n", "14 8 [0.883, 0.015] [0.074, 0.008] [0.461, 0.016] \n", "15 9 [0.566, 0.027] [0.34, 0.015] [0.339, 0.015] \n", "\n", " same_output_rate \n", "0 [0.552, 0.016] \n", "1 [0.449, 0.016] \n", "2 [0.4, 0.015] \n", "3 [0.615, 0.015] \n", "4 [0.59, 0.016] \n", "5 [0.402, 0.016] \n", "6 [0.738, 0.014] \n", "7 [0.604, 0.015] \n", "8 [0.389, 0.015] \n", "9 [0.39, 0.015] \n", "10 [0.613, 0.015] \n", "11 [0.427, 0.016] \n", "12 [0.582, 0.016] \n", "13 [0.639, 0.015] \n", "14 [0.573, 0.016] \n", "15 [0.615, 0.015] \n", "Best score for prompt 1 is 0.97\n", "Scores for prompt engineering on the val set for gpt-4\n", " prompt_index sep_metric prompt_in_data_asr probe_in_instruct_asr \\\n", "0 0 [0.482, 0.024] [0.389, 0.015] [0.45, 0.016] \n", "1 1 [0.947, 0.008] [0.042, 0.006] [0.742, 0.014] \n", "2 10 [0.802, 0.015] [0.18, 0.012] [0.737, 0.014] \n", "3 11 [0.598, 0.02] [0.34, 0.015] [0.622, 0.015] \n", "4 12 [0.707, 0.016] [0.254, 0.014] [0.777, 0.013] \n", "5 13 [0.81, 0.014] [0.167, 0.012] [0.825, 0.012] \n", "6 14 [0.2, 0.033] [0.687, 0.015] [0.145, 0.011] \n", "7 15 [0.391, 0.027] [0.493, 0.016] [0.33, 0.015] \n", "8 2 [0.705, 0.02] [0.222, 0.013] [0.526, 0.016] \n", "9 3 [0.925, 0.01] [0.062, 0.008] [0.721, 0.014] \n", "10 4 [0.872, 0.013] [0.112, 0.01] [0.654, 0.015] \n", "11 5 [0.791, 0.014] [0.186, 0.012] [0.807, 0.012] \n", "12 6 [0.852, 0.019] [0.092, 0.009] [0.338, 0.015] \n", "13 7 [0.715, 0.02] [0.232, 0.013] [0.53, 0.016] \n", "14 8 [0.724, 0.017] [0.248, 0.014] [0.674, 0.015] \n", "15 9 [0.472, 0.025] [0.374, 0.015] [0.392, 0.015] \n", "\n", " same_output_rate \n", "0 [0.627, 0.015] \n", "1 [0.294, 0.014] \n", "2 [0.375, 0.015] \n", "3 [0.538, 0.016] \n", "4 [0.425, 0.016] \n", "5 [0.322, 0.015] \n", "6 [0.4, 0.015] \n", "7 [0.579, 0.016] \n", "8 [0.562, 0.016] \n", "9 [0.325, 0.015] \n", "10 [0.402, 0.016] \n", "11 [0.345, 0.015] \n", "12 [0.67, 0.015] \n", "13 [0.54, 0.016] \n", "14 [0.45, 0.016] \n", "15 [0.648, 0.015] \n", "Best score for prompt 1 is 0.947\n" ] } ], "source": [ "for m in models: \n", " print(f\"Scores for prompt engineering on the val set for {m}\")\n", " analyze(\"peng\", m)" ] }, { "cell_type": "markdown", "id": "cf173a04-e986-425c-867b-b36b3a64aaa0", "metadata": {}, "source": [ "### Prompt optimization (validation set) " ] }, { "cell_type": "code", "execution_count": 105, "id": "5e0b25f7-0591-49d3-a907-83c6b3752b22", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Scores for prompt optimization on the val set for gemma2b\n", " prompt_index sep_metric prompt_in_data_asr probe_in_instruct_asr \\\n", "0 0 [0.707, 0.033] [0.093, 0.009] [0.191, 0.012] \n", "1 100 [0.75, 0.029] [0.081, 0.009] [0.22, 0.013] \n", "2 125 [0.752, 0.03] [0.084, 0.009] [0.202, 0.013] \n", "3 150 [0.753, 0.029] [0.082, 0.009] [0.219, 0.013] \n", "4 25 [0.72, 0.032] [0.086, 0.009] [0.193, 0.012] \n", "5 250 [0.768, 0.028] [0.082, 0.009] [0.233, 0.013] \n", "6 375 [0.78, 0.026] [0.082, 0.009] [0.25, 0.014] \n", "7 50 [0.767, 0.029] [0.072, 0.008] [0.21, 0.013] \n", "8 500 [0.761, 0.029] [0.083, 0.009] [0.222, 0.013] \n", "9 625 [0.728, 0.028] [0.107, 0.01] [0.261, 0.014] \n", "10 75 [0.728, 0.029] [0.092, 0.009] [0.232, 0.013] \n", "\n", " same_output_rate \n", "0 [0.828, 0.012] \n", "1 [0.809, 0.012] \n", "2 [0.814, 0.012] \n", "3 [0.807, 0.012] \n", "4 [0.829, 0.012] \n", "5 [0.793, 0.013] \n", "6 [0.778, 0.013] \n", "7 [0.816, 0.012] \n", "8 [0.801, 0.013] \n", "9 [0.774, 0.013] \n", "10 [0.802, 0.013] \n", "Best score for prompt 375 is 0.78\n", "Scores for prompt optimization on the val set for gemma7b\n", " prompt_index sep_metric prompt_in_data_asr probe_in_instruct_asr \\\n", "0 0 [0.728, 0.033] [0.084, 0.009] [0.184, 0.012] \n", "1 100 [0.733, 0.031] [0.087, 0.009] [0.202, 0.013] \n", "2 125 [0.742, 0.033] [0.076, 0.008] [0.178, 0.012] \n", "3 150 [0.757, 0.032] [0.075, 0.008] [0.181, 0.012] \n", "4 25 [0.739, 0.032] [0.079, 0.009] [0.184, 0.012] \n", "5 250 [0.746, 0.03] [0.091, 0.009] [0.205, 0.013] \n", "6 375 [0.737, 0.031] [0.084, 0.009] [0.198, 0.013] \n", "7 50 [0.675, 0.034] [0.102, 0.01] [0.191, 0.012] \n", "8 500 [0.714, 0.031] [0.102, 0.01] [0.213, 0.013] \n", "9 625 [0.728, 0.033] [0.085, 0.009] [0.184, 0.012] \n", "10 75 [0.764, 0.032] [0.076, 0.008] [0.178, 0.012] \n", "\n", " same_output_rate \n", "0 [0.832, 0.012] \n", "1 [0.819, 0.012] \n", "2 [0.838, 0.012] \n", "3 [0.832, 0.012] \n", "4 [0.833, 0.012] \n", "5 [0.808, 0.012] \n", "6 [0.822, 0.012] \n", "7 [0.831, 0.012] \n", "8 [0.807, 0.012] \n", "9 [0.831, 0.012] \n", "10 [0.83, 0.012] \n", "Best score for prompt 75 is 0.764\n", "Scores for prompt optimization on the val set for phi-3\n", " prompt_index sep_metric prompt_in_data_asr probe_in_instruct_asr \\\n", "0 0 [0.225, 0.067] [0.852, 0.011] [0.04, 0.006] \n", "1 100 [0.091, 0.051] [0.834, 0.012] [0.033, 0.006] \n", "2 125 [0.094, 0.052] [0.842, 0.012] [0.032, 0.006] \n", "3 150 [0.147, 0.062] [0.834, 0.012] [0.034, 0.006] \n", "4 25 [0.143, 0.067] [0.85, 0.011] [0.028, 0.005] \n", "5 250 [0.077, 0.043] [0.852, 0.011] [0.039, 0.006] \n", "6 375 [0.135, 0.057] [0.847, 0.011] [0.037, 0.006] \n", "7 50 [0.108, 0.052] [0.831, 0.012] [0.037, 0.006] \n", "8 500 [0.094, 0.052] [0.852, 0.011] [0.032, 0.006] \n", "9 625 [0.067, 0.046] [0.833, 0.012] [0.03, 0.005] \n", "10 75 [0.118, 0.056] [0.846, 0.011] [0.034, 0.006] \n", "\n", " same_output_rate \n", "0 [0.17, 0.012] \n", "1 [0.193, 0.012] \n", "2 [0.184, 0.012] \n", "3 [0.19, 0.012] \n", "4 [0.17, 0.012] \n", "5 [0.181, 0.012] \n", "6 [0.18, 0.012] \n", "7 [0.198, 0.013] \n", "8 [0.174, 0.012] \n", "9 [0.193, 0.012] \n", "10 [0.18, 0.012] \n", "Best score for prompt 0 is 0.225\n", "Scores for prompt optimization on the val set for llama-3-8b\n", " prompt_index sep_metric prompt_in_data_asr probe_in_instruct_asr \\\n", "0 0 [0.701, 0.022] [0.181, 0.012] [0.428, 0.016] \n", "1 100 [0.803, 0.019] [0.122, 0.01] [0.462, 0.016] \n", "2 125 [0.783, 0.018] [0.135, 0.011] [0.502, 0.016] \n", "3 150 [0.802, 0.018] [0.112, 0.01] [0.486, 0.016] \n", "4 25 [nan, nan] [nan, nan] [nan, nan] \n", "5 250 [0.827, 0.017] [0.107, 0.01] [0.504, 0.016] \n", "6 375 [0.809, 0.018] [0.111, 0.01] [0.467, 0.016] \n", "7 50 [0.809, 0.018] [0.122, 0.01] [0.472, 0.016] \n", "8 500 [0.793, 0.019] [0.119, 0.01] [0.454, 0.016] \n", "9 625 [0.789, 0.019] [0.127, 0.011] [0.474, 0.016] \n", "10 75 [0.805, 0.017] [0.117, 0.01] [0.518, 0.016] \n", "\n", " same_output_rate \n", "0 [0.647, 0.015] \n", "1 [0.598, 0.016] \n", "2 [0.581, 0.016] \n", "3 [0.594, 0.016] \n", "4 [nan, nan] \n", "5 [0.563, 0.016] \n", "6 [0.6, 0.015] \n", "7 [0.586, 0.016] \n", "8 [0.615, 0.015] \n", "9 [0.599, 0.016] \n", "10 [0.567, 0.016] \n", "Best score for prompt 25 is nan\n", "Scores for prompt optimization on the val set for llama-2-7b\n", " prompt_index sep_metric prompt_in_data_asr probe_in_instruct_asr \\\n", "0 0 [0.839, 0.015] [0.112, 0.01] [0.621, 0.015] \n", "1 100 [0.863, 0.014] [0.1, 0.009] [0.635, 0.015] \n", "2 150 [0.859, 0.014] [0.101, 0.01] [0.632, 0.015] \n", "3 25 [0.84, 0.015] [0.112, 0.01] [0.638, 0.015] \n", "4 250 [0.858, 0.014] [0.097, 0.009] [0.65, 0.015] \n", "5 350 [0.862, 0.013] [0.099, 0.009] [0.659, 0.015] \n", "6 50 [0.862, 0.014] [0.097, 0.009] [0.629, 0.015] \n", "7 500 [0.845, 0.014] [0.105, 0.01] [0.653, 0.015] \n", "8 625 [0.842, 0.014] [0.114, 0.01] [0.666, 0.015] \n", "\n", " same_output_rate \n", "0 [0.467, 0.016] \n", "1 [0.439, 0.016] \n", "2 [0.445, 0.016] \n", "3 [0.454, 0.016] \n", "4 [0.437, 0.016] \n", "5 [0.424, 0.016] \n", "6 [0.448, 0.016] \n", "7 [0.444, 0.016] \n", "8 [0.43, 0.016] \n", "Best score for prompt 100 is 0.863\n", "Scores for prompt optimization on the val set for starling\n", " prompt_index sep_metric prompt_in_data_asr probe_in_instruct_asr \\\n", "0 0 [0.206, 0.014] [0.692, 0.015] [0.809, 0.012] \n", "1 100 [0.232, 0.015] [0.677, 0.015] [0.842, 0.012] \n", "2 125 [0.202, 0.014] [0.706, 0.014] [0.836, 0.012] \n", "3 150 [0.223, 0.014] [0.689, 0.015] [0.846, 0.011] \n", "4 25 [0.219, 0.014] [0.676, 0.015] [0.818, 0.012] \n", "5 250 [0.231, 0.015] [0.672, 0.015] [0.826, 0.012] \n", "6 375 [0.191, 0.014] [0.701, 0.014] [0.824, 0.012] \n", "7 50 [0.218, 0.014] [0.681, 0.015] [0.826, 0.012] \n", "8 500 [0.198, 0.014] [0.693, 0.015] [0.823, 0.012] \n", "9 625 [0.19, 0.014] [0.712, 0.014] [0.839, 0.012] \n", "10 75 [0.223, 0.014] [0.689, 0.015] [0.84, 0.012] \n", "\n", " same_output_rate \n", "0 [0.783, 0.013] \n", "1 [0.775, 0.013] \n", "2 [0.792, 0.013] \n", "3 [0.779, 0.013] \n", "4 [0.784, 0.013] \n", "5 [0.772, 0.013] \n", "6 [0.809, 0.012] \n", "7 [0.785, 0.013] \n", "8 [0.804, 0.013] \n", "9 [0.809, 0.012] \n", "10 [0.777, 0.013] \n", "Best score for prompt 100 is 0.232\n", "Scores for prompt optimization on the val set for zephyr\n", " prompt_index sep_metric prompt_in_data_asr probe_in_instruct_asr \\\n", "0 0 [0.548, 0.034] [0.213, 0.013] [0.217, 0.013] \n", "1 100 [0.74, 0.023] [0.184, 0.012] [0.354, 0.015] \n", "2 125 [0.803, 0.021] [0.135, 0.011] [0.35, 0.015] \n", "3 150 [0.777, 0.022] [0.152, 0.011] [0.358, 0.015] \n", "4 25 [0.764, 0.022] [0.147, 0.011] [0.373, 0.015] \n", "5 250 [0.791, 0.019] [0.145, 0.011] [0.46, 0.016] \n", "6 375 [0.746, 0.021] [0.166, 0.012] [0.417, 0.016] \n", "7 50 [0.757, 0.025] [0.136, 0.011] [0.288, 0.014] \n", "8 500 [0.769, 0.022] [0.153, 0.011] [0.373, 0.015] \n", "9 625 [0.775, 0.022] [0.141, 0.011] [0.356, 0.015] \n", "10 75 [0.757, 0.022] [0.162, 0.012] [0.387, 0.015] \n", "\n", " same_output_rate \n", "0 [0.766, 0.013] \n", "1 [0.646, 0.015] \n", "2 [0.653, 0.015] \n", "3 [0.65, 0.015] \n", "4 [0.656, 0.015] \n", "5 [0.587, 0.016] \n", "6 [0.629, 0.015] \n", "7 [0.716, 0.014] \n", "8 [0.646, 0.015] \n", "9 [0.663, 0.015] \n", "10 [0.639, 0.015] \n", "Best score for prompt 125 is 0.803\n" ] } ], "source": [ "for m in models[:7]: \n", " print(f\"Scores for prompt optimization on the val set for {m}\")\n", " analyze(\"rpo\", m)" ] }, { "cell_type": "markdown", "id": "2453bae6-91c5-49eb-8c8d-dfe0246d2455", "metadata": {}, "source": [ "### Fine-tuning (validation set)" ] }, { "cell_type": "code", "execution_count": 109, "id": "d3ce6268-74ab-4886-aa4e-4779576e89ad", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Scores for prompt optimization on the val set for gemma2b\n", " prompt_index sep_metric \\\n", "0 ft_gemma-1.1-2b-it-sep-fft-lr0.00001-ep3-20354 [0.933, 0.016] \n", "1 ft_gemma-1.1-2b-it-sep-fft-lr0.00002-ep3-24335 [0.796, 0.027] \n", "2 ft_gemma-1.1-2b-it-sep-lora-lr0.0001-ep3-11901 [0.964, 0.015] \n", "3 ft_gemma-1.1-2b-it-sep-lora-lr0.0002-ep3-15586 [0.924, 0.02] \n", "\n", " prompt_in_data_asr probe_in_instruct_asr same_output_rate \n", "0 [0.036, 0.006] [0.239, 0.013] [0.757, 0.014] \n", "1 [0.066, 0.008] [0.225, 0.013] [0.801, 0.013] \n", "2 [0.019, 0.004] [0.166, 0.012] [0.827, 0.012] \n", "3 [0.034, 0.006] [0.172, 0.012] [0.82, 0.012] \n", "Best score for prompt ft_gemma-1.1-2b-it-sep-lora-lr0.0001-ep3-11901 is 0.964\n", "Scores for prompt optimization on the val set for gemma7b\n", " prompt_index sep_metric \\\n", "0 ft_gemma-1.1-7b-it-sep-fft-lr0.00001-ep3-30523 [0.757, 0.037] \n", "1 ft_gemma-1.1-7b-it-sep-fft-lr0.00002-ep3-24158 [0.837, 0.057] \n", "2 ft_gemma-1.1-7b-it-sep-fft-lr0.00003-ep3-631 [0.738, 0.057] \n", "3 ft_gemma-1.1-7b-it-sep-lora-lr0.0001-ep3-28635 [0.818, 0.034] \n", "4 ft_gemma-1.1-7b-it-sep-lora-lr0.0003-ep3-15647 [0.876, 0.032] \n", "\n", " prompt_in_data_asr probe_in_instruct_asr same_output_rate \n", "0 [0.049, 0.007] [0.136, 0.011] [0.881, 0.01] \n", "1 [0.023, 0.005] [0.043, 0.006] [0.948, 0.007] \n", "2 [0.034, 0.006] [0.061, 0.008] [0.937, 0.008] \n", "3 [0.044, 0.006] [0.132, 0.011] [0.872, 0.011] \n", "4 [0.027, 0.005] [0.105, 0.01] [0.894, 0.01] \n", "Best score for prompt ft_gemma-1.1-7b-it-sep-lora-lr0.0003-ep3-15647 is 0.876\n", "Scores for prompt optimization on the val set for phi-3\n", " prompt_index sep_metric \\\n", "0 ft_Phi-3-mini-4k-instruct-sep-fft-lr0.00001-ep... [0.227, 0.091] \n", "1 ft_Phi-3-mini-4k-instruct-sep-fft-lr0.00002-ep... [0.167, 0.09] \n", "2 ft_Phi-3-mini-4k-instruct-sep-fft-lr0.00003-ep... [0.059, 0.059] \n", "3 ft_Phi-3-mini-4k-instruct-sep-fft-lr0.00003-ep... [0.364, 0.105] \n", "4 ft_Phi-3-mini-4k-instruct-sep-lora-lr0.0001-ep... [0.125, 0.085] \n", "5 ft_Phi-3-mini-4k-instruct-sep-lora-lr0.0001-ep... [0.091, 0.091] \n", "6 ft_Phi-3-mini-4k-instruct-sep-lora-lr0.0002-ep... [0.15, 0.082] \n", "7 ft_Phi-3-mini-4k-instruct-sep-lora-lr0.0002-ep... [0.158, 0.086] \n", "8 ft_Phi-3-mini-4k-instruct-sep-lora-lr0.0003-ep... [0.167, 0.09] \n", "9 ft_Phi-3-mini-4k-instruct-sep-lora-lr0.0003-ep... [0.263, 0.104] \n", "\n", " prompt_in_data_asr probe_in_instruct_asr same_output_rate \n", "0 [0.59, 0.016] [0.022, 0.005] [0.422, 0.016] \n", "1 [0.457, 0.016] [0.018, 0.004] [0.555, 0.016] \n", "2 [0.38, 0.015] [0.017, 0.004] [0.635, 0.015] \n", "3 [0.379, 0.015] [0.022, 0.005] [0.627, 0.015] \n", "4 [0.344, 0.015] [0.016, 0.004] [0.668, 0.015] \n", "5 [0.351, 0.019] [0.017, 0.005] [0.663, 0.019] \n", "6 [0.31, 0.015] [0.02, 0.004] [0.704, 0.014] \n", "7 [0.303, 0.015] [0.019, 0.004] [0.71, 0.014] \n", "8 [0.203, 0.013] [0.018, 0.004] [0.809, 0.012] \n", "9 [0.207, 0.013] [0.019, 0.004] [0.802, 0.013] \n", "Best score for prompt ft_Phi-3-mini-4k-instruct-sep-fft-lr0.00003-ep3-6470 is 0.364\n", "Scores for prompt optimization on the val set for llama-3-8b\n", " prompt_index sep_metric \\\n", "0 ft_llama3_8b-sep-full-lr0.00001-ep3-25935 [0.976, 0.007] \n", "1 ft_llama3_8b-sep-full-lr0.00002-ep2-4998 [0.964, 0.01] \n", "2 ft_llama3_8b-sep-full-lr0.00003-ep3-10284 [0.975, 0.01] \n", "3 ft_llama3_8b-sep-lora-lr0.0001-ep3-12469 [0.979, 0.007] \n", "4 ft_llama3_8b-sep-lora-lr0.0002-ep3-11610 [0.971, 0.011] \n", "5 ft_llama3_8b-sep-lora-lr0.0003-ep3-8189 [0.961, 0.014] \n", "6 ft_llama3_8b-sep-qlora-3162 [0.968, 0.009] \n", "7 ft_llama3_8b-sep-qlora-lr0.0001-ep3-32046 [0.97, 0.009] \n", "8 ft_llama3_8b-sep-qlora-lr0.0002-ep3-24954 [0.948, 0.014] \n", "9 ft_llama3_8b-sep-qlora-lr0.0003-ep3-4945 [0.962, 0.014] \n", "\n", " prompt_in_data_asr probe_in_instruct_asr same_output_rate \n", "0 [0.013, 0.004] [0.543, 0.016] [0.47, 0.016] \n", "1 [0.017, 0.004] [0.357, 0.015] [0.652, 0.015] \n", "2 [0.009, 0.003] [0.242, 0.014] [0.761, 0.013] \n", "3 [0.012, 0.003] [0.431, 0.016] [0.575, 0.016] \n", "4 [0.017, 0.004] [0.245, 0.014] [0.752, 0.014] \n", "5 [0.016, 0.004] [0.181, 0.012] [0.817, 0.012] \n", "6 [0.015, 0.004] [0.347, 0.015] [0.66, 0.015] \n", "7 [0.012, 0.003] [0.366, 0.015] [0.644, 0.015] \n", "8 [0.016, 0.004] [0.268, 0.014] [0.744, 0.014] \n", "9 [0.016, 0.004] [0.186, 0.012] [0.812, 0.012] \n", "Best score for prompt ft_llama3_8b-sep-lora-lr0.0001-ep3-12469 is 0.979\n", "Scores for prompt optimization on the val set for llama-2-7b\n", " prompt_index sep_metric \\\n", "0 ft_Llama-2-7b-chat-hf-sep-fft-lr0.00002-ep3-1977 [0.975, 0.007] \n", "1 ft_Llama-2-7b-chat-hf-sep-fft-lr0.00002-ep3-22278 [0.971, 0.008] \n", "2 ft_Llama-2-7b-chat-hf-sep-lora-lr0.0002-ep3-31473 [0.974, 0.008] \n", "3 ft_Llama-2-7b-chat-hf-sep-lora-lr0.0002-ep3-31610 [0.967, 0.008] \n", "\n", " prompt_in_data_asr probe_in_instruct_asr same_output_rate \n", "0 [0.018, 0.004] [0.48, 0.016] [0.526, 0.016] \n", "1 [0.02, 0.004] [0.489, 0.016] [0.519, 0.016] \n", "2 [0.015, 0.004] [0.387, 0.015] [0.618, 0.015] \n", "3 [0.021, 0.005] [0.457, 0.016] [0.552, 0.016] \n", "Best score for prompt ft_Llama-2-7b-chat-hf-sep-fft-lr0.00002-ep3-1977 is 0.975\n", "Scores for prompt optimization on the val set for starling\n", " prompt_index sep_metric \\\n", "0 ft_Starling-LM-7B-beta-sep-fft-lr0.00001-ep3-4643 [0.963, 0.008] \n", "1 ft_Starling-LM-7B-beta-sep-fft-lr0.00002-ep3-4848 [0.921, 0.017] \n", "2 ft_Starling-LM-7B-beta-sep-fft-lr0.00003-ep3-2... [0.812, 0.04] \n", "3 ft_Starling-LM-7B-beta-sep-lora-lr0.0001-ep3-3... [0.953, 0.008] \n", "4 ft_Starling-LM-7B-beta-sep-lora-lr0.0002-ep3-1328 [0.941, 0.011] \n", "5 ft_Starling-LM-7B-beta-sep-lora-lr0.0003-ep3-2... [0.883, 0.023] \n", "\n", " prompt_in_data_asr probe_in_instruct_asr same_output_rate \n", "0 [0.031, 0.005] [0.534, 0.016] [0.475, 0.016] \n", "1 [0.03, 0.005] [0.242, 0.014] [0.766, 0.013] \n", "2 [0.028, 0.005] [0.096, 0.009] [0.912, 0.009] \n", "3 [0.032, 0.006] [0.636, 0.015] [0.392, 0.015] \n", "4 [0.036, 0.006] [0.443, 0.016] [0.573, 0.016] \n", "5 [0.031, 0.005] [0.205, 0.013] [0.812, 0.012] \n", "Best score for prompt ft_Starling-LM-7B-beta-sep-fft-lr0.00001-ep3-4643 is 0.963\n", "Scores for prompt optimization on the val set for zephyr\n", " prompt_index sep_metric \\\n", "0 ft_zephyr-7b-beta-sep-fft-lr0.00001-ep3-23879 [0.954, 0.014] \n", "1 ft_zephyr-7b-beta-sep-fft-lr0.00002-ep3-27949 [0.88, 0.033] \n", "2 ft_zephyr-7b-beta-sep-lora-lr0.0001-ep3-1001 [0.932, 0.017] \n", "3 ft_zephyr-7b-beta-sep-lora-lr0.0002-ep3-9577 [0.893, 0.028] \n", "4 ft_zephyr-7b-beta-sep-lora-lr0.0003-ep3-14928 [0.797, 0.051] \n", "\n", " prompt_in_data_asr probe_in_instruct_asr same_output_rate \n", "0 [0.02, 0.004] [0.24, 0.014] [0.762, 0.013] \n", "1 [0.022, 0.005] [0.1, 0.009] [0.902, 0.009] \n", "2 [0.02, 0.004] [0.207, 0.013] [0.801, 0.013] \n", "3 [0.021, 0.005] [0.121, 0.01] [0.884, 0.01] \n", "4 [0.025, 0.005] [0.064, 0.008] [0.937, 0.008] \n", "Best score for prompt ft_zephyr-7b-beta-sep-fft-lr0.00001-ep3-23879 is 0.954\n" ] } ], "source": [ "for m in models[:7]: \n", " print(f\"Scores for prompt optimization on the val set for {m}\")\n", " analyze(\"ft\", m)" ] }, { "cell_type": "markdown", "id": "56467e81-2e0b-4554-a08a-150b8c1ebdc4", "metadata": {}, "source": [ "### Evaluation on SEP dataset (paper results)" ] }, { "cell_type": "code", "execution_count": 110, "id": "33a3ed41-875c-41f6-983d-d529d3d1d086", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Scores on the SEP dataset for gemma2b\n", " prompt_index sep_metric \\\n", "0 0 [0.732, 0.008] \n", "1 10 [0.924, 0.007] \n", "2 ft_gemma-1.1-2b-it-sep-lora-lr0.0001-ep3-11901 [0.872, 0.014] \n", "3 rpo_375 [0.705, 0.008] \n", "\n", " prompt_in_data_asr probe_in_instruct_asr same_output_rate \n", "0 [0.149, 0.004] [0.367, 0.005] [0.681, 0.005] \n", "1 [0.028, 0.002] [0.153, 0.004] [0.843, 0.004] \n", "2 [0.014, 0.001] [0.062, 0.003] [0.94, 0.002] \n", "3 [0.169, 0.004] [0.386, 0.005] [0.672, 0.005] \n", "Best score for prompt 10 is 0.924\n", "Scores on the SEP dataset for gemma7b\n", " prompt_index sep_metric \\\n", "0 0 [0.569, 0.008] \n", "1 6 [0.527, 0.007] \n", "2 ft_gemma-1.1-7b-it-sep-lora-lr0.0003-ep3-15647 [0.773, 0.019] \n", "3 rpo_75 [0.641, 0.008] \n", "\n", " prompt_in_data_asr probe_in_instruct_asr same_output_rate \n", "0 [0.285, 0.005] [0.467, 0.005] [0.651, 0.005] \n", "1 [0.349, 0.005] [0.561, 0.005] [0.621, 0.005] \n", "2 [0.032, 0.002] [0.083, 0.004] [0.922, 0.003] \n", "3 [0.211, 0.004] [0.421, 0.005] [0.671, 0.005] \n", "Best score for prompt ft_gemma-1.1-7b-it-sep-lora-lr0.0003-ep3-15647 is 0.773\n", "Scores on the SEP dataset for phi-3\n", " prompt_index sep_metric \\\n", "0 0 [0.133, 0.004] \n", "1 1 [0.308, 0.004] \n", "2 ft_Phi-3-mini-4k-instruct-sep-fft-lr0.00003-ep... [0.277, 0.038] \n", "\n", " prompt_in_data_asr probe_in_instruct_asr same_output_rate \n", "0 [0.822, 0.004] [0.848, 0.004] [0.801, 0.004] \n", "1 [0.65, 0.004] [0.862, 0.003] [0.681, 0.003] \n", "2 [0.34, 0.005] [0.015, 0.001] [0.666, 0.005] \n", "Best score for prompt 1 is 0.308\n", "Scores on the SEP dataset for llama-3-8b\n", " prompt_index sep_metric \\\n", "0 0 [0.308, 0.005] \n", "1 1 [0.498, 0.006] \n", "2 ft_llama3_8b-sep-lora-lr0.0001-ep3-12469 [0.955, 0.004] \n", "3 rpo_250 [0.467, 0.006] \n", "\n", " prompt_in_data_asr probe_in_instruct_asr same_output_rate \n", "0 [0.678, 0.005] [0.86, 0.004] [0.653, 0.005] \n", "1 [0.424, 0.005] [0.74, 0.005] [0.578, 0.005] \n", "2 [0.018, 0.001] [0.255, 0.005] [0.751, 0.005] \n", "3 [0.52, 0.005] [0.877, 0.003] [0.539, 0.005] \n", "Best score for prompt ft_llama3_8b-sep-lora-lr0.0001-ep3-12469 is 0.955\n", "Scores on the SEP dataset for llama-2-7b\n", " prompt_index sep_metric \\\n", "0 0 [0.443, 0.004] \n", "1 13 [0.626, 0.007] \n", "2 ft_Llama-2-7b-chat-hf-sep-fft-lr0.00002-ep3-1977 [0.963, 0.003] \n", "3 rpo_350 [0.568, 0.006] \n", "\n", " prompt_in_data_asr probe_in_instruct_asr same_output_rate \n", "0 [0.523, 0.004] [0.833, 0.003] [0.572, 0.004] \n", "1 [0.321, 0.005] [0.597, 0.005] [0.529, 0.005] \n", "2 [0.018, 0.001] [0.333, 0.005] [0.674, 0.005] \n", "3 [0.4, 0.005] [0.84, 0.004] [0.485, 0.005] \n", "Best score for prompt ft_Llama-2-7b-chat-hf-sep-fft-lr0.00002-ep3-1977 is 0.963\n", "Scores on the SEP dataset for starling\n", " prompt_index sep_metric \\\n", "0 0 [0.14, 0.004] \n", "1 1 [0.393, 0.005] \n", "2 ft_Starling-LM-7B-beta-sep-fft-lr0.00001-ep3-4643 [0.952, 0.003] \n", "3 rpo_100 [0.171, 0.004] \n", "\n", " prompt_in_data_asr probe_in_instruct_asr same_output_rate \n", "0 [0.814, 0.004] [0.869, 0.004] [0.812, 0.004] \n", "1 [0.58, 0.005] [0.91, 0.003] [0.614, 0.005] \n", "2 [0.023, 0.002] [0.414, 0.005] [0.602, 0.005] \n", "3 [0.782, 0.004] [0.881, 0.003] [0.799, 0.004] \n", "Best score for prompt ft_Starling-LM-7B-beta-sep-fft-lr0.00001-ep3-4643 is 0.952\n", "Scores on the SEP dataset for zephyr\n", " prompt_index sep_metric \\\n", "0 0 [0.3, 0.007] \n", "1 5 [0.363, 0.006] \n", "2 ft_zephyr-7b-beta-sep-fft-lr0.00001-ep3-23879 [0.937, 0.006] \n", "3 rpo_125 [0.442, 0.006] \n", "\n", " prompt_in_data_asr probe_in_instruct_asr same_output_rate \n", "0 [0.625, 0.005] [0.504, 0.005] [0.577, 0.005] \n", "1 [0.57, 0.005] [0.631, 0.005] [0.603, 0.005] \n", "2 [0.017, 0.001] [0.181, 0.004] [0.825, 0.004] \n", "3 [0.489, 0.005] [0.642, 0.005] [0.585, 0.005] \n", "Best score for prompt ft_zephyr-7b-beta-sep-fft-lr0.00001-ep3-23879 is 0.937\n", "Scores on the SEP dataset for gpt-3.5\n", " prompt_index sep_metric prompt_in_data_asr probe_in_instruct_asr \\\n", "0 0 [0.566, 0.006] [0.401, 0.005] [0.792, 0.004] \n", "1 1 [0.895, 0.004] [0.097, 0.003] [0.832, 0.004] \n", "\n", " same_output_rate \n", "0 [0.495, 0.005] \n", "1 [0.246, 0.004] \n", "Best score for prompt 1 is 0.895\n", "Scores on the SEP dataset for gpt-4\n", " prompt_index sep_metric prompt_in_data_asr probe_in_instruct_asr \\\n", "0 0 [0.208, 0.005] [0.751, 0.005] [0.833, 0.004] \n", "1 1 [0.953, 0.002] [0.047, 0.002] [0.966, 0.002] \n", "\n", " same_output_rate \n", "0 [0.735, 0.005] \n", "1 [0.078, 0.003] \n", "Best score for prompt 1 is 0.953\n" ] } ], "source": [ "for m in models: \n", " print(f\"Scores on the SEP dataset for {m}\")\n", " analyze(\"eval\", m)" ] }, { "cell_type": "markdown", "id": "5e9e1767-46eb-4c0e-acec-90d0607b3853", "metadata": {}, "source": [ "## Sep vs util plot" ] }, { "cell_type": "code", "execution_count": 47, "id": "a75534f6-dc89-4f63-9739-0c9402831846", "metadata": {}, "outputs": [], "source": [ "models = [\n", " \"gemma2b\",\n", " \"gemma7b\",\n", " \"phi-3\",\n", " \"llama-3-8b\",\n", " \"llama-2-7b\",\n", " \"starling\",\n", " \"zephyr\",\n", " \"gpt-3.5\",\n", " \"gpt-4\"\n", " ]\n" ] }, { "cell_type": "code", "execution_count": 114, "id": "269a0632-3b54-4a8d-a06a-84966008c921", "metadata": {}, "outputs": [], "source": [ "model_to_util = {}\n", "for m in models:\n", " model_to_util[m] = map_method_to_util(m)" ] }, { "cell_type": "code", "execution_count": 116, "id": "9737c23a-7155-4428-9418-7cf5961f70e5", "metadata": {}, "outputs": [], "source": [ "model_to_sep = {}\n", "for m in models:\n", " model_to_sep[m] = map_method_to_sep(m)" ] }, { "cell_type": "code", "execution_count": 56, "id": "fe19e445-3066-4c3c-af83-933460369e7a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'gemma2b': {'original': 0.732, 'peng': 0.924, 'popt': 0.705, 'ft': 0.872},\n", " 'gemma7b': {'original': 0.569, 'peng': 0.569, 'popt': 0.641, 'ft': 0.773},\n", " 'phi-3': {'original': 0.133, 'peng': 0.308, 'popt': 0.133, 'ft': 0.277},\n", " 'llama-3-8b': {'original': 0.308, 'peng': 0.498, 'popt': 0.467, 'ft': 0.955},\n", " 'llama-2-7b': {'original': 0.443, 'peng': 0.626, 'popt': 0.568, 'ft': 0.963},\n", " 'starling': {'original': 0.14, 'peng': 0.393, 'popt': 0.171, 'ft': 0.952},\n", " 'zephyr': {'original': 0.3, 'peng': 0.363, 'popt': 0.442, 'ft': 0.937},\n", " 'gpt-3.5': {'original': 0.566, 'peng': 0.895, 'popt': None, 'ft': None},\n", " 'gpt-4': {'original': 0.208, 'peng': 0.953, 'popt': None, 'ft': None}}" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model_to_sep" ] }, { "cell_type": "code", "execution_count": 57, "id": "a29ff860-e756-45d0-a6df-8d7019fb786c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'gemma2b': {'original': 0.367, 'peng': 0.153, 'popt': 0.386, 'ft': 0.062},\n", " 'gemma7b': {'original': 0.467, 'peng': 0.467, 'popt': 0.421, 'ft': 0.083},\n", " 'phi-3': {'original': 0.848, 'peng': 0.862, 'popt': 0.848, 'ft': 0.015},\n", " 'llama-3-8b': {'original': 0.86, 'peng': 0.74, 'popt': 0.877, 'ft': 0.255},\n", " 'llama-2-7b': {'original': 0.833, 'peng': 0.597, 'popt': 0.84, 'ft': 0.333},\n", " 'starling': {'original': 0.869, 'peng': 0.91, 'popt': 0.881, 'ft': 0.414},\n", " 'zephyr': {'original': 0.504, 'peng': 0.631, 'popt': 0.642, 'ft': 0.181},\n", " 'gpt-3.5': {'original': 0.792, 'peng': 0.832, 'popt': None, 'ft': None},\n", " 'gpt-4': {'original': 0.833, 'peng': 0.966, 'popt': None, 'ft': None}}" ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model_to_util" ] }, { "cell_type": "code", "execution_count": null, "id": "c4603ab6-17d3-4420-beab-8ec30d8b7569", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 63, "id": "1e49747d-9b6c-4282-aedf-6bac0e66e9c1", "metadata": {}, "outputs": [], "source": [ "sep_scores = []\n", "util_scores = []\n", "meta = []\n", "for m in models: \n", " for mode in (\"original\", \"peng\", \"popt\", \"ft\"): \n", " if model_to_sep[m][mode] and model_to_util[m][mode]:\n", " sep_scores.append(model_to_sep[m][mode])\n", " util_scores.append(model_to_util[m][mode])\n", " meta.append((m, mode))\n", "sep_scores = np.array(sep_scores)\n", "util_scores = np.array(util_scores)" ] }, { "cell_type": "code", "execution_count": null, "id": "0dc15117-4bd6-48fd-8c13-778a471445ce", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 64, "id": "bb5a8dcf-ac06-4240-b947-235bd4624aa6", "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import seaborn as sns" ] }, { "cell_type": "code", "execution_count": 65, "id": "07b4176c-c7ea-4b4e-87c7-6171966500bc", "metadata": {}, "outputs": [], "source": [ "def correct_name_method(name): \n", " if name == \"original\":\n", " return \"Original\"\n", " elif name == \"peng\":\n", " return \"Prompt Engineering\"\n", " elif name == \"popt\":\n", " return \"Prompt Optimization\"\n", " elif name == \"ft\":\n", " return \"Fine-tuning\"\n", " else:\n", " raise ValueError(f\"Unexpected method name: {name}\")\n", "def correct_model_name(name):\n", " if name == \"gemma2b\":\n", " return \"Gemma (2B)\"\n", " if name == \"gemma7b\":\n", " return \"Gemma (7B)\"\n", " if name == \"phi-3\":\n", " return \"Phi-3-mini-4k\"\n", " if name == \"llama-3-8b\":\n", " return \"Llama-3 (8B)\"\n", " if name == \"llama-2-7b\":\n", " return \"Llama-2 (7B)\"\n", " if name == \"starling\":\n", " return \"Starling-LM-7B-beta\"\n", " if name == \"zephyr\":\n", " return \"Zephyr (7B) beta\"\n", " if name == \"gpt-3.5\":\n", " return \"GPT-3.5\"\n", " if name == \"gpt-4\":\n", " return \"GPT-4\"\n", " assert False, f\"Model name '{name}' is unknown\" \n", "df = pd.DataFrame({\n", " 'Utility Scores': util_scores,\n", " 'Separation Scores': sep_scores,\n", " 'Model': [correct_model_name(x[0]) for x in meta],\n", " 'Method': [correct_name_method(x[1]) for x in meta]\n", "})\n" ] }, { "cell_type": "code", "execution_count": 66, "id": "5084baa8-19cb-4860-8907-278ce82c6963", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Intercept: 0.8554247848031666, Slope: -0.5109272264745771\n" ] } ], "source": [ "X = util_scores.reshape(-1, 1)\n", "y = sep_scores\n", "\n", "X_b = np.hstack([np.ones((X.shape[0], 1)), X]) \n", "theta_best = np.linalg.inv(X_b.T.dot(X_b)).dot(X_b.T).dot(y)\n", "\n", "print(f'Intercept: {theta_best[0]}, Slope: {theta_best[1]}')\n" ] }, { "cell_type": "code", "execution_count": 67, "id": "ce15943c-7527-4f88-b0b0-c5a36d917d9f", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/tmp/ipykernel_1723012/3344872066.py:15: UserWarning: The palette list has more values (20) than needed (9), which may not be intended.\n", " ax = sns.scatterplot(data=df, x='Utility Scores', y='Separation Scores', style='Method', hue='Model',\n" ] }, { "data": { "image/png": "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WLHDW9p9iMGxFLaOMbt1KsQVERGRrOj6k6dWOVdEREREMo4CXMmREgpvTWxrdQIU4oqIiEjWYdqAZvi69RabS0REREQyBwW4kuMkFd6aKMQVERGRrKR8+fIcPnyYwMDAdM3j4OBA+fLlLVSViIiIiFiCAlzJUVIS3pooxBUREZGsRMGriIiISPakAFdyjNSEtyYKcUVERERERERExJoU4EqOkJbw1kQhroiIiIiIiIiIWIsCXMn20hPemijEFRERERERERERa1CAK9maJcJbE4W4IiIiIiIiIiLyvCnAlWzLkuGtiUJcERERERERERF5nmysXYBYwc2bcPiwtavIcMOGv8vla94WC29NbGt1wqZud6ZNm8bWrVstNq+IiIiIiIiIiMg/KcDNifLnhzVr4LXX4PRpa1eTYZo3a0p0WBDRDy5ZdF5jRCg2D85ToKAjzs7OFp1bREREREREREQkNrVQyImKFoXZs+HWLZg6FUJDYdIkqFLF2pVZ1JgxYwgPD2fOnDkA2Dq3SfecxohQ2D+HvCE+rPNYS5Vs9p6JiIiIiIiIiEjmogA3JytfHhYtgkuX4MsvwcEB5s0Dm+yxMNtgMDBhwgQAi4S4/wxva9WqZYkyRUREREREREREEqUAV8DZGX75JWZFbjYJb00sFeIqvBUREREREREREWvIXmmdpE/58v97HBQEX30Ffn7Wq8dCTCHu6NGjiT66kqhLv6XqfIW3IiIiIiIiIiJiLVqBKwnLlw9eegn69IF27WDkyJhjWVRaV+IqvBUREREREREREWvSClxJmMEAHTuCpydUrgyurjH9ccPDrV1ZmqV2Ja7CWxERERERERERsTYFuJI0gwFefRV27YL8+aFTJ7h719pVpVlKQ1yFtyIiIiIiIiIikhmohYKkjK0tvPkm9OsHuXNbu5p0Sa6dgsJbERERERERERHJLLQCV1LHzi5mVa7JBx/ErM41Gq1XUxokthJX4a2IiIiIiIhI1rRu3TqcnZ1xdXXFmAVyii+//BJnZ2c+/vhja5cimZxW4Er6fPklzJwJc+fCJ59AixbWrijF4q3EjQzH5u5JhbciIiIiIiLZXGRkJHv37uXQoUOcPHmSx48f4+/vT548eShcuDBVq1alfv36uLi4UK5cOWuXKykQFBTErFmzAHj//fcxxF589l937txh//79HD16lEuXLvHw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syb79u3j4cOHPH78mKJaqCWxZKsAF6By5cosWbIkyTH/XPoP8MILLzB79uyMKUoko7RuDa1awYMH1q5ERERERESyiBs3blCuUjXs7NPWLtA+T17KVnTG29vbsoVlkGfPnpkfJ/Ux9ujoaK5evZro8xUrVjT3oAVYtWoVAQEBlChRAnd390TbI4waNYqNGzfy8OFDNm3aFG+RmUmpUqUYP358vON58+alZ8+efP/99/j6+lKvXr044a1JsWLF6NChA7/++it//fVXoq/DNOeUKVPitT6wtbWlT58+nDx5kqCgoBTVdOnSJQICAihQoECcMcmFoM7Ozri5ubF06VL27t2b5gD3wX9/Hk7rCl6IWX1raiXRq1evFJ83e/bsRLMkOzs7hg4dysCBA+N8Kjwxseu/ffu2AlyJI9sFuCLWcPz4cX755RcmTZqU7gbsqWYwxN3o7NixmBYL77wDsf7jQkREREREBGI2a7LLk742AvZ58hEQEGChijJWUFCQ+XFSe9wEBgbi6uqa6PN79+6lbNmy5q/37dsHQJs2bRLdyAsgV65c1KtXj507d5pXiyakQ4cOcQLi2GLv19O5c+dE5zCN8/Pzi7M/0D81b94cJyenZK+V0pru3LmT7ApYPz8//Pz8CAsLM4elpvquXr1KREREotdKTHh4uPn7m9hrTYnNmzcDYG9vn+T7m9rafv31V/Lly8e7776LjY1NkuMdHR3Njx8/fmyRGiT7UIArkk7Hjh2jf/83CAkJ5ty586xZs/r5h7ix1a8PZ89Cp07w9tvQty8k0FBeRERERERyJgcHB8Jv+6RrjrDQYAoUKJX8wEwgf/785schISEWmTMqKoqLFy8CsGbNGtasWZOi85IK5ipUqJDoc7FXt1asWDFF44KCghINNZO6VuxzUlpT7JA8tkuXLrFkyRIOHjyIj0/i91x0dDT+/v6pXkVr6m0MaQ9wT548aV5N3q5du3griZMybdq0eJviBQUFce3aNdauXYuHhwfffvstFy9eZPbs2UmGuLED3H9uiCeSdPwvIkkyhbcvVKnNxzNWce/BI15/PaaHj9XkygWDB8P27fD0aUyQu2kTxNpZVEREREREcq6KFSty+/pFwkLTFmaGhYZw58alJMO9zCT2StOkflYrWLAgly5divMnsY/T+/n5ERkZmepaQkNDE30uqdXBsYO/PHny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N5sfW7p9gr29PYUKFaJatWq0bduW7t27Jxnch4WFsWvXLgD69etn0Vok+zAYk+tULmli+k1O7dq1rVzJ8xccHMyFCxeoXr26uR9QVmSp8Da2h3e9mes+nNIli2eNENdohA0bYtoqvPoqvPMO2Nk91xKyy/0kmYPuJ7Ek3U9iabqnxJKyw/2U3X+mCg0N5caNG1SsWJE8edL/s4ZITjd06FC8vLxwc3Pjq6++snY5KbZp0yYmTJiAk5MT+/btI3/+/NYuSZ6T1Pw7oM9GiyTg2rVrFg9vIe7GZv369yc6Otoi82YYgyEmuPX0jFmB27kzLF8OUVHWrkxERERERETEbOzYsdjY2PDrr79y//59a5eTItHR0SxYsACAd955R+GtJEoBrkgC7OzsyG2Xm/CwEKKiIi06d3hYKJER4eTLlw+DwWDRuTNMrlwx7RS2bwd/f/DysnZFIiIiIiIiImbVqlWjW7duREREmEPRzM7T05Nr165RunRpBg0aZO1yJBNTD1yRBJQrVw6PtWtx69OH+f8axbufzSVvPod0z3v7+kW+n/Ie1ZyrsnzZsqwT4JrY28f0w43t2TNwcopZrSsiIiIiIiJiJR999BHly5fH3t4eo9GY6X/mjoqKYuTIkTRt2lStVCRJCnBFElGzZk2Lhrixw9sVK37BwSH9gXCm4OEBW7bAxInQvLm1qxEREREREZEcqlSpUowaNcraZaSYq6urtUuQLEItFESSYApxHz+4yfx/jSIkODBN82Tb8BZg2DD48ceYIPe11+DUKWtXJCIiIiIiIiKSbSjAFUlGekPcbB3emhQvDrNmwcyZ8P33MHAgXL5s7apERERERERERLI8BbgiKZDWEDdHhLexlS8PCxfC558rwBURERERERERsQAFuCIplNoQN8eFt7E5O0O3bv/7+vZtePTIevWIiIiIiIiIiGRRCnBFUiGlIW6ODm8T4usLb78NX3wR81hERERERERERFJEAa5IKiUX4iq8TUDt2rBlC7RsCa+/DtOnQ1CQtasSEREREREREcn0FOCKpEFiIa7C2yQYDNCxI3h6QpUq0L07LFhg7apERERERERERDK1XM/zYkajkR07dnDw4EF8fHxwdHSkadOmdO/eHXt7++dZiki6mUJctz59mP+vUbj2H8nib8YpvE2OwQC9e0OPHnDsmLWrERERERERERHJ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166Jrub9+eefzeHtO++8w4QJE+I83759e2rUqMFXX31FdHQ0CxcuZMGCBYleN3fu3FStWjXe8Tp16uDq6sqbb77J0aNHuXXrFrt27aJbt24JztOtWze2bdvGgQMHuH37NuXKlUvR65bsL33r0pPx8OFDjh49yp49e9i2bRteXl6cO3eOiIiIjLysiIhYyt270K0bzJ8P4eHWrkZERERELGjx4sVMnjyZD3vUxtO9M/1aV4kT3gLks89Nv9ZV8HTvzIc9ajN58mQWL15spYolK0osvDUpVKgQffr0ASAyMpJTp06l+Vq///479+/fB8DV1TXRcSdOnABiNkx+//33ExwzYMAAnJycADh58mSaa7KxseHtt982f33mzJlEx7Zs2RInJyeio6NZv359mq8p2Y/FV+Devn2b5cuXs3v3bh48eJDgGDs7O+rWrUvfvn1xcXHB1tbW0mWIiIgldOsGnTrB8uUx//v229CvH+jvbREREZEs7dixY7i7u/NRzzqM7VUv2fEGg4GxvephNIK7uzt169ZVO4VYHj16xO7duzly5AgXL17k0aNHREZGUqhQIWrVqoWrqyudOnVKdEVo7E3Wli1bxksvvcS6devYsGED169fJyIigkqVKjFgwIA4/VjDw8NZv349GzduxNvbm4iICJydnRk0aBBdunRJtF4/Pz/27NnD4cOHOX/+PPfv3yciIgJHR0eqVatGx44d6dWrV4If9c8I+fPnNz8OCwtL8zw7duwAYjZCdnZ2TnScaWGhk5MTDg4OCY4xGAyULVsWX19fwtO5mCX2RmhJzZU7d27atm3Lhg0b2L59O2PGjEnXdSX7sFiAGx0dbe7RERUVhdFoND9nahhtOhYWFsaxY8c4duwYCxYsYMaMGVSpUsVSpYiIiCXlygWDB0P//rBwIbi4wMSJ0K6dtSsTERERkTRauHABNV8owkc966bqvLG96rL71D0WLVqoAPe/oqKiaN26NdHR0fGee/ToEfv27WPfvn2sW7eOuXPnxgkrExIZGcl7773H/v374xw/c+YMH3/8MWfPnuXzzz/Hz8+PESNGcOzYsTjjTpw4wYkTJ7h16xbvvvtugtfo1asXd+/ejXf88ePHHDp0iEOHDrF69WoWLlxIsWLFknsL0iU6OtocvAKJbvKVEkeOHAGgbt2k7+uKFSty5coVfH19zRv2JeTO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tzfDhw8nLCyMkSNHUrduXezt7dm9ezezZs0iPDycMWPGsGXLFhwcHBK91qeffsqZM2fo0KEDXbp0wdPTk2vXrrFgwQJOnTrFkSNHGD16NDNmzDCf06dPH9q2bcv333/Ptm3bKFSoEPPmzUvV654ZPv74Y/773//StWtX2rdvT4ECBbh9+zZz587l+PHjnDx5kp9++olRo0bFO/fYsWOMGTOGqKgonJ2dGTBgAE2aNMHBwYFTp04xZ84cPvnkEypUqGD1WB89ekSfPn24ffs2Dg4O9OzZk7p161K8eHGCg4PZt28fixYt4vr167z22musWbOGvHnzWnwOE19fX95//32cnJwYMWIEderUwdbWllOnTiWagE7Km2++yaVLl+jXrx+tWrUiX758XL16lZkzZ3L58mV27NjBypUr6dWrV7xz//zzT7799lsA3N3dGTJkCHXq1AFiqnJ//vln3nvvPfLnz5/quDKaErgiIiIiIiIikutFRkYyf/5888f16tVLcNz58+cZMWIE7777boLHly9fbk7edunShUmTJmEwGMzHW7VqxdSpU5k1axY3btxg5syZvP/++4nGdfbsWX799Vdq1Khh3letWjXKlCnDsGHDePLkCT179sRoNLJq1SpKlSplHle9enXy58/PhAkT8PX1ZdeuXbRp0ybRa506dYr33nuPYcOGmfd5e3vTrl07hg0bxt69e9m6dSu7du2iefPmQMyicJ6enri5uQFgb29v8UXHYifWE5MvXz4KFy6c6PHjx4/zzTff0LlzZ/O+qlWr0qxZM7p3786FCxdYuXIl77zzTrwezxMmTCAqKgoHBwcWLlwY53NRvXp12rVrx8svv5xkq4rUSE+sEydO5Pbt2xQvXpyFCxdSsmTJOMfr169Pu3bt6Nu3Lzdv3mTu3LmMHDnS4nOY+Pj4UKhQIVasWBFnwcPYr2FqnD59mnnz5lG/fv04r02TJk3o2LEjDx48YOnSpfESuOHh4XzxxRcA5M+fnxUrVlC6dGnz8Vq1atG6dWt69eoVp9o9q1APXBERERERERHJtYKDgzl8+DADBw7kxIkTABQvXpwOHTokOL5MmTK89dZbic63ZMkSADw8PPjkk0/iJG9N3nrrLcqVKwfAqlWrkuyH++qrryaY7GrRooW5/YKfnx/vvPNOnOStSffu3XF0dARiqgyT4uXlFWch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f8grr7yS7vsQkfRLKnlr4urqqnYKIiJWpASuiIiIiEguEhUVxX9P/8vzpcPN+2L3vn1a7F64AHY28FK5ME5sPENoUOpbKRz57b9U8a5C7dq1034TImIRKUnemuTWJO7q1avNPWN9fHziHe/Xrx9eXl7069cPgLt37/LVV1/Rpk0bqlevTv369Rk8eDC7du1K0fXu37/P1KlT6datG/Xq1cPb25vmzZvzzjvvsH///nTdS6tWrfDy8jJ/PH36dPO9mf59+OGHKb53Ex8fH/O41atXxzv+4Ycf4uXlRatWrQAICAjghx9+oGPHjtSsWZM6derQt29f1q1bl6L4Y8docujQIXMMhw4dAuDPP//k1VdfpUGDBlSvXp22bdvyzTff4O/vn+R1AHx9fRk3bhytWrWiWrVqNGnShNdff52DBw8CMG3aNPP1RDKDWiiIiIiIiOQigYGBGI1G8jv+r/r22wSqb01iV+GaeuH2qRTBgnNRrBm3mZe/7oSNXcrqQv754yTndl9i5syZGAwGi96XiKROapK3Jjm1nYKl/PPPP7zxxhs8evTIvC8sLIy9e/eyd+9eRo8ezeDBgxM9f926dYwbN47g4OA4++/cucPmzZvZvHkzL730Ep999hl2dtkznXPlyhWGDBnCrVu34uw/evQoR48e5cSJE3z66afpukZ0dDTvv/9+vITwtWvXmDdvHlu3bmXJkiUULFgwwfMPHDjA66+/HufzcP/+fbZt28b27dt599130xWfSFpkz694ERERERFJE0dHRwDComI+3n7TlhNP9b592tO9cF3twRht5OrRm6wcu4Fun7XHwdk+0fONRiOHfzvBXz/s5vXXX6dz584WvScRSZ20JG9NlMRN2L1793jjjTewsbFh1KhRPPvss9jb23Ps2DFmzJhBQEAA3333Hc2aNaNChQrxzv/zzz8ZPXo0RqORkiVL8sorr1C+fHk8PDy4desWv/32G7t27eK3337D1dWVMWPGpDrGefPmERERQadOnYCEF3LLly9f2l6AFAgJCWHEiBH4+/szYsQIGjVqhIuLC2fPnmX69OncuXOHJUuW0LJlS5o2bZrm6/zwww8cP36c1q1b06VLF4oVK8aDBw9YunQpO3fu5Pr163z11Vd899138c69efOmOXlrZ2dH7969ee6553B1deXixYvMmzePqVOnUqNGjfS8FCKppgSuiIiIiEgu4uTkhJurC5f8wzAao/juWOLVtyZPV+FeehxTcfvtt9/y0ccfMaPnQmq8UJlnO1cjXxE383nhIRGc/vs8x9acwvfCXUaOHMmoUaMy/B5FJHHpSd6a5IQk7sOHD7lw4UKixz09PfH0TPlCjdeuXaN48eIsW7aMwoULm/dXr14db29vXnnlFSIjI1mxYgUff/xxnHP9/Pz49NNPMRqNdO/enQkTJsSpsK1atSrPP/88U6dOZdasWSxatIiXX36ZcuXKpeKOoWzZsvHuMTMXcvPz8yMiIoIVK1bESWJ7e3tTr149OnXqRFhYGEuXLk1XAvf48eO8++67jBgxIs7+Zs2aMWTIEPbu3cuWLVvw8/PDw8MjzphJkyaZK29/+OEHWrdubT5WrVo12rdvT//+/fnvf/+b5vhE0kIJXBERERGRXMRgMNCl20ss+2MJ3p5ByVbfmsSuwj390J6a1bx56aWXaNiwIQsWLGDpsiXs+/UoRcoVxNHVkYjQSB7efEREaDht27Xjxy8H0bBhw0y4QxFJjCWStybZPYm7bNkyli1blujxN998k7feeitVc3788cdxkrcmderUoUaNGpw4cYJ//vknwVgCAwMpXLgw48ePT7Q9wltvvcWaNWu4e/cua9euZeTIkamKLyt45513EqxALl26NK1bt2bjxo0cO3YsXdeoWrUqw4cPj7ffYDAwYMAA9u7dS2RkJMePH+e5554zH7979y47duwAoG3btnGStybOzs58/vnneieJZDolcEVEREREcpn+/fuzaNEiJhxKvvrWxFSFO/uUA0HhBr79bhAAxYsX56OPPmLUqFFs3LiRM2fOEBgYiLOzM0WLFqVLly4ULVo0o29JRJJhyeStSXZP4lqSm5sbLVq0SPR41apVOXHiBDdv3ox3bPv27QC0aNECBweHROews7OjZs2abNmyhePHj6c75sxmMBh44YUXEj1etWpVNm7ciL+/PwEBAbi5uSU6NimdOnVKtM961apVzdtPfy4OHTpEVFRMf6GkErSVKlWiUqVKnDt3Lk3xiaSFErgiIiIiIrlM5cqVqeRVgXPnLzKlafLVtybDqoUz77Q9jo6OvPjii3GOOTk50b17d7p3727pcEXEAr7++mscHR0tlrw1cXV1JTw8nK+//jpbJXDTUmGblNKlS2Njk/iCjqbesk+e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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "import pandas as pd\n", "import numpy as np\n", "\n", "plt.figure(figsize=(11, 9))\n", "sns.set(style=\"whitegrid\")\n", "\n", "palette = sns.color_palette(\"tab20\")\n", "\n", "markers = {'Original': 'o', 'Prompt Engineering': 's', 'Prompt Optimization': '^', 'Fine-tuning': 'D'}\n", "\n", "ax = sns.scatterplot(data=df, x='Utility Scores', y='Separation Scores', style='Method', hue='Model',\n", " markers=markers, s=150, palette=palette, edgecolor=\"k\")\n", "\n", "intercept = theta_best[0]\n", "slope = theta_best[1]\n", "\n", "x_vals = np.array(ax.get_xlim()) \n", "y_vals = intercept + slope * x_vals\n", "\n", "plt.plot(x_vals, y_vals, color='red', linestyle=(0, (10, 5)), linewidth=0.5, label='Linear regression fit') # Custom dashed line\n", "\n", "plt.xlabel('Utility Scores', fontsize=26)\n", "plt.ylabel('Separation Scores', fontsize=26)\n", "plt.legend(title='Model/Method', fontsize=20, title_fontsize='20', bbox_to_anchor=(1.05, 1), loc=2)\n", "\n", "# Save and show the plot\n", "plt.savefig('plot_with_custom_dash_regression_line.pdf', format='pdf', dpi=300, bbox_inches='tight')\n", "plt.show()\n" ] }, { "cell_type": "code", "execution_count": null, "id": "6d99c509-2929-4293-84a2-c033332ba5a0", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "8506b275-2d89-4119-8e08-601c8bb94c47", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "645ba19e-5d18-4e99-a135-55156a443364", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "47064a94-8330-4b02-93ba-972ab92824f8", "metadata": {}, "source": [ "# Average SEP / UTIL scores" ] }, { "cell_type": "markdown", "id": "92940df1-92e7-4142-a212-4060ef39f7a4", "metadata": {}, "source": [ "### SEP" ] }, { "cell_type": "code", "execution_count": 83, "id": "6cdcf3c2-e084-4c03-874e-923a5812e68b", "metadata": {}, "outputs": [], "source": [ "model_to_sep\n", "dimensions = model_to_sep[\"gemma2b\"].keys()\n", "res = {dim: [] for dim in dimensions}\n", "for m in models:\n", " for dim in dimensions: \n", " res[dim].append(model_to_sep[m][dim])" ] }, { "cell_type": "code", "execution_count": 85, "id": "ef82af02-2655-47d6-a209-b4810b7b533e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Avg sep score for original without GPTs is 0.375\n", "Avg sep score for peng without GPTs is 0.5258571428571428\n", "Avg sep score for popt without GPTs is 0.44671428571428573\n", "Avg sep score for ft without GPTs is 0.8184285714285714\n" ] } ], "source": [ "for dim, arr in res.items(): \n", " print(f\"Avg sep score for {dim} without GPTs is {np.mean(arr[:7])}\")" ] }, { "cell_type": "code", "execution_count": 86, "id": "fb274bee-f0c4-481a-97bc-254d8f41ce12", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Avg sep score for original with GPTs is 0.37766666666666665\n", "Avg sep score for peng with GPTs is 0.6143333333333334\n" ] } ], "source": [ "for dim, arr in res.items(): \n", " if dim in (\"popt, ft\"):\n", " continue\n", " print(f\"Avg sep score for {dim} with GPTs is {np.mean(arr)}\")" ] }, { "cell_type": "code", "execution_count": null, "id": "1491d9db-3372-44cc-9176-2ed3105b95d7", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "b7242be9-4c52-4005-b9aa-feea3dbf853c", "metadata": {}, "source": [ "### UTIL" ] }, { "cell_type": "code", "execution_count": 87, "id": "64cf1ca3-8a15-4eec-8c40-ef33f9ea4157", "metadata": {}, "outputs": [], "source": [ "model_to_util\n", "dimensions = model_to_util[\"gemma2b\"].keys()\n", "res = {dim: [] for dim in dimensions}\n", "for m in models:\n", " for dim in dimensions: \n", " res[dim].append(model_to_util[m][dim])" ] }, { "cell_type": "code", "execution_count": 88, "id": "ace25e8d-0287-40e0-9f0b-490b8f30e0ce", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Avg sep score for original without GPTs is 0.6782857142857142\n", "Avg sep score for peng without GPTs is 0.6228571428571429\n", "Avg sep score for popt without GPTs is 0.6992857142857144\n", "Avg sep score for ft without GPTs is 0.19185714285714286\n" ] } ], "source": [ "for dim, arr in res.items(): \n", " print(f\"Avg sep score for {dim} without GPTs is {np.mean(arr[:7])}\")" ] }, { "cell_type": "code", "execution_count": 89, "id": "67ea7d55-19f5-42a3-ac27-9ad85e11766e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Avg sep score for original with GPTs is 0.7081111111111111\n", "Avg sep score for peng with GPTs is 0.6842222222222223\n" ] } ], "source": [ "for dim, arr in res.items(): \n", " if dim in (\"popt, ft\"):\n", " continue\n", " print(f\"Avg sep score for {dim} with GPTs is {np.mean(arr)}\")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.8" } }, "nbformat": 4, "nbformat_minor": 5 }