概览
BoFire(Bayesian Optimization Framework Intended for Real Experiments,面向真实实验的贝叶斯优化框架)是一个 Python 工具包,用于定义实验搜索空间并选择后续实验。其 README 将反应、配方、数字孪生和闭环优化列为预期应用领域。它支持单目标和多目标贝叶斯优化,并以 BoTorch 作为底层贝叶斯优化基础。它是用于构建优化工作流的框架,而非独立的预测模型。
一个问题通过输入特征、输出特征、目标和可选约束来表示,并汇集在 Domain 中。文档列出的变量类型包括连续型、离散型和分类型。目标与输出分别定义,因此可以设定最小化、最大化或趋近某个目标值。实验记录将候选输入值与测量或评估得到的输出结合起来;策略使用这些记录并返回建议的候选设置。README 通过 SoboStrategy、qLogEI 以及围绕 Himmelblau 函数进行迭代的 tell/ask 循环展示了这一工作流。
面向化学的支持包括分子编码和核函数;README 将已实现的分子核函数归功于 GAUCHE。可序列化的问题、策略和代理模型定义支持与 RESTful 工作流集成。另有 LLMStrategy,它使用问题描述和以往实验作为语言模型上下文来提出候选方案。
示例评估的是数学函数;执行物理实验并提供实验结果仍是单独的工作流步骤。可选依赖组区分了优化、化学信息学和 LLM 功能。该项目的版本策略允许在 BIGRELEASE 和 MAJOR 版本中对公开 API 作出不兼容变更,因此应针对所选版本检查集成情况。
主要功能
- 表示包含连续型、离散型和分类型参数的混合空间,并将目标与输出特征分别定义。
- 支持单目标和多目标贝叶斯优化,包括最小化、最大化和面向目标值的优化。
- 提供特定约束和通用约束、黑盒输出约束、受约束采样以及遵循约束的实验设计。
- 包含用于涉及分子物种的优化的化学编码和分子核函数。
- 可序列化问题定义、优化策略和代理模型,以用于 RESTful 集成。
- 提供 `LLMStrategy`,可根据书面问题描述和以往实验提出候选方案;同时支持文档所述的 `tell`/`ask` 优化工作流。
使用场景
- 预期评估:构建反应优化实验方案,纳入连续操作条件和分类选项,然后根据记录的实验结果评估所提候选方案。
- 预期评估:探索受约束的配方设计,并针对选定的测量属性比较单目标与多目标策略。
- 预期评估:使用有代表性的实验数据集,评估分子编码和核函数对分子物种候选选择的适用性。
- 预期评估:将序列化的优化定义集成到闭环服务中,使其能够向策略传递测量结果并获取后续候选方案。
使用方式
- 查阅安装指南,并根据预期工作流选择依赖项。README 区分了基础贝叶斯优化与可选的化学信息学和 LLM 功能;请核实所选版本的要求。
- 按照 README 示例定义输入特征及其边界、输出特征和目标。将它们组合到
Domain中,并添加适合问题的约束。 - 准备初始候选方案并获取其测量或模拟输出。保持输入和输出标识符一致,以确保生成的实验记录与领域定义相匹配。
- 选择优化策略。示例使用带有
qLogEI的SoboStrategy;通过tell提供已有实验,通过ask获取候选方案,在外部评估这些方案并返回结果。 - 如需集成到服务中,请阅读数据模型和函数指南。在将其连接到实验室工作流之前,先使用有代表性的数据评估序列化和优化循环。