gauravbatule/AirCELA

3

stars

9

commits

Python

primary language

Mar 2, 2026

updated

README

🧊 AirCELA β€” Optimized AirLLM Alternative

Fastest AirLLM-style inference engine for consumer GPUs
Run 7B–70B+ LLMs on GPUs with as little as 4GB VRAM

Installation β€’ Quick Start β€’ Ollama / GGUF β€’ CLI β€’ How It Works β€’ API Reference β€’ Troubleshooting


⚑ What is AirCELA?

AirCELA (Compute-Efficient Layer Architecture) is a high-performance AirLLM alternative that lets you run models far larger than your GPU VRAM by streaming one transformer layer at a time.

While AirLLM pioneered the concept, AirCELA takes it to the next level with Double-Buffer Prefetching and Zero-Copy Memory Mapping, reducing the I/O bottleneck by up to 80%.

πŸš€ Why AirCELA vs AirLLM?

FeatureAirLLMAirCELA
Streaming StyleSequentialAsynchronous Double-Buffered
I/O Hiding❌ (GPU waits for disk)βœ… (Prefetches while computing)
Disk AccessStandard I/OZero-Copy mmap
AttentionStandardFlash Attention (cuDNN fused)
Model SupportHF onlyHF + GGUF (Ollama)
DequantizationStandardVectorized NumPy Kernels
CLI toolβŒβœ… (aircela chat, aircela bench)

πŸ“¦ Installation

Step 1: Clone the repo

git clone https://github.com/gauravbatule/AirCELA.git
cd AirCELA

Step 2: Install dependencies

pip install -r requirements.txt

Note: This installs PyTorch, NumPy, transformers, huggingface_hub, safetensors, psutil, and accelerate.

Step 3 (Optional): Install as a CLI tool

pip install -e .

This gives you the aircela and cela commands system-wide. Without this step, you can still use python -m aircela.cli or the Python API directly.

Requirements

  • Python: 3.9 or higher
  • PyTorch: 2.0+ (CUDA support recommended for GPU inference)
  • GPU: Any NVIDIA GPU with 4GB+ VRAM (RTX 3050, GTX 1650, etc.)
  • RAM: 8GB+ system RAM
  • OS: Windows 10/11, Linux, macOS

πŸš€ Quick Start

Using the Python API (HuggingFace Models)

The simplest way to start β€” downloads the model automatically:

# File: my_test.py
import sys
sys.path.insert(0, ".")  # Only needed if you didn't pip install

from aircela import CELAEngine

# Load a model (downloads automatically on first run)
engine = CELAEngine.from_pretrained("TinyLlama/TinyLlama-1.1B-Chat-v1.0")

# Generate text β€” tokens stream one at a time
for token in engine.generate("What is the capital of France?", max_tokens=50):
    print(token, end="", flush=True)
print()

Run it:

cd AirCELA
python my_test.py

Or use the included example:

python examples/basic_generation.py

πŸ¦™ Ollama / GGUF Models

AirCELA can directly load GGUF models you've already downloaded with Ollama.

Step 1: Pull a model with Ollama

ollama pull mistral-small:22b

Step 2: Run with AirCELA

# List available Ollama models on your system
python examples/ollama_inference.py

# Run a model (without tokenizer β€” outputs raw token IDs)
python examples/ollama_inference.py mistral-small:22b

# Run with a HuggingFace tokenizer for readable text
python examples/ollama_inference.py mistral-small:22b mistralai/Mistral-Small-Instruct-2409

Using the Python API directly

import sys
sys.path.insert(0, ".")

from aircela import CELAEngine

# Load a GGUF model from Ollama or a direct file path
engine = CELAEngine.from_gguf(
    "C:/Users/YourName/.ollama/models/blobs/sha256-<hash>",
    tokenizer_id="mistralai/Mistral-Small-Instruct-2409"  # optional
)

for token in engine.generate("Explain quantum computing.", max_tokens=100):
    print(token, end="", flush=True)
print()

Tip: Run python examples/ollama_inference.py with no arguments to see all available Ollama models and their file paths.


πŸ–₯️ CLI Commands

Prerequisite: You must install AirCELA as a package first: pip install -e .

aircela info β€” Show hardware info

aircela info

Shows your GPU name, VRAM, RAM, and compute capability.

aircela chat β€” Interactive chat

