AI Scalability คืออะไร?

AI Scalability คืออะไร?

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

บทความที่คุณอาจสนใจอ่านต่อหลังจากบทความนี้:

🔗 อคติของ AI คืออะไร อธิบายง่ายๆ ก็คือ
เรียนรู้ว่าอคติที่ซ่อนอยู่ส่งผลต่อการตัดสินใจด้าน AI และผลลัพธ์ของแบบจำลองอย่างไร

🔗 คู่มือสำหรับผู้เริ่มต้น: ปัญญาประดิษฐ์คืออะไร
ภาพรวมของ AI แนวคิดหลัก ประเภท และการประยุกต์ใช้ในชีวิตประจำวัน

🔗 AI ที่สามารถอธิบายได้คืออะไร และเหตุใดจึงสำคัญ
ค้นพบว่า AI ที่สามารถอธิบายได้ช่วยเพิ่มความโปร่งใส ความน่าเชื่อถือ และการปฏิบัติตามกฎระเบียบได้อย่างไร

🔗 AI เชิงทำนายคืออะไรและทำงานอย่างไร
ทำความเข้าใจ AI เชิงคาดการณ์ กรณีการใช้งานทั่วไป ประโยชน์ และข้อจำกัด


AI Scalability คืออะไร? 📈

AI Scalability คือความสามารถของระบบ AI ในการจัดการข้อมูล คำขอ ผู้ใช้ และกรณีการใช้งานได้มากขึ้น ในขณะที่ยังคงประสิทธิภาพ ความน่าเชื่อถือ และต้นทุนให้อยู่ในขีดจำกัดที่ยอมรับได้ ไม่ใช่แค่เซิร์ฟเวอร์ขนาดใหญ่ขึ้นเท่านั้น แต่ยังรวมถึงสถาปัตยกรรมที่ชาญฉลาดขึ้น ซึ่งช่วยลดความหน่วงเวลา ทรูพุตสูง และรักษาคุณภาพให้คงที่เมื่อกราฟเพิ่มขึ้น ลองนึกถึงโครงสร้างพื้นฐานที่ยืดหยุ่น โมเดลที่ปรับแต่ง และความสามารถในการสังเกตการณ์ที่บอกคุณได้จริงว่าอะไรกำลังเกิดขึ้น

 

ความสามารถในการขยายขนาดของ AI

อะไรทำให้ AI มีความสามารถในการปรับขนาดได้ดี ✅

เมื่อทำ AI Scalability ได้ดี คุณจะได้รับ:

  • ความหน่วงที่คาดเดาได้ ภายใต้โหลดที่แหลมคมหรือต่อเนื่อง 🙂

  • ปริมาณงานที่เติบโตเพิ่ม ขึ้นโดยประมาณตามสัดส่วนของฮาร์ดแวร์หรือแบบจำลองที่เพิ่มเข้ามา

  • ประสิทธิภาพด้านต้นทุน ที่ไม่เพิ่มขึ้นตามคำขอ

  • เสถียรภาพด้านคุณภาพ เนื่องจากปัจจัยการผลิตมีความหลากหลายและปริมาณเพิ่มขึ้น

  • ความสงบในการทำงาน ด้วยการปรับขนาดอัตโนมัติ การติดตาม และ SLO ที่สมเหตุสมผล

ภายใต้ประทุนนี้ โดยทั่วไปจะผสมผสานการปรับขนาดแนวนอน การแบ่งชุด การแคช การวัดปริมาณ การให้บริการที่มั่นคง และนโยบายการเผยแพร่ที่รอบคอบซึ่งเชื่อมโยงกับงบประมาณข้อผิดพลาด [5]


