llama.cpp प्रोजेक्ट में Granite-Switch आर्किटेक्चर का समर्थन पेश किया गया है, जो एक घना मॉडल वेरिएंट है जिसमें N एम्बेडेड LoRA एडाप्टर्स हैं जो कंट्रोल टोकन के माध्यम से प्रति-टोकन चुने जाते हैं। यह कार्यान्वयन एडाप्टर इंडेक्स को हल करने के लिए एक पूर्व प्रूफ-ऑफ-कॉन्सेप्ट ग्लोबल स्टिकी इंडेक्स की जगह इन-ग्राफ कैजुअल "राउटर" एटेंशन मशीनिज़्म से लेता है।
- नया राउटर ग्राफ के भीतर एडाप्टर इंडेक्स को पुनः प्राप्त करने के लिए एक सिंगल-हेड कैजुअल एटेंशन परत का उपयोग करता है, जिससे उन कन्करेंसी समस्याओं को ठीक किया गया जहां पहले कई सीक्वेंस एक-दूसरे में एडाप्टर स्टेट्स लीक कर देते थे।
- राउटर की कुंजियों और मानों को प्रति-सीक्वेंस KV कैश में संग्रहीत करके, कन्करेंट अनुरोध अब अलग-अलग हैं, बिना ग्लोबल स्टेट मैनेजमेंट की आवश्यकता के।
- आर्किटेक्चर मिड-सीक्वेंस स्विचिंग का समर्थन करता है, जिससे एक ही सीक्वेंस के भीतर उत्तर देने की क्षमता या क्वेरी रीराइटिंग जैसे विशिष्ट कार्यों के लिए अलग-अलग एडाप्टर्स सक्रिय किए जा सकते हैं।
- एक ज्ञात सीमा यह है कि एक बार जब कोई एडाप्टर किसी सीक्वेंस में फायर करता है, तो वह तब तक सक्रिय रहता है जब तक कि सीक्वेंस समाप्त नहीं हो जाता, क्योंकि राउटर गेन समतल है और इसमें रिसेंसी बायस की कमी है।
यह बदलाव मॉडल को फिर से लोड किए बिना विशेष एडाप्टर्स के बीच गतिशील रूप से स्विच करते हुए CPU पर कुशल बहु-कार्य इनफरेंस को सक्षम बनाता है, जबकि कन्करेंट बैच्ड अनुरोधों के लिए अलगाव बनाए रखता है।