ตอนแรกที่เห็นคำโฆษณาว่า “รัน 70B ได้ด้วย GPU 4GB” ผมนึกว่าเป็น clickbait แต่พอไปเปิด repo จริงๆ พบว่ามันทำได้จริง แค่ต้องเข้าใจว่ามัน trade อะไรกับอะไร บทความนี้ไล่ให้ดูว่า AirLLM ทำงานยังไง เหมาะกับใคร และเหมาะกับงานแบบไหน
AirLLM คืออะไร?
AirLLM คือไลบรารี Python (pip install airllm) ที่ให้คุณรันโมเดลใหญ่ระดับ 70B พารามิเตอร์บน GPU consumer ธรรมดาที่มี VRAM แค่ 4GB ได้ โดยไม่ต้อง quantize, distill, หรือ prune โมเดลลง วิธีการคือมันจะเก็บ แค่ 1 layer ใน GPU ต่อครั้ง แล้วสตรีมชั้นอื่นๆ ผ่านเข้ามาตามลำดับ

ตัวเลขที่ทีมโปรเจกต์ระบุไว้บน repo เอง:
- Llama 70B → GPU 4GB
- Llama 3.1 405B → GPU 8GB
- DeepSeek-V3 671B → GPU ~12GB
- Kimi K3 2.8T → VRAM ต่ำกว่า 4GB
ทำไมมันรันโมเดล 70B บน 4GB ได้ (โดยไม่ต้อง quantize)?
Transformer 70B ประกอบด้วย layer หลักๆ ~80 ชั้น ถ้าเรามอง memory ในมุมของ inference ต่อ token ตัว weight ของโมเดลไม่จำเป็นต้องอยู่ใน VRAM ทั้งก้อน — มันต้องอยู่แค่ตอนที่ layer นั้นกำลังคำนวณ เท่านั้น
AirLLM ใช้ข้อเท็จจริงนี้ตรงๆ:
- Decompose model ตอนโหลดครั้งแรก มันจะแยก checkpoint ออกเป็นไฟล์ย่อยชั้นละไฟล์ (เก็บลง disk)
- Layer-by-layer forward pass ตอน generate token มันจะ:
- โหลด layer 1 จาก disk → GPU → คำนวณ → เก็บ activation
- ปล่อย layer 1 → โหลด layer 2 → คำนวณ → …
- ทำจนครบทุกชั้น = ได้ 1 token
- Repeat สำหรับ token ถัดไป
ผลคือ peak VRAM = ขนาด 1 layer + activation + KV cache ไม่ใช่ขนาดโมเดลทั้งก้อน

ข้อเสียที่ต้องยอมรับ: ช้ามาก
ของฟรีไม่มีในโลก การสตรีม layer ทีละชั้นจาก disk (หรือ RAM) เข้า VRAM ทุก token หมายความว่า bottleneck ย้ายจาก compute ไปที่ I/O ในทางปฏิบัติ:
- ถ้าโมเดลอยู่บน NVMe SSD → generate ได้ระดับหลักวินาที/token ไม่ใช่ token/วินาที
- ถ้าโหลด layer ค้าง RAM ไว้ก่อน → เร็วขึ้นเยอะแต่ต้องมี RAM มากพอเก็บทั้งโมเดล (70B fp16 ≈ 140GB)
- ตั้งแต่ v2.0 มี block-wise quantization (4-bit / 8-bit) ที่ทีมงานเคลมว่าเร่งได้ 3x โดยความแม่นยำลดเล็กน้อย
AirLLM เหมาะกับงาน batch offline / research / prototyping ที่รอได้ ไม่เหมาะกับ chatbot realtime หรือ production ที่ต้องการ latency ต่ำ ถ้าจะ serve user จริง ยังไงก็ต้องมี VRAM ให้พอกับโมเดล
AirLLM รองรับโมเดลอะไรบ้าง?
ครอบคลุมตระกูลหลักๆ ที่ใช้บ่อยผ่าน interface AutoModel เดียวกัน:
- Llama (2, 3, 3.1, 4)
- Qwen (1, 2, 2.5, 3)
- DeepSeek (V2, V3)
- Mistral / Mixtral
- Phi, Gemma, ChatGLM, Baichuan
รุ่นล่าสุด (v3.0+) เพิ่ม FP8 model support และปรับให้เข้ากับ architecture ใหม่ๆ ที่ออกในปี 2026
วิธีใช้งานเบื้องต้น
from airllm import AutoModel
model = AutoModel.from_pretrained("meta-llama/Meta-Llama-3-70B-Instruct")
input_text = ['อธิบาย attention mechanism สั้นๆ']
tokens = model.tokenizer(input_text, return_tensors="pt", padding=True)
output = model.generate(
tokens.input_ids.cuda(),
max_new_tokens=128,
)
print(model.tokenizer.decode(output[0]))

