Label Studio Enterprise 2.15.0 版本发布说明:Reviewer 工作流升级、Django 4.2 迁移与性能评分体系详解
2026/9/12 23:01:10 网站建设 项目流程

Label Studio Enterprise 2.15.0 版本发布说明:Reviewer 工作流升级、Django 4.2 迁移与性能评分体系详解

【免费下载链接】label-studioLabel Studio is a multi-type data labeling and annotation tool with standardized output format项目地址: https://gitcode.com/GitHub_Trending/la/label-studio

本文基于开源仓库中的官方发布说明(docs/source/guide/release_notes/onprem/2.15.0.md)整理。Label Studio Enterprise 2.15.0(2024 年 9 月 3 日发布,对应 Helm Chart 版本 1.6.3)是一次以"审核(Review)体验"为核心的迭代:Reviewer 工作流被重构为更直观的操作路径,Data Manager 支持标签页拖拽排序,性能评分体系新增 Performance Score 列,同时底层框架升级到 Django 4.2 并移除对 PostgreSQL 11 的支持。本文将逐项拆解这些增强、破坏性变更与修复,并对照当前仓库源码说明其实现位置与影响范围,帮助管理员、标注团队负责人和开发者评估升级影响、规划升级路径。

一、本次版本概览

1.1 版本信息

  • 发布版本:Label Studio Enterprise 2.15.0
  • 发布日期:2024 年 9 月 3 日(Sep 03, 2024)
  • 配套 Helm Chart 版本:1.6.3
  • 版本主题:Reviewer 工作流更新、Data Manager 标签页拖拽排序、Show region labels(显示区域标签)选项的可用性增强,以及升级至 Django 4.2

1.2 版本类型定位

本次发布属于增强型(Enhancements)为主的迭代版本,同时包含 1 项明确的 Breaking Change(Django 升级导致的数据库版本要求变更)、1 项安全修复(NLTK 升级)以及 3 个 Feature flag 的移除和一批 Bug 修复。对于正在规划从旧版本升级的团队,本版本的数据库版本要求变更是需要优先评估的破坏性因素。

二、核心增强:Reviewer 工作流重构

2.15.0 对审核工作流进行了大幅重构,核心目标是让审核操作"更贴近任务本身、更符合直觉"。

2.1 角色化操作入口:Accept / Reject / Fix+Accept

变更前:任何进入任务页面的用户(包括 Reviewer、Manager、Admin、Owner)看到的是Update操作。

变更后

  • 当 Reviewer、Manager、Admin 或 Owner 在 Data Manager 中点击某个任务时,看到的是审核操作Accept(接受)、Reject(拒绝)、Fix+Accept(修复并接受),而不再是 Update。
  • Update操作从此仅对"创建该标注的标注员"本人可见,这保证了标注责任与编辑权限的边界清晰:只有标注作者才能修改自己的标注,审核者只能通过 Accept/Reject/Fix+Accept 表达审核结论。

源码层面的印证:Label Studio 的标注与任务生命周期由label_studio/fsm(有限状态机)模块管理。在 label_studio/fsm/state_choices.py 中,AnnotationStateChoices定义了标注的 CREATED 状态;任务状态则包含 CREATED / IN_PROGRESS / COMPLETED 三种(label_studio/fsm/state_choices.py)。审核操作本质上是基于这些状态的状态迁移:在 label_studio/fsm/annotation_transitions.py 中,标注创建(annotation_created)通过post_transition_hook将任务状态推进到 COMPLETED(label_studio/fsm/annotation_transitions.py),而标注更新(annotation_updated)则保留 CREATED 状态并记录审计轨迹(label_studio/fsm/annotation_transitions.py)。从该结构可以推断,Accept / Reject / Fix+Accept 对应的审核结论会在后续的状态与评分聚合中被消费,从而影响成员页面上的评分指标。

2.2 Explore All Reviews 被移除

变更前:存在独立的Explore All Reviews(浏览全部审核)入口。

变更后:该选项不再提供。因为其核心能力已由"在 Data Manager 中直接选择任务"这一更自然的交互方式覆盖——审核者只需在 Data Manager 中挑选任务,即可看到审核操作与审核历史,无需再进入单独的浏览视图。

2.3 Review All Tasks 默认排序方向反转

变更前:点击Review All Tasks(审核全部任务)时,任务按完成时间的倒序展示(最新完成的排在最前面)。

