{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/fine-tuning-giant-neural-networks-on","title":"Fine-tuning giant neural networks on commodity hardware with automatic pipeline model parallelism","arxiv_id":null,"date":"2021-07-14","proceeding":"USENIX Annual Technical Conference 2021 7","authors":["Saar Eliad","Ido Hakimi","Alon De Jager","Mark Silberstein","Assaf Schuster"],"abstract":"Fine-tuning is an increasingly common technique that leverages transfer learning to dramatically expedite the training of huge, high-quality models.\r\nCritically, fine-tuning holds the potential to make giant state-of-the-art models pre-trained on high-end super-computing-grade systems readily available for users that lack access to such costly resources. \r\nUnfortunately, this potential is still difficult to realize because the models often do not fit in the memory of a single commodity GPU, making fine-tuning a challenging problem.\r\n\r\nWe present \\projname, a system that explores a new dimension of pipeline model parallelism, making multi-GPU execution of fine-tuning tasks for giant neural networks readily accessible on commodity hardware.\r\nA key idea is a novel approach to model partitioning and task allocation, called \\mpipe.  \\mpipe\r\npartitions the model into arbitrary computational blocks rather than layers, and relaxes the model topology constraints when assigning blocks to GPUs, allowing non-adjacent blocks to be executed on the same GPU. More flexible partitioning affords a much better balance of the compute- and memory-load on the GPUs compared to prior works, yet does not increase the communication overheads. Moreover, and perhaps surprisingly, when applied to asynchronous training, \\mpipe has negligible or no effect on the end-to-end accuracy of fine-tuning tasks despite the addition of pipeline stages. \r\n\r\nOur extensive experiments on giant state-of-the-art NLP models (BERT-340M, GPT2-1.5B, and T5-3B) show that \\projname achieves up to 3$\\times$ speedup and state-of-the-art accuracy when fine-tuning giant transformers with billions of parameters. These models require from 12GB to 59GB of GPU memory, and \\projname executes them on 8 commodity RTX2080-Ti GPUs, each with 11GB memory and standard PCIe.","url_abs":"https://www.usenix.org/conference/atc21/presentation/eliad","url_pdf":"https://www.usenix.org/system/files/atc21-eliad.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"fine-tuning-giant-neural-networks-on","repo_url":"https://github.com/saareliad/FTPipe","is_official":0,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":null,"task_name":"GPU"},{"task_slug":"transfer-learning","task_name":"Transfer Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":null,"mcp":null,"developers":"https://syntology.ai/developers"},"arxiv_metadata":null,"syntology_extracted_results":null}