A Global Author-Identity Map for the World of Code:62.7M Developer Identities from 106.8M Author Strings over 5.87B Commits
यह शोध पत्र वर्ल्ड ऑफ कोड (V2604) के लिए एक क्यूरेटेड, उच्च-परिशुद्धता वाले वैश्विक लेखक-पहचान मानचित्र को प्रस्तुत करता है जो सरल रिकॉल के बजाय त्रुटिपूर्ण "क्लंपिंग" (clumping) को रोकने को प्राथमिकता देकर 5.87 बिलियन कमिट्स में 106.8 मिलियन लेखक स्ट्रिंग्स को 62.7 मिलियन कैनोनिकल पहचानों में हल करता है, जिससे बड़े पैमाने पर सॉफ्टवेयर रिपॉजिटरी विश्लेषण और विद्वत्तापूर्ण लेखक ग्राफ जॉइन्स की विश्वसनीयता में महत्वपूर्ण सुधार होता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि सॉफ़्टवेयर विकास के पूरे इतिहास को लगभग 6 अरब पुस्तकों (कोड कमिट्स) वाले एक विशाल, अराजक पुस्तकालय के रूप में देखा जा सकता है। इस पुस्तकालय में, हर बार जब कोई एक पन्ना लिखता है, तो वह अपना नाम लिखता है। लेकिन समस्या यह है कि हस्ताक्षर बहुत ही अस्त-व्यस्त हैं।
एक व्यक्ति "Jane Doe", फिर "j.doe", फिर "jane.doe@work.com", और बाद में "jane@personal.org" के रूप में हस्ताक्षर कर सकता है। वहीं दूसरी ओर, हजारों अलग-अलग अजनबी भी "root", "user" या "Your Name" के रूप में हस्ताक्षर कर सकते हैं।
यदि आप केवल इन हस्ताक्षरों को देखकर अद्वितीय लेखकों की संख्या गिनने का प्रयास करेंगे, तो आपको गलत उत्तर मिलेगा। आपको लगेगा कि वहां वास्तव में मौजूद लोगों से कहीं अधिक लाखों लोग हैं (क्योंकि एक व्यक्ति दस लोगों जैसा दिखता है), या आप यह मिस कर देंगे कि उनमें से कुछ "लोग" वास्तव में रोबोट या बॉट्स हैं।
यह पेपर एक विशाल पहचान मानचित्र (Giant Identity Map) प्रस्तुत करता है जो इस पुस्तकालय को साफ करता है। यह 10.6 करोड़ अस्त-व्यस्त हस्ताक्षरों को व्यवस्थित करके उन्हें 6.27 करोड़ वास्तविक लोगों में बदल देता है।
उन्होंने इसे कैसे किया, इसके लिए यहाँ सरल उपमाओं का उपयोग किया गया है:
1. समस्या: "मेगा-क्लस्टर" का जाल
लेखक बताते हैं कि इस समस्या को ठीक करने के पिछले प्रयास केवल रंग के आधार पर पहेली के टुकड़ों को जोड़ने की कोशिश करने जैसे थे। यदि आप केवल यह कहते हैं, "यदि दो नाम एक सामान्य अक्षर या ईमेल साझा करते हैं, तो वे एक ही व्यक्ति हैं," तो आप अंततः लाखों असंबंधित लोगों को एक विशाल, राक्षसी ढेर में मिला देंगे।
वे इसे "मेगा-क्लस्टर" (Mega-Cluster) कहते हैं। कल्पना कीजिए कि एक पुस्तकालय है जहाँ, क्योंकि हर किसी ने अपने शीर्षक में "The" शब्द का उपयोग किया था, लाइब्रेरियन ने निर्णय लिया कि पुस्तकालय की हर एक किताब एक ही व्यक्ति द्वारा लिखी गई थी। पिछले मानचित्रों में यही हुआ: उन्होंने गलती से 30 लाख असंबंधित डेवलपर्स को एक विशाल "सुपर-ऑथर" में मिला दिया।
2. समाधान: एक छह-चरणीय जासूसी प्रक्रिया
इसे ठीक करने के लिए, लेखकों ने हस्ताक्षरों को वर्गीकृत करने के लिए एक छह-चरणीय जासूसी प्रक्रिया बनाई ताकि वे वह बड़ी गलती न करें:
- चरण 1: प्रारंभिक सुराग: वे उन हस्ताक्षरों को जोड़ने से शुरुआत करते हैं जो स्पष्ट चीजें साझा करते हैं, जैसे कि बिल्कुल एक जैसा ईमेल पता।
- चरण 2: "बुरे तत्व" का फ़िल्टर: वे उन नामों को अनदेखा करते हैं जो स्पष्ट रूप से सामान्य (जैसे "root" या "admin") हैं या रोबोटों के हैं। ये पुस्तकालय में "भूतों" की तरह हैं; इनका उपयोग वास्तविक लोगों को जोड़ने के लिए नहीं किया जाना चाहिए।
- चरण 3: संरचनात्मक कट (जादुई ट्रिक): यह सबसे महत्वपूर्ण चरण है। उन्होंने कनेक्शनों को पुलों के मानचित्र की तरह देखा। उन्होंने कुछ विशिष्ट "पुल" हस्ताक्षरों को पाया जो लोगों के बड़े, असंबंधित समूहों को एक साथ थामे हुए थे। उन्होंने उन पुलों को काट दिया। इसने तुरंत विशाल "मेगा-क्लस्टर" को छोटे, प्रबंधनीय समूहों में बदल दिया।
- चरण 4: स्मार्ट क्लासिफायर: उन्होंने एक कंप्यूटर प्रोग्राम (जिसे लाखों वास्तविक उदाहरणों पर प्रशिक्षित किया गया था) का उपयोग यह तय करने के लिए किया कि क्या दो समान दिखने वाले नाम वास्तव में एक ही व्यक्ति हैं या केवल एक संयोग (जैसे दो "John Smith" नाम के लोग)।
- चरण 5: रिकॉल रिकवरी: उन कनेक्शनों को काटने के बाद, उन्होंने सावधानीपूर्वक उन कनेक्शनों को वापस जोड़ा जिन्हें उन्होंने पहले अनदेखा कर दिया था, एक अलग विधि का उपयोग करके (नामों को टुकड़ों में लिखने के तरीके को देखकर) ताकि यह सुनिश्चित हो सके कि वे वास्तविक मित्रों को मिस न करें।
- चरण 6: अंतिम लेबलिंग: उन्होंने प्रत्येक नाम के लिए "सर्वश्रेष्ठ" संस्करण (आमतौर पर वह जिसमें वास्तविक नाम और वास्तविक ईमेल हो) को उस व्यक्ति के आधिकारिक आईडी के रूप में चुना।
3. यह क्यों महत्वपूर्ण है: "बस फैक्टर" और उत्पादकता
पेपर दिखाता है कि यदि आप इन नामों को ठीक नहीं करते हैं, तो आपका गणित गलत है। उन्होंने यह दिखाने के लिए कई प्रयोग चलाए कि नामों को ठीक करने से क्या अंतर आता है:
- लोगों की गिनती: नामों को ठीक किए बिना, पुस्तकालय में वास्तव में मौजूद लोगों की तुलना में 66% अधिक लेखक दिखाई देते हैं। यह एक ही व्यक्ति को 10 बार गिनने जैसा है क्योंकि उसने 10 अलग-अलग तरीकों से हस्ताक्षर किए हैं।
- टीम सुरक्षा (बस फैक्टर): कल्पना कीजिए कि एक प्रोजेक्ट में आपको जानना है: "यदि एक व्यक्ति को बस से टक्कर लग जाए, तो क्या प्रोजेक्ट खत्म हो जाएगा?"
- नामों को ठीक किए बिना: प्रोजेक्ट सुरक्षित दिखता है क्योंकि काम 10 अलग-अलग "नामों" में फैला हुआ है।
- नामों को ठीक करने के बाद: आप महसूस करते हैं कि वे सभी 10 नाम एक ही व्यक्ति के हैं। प्रोजेक्ट वास्तव में बड़े खतरे में है।
- परिणाम: पेपर ने पाया कि 96% प्रोजेक्ट वास्तव में एक ही व्यक्ति (एकल बिंदु विफलता/Single Point of Failure) पर निर्भर हैं, जबकि अस्त-व्यस्त डेटा ने इसे ऐसा दिखाया कि केवल 90% ही ऐसा करते हैं।
- सेंट्रैलिटी (सबसे महत्वपूर्ण लोग): अस्त-व्यस्त डेटा में, नेटवर्क के "सबसे महत्वपूर्ण" लोग अक्सर रोबोट या सामान्य खाते (जैसे "root") थे। एक बार जब उन्होंने नामों को ठीक कर दिया, तो "सबसे महत्वपूर्ण" लोग वास्तविक मानव डेवलपर्स थे।
4. "गोल्ड स्टैंडर्ड" चेक
लेखकों ने केवल अनुमान नहीं लगाया; उन्होंने अपने मानचित्र का परीक्षण दो अलग-अलग "उत्तर कुंजियों" के विरुद्ध किया:
- मानवीय समीक्षा: मनुष्यों के एक छोटे समूह ने जांचा कि क्या मानचित्र सही था।
- GitHub डेटा: उन्होंने GitHub खातों के डेटा का उपयोग यह देखने के लिए किया कि क्या उन्हें सभी उपनाम (aliases) मिल गए।
उन्होंने पाया कि उनका नया मानचित्र 88% सटीक है (यह अजनबियों को आपस में मिलाने की गलती कम करता है) और 70% पूर्ण है (यह अधिकांश उपनामों को खोज लेता है)। महत्वपूर्ण रूप से, उन्होंने साबित किया कि पुराने मानचित्र 95% सटीक इसलिए दिखते थे क्योंकि उन्होंने उन "मेगा-क्लस्टर्स" को अनदेखा कर दिया था जहाँ गलतियाँ छिपी हुई थीं।
5. कोड को विज्ञान से जोड़ना
अंत में, पेपर सुझाव देता है कि इस मानचित्र का उपयोग डेवलपर्स को शैक्षणिक शोधकर्ताओं से जोड़ने के लिए एक "यूनिवर्सल की" के रूप में किया जा सकता है। चूंकि कई लोग कोड और वैज्ञानिक शोध पत्र दोनों लिखते हैं, इसलिए यह मानचित्र एक डेवलपर के कोड को उनके शोध पत्रों से जोड़ने में मदद कर सकता है। हालांकि, वे चेतावनी देते हैं कि यह बहुत कठिन है क्योंकि नाम बहुत सामान्य होते हैं (जैसे, कोड में "John Smith" और एक पेपर में "John Smith"), और आपको गलती से गलत लोगों को जोड़ने से बचने के लिए अत्यंत सावधान रहना चाहिए।
सारांश
यह पेपर सॉफ़्टवेयर लेखकों के एक विशाल, अस्त-व्यस्त डेटाबेस को साफ करने के लिए एक मार्गदर्शिका है। यह साबित करता है कि अव्यवस्था को अनदेखा करने से गलत निष्कर्ष निकलते हैं कि कौन काम कर रहा है, वे कितने उत्पादक हैं, और प्रोजेक्ट कितने सुरक्षित हैं। उनका नया मानचित्र पहला ऐसा है जो सफलतापूर्वक लाखों अजनबियों को एक विशाल, नकली पहचान में जोड़ने के जाल से बच निकलता है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।