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

将WatsonX集成到Label Studio

WatsonX提供一套机器学习工具,包括通过WatsonX.data访问众多大语言模型、提示词优化界面和数据存储。当您将WatsonX与Label Studio集成时,即可访问这些模型,并能自动将标注数据同步更新至WatsonX.data数据表中。

要运行此集成,您需要拉取此代码库并在本地或云端托管。然后,您可以在设置中的models部分将模型链接到您的Label Studio项目。要使用WatsonX.data集成,请在设置中的webhooks下通过以下链接结构设置webhook:/data/upload,并将触发器设置为ANNOTATION_CREATEDANNOTATION_UPDATED。有关webhooks的更多信息,请参阅我们的文档

有关如何设置环境变量以使系统正常工作的详细信息,请参阅底部的配置说明。

如需视频演示,请参阅Integrating Label Studio with IBM WatsonX

开始之前

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

本教程使用watsonx_llm示例

设置您的label_config

对于本项目,我们建议您从下方定义的标注配置开始,但您随时可以编辑或扩展它以满足需求!关键点在于,必须包含一个标签,以便模型能将其响应插入其中。

<View>
    <Style>
        .lsf-main-content.lsf-requesting .prompt::before { content: ' loading...'; color: #808080; }

        .text-container {
        background-color: white;
        border-radius: 10px;
        box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1);
        padding: 20px;
        font-family: 'Courier New', monospace;
        line-height: 1.6;
        font-size: 16px;
        }
    </Style>
    <Header value="Context:"/>
    <View className="text-container">
        <Text name="context" value="$text"/>
    </View>
    <Header value="Prompt:"/>
    <View className="prompt">
        <TextArea name="prompt"
                  toName="context"
                  rows="4"
                  editable="true"
                  maxSubmissions="1"
                  showSubmitButton="false"
                  placeholder="Type your prompt here then Shift+Enter..."
        />
    </View>
    <Header value="Response:"/>
    <TextArea name="response"
              toName="context"
              rows="4"
              editable="true"
              maxSubmissions="1"
              showSubmitButton="false"
              smart="false"
              placeholder="Generated response will appear here..."
    />
    
    <Header value="Overall response quality:"/>
    <Rating name="rating" toName="context"/>
</View>

设置WatsonX.Data

要使用您的WatsonX.data集成,请按照以下步骤操作。

  1. 首先,获取您将使用的引擎的主机和端口信息。为此,请导航至WatsonX.data页面左侧边栏中的基础设施管理器,并选择基础设施管理器。通过点击右上角的符号切换到列表视图。然后点击您将使用的引擎名称。这将弹出一个窗口,您可以在"host"下看到主机和端口信息。端口是URL末尾:之后的部分。
  2. 接下来,确保您的目录已设置好。要创建新目录,请按照这些说明操作
  3. 目录设置完成后,请确保同时配置正确的数据模式。前往数据管理器并选择create创建新数据模式
  4. 掌握了所有这些信息后,您就可以更新本页底部列出的环境变量,开始您的WatsonX.data集成之旅了!
  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 ./dir_with_your_model

配置

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

以下通用参数可用:

  • BASIC_AUTH_USER - 指定模型服务器的基础认证用户。
  • BASIC_AUTH_PASS - 指定模型服务器的基础认证密码。
  • LOG_LEVEL - 设置模型服务器的日志级别。
  • WORKERS - 指定模型服务器的工作线程数量。
  • THREADS - 指定模型服务器的线程数量。

以下参数允许您将WatsonX模型连接到Label Studio:

  • LABEL_STUDIO_URL - 指定您的Label Studio实例的URL。请注意,如果您在另一个Docker容器中运行Label Studio,可能需要设置为http://host.docker.internal:8080
  • LABEL_STUDIO_API_KEY - 指定用于验证Label Studio实例的API密钥。您可以通过登录Label Studio并访问账户与设置页面找到该密钥。
  • WATSONX_API_KEY - 指定用于WatsonX身份验证的API密钥。您可以按照此处的说明生成此密钥
  • WATSONX_PROJECT_ID - 指定您将运行模型的WatsonX项目ID。该项目必须具有WML功能。您可以在项目的General部分找到此ID,通过从WatsonX主页点击项目即可访问。
  • WATSONX_MODELTYPE - 指定您想使用的WatsonX模型名称。完整列表可在IBM的文档中查看
  • DEFAULT_PROMPT - 如果您希望模型能自动对新数据样本进行预测,您需要提供一个默认提示词或默认提示词文件的路径。
  • USE_INTERNAL_PROMPT - 如果使用默认提示,设置为0。否则,设置为1。

以下参数允许您使用webhook连接将数据从Label Studio传输到WatsonX.data:

  • WATSONX_ENG_USERNAME - 必须设置为ibmlhapikey才能使集成正常工作。

要获取以下主机和端口信息,您可以按照前提条件下的步骤操作。

  • WATSONX_ENG_HOST - 您的WatsonX.data引擎的主机信息
  • WATSONX_ENG_PORT - WatsonX.data引擎的端口信息
  • WATSONX_CATALOG - 您将插入数据的表所属目录的名称。必须在WatsonX.data平台中创建。
  • WATSONX_SCHEMA - 您将插入数据的表所属的模式名称。必须在WatsonX.data平台中创建。
  • WATSONX_TABLE - 您将数据插入的表格名称。无需预先创建。