Files
KG_RAG/notebooks/mcq_analysis.ipynb
2024-03-19 15:22:53 -07:00

391 lines
104 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 44,
"id": "9da3418d",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import os\n",
"from tqdm import tqdm\n",
"import re\n",
"from scipy import stats\n",
"import seaborn as sns\n",
"import matplotlib.pyplot as plt\n",
"\n",
"from IPython.display import clear_output\n"
]
},
{
"cell_type": "code",
"execution_count": 45,
"id": "97f75a9b",
"metadata": {},
"outputs": [],
"source": [
"def extract_answer(text):\n",
" try:\n",
" text_processed = text.split('\"answer\":')[-1].split('\\n')[0].strip().split('\"')[1].strip()\n",
" except:\n",
" text_processed = text.split('\"answer\":')[-1].split('\\n')[0].strip()\n",
" return text_processed\n",
"\n",
"def correct_paranthesis_split(text):\n",
" try:\n",
" text_processed = text.split('\"answer\":')[-1].split(\"\\n\")[1].split(\":\")[-1].split('\"')[1].strip()\n",
" return text_processed\n",
" except:\n",
" return text\n",
" \n",
"def process_df(prompt_response_df, rag_response_df):\n",
" prompt_response_df.loc[:, 'extracted_answer'] = prompt_response_df['llm_answer'].apply(extract_answer)\n",
" rag_response_df.loc[:, 'extracted_answer'] = rag_response_df['llm_answer'].apply(extract_answer)\n",
"\n",
" prompt_response_df_paranthesis_split = prompt_response_df[prompt_response_df.extracted_answer==\"{\"]\n",
" if prompt_response_df_paranthesis_split.shape[0] > 0:\n",
" prompt_response_df_paranthesis_split.loc[:, \"extracted_answer\"] = prompt_response_df_paranthesis_split.llm_answer.apply(correct_paranthesis_split)\n",
" prompt_response_df_wo_paranthesis_split = prompt_response_df[prompt_response_df.extracted_answer != \"{\"]\n",
" prompt_response_df = pd.concat([prompt_response_df_wo_paranthesis_split, prompt_response_df_paranthesis_split])\n",
"\n",
" rag_response_df_paranthesis_split = rag_response_df[rag_response_df.extracted_answer==\"{\"]\n",
" if rag_response_df_paranthesis_split.shape[0] > 0:\n",
" rag_response_df_paranthesis_split.loc[:, \"extracted_answer\"] = rag_response_df_paranthesis_split.llm_answer.apply(correct_paranthesis_split)\n",
" rag_response_df_wo_paranthesis_split = rag_response_df[rag_response_df.extracted_answer != \"{\"]\n",
" rag_response_df = pd.concat([rag_response_df_wo_paranthesis_split, rag_response_df_paranthesis_split])\n",
" return prompt_response_df, rag_response_df\n",
"\n",
"def evaluate(df):\n",
" correct = df[df.correct_answer == df.extracted_answer]\n",
" incorrect = df[df.correct_answer != df.extracted_answer]\n",
" correct_frac = correct.shape[0]/df.shape[0]\n",
" incorrect_frac = incorrect.shape[0]/df.shape[0]\n",
" return correct_frac, incorrect_frac\n",
"\n",
"\n",
"def bootstrap(prompt_response_df, rag_response_df, niter=1000, nsample=150):\n",
" prompt_correct_frac_list = []\n",
" rag_correct_frac_list = []\n",
" for i in tqdm(range(niter)):\n",
" prompt_response_df_sample = prompt_response_df.sample(n=nsample, random_state=i)\n",
" prompt_correct_frac, prompt_incorrect_frac = evaluate(prompt_response_df_sample)\n",
" rag_response_df_sample = rag_response_df.iloc[prompt_response_df_sample.index]\n",
" rag_correct_frac, rag_incorrect_frac = evaluate(rag_response_df_sample)\n",
" prompt_correct_frac_list.append(prompt_correct_frac)\n",
" rag_correct_frac_list.append(rag_correct_frac)\n",
" return prompt_correct_frac_list, rag_correct_frac_list\n",
"\n",
"def plot_figure(prompt_correct_frac_list, rag_correct_frac_list):\n",
" fig = plt.figure(figsize=(5, 3))\n",
" ax = plt.gca()\n",
" sns.kdeplot(prompt_correct_frac_list, color=\"blue\", shade=True, label=\"Prompt based\", ax=ax, lw=2, linestyle=\"-\", alpha=0.6)\n",
" sns.kdeplot(rag_correct_frac_list, color=\"lightcoral\", shade=True, label=\"KG-RAG based\", ax=ax, lw=2, linestyle=\"-\", alpha=0.6)\n",
"\n",
" for artist in ax.lines:\n",
" artist.set_edgecolor(\"black\")\n",
" plt.xlabel(\"Accuracy\")\n",
" plt.ylabel(\"Density\")\n",
" plt.legend(bbox_to_anchor=(0.55, 0.9))\n",
" plt.xlim(0.1,0.9)\n",
" ax.axvline(np.mean(prompt_correct_frac_list), color='black', linestyle='--', lw=2)\n",
" ax.axvline(np.mean(rag_correct_frac_list), color='black', linestyle='--', lw=2)\n",
" sns.despine(top=True, right=True)\n",
" plt.show()\n",
" return fig\n"
]
},
{
"cell_type": "code",
"execution_count": 46,
"id": "60388260",
"metadata": {},
"outputs": [],
"source": [
"\n",
"data_path ='../data/results'\n",
"\n",
"llama_prompt_path = os.path.join(data_path, 'Llama_2_13b_chat_hf_prompt_based_two_hop_mcq_from_monarch_and_robokop_response.csv')\n",
"llama_kg_rag_path = os.path.join(data_path, 'Llama_2_13b_chat_hf_PubMedBert_entity_recognition_based_node_retrieval_rag_based_two_hop_mcq_from_monarch_and_robokop_response.csv')\n",
"\n",
"gpt_35_prompt_path = os.path.join(data_path, 'gpt_35_turbo_prompt_based_two_hop_mcq_from_monarch_and_robokop_response.csv')\n",
"gpt_35_kg_rag_path = os.path.join(data_path, 'gpt_35_turbo_PubMedBert_entity_recognition_based_node_retrieval_rag_based_two_hop_mcq_from_monarch_and_robokop_response.csv')\n",
"\n",
"gpt_4_prompt_path = os.path.join(data_path, 'gpt_4_prompt_based_two_hop_mcq_from_monarch_and_robokop_response.csv')\n",
"gpt_4_kg_rag_path = os.path.join(data_path, 'gpt_4_PubMedBert_entity_recognition_based_node_retrieval_rag_based_two_hop_mcq_from_monarch_and_robokop_response.csv')\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 47,
"id": "95cd1d6e",
"metadata": {},
"outputs": [],
"source": [
"llama_prompt_df = pd.read_csv(llama_prompt_path)\n",
"llama_kg_rag_df = pd.read_csv(llama_kg_rag_path)\n",
"\n",
"gpt_35_prompt_df = pd.read_csv(gpt_35_prompt_path)\n",
"gpt_35_kg_rag_df = pd.read_csv(gpt_35_kg_rag_path)\n",
"\n",
"gpt_4_prompt_df = pd.read_csv(gpt_4_prompt_path)\n",
"gpt_4_kg_rag_df = pd.read_csv(gpt_4_kg_rag_path)\n",
"\n",
"\n",
"llama_prompt_df, llama_kg_rag_df = process_df(llama_prompt_df, llama_kg_rag_df)\n",
"gpt_35_prompt_df, gpt_35_kg_rag_df = process_df(gpt_35_prompt_df, gpt_35_kg_rag_df)\n",
"gpt_4_prompt_df, gpt_4_kg_rag_df = process_df(gpt_4_prompt_df, gpt_4_kg_rag_df)\n",
"\n",
"clear_output()\n"
]
},
{
"cell_type": "code",
"execution_count": 48,
"id": "0caf126f",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|█████████████████████████████████████| 1000/1000 [00:00<00:00, 1452.17it/s]\n",
"100%|█████████████████████████████████████| 1000/1000 [00:00<00:00, 1485.84it/s]\n",
"100%|█████████████████████████████████████| 1000/1000 [00:00<00:00, 1467.17it/s]\n"
]
}
],
"source": [
"llama_prompt_correct_frac_list, llama_rag_correct_frac_list = bootstrap(llama_prompt_df, llama_kg_rag_df)\n",
"\n",
"gpt_35_prompt_correct_frac_list, gpt_35_rag_correct_frac_list = bootstrap(gpt_35_prompt_df, gpt_35_kg_rag_df)\n",
"\n",
"gpt_4_prompt_correct_frac_list, gpt_4_rag_correct_frac_list = bootstrap(gpt_4_prompt_df, gpt_4_kg_rag_df)\n"
]
},
{
"cell_type": "code",
"execution_count": 49,
"id": "b3ff7f46",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/var/folders/p1/h56gxdhs5vgb0ztp7h4z606h0000gn/T/ipykernel_36221/731637856.py:55: FutureWarning: \n",
"\n",
"`shade` is now deprecated in favor of `fill`; setting `fill=True`.\n",
"This will become an error in seaborn v0.14.0; please update your code.\n",
"\n",
" sns.kdeplot(prompt_correct_frac_list, color=\"blue\", shade=True, label=\"Prompt based\", ax=ax, lw=2, linestyle=\"-\", alpha=0.6)\n",
"/var/folders/p1/h56gxdhs5vgb0ztp7h4z606h0000gn/T/ipykernel_36221/731637856.py:56: FutureWarning: \n",
"\n",
"`shade` is now deprecated in favor of `fill`; setting `fill=True`.\n",
"This will become an error in seaborn v0.14.0; please update your code.\n",
"\n",
" sns.kdeplot(rag_correct_frac_list, color=\"lightcoral\", shade=True, label=\"KG-RAG based\", ax=ax, lw=2, linestyle=\"-\", alpha=0.6)\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 500x300 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"---Prompt based mean and std---\n",
"0.30657333333333336\n",
"0.027685378411316283\n",
"\n",
"---KG-RAG based mean and std---\n",
"0.5257333333333334\n",
"0.029079507866842894\n"
]
}
],
"source": [
"llama_fig = plot_figure(llama_prompt_correct_frac_list, llama_rag_correct_frac_list)\n",
"\n",
"fig_path = '../data/results/figures'\n",
"os.makedirs(fig_path, exist_ok=True)\n",
"llama_fig.savefig(os.path.join(fig_path, 'llama_mcq.svg'), format='svg', bbox_inches='tight') \n",
"\n",
"print('---Prompt based mean and std---')\n",
"print(np.mean(llama_prompt_correct_frac_list))\n",
"print(np.std(llama_prompt_correct_frac_list))\n",
"print('')\n",
"print('---KG-RAG based mean and std---')\n",
"print(np.mean(llama_rag_correct_frac_list))\n",
"print(np.std(llama_rag_correct_frac_list))\n"
]
},
{
"cell_type": "code",
"execution_count": 50,
"id": "aabc5899",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/var/folders/p1/h56gxdhs5vgb0ztp7h4z606h0000gn/T/ipykernel_36221/731637856.py:55: FutureWarning: \n",
"\n",
"`shade` is now deprecated in favor of `fill`; setting `fill=True`.\n",
"This will become an error in seaborn v0.14.0; please update your code.\n",
"\n",
" sns.kdeplot(prompt_correct_frac_list, color=\"blue\", shade=True, label=\"Prompt based\", ax=ax, lw=2, linestyle=\"-\", alpha=0.6)\n",
"/var/folders/p1/h56gxdhs5vgb0ztp7h4z606h0000gn/T/ipykernel_36221/731637856.py:56: FutureWarning: \n",
"\n",
"`shade` is now deprecated in favor of `fill`; setting `fill=True`.\n",
"This will become an error in seaborn v0.14.0; please update your code.\n",
"\n",
" sns.kdeplot(rag_correct_frac_list, color=\"lightcoral\", shade=True, label=\"KG-RAG based\", ax=ax, lw=2, linestyle=\"-\", alpha=0.6)\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 500x300 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"---Prompt based mean and std---\n",
"0.6313199999999999\n",
"0.027403808332257598\n",
"\n",
"---KG-RAG based mean and std---\n",
"0.7942533333333334\n",
"0.02310455077829185\n"
]
}
],
"source": [
"gpt_35_fig = plot_figure(gpt_35_prompt_correct_frac_list, gpt_35_rag_correct_frac_list)\n",
"\n",
"fig_path = '../data/results/figures'\n",
"os.makedirs(fig_path, exist_ok=True)\n",
"gpt_35_fig.savefig(os.path.join(fig_path, 'gpt_35_mcq.svg'), format='svg', bbox_inches='tight') \n",
"\n",
"print('---Prompt based mean and std---')\n",
"print(np.mean(gpt_35_prompt_correct_frac_list))\n",
"print(np.std(gpt_35_prompt_correct_frac_list))\n",
"print('')\n",
"print('---KG-RAG based mean and std---')\n",
"print(np.mean(gpt_35_rag_correct_frac_list))\n",
"print(np.std(gpt_35_rag_correct_frac_list))\n"
]
},
{
"cell_type": "code",
"execution_count": 51,
"id": "9a0a4fc0",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/var/folders/p1/h56gxdhs5vgb0ztp7h4z606h0000gn/T/ipykernel_36221/731637856.py:55: FutureWarning: \n",
"\n",
"`shade` is now deprecated in favor of `fill`; setting `fill=True`.\n",
"This will become an error in seaborn v0.14.0; please update your code.\n",
"\n",
" sns.kdeplot(prompt_correct_frac_list, color=\"blue\", shade=True, label=\"Prompt based\", ax=ax, lw=2, linestyle=\"-\", alpha=0.6)\n",
"/var/folders/p1/h56gxdhs5vgb0ztp7h4z606h0000gn/T/ipykernel_36221/731637856.py:56: FutureWarning: \n",
"\n",
"`shade` is now deprecated in favor of `fill`; setting `fill=True`.\n",
"This will become an error in seaborn v0.14.0; please update your code.\n",
"\n",
" sns.kdeplot(rag_correct_frac_list, color=\"lightcoral\", shade=True, label=\"KG-RAG based\", ax=ax, lw=2, linestyle=\"-\", alpha=0.6)\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 500x300 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"---Prompt based mean and std---\n",
"0.6847333333333333\n",
"0.027653330118932635\n",
"\n",
"---KG-RAG based mean and std---\n",
"0.7417666666666666\n",
"0.0259921141887304\n"
]
}
],
"source": [
"gpt_4_fig = plot_figure(gpt_4_prompt_correct_frac_list, gpt_4_rag_correct_frac_list)\n",
"\n",
"fig_path = '../data/results/figures'\n",
"os.makedirs(fig_path, exist_ok=True)\n",
"gpt_4_fig.savefig(os.path.join(fig_path, 'gpt_4_mcq.svg'), format='svg', bbox_inches='tight') \n",
"\n",
"print('---Prompt based mean and std---')\n",
"print(np.mean(gpt_4_prompt_correct_frac_list))\n",
"print(np.std(gpt_4_prompt_correct_frac_list))\n",
"print('')\n",
"print('---KG-RAG based mean and std---')\n",
"print(np.mean(gpt_4_rag_correct_frac_list))\n",
"print(np.std(gpt_4_rag_correct_frac_list))\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "83c8f3c2",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.9"
}
},
"nbformat": 4,
"nbformat_minor": 5
}