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 |
| Seq2seq | CSV、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),仅供参考