ChatGPT API से Hacker News की पुस्तक सिफारिश सूची निकालना
(blog.reyem.dev)- HN की पुस्तक सिफारिश थ्रेड्स में बिखरी टिप्पणियों को इकट्ठा करके, कौन-सी किताबें सबसे ज़्यादा सुझाई जाती हैं यह जानने के लिए Chat Completions API से शीर्षक, लेखक और URL निकाले गए
- 2023 के आधार पर, जिन लगभग 200 HN स्टोरीज़ के शीर्षक में “book” एक अलग शब्द के रूप में था और जो बाहरी लिंक नहीं थीं, उनमें से पुस्तक सिफारिश जैसी दिखने वाली पोस्टों को चुना गया; 57k टिप्पणियों को प्रोसेस करने की लागत gpt-3.5-turbo के हिसाब से लगभग $40 थी
- कुल गणना में ऊपर रहने वाली किताबों में Structure and Interpretation of Computer Programs 376 बार, Gödel, Escher, Bach 365 बार, और How to Win Friends and Influence People 292 बार जैसी वे किताबें थीं जिनका HN पर लंबे समय से बार-बार ज़िक्र होता रहा है
- वास्तविक प्रोसेसिंग में गलत JSON, केवल लेखक का ज़िक्र करने वाली टिप्पणियाँ, एक ही शीर्षक वाली अलग किताबें, लिंक टेक्स्ट की गलत पहचान, और temperature 0 पर भी बदलने वाली non-determinism ने गुणवत्ता को प्रभावित किया
- कच्चा GPT आउटपुट और इनपुट CSV सार्वजनिक किए गए, और शीर्षक को lowercase करना, शुरुआत का “the” हटाना, उपशीर्षक हटाना जैसी normalization से नामों के असंगत होने की वजह से छूटने वाली प्रविष्टियों को कम करने की कोशिश की गई
HN टिप्पणियों से पुस्तक जानकारी निकालने का तरीका
- HN की पुस्तक सिफारिश थ्रेड्स पढ़ते समय यह काम इस उद्देश्य से शुरू हुआ कि सबसे ज़्यादा सुझाई या उल्लेख की गई किताबों का पता लगाया जा सके
- 2023 तक HN में लगभग 200 ऐसी स्टोरीज़ थीं जिनके शीर्षक में “book” एक अलग शब्द के रूप में शामिल था और जो किसी दूसरी पेज से लिंक नहीं थीं
- HN API से लाए गए डेटा में से पुस्तक सिफारिश थ्रेड्स जैसा दिखने वाला subset चुना गया और उसकी टिप्पणी टेक्स्ट को प्रोसेस किया गया
- हर टिप्पणी से Chat Completions API द्वारा निम्न जानकारी निकाली गई
- पुस्तक का शीर्षक
- लेखक
- URL
सबसे ज़्यादा उल्लेखित किताबें
- शीर्ष 50 किताबों की सूची में सबसे ज़्यादा उल्लेखित किताबें ये थीं
- Structure and Interpretation of Computer Programs: Abelson and Sussman, 376 बार
- Gödel, Escher, Bach: Douglas Hofstadter, 365 बार
- How to Win Friends and Influence People: Dale Carnegie, 292 बार
- The C Programming Language: Brian Kernighan, Dennis Ritchie, 284 बार
- Dune: Frank Herbert, 261 बार
- शीर्ष सूची में तकनीकी पुस्तकों के साथ उपन्यास, दर्शन, मनोविज्ञान, इतिहास और startup से जुड़ी किताबें भी शामिल थीं
- Thinking, Fast and Slow: 244 बार
- The Pragmatic Programmer: 203 बार
- Designing Data-Intensive Applications: 153 बार
- Clean Code: 106 बार
- The Elements of Computing Systems: 104 बार
गणना की गलतियाँ और डेटा सफाई
- शुरुआती सूची में कुछ लेखक मिलान त्रुटियाँ थीं
- Dune के लेखक Brian Herbert नहीं बल्कि Frank Herbert हैं
- Meditations, Descartes की नहीं बल्कि Marcus Aurelius की है
- Calculus को Michael Spivak की किताब के रूप में पकड़ा गया, लेकिन उस गणना में Apostol की Calculus के 14 उल्लेख भी शामिल थे
- SQL query को हर शीर्षक के लिए
min(author)लौटाने के बजाय सबसे अधिक बार आने वाले लेखक को लौटाना चाहिए था - 12 अक्टूबर 2023 के अपडेट में शीर्ष 50 सूची को सुधारा गया
- Javascript और Calculus में एक ही नाम वाली कई किताबें मिल जाने से उन्हें त्रुटिपूर्ण माना गया
- Javascript: The Good Parts का नाम डेटा प्रोसेसिंग कोड में “javascript” कर दिया गया था, लेकिन उसी नाम की दूसरी किताबें भी थीं
- deduplication के बाद ये प्रविष्टियाँ शीर्ष 50 से बाहर हो गईं
ChatGPT API के उपयोग में सामने आई सीमाएँ
- वैध JSON न लौटने के मामले अक्सर तब होते थे जब HN टिप्पणी “thanks” जैसी बहुत छोटी होती थी या प्रश्न के रूप में होती थी
- जवाब में “I apologize for the confusion…” या “You’re welcome!” जैसे वाक्य भी मिल जाते थे
- prompt को इस तरह बनाया गया था कि खाली शीर्षक वाले जवाबों को हटाया जा सके
- इसका उद्देश्य उस समस्या को कम करना था जिसमें ChatGPT केवल लेखक का ज़िक्र होने पर भी उसे पुस्तक उल्लेख मान लेता था, जबकि कोई खास शीर्षक मौजूद नहीं होता था
- 57k टिप्पणियों को प्रोसेस करने की लागत gpt-3.5-turbo API के आधार पर लगभग $40 थी
- temperature को 0 पर सेट करने के बाद भी GPT के नतीजे हर call पर बदलते थे
- GPT-4 की non-determinism के उदाहरण पहले से ज्ञात हैं, लेकिन gpt-3.5-turbo में भी पुराने GPT-3 मॉडलों की तुलना में अधिक उतार-चढ़ाव दिखा
- टेक्स्ट से लिंक पहचाने जा सकते थे, लेकिन HTML tags हटाकर केवल URL छोड़ा जाना ज़रूरी था
- नहीं तो GPT असली URL के बजाय कटा हुआ लिंक टेक्स्ट उठा लेता था
JSON आउटपुट फ़ॉर्मेट और prompt की शर्तें
- एक HN टिप्पणी के लिए ChatGPT द्वारा बनाया गया JSON उदाहरण फ़ॉर्मेट के हिसाब से सही था, लेकिन लिंक को छोड़कर बाकी सभी मान गलत थे
- आउटपुट
match,title,author,linkफ़ील्ड वाले array फ़ॉर्मेट में था - prompt में निम्न शर्तें शामिल थीं
- दस्तावेज़ से पुस्तक शीर्षक और लेखक की पहचान करना
- शीर्षक से match हुए शब्द दिखाना
- संक्षिप्त शीर्षकों का विस्तार करना
- यदि केवल लेखक का ज़िक्र हो और पुस्तक न हो तो
titleखाली छोड़ना - यदि सिर्फ सिफारिश मांगी गई हो और किसी पुस्तक का ज़िक्र न हो तो खाली array लौटाना
- उपशीर्षक शामिल न करना
सार्वजनिक डेटा और शीर्षक normalization
- raw data produced by GPT शीर्षक के आधार पर sort किया गया GPT आउटपुट का कच्चा डेटा है
matchकॉलम में उन टिप्पणियों के कुछ हिस्से शामिल हैं जिनमें पुस्तक की पहचान हुई थी
- पुस्तक शीर्षकों पर normalization लागू की गई
- lowercase करना
- शीर्षक की शुरुआत का “the” हटाना
- उपशीर्षक हटाना
- यह normalization GPT द्वारा बनाए गए नामों के असंगत होने के कारण शीर्ष पुस्तक query से प्रविष्टियाँ छूटने की समस्या को कम करने के लिए की गई
- इनपुट डेटा zipped csv format में उपलब्ध है, और unzip करने पर यह 24 MB की फ़ाइल बनती है
- तालिका में Amazon URL पर सीखने के उद्देश्य से Amazon affiliate link जोड़ा गया है
1 टिप्पणियां
Hacker News की राय
ChatGPT ने कुछ छोड़ दिए, और शायद और भी बहुत-से: https://hn.algolia.com/?q=A+non-standard+book+list+for+softw...
comments में भी और हैं: https://news.ycombinator.com/item?id=30651273
यह वेबसाइट Amazon affiliate links से ज्यादा clicks पैदा करने का एक चालाक तरीका लगती है
HN पर Hacker Recommended Books [0a] के बारे में [0b] से पता चला, और वहां की किताबें पढ़ना शुरू किया; कई किताबें आजमाईं और करीब 20 पढ़ डालीं। अनुभव बहुत अच्छा रहा, बहुत कुछ नया सीखा, और कुछ किताबों ने सोच का दायरा भी बढ़ाया
अगर आपको किताबें पसंद हैं, तो HN पर बस books खोजकर "Ask HN" tag [1] या सिर्फ "books" से filter करने की जोरदार सलाह दूंगा। अब English books मैं लगभग ऐसे ही चुनता हूं, non-technical books भी। 2 साल से ज्यादा समय से ऐसा कर रहा हूं, और HN की book recommendations मुझे सच में बहुत पसंद हैं
किताबों से जुड़े HN threads में कई सालों की high-quality reading जमा है, इसलिए वे लगभग सोने की खान जैसे हैं। Hacker News Books [2] भी है, और Top Books of All Time section [3] भी देखने लायक है
[0a]: https://hacker-recommended-books.vercel.app/category/0/all-t...
[0b]: https://news.ycombinator.com/item?id=28595967
[1]: https://hn.algolia.com/?q=Ask+HN+books
[2]:https://hackernewsbooks.com
[3]: https://hackernewsbooks.com/top-books-on-hacker-news
इसलिए 15-sided dice से एक page चुना, फिर दोबारा roll करके उस page की किताब चुनी। जो किताब पढ़ूंगा वह The Very Hungry Caterpillar है
यह site की आलोचना नहीं है; बल्कि अपने ऊपर अफसोस जैसा है कि ऐसी service मौजूद है, यह अच्छे इरादे से save कर के भी मैं भूल गया
सस्ते Amazon affiliate link spam को quality से और दूर ले जाने का तरीका: उसे “AI” से generate कर दो
Charles Petzold की Code का top 50 में न होना हैरान करता है। computers असल में कैसे काम करते हैं, यह सीखने के लिए यह सबसे accessible किताबों में से एक है
HN पर मैंने Code का काफी mention देखा है, हालांकि sample उन links की तरफ biased हो सकता है जिन पर मैंने comments पढ़े थे
अभी पढ़ रहा हूं, लेकिन 3–4 pages से आगे बढ़ने से पहले ही lights out हो जाता है, इसलिए बहुत समय लग रहा है
बाद का हिस्सा ईमानदारी से कठिन था। “समझ गया था” फिर भी, क्योंकि पहले हिस्से को ठीक से याद नहीं किया था
फिर भी 5 साल के बच्चे को समझाने जैसा सिखाने का approach मुझे पसंद है। आजकल लोग fundamentals को intrinsically काफी complex मानने के बजाय उन्हें सरसरी तौर पर पार कर जाने की कोशिश करते हैं
यह चौंकाने वाला है कि Knuth की किताबें टॉप 5 में नहीं हैं, और यह भी बहुत चौंकाने वाला है कि Descartes की Meditations मौजूद है। फ्रांस में भी अब कोई उसे नहीं पढ़ता, इसलिए लगता है कि यह HN पर meditation से जुड़े पोस्ट्स के साथ मिलकर आया हुआ नतीजा होगा
और Dune को Franck Herbert ने नहीं, Frank Herbert ने लिखा है। इस पोस्ट पर भरोसा करना मुश्किल है, और LLM के लोकप्रिय होने के बाद इंटरनेट पर आने वाली लगभग किसी भी चीज़ पर भरोसा करना मुश्किल हो गया है
माध्यम कोई भी हो, किसी भी publication में data और methods की integrity हमेशा verify करनी चाहिए थी। लेखक और पाठक की ज़िम्मेदारी LLM से पहले और बाद में नहीं बदली है। अगर LLM से पहले आप स्वाभाविक रूप से भरोसा करते थे, तो ऐसा नहीं करना चाहिए था; और LLM के बाद भी अगर आप भरोसेमंद लेखक पर भरोसा नहीं कर पा रहे हैं, तो वह भी समस्या है
मेरे पास कुछ volumes हैं, पर वे तोहफ़े में मिली थीं, और मैंने उन्हें कभी पढ़ा नहीं। इसलिए उनका टॉप 5 में न दिखना मुझे खास हैरान नहीं करता
समझ नहीं आता कि ChatGPT की ज़रूरत क्यों थी। Algolia और data analysis ही काफी होते; यहाँ नया और मुश्किल काम क्या था?
HN book recommendations के उपयोगी होने की वजह बल्कि उलटी है। नीचे की तरफ जिन comments को recommendation table में जगह नहीं मिली, उनमें ऐसी किताबों की recommendations हैं जिनके बारे में मैंने पहली बार सुना, और वही valuable है। popular choices को इकट्ठा करने वाली यह list ज़्यादातर predictable है
“किताब recommend करें” वाली posts में गहराई तक जाएँ, तो सबसे नीचे के आसपास सचमुच शानदार recommendations मिल सकती हैं
क्या किसी और को भी लगता है कि अगर कोई How to Win Friends and Influence People को अपनी सबसे पसंदीदा या सबसे ज्यादा प्रभाव डालने वाली किताबों में से एक बताता है, तो यह red flag है?
अगर आपके पास पहले से friend group है और उसे बनाए रखने की चिंता नहीं है, तो संभव है कि किताब की लगभग सारी बातें आपको पहले से पता हों। लेकिन हमेशा loner की तरह बड़े हुए व्यक्ति के रूप में, इस किताब की सलाह सचमुच उपयोगी लगी। यह उन social skills का सार जैसा था जो मुझे 10 साल की उम्र में सीखनी चाहिए थीं, पर नहीं सीख पाया
इस किताब का ज़िक्र करने वाले व्यक्ति में दिखने वाला इकलौता “red flag” बस इतना है कि मेरी तरह वह शायद अतीत में किसी समय socially बहुत awkward रहा हो। शायद अभी भी हो, लेकिन कम से कम सुधार करने की कोशिश कर रहा है
आसपास के ज़्यादातर लोगों को शायद इस किताब की ज़रूरत नहीं होगी, और शायद उन्हें यह थोड़ी बेवकूफी भरी लगे। लेकिन मेरे लिए यह turning point थी, और HN पर भी ऐसे अनुभव वाले बहुत लोग होंगे
list में मौजूद Meditations, page के नीचे raw data देखने पर, Descartes की “Meditations on First Philosophy” नहीं बल्कि Marcus Aurelius की रचना की ओर इशारा करती लगती है
यह बस partial check है, पूरा survey नहीं। raw data में Descartes का ज़िक्र करने के मामले भी कई हैं, लेकिन आम तौर पर वे दूसरी रचनाओं के बारे में हैं। इसे मैं एक दिलचस्प गलती मानता हूँ
आजकल खुद से पूछने लायक एक और बेहतर सवाल यह है: इसे LLM के सीधे उपयोग के बिना, बल्कि machine learning के बिना भी, कैसे किया जा सकता है? फिर दूसरे चरण में पूछा जा सकता है कि generative tools या machine learning की संभावित मदद उस solution को कैसे बेहतर बना सकती है
reality यह है कि boring technology से interest और engagement पाना मुश्किल है
पुराने प्रकार के tasks पर नए tools लागू करना सीखना भी उपयोगी और insight देने वाला है