aircela chat -m "TinyLlama/TinyLlama-1.1B-Chat-v1.0"

Options:

  • -m MODEL β€” HuggingFace model ID (required)
  • -n NUM β€” Max tokens to generate (default: 200)
  • -t TEMP β€” Temperature 0.0–1.0 (default: 0.7)

In-chat commands: /quit, /clear, /reset

aircela run β€” Single prompt generation

aircela run -m "TinyLlama/TinyLlama-1.1B-Chat-v1.0" -p "Tell me a joke"

Options:

  • -m MODEL β€” HuggingFace model ID (required)
  • -p PROMPT β€” Input prompt (required)
  • -n NUM β€” Max tokens (default: 100)
  • -t TEMP β€” Temperature (default: 0.7)

aircela bench β€” Benchmark hardware

aircela bench

Tests RAM bandwidth, GPU bandwidth, GEMM performance, and SSD read speed.

Without pip install

If you haven't installed the package, you can use the CLI via Python module:

python -m aircela.cli info
python -m aircela.cli chat -m "TinyLlama/TinyLlama-1.1B-Chat-v1.0"
python -m aircela.cli bench

πŸ—οΈ How It Works

Token β†’ Embed β†’ [Layer 0 β†’ Layer 1 β†’ ... β†’ Layer N] β†’ Norm β†’ LM Head β†’ Token
                  ↑ GPU     ↑ prefetch next              ↑ GPU
  1. Only ONE transformer layer lives in VRAM at a time
  2. A background thread prefetches the next layer while the GPU computes the current one
  3. Each layer: Disk β†’ Dequantize β†’ GPU β†’ Compute β†’ Free VRAM β†’ Next
  4. KV caches live on CPU RAM to save VRAM
  5. This means a 70B model needs only ~500MB VRAM per layer instead of 140GB total

🏎️ Speed Optimizations

OptimizationWhat It Does
Double-Buffer PrefetchingLoads next layer in background while GPU computes current one. Hides 90% of disk I/O latency.
Zero-Copy mmapOS-level memory mapping for weight files. No redundant copies.
Fast GGUF Parsermmap-based parser reads 12GB GGUF headers in <10ms by skipping tokenizer metadata.
Vectorized DequantizationQ4_0/Q6_K dequant uses NumPy C-extensions, 100x faster than Python loops.
Flash AttentionPyTorch scaled_dot_product_attention for fused cuDNN kernels.
Lazy Module LoadingHeavy imports (torch, transformers) only load when actually needed.

πŸ“Š Supported Quantization Formats

FormatStatusBitsDescription
F32βœ…32Full precision float
F16βœ…16Half precision float
Q4_0βœ…44-bit quantization (most common in Ollama)
Q4_1βœ…44-bit with minimum offset
Q8_0βœ…88-bit quantization
Q6_Kβœ…66-bit K-quant (high quality)

πŸ“– API Reference

CELAEngine.from_pretrained(model_name)

Load any HuggingFace model. Downloads and caches automatically.

from aircela import CELAEngine
engine = CELAEngine.from_pretrained("TinyLlama/TinyLlama-1.1B-Chat-v1.0")

CELAEngine.from_gguf(path, tokenizer_id=None)

Load a GGUF model file (from Ollama or llama.cpp).

engine = CELAEngine.from_gguf("/path/to/model.gguf")
# Or with a tokenizer for readable text output:
engine = CELAEngine.from_gguf("/path/to/model.gguf", tokenizer_id="org/model-name")

engine.generate(prompt=..., input_ids=..., max_tokens=100, temperature=0.7, top_k=50, stream=True)

Generate text. Yields tokens one by one when stream=True.

# From a text prompt (requires tokenizer)
for token in engine.generate("Hello!", max_tokens=50):
    print(token, end="")

# From raw token IDs (no tokenizer needed)
import torch
ids = torch.tensor([[1, 4071, 28747]])
for tok in engine.generate(input_ids=ids, max_tokens=20):
    print(tok, end=" ")

engine.reset()

Clear KV caches to start a fresh conversation.


πŸ“ Project Structure

