{"id":13577553,"url":"https://github.com/sail-sg/Adan","last_synced_at":"2025-04-05T12:30:40.668Z","repository":{"id":58489863,"uuid":"531471133","full_name":"sail-sg/Adan","owner":"sail-sg","description":"Adan: Adaptive Nesterov Momentum Algorithm for Faster Optimizing Deep Models","archived":false,"fork":false,"pushed_at":"2024-07-02T18:26:36.000Z","size":1365,"stargazers_count":757,"open_issues_count":3,"forks_count":64,"subscribers_count":7,"default_branch":"main","last_synced_at":"2024-11-05T14:46:07.839Z","etag":null,"topics":["adan","artificial-intelligence","bert-model","convnext","cuda-programming","deep-learning","diffusion","dreamfusion","fairseq","gpt2","llm-training","llms","mae","moe","optimizer","pytorch","resnet","timm","transformer-xl","vit"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sail-sg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-09-01T10:34:27.000Z","updated_at":"2024-11-04T06:53:24.000Z","dependencies_parsed_at":"2024-11-05T14:41:53.704Z","dependency_job_id":"af3791f3-ed1a-450a-9e2c-f4b8fe2fb01e","html_url":"https://github.com/sail-sg/Adan","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sail-sg%2FAdan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sail-sg%2FAdan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sail-sg%2FAdan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sail-sg%2FAdan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sail-sg","download_url":"https://codeload.github.com/sail-sg/Adan/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247338514,"owners_count":20922985,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adan","artificial-intelligence","bert-model","convnext","cuda-programming","deep-learning","diffusion","dreamfusion","fairseq","gpt2","llm-training","llms","mae","moe","optimizer","pytorch","resnet","timm","transformer-xl","vit"],"created_at":"2024-08-01T15:01:22.435Z","updated_at":"2025-04-05T12:30:35.659Z","avatar_url":"https://github.com/sail-sg.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# Adan: Adaptive Nesterov Momentum Algorithm for Faster Optimizing Deep Models\n\nThis is an official PyTorch implementation of **Adan**. See the paper [here](https://arxiv.org/abs/2208.06677). If you find our adan helpful or heuristic to your projects, please cite this paper and also star this repository. Thanks!\n\n```tex\n@article{xie2024adan,\n  title={Adan: Adaptive Nesterov Momentum Algorithm for Faster Optimizing Deep Models},\n  author={Xie, Xingyu and Zhou, Pan and Li, Huan and Lin, Zhouchen and Yan, Shuicheng},\n  journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},\n  year={2024},\n  publisher={IEEE}\n}\n```\n\n## Supported Projects\n- Adan is supported in the framework [NeMo](https://github.com/NVIDIA/NeMo/blob/main/nemo/core/optim/adan.py) from [NVIDIA](https://github.com/NVIDIA/NeMo).\n- Adan is the default optimizer for the High-Fidelity Text-to-3D Generation Project. See more details [Consistent3D](https://github.com/sail-sg/Consistent3D).\n- Adan is the default optimizer for Masked Diffusion Transformer V2. See more details [MDT V2](https://github.com/sail-sg/MDT).\n- Adan is supported in the Project [D-Adaptation](https://github.com/facebookresearch/dadaptation) from [Meta AI](https://github.com/facebookresearch).\n- Adan will be supported in the Project [Paddle](https://github.com/PaddlePaddle/Paddle/pull/55048#commits-pushed-563d32c) from [Baidu(百度飞浆)](https://github.com/PaddlePaddle/Paddle).\n- Adan is supported in [Timm](https://github.com/rwightman/pytorch-image-models) from [Huggingface](https://github.com/huggingface)\n- Adan is the default optimizer in the text-to-3D [DreamFusion Project](https://github.com/ashawkey/stable-dreamfusion). See more results [here](./dreamfusion/).\n- Adan is supported in the [MMClassification](https://github.com/open-mmlab/mmclassification/tree/dev-1.x) of the [OpenMMLab](https://openmmlab.com/) project. The log and example of using Adan to train ViT-B is [here](https://github.com/open-mmlab/mmclassification/pull/1180).\n- TF's implementation (third party) refers to [DenisVorotyntsev/Adan](https://github.com/DenisVorotyntsev/Adan).\n- JAX's version (third party) is implemented and also supported in [Deepmind/optax](https://github.com/deepmind/optax).\n\n  \n## News\n- :fire::fire::fire: Results on large language models, like **MoE and GPT2**, are released.\n- FusedAdan with less memory footprint is released.\n\n\n______________________________________________________________________\n\n## Installation\n\n```\npython3 -m pip install git+https://github.com/sail-sg/Adan.git\n```\nFusedAdan is installed by default. If you want to use the original Adan, please install it by:\n```\ngit clone https://github.com/sail-sg/Adan.git\ncd Adan\npython3 setup.py install --unfused\n```\n\n## Usage\n\nFor your convenience to use Adan, we briefly provide some intuitive instructions below, then provide some general experimental tips, and finally provide more details (e.g., specific commands and hyper-parameters) for each experiment in the paper.\n\n#### 1) Two steps to use Adan\n\n**Step 1.** Add Adan-dependent hyper-parameters by adding the following hyper-parameters to the config:\n\n```python\nparser.add_argument('--max-grad-norm', type=float, default=0.0, help='if the l2 norm is large than this hyper-parameter, then we clip the gradient  (default: 0.0, no gradient clip)')\nparser.add_argument('--weight-decay', type=float, default=0.02,  help='weight decay, similar one used in AdamW (default: 0.02)')\nparser.add_argument('--opt-eps', default=None, type=float, metavar='EPSILON', help='optimizer epsilon to avoid the bad case where second-order moment is zero (default: None, use opt default 1e-8 in adan)')\nparser.add_argument('--opt-betas', default=None, type=float, nargs='+', metavar='BETA', help='optimizer betas in Adan (default: None, use opt default [0.98, 0.92, 0.99] in Adan)')\nparser.add_argument('--no-prox', action='store_true', default=False, help='whether perform weight decay like AdamW (default=False)')\n```\n\n`opt-betas`: To keep consistent with our usage habits, the $\\beta$'s in the paper are actually the $(1-\\beta)$'s in the code.\n\n`foreach (bool)`: If `True`, Adan will use the `torch._foreach` implementation. It is faster but uses slightly more memory.\n\n`no-prox`: It determines the update rule of parameters with weight decay. By default, Adan updates the parameters in the way presented in Algorithm 1 in the paper:\n\n$$\\boldsymbol{\\theta}\\_{k+1} = ( 1+\\lambda \\eta)^{-1} \\left[\\boldsymbol{\\theta}\\_k - \\boldsymbol{\\eta}\\_k \\circ (\\mathbf{m}\\_k+(1-{\\color{blue}\\beta_2})\\mathbf{v}_k)\\right]$$\n\nBut one can also update the parameter like Adamw:\n\n$$\\boldsymbol{\\theta}\\_{k+1} = ( 1-\\lambda \\eta)\\boldsymbol{\\theta}\\_k - \\boldsymbol{\\eta}\\_k \\circ (\\mathbf{m}\\_k+(1-{\\color{blue}\\beta_2})\\mathbf{v}\\_k).$$\n\n**Step 2.** Create the Adan optimizer as follows. In this step, we can directly replace the vanilla optimizer by using the following command:\n\n```python\nfrom adan import Adan\noptimizer = Adan(param, lr=args.lr, weight_decay=args.weight_decay, betas=args.opt_betas, eps = args.opt_eps, max_grad_norm=args.max_grad_norm, no_prox=args.no_prox)\n```\n\n#### 2) Tips for Experiments\n\n- To make Adan simple, in all experiments except Table 12 in the paper, we do not use the restart strategy in Adan. But Table 12 shows that the restart strategy can further slightly improve the performance of Adan.\n- Adan often allows one to use a large peak learning rate which often fails other optimizers, e.g., Adam and AdamW. For example, in all experiments except for the MAE pre-training and LSTM, the learning rate used by Adan is **5-10 times** larger than that in Adam/AdamW.\n- Adan is relatively robust to `beta1`, `beta2,` and `beta3`, especially for `beta2`. If you want better performance, you can first tune `beta3` and then `beta1`.\n- Adan has a slightly higher GPU memory cost than Adam/AdamW on a single node. However, this problem can be solved using the [ZeroRedundancyOptimizer](https://pytorch.org/tutorials/recipes/zero_redundancy_optimizer.html), which shares optimizer states across distributed data-parallel processes to reduce per-process memory footprint. Specifically, when using the `ZeroRedundancyOptimizer` on more than two GPUs, **Adan and Adam consume almost the same amount of memory.**\n\n#### 3) More extra detailed steps\u0026results\n\nPlease refer to the following links for detailed steps. In these detailed steps, we even include the **docker images** for reproducibility.\n\n- [Instruction](./CV/timm/) for **\u003cu\u003eViTs\u003c/u\u003e**, **\u003cu\u003eResNets\u003c/u\u003e**, and **\u003cu\u003eConvNext\u003c/u\u003e**.\n- [Instruction](./CV/MAE/) for **\u003cu\u003eMAE\u003c/u\u003e**.\n- [Instruction](./NLP/BERT/) for **\u003cu\u003eBERT\u003c/u\u003e**.\n- [Instruction](./NLP/Transformer-XL/) for **\u003cu\u003eTransformer-XL\u003c/u\u003e**.\n- [Instruction](./gpt2/) for **\u003cu\u003eGPT2\u003c/u\u003e**\n- [Resutls](./dreamfusion/) for **\u003cu\u003e text-to-3D DreamFusion\u003c/u\u003e**.\n\n## Results for Various Tasks\n\n### Results on Large Language Models\n\n#### Mixture of Experts (MoE)\nTo investigate the efficacy of the Adan optimizer for LLMs, we conducted pre-training experiments using [MoE models](https://arxiv.org/pdf/2406.06563). The experiments utilized the [RedPajama-v2 dataset](https://github.com/togethercomputer/RedPajama-Data) with three configurations, each consisting of 8 experts: **8x0.1B** (totaling 0.5B trainable parameters), **8x0.3B** (2B trainable parameters), and **8x0.6B** (4B trainable parameters). These models were trained with sampled data comprising **10B, 30B, 100B, and 300B tokens**, respectively.\n\n| Model Size |   8x0.1B  |   8x0.1B  |   8x0.1B  |   8x0.3B  |   8x0.3B  |   8x0.3B  |   8x0.6B  |\n|:----------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|\n| Token Size |    10B    |    30B    |    100B   |    30B    |    100B   |    300B   |    300B   |\n|    AdamW   |   2.722   |   2.550   |   2.427   |   2.362   |   2.218   |   2.070   |   2.023   |\n|    Adan    | **2.697** | **2.513** | **2.404** | **2.349** | **2.206** | **2.045** | **2.010** |\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/sail-sg/Adan/assets/10042844/4c69c8d2-cb52-4c96-8d6b-574adc8ca775\" width=\"58%\" /\u003e\n  \u003cimg src=\"https://github.com/sail-sg/Adan/assets/10042844/d8d79ee3-c19c-4cdf-9ba0-939d030f49a9\" width=\"40%\" /\u003e\n\u003c/p\u003e\n\n#### GPT2-345m\n\nWe provide the config and log for GPT2-345m pre-trained on the dataset that comes from [BigCode](https://www.bigcode-project.org/) and evaluated on the [HumanEval](https://github.com/openai/human-eval) dataset by zero-shot learning. [HumanEval](https://github.com/openai/human-eval) is used to measure functional correctness for synthesizing programs from docstrings. It consists of 164 original programming problems, assessing language comprehension, algorithms, and simple mathematics, with some comparable to simple software interview questions. We set ` Temperature = 0.8` during evaluation.\n\n|                  | Steps | pass@1 | pass@10 | pass@100 |                                  Download                                  |\n| ---------------- | :---: | :----: | :-----: | :------: | :------------------------------------------------------------------------: |\n| GPT2-345m (Adam) | 300k  | 0.0840 |  0.209  |  0.360   | [log\u0026config](https://github.com/sail-sg/Adan/files/10362486/gpt2-adam.log) |\n| GPT2-345m (Adan) | 150k  | 0.0843 |  0.221  |  0.377   | [log\u0026config](https://github.com/sail-sg/Adan/files/10362485/gpt2-adan.log) |\n\n\u003cu\u003e**Adan obtains comparable results with only half cost**\u003c/u\u003e.\n\n### Results on vision tasks\n\nFor your convenience to use Adan, we provide the configs and log files for the experiments on ImageNet-1k.\n\n| Model         |  Epoch  | Training Setting | Acc. (%) |                               Config                                | Batch Size |                                    Download                                     |\n| ------------- | :-----: | :--------------: | :------: | :-----------------------------------------------------------------: | :--------: | :-----------------------------------------------------------------------------: |\n| ViT-S         |   150   |        I         |   80.1   |   [config](./CV/timm/exp_results/ViT/small/args_vit-s_150-I.yaml)   |    2048    |      [log](./CV/timm/exp_results/ViT/small/summary_vit-s_150-I.csv)/model       |\n| ViT-S         |   150   |        II        |   79.6   |    [config](./CV/timm/exp_results/ViT/small/args_vit-s_150.yaml)    |    2048    |       [log](./CV/timm/exp_results/ViT/small/summary_vit-s_150.csv)/model        |\n| ViT-S         |   300   |        I         |   81.1   |   [config](./CV/timm/exp_results/ViT/small/args_vit-s_300-I.yaml)   |    2048    |      [log](./CV/timm/exp_results/ViT/small/summary_vit-s_300-I.csv)/model       |\n| ViT-S         |   300   |        II        |   80.7   |    [config](./CV/timm/exp_results/ViT/small/args_vit-s_300.yaml)    |    2048    |       [log](./CV/timm/exp_results/ViT/small/summary_vit-s_300.csv)/model        |\n| ViT-B         |   150   |        II        |   81.7   |    [config](./CV/timm/exp_results/ViT/base/args_vit-B_150.yaml)     |    2048    |        [log](./CV/timm/exp_results/ViT/base/summary_vit-B_150.csv)/model        |\n| ViT-B         |   300   |        II        |   82.6   |   [config](./CV/timm/exp_results/ViT/base/args_vit-B_300_T.yaml)    |    2048    |       [log](./CV/timm/exp_results/ViT/base/summary_vit-B_300_T.csv)/model       |\n| ResNet-50     |   100   |        I         |   78.1   |  [config](./CV/timm/exp_results/ResNet/Res50/args_res50_100.yaml)   |    2048    |      [log](./CV/timm/exp_results/ResNet/Res50/summary_res50_100.csv)/model      |\n| ResNet-50     |   200   |        I         |   79.7   |  [config](./CV/timm/exp_results/ResNet/Res50/args_res50_200.yaml)   |    2048    |      [log](./CV/timm/exp_results/ResNet/Res50/summary_res50_200.csv)/model      |\n| ResNet-50     |   300   |        I         |   80.2   |  [config](./CV/timm/exp_results/ResNet/Res50/args_res50_300.yaml)   |    2048    |      [log](./CV/timm/exp_results/ResNet/Res50/summary_res50_300.csv)/model      |\n| ResNet-101    |   100   |        I         |   80.0   | [config](./CV/timm/exp_results/ResNet/Res101/args_res101_100.yaml)  |    2048    |     [log](./CV/timm/exp_results/ResNet/Res101/summary_res101_100.csv)/model     |\n| ResNet-101    |   200   |        I         |   81.6   | [config](./CV/timm/exp_results/ResNet/Res101/args_res101_200.yaml)  |    2048    |     [log](./CV/timm/exp_results/ResNet/Res101/summary_res101_200.csv)/model     |\n| ResNet-101    |   300   |        I         |   81.9   | [config](./CV/timm/exp_results/ResNet/Res101/args_res101_300.yaml)  |    2048    |     [log](./CV/timm/exp_results/ResNet/Res101/summary_res101_300.csv)/model     |\n| ConvNext-tiny |   150   |        II        |   81.7   | [config](./CV/timm/exp_results/ConvNext/small/args_cvnext_150.yaml) |    2048    |    [log](./CV/timm/exp_results/ConvNext/small/summary_cvnext_150.csv)//model    |\n| ConvNext-tiny |   300   |        II        |   82.4   | [config](./CV/timm/exp_results/ConvNext/small/args_cvnext_300.yaml) |    2048    |    [log](./CV/timm/exp_results/ConvNext/small/summary_cvnext_300.csv)/model     |\n| MAE-small     | 800+100 |       ---        |   83.8   |                    [config](./CV/MAE/README.md)                     | 4096/2048  | [log-pretrain](./CV/MAE/exp_results/MAE/base/log_base_pretrain.txt)/[log-finetune](./CV/MAE/exp_results/MAE/base/log_base_ft.txt)/model |\n| MAE-Large     | 800+50  |       ---        |   85.9   |                    [config](./CV/MAE/README.md)                     | 4096/2048  | [log-pretrain](./CV/MAE/exp_results/MAE/large/log_large_pretrain.txt)/[log-finetune](./CV/MAE/exp_results/MAE/large/log_large_ft.txt)/model |\n\n### Results on NLP tasks\n\n#### BERT-base\n\nWe give the configs and log files of the BERT-base model pre-trained on the Bookcorpus and Wikipedia datasets and fine-tuned on GLUE tasks. Note that we provide the config, log file, and detailed [instructions](./NLP/BERT/README.md) for BERT-base in the folder `./NLP/BERT`.\n\n| Pretraining |                         Config                         | Batch Size |                             Log                             | Model |\n| ----------- | :----------------------------------------------------: | :--------: | :---------------------------------------------------------: | :---: |\n| Adan        | [config](./NLP/BERT/config/pretraining/bert-adan.yaml) |    256     | [log](./NLP/BERT/exp_results/pretrain/hydra_train-adan.log) | model |\n\n| Fine-tuning on GLUE-Task | Metric                       |  Result   |                         Config                         |\n| ------------------------ | :--------------------------- | :-------: | :----------------------------------------------------: |\n| CoLA                     | Matthew's corr.              |   64.6    | [config](./NLP/BERT/config/finetuning/cola-adan.yaml)  |\n| SST-2                    | Accuracy                     |   93.2    | [config](./NLP/BERT/config/finetuning/sst_2-adan.yaml) |\n| STS-B                    | Person corr.                 |   89.3    | [config](./NLP/BERT/config/finetuning/sts_b-adan.yaml) |\n| QQP                      | Accuracy                     |   91.2    |  [config](./NLP/BERT/config/finetuning/qqp-adan.yaml)  |\n| MNLI                     | Matched acc./Mismatched acc. | 85.7/85.6 | [config](./NLP/BERT/config/finetuning/mnli-adan.yaml)  |\n| QNLI                     | Accuracy                     |   91.3    | [config](./NLP/BERT/config/finetuning/qnli-adan.yaml)  |\n| RTE                      | Accuracy                     |   73.3    |  [config](./NLP/BERT/config/finetuning/rte-adan.yaml)  |\n\nFor fine-tuning on GLUE-Task, see the total batch size in their corresponding configure files.\n\n#### Transformer-XL-base\n\nWe provide the config and log for Transformer-XL-base trained on the WikiText-103 dataset. The total batch size for this experiment is `60*4`.\n\n|                     | Steps | Test PPL |                          Download                           |\n| ------------------- | :---: | :------: | :---------------------------------------------------------: |\n| Baseline (Adam)     | 200k  |   24.2   | [log\u0026config](./NLP/Transformer-XL/exp_results/log-adam.txt) |\n| Transformer-XL-base |  50k  |   26.2   | [log\u0026config](./NLP/Transformer-XL/exp_results/log-50k.txt)  |\n| Transformer-XL-base | 100k  |   24.2   | [log\u0026config](./NLP/Transformer-XL/exp_results/log-100k.txt) |\n| Transformer-XL-base | 200k  |   23.5   | [log\u0026config](./NLP/Transformer-XL/exp_results/log-200k.txt) |\n\n### Results on Large Language Models\n\n#### GPT2-345m\n\nWe provide the config and log for GPT2-345m pre-trained on the dataset that comes from [BigCode](https://www.bigcode-project.org/) and evaluated on the [HumanEval](https://github.com/openai/human-eval) dataset by zero-shot learning. [HumanEval](https://github.com/openai/human-eval) is used to measure functional correctness for synthesizing programs from docstrings. It consists of 164 original programming problems, assessing language comprehension, algorithms, and simple mathematics, with some comparable to simple software interview questions. We set ` Temperature = 0.8` during evaluation.\n\n|                  | Steps | pass@1 | pass@10 | pass@100 |                                  Download                                  |\n| ---------------- | :---: | :----: | :-----: | :------: | :------------------------------------------------------------------------: |\n| GPT2-345m (Adam) | 300k  | 0.0840 |  0.209  |  0.360   | [log\u0026config](https://github.com/sail-sg/Adan/files/10362486/gpt2-adam.log) |\n| GPT2-345m (Adan) | 150k  | 0.0843 |  0.221  |  0.377   | [log\u0026config](https://github.com/sail-sg/Adan/files/10362485/gpt2-adan.log) |\n\n\u003cu\u003e**Adan obtains comparable results with only half cost**\u003c/u\u003e.\n\n### Results on Diffusion Models\n\nWe show the results of the text-to-3D task supported by the [DreamFusion Project](https://github.com/ashawkey/stable-dreamfusion). More visualization results could be founded [here](./dreamfusion/).\nExamples generated from text prompt `Sydney opera house, aerial view` with Adam and Adan:\n\n[![Video 1](https://user-images.githubusercontent.com/path_to_video_preview_image.jpg)](https://user-images.githubusercontent.com/10042844/211014601-da430196-021d-4f6b-962b-8441feff5d02.mp4)\n\n[![Video 2](https://user-images.githubusercontent.com/path_to_video_preview_image.jpg)](https://user-images.githubusercontent.com/10042844/211014594-3b5c05e3-9018-4a39-b5db-d6f2fc111cce.mp4)\n\n\n## Memory and Efficiency\nA brief comparison of peak memory and wall duration for the optimizer is as follows. The duration time is the total time of 200 `optimizer.step()`. We further compare Adam and FusedAdan in great detail on GPT-2. See more results [here](./fused_adan/README.md).\n\n| Model      | Model Size (MB) | Adam Peak (MB) | Adan Peak (MB) | FusedAdan Peak (MB) | Adam Time (ms) | Adan Time (ms) | FusedAdan Time (ms) |\n| :--------- | :-------------: | :------------: | :------------: | :-----------------: | :------------: | :------------: | :-----------------: |\n| ResNet-50  |       25        |      7142      |      7195      |        7176         |      9.0       |      4.2       |         1.9         |\n| ResNet-101 |       44        |     10055      |     10215      |        10160        |      17.5      |      7.0       |         3.4         |\n| ViT-B      |       86        |      9755      |      9758      |        9758         |      8.9       |      12.3      |         4.3         |\n| Swin-B     |       87        |     16118      |     16202      |        16173        |      17.9      |      12.8      |         4.9         |\n| ConvNext-B |       88        |     17353      |     17389      |        17377        |      19.1      |      15.6      |         5.0         |\n| Swin-L     |       196       |     24299      |     24316      |        24310        |      17.5      |      28.1      |        10.1         |\n| ConvNext-L |       197       |     26025      |     26055      |        26044        |      18.6      |      31.1      |        10.2         |\n| ViT-L      |       304       |     25652      |     25658      |        25656        |      18.0      |      43.2      |        15.1         |\n| GPT-2      |       758       |     25096      |     25406      |        25100        |      49.9      |     107.7      |        37.4         |\n| GPT-2      |      1313       |     34357      |     38595      |        34363        |      81.8      |     186.0      |        64.4         |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsail-sg%2FAdan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsail-sg%2FAdan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsail-sg%2FAdan/lists"}