ನನ್ನ AI ಏಜೆಂಟ್‌ನ ಅಡಚಣೆಯು ಮಾಡೆಲ್ ಆಗಿರಲಿಲ್ಲ. ಅದು ಆರ್ಕಿಟೆಕ್ಚರ್ ಆಗಿತ್ತು.

ಮೂರು ತಿಂಗಳ ಹಿಂದೆ, ಒಬ್ಬ ಕ್ಲೈಂಟ್‌ನ ವರ್ಕ್‌ಫ್ಲೋ (workflow) ವಿಫಲವಾಯಿತು.

ನಾನು ಡಾಕ್ಯುಮೆಂಟ್ ವರ್ಗೀಕರಣ (classification), ಟ್ಯಾಗಿಂಗ್ ಮತ್ತು ಸಾರಾಂಶಗಳಿಗಾಗಿ (summaries) ಒಂದೇ ಏಜೆಂಟ್ ಅನ್ನು ಬಳಸುತ್ತಿದ್ದೆ. ಇದು ದಿನಕ್ಕೆ 50 ಡಾಕ್ಯುಮೆಂಟ್‌ಗಳಿಗೆ ಚೆನ್ನಾಗಿ ಕೆಲಸ ಮಾಡುತ್ತಿತ್ತು. ನಂತರ ಅದರ ಪ್ರಮಾಣವು 500ಕ್ಕೆ ಏರಿತು.

ಪ್ರತಿ ಬ್ಯಾಚ್‌ಗೆ ಏಜೆಂಟ್ 40 ನಿಮಿಷಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತಿತ್ತು. ಅದು ಸ್ಕೇಲ್ ಆಗಲಿಲ್ಲ. ಅದು ಕ್ರ್ಯಾಶ್ ಆಯಿತು.

ನಾನು ದೊಡ್ಡ ಮಾಡೆಲ್‌ಗೆ ಬದಲಾಗಲಿಲ್ಲ. ಬದಲಾಗಿ, ನಾನು ಏಜೆಂಟ್ ಅನ್ನು ಮೂರು ವಿಶೇಷ ಪಾತ್ರಗಳಾಗಿ (specialized roles) ವಿಂಗಡಿಸಿದೆ. ಈ ಪಾತ್ರಗಳು ಸಮಾಂತರವಾಗಿ (in parallel) ಕಾರ್ಯನಿರ್ವಹಿಸಿದವು.

ಥ್ರೂಪುಟ್ (Throughput) 40 ನಿಮಿಷಗಳಿಂದ 4 ನಿಮಿಷಗಳಿಗೆ ಇಳಿಯಿತು. ಮಾಡೆಲ್ ಬದಲಾಗಲಿಲ್ಲ. ಆರ್ಕಿಟೆಕ್ಚರ್ ಬದಲಾಯಿತು.

ಹೆಚ್ಚಿನ ડેವಲಪರ್‌ಗಳು ಸೀಕ್ವೆನ್ಷಿಯಲ್ ಏಜೆಂಟ್‌ಗಳನ್ನು (sequential agents) ನಿರ್ಮಿಸುವ ತಪ್ಪು ಮಾಡುತ್ತಾರೆ. ಅಂದರೆ ಒಂದು ಏಜೆಂಟ್ ಎಲ್ಲವನ್ನೂ ಒಂದಾದ ನಂತರ ಒಂದನ್ನು ಮಾಡುತ್ತದೆ.

ನಿಮ್ಮ ಬಳಿ 500 ಡಾಕ್ಯುಮೆಂಟ್‌ಗಳಿದ್ದು, ಪ್ರತಿ ಡಾಕ್ಯುಮೆಂಟ್‌ಗೆ ಮೂರು ಕೆಲಸಗಳಿದ್ದರೆ, ನೀವು ಒಂದಾದ ನಂತರ ಒಂದಾಗಿ 1,500 LLM ಕರೆಗಳನ್ನು (calls) ಮಾಡುತ್ತೀರಿ. ಒಂದು ಕರೆಗೆ ಕೇವಲ 2 ಸೆಕೆಂಡುಗಳು ತೆಗೆದುಕೊಂಡರೂ, ನೀವು 50 ನಿಮಿಷಗಳ ಕಾಲ ಕಾಯಬೇಕಾಗುತ್ತದೆ. ನಿಮ್ಮ ಮಾಡೆಲ್ ತನ್ನ ಹೆಚ್ಚಿನ ಸಮಯವನ್ನು ಕಾಯುವುದರಲ್ಲೇ ಕಳೆಯುತ್ತದೆ.

ಇದಕ್ಕೆ ಪರಿಹಾರವೆಂದರೆ ಏಕಕಾಲದಲ್ಲಿ (concurrently) ಕಾರ್ಯನಿರ್ವಹಿಸುವ ವಿಶೇಷ ಏಜೆಂಟ್‌ಗಳನ್ನು ಬಳಸುವುದು.

  • ಸಣ್ಣ ಮತ್ತು ನಿರ್ದಿಷ್ಟವಾದ ಸಿಸ್ಟಮ್ ಪ್ರಾಂಪ್ಟ್‌ಗಳನ್ನು (system prompts) ಬಳಸಿ.
  • ಸ್ವತಂತ್ರ ಕೆಲಸಗಳನ್ನು ಏಕಕಾಲದಲ್ಲಿ ಚಲಾಯಿಸಿ.
  • ಕೆಲಸಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಡಿಸ್ಪ್ಯಾಚರ್ (dispatcher) ಬಳಸಿ.

