拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Label Studio Pairwise 标签实战指南:配置对象对比与选择标注任务

Label Studio Pairwise 标签实战指南配置对象对比与选择标注任务【免费下载链接】label-studioLabel Studio is a multi-type data labeling and annotation tool with standardized output format项目地址: https://gitcode.com/GitHub_Trending/la/label-studioPairwise 是 Label Studio 中用于对象两两对比并让标注人员二选一的控制标签适用于文本摘要质量对比、图像相似性比较、搜索结果排序等需要AB 选择的场景。本文以官方标签文档为主线结合仓库中 Pairwise 控件源码、官方示例 与 Pairwise 分类模板完整讲解其参数体系、标注配置写法、结果数据格式与底层交互逻辑读完后你可以直接在 Label Studio 中搭建一个可运行的 Pairwise 对比标注项目。什么是 Pairwise 标签Pairwise标签用于让标注人员对比两个不同的对象并从这两个对象中选出一个。它天然适用于偏好排序类任务比如同时展示两段文本摘要让标注员选出更准确的一段或同时展示两张图片让标注员选出更符合条件的一张。在 Label Studio 的标签体系中它属于控制Control类标签与Choices、Rating等标签平级。官方文档特别指出一个易混淆点如果目标是让标注人员判断两个对象是否相似即相似 / 不相似这种二元判断应当使用Choices标签而不是Pairwise——Pairwise 只负责二选一式的对象选择。从源码看Pairwise 的控件模型在 web/libs/editor/src/tags/control/Pairwise.js 中定义其核心状态是selected: types.maybeNull(types.enumeration([left, right, none]))即标注结果只有三种可能选中左侧对象left、选中右侧对象right、未选择none。支持的标签与数据类型官方文档明确Pairwise 可配合以下数据类型使用数据类型说明audio音频配合Audio标签image图片配合Image标签HTML网页快照配合HyperText标签paragraphs对话/段落配合Paragraphs标签text文本配合Text标签time series时间序列配合TimeSeries标签video视频配合Video标签只要toName指向的对象类型属于上述范围Pairwise 都能在其上叠加点击选中的交互。基本用法文本对比标注配置官方文档给出的第一个示例是比较两段文本选出更准确的摘要View Header valueSelect the more accurate summary/ Pairwise namepairwise leftClasstext1 rightClasstext2 toNametxt-1,txt-2/Pairwise Text nametxt-1 valueText 1 / Text nametxt-2 valueText 2 / /View拆解这个配置Header向标注人员展示任务指令选出更准确的摘要确保标注意图明确Pairwise namepairwise ... toNametxt-1,txt-2声明一个名为pairwise的对比控件通过toName指明要对比的对象两个Text对象分别以txt-1、txt-2命名其展示内容由value决定。若任务数据来自标注任务的 JSON则可写成value$text1、value$text2这种数据引用形式见下文模板一节。标注时标注人员点击左侧或右侧对象即可选中再次点击同一侧可取消选中。选中后被选中的对象会呈现高亮边框样式。关键约束toName 必须恰好指向两个对象Pairwise 的toName必须传入两个、且互不相同的对象名用逗号分隔。源码在控件创建时做了强校验Pairwise.jsif (self.names.length ! 2 || self.names[0] self.names[1]) { InfoModal.error(Incorrect toName parameter on Pairwise, must be two names separated by a comma: name1,name2); }若toName只写了一个对象、写多了或两个名称相同Label Studio 会在配置校验阶段直接弹出错误提示。此外源码中names视图通过self.toname.split(,)解析名称Pairwise.jsleft取第一个对象引用、right取第二个对象引用Pairwise.js这也印证了顺序即左右位置的规则。参数详解Pairwise 的完整参数见 docs/source/includes/tags/pairwise.md结合源码声明Pairwise.js整理如下参数类型必填默认值描述namestring是—控件元素名称标注结果中from_name会使用该值toNamestring是—要对比的元素的名称多个名称用英文逗号分隔必须恰好两个且互不相同selectionStylestring否—选中状态的样式以 CSS 样式字符串传入如border: 2px solid #00ff00传入后采用内联样式渲染leftClassstring否left左侧对象的 CSS 类名rightClassstring否right右侧对象的 CSS 类名selectionStyle 与默认选中样式selectionStyle是可选参数但它的存在与否会改变渲染机制。源码 Pairwise.js 中的实现逻辑是传入selectionStyle时通过Tree.cssConverter将 CSS 字符串转换为内联样式对象选中侧直接应用该样式向后兼容模式未传入时使用 Tailwind 语义类bg-primary-background border border-primary-border-subtle rounded-sm作为选中态通过 className 切换实现。同时无论采用哪种方式两个对比对象都会被注入交互类cursor-pointer hover:bg-primary-emphasis-subtle transition-colors rounded-smPairwise.js使对象在悬停时呈现可点击反馈。leftClass / rightClass这两个参数用于给左右对象附加自定义 CSS 类名便于与项目自身的样式体系如覆盖到Text、Image等对象标签上协同工作。官方示例中就为两个Text对象分别指定了leftClasstext1和rightClasstext2在需要按左右位置差异化排版时非常实用。高级用法用 View 标签自定义布局官方文档的第二个示例演示了如何通过View标签自定义 Pairwise 的呈现布局View Pairwise namepw toNametxt-1,txt-2/Pairwise View styledisplay: flex; View stylemargin-right: 1em;Text nametxt-1 value$text1 //View ViewText nametxt-2 value$text2 //View /View /View这里的要点使用 flex 布局让左右两个对象并排展示中间通过margin-right留出间距注意Pairwise控件的声明与对象声明可以分离——控件通过toNametxt-1,txt-2与对象建立关联不要求控件紧贴对象书写数据通过$text1、$text2从任务 JSON 的data字段中取真实内容。这种控件在上、布局在下的写法同样适用于Image、Audio等对象标签是搭建并排对比界面的通用模式。标注结果与数据导出格式Pairwise 的标注结果以 JSON 形式存入任务 annotation 的result数组中。官方分类模板 pairwise-classification/config.xml 内置了标准结果样例{ value: { selected: left }, id: Prs1iTKZzp, from_name: pw, to_name: pw, type: pairwise }字段含义字段说明value.selected选中结果取值left、right或none未选择from_name对应配置中 Pairwise 的name此处为pwto_namePairwise 控件自身名称源码创建结果时以控件自身为对象引用type固定为pairwise从源码看选中结果由updateResult动作写入Pairwise.js当selected为none时移除已有结果否则创建或更新结果值即selected字段。该值类型在源码中定义为valueType: selectedPairwise.js。导出 CSV / JSON 时value.selected即可直接作为偏好/胜出方特征用于后续排序模型的训练。源码级原理交互与状态机深入 web/libs/editor/src/tags/control/Pairwise.js 可以看到整个交互闭环绑定点击控件附加到标注页面后annotationAttached分别把selectLeft、selectRight绑定到左右对象的onClickPairwise.js切换逻辑selectLeft/selectRight实现再次点击取消——若当前已选中同侧则重置为none否则切换到该侧Pairwise.js样式刷新setResult根据选择方向为左右对象更新 className 或内联样式Pairwise.js结果持久化updateResult将选择写入 annotation resultneedsUpdate则在加载既有标注时恢复选中态Pairwise.js。值得注意的细节源码注释中记录了一个已知约束——如果left/right任一对象引用缺失例如toName拼写与对象名不一致控制台会输出警告Pairwise: left or right object reference is missingPairwise.js。因此排查点击无响应类问题时应优先检查toName与对象name是否完全匹配。实战模板Pairwise 分类任务仓库内置的社区模板 pairwise-classification/config.yml 提供了一个可直接在 Label Studio 中导入使用的完整配置View HeaderSelect one of two items/Header Pairwise namepw toNametext1,text2 / Text nametext1 value$pairText1 / Text nametext2 value$pairText2 / /View对应任务数据格式为{ data: { pairText1: Look at this! Its a brand new product, pairText2: Look at this! Its an awesome piece of sh*t } }使用该模板时只需在导入任务时提供pairText1、pairText2两个字段即可批量开展对比标注。同样的结构可以替换为Image、Audio、Video等对象标签扩展到图像美学对比、音频音质对比、视频片段偏好等场景。若需要选择后打分这类混合任务也可以参考 pairwise-regression/config.yml 的写法在 Pairwise 之外叠加Rating标签对两对象同时评分。小结Pairwise 标签以极简的配置完成了对象对比 二选一这一高频标注需求toName声明对比对象、name定义结果字段、可选样式参数控制选中态外观底层由 Pairwise.js 统一管理点击交互、状态切换与结果写入。理解其left / right / none三态模型与再次点击取消的交互规则即可在文本、图片、音频、视频等任意受支持的数据类型上快速搭建专业的成对对比标注项目为后续的偏好排序、生成质量评估等机器学习任务积累结构化数据。【免费下载链接】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),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门