LLM Fine Tuning Hardware Requirements Guide (2026): VRAM

Calculate LLM fine tuning hardware requirements. Compare VRAM footprints for Full Fine-Tuning, LoRA, and QLoRA across 8B, 32B, and 70B models in 2026.

On this page

Calculating llm fine tuning hardware requirements is a fundamental task for machine learning engineers adapting foundation models to specialized domain datasets. Unlike inference, fine-tuning requires updating or tracking model parameters, which drastically inflates video RAM consumption due to optimizer states, gradient buffers, and activation history.

GPU Picks collects hardware specifications, training frameworks, and cloud GPU pricing according to our transparent editorial methodology. This guide details the mathematical memory multipliers for Full Fine-Tuning, LoRA, and QLoRA, providing exact GPU sizing for 8B, 32B, 70B, and 405B parameter models.

Key takeaways

  • Full Fine-Tuning Memory Penalty: Full fine-tuning requires 16 to 20 bytes of VRAM per parameter.[source] A 70B model requires over 1,000GB of VRAM for full fine-tuning, demanding a multi-node 16x A100 or 8x H200 cluster.[source]
  • LoRA Memory Reduction: Low-Rank Adaptation (LoRA) freezes main model weights and trains lightweight adapter matrices,[source] reducing training VRAM by 60 to 75 percent compared to full fine-tuning.[source]
  • QLoRA Workstation Efficiency: QLoRA quantizes base model weights to 4-bit NormalFloat (NF4) while training 16-bit adapters.[source] This allows fine-tuning an 8B model on a single 24GB GPU or a 70B model on dual 24GB/48GB GPUs.[source]
  • AdamW Optimizer Overhead: Standard 32-bit AdamW optimizer states consume 8 bytes per parameter (4 bytes for momentum, 4 bytes for variance).[source]

How to calculate LLM fine tuning hardware requirements

To calculate total VRAM required for model fine-tuning, sum the four core training memory components:

Training VRAM (GB)=Model Weights+Gradients+Optimizer States+Activationstext{Training VRAM (GB)} = \text{Model Weights} + text{Gradients} + \text{Optimizer States} + \text{Activations}
  1. Model Weights: 2 bytes per parameter in FP16/BF16, or 0.55 bytes per parameter in 4-bit QLoRA.[source]
  2. Gradients: 2 bytes per trainable parameter.[source]
  3. Optimizer States (AdamW): 8 bytes per trainable parameter.[source]
  4. Activations and KV Cache: Memory needed to store forward-pass intermediate states for backward propagation.[source]

Breakdown of fine-tuning memory components

Understanding why fine-tuning consumes significantly more memory than inference prevents training crashes:

1. Model weights memory

In full fine-tuning, model weights are loaded into FP16 or BF16 precision, consuming 2 bytes per parameter.[source] In QLoRA, base weights are compressed into 4-bit NF4 precision, consuming ~0.55 bytes per parameter.[source]

2. Gradient memory

During backward passes, PyTorch computes gradients for every trainable weight.[source] For full fine-tuning, gradients consume 2 bytes per parameter.[source] For LoRA, gradients are computed only for adapter matrices (typically 0.5 to 2 percent of total parameters), reducing gradient memory to negligible levels.[source]

3. Optimizer states (AdamW overhead)

The default AdamW optimizer maintains two 32-bit floating point states for every trainable parameter:[source]

  • First Moment (Momentum): 4 bytes per parameter.[source]
  • Second Moment (Variance): 4 bytes per parameter.[source]

For full fine-tuning a 70B parameter model, AdamW optimizer states alone consume 560GB of VRAM.[source] In contrast, QLoRA uses 8-bit Paged AdamW, reducing optimizer overhead for adapters down to less than 2GB of VRAM.[source]

To learn how base inference memory is calculated before adding optimizer states, consult our foundational LLM GPU VRAM requirements guide.


Fine-tuning memory comparison matrix

The table below outlines real-world VRAM requirements for fine-tuning open foundation models across training methods.

Model Architecture & Scale Training Method Base Weight Memory Optimizer & Gradient Memory Recommended VRAM Recommended GPU Setup
8B-9B Model (DeepSeek-R1-Distill-8B / Qwen 3.5 9B) Full Fine-Tuning (FP16) ~16-18 GB ~96-108 GB ~120-130 GB 2x A100 80GB or 2x H100 80GB
8B-9B Model (DeepSeek-R1-Distill-8B / Qwen 3.5 9B) LoRA (FP16 Base) ~16-18 GB ~4 GB ~24 GB 1x RTX 4090 24GB
8B-9B Model (DeepSeek-R1-Distill-8B / Qwen 3.5 9B) QLoRA (4-bit Base) ~5.5 GB ~2 GB ~10-12 GB 1x RTX 4090 24GB or 1x 12GB/16GB GPU
14B Model (Phi-4 / R1-Distill-14B) QLoRA (4-bit Base) ~8.5 GB ~3 GB ~14-16 GB 1x RTX 4090 24GB
32B-35B Model (Qwen 3.6 35B / R1-Distill-32B) QLoRA (4-bit Base) ~20 GB ~6 GB ~28-32 GB 1x L40S 48GB or 2x RTX 4090
70B-72B Model (Qwen 3.6 72B / R1-Distill-70B) Full Fine-Tuning (FP16) ~140-144 GB ~840 GB ~1,050 GB 16x A100 80GB or 8x H200 141GB
70B-72B Model (Qwen 3.6 72B / R1-Distill-70B) LoRA (FP16 Base) ~140-144 GB ~25 GB ~180 GB 4x A100 80GB or 2x H200 141GB
70B-72B Model (Qwen 3.6 72B / R1-Distill-70B) QLoRA (4-bit Base) ~38-39 GB ~12 GB ~55-64 GB 2x RTX 4090 24GB or 1x L40S 48GB

