首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >CMP7(类Cloudera CMP 7 404版华为Kunpeng)用开源软件Label Studio做数据标注

CMP7(类Cloudera CMP 7 404版华为Kunpeng)用开源软件Label Studio做数据标注

原创
作者头像
肥仔鱼
发布2025-11-13 10:14:12
发布2025-11-13 10:14:12
1270
举报

CMP7(类Cloudera CMP 7 404版华为Kunpeng)用开源软件Label Studio做数据标注

Cloudera CMP(Cloudera Data Platform)本身并不直接提供数据标注(Data Labeling/Annotation)功能,因为 CMP 的核心定位是 企业级大数据平台,主要用于数据湖管理、批流处理、分析与机器学习(通过 CML - Cloudera Machine Learning),而非面向人工标注任务(如图像框选、文本分类、NER 等)。

不过,你可以将 CMP 与开源数据标注工具集成,构建端到端的 AI/ML 数据处理 pipeline。以下是 与 CMP 兼容性好、可私有化部署、支持企业级协作的开源数据标注工具推荐


推荐 1:Label Studio(最通用、生态最丰富)

· 开源地址:https://github.com/heartexlabs/label-studio

· 许可证:Apache 2.0(社区版免费)

· 支持数据类型:文本、图像、音频、视频、时序、表格等(多模态)

· 与 CMP 集成方式

· 部署在 CMP 边缘节点或 Kubernetes(CML 支持)

· 标注数据存储到 HDFS / S3A / ADLS(通过 Label Studio 的 Storage 后端)

· 导出为 JSON、CSV,供 Spark/Flink 处理

· 可通过 CML Jupyter Notebook 调用其 API 自动创建标注任务

· 优势

· 支持预标注(Pre-annotation) + 主动学习(Active Learning)

· 提供角色权限、审核流程、多人协作

· 有企业版(Label Studio Enterprise),但社区版已足够强大

�� 适用场景:NLP(文本分类、NER)、CV(目标检测)、语音转写等。


推荐 2:Doccano(专注 NLP 文本标注)

· 开源地址:https://github.com/doccano/doccano

· 许可证:MIT

· 支持任务:文本分类、序列标注(NER)、序列到序列(翻译/摘要)

· 与 CMP 集成方式

· Docker 部署在 CMP 节点

· 数据导入/导出通过 CSV/JSON,可对接 Hive 表或 S3

· 适合与 CML 中的 NLP 模型训练 pipeline 衔接

· 优势

· 轻量、启动快、界面简洁

· 支持多语言、多人协作、项目管理

· 局限:仅支持文本,不支持图像/音频

�� 适用场景:构建 NER 数据集、情感分析、意图识别等。


推荐 3:LabelU(国产开源,多模态强)

· 开源地址:https://github.com/opendatalab/labelU

· 许可证:Apache 2.0

· 支持数据类型:图像、视频、音频、文本(多模态)

· 特色功能

· 支持 大模型预标注 + 人工精修

· 一键导出 COCO、JSON、MASK 等格式

· 可本地部署,数据不出域

· 与 CMP 集成

· 部署在 CMP 私有云节点

· 标注结果存入 HDFS/S3,供 Spark 或 CML 使用

· 支持快捷键、自定义标签体系,适合大规模标注

�� 适用场景:计算机视觉(检测/分割)、音视频时间戳标注、LLM 对话评估。


推荐 4:CVAT(Computer Vision Annotation Tool,专注图像/视频)

· 开源地址:https://github.com/cvat-ai/cvat

· 许可证:MIT

· 支持任务:2D/3D 框、多边形、关键点、跟踪、视频分割

· 与 CMP 集成

· 可部署在 CMP 的 Kubernetes 集群(CML 支持 K8s)

· 导出为 COCO、YOLO、Pascal VOC,直接用于模型训练

· 支持 LDAP/SSO,适合企业安全集成

· 优势:工业级图像标注,性能强,支持自动标注(集成 SAM、YOLO 等)

�� 适用场景:自动驾驶、工业质检、医学影像等 CV 任务。


�� 如何与 CMP 协同工作?(典型架构)

模型训练

· 数据存储:所有原始数据和标注结果统一存放在 CMP 管理的 数据湖(如 HDFS、S3A)

· 标注平台:独立部署开源工具,通过 Web UI 或 API 访问数据湖

· 模型训练:在 Cloudera Machine Learning (CML) 中使用 PySpark/TensorFlow/PyTorch 训练

· 预标注闭环:用训练好的模型生成预标注,回流到标注工具供人工修正


不推荐的组合

· 直接在 CMP 内“安装”标注工具作为服务:CMP 不是应用托管平台,应将标注工具视为 外部协作系统

· 使用仅支持公有云的标注 SaaS(如 Scale AI、Amazon SageMaker Ground Truth):不符合私有化、数据不出域要求。


总结:选型建议

需求

推荐工具

多模态(图/文/音/视频) + 大模型预标注

LabelU(国产,易部署)

通用性最强 + 企业协作 + API 丰富

Label Studio

纯 NLP 文本任务(NER/分类)

Doccano

专业图像/视频标注(工业级)

CVAT

所有上述工具均可 私有化部署,与 CMP Base / CMP Public Cloud 通过 共享存储(HDFS/S3)CML 无缝集成。

Cloudera Machine Learning (CML) 中启动 Label Studio 容器是完全可行的,因为 CML 原生支持 Docker 容器化工作负载(通过 Sessions、Jobs 或 Model API)。下面提供 完整、可运行的步骤,适用于 CDP Private Cloud Base 7.1.7+CDP Public Cloud 环境。


