คำสำคัญ: Agentic LLM, KV Cache, PD Separation, Storage I/O, Load Balancing
ในช่วงไม่กี่ปีที่ผ่านมา รูปแบบการประยุกต์ใช้โมเดลภาษาขนาดใหญ่ (LLM) กำลังเปลี่ยนแปลงอย่างลึกซึ้ง LLM ในยุคแรกส่วนใหญ่ทำหน้าที่เป็นแชทบอทที่มีการโต้ตอบจำกัดและบริบทค่อนข้างสั้น อย่างไรก็ตาม ด้วยความก้าวหน้าทางเทคโนโลยี LLM กำลังวิวัฒนาการอย่างรวดเร็วไปสู่ระบบเอเจนต์ (Agent) ที่สามารถวางแผนด้วยตนเอง เรียกใช้เครื่องมือ และแก้ไขงานจริงได้ ระบบประเภทนี้ทำงานร่วมกับสภาพแวดล้อม (เช่น โค้ดอินเทอร์พรีเตอร์ เบราว์เซอร์ เทอร์มินัล) ผ่านการโต้ตอบหลายรอบเพื่อทำงานที่ซับซ้อน เช่น การซ่อมแซมโค้ดอัตโนมัติ การดำเนินการเว็บอัตโนมัติ เป็นต้น
การเปลี่ยนแปลงกระบวนทัศน์จาก “มนุษย์-LLM” ไปสู่ “มนุษย์-LLM-สภาพแวดล้อม” นี้ สร้างความท้าทายใหม่ให้กับระบบการอนุมาน LLM ในเวิร์กโหลดของเอเจนต์ งานหนึ่งงานอาจประกอบด้วยการโต้ตอบหลายสิบหรือหลายร้อยรอบ บริบทสะสมเพิ่มขึ้นเรื่อยๆ และมีความยาวถึงระดับล้านโทเค็น อย่างไรก็ตาม โทเค็นใหม่ที่เพิ่มในแต่ละรอบมีน้อยมาก — โดยปกติมีเพียงไม่กี่ร้อยโทเค็น ซึ่งหมายความว่าบริบทส่วนใหญ่ (มากกว่า 95%) ถูกนำกลับมาใช้ซ้ำ และสามารถอ่านได้โดยตรงจาก KV Cache โดยไม่ต้องคำนวณใหม่ สิ่งนี้นำไปสู่การเปลี่ยนแปลงที่สำคัญ: จุดคอขวดของการอนุมานเปลี่ยนจากการแพร่ไปข้างหน้า (forward propagation) ที่เข้มข้นด้านการคำนวณ ไปเป็นการโหลด KV Cache ที่เข้มข้นด้าน I/O

อย่างไรก็ตาม สถาปัตยกรรมการอนุมาน LLM กระแสหลักที่มีอยู่ในปัจจุบัน โดยเฉพาะสถาปัตยกรรมแยกส่วนการเติมล่วงหน้าและการถอดรหัส (PD Separation) ได้เผยให้เห็นปัญหาความไม่สมดุลของทรัพยากรที่รุนแรงเมื่อจัดการกับเวิร์กโหลดที่เข้มข้นด้าน I/O แบบนี้ บทความนี้จะวิเคราะห์งานวิจัยล่าสุดจากมหาวิทยาลัยปักกิ่ง มหาวิทยาลัยชิงหวา และ DeepSeek-AI ที่มีชื่อว่า “DualPath: Breaking the Storage I/O Bottleneck for Agentic LLM Inference via Dual-Path KV Cache Loading” ระบบ DualPath ที่เสนอในบทความนี้ ผ่านกลไกการโหลด KV Cache แบบ “สองเส้นทาง” (Dual-Path) ที่ใหม่และชาญฉลาด ใช้ประโยชน์จากแบนด์วิดท์ทรัพยากรที่ไม่ได้ใช้งานในระบบอย่างชาญฉลาด ทำให้ได้ปริมาณงานการอนุมานแบบออฟไลน์เพิ่มสูงขึ้นถึง 1.87 เท่า ชี้แนะทิศทางใหม่สำหรับการสร้างระบบการอนุมานเอเจนต์ที่มีประสิทธิภาพ
1. การวิเคราะห์จุดคอขวด I/O ของสถาปัตยกรรม PD ที่มีอยู่
ทำไมระบบการอนุมาน LLM ที่มีอยู่ถึงประสบปัญหาจุดคอขวดประสิทธิภาพเมื่อจัดการกับเวิร์กโหลดเอเจนต์หลายรอบ? อาการเฉพาะคืออะไร?
โมเดลภาษาขนาดใหญ่สมัยใหม่กำลังวิวัฒนาการจากการแชทแบบรอบเดียวไปสู่แอปพลิเคชันเอเจนต์หลายรอบ เช่น ผู้ช่วยเขียนโค้ด เอเจนต์ทำงานอัตโนมัติ เป็นต้น แอปพลิเคชันเหล่านี้มีลักษณะคือ บริบทยาว เพิ่มเติมสั้น และโต้ตอบหลายรอบ

