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

使用Label Studio集成Hugging Face NER模型

该项目使用自定义机器学习后端模型进行命名实体识别(NER),结合了Hugging Face的transformers和Label Studio工具。

该模型实例化了Hugging Face transformers库中的AutoModelForTokenClassification,并在NER任务上进行了微调。

  • 如果只想在推理模式下使用该模型,它会基于预训练模型提供预测结果。
  • 如果想微调模型,可以使用Label Studio界面提供训练数据并训练模型。

了解更多兼容模型的信息,请参阅Hugging Face官方文档

开始之前

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

本教程使用huggingface_ner示例

标注配置

该机器学习后端与Label Studio的默认NER模板配合使用。在配置标注界面时,您可以通过选择Label Studio预构建的NER模板找到它。该模板位于自然语言处理 > 命名实体识别分类下:

<View>
  <Labels name="label" toName="text">
    <Label value="PER" background="red"/>
    <Label value="ORG" background="darkorange"/>
    <Label value="LOC" background="orange"/>
    <Label value="MISC" background="green"/>
  </Labels>

  <Text name="text" value="$text"/>
</View>

然后您可以根据需要自定义模板(例如修改标签名称)。但请注意模型输出的兼容性:

如果您计划仅将模型用于推理,请确保输出标签名称与XML标注配置中列出的内容兼容。如果您计划训练模型,则必须提供可进行微调的基准预训练模型(即可以训练最后一层的模型,例如distilbert/distilbert-base-uncased)。否则,在训练过程中可能会遇到关于张量尺寸不匹配的错误。

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

从源码构建(高级)

要从源代码构建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 ./huggingface_ner

配置

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

以下通用参数可用:

  • BASIC_AUTH_USER - 指定模型服务器的基础认证用户
  • BASIC_AUTH_PASS - 指定模型服务器的基础认证密码
  • LOG_LEVEL - 设置模型服务器的日志级别
  • WORKERS - 指定模型服务器的工作线程数量
  • THREADS - 指定模型服务器的线程数
  • BASELINE_MODEL_NAME: 使用的基线模型名称。默认为 dslim/bert-base-NER
  • FINETUNED_MODEL_NAME: 微调模型的名称。默认为 finetuned_model
  • LABEL_STUDIO_HOST: Label Studio实例的主机地址。默认为‘http://localhost:8080‘。
  • LABEL_STUDIO_API_KEY: Label Studio实例的API密钥。
  • START_TRAINING_EACH_N_UPDATES: 开始训练前的更新次数。默认为10
  • LEARNING_RATE: 模型的学习率。默认为 1e-3
  • NUM_TRAIN_EPOCHS: 训练轮数。默认为10
  • WEIGHT_DECAY: 模型的权重衰减率。默认为 0.01
  • MODEL_DIR: 模型存储的目录。默认为 './results'

注意:训练模型需要LABEL_STUDIO_API_KEY。您可以通过登录Label Studio并访问账户与设置页面找到该密钥。

自定义

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

修改 predict()fit() 方法以实现您自己的逻辑。