ความสามารถในการปรับขนาดของ AI เทียบกับประสิทธิภาพเทียบกับความจุ 🧠

  • ประสิทธิภาพการทำงาน คือความเร็วที่คำขอเดียวจะเสร็จสิ้นโดยแยกจากกัน

  • ความจุ คือจำนวนคำขอที่คุณสามารถจัดการได้ในคราวเดียว

  • ความสามารถในการปรับขนาดของ AI คือการที่การเพิ่มทรัพยากรหรือใช้เทคนิคที่ชาญฉลาดจะช่วยเพิ่มความจุและรักษาประสิทธิภาพให้สม่ำเสมอโดยไม่ทำให้บิลหรือเพจเจอร์ของคุณเกินความจำเป็น

ความแตกต่างเพียงเล็กน้อย แต่ผลลัพธ์อันยิ่งใหญ่


เหตุใดการปรับขนาดจึงใช้ได้ผลใน AI: แนวคิดกฎการปรับขนาด 📚

ข้อมูลเชิงลึกที่ใช้กันอย่างแพร่หลายใน ML ยุคใหม่คือ การสูญเสียข้อมูลจะดีขึ้นอย่างคาดการณ์ได้เมื่อคุณปรับ ขนาดโมเดล ข้อมูล และการประมวลผล ภายในขอบเขตที่เหมาะสม นอกจากนี้ยังมี ความสมดุลที่เหมาะสมที่สุด ระหว่างขนาดโมเดลและโทเค็นการฝึก ซึ่งการปรับขนาดทั้งสองแบบพร้อมกันนั้นดีกว่าการปรับขนาดเพียงแบบเดียว ในทางปฏิบัติ แนวคิดเหล่านี้มีผลต่องบประมาณการฝึก การวางแผนชุดข้อมูล และการแลกเปลี่ยนระหว่างการให้บริการ [4]

แปลสั้นๆ ว่า ใหญ่กว่าก็ดีกว่าได้ แต่ต้องวัดขนาดอินพุตและคำนวณตามสัดส่วน ไม่งั้นก็เหมือนเอายางรถแทรกเตอร์มาใส่จักรยาน มันดูเข้มข้นแต่ไม่ไปถึงไหน


แนวนอนเทียบกับแนวตั้ง: คันโยกปรับขนาดสองอัน 🔩

  • การปรับขนาดแนวตั้ง : กล่องที่ใหญ่กว่า GPU ที่ทรงพลังกว่า หน่วยความจำที่มากขึ้น ใช้งานง่าย แต่บางครั้งอาจมีราคาแพง เหมาะสำหรับการฝึกฝนแบบโหนดเดียว การอนุมานแบบหน่วงเวลาต่ำ หรือเมื่อโมเดลของคุณไม่สามารถแบ่งข้อมูลได้อย่างดี

  • การปรับขนาดแนวนอน : เพิ่มการจำลองข้อมูล ทำงานได้ดีที่สุดกับ ตัวปรับขนาดอัตโนมัติ ที่เพิ่มหรือลบพ็อดตาม CPU/GPU หรือเมตริกแอปที่กำหนดเอง ใน Kubernetes HorizontalPodAutoscaler จะปรับขนาดพ็อดตามความต้องการ ซึ่งเป็นการควบคุมฝูงชนขั้นพื้นฐานสำหรับปริมาณการใช้งานที่เพิ่มขึ้นอย่างรวดเร็ว [1]

เกร็ดเล็กเกร็ดน้อย (แบบผสม): ระหว่างการเปิดตัวที่ได้รับความสนใจอย่างมาก เพียงแค่เปิดใช้งานการแบตช์ฝั่งเซิร์ฟเวอร์และปล่อยให้ตัวปรับขนาดอัตโนมัติตอบสนองต่อความลึกของคิวก็ทำให้ p95 เสถียรขึ้นโดยไม่ต้องเปลี่ยนแปลงไคลเอนต์ใดๆ ชัยชนะที่ไม่ฉูดฉาดก็ยังคงเป็นชัยชนะ


