尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Flower v1.24.0 版本深度解析:Python 3.13 支持、联邦管理命令与统一心跳机制
Flower v1.24.0 版本深度解析Python 3.13 支持、联邦管理命令与统一心跳机制【免费下载链接】flowerFlower: A Friendly Federated AI Framework项目地址: https://gitcode.com/GitHub_Trending/flo/flower本文基于 Flower 开源联邦学习框架Friendly Federated AI Framework的 v1.24.0 变更日志 编写结合仓库源码逐一剖析该版本的核心改动新增 Python 3.13 支持、flwr list视图改进、联邦Federation命令与内部 API 扩展、统一应用心跳机制、性能优化以及 Python 3.9 支持移除、protobuf 5.x 升级等不兼容变更。读完本文你将清楚了解 v1.24.0 的升级影响、新命令的用法以及这些改动背后的源码实现。Flower v1.24.0发布于 2025-11-30是一次面向联邦学习运行体验与工程基础设施的重要版本更新。它一方面向下游用户提供更清晰的 CLI 观测能力flwr list、flwr federation show/list另一方面通过统一心跳机制解决应用进程崩溃后挂起的顽疾同时将 Python 最低版本提升至 3.10、protobuf 升级至 5.x。本文以该版本 Changelog 为骨架结合当前仓库的 CLI 与 supercore 源码逐项展开解读。一、版本概况与贡献者v1.24.0 由以下贡献者共同完成按git shortlog顺序Charles Beauville、Chong Shen Ng、Daniel J. Beutel、Daniel Nata Nugraha、Heng Pan、Javier、Patrick Foley、Robert Steiner、Yan Gao。该版本的主要变更集中在五条主线新增 Python 3.13 支持PR #6116、#6119、#6132改进flwr list视图#6117扩展联邦命令与内部 API涉及 20 个 PR引入统一应用心跳机制涉及 14 个 PR一系列 Bug 修复、导入性能与 SQLite 性能优化二、Python 版本支持调整新增 3.13放弃 3.9新增 Python 3.13 支持v1.24.0 正式为flwr增加 Python 3.13 支持CI 与数据集测试同步更新并将ray依赖升级以保证与 Python 3.13 的兼容性。这意味着在最新 Python 运行时上运行 Flower 客户端、服务端与模拟器flwr-simulation时不再有版本兼容障碍。移除 Python 3.9 支持不兼容变更作为配套调整v1.24.0 将 Python 最低版本从 3.9 提升到 3.10PR #6118 可见框架的requires-python已收紧为3.11,4.0即v1.24.0 官方声明最低支持 Python 3.10当前仓库代码状态要求 Python 3.11 及以上。升级到 v1.24.0 之前请确认你的运行环境满足 Python 版本要求仍在 Python 3.9 上的项目需要先升级解释器同时留意后续章节提到的 protobuf 5.x 对 TensorFlow 版本的新约束。三、protobuf 升级至 5.x 与 TensorFlow 兼容性约束v1.24.0 将protobuf依赖升级至5.29.0PR #6104使flwr使用最新的 gRPC 协议栈并保持与 TensorFlow 2.20 的兼容。这里有一条必须注意的兼容性红线protobuf 5.x 与 TensorFlow早于 2.18 的版本不兼容。如果你的项目依赖旧版 TensorFlow如 2.17 或更早直接升级 Flower 到 v1.24.0 会引入 protobuf 冲突需要先升级 TensorFlow 到 2.18推荐 2.20再升级 Flower。这是 v1.24.0 升级路径中最容易踩坑的一处。四、CLI 可观测性升级flwr list与联邦命令v1.24.0 的重点之一是让用户看得清联邦中的运行状态涉及flwr list视图改进与联邦命令扩展两条线。4.1flwr list默认精简、按需展开此前flwr list默认输出过多细节v1.24.0 对其进行了调整PR #6117默认视图更精简仅展示 Run ID、Federation、AppAPP_IDAPP_VERSION、Status、Elapsed、Status Changed 等核心列--run-id参数提供详细信息指定 Run ID 后输出转为垂直详表追加 FAB Hash、Status Details、各阶段时间戳Pending/Starting/Running/Finished At、网络流量inbound/outbound/total以字节为单位与计算耗时ServerApp/ClientApp/total。从源码 framework/py/flwr/cli/ls.py 可以看到run_id与limit不能同时使用源码中会显式抛出ValueErrorframework/py/flwr/cli/ls.py#L110-L113_to_table负责默认列表的富文本表格渲染_to_detail_table负责单个 Run 的垂直详表framework/py/flwr/cli/ls.py#L166-L276状态着色逻辑_get_status_style定义了finished:completed绿色、finished:failed红色、finished:stopped黄色、starting/running蓝色、pending灰暗色的展示约定framework/py/flwr/cli/ls.py#L139-L163时间戳统一为 ISO 8601 UTC 格式YYYY-MM-DD HH:MM:SSZ。此外flwr list --format json可输出机器可读的结构化结果字段包含run-id、federation-id、fab-id、fab-version、fab-hash、状态与各时间戳、network-trafficinbound/outbound/total 字节数与compute-timeserverapp/clientapp/total 秒数便于脚本化监控framework/py/flwr/cli/ls.py#L279-L324。4.2 联邦命令扩展flwr federation show与flwr federation listv1.24.0 对既有的 federation 概念进行了细化与扩展PR 涉及 20 个含 #6067、#6078、#6082、#6086、#6088、#6103、#6152 等目标是让flwr federation show与flwr federation list对默认联邦中的 SuperNode 与 runs 提供更清晰的可见性。从实现看联邦命令对应 framework/py/flwr/cli/federation/ls.pyflwr federation list别名flwr federation ls列出所有联邦表格包含 Federation、Description、Runtimesimulation或deployment、Statusactive/archived四列默认只显示活跃联邦--verbose额外展示已归档联邦flwr federation list --federation ID等价于 show 语义展示单个联邦的完整细节包括四张表格——成员表Federation Members账户名与角色、SuperNodes 表Node ID、Owner、Status、Simulation Configuration 表当联邦为模拟模式时展示num-supernodes、client-resources-num-cpus、client-resources-num-gpus、backend等键值以及 Runs 表Run ID、App、Status、Elapsed节点状态着色online绿色、offline亮黄、registered蓝色unregistered节点直接跳过不展示framework/py/flwr/cli/federation/ls.py#L347-L372同样支持--format json结构化输出。这些命令通过ControlHttpClientHTTP 控制面客户端位于framework/py/flwr/supercore/control.py与 SuperLink 通信分别调用ListFederations与ShowFederationRPCframework/py/flwr/cli/federation/ls.py#L144-L286。五、统一应用心跳机制告别进程挂起v1.24.0 最重要的工程改进是为应用进程引入统一心跳heartbeat机制涉及 PR #6204 至 #6227 共 14 个。要解决的问题此前当应用进程App Process崩溃且不响应时相关运行可能长时间挂起无法退出用户执行flwr stop停止运行后flwr-serverapp与flwr-simulation进程仍然无法及时退出。新机制的行为统一心跳机制上线后应用进程按固定间隔发送心跳父进程或 SuperLink 侧据此判断应用是否存活当应用进程崩溃且不再响应心跳时系统不再无限等待而是认定其已死亡flwr stop停止运行后flwr-serverapp与flwr-simulation进程能够更快退出。源码佐证当前仓库中心跳发送的通用实现位于 framework/py/flwr/supercore/heartbeat.pyHeartbeatSender并配套测试文件 framework/py/flwr/supercore/heartbeat_test.py。在客户端侧节点心跳通过SendNodeHeartbeatRPC 发送携带node与heartbeat_interval字段协议定义见 framework/py/flwr/proto/heartbeat.protoflwr.client.grpc_rere_client.connection中通过HeartbeatSender(send_node_heartbeat)启动与停止心跳循环framework/py/flwr/client/grpc_rere_client/connection.py。对于 v1.24.0 而言统一的含义是ServerApp、Simulation 等各类应用进程采用同一套心跳机制从而统一处理崩溃检测与停止响应逻辑这是该版本可运维性提升的核心。六、Bug 修复与性能优化6.1 关键 Bug 修复PR #6188、#6171、#6175、#6207修复在低配机器上偶发的 object ID 缺失或未注册问题修复通过 CLI 停止后flwr-serverapp进程挂起不退出的问题与心跳机制联动修正 runs 的finished_at时间戳修正 runs 的初始心跳间隔。6.2 性能优化导入性能#6102优化flwr模块导入路径减少 import 开销——顺带解决了安装tensorflow时flwr.server.utils.tensorboard导致的慢导入问题内部 SQLite 数据库性能#6178、#6195SuperLink 内部状态存储基于 SQLite本版本对其查询与写入路径做了优化改善大规模联邦场景下的状态管理性能。6.3 弃用flwr.server.utils.tensorboard作为不兼容变更flwr.server.utils.tensorboard在 v1.24.0 中被标记为弃用PR #6113 目录可见该目录仅保留validator.py与__init__.pytensorboard 工具函数已被移除。使用该 API 的项目应在升级后迁移到其他 TensorBoard 集成方式。七、工程与生态配套更新v1.24.0 还包含一批支撑性更新CI workflows 与开发工具链更新涉及 16 个 PR如 #6053、#6089、#6130、#6181 等同步 Python 3.13 支持更新 baselines 与开发脚本的 Python 版本要求文档更新8 个 PR含 #6115、#6146、#6169 等常规改进40 个 PR涵盖框架内部实现与质量基础设施的持续打磨。八、升级建议与影响面总结升级到 Flower v1.24.0 前请重点核对以下几点检查项v1.24.0 要求影响Python 版本最低 3.10当前仓库要求 ≥3.11Python 3.9 不再受支持protobuf≥5.29.0与 TensorFlow 2.18 不兼容需同步升级 TensorFlow 至 2.182.20 更佳flwr.server.utils.tensorboard已弃用并移除需迁移到替代方案flwr list默认视图更精简需完整信息时改用--run-id联邦运维新增flwr federation show/list默认联邦的 SuperNode 与 runs 可见性更好进程停止统一心跳机制flwr stop后flwr-serverapp/flwr-simulation退出更快对于大规模联邦部署与模拟实验的用户v1.24.0 的价值集中在三点清晰的运行可见性flwr list --run-id的详细诊断信息、flwr federation的成员/节点/运行一览、可靠的进程生命周期管理统一心跳防挂起、以及更快的导入与 SQLite 状态存储。对于使用新语言特性或最新深度学习栈Python 3.13 TensorFlow 2.20的团队本版本是值得跟进的升级目标。相关源码与文档路径速览变更日志framework/docs/source/changelog/v1.24.0.md版本约束framework/pyproject.tomlflwr list实现framework/py/flwr/cli/ls.py联邦命令实现framework/py/flwr/cli/federation/ls.pyflwr stop实现framework/py/flwr/cli/stop.py心跳发送器framework/py/flwr/supercore/heartbeat.py心跳协议framework/py/flwr/proto/heartbeat.proto服务端工具模块tensorboard 已移除framework/py/flwr/server/utils/【免费下载链接】flowerFlower: A Friendly Federated AI Framework项目地址: https://gitcode.com/GitHub_Trending/flo/flower创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

