रिलीज़ साइकल से नोट्स — भाग 8 (अंतिम)
आप पोस्ट 7 से रिग्रेशन सूट शिप करते हैं। यह काम करता है। स्लाइस-अवेयर गेट्स असली बग्स पकड़ते हैं। कैलिब्रेटेड जज टिकता है।
फिर आपका इंजीनियरिंग लीड पूछता है कि हर PR पर इसे चलाने में कितना खर्च आता है। आप गुणा करते हैं: ~12 मिनट जज इन्फरेंस प्रति PR, दिन में 60 PRs, चार डाइमेंशन × सत्रह स्लाइसेस, और बिल असली पैसा है। और बुरा यह कि हर डेवलपर अब एक-लाइन प्रॉम्प्ट टाइपो पर ग्रीन चेक के लिए 12 मिनट इंतज़ार कर रहा है। वेलोसिटी गिरती है[1], टीम बड़बड़ाती है, कोई सुझाव देता है “बस गेट्स को रात में चलाओ” — जो ठीक वही तरीका है जिससे आप वह सब कुछ छोड़ देते हैं जो गेट्स को करना था।
समाधान कम टेस्टिंग नहीं है। समाधान है लेयर्स में टेस्टिंग, जहाँ ज़्यादातर सिग्नल पहले नब्बे सेकंड में आ जाए। यह पोस्ट उसी के बारे में है जो गेट सूट के नीचे चलता है: सब-सेकंड कॉन्ट्रैक्ट टेस्ट्स, एक टाइट स्मोक लेयर, एक कॉस्ट-अवेयर फ्लीट, और किसी भी नए गेट के किसी को ब्लॉक करने से पहले दो-सप्ताह की शैडो विंडो।
यह पोस्ट 8 है, इस सीरीज़ की अंतिम। अंत तक आपके पास पूरी तस्वीर होगी — फोर-स्टेज पाइपलाइन से लेकर उस कॉन्ट्रैक्ट-टेस्ट फिक्स्चर तक जो हर कमिट पर चलता है।
कस्टम लैंग्वेज मॉडल के लिए CI का क्या मतलब है?
कस्टम LLM के लिए CI वह काम है जो गेट सूट को दोहराना नहीं पड़े। गेट सिमैंटिक क्वालिटी स्कोर करता है; CI वह सब कुछ पकड़ता है जो गेट के स्कोर को बेमतलब बना देगा — इससे पहले कि गेट एक भी जज टोकन खर्च करे।
कॉन्ट्रैक्ट टेस्ट्स मिलीसेकंड्स में चलते हैं और सत्यापित करते हैं कि प्रॉम्प्ट टेम्पलेट्स अभी भी रेंडर करते हैं, टूल-कॉल स्कीमा अभी भी पार्स करते हैं, रिट्रीवल इंडाइसेस अभी भी रिस्पॉन्ड करते हैं, मैनिफ़ेस्ट अभी भी उन हैशेज़ को रेफ़र करता है जो वास्तव में मौजूद हैं। ये डिटरमिनिस्टिक हैं, मुफ़्त हैं, और एकमात्र कारण हैं कि बाकी पाइपलाइन का अस्तित्व मुमकिन है। एक पुल रिक्वेस्ट जो प्रॉम्प्ट टेम्पलेट तोड़ती है उसे 200 ms में फेल होना चाहिए, न कि 12 मिनट के जज इन्फरेंस के बाद बकवास स्कोर करते हुए।
कॉन्ट्रैक्ट लेयर ही वह फ़र्क है जो CI बिल को PR वॉल्यूम के साथ रैखिक रूप से स्केल होने से बचाता है। Divinci का CI रनर अपना > 90% जज बजट असली सिमैंटिक मूल्यांकन पर खर्च करता है, न कि उन PRs पर जो स्कीमा चेक में फेल हो जाते। यह अनुपात ही मुख्य आँकड़ा है।
पारंपरिक CI LLMs के लिए क्यों टूटती है — कॉस्ट लेंस से
पोस्ट 1 और 7 ने बताया कि क्यों डिटरमिनिस्टिक CI जेनरेटिव मॉडल के लिए फेल होती है। इस पोस्ट में उसी कहानी का संस्करण उन चार गुणों के कॉस्ट के बारे में है, न कि उनके अस्तित्व के बारे में।
| LLMs का गुण | पारंपरिक-CI का फेलियर | कॉस्ट का स्वरूप |
|---|---|---|
| नॉन-डिटरमिनिस्टिक आउटपुट | एक्ज़ैक्ट-मैच असर्शन्स फ्लेक करते हैं | री-रन फ्लेक दर के साथ कॉस्ट को रैखिक रूप से बढ़ाते हैं |
| मल्टी-डाइमेंशनल क्वालिटी | सिंगल बूलियन बेमतलब है | हर डाइमेंशन एक अलग (पेड) जज कॉल है |
| प्रोवाइडर ड्रिफ्ट | पिन किया हुआ gpt-4-2024-01-01 चुपचाप रिटायर हो जाता है | जब प्रोवाइडर चेकपॉइंट सनसेट करता है तब रीकैलिब्रेशन बर्स्ट |
| नॉन-लोकल प्रॉम्प्ट इफेक्ट्स | लोकल यूनिट टेस्ट प्रभाव नहीं पकड़ सकता | डिस्ट्रिब्यूशन-शेप PRs के बीच बदलता है, उनके अंदर नहीं — पूरे सूट के री-रन की ज़रूरत, डेल्टा की नहीं |
CI आर्किटेक्चर को इनमें से हर एक को अफ़ोर्डेबल बनाना है। कॉन्ट्रैक्ट टेस्ट्स प्रॉपर्टी 1 और 3 को सस्ते में संभालते हैं। स्मोक टेस्ट्स प्रॉपर्टी 4 को आंशिक रूप से संभालते हैं। केवल फुल सूट प्रॉपर्टी 2 को संभालता है — और केवल उन PRs पर जिन्हें वास्तव में इसकी ज़रूरत है।
CI लेयर केक — सब-सेकंड से पच्चीस मिनट तक
जो आर्किटेक्चर हम शिप करते हैं वह चार लेयर्स का है, हर एक अपने कंप्यूट को उसी से कमाती है जिसे उसके नीचे की सस्ती लेयर्स नहीं पकड़ सकतीं। हर लेयर का स्लाइस-अवेयर फ्रेमिंग उसी सबक का पालन करता है जिसे तियानपन सेमवर लाई पोस्टमॉर्टम ने स्पष्ट किया था[4]: एग्रीगेट सिग्नल्स झूठ बोलते हैं; पर-स्लाइस सिग्नल्स वह पकड़ते हैं जो एग्रीगेट छिपाते हैं।
कॉस्ट का स्वरूप ही डिज़ाइन है। ~74% PRs कभी जज टोकन खर्च नहीं करते — कॉन्ट्रैक्ट या स्मोक काफ़ी है। जो PRs फुल सूट तक पहुँचते हैं वे वही हैं जिन्होंने प्रॉम्प्ट, मॉडल कॉन्फ़िग, रिट्रीवल इंडेक्स, या मूल्यांकन कोड को छुआ — ठीक वही बदलाव जहाँ गेट सूट ही एकमात्र भरोसेमंद सिग्नल है। रिलीज़ कैंडिडेट्स वह छोटा हिस्सा हैं जो लेयर 4 तक पहुँचता है।
कॉन्ट्रैक्ट टेस्ट्स — असमान फ़ायदा
कॉन्ट्रैक्ट टेस्ट्स पहली पंक्ति हैं, सबसे सस्ती पंक्ति हैं, और वह पंक्ति हैं जिसे ज़्यादातर टीमें छोड़ देती हैं क्योंकि वे “AI मूल्यांकन पाइपलाइन” की गरिमा से नीचे लगती हैं। ये भी वही हैं जहाँ हमारे ग्राहकों के सूट में 30–40% संभावित रिग्रेशन्स वास्तव में फेल होते हैं, इससे पहले कि एक भी जज को कॉल किया जाए।
कॉन्ट्रैक्ट लेयर पाँच चीज़ें असर्ट करती है और कुछ नहीं:
- प्रॉम्प्ट-टेम्पलेट रेंडर। हर टेम्पलेट एक कैनोनिकल फिक्स्चर के विरुद्ध बिना अनबाउंड वेरिएबल्स, रनअवे लूप्स, या टूटे Jinja-स्टाइल इंक्लूड्स के रेंडर करता है।
- टूल-कॉल स्कीमा। हर डिक्लेयर्ड टूल का आर्गुमेंट स्कीमा पार्स करता है, JSONSchema वैलिड है, और रेंडर्ड प्रॉम्प्ट वास्तव में सभी ज़रूरी स्लॉट्स को रेफ़र करता है।
- मैनिफ़ेस्ट इंटीग्रिटी। रिलीज़ मैनिफ़ेस्ट में हर SHA — मॉडल, प्रॉम्प्ट, रिट्रीवल इंडेक्स, जज, डेटासेट — रजिस्ट्री में मौजूद एक आर्टिफ़ैक्ट से मेल खाता है। डैंगलिंग पॉइंटर्स यहाँ फेल होते हैं, तीन लेयर्स अंदर नहीं।
- इंडेक्स लाइवनेस। रिट्रीवल इंडेक्स बजट के भीतर एक ज्ञात क्वेरी को रिस्पॉन्ड करता है। एक रीबिल्ट इंडेक्स जिसने रिट्रीवल को चुपचाप तोड़ा वह यहाँ सामने आता है, प्रोडक्शन में नहीं।
- डेनीलिस्ट और टोकन-बजट। कोई भी प्रॉम्प्ट टेम्पलेट जिसने एक निषिद्ध टोकन डाला, पर-कॉल टोकन बजट उड़ा दिया, या कॉन्टेक्स्ट विंडो से आगे रेंडर किया, यहाँ फेल होता है। हीयूरिस्टिक सिमैंटिक-सिमिलैरिटी स्कोरिंग[6] भी इतनी सस्ती है कि कॉन्ट्रैक्ट लेयर पर फ़ज़ी-मैच डेनीलिस्ट कवरेज के लिए चलाई जा सके, जहाँ लिटरल-स्ट्रिंग मैचिंग अपर्याप्त है।
# एक प्रतिनिधि कॉन्ट्रैक्ट टेस्ट इनवोकेशन — लगभग 600 ms में चलता है
divinci ci contract \
--manifest release/staging.yaml \
--check schema,template,manifest,index,denylist \
--fail-fast \
--json-out /tmp/contract-report.jsonइनमें से कोई भी जज को कॉल नहीं करता। कोई भी नॉन-डिटरमिनिस्टिक नहीं है। किसी की भी मापने योग्य कीमत नहीं है। और इनमें से हर एक उस पूरी श्रेणी के “गेट सूट ने कहा मेडिकल स्लाइस रिग्रेस हुआ” अलर्ट्स को रोकता है जो 12 मिनट के जज इन्फरेंस को उस आउटपुट को स्कोर करने में बर्बाद कर देते जिसे मॉडल पहले स्थान पर कभी सही से प्रोड्यूस नहीं कर सकता था।
स्मोक लेयर — 90 सेकंड, ~$0.05 प्रति PR
यदि कॉन्ट्रैक्ट लेयर सस्ता असमान फ़ायदा है, तो स्मोक लेयर वह है जो वास्तव में एक कॉफ़ी की कीमत से कम में रिग्रेशन्स पकड़ता है। बीस से तीस केसेस सबसे अधिक वॉल्यूम वाले स्लाइसेस से लिए जाते हैं, केवल टास्क कम्प्लीशन और सेफ्टी पर स्कोर किए जाते हैं, कोई फेथफुलनेस नहीं, कोई लेटेंसी नहीं, कोई रिट्रीवल-ग्राउंडेड चेक्स नहीं। हर PR यह चलाता है। इसमें लगभग 90 सेकंड लगते हैं क्योंकि केसेस को एक स्ट्रक्चर्ड-आउटपुट स्कीमा के साथ एक ही जज कॉल में बैच किया जाता है, और क्योंकि जज सस्ता कैलिब्रेटेड जज है — रिलीज़ कैंडिडेट्स के लिए उपयोग किया जाने वाला फुल-क्वालिटी वाला नहीं।
हम ट्रैक करते हैं कि किस लेयर ने हर शिप किए गए फिक्स को रिग्रेशन लॉग में पकड़ा, और हिस्टोग्राम पिछले छह महीनों में ग्राहक डिप्लॉयमेंट्स में सुसंगत रहा है:
जो 3% बच निकलते हैं, उन्हीं के लिए पोस्ट 5 का इंस्टैंट रोलबैक मौजूद है। गेट्स ज़ीरो एस्केप का वादा नहीं करते; वे एक टाइट ऊपरी बाउंड और जो निकल जाए उसके लिए तेज़ रिकवरी का वादा करते हैं।
CI फ्लीट साइज़िंग — 12-मिनट का सूट सस्ता कैसे रहता है
फुल-सूट लेयर वह जगह है जहाँ गणित को काम करना है। एक नेव कार्यान्वयन जज को हर केस-प्रति-डाइमेंशन एक बार कॉल करता है, उन्हें क्रमिक रूप से चलाता है, और बिल केस काउंट के साथ रैखिक रूप से स्केल करता है। तीन अनुकूलन इसे संभाल योग्य रखने का अधिकांश काम करते हैं:
एम्बेडिंग कैश। हर गोल्डन-डेटासेट केस के लिए रिट्रीवल-कॉन्टेक्स्ट फिंगरप्रिंट हैश किया जाता है; यदि केस बदला नहीं है और रिट्रीवल इंडेक्स बदला नहीं है, तो कैश की गई एम्बेडिंग चलती है और रिट्रीवल स्टेप छोड़ दिया जाता है। पहले स्थिर सप्ताह के बाद हिट दर हमारे ग्राहक डिप्लॉयमेंट्स में लगातार 90% से ऊपर है।
जज बैचिंग। कैलिब्रेटेड जज को स्ट्रक्चर्ड आउटपुट के साथ कॉल किया जाता है, प्रति कॉल 8–16 केसेस बैच करते हुए। जज की पर-टोकन कॉस्ट वही रहती है; पर-केस ओवरहेड गिरती है क्योंकि सिस्टम प्रॉम्प्ट बैच में अमॉर्टाइज़ हो जाता है। सुरक्षित बैचिंग की थ्रेशोल्ड उस बैच साइज़ पर जज के अपने कैलिब्रेटेड एग्रीमेंट से तय होती है[2] — हम इसे साप्ताहिक जज-कैलिब्रेशन पास के दौरान मापते हैं (पोस्ट 7)।
केसेस के बीच KV-कैश पुन: उपयोग। उन मॉडल्स के लिए जहाँ वही सिस्टम प्रॉम्प्ट और टूल डेफ़िनिशन हर कॉल को शुरू करते हैं, उस प्रीफ़िक्स के लिए KV कैश सूट रन में एक बार गणना किया जाता है, हर केस में एक बार नहीं[3]। ओपन-वेट्स डिप्लॉयमेंट्स पर यह सीधा है; क्लोज़्ड-API मॉडल्स पर यह प्रोवाइडर के प्रीफ़िक्स-कैशिंग सपोर्ट पर निर्भर करता है।
संयुक्त प्रभाव फुल सूट को ऊपर लेयर-केक डायग्राम में दिखाए गए कॉस्ट आँकड़ों के लगभग बराबर लाता है। सटीक आँकड़े आंतरिक हैं, लेकिन अनुपात ही सार्वजनिक दावा है: ~74% PRs ज़ीरो जज डॉलर्स खर्च करते हैं; ~22% पैनी खर्च करते हैं; बाकी 4% सबसे अधिक भरोसे वाले प्री-रोलआउट सिग्नल के लिए कुछ डॉलर्स खर्च करते हैं जो हम प्रोड्यूस करना जानते हैं।
शैडो CI — टीम को तोड़े बिना इसे चालू करें
एक ही गलती जो हमने टीमों को सबसे अधिक करते देखा है वह है नए गेट को पहले दिन “ऑफ़” से “ब्लॉकिंग” पर फ़्लिप करना। थ्रेशोल्ड्स कल के डेटा पर ट्यून किए गए थे, फॉल्स-पॉज़िटिव दर अज्ञात है, और जब गेट पहली बार फायर करता है तो टीम के पास यह तय करने के लिए कोई कैलिब्रेशन नहीं है कि यह असली है या झूठा अलार्म। ऑन-कॉल eval इंजीनियर को पेज किया जाता है, गेट डिसेबल हो जाता है, ट्रस्ट चला जाता है, प्रोजेक्ट मर जाता है।
समाधान है शैडो CI: नए गेट को दो सप्ताह तक नॉन-ब्लॉकिंग चलाओ, हर PR पर परिणाम को बॉट कमेंट के रूप में पोस्ट करो, और इसे ब्लॉकिंग में फ़्लिप करने से पहले फॉल्स-पॉज़िटिव दर की साप्ताहिक समीक्षा करो। Divinci CI रनर के पास ठीक इसी के लिए एक --shadow फ्लैग है। PR कमेंट उसी तरह दिखता है जैसा अंततः ब्लॉकिंग संस्करण होगा — वही डिफ़ डिस्प्ले, वही पर-स्लाइस ब्रेकडाउन — सिवाय इसके कि यह मर्ज को गेट नहीं करता।
divinci ci run --layer=full --shadow --duration=14d --report-as=bot-commentजब विंडो में फॉल्स-पॉज़िटिव दर 5% से नीचे लगातार बनी रहती है, तब हम इसे फ़्लिप करते हैं। जब नहीं रहती, तो हम पर-स्लाइस थ्रेशोल्ड्स कसते हैं, जज को रीकैलिब्रेट करते हैं, और फिर से शैडो करते हैं। किसी भी तरह, टीम को पहले दिन फायर करने वाले एक नए गेट से चौंकाया नहीं जाता।
एक GitHub Actions वर्कफ़्लो जो वास्तव में कंपोज़ करता है
जो हिस्सा लेयर केक को आपके मौजूदा CI में बाँधता है वह .github/workflows/llm-ci.yaml में चलता है। लेयर्स इस तरह वायर्ड हैं कि सस्ती जल्दी फेल हो जाएँ और महँगी केवल तब चलें जब उन्हें चलने की ज़रूरत हो — needs: चेन्स और पाथ-फ़िल्टर्ड ट्रिगर्स यह काम करते हैं[5]।
name: LLM CI
on:
pull_request:
paths:
- 'prompts/**'
- 'config/models.yaml'
- 'eval/**'
- 'retrieval/**'
- 'manifests/**'
jobs:
contract:
runs-on: ubuntu-latest
timeout-minutes: 2
steps:
- uses: actions/checkout@v4
- run: divinci ci contract --manifest manifests/staging.yaml --fail-fast
smoke:
needs: contract
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- run: divinci ci run --layer=smoke --post-pr-comment
env:
DIVINCI_API_KEY: ${{ secrets.DIVINCI_API_KEY }}
full:
needs: smoke
if: contains(steps.changes.outputs.paths, 'prompts/') || contains(steps.changes.outputs.paths, 'config/models.yaml')
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@v4
- run: divinci ci run --layer=full --post-pr-comment --gate
env:
DIVINCI_API_KEY: ${{ secrets.DIVINCI_API_KEY }}तीन बातें ध्यान देने योग्य हैं। लेयर्स needs: के माध्यम से चेन होती हैं, इसलिए स्मोक एक टूटे कॉन्ट्रैक्ट पर नहीं चलता और फुल टूटे स्मोक पर नहीं चलता। full जॉब उन बदलावों पर पाथ-फ़िल्टर्ड है जो वास्तव में 12-मिनट के रन के लायक हैं — README में एक टाइपो फिक्स गेट सूट को ट्रिगर नहीं करता। --post-pr-comment फ्लैग वही है जो GitHub छोड़े बिना पर-स्लाइस डिफ़ को दृश्यमान बनाता है।
फेल्ड-PR डीबग लूप
“गेट फायर हुआ” का दूसरा आधा है “मुझे दिखाओ क्यों।” medical slice task-completion dropped 0.04 का रिग्रेशन-सूट आउटपुट उन केसेस के बिना अनएक्शनेबल है जिन्होंने इसे ट्रिगर किया। हम PR कमेंट में पाँच सबसे ख़राब पर-स्लाइस डिफ़ सामने लाते हैं, मूल इनपुट, बेसलाइन आउटपुट, कैंडिडेट आउटपुट, और जज के रीज़निंग ट्रेस के साथ। डीबग लूप का मतलब है सेकंड्स लेना, मिनट्स नहीं:
# इस PR पर मेडिकल-स्लाइस गेट फायर करने वाले 5 सबसे ख़राब केसेस खींचें
divinci ci diffs --pr 1247 --slice medical --dimension task_completion --top 5यह वही डायग्नोस्टिक सरफ़ेस है जो पोस्ट 6 के सात-स्टेप ट्री में है, CI फ़ीडबैक लूप में वायर्ड। PR खोलने वाला इंजीनियर PR पर ही केस-लेवल साक्ष्य देखता है; उसे एक अलग eval डैशबोर्ड खोलने नहीं जाना पड़ता।
वर्ज़न-कंट्रोल अनुशासन — प्रॉम्प्ट्स, डेटासेट्स, जज कोड के रूप में
प्रॉम्प्ट टेम्पलेट्स, गोल्डन डेटासेट्स, और जज प्रॉम्प्ट्स सभी रेपो में रहते हैं, रिलीज़ मैनिफ़ेस्ट में हैश-पिन किए गए। मैनिफ़ेस्ट एकमात्र वस्तु है जो सूट को एक विशिष्ट पुनरुत्पादन योग्य स्थिति से बाँधती है:
# manifests/staging.yaml — हर CI रन इसे हैश करता है
release_id: rel-staging
model: { sha: 0c1f9…, weights: r2://models/custom-v7.2, open_weights: true }
prompt: { sha: c4a8e…, template: prompts/support/v3.4.j2 }
retrieval: { sha: b21f0…, index: r2://indices/kb-2026-04 }
judge: { sha: d8e21…, rubric: eval/rubrics/v7.yaml }
dataset: { sha: a90b1…, file: eval/datasets/golden-2026-04.jsonl }जब एक CI रन एक स्कोर पोस्ट करता है, स्कोर उस मैनिफ़ेस्ट हैश के साथ टैग किया जाता है। जब स्कोर हिलता है, तो “कौन सा इनपुट हिला” प्रश्न का एक सीधा उत्तर है: मैनिफ़ेस्ट को डिफ़ करें, और जो लेयर फायर हुई वह आपको बताती है कि पहले किस डाइमेंशन को देखना है। यह वह लूप है जिसे पोस्ट 1 की फोर-स्टेज पाइपलाइन और पोस्ट 4 की vindex रसीद मिलकर बंद करती हैं: मैनिफ़ेस्ट वह ऑडिट प्रिमिटिव है जिसकी ओर ये आठों पोस्ट्स, अलग-अलग फ्रेमिंग्स में, निर्माण करती रही हैं।
यह क्या हल नहीं करता
वही तीन ईमानदार सीमाएँ जिन्हें हम इस सीरीज़ की हर पोस्ट में लिख रहे हैं।
- CI वह टेस्ट नहीं करता जो सूट में नहीं है। चाहे लेयर केक कितनी भी चतुर हो, यह केवल वही रिग्रेशन्स पकड़ता है जिन्हें गोल्डन डेटासेट में कोई केस फ्लैग करता। रीप्ले लेयर इसे व्यवहार ड्रिफ़्ट के लिए कम करती है, लेकिन नई क्वेरीज़ जो कभी देखी ही नहीं गईं वे प्रोडक्शन में दिखने तक बच निकलती हैं। सिस्टम को प्रोडक्शन मॉनिटरिंग के साथ जोड़ा जाना ज़रूरी है।
- कॉस्ट संख्याएँ मॉडल मूल्य निर्धारण के साथ बदलती हैं। इस पोस्ट में हर कॉस्ट आँकड़ा जज टोकन दरों, एम्बेडिंग दरों, और इन्फरेंस दरों पर निर्भर करता है जो तिमाही दर तिमाही ड्रिफ़्ट करती हैं। अनुपात — 74% / 22% / 4%, 31% / 27% / 28% / 11% / 3% — लोड-बेयरिंग दावे हैं; डॉलर आँकड़े समय के एक क्षण के लिए दृष्टांत हैं।
- प्रोवाइडर-साइड चेकपॉइंट बदलाव अभी भी कठिन हैं। जब क्लोज़्ड-API प्रोवाइडर एक स्थिर नाम के पीछे मॉडल को चुपचाप अपडेट करता है, तो कॉन्ट्रैक्ट लेयर इसे नहीं पकड़ सकती; केवल गेट सूट पकड़ सकता है, और केवल बाद में। हम इसे जहाँ भी प्रोवाइडर समर्थन करता है वहाँ स्पष्ट चेकपॉइंट पहचानकर्ताओं को पिन करके, और चेकपॉइंट घोषित होने वाले दिन को फुल-सूट री-बेसलाइन के लिए ट्रिगरिंग घटना के रूप में देखकर कम करते हैं। हम अंतर्निहित समस्या को रोक नहीं सकते।
सीरीज़ का समापन
यह 8 की पोस्ट 8 है। पूरा आर्क:
- Divinci AI के साथ LLM CI/CD पाइपलाइन कैसे बनाएँ — फोर-स्टेज पाइपलाइन (रजिस्टर / गेट / रोल / ऑब्ज़र्व) जिसके अंदर तब से सब कुछ रहा है।
- कस्टम लैंग्वेज मॉडल्स में 10 CI/CD रिलीज़ फेलियर्स — नामित 2026 फेलियर मोड्स, हर एक उस स्टेज से मैप किया गया जो इसे पकड़ती।
- LLMs के लिए 12 QA और रिलीज़ मैनेजमेंट क्षमताएँ — क्षमता मैट्रिक्स और तीन-कैम्प्स वेन जो Divinci को विकल्पों के विरुद्ध रखता है।
- विनियमित क्षेत्रों में कस्टम LMs का सत्यापन और रिलीज़ — कम्प्लायंस डीप-डाइव, रेगुलेटर-टू-स्टेज मैपिंग, vindex रसीदें।
- इंस्टैंट रोलबैक के साथ ऑटोमेटेड LLM CI/CD पाइपलाइन्स — ऑपरेशनल लेयर, ऑटोमेशन स्पेक्ट्रम, ऑटो-रोलबैक रसीद।
- 7 स्टेप्स में कस्टम LLM QA फेलियर्स का निदान कैसे करें — डायग्नोस्टिक डिसीज़न ट्री; मॉडल लगभग सात में से एक अलर्ट में सही उत्तर है।
- 2026 में कस्टम LLMs के लिए ऑटोमेटेड रिग्रेशन टेस्टिंग — स्लाइस-अवेयर Spearman गेट्स, कैलिब्रेटेड जजेज़, क्लोज़्ड-लूप प्रोडक्शन-ट्रेस रीप्ले।
- यह पोस्ट। CI इंफ्रास्ट्रक्चर जो ऊपर वर्णित सब कुछ हर PR पर संभाल योग्य बनाती है।
टुकड़े मिलकर कंपोज़ करते हैं: मैनिफ़ेस्ट ऑडिट प्रिमिटिव है, गेट्स सेफ्टी लेयर हैं, डायग्नोस्टिक ट्री रिकवरी लूप है, vindex रसीद बाहरी एंकर है, और लेयर केक वह है जो पूरी चीज़ को हर कमिट पर चलाने के लिए अफ़ोर्डेबल बनाती है। यदि आपकी कस्टम-LLM रिलीज़ प्रक्रिया में ये पाँच एक साथ नहीं हैं, तो वह अंतर ही है जिसके बारे में ये आठ पोस्ट्स रही हैं।
FAQ
सबसे सस्ता टेस्ट कौन सा है जिसे मैं हर कमिट पर चला सकता हूँ?
एक प्रॉम्प्ट-टेम्पलेट रेंडर चेक। यह मिलीसेकंड्स में चलता है, किसी जज की ज़रूरत नहीं, ब्रेकेज का एक आश्चर्यजनक अंश पकड़ता है, और कभी मापने योग्य सेंट खर्च नहीं करता। यदि आप इसे अभी तक नहीं चला रहे हैं, तो यह CI का सबसे उच्च-ROI टुकड़ा है जिसे हम सुझाना जानते हैं।
मुझे एक कस्टम-LLM CI पाइपलाइन की कितनी कीमत की उम्मीद करनी चाहिए?
एक सामान्य PR के लिए सेंट्स, रिलीज़-कैंडिडेट PR के लिए कम सिंगल डॉलर्स। अनुपात जज मूल्य निर्धारण पर और इस पर निर्भर करता है कि आपके PRs का कौन सा अंश प्रॉम्प्ट्स या मॉडल कॉन्फ़िग को छूता है। ऊपर 4% रिलीज़-कैंडिडेट हिस्सा सामान्य है; प्रॉम्प्ट इटरेशन वाले उत्पादों के लिए हिस्सा बढ़ता है और औसत तदनुसार चढ़ता है।
क्या मुझे हर कमिट पर फुल सूट चलाना चाहिए?
नहीं। उन PRs के लिए पाथ-फ़िल्टर करें जो प्रॉम्प्ट्स, मॉडल कॉन्फ़िग, रिट्रीवल, या eval कोड को छूते हैं। अन्य सभी बदलावों के लिए, कॉन्ट्रैक्ट + स्मोक पर्याप्त है और README टाइपो पर 12-मिनट की प्रतीक्षा एक स्प्रिंट के भीतर टीम का विश्वास खो देगी। फुल सूट कीमती है; इसे वहाँ खर्च करें जहाँ बदलाव विश्वसनीय रूप से एक क्वालिटी डाइमेंशन हिला सकता है।
मैं सभी को तोड़े बिना एक नया गेट कैसे पेश करूँ?
दो-सप्ताह की शैडो विंडो, नॉन-ब्लॉकिंग। शैडो के दौरान देखी गई फॉल्स-पॉज़िटिव दर पर थ्रेशोल्ड्स ट्यून करें। ब्लॉकिंग पर तभी फ़्लिप करें जब निरंतर फॉल्स-पॉज़िटिव दर आपकी सहनशीलता से नीचे हो (हम 5% का उपयोग करते हैं)। कुछ और एक ऐसा गेट पाने का तरीका है जिसे सबने नज़रअंदाज़ करना सीख लिया है।
यदि मैं केवल एक संख्या ट्रैक करूँ तो वह क्या होनी चाहिए?
प्रोडक्शन से पहले पकड़े गए पुष्टि किए गए रिग्रेशन्स का अंश। इस पोस्ट का हिस्टोग्राम इसे परिपक्व Divinci डिप्लॉयमेंट्स में ~97% पर रखता है। जो 3% बच निकलते हैं, उन्हीं के लिए इंस्टैंट रोलबैक मौजूद है। 97% ही वह है जिसके लिए सूट है।
संदर्भ
- DORA / Google Cloud. "Accelerate State of DevOps — CI velocity, change-failure-rate and time-to-restore-service." क्रॉस-इंडस्ट्री बेसलाइन्स जो "12 मिनट प्रति PR बहुत धीमा है" को एक रक्षणीय दावा बनाते हैं, राय नहीं।
- Zheng et al. "Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena." arXiv:2306.05685। अनुभवजन्य साक्ष्य कि बैच्ड LLM-as-judge कॉल्स स्मोक और फुल लेयर्स में उपयोग किए जाने वाले बैच साइज़ पर कैलिब्रेशन को संरक्षित कर सकती हैं — कारण कि इस पोस्ट में कॉस्ट संख्याएँ प्राप्य हैं।
- Pope et al. "Efficiently Scaling Transformer Inference." arXiv:2211.05102। CI-फ्लीट-साइज़िंग सेक्शन में उद्धृत KV-कैश पुन: उपयोग और प्रीफ़िक्स-शेयरिंग तकनीकें।
- Pan, Tianpan. "The Semver Lie: how a minor LLM update broke production." 29 अप्रैल 2026। एग्रीगेट-केवल रिग्रेशन सूट्स के लिए 2026 का नामित फेलियर मोड; कारण कि CI लेयर केक पूरी तरह से स्लाइस-अवेयर है।
- GitHub. "GitHub Actions — chaining jobs with `needs:` and conditional execution." प्रिमिटिव जिसके विरुद्ध इस पोस्ट का .yaml कंपोज़ करता है।
- Zhang et al. "BERTScore: Evaluating Text Generation with BERT." arXiv:1904.09675। सस्ती लेयर्स के लिए LLM-as-judge के विकल्प के रूप में संदर्भित हीयूरिस्टिक सिमैंटिक-सिमिलैरिटी मेट्रिक; गेट टाइम पर हम यह नहीं चलाते, लेकिन स्केल पर निषिद्ध-वाक्यांश पहचान के लिए कॉन्ट्रैक्ट लेयर में उपयोगी।
Ready to Build Your Custom AI Solution?
Discover how Divinci AI can help you implement RAG systems, automate quality assurance, and streamline your AI development process.
Get Started Today