ความสามารถในการปรับขนาด AI แบบเต็มรูปแบบ 🥞

  1. เลเยอร์ข้อมูล : การจัดเก็บวัตถุที่รวดเร็ว ดัชนีเวกเตอร์ และการรวบรวมข้อมูลแบบสตรีมมิ่งที่ไม่ทำให้เทรนเนอร์ของคุณทำงานหนักเกินไป

  2. เลเยอร์การฝึกอบรม : เฟรมเวิร์กแบบกระจายและตัวกำหนดเวลาที่จัดการการประมวลผลแบบคู่ขนานของข้อมูล/โมเดล การตรวจสอบจุดตรวจสอบ การลองใหม่อีกครั้ง

  3. เลเยอร์การให้บริการ : รันไทม์ที่ปรับให้เหมาะสม, การแบ่งแบตช์แบบไดนามิก , การจัดเพจ สำหรับ LLM, การแคช, การสตรีมโทเค็น Triton และ vLLM เป็นตัวเด่นที่นี่ [2][3]

  4. การประสานงาน : Kubernetes เพื่อความยืดหยุ่นผ่าน HPA หรือตัวปรับขนาดอัตโนมัติแบบกำหนดเอง [1]

  5. การสังเกต : ร่องรอย เมตริก และบันทึกที่ติดตามการเดินทางของผู้ใช้และสร้างแบบจำลองพฤติกรรมในการผลิต ออกแบบให้สอดคล้องกับ SLO ของคุณ [5]

  6. การกำกับดูแลและต้นทุน : เศรษฐศาสตร์ต่อคำขอ งบประมาณ และสวิตช์หยุดการทำงานสำหรับปริมาณงานที่มากเกินไป


ตารางเปรียบเทียบ: เครื่องมือและรูปแบบสำหรับการปรับขนาด AI 🧰

ตั้งใจให้มันไม่สม่ำเสมอนิดหน่อย-เพราะชีวิตจริงมันเป็นแบบนั้น

เครื่องมือ / รูปแบบ ผู้ชม ราคาค่อนข้างสูง เหตุผลที่มันได้ผล หมายเหตุ
Kubernetes + HPA ทีมแพลตฟอร์ม โอเพ่นซอร์ส + อินฟรา ปรับขนาดพ็อดตามแนวนอนตามค่าเมตริกที่เพิ่มขึ้น เมตริกที่กำหนดเองเป็นทอง [1]
NVIDIA ไทรทัน การอนุมาน SRE เซิร์ฟเวอร์ฟรี; GPU $ การแบ่งชุดแบบไดนามิก ช่วยเพิ่มปริมาณงาน กำหนดค่าผ่าน config.pbtxt [2]
vLLM (การแจ้งเตือนแบบเพจ) ทีม LLM โอเพนซอร์ส ปริมาณงานสูงผ่านเพจจิ้ง KV-cache ที่มีประสิทธิภาพ เหมาะสำหรับคำกระตุ้นยาวๆ [3]
ONNX รันไทม์ / TensorRT พวกเนิร์ดเพอร์ฟ เครื่องมือฟรี / ของผู้ขาย การเพิ่มประสิทธิภาพระดับเคอร์เนลช่วยลดเวลาแฝง เส้นทางการส่งออกอาจจะยุ่งยาก
ลายผ้าขี้ริ้ว ทีมแอป อินฟรา + ดัชนี ถ่ายโอนความรู้ไปยังการเรียกค้นข้อมูล ปรับขนาดดัชนี ดีเยี่ยมสำหรับความสดชื่น

เจาะลึก 1: เทคนิคการเสิร์ฟที่ทำให้เข็มขยับ 🚀

  • การแบ่งกลุ่มแบบไดนามิกจะ จัดกลุ่มการเรียกอนุมานขนาดเล็กให้เป็นชุดใหญ่บนเซิร์ฟเวอร์ ทำให้การใช้ GPU เพิ่มขึ้นอย่างมากโดยไม่ต้องเปลี่ยนแปลงไคลเอนต์ [2]

  • การใส่ใจแบบแบ่งหน้า ช่วยให้การสนทนาในหน่วยความจำเพิ่มมากขึ้นโดยการแบ่งหน้าแคช KV ซึ่งช่วยปรับปรุงปริมาณงานภายใต้การทำงานพร้อมกัน [3]

  • การร้องขอการรวมและการแคช สำหรับคำเตือนหรือการฝังที่เหมือนกันจะช่วยหลีกเลี่ยงการทำงานซ้ำซ้อน

  • การถอดรหัสเชิงเก็งกำไร และการสตรีมโทเค็นช่วยลดความล่าช้าที่รับรู้ได้ แม้ว่านาฬิกาจะขยับเพียงเล็กน้อยก็ตาม


