टेक्स्ट classification में Gzip और KNN, Transformers से बेहतर प्रदर्शन करते हैं
(twitter.com/LukeGessler)- gzip जैसे सरल compressor और k-nearest neighbors (kNN) classifier को मिलाकर एक non-parametric टेक्स्ट classification तरीका प्रस्तावित
- training parameters बिल्कुल नहीं होने के बावजूद हल्का और general-purpose, और DNN की तुलना में computational cost कम
- pretrained नहीं किए गए deep learning तरीकों की तुलना में 6 in-distribution datasets पर प्रतिस्पर्धी नतीजे हासिल
- 4 low-resource languages सहित सभी 5 OOD (out-of-distribution) datasets पर BERT से बेहतर प्रदर्शन
- labeled data की कमी के कारण DNN training कठिन होने वाले few-shot environments में भी उत्कृष्ट performance
पृष्ठभूमि और समस्या
- DNN का इस्तेमाल उच्च accuracy के कारण टेक्स्ट classification में व्यापक रूप से होता है
- लेकिन इन्हें लाखों parameters और बड़ी मात्रा में labeled data चाहिए, जिससे computational cost अधिक होती है
- इसके चलते usage, optimization, और OOD (out-of-distribution) situations में transfer व्यावहारिक रूप से महंगे काम बन जाते हैं
प्रस्तावित तरीका
- DNN के विकल्प के रूप में एक आसान, हल्का और general-purpose non-parametric तरीका पेश
- gzip जैसे सरल compressor और k-nearest neighbors classifier को मिलाने वाली संरचना
- इसका मुख्य feature है कि इसमें training parameters बिल्कुल नहीं हैं
प्रयोगों के नतीजे
- 6 in-distribution datasets पर pretrained नहीं किए गए deep learning तरीकों से प्रतिस्पर्धी स्तर का performance
- 4 low-resource languages सहित सभी 5 OOD datasets पर BERT से बेहतर प्रदर्शन
- labeled data बहुत कम होने के कारण DNN को प्रभावी ढंग से train करना कठिन होने वाले few-shot environments में भी मजबूत प्रदर्शन
1 टिप्पणियां
Hacker News टिप्पणियाँ
पेपर का सीधा लिंक: https://aclanthology.org/2023.findings-acl.426.pdf
सहज रूप से मुख्य बात यह है कि जब दस्तावेज़ x1, x2 और नया दस्तावेज़ x दिया हो, तो अगर x की सांख्यिकीय नियमितता x2 की तुलना में x1 के अधिक करीब है, तो
len(compress(cat(x1,x))) - len(compress(x)) < len(compress(cat(x2,x))) - len(compress(x))होगा। यहाँcatका मतलब जोड़ना/साथ रखना है, औरcompressgzip जैसे compressor को दर्शाता हैशाब्दिक रूप से
len(compress(cat(x1,x))) - len(compress(x))x की सांख्यिकीय नियमितता दिए जाने पर x1 की सांख्यिकीय नियमितता को compress करने के लिए अतिरिक्त रूप से आवश्यक bytes की संख्या है। x1 और x जितने अधिक समान होंगे, केवल x को compress करने की तुलना मेंcat(x1,x)को compress करने के लिए उतने ही कम अतिरिक्त bytes लगेंगेलेखकों ने इस विचार पर आधारित Normalized Compression Distance (NCD) नामक distance function का उपयोग करके compressed documents पर k-nearest neighbors (kNN) लागू किया। NCD, information, Shannon entropy, और Kolmogorov complexity के बीच संबंधों पर भी चर्चा की गई है
हैरानी की बात है कि यह सरल और सहज तरीका कई zero-shot classification कार्यों में BERT से बेहतर निकलता है। हालाँकि इसका यह मतलब नहीं है कि यह ज़रूरी तौर पर बड़े और नए Transformer models को भी हरा देता है
यानी दस्तावेज़ को compression dictionary की तरह इस्तेमाल करने पर और न करने पर compression size की तुलना की जाए। zstd कम-से-कम 20+ levels पर gzip की तुलना में बहुत अधिक compression ratio देता है, इसलिए अगर gzip में अच्छा काम करने का कारण Kolmogorov complexity approximation है, तो यह और बेहतर काम कर सकता है
अगर x1 अंग्रेज़ी में है और x उसी दस्तावेज़ का Hebrew अनुवाद है, तो शायद LLM बेहतर करेगा
हाल में images के साथ काम करते हुए JPEG output देखा, और पाया कि एक ही base pixels से भी बहुत अलग-अलग images निकल सकती हैं। यह दिलचस्प है कि image जितनी अधिक noisy और random जैसी होती है, JPG file size उतना बढ़ता है, और उलटे जितनी photo जैसी दिखती है, JPG size उतना छोटा हो जाता है
अगर आपको AI और compression की समतुल्यता में रुचि है, तो Hutter Prize देखना अच्छा रहेगा :) http://prize.hutter1.net/
Large Text Compression Benchmark भी देखने लायक है http://mattmahoney.net/dc/text.html - इस समय दुनिया का सर्वश्रेष्ठ compressor ffmpeg और QEMU बनाने वाले प्रसिद्ध Fabrice Bellard का neural network है
मुझे इन पेजों की उपयुक्त text-only style भी सचमुच बहुत पसंद है
वे arithmetic coding(https://en.wikipedia.org/wiki/Arithmetic_coding) को उस context के अनुसार समायोजित करते हैं जिसमें अगला byte/bit अनुमानित किया जाना है, इसलिए जितना अधिक सटीक अनुमान होगा, encoding उतनी ही efficient होगी। यह काम स्वयं GPT जैसे Transformer से काफ़ी मिलता-जुलता है
perfect prediction में arithmetic interval छोटा नहीं होता, इसलिए अतिरिक्त storage cost लगभग नहीं के बराबर होती है, और परिणामस्वरूप bits भी संग्रहित नहीं होते। लेकिन निष्पक्ष benchmark के लिए decompressor का आकार भी गिनना चाहिए
यह काफ़ी पुराना विचार है, [1,2] देखे जा सकते हैं। पुराना होने के बावजूद perceptron की तरह अब भी बहुत उपयोगी है
[1] Li and Vitanyi. An Introduction to Kolmogorov Complexity and Its Applications
[2] Clustering by compression. https://arxiv.org/pdf/cs/0312044
theory उस कहानी जैसी होती है जो एक ही “characters” से बहुत-सी चीज़ें समझा देती है। यहाँ characters का अर्थ concepts से अधिक है, उदाहरण के लिए atoms इस पर फिट बैठते हैं
मैं यह बताना चाहूँगा कि इस तरीके की मज़बूती news तक सीमित है
Yahoo Questions में यह सर्वोत्तम प्रदर्शन नहीं देता। यह मानना अनुचित नहीं है कि news एक जैसे ढंग से लिखी जाती है और कभी-कभी उसके हिस्से कॉपी भी हो जाते हैं, इसलिए common words अधिक होते हैं
Yahoo Questions एक forum है, इसलिए शब्दों में विविधता अधिक होगी, लेकिन शब्दों के बीच semantic similarity भी होती है
यानी gzip तब मज़बूत है जब शब्दों में बहुत overlap हो (gzip compression के दौरान size में बढ़ोतरी कम होती है), और जहाँ semantic similarity महत्वपूर्ण हो, वहाँ DNN हमेशा जीतता है
नतीजे दिलचस्प हैं, लेकिन मेरी नज़र में वे सुनने में जितने दिलचस्प लगते हैं उतने नहीं हैं
यह बहुत महत्वपूर्ण है कि यह नतीजा out-of-distribution data से आया है। उदाहरण के लिए, यह ‘Kinyarwanda, Kirundi, Pinyin’ जैसी भाषाओं की ख़बरें हैं
ज़्यादा सामान्य सेटिंग्स में BERT अब भी भारी बढ़त से जीतता है
यह अच्छा है कि इतनी सरल विधि बेहद प्रभावी हो सकती है, लेकिन इसे बढ़ा-चढ़ाकर नहीं बेचना चाहिए
लेकिन बताए गए हालात देखें तो यह काफ़ी सहज लगता है। ऐसी भाषा के टेक्स्ट को वर्गीकृत करना जिसे आप बिल्कुल नहीं जानते, इसका मतलब क्या है? अगर आपसे Kirundi टेक्स्ट को वर्गीकृत करने को कहा जाए, तो आप उसका अर्थ बिल्कुल नहीं जानते होंगे, और आप जो सबसे अच्छा कर सकते हैं वह है शब्दों या अक्षर अनुक्रमों की आवृत्ति ढूँढना और मिलती-जुलती आवृत्ति-छाप वाले टेक्स्ट को एक साथ समूहित करना
आप अब भी वास्तविक अर्थ नहीं जानते, लेकिन यह रैंडम से बेहतर हो सकता है, और वास्तव में ऐसा होता भी है। अच्छी बात यह है कि gzip+kNN ठीक यही करता है, यही इसका असली काम है और इसी के लिए यह मौजूद है
इस टेक्स्ट को पढ़कर समझने या अगला अक्षर अनुमान लगाने की कोशिश करने से ज़्यादा कुछ हासिल नहीं होगा। कोई सामान्य इंसान भाषा नहीं जानता हो तो शुरू से ऐसा करने की कोशिश भी नहीं करेगा। दुर्भाग्य से BERT ठीक वही करता है। क्योंकि BERT को मूलतः वही एक काम आता है। फिर भी, एक सामान्य इंसान, शायद असामान्य इंसान से भी ज़्यादा उपयोगिता निकाल लेना, बधाई के लायक है
यह वास्तव में बहुत चतुर है और सहज रूप से समझ आता है
अगर आप मिलते-जुलते टेक्स्ट के दो हिस्से जोड़ दें, तो वे अलग-अलग टेक्स्ट के दो हिस्से जोड़ने की तुलना में बेहतर compress होंगे
यह इस विधि की जीत से ज़्यादा deep learning-based similarity के लिए एक नकारात्मक संकेत जैसा लगता है
LLM के इस उछाल के बीच, यह सच है कि LLM प्रभावशाली हैं, लेकिन लगता है बहुत से लोग मान लेते हैं कि pure text similarity के लिए embedding layer में भी वैसी ही प्रगति हुई होगी
इसी वजह से हर तरह के embedding database का बूम आया, लेकिन मेरी नज़र में उसे समर्थन देने वाले सबूत बहुत कम हैं
लिंक को पेपर PDF https://aclanthology.org/2023.findings-acl.426.pdf की ओर जाना चाहिए
compression algorithm जगह, यानी bits और bytes की बचत/संपीड़न है। machine learning models, ख़ासकर generative models, इंसानी अभिव्यक्ति और सोच की बचत/संपीड़न हैं
text classification, इंसानी अभिव्यक्ति के ऊपर compression का एक प्रकार है। क्या इंसानी भाषा और डेटा की कोई बुनियादी विशेषता हो सकती है जो समझाए कि machine learning tasks में कौन-सा तरीका बेहतर होगा?
कभी न कभी अगर ऐसी कोई theory आकार लेती है, तो शायद यह चौंकाने वाली बात नहीं होगी कि compressed bits/bytes की encoding और compressed human expression किसी space में काफ़ी क़रीब से जुड़े हों और दोनों किसी न किसी तरह से संबंधित हों। वास्तव में, ऐसी theory, जैसे entropy-based या physics-based theory, यह चुनने में मदद कर सकती है कि मानव अभिव्यक्ति के किसी ख़ास प्रकार के compression के लिए compression algorithm इस्तेमाल करें या machine learning model
डेटा-केंद्रित नज़रिये से देखें, तो ऐसे कौन-से hard negative examples होंगे जो इस तरह के algorithm को कमज़ोर बनाते हों? फ़िलहाल शायद हम ऐसी theory का सिर्फ़ अनुमान ही लगा सकते हैं, वह भी अलग-अलग तरह के मानवीय टेक्स्ट डेटा के संदर्भ में। उदाहरण के लिए, statistical topic model से मिश्रण का अनुमान लगाना academic text पर अच्छा काम करता है, लेकिन internet text पर कठिनाई आती है
क्या Wolfram Physics के अलावा कोई और भी ऐसी theory पर काम कर रहा है?
https://www.newyorker.com/tech/annals-of-technology/chatgpt-...
यह पूरी तरह समझ में आता है। compression “समझ” के बारे में है, यानी input को इस तरह represent करना कि उसे पहचाना और label किया जा सके
अगर पहचाने गए bits label से बड़े हो जाएँ, तो लीजिए, compression हो गया। यह चौंकाने वाली बात नहीं कि gzip इस काम में DNN से बेहतर हो सकता है
इसे subset इसलिए कह रहा हूँ क्योंकि understanding ज़्यादा सामान्य है। कोई विशिष्ट compression algorithm floating-point numbers पर अच्छा काम कर सकता है। इसके उलट, दिमाग और artificial neural networks शायद प्रदर्शन में कमज़ोर हों, फिर भी वे किसी भी input pattern को compress कर सकते हैं
मुझे समझ नहीं आता कि gzip “not” जैसे शब्दों को कैसे संभाल सकता है जो पूरे वाक्य का अर्थ उलट देते हैं
कोई समझता है?