ผมนั่งคุยกับเพื่อนที่เปิดคลินิกปลูกผม เขาบ่นว่าทุกวันต้องนั่งดูรูปคนไข้ วิเคราะห์ระดับผมร่วง แล้วก็เขียน email ตอบกลับ ซ้ำๆ เหมือนกันทุกวัน
“ถ้ามี AI ช่วยวิเคราะห์รูป แล้วเขียน email ให้เลยล่ะ?”
ผมก็เลยลองทำดู
🎯 โจทย์คืออะไร
คลินิกปลูกผมรับรูปคนไข้มาประเมินทุกวัน ขั้นตอนเดิมคือ:
- ดูรูป 6-10 รูป ต่อคนไข้
- วิเคราะห์ระดับ Norwood Scale (1-7)
- ประเมินจำนวน graft ที่ต้องปลูก
- เขียน email ตอบกลับลูกค้า
- เขียนรายงานให้ทีมแพทย์
ทำทุกวัน วันละหลายสิบเคส เหนื่อย และใช้เวลามาก
🛠️ เลือก Stack
เพื่อนไม่อยากส่งรูปคนไข้ขึ้น cloud (privacy concern) ดังนั้นต้อง Local LLM เท่านั้น
Hardware ที่มี:
- CPU: Intel i9-12900K
- RAM: 64GB
- GPU: RTX 4090 (24GB VRAM)
Models ที่เลือกใช้:
- qwen3-vl:30b – Vision model สำหรับวิเคราะห์รูป
- glm-4.7-flash – Text model สำหรับเขียน email
ทั้งคู่รันผ่าน Ollama บนเครื่อง local
🔥 ปัญหาแรก: GPU ไม่ทำงาน
ตอนแรกใช้ qwen3-vl:32b (20GB file) แต่พอโหลดจริงมันกลายเป็น 26GB
RTX 4090 มี VRAM แค่ 24GB
ผลคือ model ต้อง offload บางส่วนไป CPU ทำให้ช้ามาก CPU พุ่ง 60% แต่ GPU แค่ 18%
วิธีแก้: เปลี่ยนเป็น qwen3-vl:30b ซึ่งโหลดแล้วใช้ 21GB พอดี VRAM
NAME SIZE PROCESSOR
qwen3-vl:30b 21 GB 100% GPU ✅
เร็วขึ้นทันที
🔥 ปัญหาที่สอง: ภาพ Clinical ไม่ใช่ภาพปกติ
รูปที่คลินิกส่งมา ไม่ใช่รูปถ่ายปกติ
แต่เป็นรูปที่ใช้ headband รั้งผมไว้ หรือใช้ clips หนีบผมเปิดให้เห็นหนังศีรษะ
qwen งง คิดว่าคนไข้ใส่ที่คาดผมเป็นแฟชั่น 😅
วิธีแก้: เพิ่มใน prompt ว่า
“นี่คือภาพถ่ายเพื่อประเมินทางคลินิก ผมถูกจัดแต่งโดยใช้ headband หรือ clips เพื่อเปิดเผยบริเวณที่มีปัญหา ให้โฟกัสที่บริเวณหนังศีรษะที่ถูกเปิดออก”
หลังจากเพิ่มตรงนี้ qwen เข้าใจทันที
🔥 ปัญหาที่สาม: Thinking ยาวเกินจน Analysis หาย
qwen3 มี “thinking mode” จะคิดยาวๆ ก่อนตอบ
ปัญหาคือ ตั้ง num_predict: 4096 tokens
มันใช้ไปกับ thinking หมด พอถึง Analysis จริงๆ token หมดพอดี 😭
วิธีแก้: เพิ่มเป็น num_predict: 16384 สำหรับ multi-image
🔥 ปัญหาที่สี่: Norwood Scale ไม่แม่น
qwen รู้จัก Norwood Scale แบบกว้างๆ แต่ไม่รู้รายละเอียด เช่น Stage 3V คืออะไร หรือ Stage 4A ต่างจาก 4 ยังไง
วิธีแก้: สร้าง reference document จาก paper ทางการแพทย์
NORWOOD_QUICK_REFERENCE = """
| Stage | Description | Key Signs | Grafts |
|-------|-------------|-----------|--------|
| 3 | Early baldness | M/V shape | 1,500-2,000 |
| 3V | Stage 3 + crown | + vertex thinning | 2,000-3,000 |
| 4A | Variant | Uniform recession | 2,000-3,500 |
...
"""
ใส่ใน prompt ให้ qwen ใช้อ้างอิง
📱 UI ที่ได้
ใช้ Gradio ทำ web UI ง่ายๆ
- อัปโหลดรูปได้สูงสุด 10 รูป (Gallery component)
- เลือกภาษา (ไทย/English)
- เลือกประเภท email (ส่งลูกค้า / รายงานทีมแพทย์)
- เลือก model สำหรับเขียน email
รัน python app.py แล้วเปิด localhost:7860 ได้เลย
💰 ต้นทุน
| รายการ | ราคา |
|---|---|
| Ollama | ฟรี |
| qwen3-vl:30b | ฟรี |
| glm-4.7-flash | ฟรี |
| Gradio | ฟรี |
| รวม | 0 บาท |
(ถ้านับ hardware ก็ต้องมี GPU ดีๆ หน่อย)
📁 โครงสร้างโปรเจค
xxx Clinic/Emailing/
├── app.py # Main Gradio UI
├── config.py # Settings (models, pricing)
├── ollama_client.py # Ollama API wrapper
├── prompts.py # AI prompts
├── norwood_reference.py # Norwood Scale data
└── requirements.txt # Dependencies
🎬 ผลลัพธ์
Input: รูปคนไข้ 6 รูป (หลายมุม)
Output:
ระดับ Norwood Scale: 3V
- Frontal: ถอยร่นที่ขมับทั้งสองข้าง
- Crown: เริ่มบางที่กระหม่อม
- Donor Area: หนาแน่นดี
จำนวน Graft ที่แนะนำ: 2,000-2,500
วิธีการรักษา: FUE
แล้วก็มี email พร้อมส่งลูกค้า + รายงานทางการแพทย์
🤔 สิ่งที่เรียนรู้
- Local LLM ทำได้จริง – ไม่ต้องพึ่ง cloud ถ้ามี GPU ดีพอ
- Vision model ต้อง context – บอก AI ให้ชัดว่ารูปคืออะไร
- Reference data สำคัญ – ใส่ตารางอ้างอิงใน prompt ช่วยได้มาก
- Token limit ต้องระวัง – โดยเฉพาะ model ที่มี thinking mode
🚀 Next Steps
- เพิ่ม Email Style Learning (ให้ AI เรียนรู้ style การเขียน email ของคลินิก)
- ทำ batch processing สำหรับหลายคนไข้พร้อมกัน
- เพิ่ม export เป็น PDF
🔗 Links
- Ollama – รัน LLM บนเครื่อง local
- Gradio – สร้าง UI ง่ายๆ สำหรับ ML
- Norwood Scale – Wikipedia
ถ้าใครมีโจทย์คล้ายๆ กัน (วิเคราะห์รูป + สร้าง document) ลองเอาไปประยุกต์ได้เลยครับ
Local LLM ปี 2026 ทำได้เยอะกว่าที่คิดมาก 🚀

