Blog Logo

Can You Run a 70B Model with 4 GB of VRAM?

AirLLM is an open-source library that runs large language models by loading their layers onto the GPU in turn. Its repository advertises support for 70-billion-parameter models with 4 GB of VRAM, an option for experimenting locally when the full weights won’t fit on your graphics card. (github.com)

AirLLM's GitHub repository showing the headline advertising language model inference on a single GPU with 4 GB of VRAM.

The trade-off is response time. In the video test, an RTX 5080 with 16 GB of VRAM took 251 seconds to complete a run limited to five output tokens. The response was cut off before it named the capital of Spain.

What AirLLM’s advertised 4 GB actually means

The 4 GB in the headline refers to the graphics card’s memory. Your computer’s RAM and storage are still separate resources: that figure describes VRAM usage for specific models under the conditions published by the project. (github.com)

That distinction matters when deciding whether your machine is up to the task. The model weights need to be available to load during execution, even if they don’t all stay on the graphics card. Reducing GPU memory usage shifts some of the work to loading those weights.

You shouldn’t read that figure as a guarantee for every model, either. The repository lists different VRAM requirements depending on model size and architecture; 4 GB is a reference point for specific cases. (github.com)

If you want to tinker, start with a compatible model and check its requirements. Picking the biggest one just because it appears in a table could leave you waiting far longer than it’s worth.

How layer-by-layer loading works

AirLLM keeps the part of the model it currently needs to process on the GPU. It then releases the weights it has used and loads the next ones, reducing the amount of weights that need to remain in graphics memory at the same time. (github.com)

You can understand it by following an input through the process:

  1. The tool loads the weights for one layer.
  2. The GPU processes the data using that layer.
  3. The result passes to the next layer.
  4. The tool replaces the weights it has already used with the ones it needs next.

Each layer transforms the information it receives. Even when its weights are removed from the GPU, its output remains part of the computation that continues through the model. The memory savings come from swapping the weights held in memory.

That swapping adds work to the run. In the video test, the initial loading finished long before generation did: the “model loaded” message appeared at around 4.5 seconds, but the response took several minutes.

That’s why you need to measure until the output is complete. If you only look at loading time, you’re missing the number that determines whether you can use it for chat.

AirLLM and quantization: what each one changes

Layer-by-layer loading changes when weights are available on the GPU. Quantization reduces the precision used to represent those weights. AirLLM advertises inference without requiring quantization and also offers compression options. (github.com)

The two choices can go together. In the video, the 32-billion-parameter Qwen3 model was configured with 4-bit compression, alongside AirLLM’s layer-by-layer loading.

That detail limits what you can conclude from the result. The test applies to that combination of model, compression, and hardware. To attribute a difference in quality to a particular technique, you’d need to keep the other conditions the same and compare the responses.

If you want a reference on model selection and memory before setting up the experiment, check out my guide to running AI locally with Ollama. It helps you start with a model suited to your machine and avoid a setup that’s too slow for everyday use.

What happened in the RTX 5080 test

The run used an RTX 5080 with 16 GB of VRAM. The script loaded the model, measured timings, and sent the question “What is the capital of Spain?” Generation was capped at five new tokens.

Here’s what the test showed:

Test elementConfiguration or result
Selected model32-billion-parameter Qwen3
Compression4-bit
Reported initial loading timeAround 4.5 seconds
Total time shown251 seconds
Output limitFive tokens
Visible response“The capital of Spain is”

The output stopped because of the configured limit. Tokens aren’t the same as whole words, so allowing five didn’t guarantee enough room for an answer. That cutoff makes it impossible to assess the final answer to the question.

The timing does help assess interaction in that run: 251 seconds for such a short output makes every exchange a considerable wait. Asking a question, correcting it, and asking again multiplies that friction.

Dependency-related warnings also appeared during loading. The process continued and generated text, but those warnings are worth reviewing before reusing the environment for more tests.

The GPU used in this run had 16 GB of VRAM. The observed result therefore applies to that hardware; the 4 GB figure comes from the cases advertised by AirLLM.

What to check before running it with NVIDIA

The environment in the video used NVIDIA, PyTorch, and CUDA. If you’re going to follow the same setup, first check that Python can access your graphics card. Installing the library without verifying this could leave you chasing a dependency issue as though it were a model problem.

  1. Check that the driver recognizes your GPU:

    nvidia-smi

    Make sure the card you want to use for the test appears. If this step fails, fix the driver before continuing.

  2. Create and activate a Python virtual environment. Install the dependencies inside it to keep this test separate from other projects.

  3. Install a version of PyTorch compatible with your GPU and check CUDA from Python:

    import torch
    
    print(torch.cuda.is_available())

    The result must be True to follow the CUDA setup used in the video.

  4. Review the installation instructions and compatible models in the official AirLLM repository. Check the model requirements alongside those of its dependencies.

When preparing the script, measure loading time separately from generation time and allow enough room for a short response to finish. Watch out for a token limit that’s too low: you can measure how long the process took and still end up without an answer to evaluate.

When to use AirLLM and when to choose something else

AirLLM makes sense as an experiment if you want to study layer-by-layer loading or try accessing a model that won’t fit entirely on your GPU. In practice, you need to be able to accept waits like the one observed and spend time setting up the environment.

For interactive chat, the video run gives you a clear criterion: several minutes for minimal output makes conversation difficult. The same applies to coding, because you need to review changes, request corrections, and check results without waiting several minutes between each step.

A smaller model that responds with acceptable latency may be a better fit for that work. If you can use external services and need access to other models, there’s also my guide to setting up an AI API with cloud models and fallback.

Before building a chat interface on top of AirLLM, run a short question with enough room to complete the answer and measure the time to the last token. Use that wait to decide whether to keep experimenting or choose a smaller model.


What do you think?

Leave your opinion, question or suggestion. Comments are synced with GitHub Discussions .

← Back to blog