AirCELA/
β”œβ”€β”€ .github/
β”‚   β”œβ”€β”€ ISSUE_TEMPLATE/
β”‚   β”‚   β”œβ”€β”€ bug_report.md       # Bug report template
β”‚   β”‚   └── feature_request.md  # Feature request template
β”‚   └── PULL_REQUEST_TEMPLATE.md
β”œβ”€β”€ aircela/                    # Main package
β”‚   β”œβ”€β”€ __init__.py             # Lazy imports (fast startup)
β”‚   β”œβ”€β”€ engine.py               # Core inference engine
β”‚   β”œβ”€β”€ transformer.py          # Transformer layer (RoPE, GQA, Flash Attention)
β”‚   β”œβ”€β”€ prefetch.py             # Double-buffer layer prefetcher
β”‚   β”œβ”€β”€ gguf.py                 # Fast GGUF parser (mmap-based)
β”‚   β”œβ”€β”€ quantize.py             # Dequantization kernels (Q4_0, Q6_K, etc.)
β”‚   β”œβ”€β”€ huggingface.py          # HuggingFace model loader
β”‚   β”œβ”€β”€ device.py               # Hardware auto-detection
β”‚   └── cli.py                  # Command-line interface
β”œβ”€β”€ examples/
β”‚   β”œβ”€β”€ basic_generation.py     # HuggingFace model example
β”‚   └── ollama_inference.py     # Ollama/GGUF model example
β”œβ”€β”€ _legacy/                    # Old prototypes (not part of the package)
β”œβ”€β”€ CONTRIBUTING.md             # How to contribute
β”œβ”€β”€ CODE_OF_CONDUCT.md          # Community standards
β”œβ”€β”€ SECURITY.md                 # Security policy
β”œβ”€β”€ CHANGELOG.md                # Version history
β”œβ”€β”€ requirements.txt            # Python dependencies
β”œβ”€β”€ pyproject.toml              # Package configuration
β”œβ”€β”€ LICENSE                     # CELA Proprietary License
└── README.md                   # This file

πŸ”§ Troubleshooting

"Import takes forever" / Python hangs on startup

Cause: PyTorch's first import can take 1–3 minutes on Windows due to CUDA detection and DLL loading.

Fix: This is a one-time cost per Python process. AirCELA uses lazy imports so the aircela package itself loads instantly β€” torch only loads when you actually call CELAEngine.

Speed it up:

  1. Add your Python installation folder to Windows Defender exclusions
  2. Use an SSD for your Python environment
  3. Keep a Python REPL open to avoid repeated cold starts

"No tokenizer loaded" error

Cause: GGUF models from Ollama don't include tokenizers.

Fix: Provide a HuggingFace tokenizer ID:

engine = CELAEngine.from_gguf("model.gguf", tokenizer_id="mistralai/Mistral-7B-v0.1")

Or use input_ids directly:

import torch
ids = torch.tensor([[1, 4071]])
for tok in engine.generate(input_ids=ids, max_tokens=20):
    print(tok)

"MemoryError" during generation

Cause: Large models (22B+) require significant RAM for dequantization.

Fix:

  1. Close other applications to free RAM
  2. Use a smaller model (7B or 3B)
  3. Make sure you have at least 16GB RAM for 22B models

"Unsupported GGUF qtype" warning

Cause: The model uses a quantization format AirCELA doesn't support yet.

Supported: F32, F16, Q4_0, Q4_1, Q8_0, Q6_K


🀝 Contributing

We welcome contributions! See our community docs:


πŸ‘¨β€πŸ’» Credits

Gaurav BatuleCreator & Lead Developer
AirCELA was built by Gaurav Batule to solve the problem of running large language models on consumer hardware. The engine's core architecture β€” layer streaming with double-buffer prefetching, native GGUF support, and automatic hardware optimization β€” was designed, developed, and validated by Gaurav.
πŸ”— LinkedIn β€’ πŸ™ GitHub β€’ β˜• Buy Me a Coffee

πŸ€– Vibe Code Notice: Portions of this codebase were developed with AI assistance. All architecture decisions, core algorithms, testing, and validation were performed by Gaurav Batule.


πŸ“„ License

CELA Proprietary License β€” See LICENSE

  • βœ… Free for personal and educational use
  • βœ… Attribution required (credit Gaurav Batule)
  • ❌ Commercial use requires a separate license

Contact: gauravbatule@gmail.com


Built with ❀️ by Gaurav Batule
Making large LLMs accessible on consumer hardware

LinkedIn β€’ GitHub β€’ β˜• Support
If AirCELA helped you, consider buying me a coffee!

Contributors

gauravbatule

9 commits