变更后:默认按标注员完成任务的原始顺序展示(先完成的在前)。这一调整更符合审核者"顺着标注员的作业顺序逐条审核"的实际工作流,减少了跳转与上下文切换成本。

三、Data Manager 标签页支持拖拽排序

3.1 功能描述

Data Manager 中的多个视图标签页(Tab)现在可以通过**拖拽(drag and drop)**的方式重新排序,无需再通过菜单调整视图顺序。

3.2 前端实现位置

该功能由 Data Manager 前端模块实现,关键代码位于 web/libs/datamanager/src/components/DataManager/DataManager.jsx:

  • 每个标签页通过Draggable组件包裹(DataManager.jsx),提供draggablePropsdragHandleProps支持拖拽;
  • onDragEnd回调在拖拽结束时调用views.updateViewOrder(result.source.index, result.destination.index)(DataManager.jsx),将标签页从源索引移动到目标索引;
  • 标签页的样式类定义在 web/libs/datamanager/src/components/Common/Tabs/Tabs.prefix.css 与 web/libs/datamanager/src/components/Common/Table/TableHead/TableHead.jsx 等位置,draggable修饰类统一了拖拽中的视觉反馈。

从源码结构看,标签页的排序状态通过views.updateViewOrder持久化到视图配置中,因此拖拽结果在刷新后依然保留,属于面向日常使用的常规操作增强。

四、Show region labels 增强:标签索引与区域列表对齐

4.1 变更内容

在标注区域启用Show region labels(显示区域标签)后,画布上每个区域角标显示的内容发生变化:

  • 变更前:区域标签不携带索引编号,无法与区域列表快速对应;
  • 变更后:区域标签中包含与区域列表(Regions List)中一致的索引标识(index identifier),视觉上可以直接将画布上的标注与列表中的条目一一对应。

4.2 价值

在多区域标注场景(如目标检测、多边形标注、关键点标注)中,当单个任务包含几十甚至上百个区域时,"画布角标 ↔ 区域列表"的索引对齐能显著减少标注员与审核者的比对成本,也是修复文本/超文本、图像标注中区域管理可用性问题的基础体验提升。

五、标注配置未保存离开时的警告提示

5.1 功能描述

当用户修改了项目的标注配置(Labeling Configuration)但尚未保存、尝试离开当前页面时,界面会弹出警告消息,提示先保存更改。

5.2 适用场景

该提示主要作用于项目设置页面的标注配置编辑器。它降低了"误操作离开导致配置丢失"的风险,属于典型的表单脏状态(dirty state)防护:检测到未保存的改动后拦截导航并给出明确提示。

六、Annotator Performance Reports 支持按日期聚合

6.1 变更内容

在查看Annotator Performance Reports(标注员绩效报告)时,现在可以选择聚合维度:

  • Creation Date(创建日期):按标注/审核记录的创建时间聚合数据;
  • Updated Date(更新日期):按记录的更新时间聚合数据。

6.2 意义

当标注员在工作流中被多次 Reject 后再 Accept(即标注经历多轮修改)时,创建日期与更新日期会产生显著差异。选择不同的聚合日期维度,可以帮助管理者从"标注产出节奏"或"最终确认节奏"两个视角观察绩效走势。

七、新增 Performance Score 列:绩效评分的统一度量

这是本版本在质量管理维度最重要的功能增强。

7.1 位置与作用

项目Members(成员)页面新增Performance Score(绩效评分)列,用于反映标注员的整体绩效。该评分把所有审核动作都纳入考量——包括"最初被拒绝、后来被接受"的标注——从而比只反映当前状态的 Review Score 更全面地刻画标注员的工作质量。

7.2 计算方法

评分规则如下:

  • 每一次标注审核动作(Accept、Reject、Fix+Accept)都为一个评分事件,计入总分;
  • Performance Score = 所有审核动作得分之和 ÷ 审核动作总次数
  • 不同审核动作的得分取值:Accept 得 1 分,Reject 得 0 分,Fix+Accept 按实际修复质量得分(0~1 之间的百分数,如 42% 记为 0.42)。

7.3 计算示例

官方文档给出了两个典型示例:

示例一:某标注先后被 Reject 两次、最终 Accept 一次:Performance Score = (0 + 0 + 1) / 3 = 33%

示例二:某标注被 Reject 一次,随后被 Fix+Accept(修复得分为 42%):Performance Score = (0 + 0.42) / 2 = 21%

