2 पॉइंट द्वारा GN⁺ 2024-05-10 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • लेखक ने text embeddings का उपयोग करके 4 करोड़ से अधिक Hacker News पोस्ट और टिप्पणियों का विश्लेषण करने वाला एक प्रोजेक्ट किया
  • प्रोजेक्ट का मुख्य लक्ष्य बेहतर search, recommendation और analysis फीचर्स को लागू करना था
  • इसके लिए Hacker News API से डेटा इकट्ठा किया गया और web page crawling के जरिए अतिरिक्त context हासिल किया गया
  • इकट्ठा किए गए डेटा के आधार पर text embeddings बनाए गए और उन्हें UMAP का उपयोग करके 2D स्पेस में मैप किया गया
  • मैप किए गए डेटा के आधार पर इंटरैक्टिव "Hacker News Universe" मैप बनाया गया
  • embeddings का उपयोग करके semantic search, automatic virtual communities, popularity/sentiment analysis जैसी सुविधाएँ भी लागू की गईं
  • बड़े पैमाने पर डेटा प्रोसेसिंग के लिए GPU cluster का उपयोग किया गया और user experience बेहतर करने के लिए edge servers तैनात किए गए

Hacker News डेटा संग्रह

  • Hacker News API का उपयोग करके 4 करोड़ से अधिक पोस्ट और टिप्पणियों का डेटा इकट्ठा किया गया
  • API response धीमा होने के कारण parallel processing के लिए Node.js-आधारित service बनाई गई
  • पोस्ट score -1 से नीचे नहीं जाता, और comment score को API से नहीं देखा जा सकता
  • कुछ पोस्ट और टिप्पणियों के title और body खाली हैं, संभवतः moderator द्वारा संपादित किए जाने के कारण
  • कुछ मामलों में comment ID, parent comment से भी छोटी होती है, संभवतः moderator ने comment tree को स्थानांतरित किया

Text embeddings बनाना

  • सिर्फ title से पोस्ट का semantic प्रतिनिधित्व पर्याप्त नहीं था, इसलिए web page crawling के जरिए अतिरिक्त context लिया गया
  • text embeddings बनाने के लिए high-performance GPU की आवश्यकता होती है, और 4 करोड़ inputs को प्रोसेस करने में लगभग एक साल लग सकता है
  • RunPod की मदद से कम लागत पर GPU cluster बनाया गया, और db-rpc व queued विकसित करके distributed processing की दक्षता बढ़ाई गई
  • 150 GPUs का उपयोग करके कुछ ही घंटों में 4 करोड़ टेक्स्ट के embeddings बना लिए गए

Web page crawling से अतिरिक्त context हासिल करना

  • सिर्फ पोस्ट title के आधार पर embedding quality अच्छी नहीं थी, इसलिए linked web pages को crawl करके अतिरिक्त context लिया गया
  • Rust में crawler बनाकर Node.js version की तुलना में 10 गुना तेज प्रदर्शन हासिल किया गया
  • बहुत-से links टूट चुके थे (link rot), इसलिए Internet Archive के API से उन्हें रिकवर किया गया
  • अंततः 40 लाख में से 5% से कम pages ही प्राप्त नहीं किए जा सके

बेहतर text embeddings बनाना

  • पूरे web page को input के रूप में उपयोग करने के लिए jina-embeddings-v2-small-en model पर स्विच किया गया
  • जिन पोस्टों में context कम था, उनमें top comments जोड़कर उन्हें पूरक किया गया
  • टिप्पणियों के लिए hierarchy को ध्यान में रखते हुए ancestor comments तक शामिल करके input बनाया गया

UMAP से dimensionality reduction

  • UMAP का उपयोग करके 1024-dimensional embeddings को 2D स्पेस में घटाया गया
  • dimensionality reduction के लिए PyNNDescent graph और मूल embeddings की आवश्यकता होती है
  • high-dimensional 10 लाख inputs को प्रोसेस करने में 96-core CPU पर लगभग डेढ़ घंटा लगा
  • dimensionality reduction के परिणामस्वरूप रुचियों और लोकप्रियता का वितरण दृश्य रूप में सामने आया

Cosine similarity

  • embeddings के बीच similarity निकालने के लिए cosine distance का व्यापक उपयोग होता है
  • cosine distance वेक्टरों के बीच कोण का अंतर दिखाती है और Euclidean distance के विपरीत vector magnitude से प्रभावित नहीं होती
  • यह text similarity के लिए उपयुक्त है, क्योंकि लंबी और तीव्र बहस होने पर भी अगर विषय समान हो तो उन्हें पास में मैप होना चाहिए
  • cosine similarity की गणना matrix multiplication से आसानी से लागू की जा सकती है

