Label Studio 项目创建与配置指南:从零搭建标注项目并发布给标注员
【免费下载链接】label-studioLabel Studio is a multi-type data labeling and annotation tool with standardized output format项目地址: https://gitcode.com/GitHub_Trending/la/label-studio
本文以 Label Studio 官方文档《Create and configure projects》为核心骨架,结合本仓库源码深入讲解项目创建、数据导入、标注界面定制、项目设置配置与发布全流程。读完本文,你将掌握在 Label Studio 中从空白项目到可交付标注任务的完整实战路径,并理解项目配置项背后的数据模型与接口实现。
Label Studio 中的所有标注活动(数据导入、标注、审核、导出)都发生在**项目(Project)**的上下文中。项目既是组织数据与标注任务的容器,也是承载标注配置、模型连接、云存储同步等能力的配置单元。本文基于开源仓库 docs/source/guide/setup_project.md 展开,逐层讲解项目的创建与配置。
项目设置工作流总览
在你完成 启动 Label Studio 并 创建账户 之后,即可按照以下工作流建立第一个标注项目:
- 创建项目(Create a project)
- 导入数据(Import data into Label Studio)—— 见 导入任务数据
- 对于小型项目、测试或概念验证(POC)场景,可以在项目创建向导中直接通过 UI 上传本地文件;
- 对于大型项目,官方推荐先创建项目,再从项目设置中添加云存储,详见 从外部存储同步数据。
- 定制标注界面(Customize your labeling interface)—— 见 配置标注界面
- 推荐从预置模板出发再行修改,也可以使用 标签库 自行组合标签构建自定义模板。
- 配置项目设置(Configure project settings)
- 开源版可配置任务采样、标注指令等可选设置,详见 项目设置;
- 企业版可进一步配置标注员/审核员可见信息与工作流自动化程度,并可借助 AI 助手 直接生成标注配置 XML。
- (企业版)向项目或工作区添加成员,见下文"添加项目成员"。
- (企业版)发布项目,见下文"发布项目"。
创建项目:三步完成基本搭建
在 Label Studio 界面右上角点击Create Project,会打开一个包含三个标签页的创建窗口:
| 标签页 | 说明 |
|---|---|
| Project Name | 唯一必填部分。在此选择工作区(Workspace)、填写项目名称,并可选填写项目描述。完成后可点击Save直接创建,也可以继续完成其余标签页。 |
| Data Import | 在此上传文件到 Label Studio。可以在创建时完成,也可以在项目创建后随时补充。大型项目建议改用云存储或其他导入方式,参见 获取数据到 Label Studio 与 同步外部存储。 |
| Labeling Setup | 选择标注配置模板以快速开始。为降低上手难度,建议从 模板库 选择模板,之后再按需定制,详见 配置标注界面。同样可在创建时或创建后完成。 |
全部配置完成后点击Save即可创建项目。
需要说明的是,Workspace(工作区)仅对企业版用户开放;企业版还包含基于角色的访问控制(RBAC)与工作流自动化等更多项目配置能力,开源版与企业的功能差异可参考 开源版与企业版功能对比。
项目模型视角下的"创建"
从源码看,项目创建对应 ProjectListAPI 的 POST 请求,最终落库为Project模型实例。Project 模型 中与创建直接相关的字段包括:
title(项目名,长度受PROJECT_TITLE_MIN_LEN/PROJECT_TITLE_MAX_LEN校验);description(项目描述);label_config(标注配置 XML,默认值为<View></View>,在 models.py 中定义);is_draft(标识项目是否处于创建中间态)。
项目创建时会通过validate_label_config校验标注配置,并在保存时解析出parsed_label_config(JSON 形式)与label_config_hash,为后续任务渲染提供依据,见 models.py。
开源版:标注前的项目设置
在用户开始标注之前,有若干设置项值得优先完成。入口有两个:在 Data Manager 右上角点击Settings,或从每个项目卡片右上角的溢出菜单进入(下图):
开源版建议优先配置两类设置:
标注指令(Instructions for data labelers)
对应项目设置中的Labeling Instructions,用于为标注员编写任务说明,支持 HTML 格式。开启Show before labeling后,用户进入标注流(点击Label All Tasks时)会弹出指令弹窗;若未开启,标注员需在标注界面底部点击Show instructions手动查看。
源码中对应 Project 模型 的expert_instruction(HTML 格式的标注指令)与show_instruction(是否在标注开始前展示指令)两个字段。序列化层在 serializers.py 中还会用bleach.clean对expert_instruction做 HTML 安全清洗,仅放行白名单标签与属性,防止恶意脚本注入。
任务采样(Task sampling)
任务采样决定标注流中任务的展示顺序,默认采用顺序采样(sequential),即标注员看到任务的顺序与 Data Manager 中的排序一致;也可切换为随机顺序。
Project 模型 定义了三种采样策略:
| 选项 | 含义 |
|---|---|
Sequential sampling(默认) | 任务按 Data Manager 排序依次展示 |
Uniform sampling | 任务随机抽取 |
Uncertainty sampling | 依据模型不确定性分数选择任务(主动学习模式) |
除 UI 外,也可以通过命令行或环境变量在启动时设置采样方式,例如:
label-studio start <project_name> --sampling sequential--sampling支持sequential或uniform,默认sequential。开源版仅前两种可选;Uncertainty sampling对应模型不确定性驱动的主动学习场景,详见 启动参数文档。更完整的设置项说明见 项目设置。
项目数据与配置存储在何处
自 1.0.0 版本起,Label Studio 将项目数据与配置存储在SQLite 数据库中,你也可以改用 PostgreSQL,详见 配置数据库存储。
在早于 1.0.0 的版本中,首次启动时 Label Studio 会从一个项目目录(默认名为./my_project)启动,可通过以下命令初始化:
label-studio start ./my_project --init当前版本的启动命令与数据库相关参数(如-db/--database及LABEL_STUDIO_DATABASE环境变量)请参考 启动 Label Studio 与 配置数据库存储。
企业版:影响标注体验的高影响设置
企业版项目设置通过打开项目后点击右上角Settings进入。面对众多配置项,官方建议优先聚焦以下几类对标注体验影响最大的设置。
标注设置(Annotation)
标注员(Annotator)是负责标注任务的人,重点关注:
- 分配标注任务(Distribute labeling tasks):位于Annotation下,决定标注员是否必须被手动分配任务才能标注。若使用Auto distribution(自动分配),项目一经发布,项目成员即可开始标注;否则必须手动指派。
- 允许空标注(Allow empty annotations):位于Annotation下,决定标注员能否不添加标签就完成任务。默认允许提交空标注,可改为要求所有任务必须包含标签。对应 Project 模型 的
enable_empty_annotation字段(默认True)。 - 每任务最少标注数(Annotations per task minimum):仅在自动分配模式下适用,位于Quality下,决定一个任务被多少位标注员提交后才算完成。默认每任务只需 1 位标注员提交;可通过提高 task overlap 让任务需要更多标注员。对应 Project 模型 的
maximum_annotations字段(默认1),当任务标注数达到该值即视为完成(is_labeled=True)。
审核设置(Review)
审核员(Reviewer)负责核验标注提交的准确性,重点关注:
- 任务在至少一条标注被接受后视为已审核或任务在所有标注都被审核后才视为已审核:决定"任务已被审核"的判定条件。默认审核员只需接受一条标注即算完成;可改为审核员必须接受/拒绝所有标注员的提交。
- 仅审核手动分配的任务(Review only manually assigned tasks):默认审核员在有可审核任务时即可开始审核;可改为必须手动分配任务给审核员。
以上企业版能力属于工作流自动化范畴,具体设置项说明可参考 项目设置 中 Annotation 与 Quality 相关章节。
添加项目成员(企业版)
向项目添加成员有两种方式:
- 在工作区层级添加成员,项目自动继承工作区的成员关系,详见 工作区管理;
- 在项目层级添加成员。
在项目层级添加成员的步骤:
- 进入项目设置,选择Members;
- 使用搜索功能定位要添加的用户;
- 勾选其姓名前的复选框,点击
>箭头加入项目;点击反向箭头<移除成员; - 若用户的组织级角色为 Annotator 或 Reviewer,可通过下拉菜单为其分配项目级角色(Annotator 或 Reviewer)。例如,同一用户可以在 A 项目中担任 Annotator、在 B 项目中担任 Reviewer;
- 点击Save。
注意:用户被加入项目时不会收到通知。
权限模型上,Owner 与 Admin 角色可见所有项目;而 Manager、Annotator、Reviewer 角色的用户必须先被加入项目或其父级工作区,才能访问该项目。
发布项目给标注员(企业版)
可以将项目对标注员隐藏,以便在任何人开始标注前完成全部配置。当一切就绪、需要标注员开始工作时,即可发布项目。
发布方式:点击页面顶部面包屑导航中的暂停图标(见下图):
发布后如需撤销,点击面包屑中的播放图标即可取消发布。
发布机制与权限强相关:Manager 角色的用户即使项目未发布,只要身为项目成员即可看到;而 Annotator 或 Reviewer 角色在项目发布之前无法看到或访问项目。在 Project 模型 中,is_published字段(默认False)即对应这一发布状态。
项目设置的完整视图与扩展阅读
开源版项目设置(通过 Data Manager → Settings 或项目溢出菜单进入)还包含更多配置区块:
- General:项目名、描述、颜色(用于 Projects 页面高亮)与任务采样;
- Labeling interface:标注界面核心配置,决定任务如何呈现给标注员,见 配置标注界面;
- Annotation:标注指令(支持 HTML、可选弹窗展示)与实时预测(Live Predictions,可选择已连接的模型或预测集作为预标注来源),模型集成见 机器学习集成;
- Model:连接 ML 后端。可配置"提交标注时启动训练"(触发 ML 后端
fit()方法形成主动学习闭环)与交互式预标注;已连接模型还支持手动 Start Training、Send Test Request、Edit、Delete 等操作; - Predictions:查看从 Data Manager 执行Retrieve Predictions导入或生成的预测,见 导入预标注数据;
- Cloud storage:连接 Source(源数据)与 Target(标注结果)云存储,见 同步外部存储;
- Webhooks:与第三方应用集成,见 设置 Webhooks;
- Danger Zone:包含可能导致数据丢失的操作 ——Drop All Tabs(Data Manager 无法加载时清空全部标签页)与Delete Project(永久删除项目内所有任务、标注与数据)。
小结
从创建项目、导入数据、定制标注界面,到配置标注指令与任务采样、接入模型与云存储,再到企业版中的成员管理与发布流程,项目始终是 Label Studio 一切标注活动的核心容器。理解 Project 模型 的字段语义(label_config、expert_instruction、maximum_annotations、sampling、is_published等)与 ProjectListAPI / ProjectSerializer 的接口行为,能帮助你在 UI 配置之外,更精准地通过 API 与配置自动化方式管理标注项目。
【免费下载链接】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),仅供参考