รอบแรกที่โหลดโมเดล AirLLM จะ decompose checkpoint ลง disk (ใช้พื้นที่พอๆ กับขนาดโมเดลต้นฉบับ) เตรียมพื้นที่ใน ~/.cache/huggingface/ ให้พอ ก่อนกดรันโมเดล 400B+
ควรใช้ AirLLM ตอนไหน?
จากที่ผมลองรันบน RTX 5060 Ti 16GB ของตัวเองมุมมองคือ:
- ใช้ — ตอนอยากลอง prompt โมเดลใหญ่ที่ปกติต้องเช่า cloud (ทดลอง, สอน, ทำ research, สรุปเอกสารยาวๆ ที่รอได้)
- ใช้ — ตอนต้อง evaluate โมเดลหลายๆ ตัวขนาดใหญ่บนเครื่องเดียว
- ไม่ใช้ — ตอนต้อง serve API มี latency budget
- ไม่ใช้ — ถ้าโมเดลขนาดที่ต้องการ fit ใน VRAM ได้อยู่แล้ว (ใช้ vLLM / llama.cpp เร็วกว่าเยอะ)
สำหรับคนที่มี GPU 8-16GB อยากลองเล่นโมเดล 70B+ โดยไม่จ่าย cloud ทุกครั้ง AirLLM คุ้มมาก แค่ต้องยอมรับว่ามันช้า และไม่ใช่ทางออกของ production
คำถามที่พบบ่อย
AirLLM ใช้งานฟรีไหม?
ฟรี เป็น open source บน GitHub (repo lyogavin/airllm) ติดตั้งผ่าน pip install airllm ใช้เชิงพาณิชย์ได้ แต่ตัวโมเดลที่โหลดมารันต่างหาก (Llama, Qwen, ฯลฯ) ต้องดู license ของแต่ละเจ้าเอง
รันช้าแค่ไหน? ขึ้นกับความเร็ว disk/RAM เพราะ bottleneck คือการ swap layer ไม่ใช่ compute โดยทั่วไปช้ากว่า inference ปกติมากๆ ระดับหลายวินาทีต่อ 1 token เมื่อโหลดจาก SSD ถ้าเปิด block-wise quantization ใน v2.0+ จะเร็วขึ้นราว 3 เท่า
ต่างจาก quantization (GGUF, AWQ, GPTQ) ยังไง? Quantization ลด precision ของ weight ให้เล็กลง (แล้ว fit ใน VRAM) — แลกความแม่นยำเล็กน้อยกับความเร็ว AirLLM ตรงข้าม: ไม่แตะ weight แต่โหลดทีละชั้น — แลกความเร็วกับการรักษาคุณภาพเต็ม 100% ทั้งสองวิธีใช้คู่กันได้ (v2.0+ AirLLM รองรับ quantization ในตัวด้วย)
ปลอดภัยไหม? โค้ดรันบนเครื่องเราเอง (offline inference) ไม่มีการส่งข้อมูลออกนอกเครื่อง ตัว repo เป็น open source ตรวจสอบได้ ข้อควรระวังคือระวังพื้นที่ disk เต็ม เพราะการ decompose โมเดลใหญ่ๆ กินพื้นที่หลายร้อย GB