sample-factory

GitHub
981 148 简单 1 次阅读 1周前MIT开发框架
AI 解读 由 AI 自动生成,仅供参考

Sample Factory 是一款专注于高性能强化学习(RL)的开源代码库,旨在提供极高效的同步与异步策略梯度算法(如 PPO)实现。简单来说,它就像是一个为人工智能代理打造的“超级训练工厂”,能够以惊人的速度处理海量数据,让 AI 在复杂环境中快速学会如何完成任务。

在传统的强化学习训练中,速度慢和资源消耗大往往是两大痛点。Sample Factory 正是为了解决这些问题而生。它通过高度优化的算法架构,大幅提升了数据吞吐率,从而在显著缩短训练时间的同时,降低了对硬件配置的要求。无论是简单的 Atari 游戏,还是复杂的 ViZDoom、IsaacGym 机器人仿真或 Mujoco 物理环境,Sample Factory 都能帮助模型以更低的成本达到业界领先(SOTA)的性能表现。

这款工具特别适合 AI 研究人员、机器学习工程师以及需要大规模训练智能体的开发者使用。如果你正在探索强化学习的前沿应用,或者苦恼于训练过程过于漫长,Sample Factory 将是一个得力的助手。其核心技术亮点在于灵活支持同步和异步两种训练模式,并提供了从单进程串行到大规模并行计算的多种选择,兼顾了调试的便捷性与生产环境的高效率。目前,Sample Factory 已更新至版本 2,拥有完善的文档和社区支持,代码风格规范且经过严格测试,是追求高效能强化学习解决方案的理想选择。

使用场景

一家游戏工作室的 AI 研发团队正致力于训练一个能在复杂 3D 环境中自主导航并完成任务的智能体(基于 ViZDoom 或类似仿真器),需要在有限的项目周期内完成大规模迭代。

没有 sample-factory 时

  • 训练效率低下:使用传统 RL 库时,数据采样吞吐量低,GPU 经常处于等待 CPU 处理数据的闲置状态,导致硬件利用率不足 30%。
  • 迭代周期漫长:为了达到可用的智能水平,模型需要数周时间才能收敛,严重拖慢了算法验证和功能开发的节奏。
  • 资源成本高昂:为了缩短训练时间,团队不得不申请昂贵的多节点集群资源,且因代码并行效率低,造成计算资源的极大浪费。
  • 调优难度极大:同步与异步训练的实现复杂,手动优化数据管道容易引入 Bug,研究人员大量时间耗费在工程调试而非算法创新上。

使用 sample-factory 后

  • 吞吐量显著提升:凭借高度优化的架构,sample-factory 实现了极高的数据采样率,GPU 利用率飙升至 90% 以上,充分释放硬件潜能。
  • 研发速度飞跃:得益于高吞吐特性,模型收敛时间从数周缩短至数天甚至数小时,团队每天可进行多次完整的实验迭代。
  • 硬件成本降低:在单台或多台标准服务器上即可实现此前需要大型集群才能达到的训练规模,大幅降低了算力预算。
  • 专注核心算法:sample-factory 提供了开箱即用的同步/异步训练模式及完善的 API,研究人员无需关心底层并行细节,可专注于奖励函数设计和策略优化。

sample-factory 通过极致的工程优化解决了强化学习中的“数据饥饿”问题,让团队以更低的成本和更快的速度实现 SOTA 级别的智能体训练。

运行环境要求

操作系统
  • Linux
  • macOS
GPU

未说明(支持 CPU 和 GPU 加速环境,具体取决于所选环境如 IsaacGym 等)

内存

未说明

依赖
notes不支持 Windows 系统。可通过 pip install sample-factory 安装。针对特定环境(如 Mujoco, VizDoom)需安装额外依赖(例如 pip install sample-factory[mujoco])。支持同步和异步训练模式,以及单进程调试模式。
python未说明
torch
gym
numpy
sample-factory hero image

快速开始

tests codecov pre-commit docs Code style: black Imports: isort GitHub license Downloads

Sample Factory

高吞吐量强化学习代码库。版本 2 已发布!🤗

资源:

Sample Factory 是什么?

Sample Factory 是最快的强化学习库之一,专注于高效同步和异步的策略梯度算法实现(PPO)。

Sample Factory 经过全面测试,被众多研究人员和从业者广泛使用。 我们的实现以在多种任务领域中达到最先进(SOTA)性能而闻名,同时最大限度地减少所需的训练时间和硬件需求。 以下视频展示了使用 Sample Factory 训练的 ViZDoom、IsaacGym、DMLab-30、Megaverse、Mujoco 和 Atari 智能体:

使用 Sample Factory 2.0 训练的 VizDoom 智能体 使用 Sample Factory 2.0 训练的 IsaacGym 智能体
使用 Sample Factory 2.0 训练的 DMLab-30 智能体 使用 Sample Factory 2.0 训练的 Megaverse 智能体
使用 Sample Factory 2.0 训练的 Mujoco 智能体 使用 Sample Factory 2.0 训练的 Atari 智能体

主要特性:

本 README 仅提供库的简要概述。 更多详细信息请访问完整文档:https://samplefactory.dev