จากตัวอย่างเส้นทางการผลิตที่รวบรวมในบทความ โดยเฉลี่ยแต่ละรอบเพิ่มโทเค็นเพียง 429 โทเค็น ในขณะที่ความยาวบริบทสูงถึง 32.7k อัตราการฮิต KV Cache มากกว่า 95% ซึ่งหมายความว่าการอนุมานแต่ละครั้งต้องคำนวณโทเค็นใหม่เพียงเล็กน้อย แต่ต้องโหลด KV Cache ของบริบทเกือบทั้งหมดจากที่เก็บข้อมูล

ในสถาปัตยกรรมหลัก แยกส่วนการเติมล่วงหน้าและการถอดรหัส (PD-disaggregated) เอนจินเติมล่วงหน้า (PE) มีหน้าที่โหลด KV Cache ของโทเค็นที่ฮิตและดำเนินการคำนวณเติมล่วงหน้า จากนั้นส่ง KV Cache ที่สมบูรณ์ผ่าน RDMA ไปยังเอนจินถอดรหัส (DE) เพื่อสร้างแบบถดถอยอัตโนมัติ อย่างไรก็ตาม การออกแบบนี้ทำให้ แรงกดดัน I/O ของที่เก็บข้อมูลทั้งหมดรวมอยู่ที่ด้าน PE:
* แบนด์วิดท์ของการ์ดเครือข่ายที่เก็บข้อมูล (SNIC) ของ PE อิ่มตัวอย่างรวดเร็ว
* ในขณะที่ SNIC ของด้าน DE ว่างเป็นเวลานาน
ดังแสดงในรูปที่ 1 (ซ้าย) ความอิ่มตัวที่ไม่สมมาตรของแบนด์วิดท์เครือข่ายที่เก็บข้อมูล กลายเป็นจุดคอขวดพื้นฐานของปริมาณงานระบบ

นอกจากนี้ แนวโน้มการพัฒนาฮาร์ดแวร์ทำให้ความขัดแย้งนี้รุนแรงขึ้น: จากสถาปัตยกรรม NVIDIA Ampere ถึง Blackwell อัตราส่วนของ I/O ต่อความสามารถในการคำนวณลดลง 14.4 เท่า การเติบโตของแบนด์วิดท์เครือข่ายและความจุ HBM ล้าหลังการเติบโตของพลังการคำนวณมาก ทำให้จุดคอขวด I/O ยิ่งเด่นชัดขึ้น