SAP CO作业类型计价:43类次级成本要素与KSPI计划价格链路

SAP CO作业类型计价:43类次级成本要素与KSPI计划价格链路

简介:这是一份面向SAP FICO顾问、成本会计及CO模块初学者的实操型学习文档,聚焦成本中心会计中作业类型(Activity Types)的管理与配置,帮助读者理清成本归集、分摊与作业成本计算的核心逻辑。文档围绕type43次级成本要…

📅 2026/9/17 21:13:45
Dev-C++安装配置与使用指南:从编译器原理到中文乱码解决

Dev-C++安装配置与使用指南:从编译器原理到中文乱码解决

很多大一新生第一次接触C语言,老师给的第一个作业就是"回去装一个Dev-C"。我见过太多人卡在这一步:搜出来的下载站全是广告和捆绑包,装完之后一编译全是英文报错,好不容易写完代码,运行窗口一闪而过&#xf…

📅 2026/9/17 21:13:45
软件工程课后习题答案:从需求到架构设计的实践清单

软件工程课后习题答案:从需求到架构设计的实践清单

简介:《软件工程实践者的研究方法(中文版第七版)》课后习题答案以 PDF 形式呈现,适合软件工程专业学生、考研复习者及想巩固工程方法的开发者使用。文档按瀑布模型与敏捷开发、需求获取、软件设计、测试重构、项目管理工具、需求工…

