We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
tutorial url for CallbackHparams doesn't exist
The url pointed to in https://github.com/mosaicml/composer/blob/dev/composer/callbacks/callback_hparams.py#L35 doesn't exist: https://docs.mosaicml.com/en/latest/tutorials/adding_models_datasets.html#trainer-with-yahp

(I'd like to add a callback...)

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `composer/callbacks/callback_hparams.py`
Content:
```
1 # Copyright 2021 MosaicML. All Rights Reserved.
2 
3 """Hyperparameters for callbacks."""
4 from __future__ import annotations
5 
6 import abc
7 import textwrap
8 from dataclasses import dataclass
9 from typing import Optional
10 
11 import yahp as hp
12 
13 from composer.callbacks.checkpoint_saver import CheckpointSaver
14 from composer.callbacks.grad_monitor import GradMonitor
15 from composer.callbacks.lr_monitor import LRMonitor
16 from composer.callbacks.memory_monitor import MemoryMonitor
17 from composer.callbacks.speed_monitor import SpeedMonitor
18 from composer.core.callback import Callback
19 from composer.core.time import Time
20 from composer.utils import import_object
21 
22 __all__ = [
23     "CallbackHparams",
24     "GradMonitorHparams",
25     "MemoryMonitorHparams",
26     "LRMonitorHparams",
27     "SpeedMonitorHparams",
28     "CheckpointSaverHparams",
29 ]
30 
31 
32 @dataclass
33 class CallbackHparams(hp.Hparams, abc.ABC):
34     """Base class for callback hyperparameters.
35 
36     Callback parameters that are added to the callbacks argument of
37     :attr:`~composer.trainer.trainer_hparams.TrainerHparams` (e.g., via YAML or the CLI). See `Trainer with YAHP <https://docs.mosaicml.com/en/latest/tutorials/adding_models_datasets.html#trainer-with-yahp>`_ for more details.
38     These are initialized in the training loop.
39     """
40 
41     @abc.abstractmethod
42     def initialize_object(self) -> Callback:
43         """Initialize the callback.
44 
45         Returns:
46             Callback: An instance of the callback.
47         """
48         pass
49 
50 
51 @dataclass
52 class GradMonitorHparams(CallbackHparams):
53     """:class:`~.GradMonitor` hyperparamters.
54 
55     Args:
56         log_layer_grad_norms (bool, optional): 
57             See :class:`~.GradMonitor` for documentation.
58     """
59 
60     log_layer_grad_norms: bool = hp.optional(
61         doc="Whether to log gradient norms for individual layers.",
62         default=False,
63     )
64 
65     def initialize_object(self) -> GradMonitor:
66         """Initialize the GradMonitor callback.
67 
68         Returns:
69             GradMonitor: An instance of :class:`~.GradMonitor`.
70         """
71         return GradMonitor(log_layer_grad_norms=self.log_layer_grad_norms)
72 
73 
74 @dataclass
75 class MemoryMonitorHparams(CallbackHparams):
76     """:class:`~.MemoryMonitor` hyperparameters.
77 
78     There are no parameters as :class:`~.MemoryMonitor` does not take any parameters.
79     """
80 
81     def initialize_object(self) -> MemoryMonitor:
82         """Initialize the MemoryMonitor callback.
83 
84         Returns:
85             MemoryMonitor: An instance of :class:`~.MemoryMonitor`.
86         """
87         return MemoryMonitor()
88 
89 
90 @dataclass
91 class LRMonitorHparams(CallbackHparams):
92     """:class:`~.LRMonitor` hyperparameters.
93 
94     There are no parameters as :class:`~.LRMonitor` does not take any parameters.
95     """
96 
97     def initialize_object(self) -> LRMonitor:
98         """Initialize the LRMonitor callback.
99 
100         Returns:
101             LRMonitor: An instance of :class:`~.LRMonitor`.
102         """
103         return LRMonitor()
104 
105 
106 @dataclass
107 class SpeedMonitorHparams(CallbackHparams):
108     """:class:`~.SpeedMonitor` hyperparameters.
109 
110     Args:
111         window_size (int, optional): See :class:`~.SpeedMonitor` for documentation.
112     """
113     window_size: int = hp.optional(
114         doc="Number of batchs to use for a rolling average of throughput.",
115         default=100,
116     )
117 
118     def initialize_object(self) -> SpeedMonitor:
119         """Initialize the SpeedMonitor callback.
120 
121         Returns:
122             SpeedMonitor: An instance of :class:`~.SpeedMonitor`.
123         """
124         return SpeedMonitor(window_size=self.window_size)
125 
126 
127 @dataclass
128 class CheckpointSaverHparams(CallbackHparams):
129     """:class:`~.CheckpointSaver` hyperparameters.
130     
131     Args:
132         save_folder (str, optional): See :class:`~.CheckpointSaver`.
133         filename (str, optional): See :class:`~.CheckpointSaver`.
134         artifact_name (str, optional): See :class:`~.CheckpointSaver`.
135         latest_filename (str, optional): See :class:`~.CheckpointSaver`.
136         overwrite (str, optional): See :class:`~.CheckpointSaver`.
137         weights_only (bool, optional): See :class:`~.CheckpointSaver`.
138         num_checkpoints_to_keep (int, optional): See :class:`~.CheckpointSaver`.
139 
140         save_interval (str, optional): Either a :doc:`time-string </trainer/time>` or a path to a function.
141 
142             If a :doc:`time-string </trainer/time>`, checkpoints will be saved according to this interval.
143 
144             If a path to a function, it should be of the format ``'path.to.function:function_name'``. The function
145             should take (:class:`~.State`, :class:`~.Event`) and return a
146             boolean indicating whether a checkpoint should be saved given the current state and event. The event will
147             be either :attr:`~composer.core.event.Event.BATCH_CHECKPOINT` or
148             :attr:`~composer.core.event.Event.EPOCH_CHECKPOINT`.
149     """
150     save_folder: str = hp.optional(doc="Folder where checkpoints will be saved.", default="{run_name}/checkpoints")
151     filename: str = hp.optional("Checkpoint name format string.", default="ep{epoch}-ba{batch}-rank{rank}")
152     artifact_name: str = hp.optional("Checkpoint artifact name format string.",
153                                      default="{run_name}/checkpoints/ep{epoch}-ba{batch}-rank{rank}")
154     latest_filename: Optional[str] = hp.optional("Latest checkpoint symlink format string.",
155                                                  default="latest-rank{rank}")
156     overwrite: bool = hp.optional("Whether to override existing checkpoints.", default=False)
157     weights_only: bool = hp.optional("Whether to save only checkpoint weights", default=False)
158     save_interval: str = hp.optional(textwrap.dedent("""\
159         Checkpoint interval or path to a `(State, Event) -> bool` function
160         returning whether a checkpoint should be saved."""),
161                                      default="1ep")
162     num_checkpoints_to_keep: int = hp.optional(
163         "Number of checkpoints to persist locally. Set to -1 to never delete checkpoints.",
164         default=-1,
165     )
166 
167     def initialize_object(self) -> CheckpointSaver:
168         try:
169             save_interval = Time.from_timestring(self.save_interval)
170         except ValueError:
171             # assume it is a function path
172             save_interval = import_object(self.save_interval)
173         return CheckpointSaver(
174             folder=self.save_folder,
175             filename=self.filename,
176             artifact_name=self.artifact_name,
177             latest_filename=self.latest_filename,
178             overwrite=self.overwrite,
179             save_interval=save_interval,
180             weights_only=self.weights_only,
181             num_checkpoints_to_keep=self.num_checkpoints_to_keep,
182         )
183
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/composer/callbacks/callback_hparams.py b/composer/callbacks/callback_hparams.py
--- a/composer/callbacks/callback_hparams.py
+++ b/composer/callbacks/callback_hparams.py
@@ -31,12 +31,7 @@
 
 @dataclass
 class CallbackHparams(hp.Hparams, abc.ABC):
-    """Base class for callback hyperparameters.
-
-    Callback parameters that are added to the callbacks argument of
-    :attr:`~composer.trainer.trainer_hparams.TrainerHparams` (e.g., via YAML or the CLI). See `Trainer with YAHP <https://docs.mosaicml.com/en/latest/tutorials/adding_models_datasets.html#trainer-with-yahp>`_ for more details.
-    These are initialized in the training loop.
-    """
+    """Base class for Callback hyperparameters."""
 
     @abc.abstractmethod
     def initialize_object(self) -> Callback:

{"golden_diff": "diff --git a/composer/callbacks/callback_hparams.py b/composer/callbacks/callback_hparams.py\n--- a/composer/callbacks/callback_hparams.py\n+++ b/composer/callbacks/callback_hparams.py\n@@ -31,12 +31,7 @@\n \n @dataclass\n class CallbackHparams(hp.Hparams, abc.ABC):\n-    \"\"\"Base class for callback hyperparameters.\n-\n-    Callback parameters that are added to the callbacks argument of\n-    :attr:`~composer.trainer.trainer_hparams.TrainerHparams` (e.g., via YAML or the CLI). See `Trainer with YAHP <https://docs.mosaicml.com/en/latest/tutorials/adding_models_datasets.html#trainer-with-yahp>`_ for more details.\n-    These are initialized in the training loop.\n-    \"\"\"\n+    \"\"\"Base class for Callback hyperparameters.\"\"\"\n \n     @abc.abstractmethod\n     def initialize_object(self) -> Callback:\n", "issue": "tutorial url for CallbackHparams doesn't exist\nThe url pointed to in https://github.com/mosaicml/composer/blob/dev/composer/callbacks/callback_hparams.py#L35 doesn't exist: https://docs.mosaicml.com/en/latest/tutorials/adding_models_datasets.html#trainer-with-yahp\r\n\r\n(I'd like to add a callback...)\n", "before_files": [{"content": "# Copyright 2021 MosaicML. All Rights Reserved.\n\n\"\"\"Hyperparameters for callbacks.\"\"\"\nfrom __future__ import annotations\n\nimport abc\nimport textwrap\nfrom dataclasses import dataclass\nfrom typing import Optional\n\nimport yahp as hp\n\nfrom composer.callbacks.checkpoint_saver import CheckpointSaver\nfrom composer.callbacks.grad_monitor import GradMonitor\nfrom composer.callbacks.lr_monitor import LRMonitor\nfrom composer.callbacks.memory_monitor import MemoryMonitor\nfrom composer.callbacks.speed_monitor import SpeedMonitor\nfrom composer.core.callback import Callback\nfrom composer.core.time import Time\nfrom composer.utils import import_object\n\n__all__ = [\n    \"CallbackHparams\",\n    \"GradMonitorHparams\",\n    \"MemoryMonitorHparams\",\n    \"LRMonitorHparams\",\n    \"SpeedMonitorHparams\",\n    \"CheckpointSaverHparams\",\n]\n\n\n@dataclass\nclass CallbackHparams(hp.Hparams, abc.ABC):\n    \"\"\"Base class for callback hyperparameters.\n\n    Callback parameters that are added to the callbacks argument of\n    :attr:`~composer.trainer.trainer_hparams.TrainerHparams` (e.g., via YAML or the CLI). See `Trainer with YAHP <https://docs.mosaicml.com/en/latest/tutorials/adding_models_datasets.html#trainer-with-yahp>`_ for more details.\n    These are initialized in the training loop.\n    \"\"\"\n\n    @abc.abstractmethod\n    def initialize_object(self) -> Callback:\n        \"\"\"Initialize the callback.\n\n        Returns:\n            Callback: An instance of the callback.\n        \"\"\"\n        pass\n\n\n@dataclass\nclass GradMonitorHparams(CallbackHparams):\n    \"\"\":class:`~.GradMonitor` hyperparamters.\n\n    Args:\n        log_layer_grad_norms (bool, optional): \n            See :class:`~.GradMonitor` for documentation.\n    \"\"\"\n\n    log_layer_grad_norms: bool = hp.optional(\n        doc=\"Whether to log gradient norms for individual layers.\",\n        default=False,\n    )\n\n    def initialize_object(self) -> GradMonitor:\n        \"\"\"Initialize the GradMonitor callback.\n\n        Returns:\n            GradMonitor: An instance of :class:`~.GradMonitor`.\n        \"\"\"\n        return GradMonitor(log_layer_grad_norms=self.log_layer_grad_norms)\n\n\n@dataclass\nclass MemoryMonitorHparams(CallbackHparams):\n    \"\"\":class:`~.MemoryMonitor` hyperparameters.\n\n    There are no parameters as :class:`~.MemoryMonitor` does not take any parameters.\n    \"\"\"\n\n    def initialize_object(self) -> MemoryMonitor:\n        \"\"\"Initialize the MemoryMonitor callback.\n\n        Returns:\n            MemoryMonitor: An instance of :class:`~.MemoryMonitor`.\n        \"\"\"\n        return MemoryMonitor()\n\n\n@dataclass\nclass LRMonitorHparams(CallbackHparams):\n    \"\"\":class:`~.LRMonitor` hyperparameters.\n\n    There are no parameters as :class:`~.LRMonitor` does not take any parameters.\n    \"\"\"\n\n    def initialize_object(self) -> LRMonitor:\n        \"\"\"Initialize the LRMonitor callback.\n\n        Returns:\n            LRMonitor: An instance of :class:`~.LRMonitor`.\n        \"\"\"\n        return LRMonitor()\n\n\n@dataclass\nclass SpeedMonitorHparams(CallbackHparams):\n    \"\"\":class:`~.SpeedMonitor` hyperparameters.\n\n    Args:\n        window_size (int, optional): See :class:`~.SpeedMonitor` for documentation.\n    \"\"\"\n    window_size: int = hp.optional(\n        doc=\"Number of batchs to use for a rolling average of throughput.\",\n        default=100,\n    )\n\n    def initialize_object(self) -> SpeedMonitor:\n        \"\"\"Initialize the SpeedMonitor callback.\n\n        Returns:\n            SpeedMonitor: An instance of :class:`~.SpeedMonitor`.\n        \"\"\"\n        return SpeedMonitor(window_size=self.window_size)\n\n\n@dataclass\nclass CheckpointSaverHparams(CallbackHparams):\n    \"\"\":class:`~.CheckpointSaver` hyperparameters.\n    \n    Args:\n        save_folder (str, optional): See :class:`~.CheckpointSaver`.\n        filename (str, optional): See :class:`~.CheckpointSaver`.\n        artifact_name (str, optional): See :class:`~.CheckpointSaver`.\n        latest_filename (str, optional): See :class:`~.CheckpointSaver`.\n        overwrite (str, optional): See :class:`~.CheckpointSaver`.\n        weights_only (bool, optional): See :class:`~.CheckpointSaver`.\n        num_checkpoints_to_keep (int, optional): See :class:`~.CheckpointSaver`.\n\n        save_interval (str, optional): Either a :doc:`time-string </trainer/time>` or a path to a function.\n\n            If a :doc:`time-string </trainer/time>`, checkpoints will be saved according to this interval.\n\n            If a path to a function, it should be of the format ``'path.to.function:function_name'``. The function\n            should take (:class:`~.State`, :class:`~.Event`) and return a\n            boolean indicating whether a checkpoint should be saved given the current state and event. The event will\n            be either :attr:`~composer.core.event.Event.BATCH_CHECKPOINT` or\n            :attr:`~composer.core.event.Event.EPOCH_CHECKPOINT`.\n    \"\"\"\n    save_folder: str = hp.optional(doc=\"Folder where checkpoints will be saved.\", default=\"{run_name}/checkpoints\")\n    filename: str = hp.optional(\"Checkpoint name format string.\", default=\"ep{epoch}-ba{batch}-rank{rank}\")\n    artifact_name: str = hp.optional(\"Checkpoint artifact name format string.\",\n                                     default=\"{run_name}/checkpoints/ep{epoch}-ba{batch}-rank{rank}\")\n    latest_filename: Optional[str] = hp.optional(\"Latest checkpoint symlink format string.\",\n                                                 default=\"latest-rank{rank}\")\n    overwrite: bool = hp.optional(\"Whether to override existing checkpoints.\", default=False)\n    weights_only: bool = hp.optional(\"Whether to save only checkpoint weights\", default=False)\n    save_interval: str = hp.optional(textwrap.dedent(\"\"\"\\\n        Checkpoint interval or path to a `(State, Event) -> bool` function\n        returning whether a checkpoint should be saved.\"\"\"),\n                                     default=\"1ep\")\n    num_checkpoints_to_keep: int = hp.optional(\n        \"Number of checkpoints to persist locally. Set to -1 to never delete checkpoints.\",\n        default=-1,\n    )\n\n    def initialize_object(self) -> CheckpointSaver:\n        try:\n            save_interval = Time.from_timestring(self.save_interval)\n        except ValueError:\n            # assume it is a function path\n            save_interval = import_object(self.save_interval)\n        return CheckpointSaver(\n            folder=self.save_folder,\n            filename=self.filename,\n            artifact_name=self.artifact_name,\n            latest_filename=self.latest_filename,\n            overwrite=self.overwrite,\n            save_interval=save_interval,\n            weights_only=self.weights_only,\n            num_checkpoints_to_keep=self.num_checkpoints_to_keep,\n        )\n", "path": "composer/callbacks/callback_hparams.py"}], "after_files": [{"content": "# Copyright 2021 MosaicML. All Rights Reserved.\n\n\"\"\"Hyperparameters for callbacks.\"\"\"\nfrom __future__ import annotations\n\nimport abc\nimport textwrap\nfrom dataclasses import dataclass\nfrom typing import Optional\n\nimport yahp as hp\n\nfrom composer.callbacks.checkpoint_saver import CheckpointSaver\nfrom composer.callbacks.grad_monitor import GradMonitor\nfrom composer.callbacks.lr_monitor import LRMonitor\nfrom composer.callbacks.memory_monitor import MemoryMonitor\nfrom composer.callbacks.speed_monitor import SpeedMonitor\nfrom composer.core.callback import Callback\nfrom composer.core.time import Time\nfrom composer.utils import import_object\n\n__all__ = [\n    \"CallbackHparams\",\n    \"GradMonitorHparams\",\n    \"MemoryMonitorHparams\",\n    \"LRMonitorHparams\",\n    \"SpeedMonitorHparams\",\n    \"CheckpointSaverHparams\",\n]\n\n\n@dataclass\nclass CallbackHparams(hp.Hparams, abc.ABC):\n    \"\"\"Base class for Callback hyperparameters.\"\"\"\n\n    @abc.abstractmethod\n    def initialize_object(self) -> Callback:\n        \"\"\"Initialize the callback.\n\n        Returns:\n            Callback: An instance of the callback.\n        \"\"\"\n        pass\n\n\n@dataclass\nclass GradMonitorHparams(CallbackHparams):\n    \"\"\":class:`~.GradMonitor` hyperparamters.\n\n    Args:\n        log_layer_grad_norms (bool, optional): \n            See :class:`~.GradMonitor` for documentation.\n    \"\"\"\n\n    log_layer_grad_norms: bool = hp.optional(\n        doc=\"Whether to log gradient norms for individual layers.\",\n        default=False,\n    )\n\n    def initialize_object(self) -> GradMonitor:\n        \"\"\"Initialize the GradMonitor callback.\n\n        Returns:\n            GradMonitor: An instance of :class:`~.GradMonitor`.\n        \"\"\"\n        return GradMonitor(log_layer_grad_norms=self.log_layer_grad_norms)\n\n\n@dataclass\nclass MemoryMonitorHparams(CallbackHparams):\n    \"\"\":class:`~.MemoryMonitor` hyperparameters.\n\n    There are no parameters as :class:`~.MemoryMonitor` does not take any parameters.\n    \"\"\"\n\n    def initialize_object(self) -> MemoryMonitor:\n        \"\"\"Initialize the MemoryMonitor callback.\n\n        Returns:\n            MemoryMonitor: An instance of :class:`~.MemoryMonitor`.\n        \"\"\"\n        return MemoryMonitor()\n\n\n@dataclass\nclass LRMonitorHparams(CallbackHparams):\n    \"\"\":class:`~.LRMonitor` hyperparameters.\n\n    There are no parameters as :class:`~.LRMonitor` does not take any parameters.\n    \"\"\"\n\n    def initialize_object(self) -> LRMonitor:\n        \"\"\"Initialize the LRMonitor callback.\n\n        Returns:\n            LRMonitor: An instance of :class:`~.LRMonitor`.\n        \"\"\"\n        return LRMonitor()\n\n\n@dataclass\nclass SpeedMonitorHparams(CallbackHparams):\n    \"\"\":class:`~.SpeedMonitor` hyperparameters.\n\n    Args:\n        window_size (int, optional): See :class:`~.SpeedMonitor` for documentation.\n    \"\"\"\n    window_size: int = hp.optional(\n        doc=\"Number of batchs to use for a rolling average of throughput.\",\n        default=100,\n    )\n\n    def initialize_object(self) -> SpeedMonitor:\n        \"\"\"Initialize the SpeedMonitor callback.\n\n        Returns:\n            SpeedMonitor: An instance of :class:`~.SpeedMonitor`.\n        \"\"\"\n        return SpeedMonitor(window_size=self.window_size)\n\n\n@dataclass\nclass CheckpointSaverHparams(CallbackHparams):\n    \"\"\":class:`~.CheckpointSaver` hyperparameters.\n    \n    Args:\n        save_folder (str, optional): See :class:`~.CheckpointSaver`.\n        filename (str, optional): See :class:`~.CheckpointSaver`.\n        artifact_name (str, optional): See :class:`~.CheckpointSaver`.\n        latest_filename (str, optional): See :class:`~.CheckpointSaver`.\n        overwrite (str, optional): See :class:`~.CheckpointSaver`.\n        weights_only (bool, optional): See :class:`~.CheckpointSaver`.\n        num_checkpoints_to_keep (int, optional): See :class:`~.CheckpointSaver`.\n\n        save_interval (str, optional): Either a :doc:`time-string </trainer/time>` or a path to a function.\n\n            If a :doc:`time-string </trainer/time>`, checkpoints will be saved according to this interval.\n\n            If a path to a function, it should be of the format ``'path.to.function:function_name'``. The function\n            should take (:class:`~.State`, :class:`~.Event`) and return a\n            boolean indicating whether a checkpoint should be saved given the current state and event. The event will\n            be either :attr:`~composer.core.event.Event.BATCH_CHECKPOINT` or\n            :attr:`~composer.core.event.Event.EPOCH_CHECKPOINT`.\n    \"\"\"\n    save_folder: str = hp.optional(doc=\"Folder where checkpoints will be saved.\", default=\"{run_name}/checkpoints\")\n    filename: str = hp.optional(\"Checkpoint name format string.\", default=\"ep{epoch}-ba{batch}-rank{rank}\")\n    artifact_name: str = hp.optional(\"Checkpoint artifact name format string.\",\n                                     default=\"{run_name}/checkpoints/ep{epoch}-ba{batch}-rank{rank}\")\n    latest_filename: Optional[str] = hp.optional(\"Latest checkpoint symlink format string.\",\n                                                 default=\"latest-rank{rank}\")\n    overwrite: bool = hp.optional(\"Whether to override existing checkpoints.\", default=False)\n    weights_only: bool = hp.optional(\"Whether to save only checkpoint weights\", default=False)\n    save_interval: str = hp.optional(textwrap.dedent(\"\"\"\\\n        Checkpoint interval or path to a `(State, Event) -> bool` function\n        returning whether a checkpoint should be saved.\"\"\"),\n                                     default=\"1ep\")\n    num_checkpoints_to_keep: int = hp.optional(\n        \"Number of checkpoints to persist locally. Set to -1 to never delete checkpoints.\",\n        default=-1,\n    )\n\n    def initialize_object(self) -> CheckpointSaver:\n        try:\n            save_interval = Time.from_timestring(self.save_interval)\n        except ValueError:\n            # assume it is a function path\n            save_interval = import_object(self.save_interval)\n        return CheckpointSaver(\n            folder=self.save_folder,\n            filename=self.filename,\n            artifact_name=self.artifact_name,\n            latest_filename=self.latest_filename,\n            overwrite=self.overwrite,\n            save_interval=save_interval,\n            weights_only=self.weights_only,\n            num_checkpoints_to_keep=self.num_checkpoints_to_keep,\n        )\n", "path": "composer/callbacks/callback_hparams.py"}]}