gauravbatule/AirCELA

3

stars

9

commits

Python

primary language

Mar 2, 2026

updated

README

🧊 AirCELA β€” Optimized AirLLM Alternative

Fastest AirLLM-style inference engine for consumer GPUs
Run 7B–70B+ LLMs on GPUs with as little as 4GB VRAM

Installation β€’ Quick Start β€’ Ollama / GGUF β€’ CLI β€’ How It Works β€’ API Reference β€’ Troubleshooting


⚑ What is AirCELA?

AirCELA (Compute-Efficient Layer Architecture) is a high-performance AirLLM alternative that lets you run models far larger than your GPU VRAM by streaming one transformer layer at a time.

While AirLLM pioneered the concept, AirCELA takes it to the next level with Double-Buffer Prefetching and Zero-Copy Memory Mapping, reducing the I/O bottleneck by up to 80%.

πŸš€ Why AirCELA vs AirLLM?

FeatureAirLLMAirCELA
Streaming StyleSequentialAsynchronous Double-Buffered
I/O Hiding❌ (GPU waits for disk)βœ… (Prefetches while computing)
Disk AccessStandard I/OZero-Copy mmap
AttentionStandardFlash Attention (cuDNN fused)
Model SupportHF onlyHF + GGUF (Ollama)
DequantizationStandardVectorized NumPy Kernels
CLI toolβŒβœ… (aircela chat, aircela bench)

πŸ“¦ Installation

Step 1: Clone the repo

git clone https://github.com/gauravbatule/AirCELA.git
cd AirCELA

Step 2: Install dependencies

pip install -r requirements.txt

Note: This installs PyTorch, NumPy, transformers, huggingface_hub, safetensors, psutil, and accelerate.

Step 3 (Optional): Install as a CLI tool

pip install -e .

This gives you the aircela and cela commands system-wide. Without this step, you can still use python -m aircela.cli or the Python API directly.

Requirements

  • Python: 3.9 or higher
  • PyTorch: 2.0+ (CUDA support recommended for GPU inference)
  • GPU: Any NVIDIA GPU with 4GB+ VRAM (RTX 3050, GTX 1650, etc.)
  • RAM: 8GB+ system RAM
  • OS: Windows 10/11, Linux, macOS

πŸš€ Quick Start

Using the Python API (HuggingFace Models)

The simplest way to start β€” downloads the model automatically:

# File: my_test.py
import sys
sys.path.insert(0, ".")  # Only needed if you didn't pip install

from aircela import CELAEngine

# Load a model (downloads automatically on first run)
engine = CELAEngine.from_pretrained("TinyLlama/TinyLlama-1.1B-Chat-v1.0")

# Generate text β€” tokens stream one at a time
for token in engine.generate("What is the capital of France?", max_tokens=50):
    print(token, end="", flush=True)
print()

Run it:

cd AirCELA
python my_test.py

Or use the included example:

python examples/basic_generation.py

πŸ¦™ Ollama / GGUF Models

AirCELA can directly load GGUF models you've already downloaded with Ollama.

Step 1: Pull a model with Ollama

ollama pull mistral-small:22b

Step 2: Run with AirCELA

# List available Ollama models on your system
python examples/ollama_inference.py

# Run a model (without tokenizer β€” outputs raw token IDs)
python examples/ollama_inference.py mistral-small:22b

# Run with a HuggingFace tokenizer for readable text
python examples/ollama_inference.py mistral-small:22b mistralai/Mistral-Small-Instruct-2409

Using the Python API directly

import sys
sys.path.insert(0, ".")

from aircela import CELAEngine

# Load a GGUF model from Ollama or a direct file path
engine = CELAEngine.from_gguf(
    "C:/Users/YourName/.ollama/models/blobs/sha256-<hash>",
    tokenizer_id="mistralai/Mistral-Small-Instruct-2409"  # optional
)

for token in engine.generate("Explain quantum computing.", max_tokens=100):
    print(token, end="", flush=True)
print()

Tip: Run python examples/ollama_inference.py with no arguments to see all available Ollama models and their file paths.


πŸ–₯️ CLI Commands

Prerequisite: You must install AirCELA as a package first: pip install -e .

aircela info β€” Show hardware info

aircela info

Shows your GPU name, VRAM, RAM, and compute capability.

aircela chat β€” Interactive chat

aircela chat -m "TinyLlama/TinyLlama-1.1B-Chat-v1.0"

