Bases: Optimizer
Base optimizer wrapper.
Compared to a standard PyTorch Optimizer,
this optimizer adds the
backward() that is used instead
of directly calling loss.backward(). This is needed so the various
optimizer wrappers can adjust how the loss is computed.
Otherwise, this optimizer behaves identically to the wrapped optimizer.
Parameters:
-
optimizer
(Optimizer)
–
Standard PyTorch optimizer to wrap.
Source code in llm/engine/base.py
| def __init__(self, optimizer: Optimizer):
self._optimizer = optimizer
|
step
step(*args: Any, **kwargs: Any) -> None
Perform an optimization step.
Source code in llm/engine/base.py
| def step(self, *args: Any, **kwargs: Any) -> None:
"""Perform an optimization step."""
self._optimizer.step(*args, **kwargs)
|
zero_grad
zero_grad(*args: Any, **kwargs: Any) -> None
Zero the gradients of optimized parameters.
Source code in llm/engine/base.py
| def zero_grad(self, *args: Any, **kwargs: Any) -> None:
"""Zero the gradients of optimized parameters."""
self._optimizer.zero_grad(*args, **kwargs)
|
backward
backward(loss: Tensor) -> None
Perform a backward pass using the loss.
Source code in llm/engine/base.py
| def backward(self, loss: torch.Tensor) -> None:
"""Perform a backward pass using the loss."""
loss.backward()
|