Skip to main content

LibAUC: A Deep Learning Library for X-Risk Optimization

Project description


LibAUC: A Deep Learning Library for X-Risk Optimization

Pypi Downloads python PyTorch LICENSE

| Documentation | Installation | Website | Tutorial | Research | Github |

News

  • [5/29/2026]:🚨 New Version is Available: LibAUC 2.0 Released: We are excited to announce the release of LibAUC 2.0, featuring the new LibAUC Trainer, distributed training support for all optimizers, integration with Hugging Face models, new optimizers for extreme classification and two-way partial AUC optimization, expanded tutorials, and improved support for resume training. For full details, please see the latest release notes.

  • [8/14/2024]: New Version is Available: We are releasing LibAUC 1.4.0. We offer new optimizers/losses/models and have improved some existing optimizers. For more details, please check the latest release note.

  • [04/07/2024]: Bugs fixed: We fixed a bug in datasets/folder.py by returning a return_index to support SogCLR/iSogCLR for contrastive learning. Fixed incorrect communication with all_gather in GCLoss_v1 and set gamma to original value when u is not 0. None of these were in our experimental code of the paper.

  • [02/11/2024]: A Bug fixed: We fixed a bug in the calculation of AUCM loss and MultiLabelAUCM loss (the margin parameter is missed in the original calculation which might cause the loss to be negative). However, it does not affect the learning as the updates are not affected by this. Both the source code and pip install are updated.

  • [06/10/2023]: LibAUC 1.3.0 is now available! In this update, we have made improvements and introduced new features. We also release a new documentation website at https://docs.libauc.org/. Please see the release notes for details.

Why LibAUC?

LibAUC offers an easier way to directly optimize commonly-used performance measures and losses with user-friendly API. LibAUC has broad applications in AI for tackling many challenges, such as Classification of Imbalanced Data (CID), Learning to Rank (LTR), and Contrastive Learning of Representation (CLR). LibAUC provides a unified framework to abstract the optimization of many compositional loss functions, including surrogate losses for AUROC, AUPRC/AP, and partial AUROC that are suitable for CID, surrogate losses for NDCG, top-K NDCG, and listwise losses that are used in LTR, and global contrastive losses for CLR. Here’s an overview:

Installation

Installing from pip

$ pip install -U libauc

Installing from source

$ git clone https://github.com/Optimization-AI/LibAUC.git
$ cd LibAUC
$ pip install .

Usage

Example training pipline for optimizing X-risk (e.g., AUROC)

>>> #import our loss and optimizer
>>> from libauc.losses import AUCMLoss 
>>> from libauc.optimizers import PESG 
>>> #pretraining your model through supervised learning or self-supervised learning
>>> #load a pretrained encoder and random initialize the last linear layer 
>>> #define loss & optimizer
>>> Loss = AUCMLoss()
>>> optimizer = PESG()
... 
>>> #training
>>> model.train()    
>>> for data, targets in trainloader:
>>>	data, targets  = data.cuda(), targets.cuda()
        logits = model(data)
	preds = torch.sigmoid(logits)
        loss = Loss(preds, targets) 
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()
...	
>>> #update internal parameters
>>> optimizer.update_regularizer()

Tutorials

X-Risk Minimization

Other Applications

Citation

If you find LibAUC useful in your work, please cite the following papers:

@inproceedings{yuan2023libauc,
	title={LibAUC: A Deep Learning Library for X-Risk Optimization},
	author={Zhuoning Yuan and Dixian Zhu and Zi-Hao Qiu and Gang Li and Xuanhui Wang and Tianbao Yang},
	booktitle={29th SIGKDD Conference on Knowledge Discovery and Data Mining},
	year={2023}
	}
@article{yang2022algorithmic,
   title={Algorithmic Foundations of Empirical X-Risk Minimization},
   author={Yang, Tianbao},
   journal={arXiv preprint arXiv:2206.00439},
   year={2022}
}

Contact

For any technical questions, please open a new issue in the Github. If you have any other questions, please contact us via tianbao-yang@tamu.edu.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

libauc-2.0.0.tar.gz (128.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

libauc-2.0.0-py3-none-any.whl (176.8 kB view details)

Uploaded Python 3

File details

Details for the file libauc-2.0.0.tar.gz.

File metadata

  • Download URL: libauc-2.0.0.tar.gz
  • Upload date:
  • Size: 128.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for libauc-2.0.0.tar.gz
Algorithm Hash digest
SHA256 e266a65db9d99fbe8f8a2170925705c449e2532df65af0cd217af8f7dcc0175e
MD5 41a152ea2ab1cec47d029bfa47b67dba
BLAKE2b-256 376fcb8d624c63e2935acda851e5d9a04e826e7ca51076ef0cce57a396d07cd5

See more details on using hashes here.

File details

Details for the file libauc-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: libauc-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 176.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for libauc-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dfebc3c1f7692ea6a9271e6c9e9b266beaa810173aced6ccedf814c28f6a770a
MD5 b3ee7328d8c05c2712458c07cab13cbb
BLAKE2b-256 cf64515e808c8617ef115d5f344279402caa6cc179e04bac11033ebe7f951b06

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page