技能创建器
skill-creator
创建、改进和评估自定义技能,把专业流程转化为可重复使用的 AI 能力。
label-training-data【数据与研究】Label Studioまたは同様のツールを使用して体系的なデータラベリングワークフローを設定する。 品質管理を実装し、アノテーター間一致度を測定し、ラベラーチームを管理し、ラベル付き データをML訓練パイプラインに統合する。ラベル付き訓練データを必要とする教師あり MLプロジェクトを開始する時、モデル性能がラベル付き例の不足により制限されている時、 テキスト・画像・音声・動画のラベリングを行う時、または能動学習を実装して最も 価値のある例を優先する時に使用する。
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
完全な設定ファイルとテンプレートについては拡張例を参照。
品質管理と効率的なワークフローで教師ありMLのためにデータを体系的にラベリングする。
Label Studioをラベリングプラットフォームとして設定する。
# Install Label Studio
pip install label-studio
# Or use Docker for production
docker pull heartexlabs/label-studio:latest
# Create project directory
mkdir -p labeling-project/{data,exports,config}
cd labeling-project
# Initialize Label Studio
label-studio init my_project
# Start Label Studio server
label-studio start my_project --port 8080
http://localhost:8080でアクセス(デフォルト認証情報: 初回アクセス時に作成)。
プロダクションデプロイメントにはDockerを使用:
# docker-compose.yml
version: '3.8'
services:
label-studio:
image: heartexlabs/label-studio:latest
ports:
- "8080:8080"
# ... (see EXAMPLES.md for complete implementation)
docker-compose up -d
期待結果: Label Studioが起動しアクセス可能であること。PostgreSQLデータベースがプロダクション使用のために初期化されていること。
失敗時: ポート8080が既に使用中の場合、設定でポートを変更する。Dockerが失敗する場合、Dockerデーモンが起動しているか確認する。データボリュームに十分なディスク容量があることを確認する。ファイアウォールがポート8080を許可していることを確認する。
タスクタイプに応じたラベリング設定を作成する。
# labeling-project/config/labeling_config.py
"""
Label Studio configuration templates for common tasks.
"""
# Text Classification (single label)
TEXT_CLASSIFICATION = """
<View>
# ... (see EXAMPLES.md for complete implementation)
期待結果: タスクタイプに適切なコントロールでラベリングインターフェースが設定され、データが正常にインポートされ、アノテーターがインターフェースにアクセスできること。
失敗時: Label Studioの設定バリデーターでXML設定を検証する。データファイル形式(JSONまたはCSV)を確認する。外部ストレージを使用している場合、画像/音声URLがアクセス可能であることを確認する。APIキーが正しい権限を持っていることを検証する。
インポート用にデータをフォーマットし、ラベリングの例に優先順位を付ける。
# labeling-project/prepare_data.py
import pandas as pd
import json
import random
from typing import List, Dict
from sklearn.cluster import KMeans
import numpy as np
# ... (see EXAMPLES.md for complete implementation)
期待結果: Label Studioインポート用にデータが正しくフォーマットされ、サンプリング戦略が情報量の多い例を優先し、タスクに追跡用のメタデータが含まれること。
失敗時: jqまたはPythonのjson.load()でJSON形式を検証する。リモート画像を使用している場合、URLがアクセス可能であることを確認する。特殊文字がJSONエンコーディングを壊していないことを確認する。カラム名が設定と一致していることを検証する。
アノテーション品質を測定・改善するプロセスを設定する。
# labeling-project/quality_control.py
import pandas as pd
import numpy as np
from sklearn.metrics import cohen_kappa_score, confusion_matrix
from typing import Dict, List, Tuple
import logging
logging.basicConfig(level=logging.INFO)
# ... (see EXAMPLES.md for complete implementation)
期待結果: アノテーター間一致度が測定されること(Cohenのκ > 0.6は中程度、> 0.8は良好)。困難なタスクがレビュー用に特定されること。アノテーターのパフォーマンスが追跡されること。
失敗時: κが非常に低い場合(< 0.4)、ラベリングガイドラインの明確さを見直す。アノテーターを再訓練する。ラベルスキーマを簡素化する。曖昧な例を確認する。ゴールドスタンダードに専門家アノテーターの使用を検討する。
ラベルをエクスポートしML訓練用に準備する。
# labeling-project/export_labels.py
import requests
import pandas as pd
import json
from typing import List, Dict
import logging
logger = logging.getLogger(__name__)
# ... (see EXAMPLES.md for complete implementation)
期待結果: アノテーションが訓練可能な形式でエクスポートされること。ラベル分布がバランスしているか文書化されていること。訓練前にデータ品質が検証されること。
失敗時: APIキーの権限を検証する。エクスポート形式のMLフレームワークとの互換性を確認する。欠落したアノテーションを適切に処理する。JSON構造が期待される形式と一致していることを検証する。
能動学習統合を含むラベリングワークフローを自動化する。
# labeling-project/active_learning_pipeline.py
import schedule
import time
import logging
from datetime import datetime
from prepare_data import DataSampler, prepare_label_studio_format
from export_labels import LabelStudioExporter, convert_to_training_format
import pandas as pd
# ... (see EXAMPLES.md for complete implementation)
期待結果: 能動学習が情報量の多い例を自動的に選択すること。ラベリングバッチが毎週準備されること。十分な新しいラベルが利用可能になった時にモデルが再訓練されること。
失敗時: 不確実性サンプリングがモデルを改善しない場合、多様性サンプリングを試す。アノテーターが追いつけない場合、バッチサイズを減らす。ラベリングキューの長さを監視する。キューが大きくなりすぎた場合、バックプレッシャーを実装する。
version-ml-data - ラベル付きデータセットのバージョン管理track-ml-experiments - ラベル追加に伴うモデル性能の追跡