PSGD-QUAD
pip install quad-torch
An implementation of PSGD-QUAD for PyTorch.
import torch
from quad_torch import QUAD
model = torch.nn.Linear(10, 10)
optimizer = QUAD(
model.parameters(),
lr=0.001,
lr_style="adam",
momentum=0.95,
weight_decay=0.1,
max_size_dense=8192,
max_skew_dense=1.0,
preconditioner_lr=0.7,
noise_scale=1e-9,
dtype=torch.bfloat16,
)
Couple notes:
lr_style="adam"is the default and scales the update to match adam's behavior LR-wise and weight decay-wise.dtype=torch.bfloat16should be fine for most problems, but if a problem is particularly sensitive then you can tryNoneto default to gradient dtypes ortorch.float32to force f32 precision.
Resources
Xi-Lin Li's repo: https://github.com/lixilinx/psgd_torch
PSGD papers and resources listed from Xi-Lin's repo
- Xi-Lin Li. Preconditioned stochastic gradient descent, arXiv:1512.04202, 2015. (General ideas of PSGD, preconditioner fitting losses and Kronecker product preconditioners.)
- Xi-Lin Li. Preconditioner on matrix Lie group for SGD, arXiv:1809.10232, 2018. (Focus on preconditioners with the affine Lie group.)
- Xi-Lin Li. Black box Lie group preconditioners for SGD, arXiv:2211.04422, 2022. (Mainly about the LRA preconditioner. See these supplementary materials for detailed math derivations.)
- Xi-Lin Li. Stochastic Hessian fittings on Lie groups, arXiv:2402.11858, 2024. (Some theoretical works on the efficiency of PSGD. The Hessian fitting problem is shown to be strongly convex on set ${\rm GL}(n, \mathbb{R})/R_{\rm polar}$.)
- Omead Pooladzandi, Xi-Lin Li. Curvature-informed SGD via general purpose Lie-group preconditioners, arXiv:2402.04553, 2024. (Plenty of benchmark results and analyses for PSGD vs. other optimizers.)
License
This work is licensed under a Creative Commons Attribution 4.0 International License.
2024 Evan Walters, Omead Pooladzandi, Xi-Lin Li
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
quad_torch-0.4.5.tar.gz
(11.4 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file quad_torch-0.4.5.tar.gz.
File metadata
- Download URL: quad_torch-0.4.5.tar.gz
- Upload date:
- Size: 11.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4a7221b33ba9a0bbaf513d171fab5023e73254994a65b66d2606637a29df4256
|
|
| MD5 |
05f30bb5db86d716306cab2393c27b13
|
|
| BLAKE2b-256 |
8d64eb57c01dcbeedcaab4dc11b232f3b22b8d7134b271746b35bcbababda477
|
File details
Details for the file quad_torch-0.4.5-py3-none-any.whl.
File metadata
- Download URL: quad_torch-0.4.5-py3-none-any.whl
- Upload date:
- Size: 12.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2311fd0edfd6e862797185edcd5e9d38c53b34e76b4212ab2c66968c15744c99
|
|
| MD5 |
cf18a81d4397a03f3e5601893e081493
|
|
| BLAKE2b-256 |
068669fabf0c521e6d2c5c9b7d70d4e4150f597af21b197371b6f31cedf09fd5
|