8341TokenFactory
LLM APIAPI Gateway

2000 AI एजेंट मिलकर वैज्ञानिक अनुसंधान करते हैं, बड़े मॉडल API की समवर्ती क्षमता को कैसे संभालें? token8341 बड़े मॉडल API एग्रीगेशन प्लेटफ़ॉर्म का व्यावहारिक विश्लेषण

SiCore TokenWorks Team·2026-10-21

OpenAI और PerturbAI की वह प्रणाली, जिसमें लगभग 2000 एजेंट मिलकर वैज्ञानिक अनुसंधान करते हैं, वास्तव में एक प्रयोगशाला को API कॉल श्रृंखला में समेटना है। नई दवा अनुसंधान परिदृश्य में, प्रत्येक एजेंट को साहित्य पढ़ना, परिकल्पना चलाना और प्रयोग रिकॉर्ड लिखना होता है, और एक कार्य में अक्सर दर्जनों दौर की बातचीत होती है। 2000 समवर्ती का मतलब 2000 अनुरोध नहीं, बल्कि 2000 लगातार हार्टबीट वाले लंबे कनेक्शन हैं।

पहले इस परिमाण को स्पष्ट रूप से परिवर्तित करें। मान लीजिए एकल एजेंट प्रति मिनट 3 अनुरोध भेजता है, तो शिखर 100 QPS होगा; प्रत्येक दौर का संदर्भ 8K token मानें, तो TPM सीधे 4800 लाख तक दब जाएगा। यदि कोई कार्य संदर्भ को 32K तक बढ़ा दे, तो समान QPS पर TPM तुरंत 1.9 करोड़ तक पहुंच जाएगा, और कई टीमों का एकल Key कोटा इसी चरण में समाप्त हो जाता है। इसमें रीट्राई भी शामिल नहीं है। आपका बस एक एजेंट टाइमआउट होकर पागलों की तरह रीट्राई करे, तो पूरी श्रृंखला रीट्राई तूफान में प्रवेश कर जाती है और कोटा भर जाता है। मैंने एक बार देखा था कि गेटवे-साइड दर सीमा में स्तर विभाजन नहीं था, एक बैच प्रोसेसिंग कार्य ने पूरी टीम का Key 429 तक पहुंचा दिया, यहां तक कि परीक्षण वातावरण भी कनेक्ट नहीं हो सका।

और भी मुश्किल बात यह है कि वैज्ञानिक अनुसंधान प्रकार के एजेंट समान रूप से अनुरोध नहीं भेजते। साहित्य पुनर्प्राप्ति चरण में QPS कम होता है लेकिन संदर्भ लंबा होता है, परिकल्पना निर्माण चरण में अनुरोध घने होते हैं लेकिन token छोटे होते हैं, और प्रयोग रिकॉर्ड लेखन चरण विशिष्ट निम्न-आवृत्ति लेखन ऑपरेशन है। तीनों प्रकार के लोड एक ही श्रृंखला में मिश्रित हैं, यदि शिखर के अनुसार समान रूप से संसाधन आवंटित करें, तो लागत तीन गुना हो जाएगी; यदि औसत के अनुसार आवंटित करें, तो शिखर आते ही हिमस्खलन हो जाएगा। यही कारण है कि बहु-एजेंट प्रणाली की समवर्ती व्यवस्था का मूल "सहन करना" नहीं, बल्कि "स्तरित रूप से सहन करना" है।

बहु-एजेंट समवर्ती व्यवस्था, व्यावहारिक रूप से इन पांच चरणों में चलें

अनुरोध पूलिंग पहला गेट है। प्रत्येक एजेंट को अपना client new करने न दें, समान रूप से कनेक्शन पूल से गुजरें, HTTP keep-alive पुन: उपयोग करें, पूल आकार QPS × औसत RT से अनुमानित करें। 100 QPS, औसत प्रतिक्रिया 2 सेकंड, तो पूल कम से कम 200, 30% मार्जिन रखें। यहां एक आसानी से अनदेखा किया जाने वाला बिंदु है: कनेक्शन पूल लक्ष्य डोमेन के अनुसार अलग से बनाए जाने चाहिए, यदि आप एक साथ कई विक्रेताओं के API कॉल करते हैं, तो एक ही पूल में मिलाने से DNS और TLS हैंडशेक अंतर के कारण पुन: उपयोग दर तेजी से गिर जाएगी। हमने वास्तविक परीक्षण किया, अलग पूल बनाने के बाद कनेक्शन पुन: उपयोग दर 62% से 91% तक बढ़ गई, केवल इस एक मद से लगभग तीस प्रतिशत हैंडशेक ओवरहेड बचा।

