Skip to main content

Python library for precise, hardware-aware inference memory estimation of large language models.

Project description

LLM-X

PyPI version License: MIT

VRAM Matrix Prediction

Introduction

LLM-X is a CLI-first library designed to provide highly-precise, hardware-aware metrics for large language model inference requirements. It supports a wide range of architectures via SafeTensors and Hugging Face integration.

Key features

  • Memory Deficit/Surplus Analysis:
    • Calculate as a percentage memory deficits (when memory is not sufficient for inference) and memory surpluses (when memory is sufficient for inference), also considering that memory in use by the operating system and other processes.
    • Example: A +480.7% deficit alert immediately informs the user that the model is nearly 5x larger than the available GPU memory. In the absence of an available or detected GPU, the user will be informed that the deficit is not in VRAM but in RAM.
  • Dynamic Overhead Awareness:
    • Through psutil and NVML (nvidia-ml-py), LLM-X determines whether the model can fit in GPU memory (VRAM) or system memory (RAM).
  • Resources Required According to Quantization Levels
    • LLM-X offers a comparative matrix with the resources required for inference according to different levels of quantization and context windows.

Installation

Since it is natively a library, it can be easily installed via PyPI using pip.

  • pip install llm-x-py

It can also be installed by cloning this repository and installing it locally.

  • git clone https://github.com/Sheikyon/LLM-X.git
  • cd LLM-X
  • pip install .

Usage

  • Core Estimation (--model-src, -m)

    • Model Sources
      • Local: Absolute paths or . for the current directory.
      • Remote: Hugging Face Model IDs or full repository URLs.
    • Inference Configuration
      • Context Window (--context, -c): Set specific token limits.
      • Batch Size (--batch, -b): Defaults to 1.
      • KV Cache Settings:
        • Precision (--kv-dtype, -q): Data type for the cache (e.g., BF16).
        • Quantization (--kv-quant): Compression method for the KV cache.
  • Hugging Face Token Management

    • Add (--set-new-token): Save and automatically sort new access tokens.
    • Select (--set-token): Set an existing token as the active one by ID.
    • List (--token-list): Displays a rich table with IDs, Active status, and previews.
  • Token Cleanup

    • Single (--del-token): Delete a specific token by index.
    • Purge (--del-all-tokens): Remove all stored tokens from the system.

Accuracy

Using a Qwen2.5-7B (BF16) at 131,072 context as a benchmark:

Metric hf-mem Accelerate LLM-X (Ours) Status
Weights (BF16) 14.19 GiB 13.17 GiB 14.19 GiB Consistent
KV Cache (131k) 0.00 GiB 0.00 GiB 14.00 GiB Ignored
Engine Overhead 0.00 GiB 0.00 GiB 2.12 GiB Ignored
Total VRAM Required 14.19 GiB 13.17 GiB 30.31 GiB Reality
Error Rate 113.6% 130.1% 1.8%

LLM-X achieves an accuracy rate of ≈ 98.2%, closely matching the empirical metrics of torch.cuda.memory_allocated(), which tracks actual tensors allocated in memory. This also results in an error rate of only ≈ 1.8% in supported models.

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

llm_x_py-0.1.3.tar.gz (22.2 kB view details)

Uploaded Source

Built Distribution

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

llm_x_py-0.1.3-py3-none-any.whl (22.9 kB view details)

Uploaded Python 3

File details

Details for the file llm_x_py-0.1.3.tar.gz.

File metadata

  • Download URL: llm_x_py-0.1.3.tar.gz
  • Upload date:
  • Size: 22.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for llm_x_py-0.1.3.tar.gz
Algorithm Hash digest
SHA256 28075b9a9535f12bf733c967f0fdd8b1b1b7568c3cff4280aaa4d8700101df06
MD5 f5964b9a67f70e37eb1225987c31f302
BLAKE2b-256 eb707b16cd79be61be4dbc1c264236f12eb1e8a536388e39ade10d46165d1d6d

See more details on using hashes here.

File details

Details for the file llm_x_py-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: llm_x_py-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 22.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for llm_x_py-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 dc893f00ba15c64729965ed0dad839c6f82566e5f52349f5a1d6e9099a34afef
MD5 42ff1089dee4625a7359c8a108b3b00b
BLAKE2b-256 bcead25f133c87364decdd9d3d483fbe03c3c1f3024fe73cfb8ab2068a4802e2

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