การเจาะลึก 2: ประสิทธิภาพระดับโมเดล - การหาปริมาณ การกลั่น การตัดแต่ง 🧪

  • การวัดปริมาณ จะลดความแม่นยำของพารามิเตอร์ (เช่น 8 บิต/4 บิต) เพื่อลดหน่วยความจำและเพิ่มความเร็วในการอนุมาน ควรประเมินคุณภาพงานใหม่เสมอหลังจากมีการเปลี่ยนแปลง

  • การกลั่น จะถ่ายโอนความรู้จากครูคนสำคัญไปยังนักเรียนคนเล็กที่ฮาร์ดแวร์ของคุณชื่นชอบ

  • การตัดแต่งกิ่งแบบมีโครงสร้าง จะตัดน้ำหนัก/หัวที่มีส่วนช่วยน้อยที่สุด

เอาจริงๆ นะ มันก็เหมือนกับการลดขนาดกระเป๋าเดินทาง แล้วยังยืนยันว่ารองเท้าทุกคู่ยังใส่ได้อยู่ ซึ่งส่วนใหญ่ก็ใส่ได้นะ


เจาะลึก 3: การปรับขนาดข้อมูลและการฝึกอบรมโดยไม่ต้องเสียน้ำตา 🧵

  • ใช้การฝึกอบรมแบบกระจายที่ซ่อนส่วนที่ยุ่งยากของการประมวลผลแบบคู่ขนานเพื่อให้คุณสามารถส่งมอบการทดลองได้เร็วขึ้น

  • จำ กฎการปรับขนาด : จัดสรรงบประมาณให้ครอบคลุมขนาดโมเดลและโทเค็นอย่างรอบคอบ การปรับขนาดทั้งสองอย่างพร้อมกันนั้นมีประสิทธิภาพในการคำนวณ [4]

  • คุณภาพของหลักสูตรและข้อมูล มักส่งผลต่อผลลัพธ์มากกว่าที่ผู้คนยอมรับ บางครั้งข้อมูลที่ดีกว่าก็ดีกว่าข้อมูลจำนวนมาก แม้ว่าคุณจะสั่งซื้อคลัสเตอร์ที่ใหญ่กว่าไปแล้วก็ตาม


เจาะลึก 4: RAG เป็นกลยุทธ์การขยายขนาดความรู้ 🧭

แทนที่จะฝึกโมเดลใหม่เพื่อให้ทันกับข้อเท็จจริงที่เปลี่ยนแปลง RAG เพิ่มขั้นตอนการดึงข้อมูลในการอนุมาน คุณสามารถรักษาโมเดลให้คงที่และปรับขนาด ดัชนี และ ตัวดึงข้อมูล เมื่อคอร์ปัสของคุณเติบโตขึ้น สวยงามและมักจะถูกกว่าการฝึกฝนใหม่เต็มรูปแบบสำหรับแอปที่เน้นความรู้


การสังเกตที่คุ้มค่า 🕵️‍♀️

คุณไม่สามารถปรับขนาดสิ่งที่คุณมองไม่เห็นได้ สิ่งสำคัญสองประการ:

  • เมตริก สำหรับการวางแผนความจุและการปรับขนาดอัตโนมัติ: เปอร์เซ็นไทล์ของเวลาแฝง, ความลึกของคิว, หน่วยความจำ GPU, ขนาดชุด, ปริมาณงานโทเค็น, อัตราการกระทบแคช

  • ร่องรอย ที่ติดตามคำขอเดียวผ่านเกตเวย์ → การดึงข้อมูล → โมเดล → การประมวลผลภายหลัง เชื่อมโยงสิ่งที่คุณวัดกับ SLO ของคุณ เพื่อให้แดชบอร์ดสามารถตอบคำถามได้ภายในเวลาไม่ถึงหนึ่งนาที [5]

