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를 사용해서 좋아하는 머신러닝 모델을 연결할 수 있어요.

  1. 나만의 머신러닝 백엔드 서버를 시작해요. 자세한 설명은 label-studio-ml-backend를 참고해요.
  2. 프로젝트 설정의 모델 페이지에서 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 라이선스로 배포돼요.

더 알아보기 (Learn more)