ವಿಶೇಷ ಏಜೆಂಟ್‌ಗಳು ವೇಗವಾಗಿರುತ್ತವೆ ಮತ್ತು ಅಗ್ಗವಾಗಿರುತ್ತವೆ. ನಿರ್ದಿಷ್ಟ ಕೆಲಸಗಳ ವಿಷಯದಲ್ಲಿ, ಕಟ್ಟುನಿಟ್ಟಾದ ಪ್ರಾಂಪ್ಟ್ ಹೊಂದಿರುವ ಸಣ್ಣ ಮಾಡೆಲ್ ದೊಡ್ಡ ಸಾಮಾನ್ಯ ಮಾಡೆಲ್ ಅನ್ನು ಮೀರಿಸುತ್ತದೆ.

ಆದಾಗ್ಯೂ, ಎಲ್ಲವನ್ನೂ ಸಮಾಂತರಗೊಳಿಸಬೇಡಿ (parallelize). ಈ ತಪ್ಪುಗಳನ್ನು ತಪ್ಪಿಸಿ:

  • ಒಂದಕ್ಕೊಂದು ಅವಲಂಬಿತವಾಗಿರುವ ಕೆಲಸಗಳನ್ನು ಸಮಾಂತರಗೊಳಿಸಬೇಡಿ. ಒಂದು ವೇಳೆ ಕೆಲಸ B ಗೆ ಕೆಲಸ A ನ ಔಟ್‌ಪುಟ್ ಅಗತ್ಯವಿದ್ದರೆ, ನೀವು ಅವುಗಳನ್ನು ಕ್ರಮಬದ್ಧವಾಗಿ ನಡೆಸಲೇಬೇಕು.
  • ಅತ್ಯಂತ ಸಣ್ಣ ಕೆಲಸಗಳನ್ನು ಸಮಾಂತರಗೊಳಿಸಬೇಡಿ. ಏಜೆಂಟ್ ಅನ್ನು ನಿರ್ವಹಿಸುವ ಹೊರೆ (overhead) ಕೆಲಸಕ್ಕಿಂತ ಹೆಚ್ಚು ಸಮಯ ತೆಗೆದುಕೊಳ್ಳಬಹುದು.
  • ರಿಟ್ರಿವಲ್ ವೇಗವನ್ನು (retrieval speed) ನಿರ್ಲಕ್ಷಿಸಬೇಡಿ. ನಿಮ್ಮ ಸಿಸ್ಟಮ್ ಡೇಟಾಬೇಸ್ ಲುಕ್‌ಅಪ್‌ಗಳಿಂದ (database lookups) ನಿಧಾನವಾಗಿದ್ದರೆ, LLM ಕರೆಗಳನ್ನು ಸಮಾಂತರಗೊಳಿಸುವುದು ಸಹಾಯ ಮಾಡುವುದಿಲ್ಲ.

ಸ್ಕೇಲ್ ಮಾಡಲು ಈ ಹಂತಗಳನ್ನು ಅನುಸರಿಸಿ:

  • ಮೊದಲು ನಿಮ್ಮ ಸಿಸ್ಟಮ್ ಅನ್ನು ಪ್ರೊಫೈಲ್ (profile) ಮಾಡಿ. ಸಮಯವು ವಾಸ್ತವವಾಗಿ ಎಲ್ಲಿ ವ್ಯರ್ಥವಾಗುತ್ತಿದೆ ಎಂಬುದನ್ನು ಕಂಡುಕೊಳ್ಳಿ.
  • ನಿರ್ದಿಷ್ಟ ಪಾತ್ರಗಳಿಗಾಗಿ ವಿಶೇಷ ಏಜೆಂಟ್‌ಗಳನ್ನು ಬಳಸಿ.
  • ಕೋಡ್ ಬರೆಯುವ ಮೊದಲು ನಿಮ್ಮ ಡಿಪೆಂಡೆನ್ಸಿ ಗ್ರಾಫ್ ಅನ್ನು (dependency graph) ರೂಪಿಸಿ.

AI ಏಜೆಂಟ್ ಅನ್ನು ನಿರ್ಮಿಸುವುದು ಎರಡು ವಿಭಿನ್ನ ಸಮಸ್ಯೆಗಳು. ಒಂದು ಏಜೆಂಟ್ ಏನು ಮಾಡುತ್ತದೆ ಎಂಬುದು. ಇನ್ನೊಂದು ಏಜೆಂಟ್ ನಿಮ್ಮ ಸಿಸ್ಟಮ್‌ನಲ್ಲಿ ಹೇಗೆ ಹೊಂದಿಕೊಳ್ಳುತ್ತದೆ ಎಂಬುದು.

ಪ್ರೊಡಕ್ಷನ್ ಸಿಸ್ಟಮ್‌ಗಳು (Production systems) ಎರಡನೇ ಸಮಸ್ಯೆಯ ಮೇಲೆ ಬದುಕುತ್ತವೆ ಅಥವಾ ವಿಫಲವಾಗುತ್ತವೆ.

ನೀವು ಮಿತಿಯನ್ನು ತಲುಪಿದರೆ, ಕೇವಲ ದೊಡ್ಡ ಮಾಡೆಲ್ ಅನ್ನು ಖರೀದಿಸಬೇಡಿ. ಮೊದಲು ನಿಮ್ಮ ಸಿಸ್ಟಮ್ ಮ್ಯಾಪ್ ಅನ್ನು ಬಿಡಿಸಿ. ಆಗ ಆರ್ಕಿಟೆಕ್ಚರ್ ನಿಜವಾದ ಸಮಸ್ಯೆಯಾಗಿರಬಹುದು ಎಂದು ನಿಮಗೆ ತಿಳಿಯಬಹುದು.

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

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