คอขวดของ AI Agent ของผมไม่ใช่ที่ตัวโมเดล แต่มันคือสถาปัตยกรรม

เมื่อสามเดือนก่อน เวิร์กโฟลว์ของลูกค้าเกิดปัญหาขึ้น

ผมใช้ Agent ตัวเดียวในการจำแนกประเภทเอกสาร (document classification), การติดแท็ก (tagging) และการสรุปเนื้อหา (summaries) มันทำงานได้ดีเมื่อมีเอกสาร 50 ฉบับต่อวัน แต่พอปริมาณเพิ่มขึ้นเป็น 500 ฉบับ

Agent ใช้เวลา 40 นาทีต่อหนึ่งชุดข้อมูล (batch) มันไม่สามารถขยายขนาด (scale) ได้ และสุดท้ายก็ล่มไป

ผมไม่ได้เปลี่ยนไปใช้โมเดลที่ใหญ่ขึ้น แต่ผมเลือกที่จะแบ่ง Agent ออกเป็น 3 บทบาทเฉพาะทาง (specialized roles) ซึ่งแต่ละบทบาทจะทำงานแบบขนานกัน (in parallel)

ปริมาณงานที่จัดการได้ (throughput) เพิ่มขึ้นจาก 40 นาที เหลือเพียง 4 นาที โดยที่โมเดลยังเป็นตัวเดิม แต่สิ่งที่เปลี่ยนไปคือสถาปัตยกรรม

นักพัฒนาส่วนใหญ่มักทำพลาดด้วยการสร้าง Agent แบบเรียงลำดับ (sequential agents) คือให้ Agent ตัวเดียวทำทุกอย่างต่อกันไปเรื่อยๆ

หากคุณมีเอกสาร 500 ฉบับ และมี 3 งานต่อหนึ่งเอกสาร คุณจะต้องเรียกใช้ LLM ถึง 1,500 ครั้งแบบต่อคิวกัน แม้จะใช้เวลาเพียง 2 วินาทีต่อการเรียกหนึ่งครั้ง คุณก็ต้องรอถึง 50 นาที โมเดลของคุณจึงเสียเวลาส่วนใหญ่ไปกับการรอ

วิธีแก้ไขคือการใช้ Specialized Agents ที่ทำงานพร้อมกัน (concurrently)

  • ใช้ System Prompt ที่เล็กลงและเจาะจงมากขึ้น
  • รันงานที่เป็นอิสระต่อกันในเวลาเดียวกัน
  • ใช้ Dispatcher ในการจัดการงานต่างๆ

Specialized Agents นั้นเร็วกว่าและราคาถูกกว่า โมเดลขนาดเล็กที่มี Prompt ที่รัดกุมจะทำงานเฉพาะทางได้ดีกว่าโมเดลขนาดใหญ่ที่เป็นแบบทั่วไป (general model)

อย่างไรก็ตาม อย่าทำ Parallelize ทุกอย่าง ควรหลีกเลี่ยงข้อผิดพลาดเหล่านี้:

  • อย่าทำ Parallelize กับงานที่มีความเกี่ยวข้องกัน หากงาน B ต้องใช้ผลลัพธ์จากงาน A คุณจำเป็นต้องรันงานตามลำดับ
  • อย่าทำ Parallelize กับงานที่เล็กเกินไป เพราะค่าใช้จ่ายในการจัดการ (overhead) ของ Agent อาจใช้เวลานานกว่าตัวงานเองเสียอีก
  • อย่าละเลยความเร็วในการดึงข้อมูล (retrieval speed) หากระบบของคุณช้าเพราะการค้นหาในฐานข้อมูล การทำ Parallelize การเรียก LLM ก็จะไม่ช่วยอะไร

ทำตามขั้นตอนเหล่านี้เพื่อการขยายขนาด (scale):

  • ทำ Profiling ระบบของคุณก่อน เพื่อดูว่าเวลาเสียไปกับส่วนไหนจริงๆ
  • ใช้ Specialized Agents สำหรับบทบาทเฉพาะทาง
  • วางแผน Dependency Graph ของคุณก่อนที่จะเริ่มเขียนโค้ด

การสร้าง AI Agent ประกอบด้วยสองปัญหาที่แตกต่างกัน หนึ่งคือ Agent ทำอะไร และสองคือ Agent เข้ากับระบบของคุณได้อย่างไร

ระบบที่ใช้งานจริง (Production systems) จะรอดหรือร่วงขึ้นอยู่กับปัญหาที่สองนี้

หากคุณพบข้อจำกัด อย่าเพิ่งรีบซื้อโมเดลที่ใหญ่ขึ้น ให้ลองวาดแผนผังระบบ (system map) ของคุณดูก่อน คุณอาจพบว่าสถาปัตยกรรมต่างหากที่เป็นปัญหาที่แท้จริง

Source: https://dev.to/mrclaw207/my-ai-agent-bottleneck-wasnt-the-model-it-was-the-architecture-2h9m

Optional learning community: https://t.me/GyaanSetuAi