-
Notifications
You must be signed in to change notification settings - Fork 46
Update docs/readme #454
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Update docs/readme #454
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR updates the documentation and README to improve clarity and consistency. The changes focus on restructuring content to highlight workflows and use cases rather than technical features.
Key Changes:
- Restructured documentation tables to consolidate model names and reorder columns for better readability
- Added Colab badge links to various documentation pages for quick access to notebooks
- Refactored main documentation page and README to showcase workflows (Object Detection, Instance Segmentation, Semantic Segmentation, Distillation, Pretraining, Autolabeling) instead of features
Reviewed Changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 17 comments.
Show a summary per file
| File | Description |
|---|---|
| docs/source/train/index.md | Added Colab badge link to quick start notebook |
| docs/source/semantic_segmentation.md | Restructured benchmark tables, moved checkpoint names to "Model" column, updated references |
| docs/source/predict_autolabel.md | Restructured table to remove "Checkpoint Name" column, updated model name references in text |
| docs/source/object_detection.md | Changed "LT-DETR" to "LTDETR", restructured table with model names in "Model" column |
| docs/source/methods/distillation.md | Added Colab badge links at two locations |
| docs/source/methods/dinov2.md | Updated table header from "ImageNet k-NN" to "Val ImageNet k-NN" |
| docs/source/instance_segmentation.md | Restructured table with reordered columns, added Colab badge |
| docs/source/index.md | Major refactoring to workflow-centric structure with grid layout, added usage events section |
| README.md | Major refactoring to workflow-centric structure using collapsible sections, removed FAQ section |
| Below we provide the model checkpoints and report the validation mAP<sub>50:95</sub> and | ||
| inference FPS of different DINOv3 and DINOv2-based models, fine-tuned on the COCO dataset. | ||
| You can check [here](object-detection-use-model-weights) for how to use these model | ||
| checkpoints for further fine-tuning. The average FPS values were measured using TensorRT | ||
| in the version `10.13.3.9` and on a Nvidia T4 GPU with batch size 1. |
Copilot
AI
Nov 19, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lines 16-20 exceed the 88-character limit specified in the Markdown documentation style guidelines. These lines should be wrapped at 88 characters. For example, line 16 is 91 characters, line 17 is 93 characters, line 18 is 91 characters, and line 19 is 94 characters.
| Below we provide the model checkpoints and report the validation mAP<sub>50:95</sub> and | |
| inference FPS of different DINOv3 and DINOv2-based models, fine-tuned on the COCO dataset. | |
| You can check [here](object-detection-use-model-weights) for how to use these model | |
| checkpoints for further fine-tuning. The average FPS values were measured using TensorRT | |
| in the version `10.13.3.9` and on a Nvidia T4 GPU with batch size 1. | |
| Below we provide the model checkpoints and report the validation mAP<sub>50:95</sub> | |
| and inference FPS of different DINOv3 and DINOv2-based models, fine-tuned on the COCO | |
| dataset. You can check [here](object-detection-use-model-weights) for how to use these | |
| model checkpoints for further fine-tuning. The average FPS values were measured using | |
| TensorRT in the version `10.13.3.9` and on a Nvidia T4 GPU with batch size 1. |
| LightlyTrain is the leading framework for transforming your data into state-of-the-art | ||
| computer vision models. It covers the entire model development lifecycle from pretraining | ||
| DINOv2/v3 vision foundation models on your unlabeled data to fine-tuning transformer and | ||
| YOLO models on detection and segmentation tasks for edge deployment. |
Copilot
AI
Nov 19, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lines 31-34 exceed the 88-character limit specified in the Markdown documentation style guidelines. Line 31 is 91 characters, line 32 is 92 characters, and line 33 is 91 characters. These lines should be wrapped to comply with the 88-character limit.
| LightlyTrain is the leading framework for transforming your data into state-of-the-art | |
| computer vision models. It covers the entire model development lifecycle from pretraining | |
| DINOv2/v3 vision foundation models on your unlabeled data to fine-tuning transformer and | |
| YOLO models on detection and segmentation tasks for edge deployment. | |
| LightlyTrain is the leading framework for transforming your data into | |
| state-of-the-art computer vision models. It covers the entire model | |
| development lifecycle from pretraining DINOv2/v3 vision foundation models | |
| on your unlabeled data to fine-tuning transformer and YOLO models on | |
| detection and segmentation tasks for edge deployment. |
| - Python, Command Line, and [Docker](https://docs.lightly.ai/train/stable/docker.html) support | ||
| - Built for [high performance](https://docs.lightly.ai/train/stable/performance/index.html) including [multi-GPU](https://docs.lightly.ai/train/stable/performance/multi_gpu.html) and [multi-node](https://docs.lightly.ai/train/stable/performance/multi_node.html) support | ||
| - [Monitor training progress](https://docs.lightly.ai/train/stable/train.html#loggers) with MLflow, TensorBoard, Weights & Biases, and more |
Copilot
AI
Nov 19, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lines 134-136 exceed the 88-character limit. Line 134 is 103 characters, line 135 is 200 characters, and line 136 is 143 characters. These lines should be wrapped at 88 characters per the Markdown documentation style guidelines.
| - Python, Command Line, and [Docker](https://docs.lightly.ai/train/stable/docker.html) support | |
| - Built for [high performance](https://docs.lightly.ai/train/stable/performance/index.html) including [multi-GPU](https://docs.lightly.ai/train/stable/performance/multi_gpu.html) and [multi-node](https://docs.lightly.ai/train/stable/performance/multi_node.html) support | |
| - [Monitor training progress](https://docs.lightly.ai/train/stable/train.html#loggers) with MLflow, TensorBoard, Weights & Biases, and more | |
| - Python, Command Line, and | |
| [Docker](https://docs.lightly.ai/train/stable/docker.html) support | |
| - Built for | |
| [high performance](https://docs.lightly.ai/train/stable/performance/index.html) | |
| including | |
| [multi-GPU](https://docs.lightly.ai/train/stable/performance/multi_gpu.html) and | |
| [multi-node](https://docs.lightly.ai/train/stable/performance/multi_node.html) support | |
| - [Monitor training progress](https://docs.lightly.ai/train/stable/train.html#loggers) | |
| with MLflow, TensorBoard, Weights & Biases, and more |
| | LightlyTrain | DINOv3 | ✅ [🔗](https://docs.lightly.ai/train/stable/object_detection.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/instance_segmentation.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/semantic_segmentation.html#use-eomt-with-dinov3) | ✅ [🔗](https://docs.lightly.ai/train/stable/methods/distillation.html#distill-from-dinov3) | | ✅ [🔗](https://docs.lightly.ai/train/stable/predict_autolabel.html) | | ||
| | | DINOv2 | ✅ [🔗](https://docs.lightly.ai/train/stable/object_detection.html) | | ✅ [🔗](https://docs.lightly.ai/train/stable/semantic_segmentation.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/methods/distillation.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/methods/dinov2.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/predict_autolabel.html) | | ||
| | Torchvision | ResNet | | | | ✅ [🔗](https://docs.lightly.ai/train/stable/models/torchvision.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/models/torchvision.html) | | | ||
| | | ConvNext | | | | ✅ [🔗](https://docs.lightly.ai/train/stable/models/torchvision.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/models/torchvision.html) | | | ||
| | | ShuffleNetV2 | | | | ✅ [🔗](https://docs.lightly.ai/train/stable/models/torchvision.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/models/torchvision.html) | | | ||
| | TIMM | All models | | | | ✅ [🔗](https://docs.lightly.ai/train/stable/models/timm.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/models/timm.html) | | | ||
| | Ultralytics | YOLOv5 | | | | ✅ [🔗](https://docs.lightly.ai/train/stable/models/ultralytics.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/models/ultralytics.html) | | | ||
| | | YOLOv6 | | | | ✅ [🔗](https://docs.lightly.ai/train/stable/models/ultralytics.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/models/ultralytics.html) | | |
Copilot
AI
Nov 19, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lines 147, 149, and 150 significantly exceed the 88-character limit (line 147 has 364 characters, line 149 has 447 characters, line 150 has 403 characters). While Markdown tables can be challenging to wrap, consider restructuring the table to reduce line length, such as using shorter URLs via link references or breaking the table into multiple smaller tables.
| | LightlyTrain | DINOv3 | ✅ [🔗](https://docs.lightly.ai/train/stable/object_detection.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/instance_segmentation.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/semantic_segmentation.html#use-eomt-with-dinov3) | ✅ [🔗](https://docs.lightly.ai/train/stable/methods/distillation.html#distill-from-dinov3) | | ✅ [🔗](https://docs.lightly.ai/train/stable/predict_autolabel.html) | | |
| | | DINOv2 | ✅ [🔗](https://docs.lightly.ai/train/stable/object_detection.html) | | ✅ [🔗](https://docs.lightly.ai/train/stable/semantic_segmentation.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/methods/distillation.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/methods/dinov2.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/predict_autolabel.html) | | |
| | Torchvision | ResNet | | | | ✅ [🔗](https://docs.lightly.ai/train/stable/models/torchvision.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/models/torchvision.html) | | | |
| | | ConvNext | | | | ✅ [🔗](https://docs.lightly.ai/train/stable/models/torchvision.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/models/torchvision.html) | | | |
| | | ShuffleNetV2 | | | | ✅ [🔗](https://docs.lightly.ai/train/stable/models/torchvision.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/models/torchvision.html) | | | |
| | TIMM | All models | | | | ✅ [🔗](https://docs.lightly.ai/train/stable/models/timm.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/models/timm.html) | | | |
| | Ultralytics | YOLOv5 | | | | ✅ [🔗](https://docs.lightly.ai/train/stable/models/ultralytics.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/models/ultralytics.html) | | | |
| | | YOLOv6 | | | | ✅ [🔗](https://docs.lightly.ai/train/stable/models/ultralytics.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/models/ultralytics.html) | | | |
| | LightlyTrain | DINOv3 | ✅ [🔗][object_detection] | ✅ [🔗][instance_segmentation] | ✅ [🔗][semantic_segmentation_dinov3] | ✅ [🔗][distillation_dinov3] | | ✅ [🔗][autolabel] | | |
| | | DINOv2 | ✅ [🔗][object_detection] | | ✅ [🔗][semantic_segmentation] | ✅ [🔗][distillation] | ✅ [🔗][dinov2_pretrain] | ✅ [🔗][autolabel] | | |
| | Torchvision | ResNet | | | | ✅ [🔗](https://docs.lightly.ai/train/stable/models/torchvision.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/models/torchvision.html) | | | |
| | | ConvNext | | | | ✅ [🔗](https://docs.lightly.ai/train/stable/models/torchvision.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/models/torchvision.html) | | | |
| | | ShuffleNetV2 | | | | ✅ [🔗](https://docs.lightly.ai/train/stable/models/torchvision.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/models/torchvision.html) | | | |
| | TIMM | All models | | | | ✅ [🔗](https://docs.lightly.ai/train/stable/models/timm.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/models/timm.html) | | | |
| | Ultralytics | YOLOv5 | | | | ✅ [🔗](https://docs.lightly.ai/train/stable/models/ultralytics.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/models/ultralytics.html) | | | |
| | | YOLOv6 | | | | ✅ [🔗][ultralytics_models] | ✅ [🔗][ultralytics_models] | | |
| track training method, model architecture, and system information (OS, GPU). To opt-out, | ||
| set the environment variable: `export LIGHTLY_TRAIN_EVENTS_DISABLED=1` |
Copilot
AI
Nov 19, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Line 172 exceeds the 88-character limit (89 characters). It should be wrapped to comply with the Markdown documentation style guidelines.
| track training method, model architecture, and system information (OS, GPU). To opt-out, | |
| set the environment variable: `export LIGHTLY_TRAIN_EVENTS_DISABLED=1` | |
| track training method, model architecture, and system information (OS, GPU). | |
| To opt-out, set the environment variable: `export LIGHTLY_TRAIN_EVENTS_DISABLED=1` |
| LightlyTrain provides simple commands to autolabel your unlabeled data using DINOv2 or | ||
| DINOv3 pretrained models. This allows you to efficiently boost performance of your |
Copilot
AI
Nov 19, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Multiple lines exceed the 88-character limit: line 242 (92 chars), line 266 (90 chars), line 267 (89 chars), line 279 (89 chars), line 280 (93 chars), and line 281 (90 chars). These should be wrapped to comply with the Markdown documentation style guidelines.
| The better results with auto-labeling were achieved by fine-tuning a ViT-H+ on the | ||
| ADE20K dataset, which reaches 0.595 validation mIoU. This model was then used to autolabel | ||
| 100k images from the SUN397 dataset. Using these labels, we subsequently fine-tuned the |
Copilot
AI
Nov 19, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Multiple lines exceed the 88-character limit: line 242 (92 chars), line 266 (90 chars), line 267 (89 chars), line 279 (89 chars), line 280 (93 chars), and line 281 (90 chars). These should be wrapped to comply with the Markdown documentation style guidelines.
| - Python, Command Line, and [Docker](https://docs.lightly.ai/train/stable/docker.html) support | ||
| - Built for [high performance](https://docs.lightly.ai/train/stable/performance/index.html) including [multi-GPU](https://docs.lightly.ai/train/stable/performance/multi_gpu.html) and [multi-node](https://docs.lightly.ai/train/stable/performance/multi_node.html) support | ||
| - [Monitor training progress](https://docs.lightly.ai/train/stable/train.html#loggers) with MLflow, TensorBoard, Weights & Biases, and more |
Copilot
AI
Nov 19, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lines 303-305 exceed the 88-character limit (line 303 has 103 characters, line 304 has 200 characters, line 305 has 143 characters). These should be wrapped to comply with the Markdown documentation style guidelines.
| - Python, Command Line, and [Docker](https://docs.lightly.ai/train/stable/docker.html) support | |
| - Built for [high performance](https://docs.lightly.ai/train/stable/performance/index.html) including [multi-GPU](https://docs.lightly.ai/train/stable/performance/multi_gpu.html) and [multi-node](https://docs.lightly.ai/train/stable/performance/multi_node.html) support | |
| - [Monitor training progress](https://docs.lightly.ai/train/stable/train.html#loggers) with MLflow, TensorBoard, Weights & Biases, and more | |
| - Python, Command Line, and | |
| [Docker](https://docs.lightly.ai/train/stable/docker.html) support | |
| - Built for | |
| [high performance](https://docs.lightly.ai/train/stable/performance/index.html) | |
| including | |
| [multi-GPU](https://docs.lightly.ai/train/stable/performance/multi_gpu.html) and | |
| [multi-node](https://docs.lightly.ai/train/stable/performance/multi_node.html) support | |
| - [Monitor training progress](https://docs.lightly.ai/train/stable/train.html#loggers) | |
| with MLflow, TensorBoard, Weights & Biases, and more |
| | LightlyTrain | DINOv3 | ✅ [🔗](https://docs.lightly.ai/train/stable/object_detection.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/instance_segmentation.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/semantic_segmentation.html#use-eomt-with-dinov3) | ✅ [🔗](https://docs.lightly.ai/train/stable/methods/distillation.html#distill-from-dinov3) | | ✅ [🔗](https://docs.lightly.ai/train/stable/predict_autolabel.html) | | ||
| | | DINOv2 | ✅ [🔗](https://docs.lightly.ai/train/stable/object_detection.html) | | ✅ [🔗](https://docs.lightly.ai/train/stable/semantic_segmentation.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/methods/distillation.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/methods/dinov2.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/predict_autolabel.html) | |
Copilot
AI
Nov 19, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lines 316, 318, and 319 significantly exceed the 88-character limit (line 316 has 364 characters, line 318 has 447 characters, line 319 has 403 characters). While Markdown tables can be challenging to wrap, consider restructuring the table to reduce line length, such as using shorter URLs via link references or breaking the table into multiple smaller tables.
| | LightlyTrain | DINOv3 | ✅ [🔗](https://docs.lightly.ai/train/stable/object_detection.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/instance_segmentation.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/semantic_segmentation.html#use-eomt-with-dinov3) | ✅ [🔗](https://docs.lightly.ai/train/stable/methods/distillation.html#distill-from-dinov3) | | ✅ [🔗](https://docs.lightly.ai/train/stable/predict_autolabel.html) | | |
| | | DINOv2 | ✅ [🔗](https://docs.lightly.ai/train/stable/object_detection.html) | | ✅ [🔗](https://docs.lightly.ai/train/stable/semantic_segmentation.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/methods/distillation.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/methods/dinov2.html) | ✅ [🔗](https://docs.lightly.ai/train/stable/predict_autolabel.html) | | |
| | LightlyTrain | DINOv3 | ✅ [🔗][object_detection] | ✅ [🔗][instance_segmentation] | ✅ [🔗][semantic_segmentation_eomt] | ✅ [🔗][distill_dinov3] | | ✅ [🔗][autolabel] | | |
| | | DINOv2 | ✅ [🔗][object_detection] | | ✅ [🔗][semantic_segmentation] | ✅ [🔗][distill_dinov2] | ✅ [🔗][pretrain_dinov2] | ✅ [🔗][autolabel] | |
| track training method, model architecture, and system information (OS, GPU). To opt-out, | ||
| set the environment variable: `export LIGHTLY_TRAIN_EVENTS_DISABLED=1` |
Copilot
AI
Nov 19, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Line 343 exceeds the 88-character limit (89 characters). It should be wrapped to comply with the Markdown documentation style guidelines.
| track training method, model architecture, and system information (OS, GPU). To opt-out, | |
| set the environment variable: `export LIGHTLY_TRAIN_EVENTS_DISABLED=1` | |
| track training method, model architecture, and system information (OS, GPU). | |
| To opt-out, set the environment variable: `export LIGHTLY_TRAIN_EVENTS_DISABLED=1` |
IgorSusmelj
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd change a few minor things (to make the sample code more useful and end2end we should also show how to use the trained models. And I'd leave away the huge table of models.
| data="my_data_dir", | ||
| model="ultralytics/yolov8s.pt", | ||
| method="distillation", | ||
| lightly_train.train_object_detection( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add a comment above this line to show that the following trains a model
| 2: "car", | ||
| }, | ||
| }, | ||
| ) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add a comment below and example how to run inference with the previously trained model (also mention inference output shape)
|
|
||
| if __name__ == "__main__": | ||
| lightly_train.train_object_detection( | ||
| lightly_train.train_instance_segmentation( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same as for detection
| # data config ... | ||
| } | ||
| ) | ||
| lightly_train.train_semantic_segmentation( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same as for detection
|
|
||
| MLOps | ||
| if __name__ == "__main__": | ||
| lightly_train.train( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same as for detection
|
|
||
| Scroll right to see all columns! | ||
|
|
||
| | Framework | Model | Object Detection<br><sub>(*Labeled Images*)</sub> | Instance Segmentation<br><sub>(*Labeled Images*)</sub> | Semantic Segmentation<br><sub>(*Labeled Images*)</sub> | Distill From<br> DINOv2/v3<br><sub>(*Unlabeled Images*)</sub> | Pretrain<br><sub>(*Unlabeled Images*)</sub> | Autolabel | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's a cool idea with the table but this is too verbose and uses too much space for little information. I'd leave it away
What has changed and why?
How has it been tested?
LightlyTrain documentation - update.pdf
Did you update CHANGELOG.md?
Did you update the documentation?