為標註設計資料格式
如何為標註項目組織輸入資料(JSON、JSONL、CSV),Potato 期望哪些欄位,以及如何規劃乾淨匯出到訓練流程。
好的標註始於結構良好的輸入。每個條目都需要一個穩定的唯一識別符號以及待標註的內容;其餘一切都是可選的上下文。 一開始就把這件事做對,能省去日後痛苦的返工,因為標註是按你的條目 ID 來關聯的。
常見的交換格式有 JSON、JSON Lines(每行一個物件,適合大型資料集)和 CSV。Potato 三者都能讀取。完整參考請見資料格式。
每個條目至少需要什麼
- 一個永不變更的唯一 ID。標註是按這個 ID 儲存的,所以如果你在項目進行中重新編號,就會丟失與現有標籤的關聯。
- 待標註的內容:一個文本欄位、一個圖片 URL、一段音訊路徑、一份時間對齊的轉錄,或一條結構化的軌跡。
一個文本任務的 JSONL 檔案看起來是這樣:
{"id": "rev_001", "text": "The battery lasts all day. Highly recommend."}
{"id": "rev_002", "text": "Stopped working after a week."}你需要告訴 Potato 使用哪些鍵:
item_properties:
id_key: id
text_key: text
data_files:
- "data/reviews.jsonl"攜帶上下文,但要與標籤分開
額外的欄位,比如來源 URL、時間戳、模型名稱,可以隨每個條目一同傳入並展示給標註者,而不會成為標籤本身。給它們取清晰的名字,這樣日後閱讀匯出結果會更輕鬆。
轉錄檔案同樣算作輸入
如果你的內容是語音,不必先把它壓平成一個文本欄位。Potato 能讀取 21 種轉錄和字幕格式,包括 Whisper 和 WhisperX JSON、Deepgram、AssemblyAI、AWS Transcribe、SRT、WebVTT、TTML、Praat TextGrid 和 ELAN EAF。資料檔案可以直接指向你的 ASR 工具寫出的檔案:
{"id": "int_001", "conversation": {"audio": "media/int_001.mp3",
"transcript": "media/int_001.srt"}}格式檢測基於檔案內容而非副檔名,所以同一份轉錄內聯寫或作為附屬檔案放著都能用。完整清單以及所有格式最終轉換成的歸一化輪次模型,請見轉錄格式。
在標註之前先規劃匯出
儘早決定標註好的資料將如何接入你的流程。Potato 可匯出為 JSON、JSONL 和 CSV,也可匯出為 ML 原生格式,例如用於序列標註的 CoNLL、Hugging Face Datasets,以及用於視覺任務的 COCO/YOLO。預先確定目標格式,能讓你知道現在該使用哪些欄位和哪種 ID 方案。參見為機器學習匯出標註。
output_annotation_dir: "annotation_output/"
export_annotation_format: "jsonl"