Why annotation sets?
Annotation sets provide:- Versioning: Track changes to your annotations over time
- Immutability: Published sets cannot be modified, ensuring reproducibility
- Iteration: Create new versions to improve labels without losing history
Draft vs Published
Annotation sets have two states:Draft
- Editable: Add, update, and delete annotations
- Cannot train: Draft sets cannot be used for training
- Use for: Active labeling, experimentation
Published
- Immutable: No changes allowed
- Can train: Required for training models
- Use for: Final labels, reproducible experiments
Creating annotation sets
Create a new draft annotation set:Python
Listing annotation sets
Python
Publishing
Publish a set to lock it for training:Python
- Statistics are computed (total annotations, duration by type, etc.)
- The set is locked from further edits
- The set becomes available for training
Annotation set statistics
Published sets include computed statistics:Iteration workflow
A typical workflow for improving annotations:Creating a new version
When you need to update labels:- Create a new annotation set (starts as draft)
- Copy annotations from previous version (if desired)
- Add, edit, or delete annotations
- Publish when ready
Python
Deleting annotation sets
Only draft sets can be deleted:Python
Published annotation sets cannot be deleted because they may be referenced by trained models.
Best practices
Don’t publish too early
Keep sets in draft while actively labeling:- Run quality checks before publishing
- Have another person review labels
- Verify coverage across all artifact types
Track what changed
When creating new versions, document the changes:Python
One set per training run
Use one published annotation set per training job:- Makes it clear which labels produced which model
- Enables comparison between different labeling approaches
- Supports A/B testing of different annotation strategies