Options:

  • -m MODEL β€” HuggingFace model ID (required)
  • -n NUM β€” Max tokens to generate (default: 200)
  • -t TEMP β€” Temperature 0.0–1.0 (default: 0.7)

In-chat commands: /quit, /clear, /reset

aircela run β€” Single prompt generation

aircela run -m "TinyLlama/TinyLlama-1.1B-Chat-v1.0" -p "Tell me a joke"

Options:

  • -m MODEL β€” HuggingFace model ID (required)
  • -p PROMPT β€” Input prompt (required)
  • -n NUM β€” Max tokens (default: 100)
  • -t TEMP β€” Temperature (default: 0.7)

aircela bench β€” Benchmark hardware

aircela bench

Tests RAM bandwidth, GPU bandwidth, GEMM performance, and SSD read speed.

Without pip install

If you haven't installed the package, you can use the CLI via Python module:

python -m aircela.cli info
python -m aircela.cli chat -m "TinyLlama/TinyLlama-1.1B-Chat-v1.0"
python -m aircela.cli bench

πŸ—οΈ How It Works

Token β†’ Embed β†’ [Layer 0 β†’ Layer 1 β†’ ... β†’ Layer N] β†’ Norm β†’ LM Head β†’ Token
                  ↑ GPU     ↑ prefetch next              ↑ GPU
  1. Only ONE transformer layer lives in VRAM at a time
  2. A background thread prefetches the next layer while the GPU computes the current one
  3. Each layer: Disk β†’ Dequantize β†’ GPU β†’ Compute β†’ Free VRAM β†’ Next
  4. KV caches live on CPU RAM to save VRAM
  5. This means a 70B model needs only ~500MB VRAM per layer instead of 140GB total

🏎️ Speed Optimizations

OptimizationWhat It Does
Double-Buffer PrefetchingLoads next layer in background while GPU computes current one. Hides 90% of disk I/O latency.
Zero-Copy mmapOS-level memory mapping for weight files. No redundant copies.
Fast GGUF Parsermmap-based parser reads 12GB GGUF headers in <10ms by skipping tokenizer metadata.
Vectorized DequantizationQ4_0/Q6_K dequant uses NumPy C-extensions, 100x faster than Python loops.
Flash AttentionPyTorch scaled_dot_product_attention for fused cuDNN kernels.
Lazy Module LoadingHeavy imports (torch, transformers) only load when actually needed.

πŸ“Š Supported Quantization Formats

FormatStatusBitsDescription
F32βœ…32Full precision float
F16βœ…16Half precision float
Q4_0βœ…44-bit quantization (most common in Ollama)
Q4_1βœ…44-bit with minimum offset
Q8_0βœ…88-bit quantization
Q6_Kβœ…66-bit K-quant (high quality)

πŸ“– API Reference

CELAEngine.from_pretrained(model_name)

Load any HuggingFace model. Downloads and caches automatically.

from aircela import CELAEngine
engine = CELAEngine.from_pretrained("TinyLlama/TinyLlama-1.1B-Chat-v1.0")

CELAEngine.from_gguf(path, tokenizer_id=None)

Load a GGUF model file (from Ollama or llama.cpp).

engine = CELAEngine.from_gguf("/path/to/model.gguf")
# Or with a tokenizer for readable text output:
engine = CELAEngine.from_gguf("/path/to/model.gguf", tokenizer_id="org/model-name")

engine.generate(prompt=..., input_ids=..., max_tokens=100, temperature=0.7, top_k=50, stream=True)

Generate text. Yields tokens one by one when stream=True.

# From a text prompt (requires tokenizer)
for token in engine.generate("Hello!", max_tokens=50):
    print(token, end="")

# From raw token IDs (no tokenizer needed)
import torch
ids = torch.tensor([[1, 4071, 28747]])
for tok in engine.generate(input_ids=ids, max_tokens=20):
    print(tok, end=" ")

engine.reset()

Clear KV caches to start a fresh conversation.


πŸ“ Project Structure

