flyteorg/flyte

GitHub: flyteorg/flyte

Flyte 是基于 Kubernetes 的可扩展数据和 ML 工作流编排平台,提供强类型、可复现的管道构建能力。

Stars: 6855 | Forks: 794

Flyte and LF AI & Data Logo

Flyte

:building_construction: :rocket: :chart_with_upwards_trend:

Current Release label Sandbox Status label Test Status label License label OpenSSF Best Practices label Flyte Helm Chart label Flyte Slack label

Flyte 是一个开源编排器,旨在促进构建生产级的数据和 ML 管道。它专为可扩展性和可复现性而构建,利用 Kubernetes 作为其底层平台。借助 Flyte,用户团队可以使用 Python SDK 构建管道,并无缝部署在云和本地环境中,从而实现分布式处理和高效的资源利用。

构建

使用 Python 或任何其他语言编写代码,并利用强大的类型引擎。

Getting started with Flyte

Deploy & Scale

Either locally or on a remote cluster, execute your models with ease.

Getting started with Flyte

快速开始 · 文档 · 资源

## 目录 * [快速开始](#quick-start) * [教程](#tutorials) * [功能特性](#features) * [谁在使用 Flyte](#whos-using-flyte) * [如何保持参与](#how-to-stay-involved) * [如何贡献](#how-to-contribute) ## 快速开始 1. 安装 Flyte 的 Python SDK ``` pip install flytekit ``` 2. 创建一个工作流(参见[示例](https://github.com/flyteorg/flytesnacks/blob/master/examples/basics/basics/hello_world.py)) 3. 使用以下命令在本地运行: ``` pyflyte run hello_world.py hello_world_wf ``` **准备好尝试 Flyte 集群了吗?** 1. 创建一个新的沙箱集群,作为 Docker 容器运行: ``` flytectl demo start ``` 2. 现在在集群上执行您的工作流: ``` pyflyte run --remote hello_world.py hello_world_wf ``` Getting started with Flyte, showing the welcome screen and Flyte dashboard **想看更多内容但不想安装任何东西?** [试用 Union 平台](https://signup.union.ai),它构建于 Flyte 之上,并可免费使用 GPU、数据血缘等功能! **准备好投入生产了吗?** 前往[部署指南](https://docs.flyte.org/en/latest/deployment/deployment/index.html)获取在不同环境中安装 Flyte 的说明 ## 教程 - [在 Flyte 代码库上微调 Code Llama](https://github.com/unionai-oss/llm-fine-tuning/tree/main/flyte_llama#readme) - [使用 Horovod 和 Spark 预测销售](https://docs.flyte.org/en/latest/flytesnacks/examples/forecasting_sales/index.html) - [使用 BLASTX 进行核苷酸序列查询](https://docs.flyte.org/en/latest/flytesnacks/examples/blast/index.html) ## 功能特性 🚀 **强类型接口**:通过使用 Flyte 类型定义数据护栏,在工作流的每一步验证您的数据。
🌐 **任何语言**:使用原始容器用任何语言编写代码,或选择 [Python](https://github.com/flyteorg/flytekit)、[Java](https://github.com/flyteorg/flytekit-java)、[Scala](https://github.com/flyteorg/flytekit-java) 或 [JavaScript](https://github.com/NotMatthewGriffin/pterodactyl) SDK 来开发您的 Flyte 工作流。
🔒 **不可变性**:不可变的执行通过防止对执行状态的任何更改来帮助确保可复现性。
🧬 **数据血缘**:在您的数据和 ML 工作流的整个生命周期中跟踪数据的流动和转换。
📊 **Map 任务**:使用 [map tasks](https://docs.flyte.org/en/latest/user_guide/advanced_composition/map_tasks.html) 以最少的配置实现并行代码执行。
🌎 **多租户**:多个用户可以共享同一个平台,同时维护各自独立的数据和配置。
🌟 **动态工作流**:[构建灵活且适应性强的 工作流](https://docs.flyte.org/en/latest/user_guide/advanced_composition/dynamic_workflows.html),这些工作流可以根据需要进行更改和发展,从而更容易响应不断变化的需求。
⏯️ 在继续执行之前[等待](https://docs.flyte.org/en/latest/user_guide/advanced_composition/waiting_for_external_inputs.html)**外部输入**。
🌳 **分支**:根据其他任务生成的静态或动态数据或输入数据,[有选择地执行](https://docs.flyte.org/en/latest/user_guide/advanced_composition/conditionals.html)工作流的分支。
📈 **数据可视化**:通过图表可视化数据、监控模型和查看训练历史。
📂 **FlyteFile 和 FlyteDirectory**:在本地和云存储之间传输[文件](https://docs.flyte.org/en/latest/user_guide/data_types_and_io/flytefile.html)和[目录](https://docs.flyte.org/en/latest/user_guide/data_types_and_io/flytedirectory.html)。
🗃️ **结构化数据集**:使用 [Structured Dataset](https://docs.flyte.org/en/latest/user_guide/data_types_and_io/structureddataset.html) 提供的抽象 2D 表示在类型之间转换数据帧,并强制执行列级类型检查。
🛡️ **从故障中恢复**:仅恢复失败的任务。
🔁 **重新运行单个任务**:在最细粒度级别重新运行工作流,而无需修改数据/ML 工作流的先前状态。
🔍 **缓存输出**:通过将 `cache=True` 传递给任务装饰器来缓存任务输出。
🚩 **任务内检查点**:在任务执行过程中[检查点进度](https://docs.flyte.org/en/latest/user_guide/advanced_composition/intratask_checkpoints.html)。
⏰ **超时**:定义一个超时时间,之后任务将被标记为失败。
🏭 **从开发到生产**:就像将您的[域](https://docs.flyte.org/en/latest/concepts/domains.html)从开发或暂存更改为生产一样简单。
💸 **Spot 或可抢占实例**:通过在任务装饰器中将 `interruptible` 设置为 `True`,在 Spot 实例上调度您的工作流。
☁️ **云原生部署**:在 AWS、GCP、Azure 和其他云服务上部署 Flyte。
📅 **调度**:[调度](https://docs.flyte.org/en/latest/user_guide/productionizing/schedules.html)您的数据和 ML 工作流在特定时间运行。
📢 **通知**:通过 Slack、PagerDuty 或电子邮件配置[通知](https://docs.flyte.org/en/latest/user_guide/productionizing/notifications.html),随时了解工作流状态的变化。
⌛️ **时间轴视图**:评估您每个 Flyte 任务的持续时间并识别潜在的瓶颈。
💨 **GPU 加速**:通过在任务装饰器中请求资源来启用和控制任务的 GPU 需求。
🐳 **通过容器进行依赖隔离**:为您的任务维护独立的依赖集,这样就不会出现依赖冲突。
🔀 **并行性**:Flyte 任务天生具有并行性,以优化资源消耗并提高性能。
💾 **动态分配资源**在任务级别。
## 谁在使用 Flyte 加入 LinkedIn、Spotify、Freenome、Pachama、Warner Bros. 等众多公司的行列,采用 Flyte 用于关键任务用例。有关采用者的完整列表以及如何添加您的组织或项目的信息,请访问我们的 [ADOPTERS](https://github.com/flyteorg/community/blob/main/ADOPTERS.md) 页面。 ## 如何保持参与 👥 [每月社区同步会议](https://www.addevent.com/event/EA7823958):在每个月的第一个星期二举行,Flyte 团队会在会上提供项目更新,社区成员可以分享他们的进展并提出问题。
💬 [Slack](https://slack.flyte.org/):加入 Slack 上的 Flyte 社区,与其他用户聊天、提问并获得帮助。
⚠️ [简报](https://lists.lfaidata.foundation/g/flyte-announce/join):加入此群组以接收 Flyte 每月简报。
📹 [Youtube](https://www.youtube.com/channel/UCNduEoLOToNo3nFVly-vUTQ):收看小组讨论、客户成功案例、社区更新和功能深入探讨。
📄 [博客](https://flyte.org/blog):在这里,您可以找到教程和功能深入探讨,帮助您了解有关 Flyte 的更多信息。
💡 [RFCs](rfc/.):RFCs 用于提出改进 Flyte 的新想法和功能。您可以参考它们以随时了解最新的发展,并为平台的增长做出贡献。 ## 许可证 Flyte 基于 Apache License 2.0 发布。请明智地使用它。
标签:Apache 2.0 许可证, Apex, DNS解析, ETL, EVTX分析, Flyte, JavaCC, JS文件枚举, LF AI & Data, MLOps, NIDS, Python, Python工具, Python 库, 代码示例, 任务调度, 分布式计算, 可扩展架构, 大数据, 子域名突变, 容器化, 工作流编排, 工作流自动化, 开源项目, 异常处理, 数据分析, 数据工程, 数据科学, 无后门, 日志审计, 机器学习, 模型训练, 流水线管理, 测试用例, 漏洞利用检测, 目录扫描, 请求拦截, 资源验证, 逆向工具