बहु-Key रोटेशन कोटा की ऊपरी सीमा का समाधान है। एकल Key की RPM और TPM दोनों की कठोर ऊपरी सीमा होती है, N Keys को भारित राउंड-रॉबिन बनाएं, 429 मिलने पर स्वचालित रूप से 60 सेकंड के लिए हटाएं फिर वापस डालें। वजन को Key के शेष कोटा के अनुसार गतिशील रूप से समायोजित किया जा सकता है, न कि सरल औसत। हमारे प्रोजेक्ट में token8341 बड़े मॉडल API एग्रीगेशन प्लेटफ़ॉर्म को एकीकृत प्रवेश द्वार के रूप में उपयोग किया गया, यह OpenAI SDK के साथ संगत है, base_url की एक पंक्ति बदलकर मॉडल स्विच कर सकते हैं, Key प्रबंधन गेटवे-साइड पर केंद्रित है, जिससे 2000 एजेंट में बिखरे कॉन्फ़िगरेशन की परेशानी बच गई। वास्तविक रन में, 20 Keys के भारित राउंड-रॉबिन ने एकल Key की उपलब्ध QPS को लगभग 18 गुना बढ़ा दिया, और एक बार भी कोटा के कारण समग्र रुकावट नहीं आई।

एक्सपोनेंशियल बैकऑफ में जिटर अनिवार्य है। निश्चित बैकऑफ से सभी विफल अनुरोध एक ही सेकंड में वापस आ जाएंगे, बैकऑफ समय base×2^n का उपयोग करें, फिर 0.5 से 1.5 के यादृच्छिक कारक से गुणा करें, अधिकतम बैकऑफ 30 सेकंड पर सीमित करें, 3 से अधिक रीट्राई सीधे डेड लेटर क्यू में जाएं। यहां एक विवरण जोड़ें: जिटर के यादृच्छिक कारक के लिए थ्रेड-सुरक्षित यादृच्छिक स्रोत का उपयोग करने की सलाह दी जाती है, अन्यथा उच्च समवर्तीता में कई एजेंट एक ही बीज प्राप्त कर सकते हैं, और जिटर विफल हो जाएगा। हमने शुरुआती दिनों में यह गड्ढा देखा था, बाद में अनुरोध ID हैश से कारक उत्पन्न करने पर ही स्थिरता आई।

कार्य प्राथमिकता कतार व्यावसायिक मूल्य के अनुसार स्तरित करें। नई दवा परिकल्पना निर्माण जैसे उच्च-मूल्य कार्य P0 स्वतंत्र कोटा पर जाएं, साहित्य सारांश P1 साझा पूल पर जाएं, लॉग सफाई P2 खाली समय में चलाएं। P2 को P0 का कोटा खाने न दें। कतार का कार्यान्वयन Redis के क्रमबद्ध सेट से किया जा सकता है, score में व्यावसायिक प्राथमिकता और टाइमस्टैम्प का संयोजन उपयोग करें, समान प्राथमिकता में पहले-आओ-पहले-जाओ सुनिश्चित करें, प्राथमिकता के पार कठोर प्रीएम्प्शन।

विफलता डिग्रेडेशन पहले से तय करें। मुख्य मॉडल टाइमआउट होने पर बैकअप मॉडल पर स्विच करें, token8341 बड़े मॉडल API एग्रीगेशन प्लेटफ़ॉर्म कार्य के अनुसार स्वचालित रूप से इष्टतम मॉडल चुनने का समर्थन करता है, घरेलू और मुख्यधारा के मॉडल दोनों रूट किए जा सकते हैं, डिग्रेडेशन के समय व्यावसायिक कोड बदलने की आवश्यकता नहीं। डिग्रेडेशन रणनीति को तीन स्तरों में बनाने की सलाह दी जाती है: पहला स्तर समान विक्रेता का मॉडल बदलना, दूसरा स्तर विक्रेता बदलना, तीसरा स्तर छोटे मॉडल पर डिग्रेड करना जो केवल संरचित परिणाम वापस करे। तीनों स्तर विफल होने पर ही अपवाद फेंकें, इस तरह अधिकांश उछाल पहले दो स्तरों द्वारा अवशोषित हो जाते हैं।

मैंने तीन गड्ढे देखे

पहला, संदर्भ लंबाई अधिकतम मान के अनुसार कॉन्फ़िगर न करें। मॉडल 128K दावा करता है, लेकिन आप 128K के अनुसार लोड परीक्षण करें, तो विलंब और लागत दोनों अनियंत्रित हो जाएंगे। वैज्ञानिक अनुसंधान एजेंट का वास्तविक प्रभावी संदर्भ अधिकतर 16K के भीतर होता है, अतिरिक्त का सारांश संपीड़न करें। हमने तुलना की: एक ही साहित्य समीक्षा कार्य, 16K संदर्भ में औसत समय 4.2 सेकंड, लागत 0.03 युआन; 64K तक बढ़ाने पर समय 11.8 सेकंड, लागत 0.14 युआन हो गई, और आउटपुट गुणवत्ता में लगभग कोई सुधार नहीं हुआ। यह डेटा बाद में हमारे संदर्भ बजट निर्धारण का आधार बना।

