Label Studio
Label Studio
Label Studio는 오픈소스 데이터 라벨링(주석) 도구예요. 오디오, 텍스트, 이미지, 비디오, 시계열 데이터 등 다양한 데이터 타입을 간단하고 직관적인 UI로 라벨링하고, 여러 모델 포맷으로 내보낼 수 있어요. 원시 데이터를 준비하거나 기존 학습 데이터를 개선해서 더 정확한 ML 모델을 만들 때 사용하면 좋아요. 직접 로컬에 설치하거나 클라우드 인스턴스에 배포할 수 있고, 무료 웹 에디션 체험판도 제공해요.
출처: 문서
본문
핵심 기능
Label Studio를 사용하면 이런 것들이 가능해요.
- 다중 사용자 라벨링: 가입과 로그인 후 작업하면, 만든 주석(annotation)이 내 계정에 연결돼요.
- 여러 프로젝트: 하나의 인스턴스에서 모든 데이터셋을 관리하고 작업할 수 있어요.
- 간결한 디자인: 소프트웨어 사용법을 익히느라 시간을 낭비하지 않고 작업에 집중하게 해줘요.
- 설정 가능한 라벨 포맷: 시각적 인터페이스를 내 라벨링 요구에 맞게 커스터마이즈할 수 있어요.
- 다양한 데이터 타입 지원: 이미지, 오디오, 텍스트, HTML, 시계열, 비디오를 모두 지원해요.
- 파일 또는 클라우드 스토리지에서 가져오기: Amazon AWS S3, Google Cloud Storage, 또는 JSON, CSV, TSV, RAR, ZIP 아카이브에서 가져올 수 있어요.
- 머신러닝 모델 연동: 여러 모델의 예측을 시각화하고 비교하며, 사전 라벨링(pre-labeling)을 수행할 수 있어요.
- 데이터 파이프라인에 내장: REST API를 통해 내 데이터 파이프라인의 일부로 쉽게 넣을 수 있어요.
템플릿
Label Studio는 데이터를 라벨링하는 데 도움이 되는 다양한 템플릿을 포함하고 있어요. 전용 설정 언어를 사용해서 나만의 템플릿을 만들 수도 있어요.
설치
Docker로 설치하고 http://localhost:8080에서 접속할 수 있어요.
docker pull heartexlabs/label-studio:latest
docker run -it -p 8080:8080 -v $(pwd)/mydata:/label-studio/data heartexlabs/label-studio:latest
생성된 모든 자산(SQLite3 데이터베이스 label_studio.sqlite3, 업로드된 파일 등)은 ./mydata 디렉토리에 저장돼요.
기본 실행 명령을 덮어쓰려면 새 인자를 추가하면 돼요.
docker run -it -p 8080:8080 -v $(pwd)/mydata:/label-studio/data heartexlabs/label-studio:latest label-studio --log-level DEBUG
pip로 설치하려면 Python 3.10 이상이 필요해요.
# Requires Python >=3.10
pip install label-studio
# Start the server at http://localhost:8080
label-studio
Anaconda로 설치할 수도 있어요.
conda create --name label-studio
conda activate label-studio
conda install psycopg2
pip install label-studio
로컬 개발용으로 설치하는 경우예요.
# Install all package dependencies
pip install poetry
poetry install
# Run database migrations
python label_studio/manage.py migrate
python label_studio/manage.py collectstatic
# Start the server in development mode at http://localhost:8080
python label_studio/manage.py runserver
머신러닝 모델 연동
Label Studio Machine Learning SDK를 사용해서 좋아하는 머신러닝 모델을 연결할 수 있어요.
- 나만의 머신러닝 백엔드 서버를 시작해요. 자세한 설명은 label-studio-ml-backend를 참고해요.
- 프로젝트 설정의 모델 페이지에서 Label Studio를 해당 서버에 연결해요.
이렇게 하면 다음과 같은 것들이 가능해요.
- 사전 라벨링: 모델 예측을 사용해 데이터를 미리 라벨링할 수 있어요.
- 온라인 학습(online learning): 새로운 주석이 생성되는 동안 모델을 재학습할 수 있어요.
- 능동 학습(active learning): 데이터에서 가장 복잡한 예시만 라벨링해서 효율적으로 학습할 수 있어요.
에코시스템
| 프로젝트 | 설명 |
|---|---|
| label-studio | pip 패키지로 배포되는 서버 |
| Frontend library | React 기반 UI를 만드는 프론트엔드 라이브러리, mobx-state-tree로 상태 관리 |
| Data Manager library | 데이터 탐색 도구 Data Manager용 라이브러리 |
| label-studio-converter | 좋아하는 머신러닝 라이브러리 포맷으로 라벨을 인코딩 |
| label-studio-transformers | Label Studio와 연결·설정해서 쓰는 Transformers 라이브러리 |
사용 예시
Label Studio를 논문 등에서 인용할 때는 References 섹션에 다음 인용 정보를 포함하면 돼요.
@misc{Label Studio,
title={{Label Studio}: Data labeling software},
url={https://github.com/HumanSignal/label-studio},
note={Open source software available from https://github.com/HumanSignal/label-studio},
author={
Maxim Tkachenko and
Mikhail Malyuk and
Andrey Holmanyuk and
Nikolai Liubimov},
year={2020-2025},
}
이 소프트웨어는 Apache 2.0 라이선스로 배포돼요.