Project Icon

runhouse

灵活高效的Python机器学习远程部署框架

Runhouse是一个Python机器学习开发框架,支持将函数和类快速部署到各种云计算基础设施。它实现了从笔记本电脑远程运行和调试代码,提供了灵活性和成本优化。该框架简化了从研究到生产的过程,支持跨集群、区域或云的复杂操作,并具备资源共享和版本控制功能。Runhouse适合在异构计算环境中执行Python的团队,能够提升机器学习开发的成熟度和效率。

🏃‍♀️Runhouse🏠

Discord Twitter 网站 文档 Den

👵 欢迎回家!

Runhouse 能够在研究和生产环境中实现快速、高效的机器学习开发。 它允许你将 Python 函数和类分发到任何你自己的云计算基础设施上,并像调用本地函数一样即时调用它们。这意味着:

  1. 你可以从笔记本电脑原生地在远程 GPU 或其他强大的基础设施(如 Ray、Spark 或 Kubernetes)上运行和调试代码。然后,你的应用程序代码可以在 CI/CD 或生产环境中原样运行,仍然将工作分派到远程基础设施。
  2. 你的应用程序(包括基础设施步骤)以代码的形式被捕获,消除了手动繁琐工作,并可以在团队内部以及在研究和生产环境中完全复现。
  3. 你拥有无与伦比的灵活性来扩展和优化成本,团队通常可以节省约 50% 的成本。

跨集群、地区或云的编排变得轻而易举,复杂的逻辑(如扩展、容错或多步骤工作流)也是如此。

Runhouse 适用于哪些情况?

  • 当研究到生产的过程缓慢且痛苦时,既由于研究和生产数据/环境的不匹配,也由于编排器管道缺乏可调试性。
  • 如果团队需要一种与基础设施无关的方式来执行 Python,以灵活地在异构计算环境中运行单一工作流,甚至可以在多个云提供商上运行。
  • 结束对 SageMaker 或 Vertex 等一体化平台的挫折感,转向更灵活的解决方案来开发和部署 ML 代码。
  • 随着组织从一次性 ML 项目转向规模化 ML 飞轮,ML 成熟度不断提高。

亮点:

  • 🚀 立即将 Python 函数、类和数据分发到远程基础设施,并像调用本地函数一样即时调用它们。部署/重新部署几乎是即时的,日志会实时回传,使迭代速度极快。
  • 🐍 无需 DSL、装饰器、yaml、CLI 咒语或样板代码。只需使用你自己的常规 Python 代码,就可以部署到任何运行 Python 的地方。
  • 👩‍🔬 无需特殊打包或部署处理;研究和生产代码完全相同。可以从 CI/CD、编排器或应用程序中像调用微服务一样调用 Runhouse 部署的函数。
  • 👩‍🎓 自带基础设施,支持广泛且不断增长 - Ray、Kubernetes、AWS、GCP、Azure、本地、本地部署等。
  • 👩‍🚀 极高的可复现性和可移植性。没有锁定,因为当你想要转移、扩展或选择最便宜的定价时,更改基础设施就像更改指定不同集群的一行代码一样简单。
  • 👷‍♀️ 将 Python 函数或类作为强大的服务共享,包括 HTTPS、身份验证、可观察性、扩展、自定义域名、密钥、版本控制等。
  • 👩‍🍳 支持复杂的工作流或服务和高级逻辑,因为你的组件是解耦的,而且基础设施/模块可以通过代码进行交互。

Runhouse API 非常简单。将你的模块(函数和类)发送到计算基础设施上的环境(工作进程)中,如下所示:

import runhouse as rh
from diffusers import StableDiffusionPipeline

def sd_generate(prompt, **inference_kwargs):
    model = StableDiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-2-base").to("cuda")
    return model(prompt, **inference_kwargs).images

if __name__ == "__main__":
    gpu = rh.cluster(name="rh-a10x", instance_type="A10G:1", provider="aws").up_if_not()
    sd_env = rh.env(reqs=["torch", "transformers", "diffusers"], name="sd_env")

    # 部署函数和环境(同步本地代码更改并安装依赖项)
    remote_sd_generate = rh.function(sd_generate).to(gpu, env=sd_env)

    # 这个调用实际上是对远程服务器上运行的应用程序的 HTTP 请求
    imgs = remote_sd_generate("A hot dog made out of matcha.")
    imgs[0].show()

    # 你也可以直接通过 HTTP 调用它,例如从其他机器或语言
    print(remote_sd_generate.endpoint())

使用上述简单结构,您可以构建、调用和共享:

  • 🛠️ AI基础组件:预处理、训练、微调、评估、推理
  • 🚀 高阶服务:多步推理、端到端工作流、评估测试、超参数优化
  • 🧪 用户验收测试端点:为客户团队提供即时端点进行测试和集成
  • 🦺 最佳实践工具:个人身份信息模糊处理、内容审核、数据增强

🛋️ 使用Runhouse Den进行基础设施监控、资源共享和版本控制

通过Runhouse Den(这个代码库的配套产品),您可以解锁独特的可观察性和共享功能。

将函数或类发送到远程计算后,Runhouse允许您将其作为服务持久化并共享,将原本冗余的AI活动转变为团队或公司内的通用模块化组件。

  • 这使共享资源可观察。通过Den,您可以看到资源被调用的频率(以及由谁调用),以及它所在机器的GPU利用率。
  • 这提高了成本效益 - 想象10个ML管道和研究人员调用相同的共享预处理、训练、评估或批量推理服务,而不是每个人都分配自己的计算资源。
  • 这提高了速度和可复现性。避免为每个管道部署略有不同的代码,改进方法一旦发布就可以部署给所有人。

从任何地方登录以保存、共享和加载资源,并在单一界面上观察使用情况、日志和计算利用率:

runhouse login

或从Python中:

import runhouse as rh
rh.login()

扩展上面的示例,通过Den共享和加载我们的应用:

remote_sd_generate.share(["my_pal@email.com"])

# 现在可以从任何地方重新加载服务存根,您和您的合作者随时可用
# 注意,即使您更新、移动或扩展服务,此代码也无需更改
remote_sd_generate = rh.function("/your_username/sd_generate")
imgs = remote_sd_generate("更多抹茶热狗。")
imgs[0].show()

🏗️ 支持的计算基础设施

如果您没有看到您喜欢的计算设施,请联系我们(发邮件至 first name@run.house)。

  • 本地 - 支持
  • 单机 - 支持
  • Ray集群 - 支持
  • Kubernetes - 支持
  • 亚马逊云服务(AWS)
    • EC2 - 支持
    • EKS - 支持
    • SageMaker - 支持
    • Lambda - Alpha
  • 谷歌云平台(GCP)
    • GCE - 支持
    • GKE - 支持
  • 微软Azure
    • 虚拟机 - 支持
    • AKS - 支持
  • Lambda Labs - 支持
  • Modal Labs - 计划中
  • Slurm - 探索中

👨‍🏫 了解更多

🐣 入门:安装、设置和快速演示。

📖 文档: 详细的API参考、基本API示例和演示、端到端教程,以及高级架构概述。

👩‍💻 博客:深入探讨Runhouse功能、使用案例和AI基础设施的未来。

👾 Discord:加入我们的社区提问、分享想法并获取帮助。

𝑋 Twitter:关注我们获取更新和公告。

🙋‍♂️ 获取帮助

Discord上给我们发消息,给我们发邮件(first name@run.house),或创建一个issue。

👷‍♀️ 贡献

我们欢迎贡献!请查看贡献指南

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号