รูปที่ 3 | ซ้าย: แนวโน้มการพัฒนาฮาร์ดแวร์ GPU ของ NVIDIA; ขวา: ปริมาณงานโทเค็นสัมพัทธ์ภายใต้ขนาดแบทช์คำขอที่แตกต่างกัน (แต่ละคำขอมีบริบท 30K และโทเค็นใหม่ 300 โทเค็น) รูปซ้ายเผยให้เห็นความไม่สมดุลของการวิวัฒนาการฮาร์ดแวร์ — พลังการคำนวณ GPU (FLOPS) เพิ่มขึ้น 28.8 เท่า ในขณะที่แบนด์วิดท์การ์ดเครือข่ายและความจุ HBM เพิ่มขึ้นเพียง 2.0 เท่าและ 2.4 เท่า ความสามารถ I/O ที่ล้าหลังทำให้การอนุมานเอเจนต์ตกอยู่ในสถานการณ์ “ทรัพยากรการคำนวณว่างเปล่า”; รูปขวาแสดงว่าการเพิ่มขนาดแบทช์สามารถเพิ่มปริมาณงานได้อย่างมีนัยสำคัญ แต่เนื่องจากข้อจำกัดของความจุ HBM และแบนด์วิดท์การ์ดเครือข่าย สถาปัตยกรรมแบบดั้งเดิมจึงใช้ประโยชน์จากแบทช์ประมวลผลขนาดใหญ่ได้ยาก
ตารางที่ 1 แสดง “อัตราส่วนแคช-การคำนวณ” (จำนวน GB ของ KV Cache ที่ต้องโหลดต่อการคำนวณ 1 PFLOP) ของโมเดลต่างๆ สำหรับโมเดล DeepSeek-V3.2 660B อัตราส่วนนี้สูงถึง 13-36 GB/PFLOP ซึ่งหมายความว่าการขาดแคลนแบนด์วิดท์ที่เก็บข้อมูลจะทำให้ GPU ว่างโดยตรง

ตารางที่ 1 | อัตราส่วนแคช-การคำนวณภายใต้ความยาวบริบทที่แตกต่างกัน (16K–64K) เมื่อความยาวโทเค็นใหม่คือ 429 เว้นแต่จะระบุไว้เป็นอย่างอื่น ประเภทข้อมูลของ Key-Value Cache (KV-Cache) ใช้ความแม่นยำ FP8 เป็นค่าเริ่มต้น ตารางนี้วัดอัตราส่วนความต้องการ I/O และการคำนวณของโมเดลใหญ่ต่างๆ ค่าที่สูงขึ้นหมายถึงแรงกดดัน I/O ของการอนุมานโมเดลมากขึ้น การออกแบบความสนใจแบบเบาบางของ DeepSeek-V3.2 มีอัตราส่วนต่ำที่สุด จุดคอขวด I/O น้อยที่สุด; ในขณะที่ Qwen2.5-32B ความแม่นยำ FP16 มีอัตราส่วนสูงที่สุด การใช้แบนด์วิดท์ที่เก็บข้อมูลสูงกว่าโมเดลอื่นมาก ซึ่งอธิบายว่าโมเดลแบบหนาแน่น (dense model) ในการอนุมานเอเจนต์ได้รับผลกระทบจากข้อจำกัด I/O ได้ง่ายกว่า
โดยสรุป อัตราการฮิตแคชสูงของเวิร์กโหลดเอเจนต์รวมกับโหมดการโหลดแบบรวมศูนย์ของสถาปัตยกรรม PD Separation ทำให้ SNIC ด้านการเติมล่วงหน้าอิ่มตัว ในขณะที่การ์ดเครือข่ายด้านการถอดรหัสว่าง ปริมาณงานระบบโดยรวมถูกจำกัดโดย Storage I/O แทนที่จะเป็นการคำนวณ
2. แนวคิดหลักของการโหลดสองเส้นทาง
การสังเกตหลักของ DualPath คือ: ในสถาปัตยกรรม PD Separation แบนด์วิดท์ของ SNIC ของ PE กลายเป็นจุดคอขวด ในขณะที่ SNIC ของ DE ว่างเป็นเวลานาน ในเวลาเดียวกัน เครือข่ายการคำนวณ (เช่น InfiniBand) มีแบนด์วิดท์รวมสูงกว่าเครือข่ายที่เก็บข้อมูล และรูปแบบการไหลของข้อมูลเป็นแบบเป็นช่วง (การสื่อสารแบบรวมกลุ่มเกิดขึ้นแบบทันทีทันใดในระดับมิลลิวินาทีย่อย)
ดังนั้น DualPath จึงเสนอว่า: สามารถใช้แบนด์วิดท์ที่เก็บข้อมูลที่ว่างของ DE และแบนด์วิดท์ที่เหลือของเครือข่ายการคำนวณ สร้างเส้นทางที่สอง: ที่เก็บข้อมูล → เอนจินถอดรหัส → เอนจินเติมล่วงหน้า โดยส่งผ่าน RDMA ผ่านเครือข่ายการคำนวณ
ดังแสดงในรูปที่ 1 (ขวา) DualPath แนะนำ การโหลดสองเส้นทาง:

