ข้ามไปเนื้อหาหลัก

เจาะลึกการรัน AI บนซีพียูล้วน: ข้อจำกัดทางฮาร์ดแวร์และความเร็วสูงสุดที่คาดหวังได้

ทำความเข้าใจขีดจำกัดความเร็วของ Local AI บนซีพียูและแรม พร้อมวิธีคำนวณโทเค็นต่อวินาทีด้วยตัวเองแบบง่ายๆ

เรียบเรียงโดย AI
Inewgen
13 Aug 2026ที่มา: Dev.to5 นาทีอ่าน (0 ครั้ง)
แชร์
เจาะลึกการรัน AI บนซีพียูล้วน: ข้อจำกัดทางฮาร์ดแวร์และความเร็วสูงสุดที่คาดหวังได้

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง

ขนาดตัวอักษร
  • ความเร็วการรัน AI บนซีพียูถูกจำกัดด้วยแบนด์วิดท์แรม ไม่ใช่จำนวนคอร์
  • สามารถคำนวณขีดจำกัดสูงสุด (Ceiling) ได้จากแบนด์วิดท์แรมหารด้วยขนาดไฟล์โมเดล
  • ระยะเวลา Prefill ของพรอมต์ยาวๆ บนซีพียูใช้เวลาประมวลผลนานกว่าความเร็วในการสร้างคำตอบ

การค้นหาตัวเลขความเร็วโทเค็นต่อวินาที (Tokens per second) ที่แน่นอนสำหรับการรันโมเดล AI บนแรมเครื่องของคุณเองนั้นเป็นเรื่องที่ไม่มีใครให้คำตอบที่แม่นยำได้ เว้นแต่จะทำการทดสอบบนเครื่องนั้นๆ หรือมีการอ้างอิงตัวเลขขึ้นมาลอยๆ อย่างไรก็ตาม เราสามารถคำนวณหาขีดจำกัดสูงสุด (Ceiling) ได้อย่างแม่นยำด้วยการใช้ตัวเลขเพียงสองชุดที่สามารถตรวจสอบได้ภายในเวลาเพียงห้าสาที

การทำงานของคำขอ (Request) แบ่งออกเป็นสองช่วงหลัก ได้แก่ เฟส Prefill ที่พรอมต์ทั้งหมดจะถูกส่งผ่านโมเดลในรอบประมวลผลคู่ขนานรอบเดียว และเฟส Decode ที่โทเค็นผลลัพธ์แต่ละตัวต้องใช้รอบประมวลผลแยกต่างหาก ซึ่งทั้งสองเฟสนี้ถูกจำกัดด้วยปัจจัยที่แตกต่างกันอย่างสิ้นเชิง การนำเอาปัจจัยทั้งสองมารวมกันจึงเป็นสาเหตุหลักที่ทำให้คำแนะนำเรื่องการรัน AI บนซีพียูส่วนใหญ่ใช้งานไม่ได้จริง

เฟส Decode คือสิ่งที่คนส่วนใหญ่มักบ่นว่าโมเดลรันบนเครื่องท้องถิ่น (Local model) ได้ช้า ในการผลิตโทเค็นออกมาหนึ่งตัว ซีพียูจำเป็นต้องอ่านน้ำหนัก (Weights) ทุกตัวที่ active อยู่ในแรมเข้าสู่แคช ทำการคำนวณจำนวนเล็กน้อยกับน้ำหนักแต่ละตัว แล้วจึงย้ายไปทำตัวถัดไป ที่แบทช์ไซด์ (Batch size) เท่ากับหนึ่ง จะไม่มีการแชร์หรือเกลี่ยต้นทุนการอ่านข้อมูลนี้ การผ่านข้อมูลน้ำหนักทั้งหมดหนึ่งรอบจึงแลกมาด้วยโทเค็นแค่ตัวเดียวพอดี ทำให้เฟส Decode ถูกจำกัดโดยแบนด์วิดท์ของหน่วยความจำ (Memory bandwidth) ในขณะที่หน่วยประมวลผลทางคณิตศาสตร์ส่วนใหญ่ต้องนั่งรอข้อมูลอย่างไร้ประโยชน์

หากโทเค็นหนึ่งตัวต้องอาศัยการอ่านค่าน้ำหนักหนึ่งครั้ง สูตรการคำนวณจึงเป็นดังนี้:

  • Tokens/second <= Usable memory bandwidth (bytes/s) / Weight bytes

ตัวเศษในสมการสามารถหาได้จากมาตรฐาน DDR ที่เครื่องของคุณใช้งาน ช่องสัญญาณของ DDR4 หรือ DDR5 มีความกว้าง 64 บิต จึงสามารถเคลื่อนย้ายข้อมูลได้ 8 ไบต์ต่อการส่งสัญญาณหนึ่งครั้ง โดยตัวเลขที่ปรากฏในชื่อคืออัตราการส่งข้อมูล ตัวอย่างเช่น:

  • DDR4-3200 แบบช่องสัญญาณเดี่ยว (One channel): 3200e6 transfers/s x 8 B = 25.6 GB/s
  • DDR4-3200 แบบสองช่องสัญญาณ (Dual channel): 51.2 GB/s
  • DDR5-5600 แบบ DIMM เดี่ยว: 5600e6 transfers/s x 8 B = 44.8 GB/s
  • DDR5-5600 แบบสอง DIMM: 89.6 GB/s

ส่วนตัวส่วนในสมการคือขนาดของไฟล์โมเดลบนดิสก์ ซึ่งสามารถตรวจสอบได้จากรายการในที่เก็บข้อมูล (Repository listing) ก่อนทำการดาวน์โหลด ขนาดไฟล์นี้ถือเป็นตัวแทนที่ดีเยี่ยมสำหรับปริมาณไบต์ที่ถูกสตรีมต่อหนึ่งโทเค็นในโมเดลแบบหนาแน่น (Dense model) เนื่องจากไฟล์ GGUF เกือบทั้งหมดประกอบด้วยข้อมูลเทนเซอร์ (Tensor data)

