alexhernandezgarcia/gflownet
Generative Flow Networks - GFlowNet
解决的问题
该库提供了一个用于训练和扩展生成流网络(GFlowNets)的框架,GFlowNets旨在根据奖励函数按比例采样多样化的对象。这在科学发现问题中特别有用——例如蛋白质、分子或晶体的逆向设计,其目标是找到多个高奖励解,而非单一最优解。
工作原理
GFlowNets 使用组合性原则,将复杂对象的生成分解为一系列中间状态。该库通过四个核心组件实现这一点:
- Environment:定义状态空间和动作空间(例如,一个俄罗斯方块棋盘或一个拼字游戏单词)。
- Proxy:一个函数或模型,为给定状态提供奖励(例如,单词价值评分器或预测分子能量的预训练模型)。
- Policy Models:神经网络(通常是MLP),用于建模状态之间的前向和后向转移。
- GFlowNet Agent:中心协调器,管理环境、策略和代理之间的交互,并使用各种损失函数优化策略。
适用人群
从事概率生成建模的研究人员和开发者,特别是专注于科学发现、材料科学和分子设计的群体。
主要亮点
- 多种优化目标:支持流匹配(FM)、轨迹平衡(TB)、详细平衡(DB)和前瞻(FL)损失函数。
- 可扩展架构:设计为便于实现自定义环境和奖励代理。
- PyTorch 集成:基于 PyTorch 构建,并与 Weights & Biases 集成以进行实验追踪。
- 科学应用支持:包含材料和分子建模的特定依赖项(例如,Crystal-GFN)。
相关
- 项目
- 项目
- 项目
- 项目
- 项目