指南 3个标注团队操作手册:提升标注速度与质量

基于BERT的文本分类

NewModel是一个基于BERT的文本分类模型,专为与Label Studio配合使用而设计。该模型利用Hugging Face Transformers库对BERT模型进行微调,以实现文本分类功能。模型基于Label Studio中的标注数据进行训练,随后可用于对新数据进行预测。将此模型连接到Label Studio后,您可以:

  • 直接在Label Studio上使用您的标注数据训练BERT模型。
  • 使用来自Hugging Face模型中心的任何AutoModelForSequenceClassification模型。
  • 针对您的特定任务微调模型,并用它对新数据进行预测。
  • 自动从Label Studio下载已标注的任务,并准备训练数据。
  • 自定义训练参数,如学习率、训练轮数和权重衰减。

开始之前

在开始之前,您必须安装Label Studio ML后端

本教程使用bert_classifier示例

  1. 使用预构建的镜像在http://localhost:9090上启动机器学习后端:
docker-compose up
  1. 验证后端是否正在运行:
$ curl http://localhost:9090/
{"status":"UP"}
  1. 在Label Studio中创建一个项目。然后从项目设置的模型页面,连接模型。默认URL是http://localhost:9090

警告!请注意当前ML后端的一个限制:模型是从huggingface.co动态加载的。您可能需要提供环境中的HF_TOKEN环境变量。因此,这可能导致第一个预测请求的响应时间较慢。如果您在Label Studio端遇到超时问题(例如打开任务时看不到预测结果),请检查ML后端的日志是否有错误,并在几分钟后刷新页面。

从源码构建(高级)

要从源代码构建ML后端,您需要克隆代码仓库并构建Docker镜像:

docker-compose build

不使用Docker运行(高级)

要在不使用Docker的情况下运行ML后端,您需要克隆代码库并使用pip安装所有依赖项:

python -m venv ml-backend
source ml-backend/bin/activate
pip install -r requirements.txt

然后你可以启动ML后端:

label-studio-ml start ./dir_with_your_model

标注配置

在项目的设置 > 标注界面 > 浏览模板 > 自然语言处理 > 文本分类中,您可以找到Label Studio中文本分类的默认标注配置。该配置包含一个输出和一个输入。 您可以自由修改标签中的标签集以匹配您的具体任务,例如:

<View>
  <Text name="text" value="$text" />
  <Choices name="label" toName="text" choice="single" showInLine="true">
    <Choice value="label one" />
    <Choice value="label two" />
      <Choice value="label three" />
  </Choices>
</View>

配置

在运行容器之前,可以在docker-compose.yml中设置参数。

以下通用参数可用:

  • BASIC_AUTH_USER - 指定模型服务器的基础认证用户
  • BASIC_AUTH_PASS - 指定模型服务器的基础认证密码
  • LOG_LEVEL - 设置模型服务器的日志级别
  • WORKERS - 指定模型服务器的工作线程数量
  • THREADS - 指定模型服务器的线程数
  • BASELINE_MODEL_NAME: 用于训练的基线模型名称。默认为bert-base-multilingual-cased

训练

训练时可用的参数如下:

  • LABEL_STUDIO_HOST (必填): Label Studio实例的URL地址。默认为http://localhost:8080
  • LABEL_STUDIO_API_KEY (必填): Label Studio实例的API密钥
  • START_TRAINING_EACH_N_UPDATES: 在开始训练前需要从Label Studio下载的已标注任务数量。默认值为10。
  • LEARNING_RATE: 模型训练的学习率。默认值为2e-5。
  • NUM_TRAIN_EPOCHS: 模型训练的epoch数量。默认为3。
  • WEIGHT_DECAY: 模型训练中的权重衰减系数。默认值为0.01。
  • FINETUNED_MODEL_NAME: 微调模型的名称。默认为finetuned_model。检查点将以此名称保存。

注意:训练模型需要LABEL_STUDIO_API_KEY。您可以在Label Studio的账户与设置页面找到该API密钥。

自定义

可以通过在./bert_classifier目录中添加自定义模型和逻辑来定制ML后端。