Flower SuperGrid Federation 管理实践:创建、协作归档与 CLI 自动化操作 📅 发布时间:2026/9/17 12:44:41 👁 浏览次数: Flower SuperGrid Federation 管理实践创建、协作归档与 CLI 自动化操作【免费下载链接】flowerFlower: A Friendly Federated AI Framework项目地址: https://gitcode.com/GitHub_Trending/flo/flower本文基于 Flower 框架官方文档 how-to-create-and-manage-federations.rst 展开系统讲解 SuperGrid 中 Federation联邦的两种类型Simulation 与 Deployment、完整的 UI 创建与成员管理工作流以及 Flower CLI 对应命令。读完本文你将能够在 SuperGrid 上创建并管理团队联邦、邀请成员协作、归档历史联邦并能用flwr federation系列命令以脚本化方式完成同样的操作。Federation 是什么两种联邦类型与成员可见性Federation 是 SuperGrid 中「一组用户 可参与 Flower 运行的 SuperNode」共同组成的工作空间workspace。使用本指南的前提是你已经拥有 Flower 账号并且可以访问 SuperGrid。SuperGrid 支持两种联邦类型Simulation 联邦使用模拟虚拟SuperNode 运行 Flower App。适合在接入真实 SuperNode 之前先测试和迭代 App。Deployment 联邦在已连接的 SuperNode 上运行 Flower App。注意Deployment 联邦需要部署访问权限deployment access需向 Flower Labshelloflower.ai申请开通。一个关键语义是同一联邦内的所有成员都能看到其他成员发起的运行runs并且每个成员都可以在该联邦中发起新的运行。也就是说联邦既是资源池SuperNode 的集合也是协作边界成员之间共享运行视图。在 SuperGrid UI 中创建 Federation打开 SuperGrid 的 Federations 页面创建联邦时先选择类型Simulation 或 Deployment再填写联邦名称与必要配置。两点值得注意联邦数量没有上限可以按需创建多个联邦。在联邦仪表板中每个联邦名称旁都有标签标明其类型simulation 或 deployment。创建 Simulation 联邦的步骤点击New Federation选择Simulation类型填写联邦名称设置模拟 SuperNode 的数量点击Create。模拟 SuperNode 数量之后可以随时修改。文档给出的实操建议是一开始用较小的数量如 5 或 10让运行保持快速等迭代稳定后再通过配置调大。创建 Deployment 联邦流程相同只是在选择类型时改为Deployment选一个有意义的名称后点击Create。对于 Deployment 联邦你还需要把 SuperNode 加入联邦——可以现在就按照官方「将 SuperNode 接入 SuperGrid」的指南接入自己的 SuperNode也可以稍后再做。从源码结构看flwr federation子命令集中除了文档提到的命令外还提供add-supernode与remove-supernode两个子命令见 federation 子命令注册说明 SuperNode 与联邦的绑定关系是平台的一等概念。联邦最大的价值出现在多名成员各自贡献自己的 SuperNode、共同协作运行时。管理 Federation成员邀请、角色与归档联邦创建后所有者owner可以邀请其他 Flower 用户加入协作。被邀请用户接受邀请后即成为联邦成员。成员可以接入自己的 SuperNode、查看联邦内的运行、并发起自己的运行。所有权ownership决定管理权限具体为owner 可以邀请用户owner 可以将用户移出联邦owner 可以在协作结束后归档联邦普通成员可以随时自行退出联邦。邀请用户无论是 Simulation 还是 Deployment 联邦都可以邀请用户但只有 Deployment 联邦能接入真实的 SuperNode。操作流程打开你的联邦进入Members标签页。新联邦中只会列出你自己的账号身份为 owner点击Invite User输入要邀请的 Flower 账号用户名点击Send Invitation邀请会以待处理状态Pending出现在成员列表中。在 pending 期间owner 可以点击删除图标撤销revoke该邀请被邀请用户登录 Flower 并在个人主页profile page中会看到该邀请邀请上显示联邦 ID 以及发出邀请的用户名接受邀请后该用户即成为联邦成员其仪表板中会出现该联邦可以查看运行、发起新运行并在 Deployment 联邦中接入自己的 SuperNode。成员随时可以退出联邦。归档 Federation当项目或协作结束时归档联邦该操作只有 owner 可以执行。操作方式在联邦仪表板中点击归档图标确认之后联邦即被归档并移入已归档archived列表。归档前务必确认协作已完成、成员不再需要发起任务归档之后联邦仅作为历史记录保留而不再是活跃工作空间——不能发起新的运行也不能再增删用户或 SuperNode。用 Flower CLI 完成同样的操作SuperGrid UI 中的上述操作全部可以用 Flower CLI 完成。首先登录 SuperGrid$ flwr login supergrid创建联邦--simulation标志决定类型从源码看create 命令 中simulation参数默认值为False即不带该标志时创建的就是 deployment 联邦# 创建 deployment 联邦 $ flwr federation create federation-name supergrid \ --description federation-description # 创建 simulation 联邦 $ flwr federation create federation-name supergrid \ --description federation-description \ --simulation列出联邦 / 查看联邦详情# 列出你加入的所有联邦 $ flwr federation list supergrid # 查看某个联邦的详情成员、SuperNodes、运行 $ flwr federation list supergrid --federation username/federation-name从 list 命令源码 可以看到两个实用细节列表输出会区分simulation/deployment两种 Runtime以及active/archived两种状态带上--federation参数后详情视图会分别渲染成员表账号 角色、SuperNode 表Node ID、Owner、Status与运行表Run ID、App、Status、Elapsed。此外 CLI 支持--format json输出机器可读格式对脚本化处理很有用且--verbose会把已归档联邦一并显示在列表末尾。配置 Simulation 联邦例如调整模拟 SuperNode 数量$ flwr federation simulation-config username/federation-name supergrid \ --num-supernodes 20更多的 Simulation Runtime 选项见官方文档中 Simulation Runtime 的 Customize the Simulation Runtime 章节。根据 simulation-config 源码该命令的完整参数集如下必须至少提供一个选项否则会报UsageError参数类型 / 约束说明--num-supernodesint最小 1模拟 SuperNode 的数量--client-resources-num-cpusint最小 1每个 ClientApp 执行时分配的 CPU 数--client-resources-num-gpusfloat最小 0.0每个 ClientApp 可使用的 GPU 显存比例--backend-name目前仅支持raySimulation Runtime 的后端名称--verbose标志让 Simulation Runtime 输出详细日志--init-args-num-cpusint最小 1提供给 Simulation Runtime 本身的 CPU 数--init-args-num-gpusint最小 0提供给 Simulation Runtime 本身的 GPU 数--init-args-logging-levelstr控制 Simulation Runtime 的日志级别--init-args-log-to-drivertrue/false是否将 Simulation Runtime 的日志向上传播管理邀请# 为某账号创建加入联邦的邀请 $ flwr federation invite create account-name \ username/federation-name supergrid # 列出你账号名下的邀请发出的 收到的 $ flwr federation invite list supergrid # 接受邀请加入联邦 $ flwr federation invite accept username/federation-name supergrid # 撤销你创建的邀请 $ flwr federation invite revoke account-name \ username/federation-name supergrid移除账号仅限 owner 执行$ flwr federation remove-account username/federation-name \ account-name supergrid归档联邦仅限 owner 执行且不可撤销$ flwr federation archive username/federation-name supergrid源码级印证命令调用链与权限模型从源码结构看上述 CLI 命令的调用链是一致的命令函数读取 SuperLink 连接配置 → 构造 protobuf 请求如 CreateFederationRequest→ 通过ControlHttpClient向 SuperLink 的 Control API 发送 → 打印结果或 JSON。例如flwr federation create最终调用stub.CreateFederation(request)并把返回的联邦 ID 以账号/名称形式输出flwr federation archive则发送ArchiveFederationRequest见 archive 命令。服务端的权限语义集中在抽象基类 FederationManager 的方法契约中它与 UI 文档中的权限描述一一对应create_federationsimulation参数未设置None时manager 默认按 deployment 运行时处理——这与 CLI 中--simulation为可选标志的行为一致create_invitation仅 owner 可发起若受邀者已是成员、或已存在一条 pending 邀请会抛出PermissionError——对应 UI 中「同一用户只能有一条待处理邀请」的表现revoke_invitation/accept_invitation撤销仅限 owner接受邀请时若联邦不存在或该账号没有 pending 邀请抛出ValueErrorremove_account若目标账号为None则表示调用者自己退出移除他人仅限 ownerowner 永远不能被移除也不能移除自己被移除账号名下的 SuperNode 会一并从联邦中软移除soft-removedcan_execute基于ActionType与ActionContext的鉴权入口非授权动作抛出EntitlementError是「Deployment 联邦需要 deployment 访问权限」这类门槛在代码层的落点。这些契约配合 CLI 的--format json输出意味着联邦的创建、邀请、归档等生命周期管理可以被完全纳入 CI/CD 或运维脚本中而不必依赖 SuperGrid 网页界面。小结Federation 是 SuperGrid 的协作工作空间分Simulation虚拟 SuperNode快速迭代 App与Deployment真实 SuperNode需开通部署权限两类成员之间共享运行视图并可各自发起运行。UI 流程New Federation创建数量无上限→Members标签页邀请/撤销/接受邀请pending 状态可撤销→ 协作结束后由 owner 归档不可再发起运行、不可增删成员与 SuperNode。CLI 与 UI 能力对齐flwr federation create / list / simulation-config / invite create|list|accept|revoke / remove-account / archive且均支持--format jsonsimulation-config提供 9 个参数用于精细控制 Simulation Runtime节点数、CPU/GPU 配额、ray 后端等。源码层面CLI 命令经ControlHttpClient发送 protobuf 请求FederationManager的抽象契约明确了 owner-only 权限边界与邀请/移除的异常语义为自动化管理联邦提供了可依赖的行为保证。【免费下载链接】flowerFlower: A Friendly Federated AI Framework项目地址: https://gitcode.com/GitHub_Trending/flo/flower创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考