เมื่อแดชบอร์ดตอบคำถามได้ภายในไม่ถึงนาที ผู้คนก็ใช้มัน แต่ถ้าไม่ พวกเขาก็แสร้งทำเป็นว่าใช้


รั้วป้องกันความน่าเชื่อถือ: SLO, งบประมาณข้อผิดพลาด, การเปิดตัวที่สมเหตุสมผล 🧯

  • กำหนด SLO สำหรับเวลาแฝง ความพร้อมใช้งาน และคุณภาพผลลัพธ์ และใช้ ค่างบประมาณข้อผิดพลาด เพื่อสร้างสมดุลระหว่างความน่าเชื่อถือกับความเร็วในการเผยแพร่ [5]

  • ใช้งานเบื้องหลังการแยกทราฟฟิก ทำคานารี และรันการทดสอบเงาก่อนการตัดขวางทั่วโลก ตัวตนในอนาคตของคุณจะส่งของว่างมาให้


ควบคุมต้นทุนโดยไม่ต้องดราม่า 💸

การปรับขนาดไม่ใช่แค่เรื่องเทคนิคเท่านั้น แต่ยังรวมถึงเรื่องการเงินด้วย พิจารณาชั่วโมงและโทเค็นของ GPU ให้เป็นทรัพยากรชั้นยอดด้วยหลักเศรษฐศาสตร์ต่อหน่วย (ต้นทุนต่อโทเค็น 1,000 โทเค็น ต่อการฝัง ต่อการสืบค้นเวกเตอร์) เพิ่มงบประมาณและการแจ้งเตือน และเฉลิมฉลองการลบข้อมูล


แผนงานง่ายๆ สู่การปรับขนาด AI 🗺️

  1. เริ่มต้นด้วย SLO สำหรับความล่าช้า p95 ความพร้อมใช้งาน และความแม่นยำของงาน เมตริก/การติดตามสายในวันแรก [5]

  2. เลือกสแต็กการเสิร์ฟ ที่รองรับการแบ่งชุดและการแบ่งชุดต่อเนื่อง: Triton, vLLM หรือเทียบเท่า [2][3]

  3. เพิ่มประสิทธิภาพของโมเดล : การหาปริมาณในส่วนที่ช่วยเหลือ เปิดใช้งานเคอร์เนลที่เร็วขึ้น หรือกลั่นกรองสำหรับงานเฉพาะ ตรวจสอบคุณภาพด้วยการประเมินจริง

  4. สถาปนิกเพื่อความยืดหยุ่น : Kubernetes HPA พร้อมสัญญาณที่เหมาะสม เส้นทางการอ่าน/เขียนแยก และแบบจำลองการอนุมานแบบไม่มีสถานะ [1]

  5. นำการดึงข้อมูลมาใช้ เมื่อความสดใหม่มีความสำคัญ เพื่อให้คุณปรับขนาดดัชนีของคุณแทนที่จะฝึกอบรมใหม่ทุกสัปดาห์

  6. ปิดวงจรด้วยต้นทุน : จัดทำเศรษฐศาสตร์หน่วยและทบทวนรายสัปดาห์