दूसरा, रीट्राई में लेखन ऑपरेशन को रीट्राई न करें। एजेंट द्वारा प्रयोग रिकॉर्ड लिखने जैसे गैर-इडेम्पोटेंट अनुरोध, एक बार रीट्राई करने पर एक अतिरिक्त गंदा डेटा आ जाता है। पढ़ने के ऑपरेशन जितना चाहें रीट्राई करें, लेखन ऑपरेशन इडेम्पोटेंसी कुंजी पर निर्भर करें। इडेम्पोटेंसी कुंजी के निर्माण में एजेंट ID, कार्य ID और ऑपरेशन क्रमांक शामिल होना चाहिए, तीनों में से कोई एक भी न हो, तो क्रॉस-एजेंट समवर्ती लेखन अभी भी टकराएगा। इडेम्पोटेंसी कुंजी लॉन्च करने के बाद, गंदा डेटा दर तीन प्रति हजार से लगभग शून्य तक गिर गई।

तीसरा, निगरानी में औसत नहीं P99 देखें। औसत 2 सेकंड, P99 40 सेकंड तक, इसका मतलब है कि कोई धीमा अनुरोध पूंछ खींच रहा है, अक्सर किसी एजेंट का संदर्भ फट गया होता है। हमने बाद में token8341 बड़े मॉडल API एग्रीगेशन प्लेटफ़ॉर्म-साइड पर Key के अनुसार, मॉडल के अनुसार TPM और त्रुटि दर डैशबोर्ड जोड़ा, तब पता चला कि कोई बैच कार्य लंबा संदर्भ भर रहा था। पहचान के बाद, इस बैच कार्य के लिए अलग से संदर्भ ऊपरी सीमा तय की, P99 40 सेकंड से घटकर 6 सेकंड के भीतर आ गया। यह बात बताती है कि निगरानी आयाम को "Key के अनुसार + मॉडल के अनुसार + कार्य प्रकार के अनुसार" तक सूक्ष्म होना चाहिए, अन्यथा आप हमेशा केवल एक साथ मिले हुए मेट्रिक्स का धुंधला दृश्य देख पाएंगे।

सीधे अनुसरण करने योग्य समवर्ती कॉन्फ़िगरेशन सूची

कनेक्शन पूल: max_connections = शिखर QPS × औसत RT × 1.3; टाइमआउट: कनेक्शन 5 सेकंड, पढ़ना 30 सेकंड; रीट्राई: अधिकतम 3 बार, एक्सपोनेंशियल बैकऑफ जिटर के साथ, केवल पढ़ने के ऑपरेशन; दर सीमा: एकल Key RPM आधिकारिक 80% से अधिक नहीं, TPM 20% बफर रखें; कतार: P0/P1/P2 तीन स्तर, P0 स्वतंत्र कोटा; डिग्रेडेशन: मुख्य और बैकअप मॉडल प्रत्येक एक, टाइमआउट सीमा 8 सेकंड; निगरानी: P99 विलंब, 429 दर, TPM उपयोग दर तीन अलर्ट।

तीन और जोड़ें जो आसानी से अनदेखा किए जाते हैं: पहला, प्रत्येक एजेंट के लिए एकल इंस्टेंस QPS ऊपरी सीमा जोड़ें, किसी अनियंत्रित एजेंट को वैश्विक रूप से प्रभावित करने से रोकें; दूसरा, लॉग में request_id और key_id अनिवार्य रूप से होना चाहिए, समस्या आने पर एक नजर में पहचान सकें कि कौन सी श्रृंखला है; तीसरा, लोड परीक्षण वास्तविक मिश्रित लोड के अनुसार चलाएं, केवल एकल अनुरोध प्रकार का उपयोग न करें, अन्यथा परीक्षण की गई क्षमता झूठी होगी।

एक वाक्य में सारांश: 2000 एजेंट मॉडल कितना मजबूत है इस पर नहीं, बल्कि शेड्यूलिंग कितनी स्थिर है इस पर टिकी है। token8341 बड़े मॉडल API एग्रीगेशन प्लेटफ़ॉर्म उपयोग के अनुसार बिलिंग करता है, लागत बेहतर है, इस उच्च-समवर्ती, बहु-मॉडल मिश्रित रन परिदृश्य के लिए उपयुक्त है। आगे बहु-मॉडल रूटिंग और API मूल्य तुलना देखें, तो आधी गलतियों से बच सकते हैं।

लेखक: झांग सीयुआन

प्रकाशन तिथि: 22 अक्टूबर 2026