โมเดลและแพลตฟอร์ม AI
อนาคตของการอนุมานแบบไม่มีเซิร์ฟเวอร์สำหรับโมเดลภาษาขนาดใหญ่
ความก้าวหน้าล่าสุดในโมเดลภาษาขนาดใหญ่ (LLMs) เช่น GPT-4, PaLM นำไปสู่ความสามารถในการประมวลผลภาษาที่เปลี่ยนแปลงไป LLMs ถูกนำไปใช้ในแอปพลิเคชันต่างๆ เช่น ชาตบอท, เครื่องมือค้นหา, และผู้ช่วยโปรแกรมมิ่ง อย่างไรก็ตาม การให้บริการ LLMs ในระดับที่กว้างขวางยังคงเป็นเรื่องที่ท้าทายเนื่องจากต้องการ GPU และหน่วยความจำจำนวนมาก
วิธีการที่ใช้ในการเอาชนะความท้าทายนี้โดยทั่วไปสามารถแบ่งออกเป็นสองประเภทหลัก:
- เทคนิคการบีบอัดโมเดล
เทคนิคเหล่านี้มีเป้าหมายในการลดขนาดของโมเดลโดยยังคงความแม่นยำไว้ วิธีการทั่วไปรวมถึง:
- การปรับขนาด – การลบพารามิเตอร์ที่ซ้ำซ้อนหรือไม่สำคัญออกจากโมเดล ซึ่งจะสร้างโมเดลที่มีพารามิเตอร์น้อยลง
- การปรับขนาด – การใช้ตัวเลขที่มีความแม่นยำต่ำกว่า เช่น int8 หรือ bfloat16 เพื่อแทนค่าน้ำหนักแทน fp32 หรือ fp16 ซึ่งจะลดขนาดของหน่วยความจำ
- การถ่ายทอดความรู้ – การฝึกโมเดลที่เล็กกว่า “นักเรียน” เพื่อเลียนแบบโมเดลที่ใหญ่กว่า “ครู” จากนั้นโมเดลที่เล็กกว่าจะถูกใช้สำหรับการอนุมาน
- การดำเนินการแบบเลือก
เทคนิคเหล่านี้ไม่ได้ใช้โมเดลที่ถูกบีบอัด แต่จะดำเนินการเฉพาะส่วนของโมเดลต่อการอนุมาน:
- การกระตุ้นที่ไม่มี – การข้ามการคำนวณสำหรับการกระตุ้นที่เป็นศูนย์
- การคำนวณแบบมีเงื่อนไข – การดำเนินการเฉพาะชั้นที่มีเงื่อนไขขึ้นอยู่กับอินพุต
ในทางกลับกัน เพื่อให้สามารถใช้งาน LLMs ได้อย่างรวดเร็ว นักวิจัยได้เสนอระบบการอนุมานแบบไม่มีเซิร์ฟเวอร์ ในสถาปัตยกรรมแบบไม่มีเซิร์ฟเวอร์ LLMs จะถูกโฮสต์บนคลัสเตอร์ GPU ที่ใช้ร่วมกันและจัดสรรตามความต้องการอย่างไดนามิก ซึ่งช่วยให้สามารถใช้ GPU ได้อย่างมีประสิทธิภาพและลดค่าใช้จ่ายสำหรับนักพัฒนา การใช้งานที่โดดเด่นรวมถึง Amazon (AMZN ) SageMaker, Microsoft Azure ML และตัวเลือกแบบเปิด源 เช่น KServe
尽管ระบบการอนุมานแบบไม่มีเซิร์ฟเวอร์มีศักยภาพ แต่ระบบที่มีอยู่แสดงให้เห็นถึงความล่าช้าในการใช้งานที่สูง ซึ่งทำให้ผู้ใช้ประสบการณ์ที่ไม่ดีในแอปพลิเคชันที่โต้ตอบ:
- การดาวน์โหลดเช็คพอยต์ที่มีค่าใช้จ่ายสูง: LLMs มีขนาดใหญ่ ซึ่งมักจะมีขนาดหลายกิกะไบต์หรือเทราไบต์ การดาวน์โหลดเช็คพอยต์จากแหล贮จ่ายระยะไกลใช้เวลานาน ซึ่งใช้เวลาเกิน 20 วินาทีแม้จะใช้เครือข่ายที่ได้รับการปรับให้เหมาะสม
- การโหลดเช็คพอยต์ที่ไม่มีประสิทธิภาพ: แม้จะใช้การเก็บข้อมูล SSD ท้องถิ่น การโหลดเช็คพอยต์เข้าไปในหน่วยความจำ GPU ก็ใช้เวลาหลายสิบวินาทีเนื่องจากปัจจัยต่างๆ เช่น การอนุกรมและการจัดสรรเทนเซอร์ ซึ่งจะทำให้เกิดความล่าช้าเพิ่มเติมนอกเหนือจากเวลาเริ่มต้นของตู้คอนเทนเนอร์
เพื่อแก้ไขปัญหาเหล่านี้ นักวิจัยที่ MIT CSAIL ได้เสนอ ServerlessLLM ซึ่งเป็นระบบที่สร้างสรรค์ใหม่ที่บรรลุการอนุมานแบบไม่มีเซิร์ฟเวอร์ที่มีความล่าช้าต่ำสำหรับ LLMs ServerlessLLM เพิ่มความสามารถในการใช้งานโดยการนำความสามารถและแบนด์วิธที่มีอยู่ในหลายระดับของการเก็บข้อมูลบนเซิร์ฟเวอร์สำหรับการใช้งาน LLM
นวัตกรรมหลักใน ServerlessLLM ServerlessLLM รวมถึงการออกแบบใหม่หลายอย่างเพื่อลดเวลาในการโหลด LLM ในสภาพแวดล้อมแบบไม่มีเซิร์ฟเวอร์:
- การโหลดเช็คพอยต์อย่างรวดเร็ว
- รูปแบบการโหลดเช็คพอยต์ที่ได้รับการปรับให้เหมาะสมซึ่งช่วยให้สามารถอ่านลำดับได้อย่างรวดเร็วและเข้าถึงเทนเซอร์ในหน่วยความจำได้อย่างมีประสิทธิภาพ
- การโหลดเช็คพอยต์หลายระดับที่ใช้แบนด์วิธสูงสุดข้ามเครือข่าย, SSD, DRAM และหน่วยความจำ GPU โดยใช้เทคนิคต่างๆ เช่น การอ่าน/เขียนโดยตรง, การถ่ายโอนหน่วยความจำแบบจับจอง และความขนาน
- การย้ายถิ่นแบบสดสำหรับการอนุมานที่ขับเคลื่อนด้วยที่ตั้ง
- การย้ายถิ่นแบบโทเค็นที่ส่งเฉพาะโทเค็นสำคัญผ่านเครือข่าย โดยหลีกเลี่ยงการถ่ายโอนสแนปช็อตที่ช้า
- การย้ายถิ่นแบบสองขั้นตอนที่ช่วยให้การอนุมานไม่หยุดชะงักโดยการคำนวณสถานะแคชใหม่ในเซิร์ฟเวอร์ปลายทางก่อนที่จะส่งโทเค็นสุดท้าย
- การกำหนดการให้บริการแบบลดความล่าช้า
- แบบจำลองที่แม่นยำในการประมาณการเวลาในการโหลดเช็คพอยต์จากทุกระดับและเวลาในการย้ายถิ่นสำหรับเซิร์ฟเวอร์
- ตัวจัดตารางที่ตระหนักถึงที่ตั้งซึ่งเลือกเซิร์ฟเวอร์ที่ลดความล่าช้าในการเริ่มต้นให้เหลือน้อยที่สุดโดยใช้แบบจำลองเหล่านี้
การปรับให้เหมาะสมเหล่านี้ช่วยให้ ServerlessLLM ลดเวลาในการโหลด LLM ได้ 4-8 เท่า และลดเวลาในการเริ่มต้นโดยรวมได้มากกว่า 25 เท่า เมื่อเทียบกับระบบที่มีอยู่ เช่น PyTorch, TensorFlow และ KServe
การเร่งการโหลดเช็คพอยต์
อุปสรรคหลักแรกที่ ServerlessLLM ต้องเผชิญคือความล่าช้าที่สูงในการโหลดเช็คพอยต์ LLM จากการเก็บข้อมูลเข้าไปในหน่วยความจำ GPU
เพื่อให้การโหลดเช็คพอยต์อย่างรวดเร็ว ServerlessLLM นำรูปแบบการโหลดเช็คพอยต์ที่ได้รับการปรับให้เหมาะสมมาใช้:
- รูปแบบการโหลดเช็คพอยต์ที่ได้รับการปรับให้เหมาะสม
เช็คพอยต์มาตรฐานที่ใช้โดยเฟรมเวิร์ก เช่น PyTorch ได้รับการออกแบบสำหรับการฝึกอบรมและการแก้ปัญหา แต่สำหรับการอนุมานแบบไม่มีเซิร์ฟเวอร์ เช็คพอยต์จะถูกอ่านอย่างเดียวและเข้าถึงซ้ำๆ
เพื่อปรับให้เหมาะสมสำหรับการใช้งานที่อ่านอย่างเข้มข้น ServerlessLLM แปลงเช็คพอยต์เป็นรูปแบบที่มีคุณสมบัติหลักสองประการ:
- การอ่านชิ้นลำดับ: เทนเซอร์ถูกจัดกลุ่มเป็นไฟล์ไบ너ี่สำหรับ GPU แต่ละตัว ซึ่งอำนวยความสะดวกในการอ่านลำดับขนาดใหญ่
- การเข้าถึงเทนเซอร์ที่มีประสิทธิภาพ: ดัชนีจะทำการแมปกับชื่อเทนเซอร์ไปยังออฟเซตหน่วยความจำ ช่วยให้สามารถฟื้นฟูหน่วยความจำโดยตรงโดยไม่ต้องอนุกรม
- การโหลดเช็คพอยต์หลายระดับ
ServerlessLLM ใช้สถาปัตยกรรมหลายระดับของเซิร์ฟเวอร์ GPU โดยมีสื่อการเก็บข้อมูล เช่น SSD และเครือข่ายเชื่อมต่อกับ GPU ผ่าน PCIe, NVMe ฯลฯ
ระบบรวมการโหลดหลายขั้นตอนเพื่อเพิ่มการใช้แบนด์วิธสูงสุดข้ามทุกระดับ:
- ชิ้นข้อมูลในหน่วยความจำถูกจัดสรรโดยใช้หน่วยความจำแบบจับจองสำหรับการถ่ายโอน GPU ที่รวดเร็ว
- การอ่าน/เขียนโดยตรงถูกใช้สำหรับการอ่าน SSD ที่มีประสิทธิภาพโดยไม่มีการแคช
- หลายเธรดอ่านชิ้นการเก็บข้อมูลที่แตกต่างกันในแบบขนาน
- การประสานงานระหว่างขั้นตอนเกิดขึ้นผ่านคิวงานแบบไม่ส่งกัน
ทั้งหมดนี้ช่วยให้สามารถใช้แบนด์วิธสูงสุดของระดับที่เร็วที่สุด เช่น NVMe RAID ได้ การทดลองแสดงให้เห็นว่า ServerlessLLM โหลดได้เร็วกว่า PyTorch/TensorFlow 6-8 เท่า และลดเวลาในการเริ่มต้นสำหรับ LLM ขนาดใหญ่จากมากกว่า 1 นาทีเหลือ不到 10 วินาที
การอนุมาน LLM ที่ขับเคลื่อนด้วยที่ตั้งผ่านการย้ายถิ่นแบบสด
ด้วยการโหลดที่เร็วขึ้น ServerlessLLM ต้องเผชิญกับความท้าทายใหม่ – วิธีการใช้เช็คพอยต์ที่โหลดไว้แล้วสำหรับที่ตั้งโดยไม่หยุดการอนุมานที่กำลังดำเนินอยู่บนเซิร์ฟเวอร์ที่ยุ่ง:
ServerlessLLM นำเทคนิคใหม่มาใช้ – การย้ายถิ่นแบบสดของการอนุมาน LLM ข้ามเซิร์ฟเวอร์ GPU ซึ่งช่วยให้สามารถถ่ายโอนการดำเนินการไปยังเซิร์ฟเวอร์ที่มีเช็คพอยต์ท้องถิ่นได้อย่างราบรื่น
สิ่งอำนวยความสะดวกหลักในการย้ายถิ่น LLM แบบสด:
- การย้ายถิ่นแบบโทเค็น
แทนที่จะถ่ายโอนสถานะโมเดลทั้งหมด ServerlessLLM ย้ายเฉพาะโทเค็นสำคัญผ่านเครือข่าย ซึ่งจะส่งตัวเลขที่มีขนาดเล็กกว่าสแนปช็อตมาก
- การย้ายถิ่นแบบสองขั้นตอน
เซิร์ฟเวอร์ปลายทางคำนวณสถานะแคชล่วงหน้าจากโทเค็นพร้อมตัว จากนั้นเซิร์ฟเวอร์ต้นฉบับจะส่งโทเค็นสุดท้ายก่อนที่จะปล่อยทรัพยากร ซึ่งจะป้องกันการหยุดชะงักของการอนุมาน
การทดลองแสดงให้เห็นว่าการย้ายถิ่นแบบโทเค็นลดเวลาในการย้ายถิ่นจากหลายสิบวินาทีเหลือ不到 1 วินาทีแม้สำหรับลำดับที่ยาว การย้ายถิ่นแบบสดมีความสำคัญต่อการป้องกันความล่าช้าในคิวเมื่อบรรลุการกระจายที่ขับเคลื่อนด้วยที่ตั้ง
การกำหนดการให้บริการแบบลดความล่าช้า
เพื่อลดความล่าช้าทั้งหมด ServerlessLLM ปรับปรุงตัวจัดตารางให้เลือกเซิร์ฟเวอร์โดยคำนึงถึงที่ตั้ง:
- ตัวประมาณการเวลาในการโหลดที่ละเอียด
แบบจำลองสามารถคาดการณ์เวลาในการโหลดจากเครือข่าย, SSD, หน่วยความจำ และ GPU สำหรับเซิร์ฟเวอร์แต่ละตัวโดยใช้เมตริก เช่น ความล่าช้าในคิว, ขนาดโมเดล และแบนด์วิธที่วัดได้
- ตัวคาดการณ์เวลาในการย้ายถิ่นที่แม่นยำ
ตัวจัดตารางคาดการณ์เวลาในการย้ายถิ่นสำหรับเซิร์ฟเวอร์โดยใช้จำนวนโทเค็นและผลลัพธ์ และติดตามความก้าวหน้าของการอนุมานแบบไม่ส่งกันเพื่อหลีกเลี่ยงการโอเวอร์เฮด
- การกำหนดการให้บริการแบบตระหนักถึงที่ตั้ง
สำหรับการร้องขอการอนุมานแต่ละครั้ง ตัวจัดตารางประเมินเวลาในการโหลดและเวลาในการย้ายถิ่นข้ามเซิร์ฟเวอร์ และเลือกเซิร์ฟเวอร์ที่ลดความล่าช้าในการเริ่มต้นให้เหลือน้อยที่สุด
ตัวจัดตารางยังรักษาคิวงานของเซิร์ฟเวอร์และใช้สตอร์แบบสอดคล้องอย่างเข้มงวดสำหรับการทนต่อข้อผิดพลาด ทั้งหมดนี้ช่วยลดการโอเวอร์เฮดของตัวจัดตารางในขณะที่เพิ่มประโยชน์ของที่ตั้งให้สูงสุด
การประเมินประสิทธิภาพของ ServerlessLLM
การทดลองที่ครอบคลุมจะวัดประสิทธิภาพโดยรวมของ ServerlessLLM เมื่อเทียบกับระบบที่มีอยู่โดยใช้โมเดลจริง เช่น OPT-175B และเวิร์กโหลดที่สร้างแบบจำลองตาม Azure Traces
ผลลัพธ์หลัก:
- การวัดประสิทธิภาพขนาดเล็ก: ServerlessLLM เร่งการโหลดเช็คพอยต์ 3.6-8.2 เท่าเมื่อเทียบกับ PyTorch/TensorFlow และใช้แบนด์วิธการเก็บข้อมูลสูงสุด แม้กระทั่งสำหรับ NVMe RAID ที่ทันสมัย
- การกำหนดการให้บริการ: ServerlessLLM ลดความล่าช้าในการจัดสรร 4-12 เท่าเมื่อเทียบกับการจัดตารางแบบสุ่ม ซึ่งเน้นถึงประโยชน์ของการรู้ตระหนักถึงที่ตั้ง การย้ายถิ่นแบบสดจะป้องกันความล่าช้าในคิว
- การให้บริการแบบปลายถึงปลาย: สำหรับโมเดลขนาดใหญ่ เช่น OPT-30B ServerlessLLM ปรับปรุงความล่าช้า 99 เปอร์เซ็นต์ 28-200 เท่าเมื่อเทียบกับระบบ เช่น KServe และ Ray Serve นอกจากนี้ยังปรับปรุงประสิทธิภาพของทรัพยากร
การเพิ่มขึ้นที่สำคัญเหล่านี้แสดงให้เห็นถึงความสามารถของ ServerlessLLM ในการเอาชนะอุปสรรคในระบบการอนุมานแบบไม่มีเซิร์ฟเวอร์ที่มีอยู่ และปลดปล่อยพลังของ LLMs สำหรับบริการแบบโต้ตอบ
การปรับให้เหมาะสมที่นำมาใช้ใน ServerlessLLM เช่น การโหลดหลายระดับ, การย้ายถิ่นแบบสด และการกำหนดการให้บริการแบบลดความล่าช้า สามารถช่วยให้ได้รับแรงบันดาลใจในการออกแบบสถาปัตยกรรมแบบไม่มีเซิร์ฟเวอร์ในอนาคต ระบบมีความสามารถในการลดเวลาในการโหลดและเวลาในการเริ่มต้น ทำให้การวางจำหน่าย LLMs ในระดับที่กว้างขวางเป็นไปได้
มองไปข้างหน้า: ความท้าทายที่กำลังดำเนินอยู่
แม้ว่าจะเป็นขั้นตอนสำคัญ แต่ ServerlessLLM แสดงถึงเพียงขั้นตอนแรกในการปรับให้เหมาะสมสำหรับการอนุมานแบบไม่มีเซิร์ฟเวอร์สำหรับ LLMs ขนาดใหญ่ ปัญหาหลายอย่างยังคงอยู่ รวมถึง:
- การคาดการณ์อุปสงค์โมเดลแบบเรียลไทม์เพื่อชี้แนะการจัดเตรียมและโหลดล่วงหน้า
- การวางเช็คพอยต์อย่างชาญฉลาดข้ามเซิร์ฟเวอร์เพื่อเพิ่มการเข้าถึงแคชให้สูงสุด
- การปรับขนาดอัลกอริทึมการกำหนดการให้บริการให้สามารถจัดการคลัสเตอร์ที่ใหญ่ขึ้นได้
- การรับประกันความยุติธรรมในการจัดสรรทรัพยากรระหว่างโมเดลและนักพัฒนา
- การขยายนวัตกรรม เช่น การย้ายถิ่นแบบสด ไปยังเวิร์กโหลดแบบไม่มีเซิร์ฟเวอร์อื่นๆ
การแก้ไขพื้นที่เหล่านี้สามารถช่วยสร้างบนพื้นฐานของระบบการอนุมานแบบไม่มีเซิร์ฟเวอร์สำหรับ LLMs และทำให้ความสามารถของพวกมันสามารถเข้าถึงได้มากขึ้น นอกเหนือจากความก้าวหน้าทางระบบแล้ว การลดรอยเท้าของคาร์บอนและอันตรายที่อาจเกิดขึ้นของโมเดลขนาดใหญ่ยังคงเป็นเรื่องด่วน
ServerlessLLM แสดงให้เห็นว่ามีพื้นที่ที่กว้างขวางสำหรับการสร้างสรรค์นวัตกรรมในระบบสถาปัตยกรรมแบบไม่มีเซิร์ฟเวอร์สำหรับเวิร์กโหลด AI เมื่อ LLMs ยังคงเติบโตในขนาดและความนิยม วิธีแก้ปัญหาที่ปลดปล่อยความสามารถในการปรับขนาดของพวกมัน เช่น ServerlessLLM จะมีผลกระทบมากขึ้น การผสมผสานระหว่างการวิจัยระบบและเครื่องมือจักรกลสามารถแนะนำรูปแบบใหม่ในการให้บริการ, การแบ่งปัน และการปรับขนาดโมเดล AI อย่างปลอดภัยและยั่งยืน













