1. परिचय एवं अवलोकन
यह अध्ययन आधुनिक क्लाउड-नेटिव एप्लिकेशन विकास में एक महत्वपूर्ण चुनौती का समाधान करना चाहता है: माइक्रोसर्विस आर्किटेक्चर की परिचालन जटिलता। हालांकि माइक्रोसर्विसेज स्केलेबिलिटी और चुस्तता में लाभ प्रदान करती हैं, लेकिन वे महत्वपूर्ण प्रबंधन ओवरहेड भी लाती हैं, विशेष रूप से प्रदर्शन अनुकूलन के क्षेत्र में। यह पेपर एक नवीन दृष्टिकोण प्रस्तावित करता है, जो हाइपरपैरामीटर अनुकूलन तकनीकों—विशेष रूप से ग्रिड सर्च और रैंडम सर्च—को मशीन लर्निंग डोमेन से माइक्रोसर्विस कॉन्फ़िगरेशन ट्यूनिंग के क्षेत्र में स्थानांतरित करके अनुकूलन को स्वचालित बनाता है। इसका लक्ष्य ऐसी स्व-अनुकूलन प्रणालियों का निर्माण करना है जो एंड-टू-एंड प्रदर्शन मेट्रिक्स (जैसे विलंबता) में सुधार के लिए रनटाइम पैरामीटर्स को गतिशील रूप से समायोजित कर सकें।
2. मूल विधि एवं आर्किटेक्चर
2.1 अनुप्रयोग मामला: वायु प्रदूषण जागरूकता शुल्क प्रणाली
प्रस्तावित पद्धति का मूल्यांकन एक ठोस माइक्रोसर्विस-आधारित अनुप्रयोग के माध्यम से किया गया: एक वायु प्रदूषण-अवगत टोल गणना प्रणाली। यह अनुप्रयोग वास्तविक समय वाहन स्थान डेटा को तीन मुख्य माइक्रोसर्विस श्रृंखलाओं के माध्यम से संसाधित करता है:
- मैप मैचिंग सेवा: मूल GPS निर्देशांकों को सड़क नेटवर्क से मिलान करें।
- प्रदूषण मिलान सेवा: वाहन स्थान को डेटाबेस में मौजूद प्रदूषण डेटा से संबद्ध करें।
- शुल्क गणना सेवा: प्रदूषण स्तर के आधार पर पर्यावरण शुल्क की गणना करें।
प्रदर्शन को मापने के लिए एंड-टू-एंड और प्रत्येक सेवा की विलंबता को कैप्चर करने के लिए वितरित ट्रेसिंग का उपयोग करें।
2.2 पृष्ठभूमि: माइक्रोसर्विसेज-उन्मुख हाइपरपैरामीटर अनुकूलन
यह पेपर माइक्रोसर्विस प्रदर्शन ट्यूनिंग को एक परिबद्ध कॉन्फ़िगरेशन स्पेस के भीतर एक खोज समस्या के रूप में देखता है। प्रत्येक माइक्रोसर्विस में समायोज्य पैरामीटर (जैसे, थ्रेड पूल आकार, कैश आकार, कनेक्शन सीमा) होते हैं। सभी सेवाओं के इन पैरामीटरों के संयोजन से एक उच्च-आयामी खोज स्थान परिभाषित होता है। लक्ष्य एक ऐसा कॉन्फ़िगरेशन ढूंढना है जो लक्ष्य मीट्रिक (जैसे, औसत विलंबता) को कम करे। यह अध्ययन इसके चुने हुए तरीकों (ग्रिड खोज, यादृच्छिक खोज) की तुलना अन्य हाइपरपैरामीटर ऑप्टिमाइज़ेशन तकनीकों (जैसे बायेसियन ऑप्टिमाइज़ेशन [5] और मेटाह्यूरिस्टिक विधियों [6]) से करता है, और प्रारंभिक स्वचालन चरण में पूर्व की सरलता और व्याख्यात्मकता का तर्क देता है।
2.3 प्रस्तावित आर्किटेक्चर और माइक्रोसर्विस ऑप्टिमाइज़र
मुख्य नवाचार हैमाइक्रोसर्विस ऑप्टिमाइज़र, यह एक नया सॉफ़्टवेयर घटक है। इसकी आर्किटेक्चर (PDF के चित्र 2 में संकल्पित) में शामिल है:
- खोज स्थान परिभाषा: ऑपरेटर प्रत्येक समायोज्य पैरामीटर के लिए संभावित मानों का एक परिबद्ध समुच्चय परिभाषित करता है।
- खोज निष्पादन: ऑप्टिमाइज़र नए कॉन्फ़िगरेशन संयोजनों को पुनरावृत्त रूप से उत्पन्न करता है:
- ग्रिड खोज: पैरामीटर स्पेस के विविक्त ग्रिड में सभी बिंदुओं का संपूर्ण मूल्यांकन।
- यादृच्छिक खोज: परिभाषित स्थान से यादृच्छिक रूप से कॉन्फ़िगरेशन नमूना लें।
- कॉन्फ़िगरेशन अनुप्रयोग और मूल्यांकन: नए कॉन्फ़िगरेशन को माइक्रोसर्विसेज में तैनात करें। सिस्टम के प्रदर्शन (विलंबता) का अवलोकन और रिकॉर्ड करें।
- परिणाम समुच्चयन: प्रत्येक पुनरावृत्ति के प्रदर्शन डेटा को संग्रहीत करें, ताकि इष्टतम कॉन्फ़िगरेशन की पहचान की जा सके।
ऑप्टिमाइज़र, माइक्रोसर्विसेज और मॉनिटरिंग डैशबोर्ड के बीच संचार संदेश ब्रोकर (NATS) और वेब सर्वर के माध्यम से किया जाता है।
3. तकनीकी कार्यान्वयन और मूल्यांकन
3.1 प्रयोगात्मक सेटअप एवं वातावरण
मूल्यांकन वातावरण Amazon AWS पर स्थापित किया गया था, जिसमें एक EC2 t2.medium इंस्टेंस (2 vCPU, 4GB RAM) का उपयोग किया गया। सभी माइक्रोसर्विसेज Java में लागू की गईं और Docker कंटेनरों के रूप में तैनात की गईं। सेवाओं के बीच संचार NATS मैसेज ब्रोकर के माध्यम से अतुल्यकालिक रूप से संसाधित किया गया। यह सेटअप एक यथार्थवादी, संसाधन-सीमित क्लाउड तैनाती वातावरण का अनुकरण करता है।
3.2 प्रारंभिक मूल्यांकन परिणाम एवं प्रदर्शन वृद्धि
प्रारंभिक परिणामों ने इस पद्धति की व्यवहार्यता सिद्ध की है। रनटाइम पर ग्रिड सर्च और रैंडम सर्च तकनीकों को लागू करके माइक्रोसर्विस कॉन्फ़िगरेशन को ट्यून करने से, अनऑप्टिमाइज़्ड बेसलाइन कॉन्फ़िगरेशन की तुलना में, सिस्टम ने हासिल कियाएंड-टू-एंड विलंबता में 10.56% तक की कमीPDF में बार ग्राफ के रूप में प्रस्तुत परिणाम पूरे एप्लिकेशन और व्यक्तिगत सेवाओं (प्रदूषण मैचर, मैप मैचर, टोल कैलकुलेटर) के विभिन्न परीक्षण कॉन्फ़िगरेशन के तहत औसत रनटाइम को दर्शाते हैं, जो विशिष्ट पैरामीटर सेट द्वारा लाए गए प्रदर्शन लाभ को स्पष्ट रूप से दर्शाते हैं।
प्रमुख प्रदर्शन संकेतक
अधिकतम विलंबता सुधार: 10.56%
स्वचालित कॉन्फ़िगरेशन खोज के माध्यम से लागू किया गया।
4. विश्लेषण और विशेषज्ञ व्याख्या
4.1 मुख्य अंतर्दृष्टि
इस लेख की मुख्य अंतर्दृष्टि शक्तिशाली और स्पष्ट है (पश्चदृष्टि से देखने पर):माइक्रोसर्विस कॉन्फ़िगरेशन को मशीन लर्निंग हाइपरपैरामीटर समस्या के रूप में देखें।थ्रेड काउंट या मेमोरी लिमिट जैसी विशिष्ट शब्दार्थों को अमूर्त करके, केवल उन्हें बहुआयामी स्थान में घुंमे जाने वाले नॉब्स के रूप में देखकर, लेखकों ने अच्छी तरह से शोधित अनुकूलन एल्गोरिदम के एक सेट को अनलॉक किया है। यह एक क्लासिक लेटरल थिंकिंग है, जो क्रांतिकारी CycleGAN पेपर की याद दिलाती है, जहां शोधकर्ताओं ने जनरेटिव एडवरसैरियल नेटवर्क्स को अनपेयर्ड इमेज-टू-इमेज ट्रांसलेशन पर लागू किया, एक एडवरसैरियल फ्रेमवर्क को नए डोमेन के लिए पुनः प्रयोजित किया। यहां मूल्य नए खोज एल्गोरिदम के आविष्कार में नहीं, बल्कि समस्या के फ्रेमिंग में है।फ्रेमिंग。
4.2 तार्किक प्रवाह
तर्क उचित है, लेकिन इसकी शैक्षणिक प्रोटोटाइप प्रकृति को उजागर करता है। यह एक स्पष्ट, रैखिक प्रवाह का अनुसरण करता है: 1) खोज स्थान को परिभाषित करना (ऑपरेटर इनपुट), 2) ऑप्टिमाइज़र को तैनात करना (ग्रिड/यादृच्छिक खोज), 3) पुनरावृत्ति, अनुप्रयोग, माप, 4) सर्वोत्तम विन्यास का चयन। हालाँकि, यह प्रवाह स्थिर वर्कलोड और नियंत्रित प्रयोगशाला वातावरण को मानता है। गायब कड़ी हैप्रतिक्रिया विलंब और अभिसरण समय।वास्तविक उत्पादन प्रणालियों में, कार्यभार पैटर्न लगातार बदलते रहते हैं। एक अच्छा कॉन्फ़िगरेशन खोजने से पहले, कितने "खराब" कॉन्फ़िगरेशन (जो संभावित रूप से उपयोगकर्ता अनुभव को कम कर सकते हैं) आज़माने होंगे? इस पेपर का मूल्यांकन यद्यपि सकारात्मक है, लेकिन इस लूप का गतिशील परिस्थितियों में पर्याप्त दबाव परीक्षण नहीं किया गया है।
4.3 लाभ एवं सीमाएँ
लाभ:
- अवधारणा की सुंदरता: हाइपरपैरामीटर अनुकूलन से कॉन्फ़िगरेशन ट्यूनिंग तक का मानचित्रण, इसकी संक्षिप्तता उत्कृष्ट है।
- कार्यान्वयन सरल: ग्रिड सर्च और रैंडम सर्च समझने, डीबग करने और ऑपरेशन टीम को समझाने में आसान हैं, जो बायेसियन ऑप्टिमाइज़ेशन के "ब्लैक बॉक्स" कलंक से बचते हैं।
- मजबूत नींव: यह मशीन लर्निंग क्षेत्र में दशकों के हाइपरपैरामीटर ऑप्टिमाइज़ेशन शोध पर आधारित है, जैसा कि "ऑटोमेटेड मशीन लर्निंग" पुस्तक (Feurer et al. द्वारा) या scikit-optimize लाइब्रेरी जैसे संसाधनों में दर्ज है।
- उल्लेखनीय परिणाम: 10.56% का सुधार तुच्छ नहीं है, खासकर विलंब-संवेदनशील अनुप्रयोगों के लिए।
दोष और महत्वपूर्ण अंतर:
- ब्रूट-फोर्स खोज का मूल: ग्रिड सर्च की उच्च-आयामी स्थानों में अक्षमता सर्वविदित है ("कर्स ऑफ़ डायमेंशनैलिटी")। यह विधि तब खराब रूप से स्केल करती है जब प्रति सेवा ट्यून किए जाने वाले पैरामीटर कुछ से अधिक होते हैं।
- लागत की उपेक्षा: खोज विशुद्ध रूप से विलंबता के लिए अनुकूलित है। यह कॉन्फ़िगरेशन की संसाधन लागत (CPU, मेमोरी, लागत) पर विचार नहीं करती है। एक ऐसी कॉन्फ़िगरेशन जो 5% तेज है लेकिन 50% अधिक CPU की खपत करती है, आर्थिक रूप से व्यवहार्य नहीं हो सकती है।
- स्थानांतरण शिक्षण का अभाव: प्रत्येक एप्लिकेशन डिप्लॉयमेंट शून्य से खोज शुरू करता प्रतीत होता है। ऐसा कोई तंत्र नहीं है जो अन्य एप्लिकेशन में समान माइक्रोसर्विसेज के अनुकूलन से प्राप्त ज्ञान का लाभ उठा सके, यह हाइपरपैरामीटर ऑप्टिमाइज़ेशन मेटा-लर्निंग अन्वेषण की एक दिशा है।
- सुरक्षा तंत्र का अभाव: इस पेपर में उन सुरक्षा उपायों पर चर्चा नहीं की गई है जिनका उद्देश्य उन विनाशकारी गलत कॉन्फ़िगरेशन को तैनात होने से रोकना है जो सेवा विफलता या कैस्केडिंग विफलताओं का कारण बन सकती हैं।
4.4 क्रियान्वयन योग्य अंतर्दृष्टि
इंजीनियरिंग लीडर्स के लिए, यह शोध एक आकर्षक प्रूफ-ऑफ-कॉन्सेप्ट है, लेकिन प्रोडक्शन-रेडी ब्लूप्रिंट नहीं। यहां बताया गया है कि इसके आधार पर कैसे कार्रवाई की जाए:
- यादृच्छिक खोज से प्रारंभ करें, ग्रिड खोज से नहीं। जैसा कि Bergstra और Bengio ने अपने 2012 के पेपर "Random Search for Hyper-Parameter Optimization" में प्रसिद्ध रूप से प्रदर्शित किया, समान कम्प्यूटेशनल बजट पर, यादृच्छिक खोज अक्सर ग्रिड खोज की तुलना में अधिक कुशल होती है। इसे पहले लागू करें।
- लागत-जागरूक उद्देश्य फलन का निर्माण करें। केवल विलंबता को कम करने पर ध्यान न दें। एक भारित फ़ंक्शन को कम करें, जैसे $\text{लक्ष्य} = \alpha \cdot \text{विलंबता} + \beta \cdot \text{संसाधन लागत}$। यह तकनीकी प्रदर्शन को व्यावसायिक मेट्रिक्स के साथ संरेखित करता है।
- "कैनरी सर्च" पैटर्न लागू करें। किसी नए कॉन्फ़िगरेशन को सभी इंस्टेंस पर लागू करने से पहले, उसे एक कैनरी इंस्टेंस पर तैनात करें और लाइव ट्रैफ़िक के तहत बेसलाइन के साथ इसके प्रदर्शन का A/B परीक्षण करें। इससे जोखिम कम होता है।
- कॉन्फ़िगरेशन नॉलेज बेस में निवेश करें। प्रत्येक प्रयास किए गए कॉन्फ़िगरेशन और उसके परिणाम को रिकॉर्ड करें। यह भविष्य के अधिक जटिल ऑप्टिमाइज़र (जैसे, बायेसियन मॉडल) के लिए एक डेटासेट बनाता है, जो इतिहास से सीख सकते हैं और खोज को गर्म स्टार्ट दे सकते हैं।
- पहले उच्च लीवरेज पैरामीटर्स पर ध्यान केंद्रित करें। इस पद्धति को प्रत्येक सेवा में उन 2-3 पैरामीटर्स पर लागू करें जो प्रदर्शन पर सबसे अधिक प्रभाव डालने के लिए ज्ञात हैं (उदाहरण के लिए, डेटाबेस कनेक्शन पूल आकार, JVM हीप सेटिंग्स)। सुई को तूफ़ान में ढूंढने से बचें।
5. तकनीकी विवरण और गणितीय सूत्र
अनुकूलन समस्या को औपचारिक रूप से परिभाषित किया जा सकता है। मान लीजिए कि एक माइक्रोसर्विस एप्लिकेशन $n$ सेवाओं से बना है। प्रत्येक सेवा $i$ के लिए, $m_i$ समायोज्य पैरामीटरों का एक सेट है। मान लें कि $\theta_i^{(j)}$ सेवा $i$ के $j$वें पैरामीटर को दर्शाता है, जिसका मान सीमित सेट $V_i^{(j)}$ (श्रेणीबद्ध प्रकार के लिए) या परिबद्ध अंतराल $[a_i^{(j)}, b_i^{(j)}]$ (संख्यात्मक प्रकार के लिए) से आ सकता है।
संयुक्त कॉन्फ़िगरेशन स्पेस $\Theta$ सभी पैरामीटर मानों के समुच्चय का कार्तीय गुणनफल है:
$\Theta = V_1^{(1)} \times ... \times V_1^{(m_1)} \times ... \times V_n^{(1)} \times ... \times V_n^{(m_n)}$
मान लीजिए $L(\theta)$ वह एंड-टू-एंड विलंबता है जो तैनाती विन्यास $\theta \in \Theta$ के तहत देखी जाती है। लक्ष्य है खोजना:
$\theta^* = \arg\min_{\theta \in \Theta} L(\theta)$
ग्रिड खोज $\Theta$ पर एक पूर्ण ग्रिड बनाने के लिए निरंतर अंतराल को मानों के एक सेट में विविक्त करके और प्रत्येक ग्रिड बिंदु पर $L(\theta)$ का मूल्यांकन करके चलाया जाता है।
यादृच्छिक खोज $\Theta$ से (या परिभाषित मानों के सेट से) $N$ विन्यास $\{\theta_1, \theta_2, ..., \theta_N\}$ को समान रूप से यादृच्छिक रूप से नमूना लें, और प्रत्येक नमूने के लिए $L(\theta)$ का मूल्यांकन करें, सर्वोत्तम का चयन करें।
6. विश्लेषणात्मक ढांचा और उदाहरण केस स्टडी
उदाहरण: भुगतान प्रसंस्करण माइक्रोसर्विस का अनुकूलन
एक ई-कॉमर्स एप्लिकेशन में "भुगतान सेवा" पर विचार करें। ऑपरेटर ने लोड के तहत विलंबता पर संदिग्ध प्रभाव डालने वाले तीन प्रमुख समायोज्य पैरामीटरों की पहचान की:
- डेटाबेस कनेक्शन पूल आकार: 5 से 50 के बीच का एक पूर्णांक।
- HTTP सर्वर वर्कर थ्रेड्स की संख्या: 10 से 100 के बीच का पूर्णांक।
- मेमोरी कैश आकार: 128 से 1024 के बीच का पूर्णांक (MB)।
खोज स्थान परिभाषा:
ऑपरेटर माइक्रोसर्विस ऑप्टिमाइज़र के लिए खोज स्थान को परिभाषित करता है:
PaymentService: { dbc_conns: [5, 10, 20, 30, 40, 50], http_threads: [10, 25, 50, 75, 100], cache_mb: [128, 256, 512, 1024] }
अनुकूलन निष्पादन:
- ग्रिड खोज: सभी 6 * 5 * 4 = 120 संभावित संयोजनों का परीक्षण किया जाएगा।
- यादृच्छिक खोज: इस स्थान से 30 यादृच्छिक संयोजनों का नमूना लिया जा सकता है (उदाहरण के लिए, (dbc_conns=20, http_threads=75, cache_mb=256), (dbc_conns=40, http_threads=25, cache_mb=512) आदि)।
परिणाम: ऑप्टिमाइज़र को कॉन्फ़िगरेशन मिल सकता है {dbc_conns: 30, http_threads: 50, cache_mb: 512} डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ {dbc_conns: 10, http_threads: 25, cache_mb: 128} इसकी तुलना में, भुगतान सेवा के लिए 95वें प्रतिशतक विलंब में 12% की कमी आई, और मेमोरी उपयोग में कोई महत्वपूर्ण वृद्धि नहीं हुई। फिर, इस कॉन्फ़िगरेशन को देखे गए वर्कलोड पैटर्न के लिए इष्टतम कॉन्फ़िगरेशन के रूप में संग्रहीत किया गया।
7. भविष्य के अनुप्रयोग और अनुसंधान दिशाएँ
इस आधारभूत कार्य से आगे, भविष्य में कई आकर्षक दिशाएँ हैं:
- बहु-उद्देश्य एवं प्रतिबंधात्मक अनुकूलन: खोज को एक साथ विलंबता, थ्रूपुट, लागत ($) और विश्वसनीयता (त्रुटि दर) को संतुलित करने तक विस्तारित करें, संभवतः पैरेटो फ्रंटियर पद्धति का उपयोग करके।
- बायेसियन ऑप्टिमाइज़ेशन इंटीग्रेशन: ग्रिड/यादृच्छिक खोज को नमूना दक्षता वाले बायेसियन ऑप्टिमाइज़ेशन से प्रतिस्थापित करने के लिए गॉसियन प्रक्रियाओं का उपयोग करें। बायेसियन ऑप्टिमाइज़ेशन प्रदर्शन लैंडस्केप का मॉडल बना सकता है और अगले परीक्षण के लिए सबसे आशाजनक कॉन्फ़िगरेशन को बुद्धिमानी से चुन सकता है।
- वार्म-स्टार्ट के लिए मेटा-लर्निंग: एक सिस्टम विकसित करें जो एक नई माइक्रोसर्विस दिए जाने पर, हजारों पूर्व-अनुकूलित सेवाओं से सीखे गए पैटर्न (उदाहरण के लिए, "PostgreSQL का उपयोग करने वाली और उच्च लेखन दर वाली सेवाएं आमतौर पर 20-40 के कनेक्शन पूल आकार पर इष्टतम प्रदर्शन करती हैं") के आधार पर प्रारंभिक कॉन्फ़िगरेशन और खोज स्थान की सिफारिश कर सके।
- डायनामिक एडाप्टेशन के लिए रीइन्फोर्समेंट लर्निंग: एक-बार के अनुकूलन से आगे बढ़कर निरंतर अनुकूलन प्राप्त करना। एक रीइन्फोर्समेंट लर्निंग एजेंट एक नीति सीख सकता है जो बदलते ट्रैफ़िक पैटर्न के आधार पर कॉन्फ़िगरेशन को वास्तविक समय में समायोजित करती है, जो Google की Vizier सेवा के समान है, लेकिन Kubernetes जैसे माइक्रोसर्विस ऑर्केस्ट्रेशन प्लेटफ़ॉर्म के लिए अनुकूलित।
- सेवा मेष के साथ एकीकरण: सेवा मेष (जैसे, Istio, Linkerd) में ऑप्टिमाइज़र को एम्बेड करें। मेष पहले से ही ट्रैफ़िक को नियंत्रित करता है और मेट्रिक्स का अवलोकन करता है, जिससे यह कैनरी रिलीज़ या चरणबद्ध रोलिंग अपडेट के माध्यम से कॉन्फ़िगरेशन परिवर्तनों को सुरक्षित रूप से लागू करने और तैनात करने के लिए एक आदर्श मंच बन जाता है।
8. संदर्भ सूची
- Newman, S. (2015). माइक्रोसर्विसेज का निर्माण. O'Reilly Media. (माइक्रोसर्विसेज के लाभों का हवाला देते हुए)।
- Dinh-Tuan, H., et al. (2022). वायु प्रदूषण संवेदी शुल्क प्रणाली. [विशिष्ट अनुप्रयोग मामले के संदर्भ]।
- OpenTelemetry प्रोजेक्ट. (2021). वितरित ट्रेसिंग विनिर्देश. https://opentelemetry.io
- Zhu, L., et al. (2017). क्लाउड में माइक्रोसर्विसेज का अनुकूलन: एक सर्वेक्षणIEEE Transactions on Cloud Computing.
- Snoek, J., Larochelle, H., & Adams, R. P. (2012). Practical Bayesian Optimization of Machine Learning AlgorithmsAdvances in Neural Information Processing Systems.
- Barrera, J., et al. (2020). क्लाउड सिस्टम कॉन्फ़िगरेशन ट्यूनिंग के लिए मेटाह्यूरिस्टिक विधियाँ. IEEE Transactions on Services Computing.
- Bergstra, J., & Bengio, Y. (2012). हाइपरपैरामीटर ऑप्टिमाइज़ेशन के लिए रैंडम सर्च. Journal of Machine Learning Research.
- Feurer, M., & Hutter, F. (2019). हाइपरपैरामीटर ऑप्टिमाइज़ेशन. में प्रकाशित ऑटोमेटेड मशीन लर्निंग (pp. 3-33). Springer।
- Zhu, J., Park, T., Isola, P., & Efros, A. A. (2017). अनपेयर्ड इमेज-टू-इमेज ट्रांसलेशन के लिए साइकल-कंसिस्टेंट एडवरसैरियल नेटवर्क्स का उपयोग. IEEE इंटरनेशनल कॉन्फ्रेंस ऑन कंप्यूटर विजन। (लैटरल थिंकिंग एनालॉजी के लिए CycleGAN संदर्भ)।
- Golovin, D., et al. (2017). Google Vizier: एक ब्लैक-बॉक्स ऑप्टिमाइज़ेशन सेवा. 23वीं ACM SIGKDD अंतर्राष्ट्रीय सम्मेलन की कार्यवाही, नॉलेज डिस्कवरी एंड डेटा माइनिंग।