安装

只需从 PyPI 安装即可:

pip install sample-factory

SF 已知可在 Linux 和 macOS 上运行。目前暂不支持 Windows。 有关特定于环境的安装说明,请参阅 文档

快速入门

使用命令行通过现有集成之一训练智能体,例如 Mujoco(可能需要先运行 pip install sample-factory[mujoco]):

python -m sf_examples.mujoco.train_mujoco --env=mujoco_ant --experiment=Ant --train_dir=./train_dir

当达到预期性能时,按 Ctrl+C 停止实验,然后评估智能体:

python -m sf_examples.mujoco.enjoy_mujoco --env=mujoco_ant --experiment=Ant --train_dir=./train_dir

# 或者使用替代的评估脚本,虽然不进行渲染,但速度更快!(请确保 `sample_env_episodes` 大于等于 `num_workers` * `num_envs_per_worker`)。
python -m sf_examples.mujoco.fast_eval_mujoco --env=mujoco_ant --experiment=Ant --train_dir=./train_dir --sample_env_episodes=128 --num_workers=16 --num_envs_per_worker=2

在基于像素的 VizDoom 环境中执行相同的操作(可能需要运行 pip install sample-factory[vizdoom],请同时参阅 VizDoom 特定说明文档):

python -m sf_examples.vizdoom.train_vizdoom --env=doom_basic --experiment=DoomBasic --train_dir=./train_dir --num_workers=16 --num_envs_per_worker=10 --train_for_env_steps=1000000
python -m sf_examples.vizdoom.enjoy_vizdoom --env=doom_basic --experiment=DoomBasic --train_dir=./train_dir

使用 TensorBoard 监控任何正在运行或已完成的实验:

tensorboard --logdir=./train_dir

(或参阅文档了解 WandB 集成方法)。

要继续深入,请复制并修改现有的环境集成代码,以在您自定义的环境中训练智能体。我们提供了适用于各种支持环境的示例,请参阅文档获取更多详细信息。

致谢

没有众多人士的杰出贡献,本项目将无法实现。在此特别感谢:

  • Vladlen Koltun,尤其是在项目早期阶段,他为我提供了卓越的指导与支持,帮助我巩固了最终形成该库的核心理念。
  • 我的学术导师 Gaurav Sukhatme,多年来一直支持我的博士研究,并始终是一位出色的导师。
  • Zhehui Huang 对原始 ICML 论文投稿的贡献、对库的严谨测试与评估工作,以及将其应用于自身研究的努力。
  • Edward Beeching 对代码库的诸多出色贡献,包括混合动作分布、自定义模型构建器的新版本、多种环境集成,以及通过 HuggingFace 集成推广该库!
  • Andrew ZhangMing Wang 在 HuggingFace 实习期间为代码库和文档做出的大量贡献!
  • HuggingFace 的 Thomas Wolf 及其团队提供的难以置信(且出乎意料的)支持,以及他们为开源社区所做的卓越工作。
  • Erik Wijmans 提供的反馈与洞见,尤其是他利用 PyTorch 的 PackedSequence 实现 RNN 反向传播、多层 RNN 等功能!
  • Tushar Kumar 对原始论文的贡献,以及他在快速队列实现方面的帮助。
  • Costa Huang 开发了 CleanRL,致力于强化学习算法的基准测试,并提供了宝贵的反馈与见解!
  • Denys Makoviichuk 开发了 rl_games 这一极速强化学习库,为本库的诸多特性(如回报归一化、自适应学习率等)提供了灵感与反馈。
  • Eugene Vinitsky 将本库应用于其研究,并提供了宝贵的意见。
  • RESL 实验室的所有同事,他们在各自项目中使用了 Sample Factory,并给予了反馈与洞见!

衷心感谢所有未在此提及的各位,感谢你们的代码贡献、PR、问题与疑问!正是有了社区的支持,才成就了这个项目!

引用

如果您在工作中使用了本仓库,或希望引用它,请参考我们的 ICML 2020 论文。

@inproceedings{petrenko2020sf,
  author    = {Aleksei Petrenko and
               Zhehui Huang and
               Tushar Kumar and
               Gaurav S. Sukhatme and
               Vladlen Koltun},
  title     = {Sample Factory: Egocentric 3D Control from Pixels at 100000 {FPS}
               with Asynchronous Reinforcement Learning},
  booktitle = {Proceedings of the 37th International Conference on Machine Learning,
               {ICML} 2020, 13-18 July 2020, Virtual Event},
  series    = {Proceedings of Machine Learning Research},
  volume    = {119},
  pages     = {7652--7662},
  publisher = {{PMLR}},
  year      = {2020},
  url       = {http://proceedings.mlr.press/v119/petrenko20a.html},
  biburl    = {https://dblp.org/rec/conf/icml/PetrenkoHKSK20.bib},
  bibsource = {dblp computer science bibliography, https://dblp.org}
}

如有任何问题、意见或咨询,请加入 Discord 社区。欢迎提交 GitHub 问题和拉取请求!请查看贡献指南

版本历史

1.0.02020/06/24

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|今天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|昨天
Agent图像开发框架