7.4 与 Review Score 的区别

  • Review Score:只反映标注的当前状态(当前是 accepted 还是 rejected);
  • Performance Score:综合全部历史审核动作,按动作次数平均。

正因如此,Performance Score 对"标注员经历了多次返工但最终达标"的情况更为敏感,适合作为长期绩效追踪的量化指标。

7.5 相关 Bug 修复的关联

本次版本同时修复了"Reviewer 先 Reject、后 Accept 时,成员页面上的 Annotator 一致性评分(agreement scores)计算不准确"的问题(见下文 Bug 修复列表),这与 Performance Score 的上线形成配套:审核状态的多轮变化现在会被正确计入评分体系,而不会出现"只认最终状态、忽略中间过程"的失真。

八、支持门户入口

版本菜单中新增了指向HumanSignal 支持门户的链接,其中包含常见问题(FAQ)与故障排查(troubleshooting)资料,并提供开启支持工单(support ticket)的入口。该入口面向使用 Enterprise 版本的运维与管理员,用于快速获取官方支持资源。

九、Breaking changes:Django 4.2 升级与 PostgreSQL 版本要求

9.1 变更内容

本版本将后端框架升级至Django 4.2,随之而来的一项破坏性变更:

PostgreSQL 11 不再受支持。升级前必须迁移到 PostgreSQL 12 或更高版本。

9.2 影响与升级步骤

  1. 评估当前数据库版本:执行SELECT version();确认 PostgreSQL 大版本;
  2. 若为 PostgreSQL 11:规划数据库迁移(建议通过 pg_dump/恢复或就地升级方式迁移至 12+),务必在升级 Label Studio Enterprise 之前完成
  3. 完成迁移后:再执行 Label Studio Enterprise 的升级流程,并验证数据完整性。

9.3 仓库配置佐证

当前仓库的数据库配置位于 label_studio/core/settings/base.py。默认数据库引擎为 PostgreSQL,其连接参数(POSTGRE_USER/POSTGRE_PASSWORD/POSTGRE_NAME/POSTGRE_HOST/POSTGRE_PORT)均通过环境变量注入,默认主机localhost、端口5432(base.py);同时支持 MySQL 与 SQLite 作为备选引擎(base.py),并可通过DJANGO_DB环境变量切换(base.py)。此外,设置项ALLOW_SCHEDULED_MIGRATIONS(base.py)控制异步 SQL 迁移是否可以进入 SCHEDULED 状态,说明升级过程中的数据库迁移可以由平台统一调度执行。

需要说明的是:当前开源主干的依赖声明为Django (>=5.2.16,<5.3.0)(见 pyproject.toml),而 2.15.0 发布说明记录的升级目标是 Django 4.2;两者反映了不同发布分支的依赖锁定策略,本小节内容以发布说明记载的 2.15.0 行为为准。无论哪个分支,升级后都必须保证 PostgreSQL 满足 Django 支持的最低版本要求。

十、安全更新:NLTK 升级修复 CVE-2024-39705

10.1 变更内容

  • 组件:NLTK(自然语言处理工具包)
  • 升级目标版本:3.9.1
  • 修复漏洞:CVE-2024-39705

10.2 漏洞背景(基于公开漏洞信息归纳)

CVE-2024-39705 属于 NLTK 在语料库下载/解压环节相关的安全问题,攻击者可能利用恶意构造的语料库文件触发风险。Label Studio 在部分 NLP 类标注流程中会用到 NLTK 相关能力,因此通过升级到 3.9.1 封堵该漏洞。建议部署了该版本的团队在升级后重新构建镜像并做一次安全回归验证。

十一、Feature flag 清理

以下 3 个 Feature flag 在本版本中被移除

被移除的 Feature flag推测用途
fflag_feat_front_prod_e_111_annotator_workflow_control_short标注员工作流控制(annotator workflow control)相关的前端特性开关
fflag_fix_front_lsdv_4673_rect3point_relative_310523_short前端矩形三点相对定位(rect3point relative)修复开关
ff_back_1614_rejected_queue_17022022_short后端"被拒绝队列"(rejected queue)修复开关

在仓库中检索这三个 flag 名称,目前仅在 docs/source/guide/release_notes/onprem/2.15.0.md 的发布说明中出现,说明它们已在代码中彻底移除、不再作为运行时开关存在。

