doccano数据标注实战:从部署到团队交付

发布时间:2026/11/5 1:24:45
doccano数据标注实战:从部署到团队交付

doccano数据标注实战:从部署到团队交付

【免费下载链接】doccanoOpen source annotation tool for machine learning practitioners.项目地址: https://gitcode.com/gh_mirrors/do/doccano

如果你团队里有人为手工整理标注标签熬过夜,doccano 值得试一下。它是一款免费的开源AI数据标注工具,覆盖从导入数据到导出标注数据集的完整流程,适合算法工程师和数据团队做中小规模标注任务。我用标注工具3年,下面按我一般怎么搞的 doccano标注流程 展开:部署 → 建项目 → 灌数据 → 标注 → 交付。

🚀 doccano部署教程:三种方式任选,团队上Compose

部署有三种方式,按你掌控的粒度从低到高:

  • Docker 单容器:docker pull doccano/doccano,创建容器时传入ADMIN_USERNAME、ADMIN_EMAIL、ADMIN_PASSWORD三个环境变量,数据目录挂到本地卷,重启不丢,默认 8000 端口。
  • pip 安装:pip install doccano之后依次执行doccano init初始化数据库、doccano createuser --username admin --password pass建管理员、doccano webserver --port 8000起服务;另开一个终端跑doccano task,那是处理导入导出的任务队列。
  • Docker Compose:把 nginx 前端、Django 后端、Postgres 数据库、RabbitMQ 队列和 Flower 任务面板(5555 端口)一起拉起来,最接近生产环境。

什么时候你会用到它?自己试水用单容器就够;给团队上生产就用 Compose,数据卷挂在宿主机,重建容器不影响数据。

git clone https://gitcode.com/gh_mirrors/do/doccano cd doccano/docker && cp .env.example .env docker-compose -f docker-compose.prod.yml --env-file .env up

部署完打开浏览器,Compose 里 nginx 映射到 80 端口,在 http://localhost 用 .env 里设好的管理员账号登录即可。

建项目:9种任务类型与3个关键开关

项目列表页点 Create。doccano 支持 9 种任务类型:文档分类、序列标注(NER 命名实体识别属于这类)、Seq2seq、意图检测与槽位填充、语音转文本、图像分类、Bounding Box、Segmentation、图像描述。选择时先想"训练数据最后长什么样":一行一个标签选分类,字级区间选序列标注。

表单里有三个开关我会常开:

  • 随机顺序:样本打乱出现,避免标注者对顺序形成肌肉记忆;
  • 协作标注:开启后进度按项目整体统计,而不是每人各算各的;
  • 允许成员创建标签类型:标注者可以在标注时直接补新标签,NER 任务中途冒出新高频实体时能省不少来回沟通。

另外把标注规范写进 guideline 字段,标注者拿不准的时候界面上就能查到。什么时候你会用到它?两个人做的项目保持默认就行;3 人及以上协作,前两个开关基本必开。

灌数据:导入格式匹配与两个体积参数

建完项目直接落在 Dataset 页面,点 Actions > Import Dataset 上传。

任务类型支持的导入格式
文档分类CSV、txt(fastText)、JSON、JSONL
序列标注JSONL
Seq2seqCSV、JSON、JSONL

什么时候你会用到它?数据在 Excel 里就先导出 CSV 再传;JSONL 是最通用的格式,一行一个样本。导入页还有编码下拉框,别忽略:UTF-8 文件保持默认,旧 Excel 导出经常要选 gb18030 才不乱码。

两个体积相关的参数:导入批次由环境变量IMPORT_BATCH_SIZE控制,默认 1000,调大后大文件导入更快;单个上传文件上限默认 1GB(MAX_UPLOAD_SIZE),超了就拆文件。

⚡ 标注:先定标签与快捷键,再开自动标注

先别急着标,去 Labels 页把标签定义好,每个标签配快捷键和背景色。序列标注的标注者主要靠快捷键而不是鼠标,键位设计得好,速度差异明显。

手里有模型的话,用自动标注省掉初标:项目设置页的 Auto Labeling 标签页里选模板(如内置的 Amazon Comprehend Sentiment Analysis,或自定义 REST 请求),填请求参数和 Jinja2 映射模板,再把模型返回的标签逐一映射到项目标签。页面带测试按钮,先用样本文本验证映射逻辑再启用。什么时候你会用到它?文本分类这类重复任务,让模型先标、人只修正,单条耗时通常能砍掉一半;复杂 NER 的预标注错误较多,慎用。

标完之后盯 Metrics 标签页的三个数字:整体进度(完成/总数)、各成员进度、标签分布。某个标签分布和预期差得离谱,就是规范没对齐的信号。

交付:4种导出格式与3个协作角色

Dataset 页面点 Actions > Export Dataset。导出格式共 4 种:CSV、fastText、JSON、JSONL,能选哪些由任务类型决定,比如序列标注只有 JSONL。

doccano团队协作 靠三个角色:administrator、annotator、approver。添加成员时给合适角色,负责人可以同时兼标注,不用单设管理员账号。

我自己踩过的几个坑:

问题可能原因解法
登录不进去用户未创建或密码不一致用 .env 里的 ADMIN_USERNAME/ADMIN_PASSWORD 登录,之后在用户管理里改密
导入乱码编码选错导入页选对应编码,如 gb18030
大文件导入卡住单批数据过大调大 IMPORT_BATCH_SIZE 或拆分文件,用 Flower 面板查任务状态

延伸阅读

  • 部署与使用教程:docs/
  • 导入管线与各任务示例文件:backend/data_import/
  • 自动标注实现:backend/auto_labeling/

动手的话,先跑一个 5 条样本的文本分类项目,把导入、打标签、导出走一遍;再切序列标注练 NER;组内协作时打开协作标注,每周看一次标签分布,规范跑偏能早点发现。

【免费下载链接】doccanoOpen source annotation tool for machine learning practitioners.项目地址: https://gitcode.com/gh_mirrors/do/doccano

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