โหมดความล้มเหลวทั่วไปและการแก้ไขด่วน 🧨

  • GPU ใช้งานอยู่ที่ 30% ในขณะที่ความหน่วงไม่ดี

    • เปิด การทำงานแบบแบตช์แบบไดนามิก เพิ่มขีดจำกัดแบตช์อย่างระมัดระวัง และตรวจสอบการทำงานพร้อมกันของเซิร์ฟเวอร์อีกครั้ง [2]

  • ปริมาณงานลดลงเมื่อมีการแจ้งเตือนยาว

    • ใช้การให้บริการที่รองรับการ ให้ความสนใจแบบแบ่งหน้า และปรับแต่งลำดับพร้อมกันสูงสุด [3]

  • แฟลปปรับขนาดอัตโนมัติ

    • เมตริกที่ราบรื่นพร้อมหน้าต่าง ปรับขนาดตามความลึกของคิวหรือโทเค็นที่กำหนดเองต่อวินาทีแทนที่จะใช้ CPU ล้วนๆ [1]

  • ต้นทุนพุ่งสูงหลังเปิดตัว

    • เพิ่มเมตริกต้นทุนในระดับคำขอ เปิดใช้งานการวัดปริมาณในที่ที่ปลอดภัย แคชแบบสอบถามระดับสูงสุด และจำกัดอัตราผู้กระทำผิดที่เลวร้ายที่สุด


คู่มือการปรับขยาย AI: รายการตรวจสอบด่วน ✅

  • SLO และงบประมาณข้อผิดพลาดมีอยู่และมองเห็นได้

  • เมตริก: ความหน่วง, tps, หน่วยความจำ GPU, ขนาดชุด, โทเค็น/วินาที, การเข้าถึงแคช

  • การติดตามตั้งแต่การเข้าสู่โมเดลจนถึงหลังกระบวนการ

  • การให้บริการ: การแบ่งกลุ่ม, การปรับแต่งการทำงานพร้อมกัน, แคชอุ่น

  • แบบจำลอง: เชิงปริมาณหรือกลั่นกรองซึ่งช่วยได้

  • Infra: HPA กำหนดค่าด้วยสัญญาณที่ถูกต้อง

  • เส้นทางการสืบค้นเพื่อความสดใหม่ของความรู้

  • เศรษฐศาสตร์หน่วยตรวจสอบบ่อยครั้ง


นานเกินไปไม่ได้อ่านและข้อสังเกตสุดท้าย 🧩

AI Scalability ไม่ใช่ฟีเจอร์เดียวหรือสวิตช์ลับ แต่มันเป็นภาษารูปแบบ: การปรับขนาดแนวนอนด้วยตัวปรับขนาดอัตโนมัติ การแบ่งแบตช์ฝั่งเซิร์ฟเวอร์เพื่อการใช้งาน ประสิทธิภาพระดับโมเดล การดึงข้อมูลเพื่อถ่ายโอนความรู้ และการสังเกตการณ์ที่ทำให้การเปิดตัวน่าเบื่อ เติม SLO และ Cost Hygiene เข้าไปเพื่อให้ทุกคนเข้าใจตรงกัน คุณอาจจะไม่ได้สมบูรณ์แบบตั้งแต่ครั้งแรก เพราะไม่มีใครทำได้ แต่ด้วยลูปฟีดแบ็กที่ถูกต้อง ระบบของคุณจะเติบโตโดยไม่รู้สึกหนาวสั่นตอนตีสอง 😅


เอกสารอ้างอิง

[1] เอกสาร Kubernetes - การปรับขนาดพ็อดแนวนอนโดยอัตโนมัติ - อ่านเพิ่มเติม
[2] NVIDIA Triton - ไดนามิกแบตเชอร์ - อ่านเพิ่มเติม
[3] เอกสาร vLLM - ข้อควรระวังแบบแบ่งหน้า - อ่านเพิ่มเติม
[4] Hoffmann et al. (2022) - การฝึกอบรมโมเดลภาษาขนาดใหญ่ที่เพิ่มประสิทธิภาพการคำนวณ - อ่านเพิ่มเติม
[5] Google SRE Workbook - การนำ SLO ไปใช้ - อ่านเพิ่มเติม

ค้นหา AI รุ่นล่าสุดได้ที่ร้านค้าผู้ช่วย AI อย่างเป็นทางการ

เกี่ยวกับเรา

กลับไปที่บล็อก