将WatsonX集成到Label Studio
WatsonX提供一套机器学习工具,包括通过WatsonX.data访问众多大语言模型、提示词优化界面和数据存储。当您将WatsonX与Label Studio集成时,即可访问这些模型,并能自动将标注数据同步更新至WatsonX.data数据表中。
要运行此集成,您需要拉取此代码库并在本地或云端托管。然后,您可以在设置中的models
部分将模型链接到您的Label Studio项目。要使用WatsonX.data集成,请在设置中的webhooks
下通过以下链接结构设置webhook:/data/upload
,并将触发器设置为ANNOTATION_CREATED
和ANNOTATION_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集成,请按照以下步骤操作。
- 首先,获取您将使用的引擎的主机和端口信息。为此,请导航至WatsonX.data页面左侧边栏中的基础设施管理器,并选择基础设施管理器。通过点击右上角的符号切换到列表视图。然后点击您将使用的引擎名称。这将弹出一个窗口,您可以在"host"下看到主机和端口信息。端口是URL末尾
:
之后的部分。 - 接下来,确保您的目录已设置好。要创建新目录,请按照这些说明操作
- 目录设置完成后,请确保同时配置正确的数据模式。前往数据管理器并选择
create
创建新数据模式 - 掌握了所有这些信息后,您就可以更新本页底部列出的环境变量,开始您的WatsonX.data集成之旅了!
使用Docker运行(推荐)
- 使用预构建镜像在
http://localhost:9090
上启动机器学习后端:
docker-compose up
- 验证后端是否正在运行
$ curl http://localhost:9090/
{"status":"UP"}
- 在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
- 您将数据插入的表格名称。无需预先创建。