Hacker News Universe मैप बनाना

  • embeddings के आधार पर Google Map जैसी इंटरैक्टिव Hacker News मैप बनाई गई
  • zoom in/out पर दिखने वाले points की संख्या नियंत्रित करना, कुछ बिंदुओं पर labels दिखाना और click पर detail दिखाने जैसी सुविधाएँ समर्थित हैं
  • लाखों points को एक साथ browser में भेजना व्यावहारिक नहीं था, इसलिए tiling और LOD से progressive loading लागू की गई
  • हर tile में अधिकतम 1500 points रखे गए ताकि उसका आकार 20KB से कम रहे, और क्षेत्रीय density को ध्यान में रखकर विविधता सुनिश्चित की गई
  • web app को Canvas और WebWorker से बनाया गया, और map features को Google Map की तरह संदर्भ लेकर लागू किया गया

Visual effects जोड़ना

  • वास्तविक maps की तरह landmarks, boundaries और terrain जोड़े गए ताकि immersion और orientation बेहतर हो
  • point density के आधार पर light/dark contour lines बनाकर HN में अधिक रुचि वाले क्षेत्रों को दिखाया गया
  • Gaussian blur से smooth contours बनाए गए और SVG में बदलकर बिना टूट-फूट वाली vector image के रूप में आउटपुट किया गया
  • प्रतिनिधि विषयों को दिखाने वाले "cities" जोड़े गए ताकि वे खास क्षेत्रों की ओर मार्गदर्शन कर सकें

Search फीचर का परीक्षण

  • semantic embedding-आधारित search, keyword search की तुलना में अधिक प्रासंगिक और विविध परिणाम दिखाती है
  • यह प्रश्न-आधारित queries को भी अच्छी तरह समझती है, और सटीक शब्द मेल न होने पर भी समान विषय ढूँढ लेती है
  • HN पोस्टों की उच्च गुणवत्ता के कारण search results में भी कई सूझबूझ भरी और उपयोगी जानकारियाँ सामने आती हैं
  • परिणाम ranking में relevance के साथ पोस्ट score और time weighting का उपयोग करके विश्वसनीयता व ताज़गी को भी ध्यान में रखा गया

Automatic virtual communities बनाना

  • keywords से virtual communities बनाकर रुचि के अनुसार पोस्टों के समूह तुरंत देखे जा सकते हैं
  • सिर्फ पोस्ट ही नहीं, बल्कि रुचि से जुड़ी सक्रिय चर्चाओं वाली टिप्पणियाँ भी साथ में देखी जा सकती हैं
  • किसी खास विषय पर प्रभावशाली और सक्रिय users की पहचान भी की जा सकती है
  • pre-filtering की बजाय post-filtering का उपयोग करने से computational cost काफी घटाई जा सकती है

Large-scale data analysis

  • open source sentiment analysis model का उपयोग करके 3 करोड़ टिप्पणियों की positive/negative भावना वर्गीकृत की गई
  • topics की भावना को time series में विश्लेषित करने पर प्रमुख घटनाओं के अनुसार बदलाव देखे जा सकते हैं
  • similarity और score का उपयोग करके topics के बीच popularity की तुलना भी संभव है
  • query calculation की गति सुधारने के लिए GPU-आधारित matrix operations लागू किए गए और processing speed काफी बढ़ाई गई

आगे की योजना

  • real-time data updates का समर्थन
  • deep learning-आधारित recommendation system विकसित करना
  • reranking model के जरिए search quality सुधारना
  • user analysis को मजबूत करना (similarity, expertise आदि)
  • community feedback के आधार पर अतिरिक्त सुधार विचारों की खोज

GN⁺ की राय

  • यह प्रोजेक्ट बड़े पैमाने के डेटा को प्रभावी ढंग से इकट्ठा करने, साफ़ करने और विश्लेषित करने की प्रक्रिया का बेहतरीन उदाहरण है। खासकर parallel processing और GPU उपयोग जैसी performance optimization तकनीकें प्रभावशाली हैं।
  • text embeddings और UMAP को मिलाकर पोस्टों के बीच समानता को visualise करने वाला Hacker News मैप बेहद रचनात्मक और दिलचस्प परिणाम है। इससे उपयोगकर्ता अपनी रुचि के विषय खोजने और नई जानकारी पाने में काफी मदद पा सकते हैं।
  • semantic search और automatic community generation जैसे फीचर्स Hacker News के उपयोग अनुभव को एक नए स्तर पर ले जा सकते हैं। उम्मीद है कि सिर्फ keyword matching से आगे बढ़कर context और intent समझने वाली search तकनीकें आम उपयोगकर्ताओं तक और फैलेंगी।
  • बड़े पैमाने की real-time data processing pipeline बनाना मुख्य चुनौती लगती है। edge computing, in-memory DB जैसी performance bottleneck दूर करने वाली रणनीतियों की बारीकी से जाँच करनी होगी।
  • HN डेटा की उच्च विश्वसनीयता को देखते हुए sentiment analysis के नतीजे भी पर्याप्त उपयोगी लगते हैं। हालांकि algorithmic bias पर ध्यान देना होगा और domain-specific training पर भी विचार किया जा सकता है।

1 टिप्पणियां

 
ggg213 2024-05-10

शीर्षक छूट गया है।