开源工具用贝叶斯优化方法快速评估和优化LLM性能。对构建LLM应用的程序员有直接的工程实践价值。
这个项目登上了 Show HN 首页。
这个项目最初是一项研究工作,我认为我已经实现了大部分初衷。所以在今天(2025/09/14),我要将这个仓库存档。
现在我主要在从事 aioway,一个深度学习算法编译器!来看看吧。
大语言模型是昂贵且低效的庞然大物,在巨大的现代数据集上评估它们只会让情况更糟。
如果只是有某种方法可以选择一个有意义的(且较小的)语料库子集并获得高度准确的评估就好了……
等等,听起来像 Bayesian Optimization!
Bocoel 的工作步骤如下:
据我们所知,这是第一项致力于在评估(基准测试)过程中通过(可能动态的)预算来减少计算成本的工作。
🎯 仅用数十个来自所选语料库的样本准确评估大语言模型。
💂♂️ 利用 Bayesian Optimization 的力量选择语言模型评估的最优样本子集。
💯 在评估语料库上的模型的同时评估模型在语料库上的表现。
🤗 通过与 huggingface transformers 和 datasets 的集成,支持 GPT2、Pythia、LLAMA 等模型。
🔎 语料库/数据集的高效表示,如 N 球面表示或潜在空间的白化,以提升评估质量。
喜欢你看到的?请考虑给这个项目一个星标(★)!
简单来说,Bayesian Optimization 旨在优化探索目标(图中的紫色区域)或利用目标(黑色点的高度)。它使用高斯过程作为推理的骨干,并使用获取函数来决定下一步在哪里采样。详见这里获取更深入的介绍。
由于 Bayesian Optimization 在处理昂贵的黑盒模型(换句话说:LLM)时表现很好,它非常适合这个特定的用例。Bocoel 使用 Bayesian Optimization 作为主干来探索由语料库给出的向量表示空间,这使它能够选择一个好的子集,充当语料库的一个小型快照。
LLM 非常慢,特别是生成型的(通常被称为 LLM),因为序列生成本质上是顺序的。
尽管 bocoel 需要使用编码器对整个语料库进行编码,但编码器比 LLM 快几个数量级,通过评估 LLM 中实际的任何节省,时间都会被弥补回来。
不需要可选依赖:
pip install bocoel
给我完整体验(所有可选依赖):
pip install "bocoel[all]"
查看 examples/getting_started 文件夹,了解该库的简单用法,仅需几行代码即可开始。
使用示例位于 examples 文件夹。API 参考可在此处找到。
欢迎贡献者!不要害羞。随时提交问题和 PR。对于 PR,请遵循贡献指南和行为准则。开放性和包容性受到高度重视。
🪑 更简单的使用方式。我应该为整个库提供一个高级包装器,使评估可以一行代码运行。
📊 评估结果的可视化模块。
🎲 与高斯过程集成替代方法(随机、kmedoids 等)。
🥨 与更多后端的集成,如 VLLM 和 OpenAI 的 API。
🆕 支持 Python 3.12+
代码在 BSD-3 License 下提供。
如果你发现这个项目对你的研究有帮助,请引用此作品。