𝗥𝗮𝘁𝗲 𝗟𝗶𝗺𝗶𝘁𝗶𝗻𝗴 𝗮𝗻𝗱 𝗖𝗶𝗿𝗰𝘂𝗶𝘁 𝗕𝗿𝗲𝗮𝗸𝗲𝗿𝘀 𝗶𝗻 𝗔𝗜 𝗦𝘆𝘀𝘁𝗲𝗺𝘀
ระบบ AI แบบกระจายตัว (Distributed AI systems) มีความซับซ้อน เนื่องจากต้องจัดการกับปริมาณคำขอ (request) มหาศาลและการประมวลผลโมเดล (model inference) ที่หนักหน่วง คุณต้องพึ่งพา GPU clusters, ฐานข้อมูล และ third-party APIs หากมีส่วนประกอบใดส่วนหนึ่งทำงานผิดพลาดหรือมีปริมาณทราฟฟิกพุ่งสูงขึ้นเพียงครั้งเดียว ก็อาจทำให้ระบบทั้งหมดของคุณล่มได้
คุณจำเป็นต้องมีเครื่องมือสองอย่างเพื่อปกป้องระบบของคุณ ได้แก่ rate limiting และ circuit breakers
Rate Limiting Rate limiting ช่วยป้องกันไม่ให้ผู้ใช้หรือบริการใดบริการหนึ่งใช้ทรัพยากรมากเกินไป เพื่อให้มั่นใจว่าทุกคนจะสามารถเข้าถึงทรัพยากรได้อย่างเท่าเทียมกัน
วิธีการที่นิยมใช้:
- Token Bucket: เหมาะที่สุดสำหรับ AI เพราะอนุญาตให้มีการใช้งานพุ่งสูงขึ้นในช่วงสั้นๆ (bursts) ได้ ในขณะที่ยังรักษาค่าเฉลี่ยให้คงที่
- Leaky Bucket: ช่วยควบคุมให้ปริมาณคำขอไหลเวียนอย่างสม่ำเสมอ
- Fixed Window: เรียบง่าย แต่อาจทำให้เกิดการใช้งานพุ่งสูง (spikes) ในช่วงเริ่มต้นของหน้าต่างเวลาใหม่
- Sliding Window: มีความแม่นยำมากกว่าแบบ fixed windows
เคล็ดลับสำหรับ AI: ควรจำกัดด้วยจำนวน token ไม่ใช่แค่จำนวน request เพราะ prompt หนึ่งที่มี 4,000 tokens จะใช้ทรัพยากรมากกว่า prompt ที่มีเพียง 10 tokens
Circuit Breakers Circuit breaker จะคอยตรวจสอบการเรียกใช้งานไปยังบริการต่างๆ เช่น GPU server หรือ vector database หากบริการนั้นล้มเหลวบ่อยเกินไป เบรกเกอร์จะ "เปิด" (open) ซึ่งจะหยุดการเรียกใช้งานไปยังบริการนั้นทันที เพื่อป้องกันไม่ให้ระบบทั้งหมดล่ม
สถานะของวงจรมี 3 รูปแบบ:
- Closed: ทุกอย่างทำงานเป็นปกติ
- Open: บริการกำลังล้มเหลว การเรียกใช้งานจะถูกปฏิเสธทันที (fail fast) หรือเปลี่ยนไปใช้ระบบสำรอง (fallback) แทน
- Half-Open: ระบบจะทดสอบบริการนั้นเพื่อดูว่ากลับมาใช้งานได้ตามปกติแล้วหรือยัง
แนวทางปฏิบัติที่ดีที่สุด:
- ติดตามการเรียกใช้งานที่ล่าช้า (slow calls) หาก LLM ใช้เวลานานเกินไป ให้ถือว่าเป็นการทำงานที่ล้มเหลว
- แยกประเภทของข้อผิดพลาด อย่าให้เบรกเกอร์ทำงาน (trip) เพียงเพราะข้อผิดพลาดจากฝั่งผู้ใช้ เช่น 400 Bad Request แต่ควรให้ทำงานเฉพาะเมื่อเกิดข้อผิดพลาดในการเชื่อมต่อ (connection errors) หรือการหมดเวลา (timeouts) เท่านั้น
Optional learning community: https://t.me/GyaanSetuAi