来辅助标记)
目录一、概述1.1 系统信息1.2 ML Backend二、安装ML Backend2.1 Docker容器配置2.1.1 安装docker容器2.1.2 配置用户权限2.2 克隆 ML Backend 仓库方法1直接在wsl中git拉取仓库方法2直接在windows下git克隆仓库2.3 配置模型2.3.1 进入示例模型文件夹如yolo2.3.2 复制配置文件到项目根目录2.3.3 获取Label Studio用户API KEY2.3.4 修改docker-compose.yml文件配置环境变量2.4 启动模型2.4.1 进入ML项目根目录所在文件夹2.4.2 启动模型2.4.3 查看ml-backend服务2.5 配置使用systemctl开机自启动2.5.1 创建服务文件2.5.2 启动服务2.5.3 服务的常用操作三、Label Studio连接Ml-Backend服务3.1 打开Label Studio服务3.2 创建Model3.3 启动地限诗号执古纪御今传指天运地无极门太上识道尊。老君嫡传道门之中最不可见的两位前辈也是实力修为最超凡入圣的两位道仙开创道镇、建立太上府威震道界。道镇伏魔崖太上府双尊之一虽外表比师兄天极年长但相较于天极刚烈心性地限给人多些温和且怀柔之印象在太上府内受人敬重同时也提携后辈不遗馀力。明知冲隐无为受异识感染仍愿多次劝告给予改过之机会面对三教的斗争亦采取以和为贵的作风不让邪恶势力趁虚而入颠乱是非。一、概述1.1 系统信息zeroPC-LJM:~$uname-aLinux PC-LJM6.18.33.2-microsoft-standard-WSL2#1 SMP PREEMPT_DYNAMIC Thu Jun 18 21:54:43 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux1.2 ML BackendML Backend 是 Label Studio 中一个非常核心的概念你可以把它理解成一个定制的模型服务。它的作用就是把你自己的AI模型比如之前提到的YOLO包装成一个独立的Web服务器然后连接到Label Studio里让模型在标注过程中帮忙自动打标签预标注或者实现更智能的交互式标注从而极大地提升效率 它的核心价值是自动预标注 (Pre-annotation)在你打开一个标注任务时模型会自动分析图片或文字并预先画好框、打好标签你只需要检查修正就行不用从零开始。交互式标注 (Interactive labeling)这是一个更高级的用法。当你在标注时比如在图片上点一个点或高亮一段文字ML Backend可以实时响应并根据你的这个动作给出更精准的预测建议。模型微调与训练 (Training)你还可以让模型基于标注员新提交的标注数据在后台进行学习fit方法不断更新模型越用越准。二、安装ML Backend2.1 Docker容器配置2.1.1 安装docker容器可参考下位完成docker容器的安装Ubuntu学习笔记-安装docker容器2.1.2 配置用户权限docker默认按照docker用户组运行为了保证运行需要将需要运行的用户添加到该用户组中。sudousermod-aGdocker$USERnewgrpdocker# 获取新的用户组权限不用退出客户端即可获得2.2 克隆 ML Backend 仓库其实官方库很慢我也找了几个其他国内的仓库不过不确定是不是完整镜像后面我还是使用官方库连接下载就是比较慢一点。方法1直接在wsl中git拉取仓库zeroPC-LJM:~$cd~# 返回系统用户目录# 克隆 ml-backend 项目zeroPC-LJM:~$gitclone https://github.com/HumanSignal/label-studio-ml-backend.git Cloning intolabel-studio-ml-backend... remote: Enumerating objects:6622, done. remote: Counting objects:100%(76/76), done. remote: Compressing objects:100%(50/50), done. Receiving objects:18%(1211/6622),1.88MiB|19.00KiB/s Receiving objects:18%(1251/6622),6.64MiB|16.00KiB/s error: RPC failed;curl92HTTP/2 stream5was not closed cleanly: CANCEL(err8)error:15899bytes of body are still expected fetch-pack: unexpected disconnectwhilereading sideband packet fatal: early EOF fatal: fetch-pack: invalid index-pack output注这方法速度慢反复克隆失败。方法2直接在windows下git克隆仓库直接再windows下用TortoiseGit克隆如下图坐标是再windows下克隆仓库的右侧是再wsl中拉取两个下载速度差了一倍。下载完毕后直接再windows的资源管理器中复制到ubuntu子系统中的用户账户中。2.3 配置模型2.3.1 进入示例模型文件夹如yolo进入ml-backend项目文件夹中zeroPC-LJM:~$cdlabel-studio-ml-backend/ zeroPC-LJM:~/label-studio-ml-backend$ ll total88drwxr-xr-x7zero zero4096Jul1115:19 ./ drwxr-x---8zero zero4096Jul1115:19../ drwxr-xr-x7zero zero4096Jul1115:19 .git/ drwxr-xr-x4zero zero4096Jul1115:19 .github/ -rw-r--r--1zero zero2126Jul1115:07 .gitignore drwxr-xr-x2zero zero4096Jul1115:19 .rules/ -rw-r--r--1zero zero11541Jul1115:07 LICENSE -rw-r--r--1zero zero41Jul1115:07 MANIFEST.in -rw-r--r--1zero zero91Jul1115:07 Makefile -rw-r--r--1zero zero20653Jul1115:07 README.md -rw-r--r--1zero zero40Jul1115:07 codecov.yml# 模型在这个文件夹里drwxr-xr-x4zero zero4096Jul1115:19 label_studio_ml/ -rw-r--r--1zero zero160Jul1115:07 requirements.txt -rw-r--r--1zero zero1102Jul1115:07 setup.py drwxr-xr-x2zero zero4096Jul1115:19 tests/下一级目录zeroPC-LJM:~/label-studio-ml-backend$cdlabel_studio_ml/ zeroPC-LJM:~/label-studio-ml-backend/label_studio_ml$ ll total88drwxr-xr-x4zero zero4096Jul1115:19 ./ drwxr-xr-x7zero zero4096Jul1115:19../ -rw-r--r--1zero zero147Jul1115:07 __init__.py -rw-r--r--1zero zero5481Jul1115:07 api.py -rw-r--r--1zero zero3730Jul1115:07 cache.py drwxr-xr-x2zero zero4096Jul1115:19 default_configs/# 这个是示例模型在的位置drwxr-xr-x28zero zero4096Jul1115:19 examples/ -rw-r--r--1zero zero1899Jul1115:07 exceptions.py -rw-r--r--1zero zero498Jul1115:07 ls_io.py -rw-r--r--1zero zero18317Jul1115:07 model.py -rw-r--r--1zero zero1310Jul1115:07 response.py -rw-r--r--1zero zero9329Jul1115:07 server.py -rw-r--r--1zero zero5622Jul1115:07 utils.py -rw-r--r--1zero zero982Jul1115:07 wsgi.py进入examples这个文件加就是直接各种模型的示例的存储位置了什么模型就是什么名字。zeroPC-LJM:~/label-studio-ml-backend/label_studio_ml$cdexamples zeroPC-LJM:~/label-studio-ml-backend/label_studio_ml/examples$ ll total112drwxr-xr-x28zero zero4096Jul1115:19 ./ drwxr-xr-x4zero zero4096Jul1115:19../ drwxr-xr-x2zero zero4096Jul1115:19 bert_classifier/ drwxr-xr-x2zero zero4096Jul1115:19 deepgram/ drwxr-xr-x2zero zero4096Jul1115:19 docling/ drwxr-xr-x3zero zero4096Jul1115:19 easyocr/ drwxr-xr-x2zero zero4096Jul1115:19 flair/ drwxr-xr-x2zero zero4096Jul1115:19 gliner/ drwxr-xr-x2zero zero4096Jul1115:19 grounding_dino/ drwxr-xr-x3zero zero4096Jul1115:19 grounding_sam/ drwxr-xr-x2zero zero4096Jul1115:19 huggingface_llm/ drwxr-xr-x2zero zero4096Jul1115:19 huggingface_ner/ drwxr-xr-x2zero zero4096Jul1115:19 interactive_substring_matching/ drwxr-xr-x2zero zero4096Jul1115:19 langchain_search_agent/ drwxr-xr-x2zero zero4096Jul1115:19 llm_interactive/ drwxr-xr-x2zero zero4096Jul1115:19 mmdetection-3/ drwxr-xr-x2zero zero4096Jul1115:19 nemo_asr/ drwxr-xr-x2zero zero4096Jul1115:19 ppocr/ drwxr-xr-x2zero zero4096Jul1115:19 segment_anything_2_image/ drwxr-xr-x2zero zero4096Jul1115:19 segment_anything_2_video/ drwxr-xr-x2zero zero4096Jul1115:19 segment_anything_model/ drwxr-xr-x2zero zero4096Jul1115:19 segment_anything_video_interactive/ drwxr-xr-x2zero zero4096Jul1115:19 sklearn_text_classifier/ drwxr-xr-x2zero zero4096Jul1115:19 spacy/ drwxr-xr-x3zero zero4096Jul1115:19 tesseract/ drwxr-xr-x3zero zero4096Jul1115:19 timeseries_segmenter/ drwxr-xr-x2zero zero4096Jul1115:19 watsonx_llm/ drwxr-xr-x6zero zero4096Jul1115:19 yolo/进入yolo示例文件夹以下就是示例模型相关的文件目录zeroPC-LJM:~/label-studio-ml-backend/label_studio_ml/examples$cdyolo zeroPC-LJM:~/label-studio-ml-backend/label_studio_ml/examples/yolo$ ll total192drwxr-xr-x6zero zero4096Jul1115:19 ./ drwxr-xr-x28zero zero4096Jul1115:19../ -rw-r--r--1zero zero457Jul1115:07 .dockerignore -rw-r--r--1zero zero2003Jul1115:07 Dockerfile -rw-r--r--1zero zero60648Jul1115:07 README.md -rw-r--r--1zero zero9178Jul1115:07 README_DEVELOP.md -rw-r--r--1zero zero26920Jul1115:07 README_TIMELINE_LABELS.md -rw-r--r--1zero zero15847Jul1115:07 YOLO_CLASSES.md -rw-r--r--1zero zero0Jul1115:07 __init__.py -rw-r--r--1zero zero4166Jul1115:07 _wsgi.py -rw-r--r--1zero zero5151Jul1115:07 cli.py drwxr-xr-x2zero zero4096Jul1115:19 control_models/# ************************* 这个文件夹就是模型配置的参数文件需要修改这个文件进行配置-rw-r--r--1zero zero2143Jul1115:07 docker-compose.yml -rw-r--r--1zero zero6186Jul1115:07 model.py drwxr-xr-x2zero zero4096Jul1115:19 models/ -rw-r--r--1zero zero183Jul1115:07 requirements-base.txt -rw-r--r--1zero zero31Jul1115:07 requirements-test.txt -rw-r--r--1zero zero70Jul1115:07 requirements.txt -rw-r--r--1zero zero154Jul1115:07 start.sh drwxr-xr-x2zero zero4096Jul1115:19 tests/ drwxr-xr-x2zero zero4096Jul1115:19 utils/2.3.2 复制配置文件到项目根目录将docker-compose.yml复制到~/label-studio-ml-backend/下。zeroPC-LJM:~/label-studio-ml-backend/label_studio_ml/examples/yolo$cpdocker-compose.yml ~/label-studio-ml-backend/docker-compose.yml zeroPC-LJM:~/label-studio-ml-backend/label_studio_ml/examples/yolo$cd~/label-studio-ml-backend/ zeroPC-LJM:~/label-studio-ml-backend$ ll total92drwxr-xr-x7zero zero4096Jul1314:48 ./ drwxr-x---9zero zero4096Jul1310:33../ drwxr-xr-x7zero zero4096Jul1115:19 .git/ drwxr-xr-x4zero zero4096Jul1115:19 .github/ -rw-r--r--1zero zero2126Jul1115:07 .gitignore drwxr-xr-x2zero zero4096Jul1115:19 .rules/ -rw-r--r--1zero zero11541Jul1115:07 LICENSE -rw-r--r--1zero zero41Jul1115:07 MANIFEST.in -rw-r--r--1zero zero91Jul1115:07 Makefile -rw-r--r--1zero zero20653Jul1115:07 README.md -rw-r--r--1zero zero40Jul1115:07 codecov.yml -rw-r--r--1zerodocker2469Jul1314:48 docker-compose.yml drwxr-xr-x4zero zero4096Jul1115:19 label_studio_ml/ -rw-r--r--1zero zero160Jul1115:07 requirements.txt -rw-r--r--1zero zero1102Jul1115:07 setup.py drwxr-xr-x2zero zero4096Jul1115:19 tests/ zeroPC-LJM:~/label-studio-ml-backend$2.3.3 获取Label Studio用户API KEY访问label studio然后右上角点击头像找到Account Settings复制密钥如果没有就创建一个注这个创建的时候记得保存好创建好后就复制不了了。2.3.4 修改docker-compose.yml文件配置环境变量编辑配置文件zeroPC-LJM:~/label-studio-ml-backend$sudovimdocker-compose.yml添加dockerfile路径services: yolo: container_name: yolo# 这个是配置使用预编译镜像image: heartexlabs/label-studio-ml-backend:latest build: context:.# 指定dockerfile路径dockerfile: label_studio_ml/examples/yolo/Dockerfile args: TEST_ENV:${TEST_ENV}# 修改支持显卡deploy: resources: reservations: devices: - driver: nvidia count: all capabilities:[gpu]environment: -NVIDIA_VISIBLE_DEVICESall# 显卡参数-NVIDIA_DRIVER_CAPABILITIESall# 显卡参数-CUDA_VISIBLE_DEVICES0# 指定显卡# specify these parameters if you want to use basic auth for the model server-BASIC_AUTH_USER-BASIC_AUTH_PASS找到API_KEY修改成label studio的apikey# Specify the Label Studio URL and API key to access# uploaded, local storage and cloud storage files.# Do not use localhost or 127.0.0.1 as it does not work within Docker containers.# Use prefix http:// or https:// for the URL always.# Determine the actual IP using ifconfig (Linux/Mac) or ipconfig (Windows).# or you can try http://host.docker.internal:label-studio-port if you run LS on the same machine#- LABEL_STUDIO_HOST${LABEL_STUDIO_HOST:-http://host.docker.internal:8080}# 替换成具体的地址-LABEL_STUDIO_HOSThttp://host.docker.internal:8080# - LABEL_STUDIO_API_KEY${LABEL_STUDIO_API_KEY}-LABEL_STUDIO_API_KEY{替换成2.3.3获取的密钥}# YOLO parameters# Allow to use custom model_path in labeling configurations-ALLOW_CUSTOM_MODEL_PATHtrue# Show matplotlib debug plot for YOLO predictions-DEBUG_PLOTfalse# Default score threshold, which is used to filter out low-confidence predictions,# you can change it in the labeling configuration using model_score_threshold parameter in the control tags-MODEL_SCORE_THRESHOLD0.5# Model root directory, where the YOLO model files are stored-MODEL_ROOT/app/models extra_hosts: -host.docker.internal:host-gateway# for macos and unixports: -9090:9090volumes: -./data/server:/data-./models:/app/models-./cache_dir:/app/cache_dir2.4 启动模型2.4.1 进入ML项目根目录所在文件夹zeroPC-LJM:~$cd~/label-studio-ml-backend2.4.2 启动模型直接启动模型因为配置了预编译镜像所以不用编译直接启动dockercompose up下载镜像会比较久慢慢下载哦。zeroPC-LJM:~/label-studio-ml-backend$dockercompose up WARN[0000]TheTEST_ENVvariable is not set. Defaulting to a blank string.[]up1/1 ✔ Container yolo Created0.1s Attaching to yolo yolo|[2026-07-13 09:49:46 0000][1][INFO]Starting gunicorn22.0.0 yolo|[2026-07-13 09:49:46 0000][1][INFO]Listening at: http://0.0.0.0:9090(1)yolo|[2026-07-13 09:49:46 0000][1][INFO]Using worker: gthread yolo|[2026-07-13 09:49:46 0000][6][INFO]Booting worker with pid:6yolo|/opt/conda/lib/python3.10/site-packages/pydantic/_internal/_config.py:341: UserWarning: Valid config keys have changedinV2:2.4.3 查看ml-backend服务在本地浏览器访问http://localhost:9090查看服务情况。模型名称NewModel状态UP正常启动2.5 配置使用systemctl开机自启动2.5.1 创建服务文件服务文件的名称可以根据自己的喜好设置一般按照相关服务直接命名ml-backend.servicezeroPC-LJM:~$sudovim/etc/systemd/system/ml-backend.service添加以下服务信息[Unit]DescriptionLabel Studio ML Backend ServiceRequiresdocker.service# 依赖的服务Afterdocker.service# 在什么服务启动后启动[Service]Typeoneshot# 启动类型单次启动适合后台服务类型的启动RemainAfterExityes# yes表示退出了服务还在no表示退出了服务也关闭WorkingDirectory/home/zero/label-studio-ml-backend# 工作目录执行指令的文件夹路径即docker-compose.yml 所在目录重要ExecStart/usr/bin/docker compose up-d# 启动指令ExecStop/usr/bin/docker compose down# 关闭指令ExecReload/usr/bin/docker compose restart# 重启指令Userzero# 运行服务的用户Groupdocker# 运行服务的用户组Restartno# 不自动重启StandardOutputjournalStandardErrorjournal[Install]WantedBymulti-user.target2.5.2 启动服务重新加载 systemd 服务配置zeroPC-LJM:~$sudosystemctl daemon-reload设置开机自启动zeroPC-LJM:~$sudosystemctlenableml-backend Created symlink /etc/systemd/system/multi-user.target.wants/ml-backend.service → /etc/systemd/system/ml-backend.service.启动服务zeroPC-LJM:~$sudosystemctl start ml-backend查看服务状态zeroPC-LJM:~$sudosystemctl status ml-backend ● ml-backend.service - Label Studio ML Backend Service Loaded: loaded(/etc/systemd/system/ml-backend.service;enabled;preset: enabled)Active: active(exited)since Tue2026-07-14 08:39:48 CST;2min 30s ago Main PID:1254(codeexited,status0/SUCCESS)CPU: 75ms Jul1408:39:46 PC-LJM systemd[1]: Starting ml-backend.service - Label Studio ML Backend Service... Jul1408:39:46 PC-LJM docker[1275]:time2026-07-14T08:39:4608:00levelwarningmsgThe\TESJul1408:39:46 PC-LJM docker[1275]: Network label-studio-ml-backend_default Creating Jul1408:39:46 PC-LJM docker[1275]: Network label-studio-ml-backend_default Created Jul1408:39:46 PC-LJM docker[1275]: Container yolo Creating Jul1408:39:46 PC-LJM docker[1275]: Container yolo Created Jul1408:39:46 PC-LJM docker[1275]: Container yolo Starting Jul1408:39:48 PC-LJM docker[1275]: Container yolo Started Jul1408:39:48 PC-LJM systemd[1]: Finished ml-backend.service - Label Studio ML Backend Service.2.5.3 服务的常用操作# 启动服务sudosystemctl start ml-backend# 停止服务sudosystemctl stop ml-backend# 重启服务sudosystemctl restart ml-backend# 查看服务状态sudosystemctl status ml-backend# 查看服务日志sudojournalctl-uml-backend-f# 查看最近 50 行日志sudojournalctl-uml-backend-n50# 禁用开机自启动sudosystemctl disable ml-backend三、Label Studio连接Ml-Backend服务3.1 打开Label Studio服务服务器访问http://localhost:8080/3.2 创建Model打开项目设置创建Model输入模型名称和访问地址地址就是2.5.2启动时的服务一般是http://localhost:9090保存后查看model的连接装填连接如下表示连接成功。3.3 启动