洗发膏

首页 » 用途 » 用途 » 安利一个开源的好工具LabelStud
TUhjnbcbe - 2021/3/17 13:14:00
卤米松乳膏 https://m-mip.39.net/nk/mipso_4338981.html

原创·作者

Johnson

职业

菱歌科技Datatouch项目算法工程师

研究方向

自然语言处理

本示例是NLP示例,实际也可以用于图像工作。

官方仓库代码:

label-studio:heartexlabs/label-studio

textbrewer:airaria/TextBrewer

我的测试代码:

johnson/label-studio

johnson/TextBrewer

一、简介

1.1在NLP日常工作中,我们需要按几个步骤进行数据处理和模型训练。

1.先收集数据:通过爬虫或者其它工具,将数据结构化保存到数据库中。

2.数据预处理:其中大部分都是无标签数据,对于无标签数据的可以用无监督做预训练模型,也可以用经过整理后进行标注变成有标签数据。

3.数据标注:对于NLP的标注,我们常用的标注包括文本分类,命名实体识别,文本摘要等。

4.模型训练:对打好标签的数据进行训练,参数调优等

5.模型评估:对测试数据或开发数据进行评估,判断模型好坏

6.不断重复1-5步,优化模型和数据,提高模型性能。

图1、流程图

1.2通常完成这些步骤耗时数周的时间,所以我们需要整合相关功能到自动化的平台。

本文使用的是工具有:

label-studio:数据标注工具

transformers:高度集成的模型训练套件

TextBrewer:哈工大模型蒸馏工具

flask:自定义一些api,把标注和模型训练串联起来

二、label-studio

2.1label-studio扮演的角色

如下图,label-studio用于连接各个数据导入,数据标注,调用模型训练标注好的数据的作用。

图2

预览图:关键字情感分类的标注示例,可以关联多个模型的预测结果,例如使用bert和electra2个模型作为ML后端

图3

2.2Features

可配置:使用jsxtags配置,自定义配置标注页面,所以可标注格式很多,样式也可以自定义

协作标注:由两个或更多人label同一任务,然后比较结果,还支持用户名密码简单的认证。支持按预测的模型预测的probability的大小顺序标注,默认按导入数据的索引顺序标注。

多种数据类型:您定义自己的具有不同的label类型,Images,Audios,Texts,HTMLs,已有大量模板,直接使用接口

支持导入格式:JSON,CSV,TSV,RARandZIParchives,支持API导入数据。

NPM嵌入:前端是NPM包,NPMpackage.您可以将其包含在您的项目中.

机器学习:机器学习的集成支持。可视化并比较来自不同模型的预测。pre-labeling功能很好,可以实现用训练的模型预标注数据,那么结果人工标注前就比较方便,而且还知道模型预测的怎么样

支持docker容器部署

方便的API接口

具体支持的标注内容如下:

三、使用方法

3.1调用API

我们要利用label-studio的API实现以下功能:

导入数据--人工打开label-studio标注数据--训练模型--训练好的模型预测未标注数据,辅助人员标注

/api/projectGET返回项目的设置和状态,状态包括任务和完成的数量POST创建一个任务,带desc参数作为项目的标题PATCH更新任务设置

/api/project/configPOST修改配置文件

/api/project/importPOST导入数据

/api/project/exportGET导出数据

/api/tasksGET获取所有数据;DELETE方法删除所有task数据,删除所有task,数据,同时会删除已标注的数据

/api/tasks/task_idGET获取第几条数据;DELETEdeletespecifictask

/api/tasks/task_id/

1
查看完整版本: 安利一个开源的好工具LabelStud