computer processor CPU chip motherboard

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง

42.52 GBขนาดไฟล์ Meta-Llama-3.1-70B (Q4_K_M)
2 t/sขีดจำกัดสูงสุดบน DDR5 แบบ Dual-channel

สำหรับฝั่ง Apple ทางบริษัทได้เปิดเผยตัวเลขแบนด์วิดท์ของหน่วยความจำแบบรวม (Unified memory bandwidth) ออกมาโดยตรง ในการประกาศเปิดตัว M4 Pro และ M4 Max เมื่อเดือนตุลาคม 2024 ตัวเลขที่ระบุคือ 273 GB/s สำหรับ M4 Pro และ 546 GB/s สำหรับ M4 Max ซึ่งนี่คือเหตุผลหลักประการเดียวที่ทำให้ Apple Silicon ทำงานในการรัน Local inference ได้ดีเยี่ยม ไม่ใช่เพราะตัวซีพียู แต่เป็นเพราะตัวบัสรับส่งข้อมูล

ไม่อยากพลาดข่าวใหม่?

สมัครรับสรุปข่าวสารใหม่ทางอีเมล ไม่บ่อยจนรำคาญ

โฆษณา

การทำความเข้าใจเรื่อง Memory bandwidth ช่วยให้เราประเมินฮาร์ดแวร์ได้อย่างสมจริง การอัปเกรดจำนวนคอร์ของซีพียูจะไม่ช่วยเพิ่มความเร็วในการรันโมเดลขนาดใหญ่ หากแบนด์วิดท์ของแรมยังคงเป็นคอขวด นี่คือเหตุผลที่ชิปตระกูล Apple M-series หรือพีซีที่ใช้แรมความเร็วสูงพิเศษได้เปรียบอย่างมากในการทำ AI แบบออฟไลน์

เมื่อนำแบนด์วิดท์มาหารด้วยขนาดไฟล์จริงที่เผยแพร่บน Hugging Face GGUF repository (ข้อมูลอัปเดตเมื่อวันที่ 2026-08-11) จะได้ขีดจำกัดสูงสุดดังนี้ โมเดล Phi-3.5-mini-instruct ขนาด 2.39 GB ให้ความเร็วสูงสุด 21.4 โทเค็นต่อวินาทีบน DDR4-3200 และสูงถึง 228.1 โทเค็นต่อวินาทีบน M4 Max ในขณะที่โมเดลขนาดใหญ่อย่าง Meta-Llama-3.1-70B-Instr ขนาด 42.52 GB จะทำความเร็วได้สูงสุดเพียง 1.2 โทเค็นต่อวินาทีบน DDR4-3200 และสูงสุด 12.8 โทเค็นต่อวินาทีบน M4 Max

พึงสังเกตว่าตารางด้านล่างสุดของข้อมูลคือส่วนที่มีประโยชน์ที่สุด โมเดลขนาด 70B ที่ระดับ Q4_K_M บนเดสก์ท็อปแรม DDR5 แบบ Dual-channel จะไม่สามารถวิ่งเกินกว่าประมาณ 2 โทเค็นต่อวินาทีได้เลย ไม่ว่าคุณจะใช้ซีพียูทรงพลังขนาดไหนก็ตาม เนื่องจากข้อมูลขนาด 42.5 กิกะไบต์จะต้องวิ่งผ่านบัสหน่วยความจำสำหรับทุกๆ โ통เค็นที่ถูกสร้างขึ้น และนี่คือสาเหตุที่ทำให้หลายคนสรุปว่าการรัน Local inference นั้นใช้งานจริงไม่ได้ ทั้งที่จริงแล้วปัญหาคือสัดส่วนฮาร์ดแวร์ที่ไม่แมตช์กันต่างหาก

ในทางกลับกัน เฟส Prefill ไม่ได้ถูกจำกัดด้วยแบนด์วิดท์ เนื่องจากพรอมต์ทั้งหมดถูกโหลดเข้ามาพร้อมกัน และการอ่านค่าน้ำหนักทุกตัวจะถูกนำกลับมาใช้ซ้ำในทุกๆ โทเค็นของพรอมต์นั้น เฟสนี้ถูกจำกัดด้วยความสามารถในการคำนวณทางคณิตศาสตร์ (Arithmetic) ที่ระดับประมาณสองคำสั่งการคำนวณเลขทศนิยมลอยตัว (FLOP) ต่อพารามิเตอร์ต่อหนึ่งโทเค็น

ผลลัพธ์ในทางปฏิบัติคือ การรัน AI บนซีพียูล้วนจะประสิทธิภาพตกลงอย่างรวดเร็วตามความยาวของพรอมต์ ซึ่งตรงกันข้ามกับความรู้สึกที่เราคุ้นเคยจากการใช้งานผ่าน Hosted API พรอมต์สั้นๆ กับโมเดลขนาดเล็กจะทำงานได้อย่างสบายๆ แต่เอกสารขนาดยาวไม่ใช่เรื่องง่าย และไม่มีระดับการทำ Quantization ใดที่จะแก้ปัญหานี้ได้ เนื่องจากต้นทุนในเฟส Prefill จะเพิ่มขึ้นตามจำนวนพารามิเตอร์และโทเค็น ไม่ใช่ตามจำนวนบิตต่อน้ำหนัก

ที่มา: Dev.to

ความคิดเห็น

แสดงความคิดเห็น
0/2000

พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้