Skip to content
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

Add docs for the Fabric WandbLogger hosted in the wandb SDK #19451

Merged
merged 10 commits into from
Mar 9, 2024
11 changes: 11 additions & 0 deletions docs/source-fabric/api/loggers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,14 @@ Loggers
Logger
CSVLogger
TensorBoardLogger


Third-party Loggers
^^^^^^^^^^^^^^^^^^^

.. list-table::
:widths: 50 50
:header-rows: 0

* - :doc:`WandbLogger <../guide/loggers/wandb>`
- Log to `Weights & Biases <https://www.wandb.ai/>`_.
6 changes: 6 additions & 0 deletions docs/source-fabric/glossary/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ Glossary
:hidden:

Checkpoint <../guide/checkpoint/index>
Weights and Biases <../guide/loggers/wandb>


.. raw:: html
Expand Down Expand Up @@ -204,6 +205,11 @@ Glossary
:button_link: ../guide/trainer_template.html
:col_css: col-md-4

.. displayitem::
:header: Weights and Biases
:button_link: ../guide/loggers/wandb.html
:col_css: col-md-4

.. displayitem::
:header: 16-bit, 8-bit, 4-bit
:button_link: ../fundamentals/precision.html
Expand Down
121 changes: 121 additions & 0 deletions docs/source-fabric/guide/loggers/wandb.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
##################
Weights and Biases
##################

`Weights & Biases (W&B) <https://wandb.ai>`_ is the AI developer platform, with tools for training models, fine-tuning models, and leveraging foundation models.

W&B allows machine learning practitioners to track experiments, visualize data, and share insights with a few lines of.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have a small request here:
Since Lightning AI is also "the AI developer platform with tools for training models etc etc" there is a slight conflict here. Could we maybe keep the focus of the intro on the experiment tracking aspect? The second paragraph is perfect, it's just this sentence here that we would like to adjust.

Maybe just merging it like so would work:

Suggested change
`Weights & Biases (W&B) <https://wandb.ai>`_ is the AI developer platform, with tools for training models, fine-tuning models, and leveraging foundation models.
W&B allows machine learning practitioners to track experiments, visualize data, and share insights with a few lines of.
`Weights & Biases (W&B) <https://wandb.ai>`_ allows machine learning practitioners to track experiments, visualize data, and share insights with a few lines of code.

Otherwise awesome docs!

It integrates seamlessly with your Lightning ML workflows to log metrics, output visualizations, and manage artifacts.
This integration provides a simple way to log metrics and artifacts from your Fabric training loop to W&B via the ``WandbLogger``.
The ``WandbLogger`` also supports all features of the Weights and Biases library, such as logging rich media (image, audio, video), artifacts, hyperparameters, tables, custom visualizations, and more.
`Check the official documentation here <https://docs.wandb.ai>`_.


----


*************************
Set Up Weights and Biases
*************************

First, you need to install the ``wandb`` package:

.. code-block:: bash

pip install wandb

Then log in with your API key found in your W&B account settings:

.. code-block:: bash

wandb login <your-api-key>


You are all set and can start logging your metrics to Weights and Biases.


----


*************
Track metrics
*************

To start tracking metrics in your training loop, import the WandbLogger and configure it with your settings:

.. code-block:: python

from lightning.fabric import Fabric

# 1. Import the WandbLogger
from wandb.integration.lightning.fabric import WandbLogger

# 2. Configure the logger
logger = WandbLogger(project="my-project")

# 3. Pass it to Fabric
fabric = Fabric(loggers=logger)


Next, add :meth:`~lightning.fabric.fabric.Fabric.log` calls in your code.

.. code-block:: python

value = ... # Python scalar or tensor scalar
fabric.log("some_value", value)


To log multiple metrics at once, use :meth:`~lightning.fabric.fabric.Fabric.log_dict`:

.. code-block:: python

values = {"loss": loss, "acc": acc, "other": other}
fabric.log_dict(values)


----


**************************************************
Logging media, artifacts, hyperparameters and more
**************************************************

With ``WandbLogger`` you can also log images, text, tables, checkpoints, hyperparameters and more.
For a description of all features, check out the official Weights and Biases documentation and examples.


.. raw:: html

<div class="display-card-container">
<div class="row">

.. displayitem::
:header: Official WandbLogger Lightning and Fabric Documentation
:description: Learn about all features from Weights and Biases
:button_link: https://docs.wandb.ai/guides/integrations/lightning
:col_css: col-md-4
:height: 150

.. displayitem::
:header: Fabric WandbLogger Example
:description: Official example of how to use the WandbLogger with Fabric
:button_link: https://colab.research.google.com/github/wandb/examples/blob/master/colabs/pytorch-lightning/Track_PyTorch_Lightning_with_Fabric_and_Wandb.ipynb
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could it be rather a release branch?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be fine as a starting point.
I lost contact with @ash0ts so I'm not sure if he's going to see this. But I'll merge it for now and hope the link won't get oudated too quickly.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello! I just returned PTO with no access to proper internet. What do you mean by release branch in this context?

:col_css: col-md-4
:height: 150

.. displayitem::
:header: Lightning WandbLogger Example
:description: Official example of how to use the WandbLogger with Lightning
:button_link: wandb.me/lightning
:col_css: col-md-4
:height: 150


.. raw:: html

</div>
</div>


|
|
3 changes: 2 additions & 1 deletion docs/source-fabric/guide/logging.rst
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,11 @@ To track a metric, add the following:
fabric = Fabric(loggers=logger)


Built-in loggers you can choose from:
Loggers you can choose from:

- :class:`~lightning.fabric.loggers.TensorBoardLogger`
- :class:`~lightning.fabric.loggers.CSVLogger`
- :doc:`WandbLogger <loggers/wandb>`

|

Expand Down