AirCELA/
β”œβ”€β”€ .github/
β”‚   β”œβ”€β”€ ISSUE_TEMPLATE/
β”‚   β”‚   β”œβ”€β”€ bug_report.md       # Bug report template
β”‚   β”‚   └── feature_request.md  # Feature request template
β”‚   └── PULL_REQUEST_TEMPLATE.md
β”œβ”€β”€ aircela/                    # Main package
β”‚   β”œβ”€β”€ __init__.py             # Lazy imports (fast startup)
β”‚   β”œβ”€β”€ engine.py               # Core inference engine
β”‚   β”œβ”€β”€ transformer.py          # Transformer layer (RoPE, GQA, Flash Attention)
β”‚   β”œβ”€β”€ prefetch.py             # Double-buffer layer prefetcher
β”‚   β”œβ”€β”€ gguf.py                 # Fast GGUF parser (mmap-based)
β”‚   β”œβ”€β”€ quantize.py             # Dequantization kernels (Q4_0, Q6_K, etc.)
β”‚   β”œβ”€β”€ huggingface.py          # HuggingFace model loader
β”‚   β”œβ”€β”€ device.py               # Hardware auto-detection
β”‚   └── cli.py                  # Command-line interface
β”œβ”€β”€ examples/
β”‚   β”œβ”€β”€ basic_generation.py     # HuggingFace model example
β”‚   └── ollama_inference.py     # Ollama/GGUF model example
β”œβ”€β”€ _legacy/                    # Old prototypes (not part of the package)
β”œβ”€β”€ CONTRIBUTING.md             # How to contribute
β”œβ”€β”€ CODE_OF_CONDUCT.md          # Community standards
β”œβ”€β”€ SECURITY.md                 # Security policy
β”œβ”€β”€ CHANGELOG.md                # Version history
β”œβ”€β”€ requirements.txt            # Python dependencies
β”œβ”€β”€ pyproject.toml              # Package configuration
β”œβ”€β”€ LICENSE                     # CELA Proprietary License
└── README.md                   # This file

πŸ”§ Troubleshooting

"Import takes forever" / Python hangs on startup

Cause: PyTorch's first import can take 1–3 minutes on Windows due to CUDA detection and DLL loading.

Fix: This is a one-time cost per Python process. AirCELA uses lazy imports so the aircela package itself loads instantly β€” torch only loads when you actually call CELAEngine.

Speed it up:

  1. Add your Python installation folder to Windows Defender exclusions
  2. Use an SSD for your Python environment
  3. Keep a Python REPL open to avoid repeated cold starts

"No tokenizer loaded" error

Cause: GGUF models from Ollama don't include tokenizers.

Fix: Provide a HuggingFace tokenizer ID:

engine = CELAEngine.from_gguf("model.gguf", tokenizer_id="mistralai/Mistral-7B-v0.1")

Or use input_ids directly:

import torch
ids = torch.tensor([[1, 4071]])
for tok in engine.generate(input_ids=ids, max_tokens=20):
    print(tok)

"MemoryError" during generation

Cause: Large models (22B+) require significant RAM for dequantization.

Fix:

  1. Close other applications to free RAM
  2. Use a smaller model (7B or 3B)
  3. Make sure you have at least 16GB RAM for 22B models

"Unsupported GGUF qtype" warning

Cause: The model uses a quantization format AirCELA doesn't support yet.

Supported: F32, F16, Q4_0, Q4_1, Q8_0, Q6_K


🀝 Contributing

We welcome contributions! See our community docs:


πŸ‘¨β€πŸ’» Credits

Gaurav BatuleCreator & Lead Developer
AirCELA was built by Gaurav Batule to solve the problem of running large language models on consumer hardware. The engine's core architecture β€” layer streaming with double-buffer prefetching, native GGUF support, and automatic hardware optimization β€” was designed, developed, and validated by Gaurav.
πŸ”— LinkedIn β€’ πŸ™ GitHub β€’ β˜• Buy Me a Coffee

πŸ€– Vibe Code Notice: Portions of this codebase were developed with AI assistance. All architecture decisions, core algorithms, testing, and validation were performed by Gaurav Batule.


πŸ“„ License

CELA Proprietary License β€” See LICENSE

  • βœ… Free for personal and educational use
  • βœ… Attribution required (credit Gaurav Batule)
  • ❌ Commercial use requires a separate license

Contact: gauravbatule@gmail.com


Built with ❀️ by Gaurav Batule
Making large LLMs accessible on consumer hardware

LinkedIn β€’ GitHub β€’ β˜• Support
If AirCELA helped you, consider buying me a coffee!

Contributors

gauravbatule

9 commits

Languages

Python

100.0%