รูปที่ 1 | จุดคอขวดที่มีอยู่ (ซ้าย) และโซลูชัน DualPath (ขวา) รูปซ้ายแสดงปัญหาหลักของสถาปัตยกรรม PD Separation แบบดั้งเดิม — แบนด์วิดท์ SNIC ของ PE อิ่มตัว (อัตราการใช้ 100%) ในขณะที่ SNIC ของ DE ว่างเป็นเวลานาน ส่งผลให้อัตราการใช้ GPU ไม่เพียงพอ; รูปขวา DualPath เปิดใช้งานแบนด์วิดท์ SNIC ของ DE ผ่านการโหลดสองเส้นทาง ร่วมกับการส่งผ่านความเร็วสูง RDMA ทำให้โหลด I/O ของที่เก็บข้อมูลกระจายอย่างสม่ำเสมอ ทำลายจุดคอขวดแบนด์วิดท์ด้านการเติมล่วงหน้าโดยสิ้นเชิง
โดยเฉพาะสำหรับ PE และ DE:
- เส้นทางการอ่าน PE (เส้นทางดั้งเดิม): KV Cache ถูกโหลดจากที่เก็บข้อมูลไปยัง PE โดยตรง จากนั้น PE จะส่งต่อไปยัง DE
- เส้นทางการอ่าน DE (เส้นทางใหม่): KV Cache ถูกโหลดไปยัง DE ก่อน จากนั้น DE จะส่งผ่านเครือข่ายการคำนวณโดยใช้ RDMA ไปยัง PE
ด้วยการเลือกเส้นทางแบบไดนามิก DualPath รวมแบนด์วิดท์ SNIC ของเอนจินทั้งหมด (รวมทั้ง PE และ DE) เข้าด้วยกัน เปลี่ยน Storage I/O จากจุดคอขวดเดียวให้เป็นพูลทรัพยากรที่สามารถจัดตารางได้ทั่วโลก จึงขจัดความอิ่มตัวที่ไม่สมมาตร
สัญชาตญาณทางทฤษฎี: สมมติว่ามีโหนด PE จำนวน (P) โหนด และโหนด DE จำนวน (D) โหนด แบนด์วิดท์ SNIC ของแต่ละโหนดคือ (B_s) ((B_c) คือแบนด์วิดท์ของการ์ดเครือข่ายการคำนวณเดี่ยว)
- ในสถาปัตยกรรมดั้งเดิม แบนด์วิดท์การอ่านที่เก็บข้อมูลที่มีประสิทธิผลรวมของระบบถูกจำกัดโดยแบนด์วิดท์รวมของด้าน PE นั่นคือ (P times B_s)
- DualPath ผ่านการแนะนำเส้นทางการอ่าน DE เปิดใช้งานแบนด์วิดท์ที่เก็บข้อมูลของด้าน DE ที่ว่างอยู่เดิม ทำให้แบนด์วิดท์ที่เก็บข้อมูลทั้งหมดที่ใช้ได้ของระบบเพิ่มจาก (P times B_s) เป็น ((P + D) times B_s) ผ่านการจัดตารางอัจฉริยะ DualPath สามารถกระจายโหลด Storage I/O ไปยัง SNIC ของโหนดทั้งหมดอย่างสม่ำเสมอ จึงทำลายจุดคอขวดด้านการเติมล่วงหน้า ทำให้ปริมาณงานรวมของระบบมีโอกาสเข้าใกล้ขีดจำกัดบนของแบนด์วิดท์รวมที่เพิ่มขึ้นนี้
3. คำอธิบายโดยละเอียดของการไหลของข้อมูลการโหลดสองเส้นทาง
DualPath จัดสรรบัฟเฟอร์ขนาดเล็ก (PE Buffer และ DE Buffer) ใน DRAM โฮสต์ของ PE และ DE ตามลำดับ และใช้เค้าโครงบล็อก KV Cache สองประเภท:
- บล็อกเต็ม (Full Block): ประกอบด้วย KV Cache ของทุกชั้น ใช้สำหรับโต้ตอบกับที่เก็บข้อมูล
- บล็อกชั้น (Layer Block): ประกอบด้วย KV Cache ของชั้นเดียวเท่านั้น ใช้สำหรับการส่งผ่านสตรีมระหว่าง PE, DE และ GPU เพื่อให้สอดคล้องกับเทคนิค การเติมล่วงหน้าแบบแบ่งชั้น (layerwise prefill) นั่นคือ โหลด คำนวณ และปล่อย HBM ทีละชั้น เพื่อ突破ข้อจำกัดความจุ HBM

