
FiftyOne Enterprise 插件管理指南安装、权限、委托操作与分布式执行【免费下载链接】fiftyoneRefine high-quality datasets and visual AI models项目地址: https://gitcode.com/GitHub_Trending/fi/fiftyoneFiftyOne Enterprise 从 1.3.0 版本起原生支持 FiftyOne 插件体系允许管理员通过 UI 或 Management SDK 上传、管理、配置权限插件并让团队成员在 App 内直接触发数据处理、标注、评估等操作。本文将围绕 plugins.rst 展开完整覆盖插件的安装/升级/卸载/启停、双维度权限模型、委托操作Delegated Operations、分布式执行、Services 常驻服务、Runs 运行管理页面并结合仓库源码如 fiftyone/plugins/core.py、fiftyone/operators/executor.py给出可落地的配置示例与排查依据。读完本文你将掌握在 Enterprise 部署中全生命周期管理插件的能力并能通过 Runs 页面监控、检索、重跑与终止后台任务。什么是 Enterprise 插件在 FiftyOne 生态中插件是扩展 App 功能的基本单位一个插件本质上是一个目录或其 ZIP 压缩包目录内必须包含一个顶层的fiftyone.yml元数据文件。FiftyOne Enterprise 提供对这些插件的原生安装与运行支持让你能按需扩展和定制企业部署的功能。从仓库自带的插件可以看到fiftyone.yml的标准结构。例如 plugins/operators/fiftyone.yml 声明了名为voxel51/operators的核心运算符集合plugins/panels/fiftyone.yml 则声明了voxel51/panels含similarity_search等运算符与similarity_search_panel面板name: voxel51/panels description: Core FiftyOne panels tags: - core version: 1.0.0 fiftyone: version: * operators: - similarity_search - list_similarity_runs - init_similarity_run - get_similarity_search_subscription_notifier panels: - model_evaluation_panel_builtin - similarity_search_panel源码侧fiftyone/plugins/core.py 中定义了PLUGIN_METADATA_FILENAMES (fiftyone.yml, fiftyone.yaml)说明元数据文件同时兼容两种扩展名解析逻辑以插件目录顶层的该文件为准。fiftyone.yml中的name字段是插件的唯一标识升级时如果上传的name与现有插件不一致系统会把它当作新插件创建详见下文“升级插件”。Plugins 管理页面管理员可以通过Settings Plugins进入插件管理页。该页面展示所有已安装插件及其运算符operators的列表并逐项显示插件的启用状态enabled/disabled每个运算符的权限配置插件的安装、升级、卸载入口。这是管理员日常管理插件的主入口也是本文后续所有 UI 操作的发生地。安装插件插件只能由管理员安装途径有两种Enterprise UI 或 Management SDK。提示任何插件本质上都是一个包含顶层fiftyone.yml的目录或其 ZIP。通过 Enterprise UI 安装在插件页点击Install plugin按钮以 ZIP 文件形式上传或拖拽插件内容点击 install等待成功提示后新插件即出现在插件列表中。通过 Management SDK 安装使用 fiftyone.management.plugin.upload_plugin 方法可直接传入插件目录或已压缩的 ZIP 文件import fiftyone.management as fom # 传入目录或已压缩的 zip 均可 fom.upload_plugin(/path/to/plugin_dir)升级插件管理员可以随时通过 UI 或 Management SDK 升级插件。通过 Enterprise UI 升级点击插件所在行的下拉菜单选择Upgrade plugin上传或拖拽升级后的插件 ZIP 文件点击 upgrade成功后插件页会刷新为最新信息。注意如果上传插件的fiftyone.yml中的name属性与现有插件不匹配系统会创建一个新插件此时只需手动删除旧插件即可。通过 Management SDK 升级使用upload_plugin()并传入overwriteTrue即可覆盖升级同名插件import fiftyone.management as fom # 传入目录或已压缩的 zip 均可 fom.upload_plugin(/path/to/plugin_dir, overwriteTrue)卸载插件通过 Enterprise UI 卸载点击插件所在行的下拉菜单选择Uninstall plugin即可移除该插件。通过 Management SDK 卸载使用 fiftyone.management.plugin.delete_plugin 方法import fiftyone.management as fom fom.delete_plugin(plugin_name)小贴士如果只是想临时停用某个插件可以优先选择启用/禁用而不是永久卸载详见下一节。启用与禁用插件通过 Enterprise UI插件在首次安装后默认启用其包含的所有运算符也默认启用管理员可通过插件行的启用/禁用开关一次性启停整个插件及其全部运算符若要精细化控制单个运算符点击插件的 operators 链接进入运算符列表再逐个切换每个运算符的启用开关。通过 Management SDK使用 fiftyone.management.plugin.set_plugin_enabled 与 set_plugin_operator_enabledimport fiftyone.management as fom # 禁用整个插件 fom.set_plugin_enabled(plugin_name, False) # 禁用插件中的某个特定运算符 fom.set_plugin_operator_enabled(plugin_name, operator_name, False)源码中enable_plugin/disable_plugin均通过_update_plugin_settings()持久化启用状态见 fiftyone/plugins/core.py内置插件builtin plugin的启用状态不可修改调用时会抛出Cannot change enablement of builtin plugin的异常。插件权限模型管理员可以按需为插件整体或单个运算符配置访问权限权限由两个维度任意组合而成权限说明Minimum Role执行该操作所需的最低用户角色Minimum Dataset Permission在特定数据集上执行该操作所需的最低数据集权限通过 Enterprise UI 配置点击插件行的 operators 链接进入运算符列表将目标运算符的下拉菜单切换为期望的权限级别。通过 Management SDK 配置使用 fiftyone.management.plugin.set_plugin_operator_permissions 方法import fiftyone.management as fom # 仅设置最低角色 fom.set_plugin_operator_permissions( plugin_name, operator_name, minimum_rolefom.MEMBER, ) # 仅设置最低数据集权限 fom.set_plugin_operator_permissions( plugin_name, operator_name, minimum_dataset_permissionfom.EDIT, ) # 同时设置最低角色与最低数据集权限 fom.set_plugin_operator_permissions( plugin_name, operator_name, minimum_rolefom.EDIT, minimum_dataset_permissionfom.EDIT, )默认权限新插件安装后其运算符会继承部署级别的默认权限。初始默认值为权限默认值Minimum RoleMemberMinimum Dataset PermissionEditUI 配置默认权限在Settings Security页面找到 Plugins 标题下的权限下拉菜单即可修改部署级别的默认运算符权限SDK 配置默认权限使用 fiftyone.management.organization.set_organization_settings 方法import fiftyone.management as fom fom.set_organization_settings( default_operator_minimum_rolefom.MEMBER, default_operator_minimum_dataset_permissionfom.EDIT, )委托操作Delegated Operations自 Enterprise 1.4.0 起委托操作成为插件框架中极具价值的能力它允许用户在 App 中调度任务任务随后在后台连接的算力集群上执行无需占用本地资源。通过委托操作FiftyOne Enterprise 既是数据集管理与可视化工具也是工作流自动化平台——数据摄取ingestion、清洗curation、评估evaluation等数据为中心的流程都可以被定义、调度与追踪使 Enterprise 成为数据和模型共同开发的单一事实来源。开箱即用的插件生态管理员可以在部署中安装以下官方插件快速上手来自 voxel51/fiftyone-plugins 仓库插件能力voxel51/annotation集成标注工具例如在 App 内发起标注任务voxel51/brain调用 FiftyOne Brain 进行嵌入计算与可视化voxel51/evaluation对数据集上的模型预测进行评估voxel51/io导入/导出工具集可在 App 内直接导入数据voxel51/indexes操作 FiftyOne 数据库索引voxel51/utils在 App 中调用常用 SDK 工具voxel51/voxelgptAI 助手查询视觉数据集、检索 FiftyOne 文档、回答 CV 问题voxel51/zoo不离开 App 即可从 FiftyOne Zoo 下载数据集并运行推理典型使用场景包括安装voxel51/io后直接在 App 内导入数据安装voxel51/annotation后将数据发送给标注工具用voxel51/evaluation轻松评估模型预测用voxel51/brain计算数据集嵌入并在 Embeddings 面板中可视化。在 App 中选择委托执行delegated execution后任务会被自动调度到你连接的 orchestrator 上执行你可以继续其他工作。每个数据集都带有一个Runs 标签页用于浏览该数据集上所有委托操作的历史与状态。分布式执行Distributed Execution自 2.11.0 起FiftyOne Enterprise 支持跨多个 worker 并行的分布式委托执行调度一个可分发操作distributable operation时你可以选择将其拆分为多少个批次batches数据集或目标视图会被拆分为对应数量的任务每个任务在独立 worker 上执行从而把大规模操作横向扩展scale out到多台机器如果选择的任务数 T 小于部署上限且资源充足、任务负载均衡操作最高可提速 T 倍你也可以故意把任务数拆得比并发上限更多例如拆 100 个批次而部署上限为 9 个并发以此控制每个单任务的最长运行时间让调度引擎在运行期间优先插入其他任务。调度完成后可以从Runs 页面监控分布式操作的总体状态以及每个独立 worker 的细粒度运行情况。如需提高部署的委托操作容量上限请联系 Voxel51 支持团队。配置 orchestratorFiftyOne Enterprise 提供内置 orchestrator随团队部署一起配置并带有默认的计算容量。随着使用规模增长你可能需要扩展部署的计算容量启用按需计算集成on-demand compute integration对接 Databricks 或 Anyscale 等外部计算平台连接其他外部 orchestrator如 Airflow、Flyte、Spark。注意扩容、按需计算集成、使用外部 orchestrator 均需联系 Voxel51 支持团队完成配置。按需计算On-demand Compute自 2.11.0 起提供当前为betaAPI 或功能可能在未来版本变化。按需计算支持在连接的外部计算平台上按需执行委托操作资源只在真正需要时被创建和使用最大限度减少空闲时间。目前支持的平台包括FiftyOne 的 Kubernetes OrchestratorDatabricksAnyscale。管理员可参照部署指南中的configuring-on-demand-orchestrator.md文档为部署配置按需计算。外部 orchestratorEnterprise 部署也可以连接到其他外部管理工作流编排工具如 Airflow、Flyte、Spark详细集成方案请联系 Voxel51 支持团队。Services常驻模型服务自 Enterprise 2.23.0 起部分内置运算符以长驻服务services的形式运行它们是始终在线的模型服务器在两次使用之间保持就绪而不会每次运行都冷启动一个新任务。Services 由service orchestrator托管支撑 GPU 加速的交互式功能例如agentic labeling智能体标注与AI 辅助标注分割、视频跟踪——这些场景如果每次运行都冷启动体验会过于缓慢。管理员在Settings Services页面管理服务可以启动、停止、监控每个服务并查看其状态Services 运行在你自己的 GPU 基础设施上通过 service orchestrator 供给资源服务 orchestrator 的配置方法参见部署指南中的configuring-service-orchestrator.md文档。管理委托操作Runs 页面Enterprise 中每个数据集都有一个Runs 页面供有权限的用户监控和探索针对该数据集调度的委托操作。所有已调度的操作都会进入一个队列并在目标 orchestrator 资源可用时自动执行。注意Runs 页面只跟踪委托执行的调度操作不包含在 App 中立即执行非委托的操作。拥有数据集Can View及以上权限的用户即可通过Runs 标签页进入 Runs 页面。页面以表格形式列出委托操作并支持排序、搜索、过滤管理员可选择查看所有数据集的操作或仅当前数据集的操作非管理员只能查看与当前数据集相关的操作。部署级 Runs 页面除了数据集内的 Runs 标签页还可以通过Settings Runs进入部署级Runs 页面。它打开的是同一张表格但无需先加载数据集适合跨整个部署统一监控委托操作与长驻服务service操作。运行状态Statuses委托操作共有 5 种状态Scheduled已调度运行已被调度等待执行配额。所有委托操作都以此状态开始Queued排队中运行已获得执行配额一旦 orchestrator 资源可用即开始执行Running运行中正在被执行Completed已完成成功完成Failed失败未能完成。注意分布式操作的状态由其各子任务状态综合计算。例如只有当所有子任务都成功完成后分布式操作才被视为 Completed。将鼠标悬停在 Scheduled 或 Queued 状态徽章上可以查看该运行的额外执行信息包括其在调度队列中的位置。排序Sorting默认按最近调度时间降序排列最新在最上。可通过表格右上角的下拉菜单切换排序条件包括最近更新last updated最旧oldest运算符名称operator name。过滤Filtering有足够权限的用户可在My Runs我调度的与All Runs所有人调度的之间切换所有用户都可以使用Status下拉框按一个或多个状态过滤管理员还可以切换All Datasets与This Dataset控制展示整个组织的运行还是仅当前数据集的运行。搜索Searching使用搜索框按关键词过滤运行列表输入时列表实时更新。注意搜索区分大小写且目前只能按运算符名称搜索不能按 label 搜索。例如搜索 bright 不会匹配 label compute_brightness而是要匹配运算符 URI voxel51/panels/compute_brightness。重新运行Re-running在 Runs 页面中点击运行的 kebab 菜单并选择Re-run即可触发该运行的重新执行。置顶Pinning置顶的运行显示在 Runs 表格的右侧栏。默认显示 5 条置顶运行超过 5 条时会显示展开按钮。将鼠标悬停在表格行上并点击运算符标签旁出现的置顶图标即可置顶该运行。注意置顶运行存储在数据集级别对该数据集有访问权限的所有用户都可见。重命名Renaming同一数据集上多次委托操作时可以为运行设置自定义标签便于后续识别。将鼠标悬停在感兴趣的 label 上点击铅笔按钮提示 1在出现的输入框中提示 2修改 label 文本最后点击保存按钮提示 3应用更改。终止运行Terminate点击运行行的三个点提示 1在菜单中选择Terminate提示 2即可终止运行运行状态随后会更新为Failed。版本注意自 2.12.0 起Terminate 操作会真正停止正在运行的委托操作。在 2.12.0 之前的版本中按钮名为 Mark as Failed且不会停止 orchestrator 上的操作——它只会把运行标记为失败而操作仍在继续执行。监控进度Monitoring Progress委托操作可以选择在运行期间报告进度progress。若运行有进度信息会显示在 Runs 表格中。默认情况下运行的整体状态与进行中操作的进度会自动刷新可以通过切换自动刷新开关提示 1关闭运行中操作的自动刷新。Run 详情页点击 Runs 表格中的某条运行也可从置顶运行区或 Recent runs 组件进入即可打开该运行的Run 页面查看该委托操作的详细信息包括输入、输出、日志与错误。Children子任务自 2.11.0 起若可分发委托操作被拆分为多个任务调度则该运行被视为 parent父运行。Run 页面会包含Children 标签页以类似 Runs 主表格的格式展示每个子任务的状态。你可以像在主 Runs 页面上一样对子任务列表排序、搜索、过滤也可以点击任意子任务进入其自己的 Run 页面。注意单个子任务可以被标记为失败但不能单独重新运行或删除。Input输入Input 标签页展示调度委托操作时提供的输入参数。默认显示渲染后的参数形式类似通过 prompt 弹窗调用运算符时的界面点击Show raw开关可切换为原始格式。Output输出Output 标签页展示已完成的委托操作的渲染输出如果有。Errors错误若运行失败会出现Errors 标签页显示发生的错误消息与堆栈跟踪stack trace。Logs日志Logs 标签页允许查看委托操作的日志。注意日志仅对在内置 FiftyOne Orchestrator 上执行的委托操作可用。如果使用外部 orchestrator日志可用性取决于具体集成与配置。查看日志日志存储在 MongoDB 中运行进行中与完成后都可在 Logs 标签页查看。日志以表格形式展示你可以点击图标切换列可见性以本地时区显示时间戳按严重级别过滤日志搜索特定关键词将日志限制在自定义时间范围内。日志保留与归档默认情况下委托操作日志在 MongoDB 中保留30 天。保留期结束后日志会被上传到云存储桶或被删除。可在 API pod 上设置以下环境变量配置保留行为环境变量说明默认值FIFTYONE_DO_LOG_RETENTION_DAYS归档/删除前日志在 MongoDB 中保留的天数30FIFTYONE_DO_LOG_BUCKET_PATH保留期结束后日志上传的云存储桶前缀如gs://my-bucket/do-logs或s3://my-bucket/do-logs未设置则直接删除日志None归档后可以通过 Run 页面的Download logs选项下载特定运行的日志。提示如果使用第三方 orchestrator可以为每个运行添加run_link链接回外部运行详情页。Metrics指标Metrics 标签页展示委托操作执行期间收集的指标包括系统级指标如 CPU、内存使用、网络 IO、采样的性能分析数据。若运行在启用 GPU 的集群上执行还可以看到 GPU 专用指标GPU 利用率、GPU 内存使用量。操作运行期间管理员还可访问Database 面板实时监控 MongoDB 系统指标与查询性能。View视图View 标签页展示操作执行时所针对的具体视图可能为完整数据集。小结与最佳实践插件全生命周期安装UI 上传 ZIP /fom.upload_plugin、升级UI /overwriteTrue、卸载UI /fom.delete_plugin、启停开关 /set_plugin_enabled、set_plugin_operator_enabled均可通过 Enterprise UI 或 Management SDK 双通道完成权限双维度Minimum Role 与 Minimum Dataset Permission 可单独或组合配置新插件默认继承部署级默认权限Member / Edit默认值可在 Settings Security 或fom.set_organization_settings中修改委托执行让用户在 App 内调度后台任务配合分布式执行2.11.0可把大任务拆分到多个 worker 并行内置 orchestrator 默认可用按需计算beta与外部 orchestrator 需联系支持团队可观测性Runs 页面提供 5 态状态机、排序/过滤/搜索、重跑、置顶、重命名、终止、进度监控Run 详情页提供 Input/Output/Errors/Logs/Metrics/View/Children 七个维度日志默认保留 30 天并可归档到云存储桶版本注意事项Terminate 真正停止任务需 2.12.0分布式执行与按需计算需 2.11.0Services 常驻服务需 2.23.0。如需开发自己的插件可参考仓库中的 fiftyone.yml 示例 与 fiftyone/plugins/definitions.py以及 Developing plugins 指南。【免费下载链接】fiftyoneRefine high-quality datasets and visual AI models项目地址: https://gitcode.com/GitHub_Trending/fi/fiftyone创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考