runhouse

runhouse

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

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

Runhouse云计算机器学习远程执行资源共享Github开源项目

🏃‍♀️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()

<h2 id="supported-infra"> 🏗️ 支持的计算基础设施 </h2>

如果您没有看到您喜欢的计算设施,请联系我们(发邮件至 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。

👷‍♀️ 贡献

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

编辑推荐精选

Keevx

Keevx

AI数字人视频创作平台

Keevx 一款开箱即用的AI数字人视频创作平台,广泛适用于电商广告、企业培训与社媒宣传,让全球企业与个人创作者无需拍摄剪辑,就能快速生成多语言、高质量的专业视频。

即梦AI

即梦AI

一站式AI创作平台

提供 AI 驱动的图片、视频生成及数字人等功能,助力创意创作

扣子-AI办公

扣子-AI办公

AI办公助手,复杂任务高效处理

AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!

TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
蛙蛙写作

蛙蛙写作

AI小说写作助手,一站式润色、改写、扩写

蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。

AI辅助写作AI工具蛙蛙写作AI写作工具学术助手办公助手营销助手AI助手
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

下拉加载更多