Feature flag 清理的典型含义:

  1. 相关功能已经默认启用并稳定,不再需要灰度开关;
  2. 例如ff_back_1614_rejected_queue_17022022_short涉及的"被拒绝队列"逻辑,从本次 Reviewer 工作流重构来看,已被新的审核交互所取代;
  3. 升级后若发现自定义部署中曾显式配置过这些 flag,需要将其从环境变量/配置中移除,避免遗留无效配置。

十二、Bug 修复清单

本版本共修复 17 项问题,按功能域归类如下:

12.1 标注与审核

  • 修复了<Text>标签值为空时View all annotations(查看全部标注)操作不工作的问题;
  • 修复了在项目级别被分配Reviewer角色的标注员看不到评论(comments)的问题;
  • 修复了成员页面中 Annotator一致性评分(agreement scores)计算不准确的问题——该问题出现在 Reviewer 先 Reject、后 Accept 某条标注时;
  • 修复了按Command(或 Ctrl)多选多个边界框时,反而新建了一个边界框的问题。

12.2 Data Manager 与界面显示

  • 修复了 Data Manager 中大整数显示异常的问题;
  • 修复了为区域(regions)添加标注时,包含 emoji 的 Text/HyperText 内容被破坏的问题;
  • 修复了 tooltip 导致过渡动画报错的问题;
  • 修复了成员用户列表变大后Members 表格的可用性问题

12.3 仪表盘与项目

  • 修复了在项目标注配置**不包含标签(labels)**时,加载仪表盘出现运行时错误的问题;
  • 修复了Project 仪表盘返回错误的问题;
  • 修复了复制项目时未包含项目摘要(project summary)的问题。

12.4 API 与基础设施

  • 修复了通过 API 删除**仍包含项目的工作区(workspace)**的问题——现在此类删除应被阻止;
  • 修复了未先选择用户时访问Annotator Performance Report页面报错的问题——现在会先重定向离开该页面,直到用户被选中;
  • 修复了tracing 破坏预签名 URL(presigned URL)请求的问题;
  • 修复了图片加载后因原始尺寸设置不当而被错误缩放的问题。

十三、升级建议与注意事项汇总

结合本版本的全部变更,给出以下升级行动清单:

  1. 数据库前置检查(最高优先级):确认 PostgreSQL 版本 ≥ 12;若仍为 11,先完成数据库迁移再升级 Label Studio Enterprise 2.15.0;
  2. 验证审核工作流:升级后确认 Reviewer/Manager/Admin/Owner 角色在任务页看到的是 Accept / Reject / Fix+Accept,且 Update 仅对标注作者可见;Review All Tasks 的排序方向已变为完成顺序;
  3. 清理 Feature flag 配置:从部署配置中移除已删除的三个 flag;
  4. 回归重点场景:多选边界框(Command/Ctrl)、含 emoji 的文本标注、含大量整数数值的 Data Manager 表格、仪表盘在无标签配置项目下的加载、图片缩放行为;
  5. 安全更新:确认 NLTK 已升级到 3.9.1(对应 CVE-2024-39705 修复);
  6. 理解新指标:向团队成员说明 Performance Score 与 Review Score 的计算差异,避免对成员页面评分的误读。

结语

Label Studio Enterprise 2.15.0 是一次"审核体验 + 质量度量 + 平台现代化"的综合迭代:Reviewer 工作流从"编辑视角"转向"审核视角",拖拽排序让 Data Manager 的视图组织更加自由,Performance Score 为团队质量管理提供了全量历史动作的量化口径,而 Django 4.2 升级则明确了数据库的版本底线。对于正在评估升级的团队,本文的变更清单、计算示例与升级注意事项可直接作为版本评估与升级计划的核对底稿。

更多参考

  • 版本发布说明原文:docs/source/guide/release_notes/onprem/2.15.0.md
  • 任务/标注/项目状态机实现:label_studio/fsm/state_choices.py、label_studio/fsm/annotation_transitions.py
  • Data Manager 标签页拖拽实现:web/libs/datamanager/src/components/DataManager/DataManager.jsx
  • 数据库配置:label_studio/core/settings/base.py
  • 依赖声明:pyproject.toml

【免费下载链接】label-studioLabel Studio is a multi-type data labeling and annotation tool with standardized output format项目地址: https://gitcode.com/GitHub_Trending/la/label-studio

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询