📅 2026/9/17 21:13:45
MORE NEWS

更多资讯

📰

gogcli 读取 Google Sheets 数据源表(Connected Sheets Extract):`gog sheets datasource table read` 实战指南

gogcli 读取 Google Sheets 数据源表(Connected Sheets Extract):gog sheets datasource table read 实战指南 【免费下载链接】gogcli Google Workspace in your terminal. 项目地址: https://gitcode.com/GitHub_Trending/gogcl/gogcli …

📰

累亏超9亿、营收增速骤降,加特兰冲刺科创板,能否解决“增长从哪来”难题?

赚了吆喝,没赚到钱近期,车载毫米波雷达芯片商加特兰微电子科技(上海)股份有限公司拟募资34.89亿元冲刺科创板。自2024年起,中国汽车行业进入“智能化元年”,推高了加特兰营收,2023 - 2025年年复…

📰

SolidWorks模板配置指南:零件/装配体/工程图模板与自定义属性

你是不是也这样:SolidWorks装好之后,直接拿系统默认模板开画,画了半个月才发现图纸格式不对、零件材料明细表里没重量、标题栏里图号名称全靠手敲,最后出图前一个人对着几十张工程图加班补属性。这活儿我太熟了,当年折…

📰

1300 张 H200 完胜 10 万张芯片!Periodic Neon 开辟 AI 变强新路径

1300 张 H200 完胜 10 万张芯片,Periodic Neon 惊艳亮相近日,前 OpenAI 研究副总裁 Liam Fedus 在 X 上发帖,亮出 Periodic Labs 的第一个模型——Periodic Neon。只用 1300 张 H200,加上几个月的实验数据,Neon 在自家…

📰

软件项目文档管理实战:需求、设计、测试、验收四类文档这样写

说实话,干了这么多年软件项目,我越来越觉得:文档不是写给流程看的,是写给下一个自己看的。刚接手项目时,最崩溃的不是代码难写,而是打开一个项目的文档目录,里面要么空空如也,要么躺…

📰

编码器停产EOL替代实战:选型、参数对标与PLC适配

去年冬天,一条跑了十几年的老装配线上,主令编码器突然报警,角度值乱跳,设备直接停在半空。现场排查了一圈,线缆没问题、PLC 高速计数器也没问题,最后拆下编码器一看型号,才发现原厂两年前就发过…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