microsoft/EvoLib
GitHub: microsoft/EvoLib
EvoLib 是微软研究院提出的测试时学习框架,通过维护一个不断演进的知识库,使黑盒 LLM 在无需参数更新的情况下跨任务积累、重用和反思经验。
Stars: 8 | Forks: 1
# EvoLib: 基于演进库的测试时学习
[](https://arxiv.org/abs/2605.14477)
[](LICENSE)
论文官方代码发布
**[基于演进库的测试时学习](https://arxiv.org/abs/2605.14477)**
作者:Weijia Xu, Alessandro Sordoni, Chandan Singh, Zelalem Gero, Michel Galley, Xingdi Yuan, 和 Jianfeng Gao (Microsoft Research)。
## 概述
EvoLib 是一个测试时学习 (TTL) 框架,使黑盒大型语言模型能够**跨问题实例积累、重用和演进知识**,而无需任何参数更新或外部监督。EvoLib 不调整模型权重,而是维护一个共享的、不断演进的知识抽象库,这些抽象是从模型自身的推理轨迹中提取出来的:
- **模块化技能** — 可重用的过程(用于编程的函数、用于推理的子问题解决方案、用于 agentic 任务的子任务工作流)。
- **反思性见解** — 从过去错误中提炼出的自然语言规则。
该库通过抽象提取、合并以及基于**信息增益 (IG)** 和 **未来 IG** 的动态加权方案进行更新,这两者共同捕捉了抽象的即时实用性及其生成未来有用抽象的长期价值。
\
--embedding_endpoint \
--syn_test_data_file \
--log_file ./runs/bigcode.log
# LiveCodeBench v6 Hard (o4-mini, high reasoning)
python eval_main.py \
--task livecodebench \
--k_q_per_problem 3 \
--endpoint \
--embedding_endpoint \
--syn_test_data_file \
--log_file ./runs/livecode.log
# HMMT 2025-2026 (o4-mini, high reasoning)
python eval_main.py \
--task hmmt \
--k_q_per_problem 10 \
--endpoint \
--embedding_endpoint \
--log_file ./runs/hmmt.log
```
使用相同的 `--log_file` 重新运行将从日志中记录的最后一个 `[Iter N]` 处恢复。
库和解决方案快照将作为 `*.skill.json`, `*.insight.json`, `*.score.json` 和 `*.solution.json` 写入到日志文件旁边,每 20 次迭代更新一次。
### 在 AgentBoard (ScienceWorld / PDDL) 上运行 EvoLib
```
cd AgentBoard
python agentboard/eval_main.py \
--cfg-path eval_configs/evo_agent_all_tasks.yaml \
--tasks pddl \
--model o4-mini \
--wandb \
--log_path ./results/pddl-evolib-o4-mini \
--project_name evaluate-pddl-evolib-o4-mini \
--baseline_dir ./data/baseline_results
```
将 `--tasks pddl` 切换为 `--tasks scienceworld` 即可进行 ScienceWorld 实验。
## 引用
如果您在研究中使用 EvoLib,请引用:
```
@article{xu2026evolib,
title = {Test-Time Learning with an Evolving Library},
author = {Xu, Weijia and Sordoni, Alessandro and Singh, Chandan and Gero, Zelalem and Galley, Michel and Yuan, Xingdi and Gao, Jianfeng},
journal = {arXiv preprint arXiv:2605.14477},
year = {2026},
url = {https://arxiv.org/abs/2605.14477}
}
```
## 许可证
本项目基于 [MIT 许可证](LICENSE) 发布。来自上述上游项目的代码保留其原始许可证。
## 最佳实践
通过选择强大且管理良好的基础模型、仔细配置提示和评估设置、在目标任务分布上验证行为,以及随着时间的推移监控库的增长和抽象质量,可以实现更好的性能。
我们强烈鼓励用户使用支持稳健的负责任 AI 缓解措施的 LLM/MLLM,例如 Azure Open AI (AOAI) 服务。此类服务会根据负责任使用的最新行业标准,不断更新其安全和 RAI 缓解措施。有关在脚本和应用程序中使用基础模型时 AOAI 的更多最佳实践:
[什么是 Azure AI 内容安全?](https://learn.microsoft.com/en-us/azure/ai-services/content-safety/overview)
[Azure OpenAI 模型的负责任 AI 实践概述](https://learn.microsoft.com/en-us/legal/cognitive-services/openai/overview)
[Azure OpenAI 透明度说明](https://learn.microsoft.com/en-us/legal/cognitive-services/openai/transparency-note)
[OpenAI 的使用政策](https://openai.com/policies/usage-policies)
[Azure OpenAI 行为准则](https://learn.microsoft.com/en-us/legal/cognitive-services/openai/code-of-conduct)
用户有责任合法且合乎道德地获取其数据集。这可能包括确保获得适当的权利、确保获得使用音频/图像的同意,和/或在用于研究之前对数据进行匿名化处理。
提醒用户注意数据隐私问题,并鼓励用户审查与任何与 EvoLib 交互的模型和数据存储解决方案相关的隐私政策。
用户有责任确保 EvoLib 的使用符合相关的数据保护法规、许可条款和组织准则。
开发者应遵循透明度最佳实践,并告知最终用户他们正在与 AI 系统进行交互。
## 超出范围的使用
如果不进行进一步的测试和开发,我们不建议将 EvoLib 用于商业或实际应用中。它的发布仅供研究之用。
EvoLib 并非为所有可能的下游目的而设计或评估的。在基础模型无法可靠地评估和验证解决方案的任务中,EvoLib 算法的迭代特性可能会引入累积错误,从而降低下游性能。开发者在选择用例时应考虑其固有的局限性,并针对每个预期的下游用途评估并缓解准确性、安全性和公平性方面的担忧。
如果不进行进一步的测试和开发,EvoLib 不应用于那些不准确输出可能会建议导致伤害或对个人的法律、财务或生活机会产生负面影响的行动的敏感领域。
我们不建议在高风险决策环境中(例如在执法、法律、金融或医疗保健领域)使用 EvoLib。
## 联系方式
这项研究是由 Microsoft Research 进行的。我们欢迎受众提供反馈并进行合作。如果您对我们的技术有任何建议、问题,或观察到意外或冒犯性的行为,请联系 Weijia Xu (`weijiaxu@microsoft.com`)。
如果团队收到关于不良行为的报告或独立发现问题,我们将使用适当的缓解措施更新此仓库。
Left: BigCodeBench Hard (GPT-4o). Middle: LiveCodeBench v6 Hard (o4-mini).
Right: HMMT 2025–2026 (o4-mini).
标签:DLL 劫持, 人工智能, 大语言模型, 测试时学习, 用户模式Hook绕过, 研究论文, 逆向工具