Files
wehub-resource-sync a0c8464e58
Build Package / build (ubuntu-latest) (push) Failing after 1s
CodeQL / Analyze (python) (push) Failing after 1s
Core Typecheck / core-typecheck (push) Failing after 1s
Linting / lint (push) Failing after 1s
llama-dev tests / test-llama-dev (push) Failing after 1s
Publish Sub-Package to PyPI if Needed / publish_subpackage_if_needed (push) Has been skipped
Sync Docs to Developer Hub / sync-docs (push) Failing after 0s
Build Package / build (windows-latest) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:26:52 +08:00

777 lines
25 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"id": "39bbe88b",
"metadata": {},
"source": [
"<a href=\"https://colab.research.google.com/github/run-llama/llama_index/blob/main/docs/examples/evaluation/mt_bench_single_grading.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"id": "a44afb3b-4c42-4985-909b-f6508965fdb5",
"metadata": {},
"source": [
"# Benchmarking LLM Evaluators On A Mini MT-Bench (Single Grading) `LabelledEvaluatorDataset`"
]
},
{
"cell_type": "markdown",
"id": "53a0ea03-b7b5-47ed-8227-de416791eb6e",
"metadata": {},
"source": [
"In this notebook, we'll conduct an evaluation of three different evaluators that will be judging another LLM's response for response against a user query. More specifically, we will run benchmarks using a mini version of the MT-Bench single-grading dataset. In this version, we only consider the answers on the 160 questions (i.e., 80 x 2, since there are 80 two-turn dialogues) provided by llama2-70b. The reference answers used for this benchmark are provided by GPT-4. And so, our benchmarks on these three evaluators will assess closeness to GPT-4 (actually, self-consistency for the case of GPT-4).\n",
"\n",
"1. GPT-3.5 (OpenAI)\n",
"2. GPT-4 (OpenAI)\n",
"3. Gemini-Pro (Google)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "ed15bedf",
"metadata": {},
"outputs": [],
"source": [
"%pip install llama-index-llms-openai\n",
"%pip install llama-index-llms-cohere\n",
"%pip install llama-index-llms-gemini"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "4ccb6e02-8a81-4f3c-8cc7-8d193d3689e3",
"metadata": {},
"outputs": [],
"source": [
"import nest_asyncio\n",
"\n",
"nest_asyncio.apply()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "7d739ec7-174a-4282-9d24-f14d9845cf78",
"metadata": {},
"outputs": [],
"source": [
"!pip install \"google-generativeai\" -q"
]
},
{
"cell_type": "markdown",
"id": "d86a307b-67c4-4455-9a54-665407a91258",
"metadata": {},
"source": [
"### Load in Evaluator Dataset"
]
},
{
"cell_type": "markdown",
"id": "4e0e9014-cfb4-4b03-bfe1-04d75c4f55e9",
"metadata": {},
"source": [
"Let's load in the llama-dataset from llama-hub."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2170e0d7-fc3f-45b0-bed0-7c8b8b31ac66",
"metadata": {},
"outputs": [],
"source": [
"from llama_index.core.llama_dataset import download_llama_dataset\n",
"\n",
"# download dataset\n",
"evaluator_dataset, _ = download_llama_dataset(\n",
" \"MiniMtBenchSingleGradingDataset\", \"./mini_mt_bench_data\"\n",
")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f2277cdb-c855-46c7-9c7b-eedd09033e51",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>query</th>\n",
" <th>answer</th>\n",
" <th>contexts</th>\n",
" <th>ground_truth_answer</th>\n",
" <th>query_by</th>\n",
" <th>answer_by</th>\n",
" <th>ground_truth_answer_by</th>\n",
" <th>reference_feedback</th>\n",
" <th>reference_score</th>\n",
" <th>reference_evaluation_by</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Compose an engaging travel blog post about a r...</td>\n",
" <td>Title: Discovering the Aloha Spirit: A Recent ...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>ai (llama2-70b)</td>\n",
" <td>None</td>\n",
" <td>The generated answer is highly relevant to the...</td>\n",
" <td>5.0</td>\n",
" <td>ai (gpt-4)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Rewrite your previous response. Start every se...</td>\n",
" <td>Absolutely, here's the revised response:\\n\\nAl...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>ai (llama2-70b)</td>\n",
" <td>None</td>\n",
" <td>The generated answer is highly relevant and co...</td>\n",
" <td>5.0</td>\n",
" <td>ai (gpt-4)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Draft a professional email seeking your superv...</td>\n",
" <td>Subject: Seeking Feedback on Quarterly Financi...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>ai (llama2-70b)</td>\n",
" <td>None</td>\n",
" <td>The generated answer is highly relevant to the...</td>\n",
" <td>5.0</td>\n",
" <td>ai (gpt-4)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Take a moment to evaluate and critique your ow...</td>\n",
" <td>My response was:\\n\\n\"Subject: Seeking Feedback...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>ai (llama2-70b)</td>\n",
" <td>None</td>\n",
" <td>The generated answer is highly relevant to the...</td>\n",
" <td>5.0</td>\n",
" <td>ai (gpt-4)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Imagine you are writing a blog post comparing ...</td>\n",
" <td>Sure, here's an outline for a blog post compar...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>ai (llama2-70b)</td>\n",
" <td>None</td>\n",
" <td>The generated answer is highly relevant to the...</td>\n",
" <td>5.0</td>\n",
" <td>ai (gpt-4)</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" query \\\n",
"0 Compose an engaging travel blog post about a r... \n",
"1 Rewrite your previous response. Start every se... \n",
"2 Draft a professional email seeking your superv... \n",
"3 Take a moment to evaluate and critique your ow... \n",
"4 Imagine you are writing a blog post comparing ... \n",
"\n",
" answer contexts \\\n",
"0 Title: Discovering the Aloha Spirit: A Recent ... None \n",
"1 Absolutely, here's the revised response:\\n\\nAl... None \n",
"2 Subject: Seeking Feedback on Quarterly Financi... None \n",
"3 My response was:\\n\\n\"Subject: Seeking Feedback... None \n",
"4 Sure, here's an outline for a blog post compar... None \n",
"\n",
" ground_truth_answer query_by answer_by ground_truth_answer_by \\\n",
"0 None None ai (llama2-70b) None \n",
"1 None None ai (llama2-70b) None \n",
"2 None None ai (llama2-70b) None \n",
"3 None None ai (llama2-70b) None \n",
"4 None None ai (llama2-70b) None \n",
"\n",
" reference_feedback reference_score \\\n",
"0 The generated answer is highly relevant to the... 5.0 \n",
"1 The generated answer is highly relevant and co... 5.0 \n",
"2 The generated answer is highly relevant to the... 5.0 \n",
"3 The generated answer is highly relevant to the... 5.0 \n",
"4 The generated answer is highly relevant to the... 5.0 \n",
"\n",
" reference_evaluation_by \n",
"0 ai (gpt-4) \n",
"1 ai (gpt-4) \n",
"2 ai (gpt-4) \n",
"3 ai (gpt-4) \n",
"4 ai (gpt-4) "
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"evaluator_dataset.to_pandas()[:5]"
]
},
{
"cell_type": "markdown",
"id": "3e40453c-1d51-4421-947e-4c3b10fee786",
"metadata": {},
"source": [
"### Define Our Evaluators"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "752dffac-5d23-424a-9fe3-b9e5c639602e",
"metadata": {},
"outputs": [],
"source": [
"from llama_index.core.evaluation import CorrectnessEvaluator\n",
"from llama_index.llms.openai import OpenAI\n",
"from llama_index.llms.gemini import Gemini\n",
"from llama_index.llms.cohere import Cohere\n",
"\n",
"llm_gpt4 = OpenAI(temperature=0, model=\"gpt-4\")\n",
"llm_gpt35 = OpenAI(temperature=0, model=\"gpt-3.5-turbo\")\n",
"llm_gemini = Gemini(model=\"models/gemini-pro\", temperature=0)\n",
"\n",
"\n",
"evaluators = {\n",
" \"gpt-4\": CorrectnessEvaluator(llm=llm_gpt4),\n",
" \"gpt-3.5\": CorrectnessEvaluator(llm=llm_gpt35),\n",
" \"gemini-pro\": CorrectnessEvaluator(llm=llm_gemini),\n",
"}"
]
},
{
"cell_type": "markdown",
"id": "01d9c8be-8a1e-44fc-b590-3f02b62d5fd2",
"metadata": {},
"source": [
"### Benchmark With `EvaluatorBenchmarkerPack` (llama-pack)\n",
"\n",
"When using the `EvaluatorBenchmarkerPack` with a `LabelledEvaluatorDataset`, the returned benchmarks will contain values for the following quantites:\n",
"\n",
"- `number_examples`: The number of examples the dataset consists of.\n",
"- `invalid_predictions`: The number of evaluations that could not yield a final evaluation (e.g., due to inability to parse the evaluation output, or an exception thrown by the LLM evaluator)\n",
"- `correlation`: The correlation between the scores of the provided evaluator and those of the reference evaluator (in this case gpt-4).\n",
"- `mae`: The mean absolute error between the scores of the provided evaluator and those of the reference evaluator.\n",
"- `hamming`: The hamming distance between the scores of the provided evaluator and those of the reference evaluator.\n",
"\n",
"NOTE: `correlation`, `mae`, and `hamming` are all computed without invalid predictions. So, essentially these metrics are conditional ones, conditioned on the prediction being valid."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e279d1f8-af0f-4557-b836-7a2d3bb6ef59",
"metadata": {},
"outputs": [],
"source": [
"from llama_index.core.llama_pack import download_llama_pack\n",
"\n",
"EvaluatorBenchmarkerPack = download_llama_pack(\n",
" \"EvaluatorBenchmarkerPack\", \"./pack\"\n",
")"
]
},
{
"cell_type": "markdown",
"id": "a0d9a4b7-781b-44ef-ab11-e2328b2a00e8",
"metadata": {},
"source": [
"#### GPT 3.5"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "950c29b1-89ca-4ded-91a0-8256da4e8b84",
"metadata": {},
"outputs": [],
"source": [
"evaluator_benchmarker = EvaluatorBenchmarkerPack(\n",
" evaluator=evaluators[\"gpt-3.5\"],\n",
" eval_dataset=evaluator_dataset,\n",
" show_progress=True,\n",
")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "5d142745-6881-45e6-ae51-066f7b2ae1a4",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/nerdai/Projects/llama_index/docs/examples/evaluation/pack/base.py:142: UserWarning: You've set a large batch_size (>10). If using OpenAI GPT-4 as `judge_llm` (which is the default judge_llm), you may experience a RateLimitError. Previous successful eval responses are cached per batch. So hitting a RateLimitError would mean you'd lose all of the current batches successful GPT-4 calls.\n",
" warnings.warn(\n",
"Batch processing of predictions: 100%|████████████████████| 100/100 [00:05<00:00, 18.88it/s]\n",
"Batch processing of predictions: 100%|██████████████████████| 60/60 [00:04<00:00, 12.26it/s]\n"
]
}
],
"source": [
"gpt_3p5_benchmark_df = await evaluator_benchmarker.arun(\n",
" batch_size=100, sleep_time_in_seconds=0\n",
")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "8300c5ce-748f-4ca4-9219-72871806cc5d",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>number_examples</th>\n",
" <th>invalid_predictions</th>\n",
" <th>correlation</th>\n",
" <th>mae</th>\n",
" <th>hamming</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>gpt-3.5</th>\n",
" <td>160</td>\n",
" <td>0</td>\n",
" <td>0.317047</td>\n",
" <td>1.11875</td>\n",
" <td>27</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" number_examples invalid_predictions correlation mae hamming\n",
"gpt-3.5 160 0 0.317047 1.11875 27"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gpt_3p5_benchmark_df.index = [\"gpt-3.5\"]\n",
"gpt_3p5_benchmark_df"
]
},
{
"cell_type": "markdown",
"id": "90e6cf9d-4848-456f-986f-954396939ad8",
"metadata": {},
"source": [
"#### GPT-4"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "6445b17d-2892-4915-9d5b-e1ad6142d2b1",
"metadata": {},
"outputs": [],
"source": [
"evaluator_benchmarker = EvaluatorBenchmarkerPack(\n",
" evaluator=evaluators[\"gpt-4\"],\n",
" eval_dataset=evaluator_dataset,\n",
" show_progress=True,\n",
")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f4b269e3-9125-4305-acbf-2fdfb9f4222a",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/nerdai/Projects/llama_index/docs/examples/evaluation/pack/base.py:142: UserWarning: You've set a large batch_size (>10). If using OpenAI GPT-4 as `judge_llm` (which is the default judge_llm), you may experience a RateLimitError. Previous successful eval responses are cached per batch. So hitting a RateLimitError would mean you'd lose all of the current batches successful GPT-4 calls.\n",
" warnings.warn(\n",
"Batch processing of predictions: 100%|████████████████████| 100/100 [00:13<00:00, 7.26it/s]\n",
"Batch processing of predictions: 100%|██████████████████████| 60/60 [00:10<00:00, 5.92it/s]\n"
]
}
],
"source": [
"gpt_4_benchmark_df = await evaluator_benchmarker.arun(\n",
" batch_size=100, sleep_time_in_seconds=0\n",
")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "3af7f475-e7fa-4123-984c-fe722fd6bc08",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>number_examples</th>\n",
" <th>invalid_predictions</th>\n",
" <th>correlation</th>\n",
" <th>mae</th>\n",
" <th>hamming</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>gpt-4</th>\n",
" <td>160</td>\n",
" <td>0</td>\n",
" <td>0.966126</td>\n",
" <td>0.09375</td>\n",
" <td>143</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" number_examples invalid_predictions correlation mae hamming\n",
"gpt-4 160 0 0.966126 0.09375 143"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gpt_4_benchmark_df.index = [\"gpt-4\"]\n",
"gpt_4_benchmark_df"
]
},
{
"cell_type": "markdown",
"id": "09470187-876f-4919-8d40-7dcabd901036",
"metadata": {},
"source": [
"#### Gemini Pro"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "71831f98-34ff-4175-9603-571b2a72086f",
"metadata": {},
"outputs": [],
"source": [
"evaluator_benchmarker = EvaluatorBenchmarkerPack(\n",
" evaluator=evaluators[\"gemini-pro\"],\n",
" eval_dataset=evaluator_dataset,\n",
" show_progress=True,\n",
")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "0f667926-ae4e-48ae-9c42-ecbc70b33536",
"metadata": {},
"outputs": [],
"source": [
"gemini_pro_benchmark_df = await evaluator_benchmarker.arun(\n",
" batch_size=5, sleep_time_in_seconds=0.5\n",
")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "6dbf5d22-75a2-48c6-9639-e822146d79b7",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>number_examples</th>\n",
" <th>invalid_predictions</th>\n",
" <th>correlation</th>\n",
" <th>mae</th>\n",
" <th>hamming</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>gemini-pro</th>\n",
" <td>160</td>\n",
" <td>1</td>\n",
" <td>0.295121</td>\n",
" <td>1.220126</td>\n",
" <td>12</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" number_examples invalid_predictions correlation mae \\\n",
"gemini-pro 160 1 0.295121 1.220126 \n",
"\n",
" hamming \n",
"gemini-pro 12 "
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gemini_pro_benchmark_df.index = [\"gemini-pro\"]\n",
"gemini_pro_benchmark_df"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "cf29da98-2e2c-453e-977b-5afae3a102bc",
"metadata": {},
"outputs": [],
"source": [
"evaluator_benchmarker.prediction_dataset.save_json(\n",
" \"mt_sg_gemini_predictions.json\"\n",
")"
]
},
{
"cell_type": "markdown",
"id": "da3675c4-65d1-417a-88b2-585f40b5671c",
"metadata": {},
"source": [
"### In Summary\n",
"\n",
"Putting all baselines together."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b5231aad-93e3-409a-a84e-9c23857cc7ce",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>number_examples</th>\n",
" <th>invalid_predictions</th>\n",
" <th>correlation</th>\n",
" <th>mae</th>\n",
" <th>hamming</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>gpt-3.5</th>\n",
" <td>160</td>\n",
" <td>0</td>\n",
" <td>0.317047</td>\n",
" <td>1.118750</td>\n",
" <td>27</td>\n",
" </tr>\n",
" <tr>\n",
" <th>gpt-4</th>\n",
" <td>160</td>\n",
" <td>0</td>\n",
" <td>0.966126</td>\n",
" <td>0.093750</td>\n",
" <td>143</td>\n",
" </tr>\n",
" <tr>\n",
" <th>gemini-pro</th>\n",
" <td>160</td>\n",
" <td>1</td>\n",
" <td>0.295121</td>\n",
" <td>1.220126</td>\n",
" <td>12</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" number_examples invalid_predictions correlation mae \\\n",
"gpt-3.5 160 0 0.317047 1.118750 \n",
"gpt-4 160 0 0.966126 0.093750 \n",
"gemini-pro 160 1 0.295121 1.220126 \n",
"\n",
" hamming \n",
"gpt-3.5 27 \n",
"gpt-4 143 \n",
"gemini-pro 12 "
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"\n",
"final_benchmark = pd.concat(\n",
" [\n",
" gpt_3p5_benchmark_df,\n",
" gpt_4_benchmark_df,\n",
" gemini_pro_benchmark_df,\n",
" ],\n",
" axis=0,\n",
")\n",
"final_benchmark"
]
},
{
"cell_type": "markdown",
"id": "80234260-8f53-4aa9-899b-85ed68bb7cda",
"metadata": {},
"source": [
"From the results above, we make the following observations:\n",
"- GPT-3.5 and Gemini-Pro seem to have similar results, with perhaps the slightes edge to GPT-3.5 in terms of closeness to GPT-4.\n",
"- Though, both don't seem to be too close to GPT-4.\n",
"- GPT-4 seems to be pretty consistent with itself in this benchmark."
]
}
],
"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"
}
},
"nbformat": 4,
"nbformat_minor": 5
}