- Canva ने 20 करोड़ MAU हासिल किए हैं, 30 अरब से अधिक designs मौजूद हैं, और हर सेकंड लगभग 300 नए designs बनते हैं
- ऐसे में users के लिए designs खोजना और उनके साथ shared files ढूंढना लगातार अधिक महत्वपूर्ण समस्या बन गया है
- public search (web/product search) में user queries और search items के एक fixed set के आधार पर dataset तैयार किया जाता है
- विशेषज्ञ समीक्षक हर query और item के relevance का मूल्यांकन करके labels देते हैं
- Recall और Precision metrics के जरिए search engine performance का आकलन किया जाता है
- personal search में privacy की सुरक्षा के लिए private designs नहीं देखे जा सकते, और user data को evaluation dataset के रूप में इस्तेमाल नहीं किया जा सकता
- समाधान के तौर पर generative AI (GPT-4o आदि) का उपयोग करके realistic लेकिन पूरी तरह synthetic content और queries तैयार की गईं
- इससे बिना privacy का कोई उल्लंघन किए search pipeline improvements का मूल्यांकन करने का तरीका मिला
मौजूदा स्थिति: सीमित testing methods
- मौजूदा test process
- engineers सीमित offline testing approach का उपयोग करते थे
- वे Canva account में known problem queries चलाकर code changes से पहले और बाद के performance की तुलना करते थे
- उदाहरण: spell correction सुधारते समय
desgin जैसी गलत query को test करना
- बदलाव से पहले: कोई result नहीं
- बदलाव के बाद:
design से संबंधित documents लौटते हैं
- offline test पास करने वाले changes को online testing phase में भेजा जाता था
- Canva के experiment framework का उपयोग कर A/B test चलाए जाते थे
- change लागू हुए users और standard search users के बीच search success rate की तुलना की जाती थी
- सीमाएँ
- offline testing की statistical validity की कमी
- सीमित queries से search behavior की विविधता को represent करना मुश्किल था
- users पर संभावित नकारात्मक असर
- offline tests में न पकड़ी गई performance गिरावट online experiments में सामने आ सकती थी
- online experiments में समय की खपत
- statistical significance पाने के लिए कम से कम कुछ दिन से कुछ हफ्ते तक लगते थे
- इससे एक साथ चलने वाले experiments की संख्या और ideas test करने की रफ्तार सीमित हो जाती थी
आदर्श स्थिति: नया dataset और evaluation pipeline बनाना
- लक्ष्य: engineers को online testing तक जाने से पहले changes का objective मूल्यांकन करने के लिए custom dataset और evaluation pipeline चाहिए थी
- मुख्य आवश्यकताएँ:
- reproducibility: हर बार एक जैसे results मिलें
- तेज़ iteration: engineers code changes के बाद तुरंत results test कर सकें, production deployment का इंतजार न करना पड़े
- production-जैसा environment: results वास्तविक production behavior से मेल खाएँ
- non-blocking workflow: team members एक-दूसरे को बाधित किए बिना independently code changes पर experiment कर सकें
realistic dataset generation: generative AI का उपयोग
- privacy-compliant evaluation dataset
- GPT-4o का उपयोग करके ऐसा synthetic data तैयार किया गया जो वास्तविक user data की जगह ले सके
- user designs को copy किए बिना text length जैसी statistical distributions को reflect करने वाला realistic data बनाया गया
- Recall evaluation के लिए test cases बनाना
- topic और design type (documents, presentations आदि) के आधार पर GPT-4o से queries और corresponding content तैयार किया गया
- query difficulty को इस तरह बदला गया:
- spelling errors शामिल करना
- synonyms से replacement
- query को rephrase करना
- Precision evaluation के लिए test cases बनाना
- relevant और nonrelevant designs दोनों शामिल करने वाला dataset तैयार किया गया
- nonrelevant designs बनाने के तरीके:
- सिर्फ कुछ keywords शामिल करना
- design template या draft के रूप में बदलना
- उसे पुराना design बनाकर सेट करना
generative AI उपयोग करते समय आई समस्याएँ
- LLMs के फायदे और सीमाएँ
- फायदे: बड़े पैमाने पर text data को कुशलता से generate किया जा सकता है
- तैयार static evaluation dataset को बार-बार इस्तेमाल किया जा सकता है और यह जल्दी, consistent और deterministic evaluation results देता है
- सीमाओं को हटाना: dataset बनने के बाद LLM की latency और randomness की समस्या को अलग किया जा सकता है
- समस्याएँ
- लंबे title generate करने से इनकार
- 12-15 शब्दों वाले titles माँगे गए, लेकिन model ने छोटे titles लौटाए
- उदाहरण:
Exploring the Latest Advancements in Screen Technology and Applications (9 words)
Best Practices for Teachers: Presentation Tips for Meet the Teacher (10 words)
- संभव है कि यह इस तथ्य को reflect करता हो कि वास्तविक documents में लंबे titles कम होते हैं
- नतीजतन, title length के मानदंड पर फिर से विचार करना पड़ा
- repetition और hallucination errors
- किसी शब्द की कई spelling mistakes बनाने को कहने पर duplicate या unrealistic results लौटे
- उदाहरण:
Calendar की अलग-अलग spelling mistakes माँगने पर repetitive results मिले
- nonrelevant titles generate करने में समस्या
- nonrelevant design titles बनाते समय model कई बार instructions का सही पालन नहीं कर पाया
- लौटाए गए कुछ titles में दिए गए keywords नहीं थे, या वे सिर्फ
title string जैसा गलत output दे रहे थे
evaluation चलाना: local environment में testing और analysis
- evaluation dataset का उपयोग
- तैयार synthetic dataset को search pipeline पर लागू करके evaluation metrics निकाले गए
- कई execution methods आज़माने के बाद Testcontainers आधारित local execution approach अपनाई गई
- Testcontainers आधारित local pipeline
- मौजूदा Testcontainer support का उपयोग
- Canva की service-oriented RPC architecture में Testcontainer support पहले से मौजूद था
- Elasticsearch जैसे external components को internal Testcontainers के साथ जोड़कर pipeline बनाई गई
- production setup का पूरा पुनर्निर्माण
- search pipeline और supporting ML models को local में चलाकर production जैसा ही environment तैयार किया गया
- engineers अलग-अलग model variants पर experiment कर सकते थे
- test case processing flow
- हर test case के लिए जरूरी state बनाना
- Canva design बनाने के बजाय search index के लिए जरूरी data को extract और insert किया गया
- local search pipeline चलाना
- test query के साथ dataset चलाकर search results तैयार किए गए
- results को evaluation module में भेजना
- Recall और Precision metrics की गणना की गई
- data flow diagram
- evaluation tool के जरिए data कैसे flow करता है, यह दिखाने वाला diagram दिया गया
results को visualize करना
- visualization tool development
- Streamlit आधारित custom tool का उपयोग करके evaluation results को प्रभावी ढंग से visualize और compare करना संभव बनाया गया
- engineers अलग-अलग configurations के बीच Recall और Precision metrics को एक नज़र में compare कर सकते थे
- मुख्य features
- configuration-wise comparison
- results को aggregate करके अलग-अलग settings का performance side-by-side compare किया जा सकता था
- query type और difficulty के अनुसार performance breakdown
- खास query types या difficulty levels के आधार पर performance का अलग विश्लेषण किया जा सकता था
- individual query debugging
- हर query के output results देखकर specific use cases को बारीकी से debug किया जा सकता था
- तेज़ decision-making में मदद
- evaluation पूरा होते ही tool तुरंत चल जाता था, जिससे engineers performance results के आधार पर जल्दी निर्णय ले सकें
- engineers दूसरे team members के काम पर निर्भर हुए बिना independently बार-बार experiment और improvement कर सकते थे
प्रभाव और आगे की योजना
- आदर्श स्थिति के कितने करीब पहुँचे?
- evaluation dataset और tools ने पूरी reproducibility दी और कुछ ही मिनटों में results तैयार किए
- engineers local में independently और objectively ऐसे results का मूल्यांकन कर सकते थे जो production behavior से मेल खाते हों
- customers के designs या queries को बिल्कुल देखे बिना privacy पूरी तरह सुरक्षित रही
- उपलब्धियों का सार
- तेज़ iteration
- 1000 से अधिक test cases को 10 मिनट से कम समय में process किया गया
- 2-3 दिन चलने वाले online experiment period में 300 से अधिक offline evaluations संभव हुए
- offline-online results का correlation
- offline evaluation को इस तरह design किया गया कि खराब ideas पहले ही हट जाएँ और केवल अधिक सफल होने की संभावना वाले changes ही online experiments तक जाएँ
- development के दौरान offline और online results के alignment को जाँचने के लिए कई experiments किए गए
- performance में सकारात्मक और नकारात्मक, दोनों तरह के changes के लिए मजबूत consistency देखी गई
- local debugging capability
- search pipeline के हर component से test case flow को observe करने वाली debugging support दी गई
- यह production logs पर निर्भर पुरानी debugging approach की तुलना में कहीं अधिक efficient था
- आगे की योजना
- dataset विस्तार
- collaboration graph जैसे और अधिक realistic features जोड़े जाएँगे
- tool improvements
- tooling को मजबूत किया जाएगा ताकि engineers जरूरत के अनुसार custom synthetic data बना सकें
- generative AI का अधिकतम उपयोग
- synthetic data से खुलने वाली संभावनाओं का उपयोग करते हुए Canva के search tools को community के लिए सर्वश्रेष्ठ अनुभव में बदलने का लक्ष्य जारी रहेगा
अभी कोई टिप्पणी नहीं है.