目标

在 CML 中:

· 启动一个持久化、可访问的 Label Studio 服务

· 数据存储在 CDP 数据湖(如 HDFS/S3)或 CML 项目存储中

· 支持多人协作(可选)


一、前提条件

项目

要求

CML 环境

CDP Private Cloud Base 7.1.7+ 或 CDP Public Cloud

权限

CML 项目成员(至少 Developer 角色)

存储

CML 项目已挂载 HDFS/S3(通过 External Volume)或使用默认项目存储

网络

允许外部访问(CML 自动分配 *.ds.<domain> 域名)


二、方法:使用 CML Session 启动 Label Studio(推荐用于开发/测试)

✅ 优点:快速启动、自动 HTTPS、内置身份认证 ⚠️ 注意:Session 默认 不持久化,需配置持久化存储

步骤 1:创建 CML 项目

· 在 CML 控制台 → New Project → 选择 "Python 3""Custom Engine"

步骤 2:编写启动脚本 start_label_studio.sh

在项目根目录创建:

Bash:

#!/bin/bash

# start_label_studio.sh

# 安装 Label Studio(仅首次需要)

pip install label-studio==1.15.0

# 设置数据目录(指向 CML 持久化存储)

export LABEL_STUDIO_LOCAL_FILES_SERVING_ENABLED=true

export LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT=/home/cdsw/data

# 启动服务(CML 会自动代理 9999 端口)

label-studio start \

  --host 0.0.0.0 \

  --port 9999 \

  --no-browser \

  --database-url sqlite:////home/cdsw/data/label_studio.db

�� 安全提示:生产环境建议使用 PostgreSQL 而非 SQLite。

步骤 3:配置持久化存储(关键!)

方案 A:使用 CML 默认项目存储(简单)

· 所有写入 /home/cdsw/ 的内容在 Session 重启后保留(CML 自动持久化)

方案 B:挂载 HDFS/S3(推荐用于生产)

· 在 CML 项目设置中 → EnginesExternal Volumes

· 添加 HDFS 路径(如 hdfs://<namenode>:8020/user/cdsw/label_data)

· 挂载到容器内路径:/mnt/label_data

· 修改脚本中的 --database-url 和 DOCUMENT_ROOT 为 /mnt/label_data

步骤 4:启动 Session

· 在 CML 项目中 → New Session

· Engine: Python 3.x

· Script: ./start_label_studio.sh

· Port: 9999

· 点击 Launch Session

步骤 5:访问 Label Studio

· Session 启动后,点击 "Open in Browser"(CML 会生成类似 https://<session-id>.ds.example.com 的 URL)

· 首次访问需设置管理员账号


三、方法:使用 CML Job(推荐用于长期运行)

✅ 优点:可设置为常驻服务、支持自动重启、资源隔离

创建 job.yaml

Yaml:

# job.yaml

name: label-studio-service

dockerImage: python:3.9-slim

script: |

  #!/bin/bash

  pip install label-studio==1.15.0

  label-studio start \

    --host 0.0.0.0 \

    --port 9999 \

    --no-browser \

    --database-url sqlite:////home/cdsw/data/label_studio.db

port: 9999

cpu: 2

memory: 4

environment:

  LABEL_STUDIO_LOCAL_FILES_SERVING_ENABLED: "true"

  LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT: "/home/cdsw/data"

启动 Job

Bash:

cdsw job run job.yaml

�� CML Job 同样支持 External Volumes,配置方式同上。


四、高级配置(生产建议)

1. 使用 PostgreSQL 替代 SQLite

Bash:

# 在 CML 外部部署 PostgreSQL(如 RDS 或本地)

label-studio start \

  --database-url postgresql://user:pass@pg-host:5432/label_studio

2. 启用 LDAP/SSO(企业集成)

Label Studio 支持 OAuth2、LDAP,可通过环境变量配置:

Bash:

export LABEL_STUDIO_OAUTH2_LOGIN=true

export LABEL_STUDIO_OIDC_CLIENT_ID=...

3. 自动加载数据集

· 将原始数据(图片/文本)放在 /mnt/label_data/raw/

· 在 Label Studio 项目中配置 "Local Files" 数据源,路径为 /raw

4. 导出标注结果到 Hive

· 标注完成后,导出为 JSON/CSV 到 /mnt/label_data/export/

· 在 CML Notebook 中用 PySpark 读取并写入 Hive:

Python:

df = spark.read.json("/mnt/label_data/export/project-123.json")

df.write.mode("overwrite").saveAsTable("labeled_data.ner_results")


五、注意事项

问题

解决方案

Session 停止后数据丢失

务必使用 /home/cdsw/ 或 External Volume

无法上传大文件

在 CML 项目设置中调高 max_upload_size

多人协作冲突

使用 PostgreSQL + 启用 Label Studio 的 Collaborative Mode

性能慢

为 Session/Job 分配更多 CPU/Memory(Label Studio 推荐 2C4G 起)


六、验证是否成功

· 访问 CML 生成的 URL

· 创建新项目 → 选择 "Upload Files"

· 上传测试文件(如 sample.txt)

· 检查 /home/cdsw/data/ 是否生成 media/ 目录和 label_studio.db


总结

在 CML 中运行 Label Studio 完全可行,推荐:

· 开发/测试:用 Session + 脚本

· 生产/长期服务:用 Job + PostgreSQL + External Volume(HDFS/S3)

这样,你的标注平台就与 CDP 数据湖、CML 模型训练无缝集成,形成闭环。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档