Memory optimization techniques for LLM fine-tuning

Engineering teams use three primary techniques to fine-tune large models on accessible GPU cloud hardware:

1. QLoRA and Unsloth acceleration

QLoRA combines 4-bit NormalFloat base weight quantization with Double Quantization and Paged Optimizers.[source] Paged Optimizers allocate CUDA memory pages to system RAM during gradient spikes, avoiding OOM crashes.[source] Frameworks like Unsloth rewrite PyTorch Triton kernels to reduce activation memory by up to 60 percent, speeding up LoRA training by 2x to 5x.[source]

2. DeepSpeed ZeRO memory partitioning

Microsoft DeepSpeed ZeRO (Zero Redundancy Optimizer) partitions optimizer states, gradients, and model parameters across multiple GPUs:[source]

  • ZeRO Stage 1: Partitions 32-bit AdamW optimizer states across GPUs, reducing memory by 4x.[source]
  • ZeRO Stage 2: Partitions optimizer states and gradients, reducing memory by 8x.[source]
  • ZeRO Stage 3: Partitions optimizer states, gradients, and model parameters, allowing linear memory scaling across large clusters.[source]

3. Gradient accumulation and checkpointing

Activation checkpointing discards intermediate activation tensors during the forward pass and recalculates them during the backward pass.[source] This trades ~20 percent compute overhead for a 60 to 70 percent reduction in activation VRAM.[source] Gradient accumulation splits large training batches into smaller micro-batches, accumulating gradients over multiple steps to simulate large batch sizes on single GPUs.[source]

To implement these memory management tactics effectively, explore our guide on how to optimize GPU cloud costs.


Selecting cloud GPUs for LLM fine-tuning

Choosing the appropriate cloud GPU configuration depends on model size and training method:

  • Single RTX 4090 24GB: Ideal for QLoRA fine-tuning of 8B to 14B models (DeepSeek-R1-Distill-8B/14B, Qwen 3.5 9B, Phi-4 14B).[source]
  • Dual RTX 4090 or Single L40S 48GB: Ideal for QLoRA fine-tuning of 32B and 70B models (Qwen 3.6 35B/72B, DeepSeek-R1-Distill-70B).[source] Explore deployment choices in our guide to the best L40S cloud.
  • 4x to 8x NVIDIA A100 80GB / H100 80GB / H200 141GB Nodes: Required for full fine-tuning of 70B models or multi-node training clusters.[source] Teams building multi-GPU clusters can review our guides on the best GPU cloud for ML training and best H200 GPU cloud.

Frequently asked questions

Can I fine-tune a 70B model on consumer GPUs?

Yes. Using QLoRA in 4-bit NF4 precision, a 70B model requires approximately 48GB to 58GB of VRAM for fine-tuning.[source] This enables training on dual 24GB GPUs (like 2x RTX 4090) or a single 48GB GPU (like the L40S).[source]

What is the memory difference between LoRA and QLoRA?

LoRA loads the base model in 16-bit FP16 precision (consuming 2 bytes per parameter for base weights).[source] QLoRA quantizes base weights to 4-bit NF4 precision (consuming ~0.55 bytes per parameter),[source] reducing base weight VRAM by ~73 percent while retaining identical LoRA adapter performance.[source]

Why does full fine-tuning require so much more VRAM than inference?

Full fine-tuning requires storing 32-bit AdamW optimizer states (8 bytes per parameter) and 16-bit gradients (2 bytes per parameter),[source] adding 10 bytes per parameter on top of the 2-byte base model weights.[source]

To compare live hourly rates and specs for training-capable cloud GPUs, search our interactive GPU Cloud Lookup tool.

Sources

  1. PEFT: Parameter-Efficient Fine-Tuning Methods & Memory Footprint (opens in a new tab) , Hugging Face Documentation primary Accessed August 2, 2026
  2. QLoRA: Efficient Finetuning of Quantized LLMs (opens in a new tab) , arXiv / Tim Dettmers et al. primary Accessed August 2, 2026
  3. DeepSpeed ZeRO Memory Optimization for Large Model Training (opens in a new tab) , Microsoft DeepSpeed Project technical Accessed August 2, 2026

Reviewed and edited by Ahmad Nugraha