Skip to content

Conversation

@guarin
Copy link
Contributor

@guarin guarin commented Nov 19, 2025

What has changed and why?

  • Update README
  • Update main docs page

How has it been tested?

LightlyTrain documentation - update.pdf

Did you update CHANGELOG.md?

  • Yes
  • Not needed (internal change)

Did you update the documentation?

  • Yes
  • Not needed (internal change without effects for user)

Copilot AI review requested due to automatic review settings November 19, 2025 15:37
Copilot finished reviewing on behalf of guarin November 19, 2025 15:38
Copy link
Contributor

Copilot AI left a 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

Comment on lines +16 to +20
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.
Copy link

Copilot AI Nov 19, 2025

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.

Suggested change
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.

Copilot uses AI. Check for mistakes.
Comment on lines +31 to +34
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.
Copy link

Copilot AI Nov 19, 2025

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.

Suggested change
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.

Copilot uses AI. Check for mistakes.
Comment on lines +134 to +136
- 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
Copy link

Copilot AI Nov 19, 2025

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.

Suggested change
- 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

Copilot uses AI. Check for mistakes.
Comment on lines +149 to +156
| 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) | |
Copy link

Copilot AI Nov 19, 2025

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.

Suggested change
| 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] | |

Copilot uses AI. Check for mistakes.
Comment on lines +172 to +173
track training method, model architecture, and system information (OS, GPU). To opt-out,
set the environment variable: `export LIGHTLY_TRAIN_EVENTS_DISABLED=1`
Copy link

Copilot AI Nov 19, 2025

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.

Suggested change
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`

Copilot uses AI. Check for mistakes.
Comment on lines +266 to +267
LightlyTrain provides simple commands to autolabel your unlabeled data using DINOv2 or
DINOv3 pretrained models. This allows you to efficiently boost performance of your
Copy link

Copilot AI Nov 19, 2025

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.

Copilot uses AI. Check for mistakes.
Comment on lines +279 to +281
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
Copy link

Copilot AI Nov 19, 2025

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.

Copilot uses AI. Check for mistakes.
Comment on lines +303 to +305
- 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
Copy link

Copilot AI Nov 19, 2025

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.

Suggested change
- 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

Copilot uses AI. Check for mistakes.
Comment on lines +318 to +319
| 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) |
Copy link

Copilot AI Nov 19, 2025

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.

Suggested change
| 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] |

Copilot uses AI. Check for mistakes.
Comment on lines +343 to +344
track training method, model architecture, and system information (OS, GPU). To opt-out,
set the environment variable: `export LIGHTLY_TRAIN_EVENTS_DISABLED=1`
Copy link

Copilot AI Nov 19, 2025

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.

Suggested change
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`

Copilot uses AI. Check for mistakes.
Copy link
Contributor

@IgorSusmelj IgorSusmelj left a 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(
Copy link
Contributor

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",
},
},
)
Copy link
Contributor

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(
Copy link
Contributor

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(
Copy link
Contributor

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(
Copy link
Contributor

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 |
Copy link
Contributor

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants