DEV Community

Cover image for รัน Typhoon 2.5 บน Colab ฟรี: จาก 30B (ไม่ไหว) สู่ 4B "Sweet Spot"
Warun C. ⚡
Warun C. ⚡ Subscriber

Posted on

รัน Typhoon 2.5 บน Colab ฟรี: จาก 30B (ไม่ไหว) สู่ 4B "Sweet Spot"

สวัสดีครับ! นี่คือบทความสรุปการเดินทางของเราในการพยายามรันโมเดล Typhoon 2.5 (ทั้ง 30B และ 4B) บน Google Colab Free Tier ครับ เราได้ลองผิดลองถูกมาหลายวิธี และนี่คือบทเรียนทั้งหมดที่เราพบ ตั้งแต่ความล้มเหลวไปจนถึง Config ที่ดีที่สุดครับ

อ่านฉบับเต็ม...

บทเรียนที่ 1: Typhoon 30B "ใหญ่เกินไป" สำหรับ Colab ฟรี

ความฝันของเราคือการรันโมเดลเรือธง 30B แต่ความจริงก็คือ:

  • Ollama (บน T4 GPU): รอดแบบเฉียดฉิว! ใช้ VRAM 14.3 GB จาก 15 GB ที่มีให้ นี่คือการรัน "จนเต็มขีดจำกัด" ของ T4

  • Transformers (เขียนโค้ด Python): ล่มโดยสิ้นเชิง!

    • บน T4 (GPU): เจอปัญหา "Disk is almost full" (Disk 112GB ไม่พอโหลดโมเดล 60-70GB)
    • บน TPU (v5e-1): แก้ปัญหา Disk ได้ แต่เจอ "Time Out" (แค่โหลดโมเดลก็ 40 นาที จนค้าง)

สรุป Part 1: ถ้าอยากลอง 30B บน Colab ฟรี, Ollama คือทางเดียว (แต่ก็เสี่ยงมาก) ส่วน transformers นั้น "เป็นไปไม่ได้"

บทเรียนที่ 2: Typhoon 4B "คุณภาพ" คือคำตอบ เมื่อ 30B ไม่รอด เราจึงหันมาที่ "น้องเล็ก" 4B แต่คำถามคือ "จำเป็นต้องใช้ GPU T4 ไหม?"

  • Ollama (บน CPU Runtime): รันได้! ใช้ System RAM ~3.5GB และ CPU 100%

...แต่ (จุดเปลี่ยน): เมื่อทดสอบ เราพบว่า "คุณภาพคำตอบ (Quality) ดร็อปอย่างชัดเจน" คำตอบมักจะสั้น, เหตุผลเพี้ยน, หรือไม่ดีเท่าที่ควร

สรุป Part 2: การรันบน CPU ทำได้แค่ "ให้ติด" แต่ถ้าคุณต้องการ "คุณภาพ" ที่แท้จริง... คุณต้องใช้ T4 GPU และนี่คือวิธีที่เราทำ

3. "พระเอก" ของงาน: 4-bit Quantization (โค้ด Transformers)

นี่คือวิธีรัน 4B บน T4 GPU เพื่อให้ได้ "คุณภาพสูงสุด" โดยใช้ VRAM น้อยที่สุดครับ

Quantization คืออะไร? คือการ "บีบอัด" โมเดล (เหมือนบีบไฟล์ RAW เป็น .JPG) เราใช้ 4-bit Quantization เพื่อลดขนาดโมเดลใน VRAM ลง 4 เท่า! (จาก 16-bit)

นี่คือโค้ดหลักที่เราใช้:

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig

# 1. เลือกโมเดล 4B
model_id = "scb10x/typhoon2.5-qwen3-4b"

# 2. นี่คือหัวใจสำคัญ! (เราจะเทียบ NF4 vs FP4)
quantization_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4", # หรือ "fp4"
    bnb_4bit_compute_dtype=torch.bfloat16
)

# 3. โหลดโมเดล
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    quantization_config=quantization_config,
    torch_dtype=torch.bfloat16,
    device_map="auto"
)
Enter fullscreen mode Exit fullscreen mode

วิธีนี้ ทำให้เราใช้ VRAM ไปเพียง ~4.0 GB (จากการทดลองใน Part 2) และได้คุณภาพคำตอบที่ดีเยี่ยม!

4. บทเรียนที่ 3: Benchmark 8-bit vs 4-bit... ใครชนะ?

เรารู้ว่า 4-bit ดี แต่แบบไหนดีที่สุด? เราจึงทดสอบ 3 Configs บน T4 GPU (จากผลทดลองจริง):

🏆 บทสรุป (The Final Verdict): Config ที่ดีที่สุด

4-bit Quantization ชนะ 8-bit ขาดลอย!

สรุป Part 3: “Benchmark” เทียบ 8-bit vs 4-bit (NF4 vs FP4)

  • เร็วกว่า 2.5 เท่า! (12 Tok/s vs 4.6 Tok/s)
  • ประหยัด VRAM กว่า 35% (2.71 GB vs 4.19 GB)

ศึกชิงที่ 1: NF4 vs FP4

  • VRAM: ใช้เท่ากัน (2.71 GB)
  • Speed: FP4 เร็วกว่า NF4 เล็กน้อย (ประมาณ 3-4%)
  • Quality: NF4 (Normal Float) ถูกออกแบบมาเพื่อ "รักษาคุณภาพ" ได้ดีกว่า FP4 (Float Point) ที่เน้น "ความเร็ว"

คำแนะนำสุดท้าย: สำหรับ Google Colab T4:

4-bit NF4 (bnb_4bit_quant_type="nf4") คือ "จุดสมดุล" (The Sweet Spot) ที่ดีที่สุด

คุณจะได้โมเดลที่ ประหยัด VRAM ที่สุด (2.71 GB), เร็วมาก (11.68 Tok/s), และ รักษาคุณภาพคำตอบ ไว้ได้ใกล้เคียงต้นฉบับที่สุดครับ!

Top comments (0)