基于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示例。
使用Docker运行(推荐)
- 使用预构建的镜像在
http://localhost:9090上启动机器学习后端:
docker-compose up
- 验证后端是否正在运行:
$ curl http://localhost:9090/
{"status":"UP"}
- 在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后端。