รูปที่ 4 | แผนภาพการโหลดสองเส้นทาง ตัวจัดตารางกำหนดปริมาณการไหลของข้อมูลระหว่างสองเส้นทางแบบไดนามิก รูปประกอบด้วยเส้นทางหลักสองเส้นทาง: เส้นทางดั้งเดิม “ที่เก็บข้อมูล→PE” (a) และเส้นทางนวัตกรรม “ที่เก็บข้อมูล→DE→PE” (b) หลังจาก DE อ่าน KV Cache แล้ว จะส่งผ่านเครือข่ายการคำนวณด้วยเทคโนโลยี RDMA ความเร็วสูงไปยัง PE ใช้ประโยชน์จากแบนด์วิดท์ SNIC ที่ว่างของ DE อย่างเต็มที่; ตัวจัดตารางเลือกเส้นทางตามความยาวคิวที่เก็บข้อมูลและโหลดของเอนจินแบบไดนามิก รวมแบนด์วิดท์ที่เก็บข้อมูลที่กระจายเป็นทรัพยากรที่สามารถจัดตารางได้ทั่วโลก
รูปที่ 4 แสดงกระบวนการโหลดสองประเภท:
3.1 เส้นทางการอ่าน PE (รูปที่ 4a)

รูปที่ 4 | แผนภาพการโหลดสองเส้นทาง
- อ่าน KV Cache (บล็อกเต็ม) ของโทเค็นที่ฮิตจากที่เก็บข้อมูลไปยัง PE Buffer
- ในระหว่างการเติมล่วงหน้าแบบแบ่งชั้นของ PE คัดลอกบล็อกชั้นที่ต้องการสำหรับชั้นปัจจุบันจาก PE Buffer ไปยัง PE HBM (H2D) ซ้อนทับกับการคำนวณโทเค็นใหม่
- หลังจากคำนวณเสร็จสิ้น ส่ง KV Cache ของโทเค็นใหม่ของชั้นนี้ (เป็นบล็อกชั้นใหม่) ผ่าน RDMA ไปยัง DE Buffer และรวมกับบล็อกชั้นของโทเค็นที่ฮิตที่มีอยู่
- ทำซ้ำขั้นตอนที่ 2-3 จนกว่าจะประมวลผลทุกชั้นเสร
⚠️ หมายเหตุ: เนื้อหาได้รับการแปลโดย AI และตรวจสอบโดยมนุษย์ หากมีข้อผิดพลาดโปรดแจ้ง
本文来自网络搜集,不代表คลื่นสร้างอนาคต立场,如有侵权,联系删除。转载请注明出处:https://www.itsolotime.com/th/archives/23408
