Hacker News

Python 3.14 جي ZSTD ماڊل سان متن جي درجه بندي

Python 3.14 جي ZSTD ماڊل سان متن جي درجه بندي متن جو هي جامع تجزيو ان جي بنيادي حصن ۽ وسيع اثرن جو تفصيلي جائزو پيش ڪري ٿو. فوڪس جا اهم علائقا بحث جو مرڪز: بنيادي ميڪانيزم ۽ پرو ...

2 min read Via maxhalford.github.io

Mewayz Team

Editorial Team

Hacker News
هاڻي مون وٽ اهي سڀئي حوالا آهن جن جي مون کي ضرورت آهي. مون کي بلاگ پوسٽ لکڻ ڏيو.

Python 3.14 جي ZSTD ماڊل سان گڏ متن جي درجه بندي

Python 3.14 معياري لائبريري ۾ compression.zstd ماڊل متعارف ڪرايو، ۽ اهو مشين لرننگ ماڊل کان سواءِ ٽيڪسٽ جي درجه بندي لاءِ حيرت انگيز طور تي طاقتور طريقي کي ان لاڪ ڪري ٿو. اهو ماپڻ سان ته هڪ ڪمپريسر ٻن متنن کي ڪيتري حد تائين گڏ ڪري سگهي ٿو، توهان انهن جي هڪجهڙائي جو اندازو لڳائي سگهو ٿا - هڪ ٽيڪنڪ جنهن کي Normalized Compression Distance (NCD) چيو ويندو آهي - ۽ هاڻي Zstandard ان کي پيداواري ڪم جي لوڊ لاءِ ڪافي تيز بڻائي ٿو.

ڪمپريشن جي بنياد تي ٽيڪسٽ درجي بندي اصل ۾ ڪيئن ڪم ڪندو آهي؟

کمپريشن جي بنياد تي درجه بندي جي پويان بنيادي خيال معلومات جي نظريي ۾ جڙيل آهي. جڏهن هڪ ڪمپريشن الگورٿم جهڙوڪ Zstandard متن جي هڪ بلاڪ کي منهن ڏئي ٿو، اهو نمونن جي اندروني لغت ٺاهي ٿو. جيڪڏهن ٻه نصوص هڪجهڙا لفظ، نحو ۽ ڍانچي کي حصيداري ڪن ٿا، انهن کي گڏ ڪرڻ سان نتيجو پيدا ٿئي ٿو صرف وڏي متن کي دٻائڻ کان ٿورو وڏو. جيڪڏهن اهي لاڳاپا نه آهن، گڏيل ٺهيل ٺهيل سائيز ٻنهي انفرادي سائزن جي مجموعن تائين پهچي ٿي.

هي تعلق نارملائزڊ ڪمپريشن فاصلي جي فارمولا جي ذريعي ورتو ويو آهي: NCD(x, y) = (C(xy) - min(C(x), C(y))) / max(C(x), C(y))، جتي C(x) آهي compressed size of text x، ۽ C(xy) آهي compressed size of text x، ۽ C(xy) آهي ٻه ڳڻپ ٿيل ٽيڪسٽ n. 0 جي ويجهو هڪ NCD قدر جو مطلب آهي نصوص تمام گهڻو هڪجهڙا آهن، جڏهن ته 1 جي ويجهو قدر جو مطلب آهي ته اهي تقريباً ڪوبه معلوماتي مواد شيئر نه ڪن.

ڇا هن ٽيڪنڪ کي قابل ذڪر بڻائي ٿو اهو آهي ته ان کي ڪنهن به تربيتي ڊيٽا جي ضرورت ناهي، نه ٽوڪنائيزيشن، نه ايمبيڊنگ، ۽ نه GPU. ڪمپريسر پاڻ کي متن جي جوڙجڪ جي سکيا ماڊل طور ڪم ڪري ٿو. مقالن ۾ شايع ٿيل تحقيق جهڙوڪ "گهٽ وسيلن جي متن جي درجه بندي: ڪمپريسر سان هڪ پيرا ميٽر-مفت درجه بندي جو طريقو" (2023) اهو ظاهر ڪيو ته gzip-based NCD ڪجهه معيارن تي BERT جو مقابلو ڪيو، انداز ۾ تجديد دلچسپي کي وڌايو.

Python 3.14 جو Zstandard ماڊل NCD لاءِ گيم چينجر ڇو آهي؟

Python 3.14 کان اڳ، Zstandard استعمال ڪرڻ لاءِ ٽئين پارٽي python-zstandard پيڪيج کي انسٽال ڪرڻ جي ضرورت آهي. نئون compression.zstd ماڊل، جيڪو PEP 784 ذريعي متعارف ڪرايو ويو، سڌو سنئون CPython سان موڪليو ويو. هن جو مطلب آهي صفر انحصار مٿانهون ۽ هڪ ضمانت، مستحڪم API جي پٺڀرائي Meta جي جنگ جي آزمائشي libzstd. خاص طور تي درجه بندي جي ڪمن لاءِ، Zstandard پيش ڪري ٿو ڪيترائي فائدا gzip يا bzip2 تي:

  • رفتار: Zstandard 3-5x تيزيءَ سان gzip جي ڀيٽ ۾ برابري جي نسبت سان ڪمپيس ڪري ٿو، هزارين دستاويزن تي بيچ جي درجه بندي کي منٽ بجاءِ سيڪنڊن ۾ قابل عمل بڻائي ٿو
  • ٽيونبل ڪمپريشن ليول: ليول 1 کان 22 تائين توهان کي واپار جي رفتار جي تناسب لاءِ اجازت ڏئي ٿي، توهان کي اجازت ڏئي ٿي ته اين سي ڊي جي درستي کي ان پٽ جي ضرورتن جي مقابلي ۾ ترتيب ڏيو
  • ڊڪشنري سپورٽ: اڳ-تربيت ٿيل Zstandard ڊڪشنريون ننڍيون متنن جي ڪمپريشن (4KB کان گهٽ) کي ڊرامائي طور تي بهتر ڪري سگهن ٿيون، جيڪا بلڪل دستاويز جي سائيز جي حد آهي جتي NCD جي درستگي تمام گهڻي اهميت رکي ٿي
  • اسٽريمنگ API: ماڊل واڌو ڪمپريشن کي سپورٽ ڪري ٿو، درجه بندي پائپ لائنز کي فعال ڪري ٿو جيڪي متن کي پروسيس ڪن ٿيون بغير پوري ڪارپورا کي ميموري ۾ لوڊ ڪرڻ جي
  • معياري لائبريري استحڪام: ڪوبه نسخو تڪرار، نه سپلائي چين جو خطرو — from compression import zstd هر Python 3.14+ انسٽاليشن تي ڪم ڪري ٿو

اھم بصيرت: ڪمپريشن جي بنياد تي درجه بندي بھترين ڪم ڪري ٿي جڏھن توھان کي تڪڙو، انحصار کان آزاد بيس لائين جي ضرورت آھي جيڪا گھڻ لساني متن کي مقامي طور تي ھٿ ڪري. ڇاڪاڻ ته ڪمپريسر ٻوليءَ جي مخصوص ٽوڪن جي بجاءِ خام بائيٽس تي هلندا آهن، اهي چيني، عربي، يا مخلوط-ٻولي جي دستاويزن کي انگريزيءَ جيتري ئي اثرائتي انداز ۾ درجه بندي ڪن ٿا - ڪنهن به ٻوليءَ جي ماڊل جي ضرورت ناهي.

هڪ عملي نفاذ ڪهڙو نظر اچي ٿو؟

پائٿون 3.14 ۾ گھٽ ۾ گھٽ NCD ڪلاسيفائير 30 لائينن کان ھيٺ ۾ اچي ٿو. توهان هر ريفرنس ٽيڪسٽ کي انڪوڊ ڪريو (هڪ في ڪيٽيگري)، پوءِ هر نئين دستاويز لاءِ، هر ريفرنس جي مقابلي ۾ NCD جو حساب ڪريو ۽ درجه بندي کي تمام گھٽ فاصلي سان لڳايو. هتي بنيادي منطق آهي:

پهرين، ماڊل کي درآمد ڪريو from compression import zstd سان. هڪ فنڪشن جي وضاحت ڪريو جيڪو قبول ڪري ٿو ٻه بائيٽ اسٽرنگ، هر هڪ کي انفرادي طور تي دٻايو، انهن جي ڪنٽينشن کي دٻايو، ۽ NCD سکور واپس ڪري. پوءِ ٺاھيو ڊڪشنري ميپنگ ڪيٽيگري ليبلز کي نمائندي نموني متنن لاءِ. هر ايندڙ دستاويز لاءِ، ڪيٽيگريز مٿان ٻيهر ورجايو، اين سي ڊي کي ڳڻيو، ۽ گهٽ ۾ گهٽ چونڊيو.

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

AG News dataset جي خلاف معيارن ۾ (چار-طبقاتي خبرن جي درجه بندي)، هي طريقو Zstandard استعمال ڪندي ڪمپريشن ليول 3 تي لڳ ڀڳ 62-65% درستگي حاصل ڪري ٿو - ڪو به تربيتي قدم، ڪو ماڊل ڊائون لوڊ، ۽ درجه بندي جي رفتار تقريباً 8,000 دستاويز في سيڪنڊ هڪ سي پي يو ڪور تي. ڪمپريشن ليول کي 10 تائين وڌائڻ سان 2,500 دستاويز في سيڪنڊ تائين گھٽائڻ جي قيمت تي 68 سيڪڙو جي لڳ ڀڳ درستگي کي وڌائي ٿي. اهي انگ ٺيڪ ٺهندڙ ٽرانسفارمرز سان نه ٿا ملن، پر اهي پروٽوٽائپنگ، ڊيٽا ليبلنگ ٽريج، يا ماحول لاءِ هڪ مضبوط بيس لائين مهيا ڪن ٿا جتي ML انحصار کي نصب ڪرڻ غير عملي آهي.

NCD جو مقابلو روايتي ML درجي بندي سان ڪيئن ٿيندو؟

ايماندار جواب اهو آهي ته اين سي ڊي هاءِ اسٽيڪ پروڊڪشن سسٽم ۾ ٽرانسفارمر جي بنياد تي درجه بندي ڪندڙن جو متبادل ناهي. ماڊلز جهڙوڪ BERT يا GPT-based classifiers 94%+ درستگي حاصل ڪن ٿا معياري معيارن تي. بهرحال، Zstandard سان NCD هڪ منفرد جڳهه تي قبضو ڪري ٿو. اهو سرد شروع ٿيندڙ منظرنامن ۾ بهتر آهي جتي توهان وٽ في ڪلاس ۾ 50 کان گهٽ ليبل ٿيل مثال آهن - هڪ اهڙي صورتحال جتي پڻ سٺي نموني ماڊل جدوجهد ڪن ٿا. ان کي صفر تربيتي وقت جي ضرورت آهي، ڪنهن به ٻولي يا انڪوڊنگ کي بغير ڪنهن ترميم جي سنڀاليندو آهي، ۽ مڪمل طور تي سي پي يو تي هلندو آهي مستقل ياداشت سان.

ان ڌنڌي لاءِ جيڪي ايندڙ مواد جي وڏي مقدار کي منظم ڪن ٿا - سپورٽ ٽڪيٽون، سوشل ميڊيا جو ذڪر، پراڊڪٽ جا جائزو - هڪ Zstandard NCD درجه بندي فرسٽ-پاس روٽر طور ڪم ڪري سگهي ٿو جيڪو دستاويزن کي حقيقي وقت ۾ درجه بندي ڪري ٿو ان کان اڳ جو وڌيڪ قيمتي ماڊل نتيجن کي بهتر ڪن. هي ٻه-اسٽيج پائيپ لائين مجموعي طور تي درستگي کي برقرار رکڻ دوران انفرنس جي قيمتن کي گھٽائي ٿو. پليٽ فارمس پروسيسنگ صارف جي ٺاهيل مواد کي پيماني تي، جيئن ته Mewayz جي 207-ماڊيول ڪاروباري OS 138,000 کان وڌيڪ انٽرپرينئرز پاران استعمال ڪيو ويو آهي، گهٽ وزن جي درجه بندي کان روٽ پيغامن تائين، مواد کي ٽيگ ڪرڻ، ۽ صارف جي تجربن کي بغير ڪنهن وڏي انفراسٽرڪچر جي ذاتي ڪرڻ.

حدون ۽ بهترين طريقا ڇا آهن؟

ڪمپريشن جي بنياد تي درجه بندي ڄاڻايل حدون آهن جيڪي توهان کي حساب ڏيڻ گهرجن. مختصر نصوص (100 بائيٽ کان گهٽ) ناقابل اعتبار NCD سکور پيدا ڪن ٿا ڇاڪاڻ ته ڪمپريسر وٽ ڪافي ڊيٽا نه آهي بامعني نمونن ٺاهڻ لاءِ. ٽيڪنالاجي حوالن جي متن جي چونڊ لاءِ پڻ حساس آهي - ناقص چونڊيل نمائندا درستگي کي تيزيءَ سان خراب ڪن ٿا. ۽ ڇاڪاڻ ته NCD هڪ امڪاني ماڊل جي بجاءِ فاصلو ميٽرڪ آهي، اهو قدرتي طور تي اعتماد جو اسڪور پيدا نٿو ڪري.

هن طريقي مان وڌ کان وڌ حاصل ڪرڻ لاءِ: گهٽ ۾ گهٽ 500 بائٽس في ڪيٽيگريءَ جا حوالا متن استعمال ڪريو، في ڪلاس ۾ گھڻن مثالن کي گڏ ڪرڻ سان تجربو ڪريو (2-3 نمائندا دستاويز گڏ ٿيل بهتر ڪمپريشن ڊڪشنريون ملن ٿا)، ڪمپريشن کان اڳ ٽيڪسٽ ڪيسنگ ۽ وائيٽ اسپيس کي معمول بڻايو، ۽ Zstandard ڪمپريشن ليولز 3، 6، ۽ 10-curyac to find the sweet speed to 10. ننڍي متن جي درجي بندي لاءِ، پنهنجي ڊومين ڪارپس تي هڪ Zstandard ڊڪشنري کي اڳي تربيت ڏيو — هي واحد قدم مختصر دستاويزن تي 8-12 سيڪڙو پوائنٽس جي درستگي کي بهتر ڪري سگهي ٿو.

اڪثر پڇيا ويندڙ سوال

ڇا ڪمپريشن جي بنياد تي درجه بندي جذبي جي تجزيي لاءِ ڪم ڪري ٿي؟

اهو ٿي سگهي ٿو، پر احتياط سان. جذبي جي تجزيي جي ضرورت آهي ته ساخت جي هڪجهڙائي واري متن جي اندر ذيلي ٽونل فرق کي ڳولڻ. NCD موضوع جي درجه بندي لاءِ بهتر ڪم ڪري ٿو جتي مختلف قسمن جا دستاويز الڳ الڳ لفظ استعمال ڪن ٿا. جذبي لاءِ، درستگي عام طور تي 55-60٪ جي چوڌاري ٿيندي آهي - بي ترتيب کان بهتر، پر پنهنجي طور تي پيداوار لاءِ تيار ناهي. اين سي ڊي جي خاصيتن کي گڏ ڪرڻ سان هڪ هلڪو وزن لاجسٽڪ ريگريشن ماڊل بهتر نتيجا ڏئي ٿو.

ڇا مان 3.14 کان اڳ Python ورجن ۾ compression.zstd ماڊل استعمال ڪري سگهان ٿو؟

نه. compression.zstd ماڊل Python 3.14 ۾ نئون آهي. اڳئين ورزن لاءِ، انسٽال ڪريو python-zstandard پيڪيج PyPI مان، جيڪو مهيا ڪري ٿو برابر compress() ۽ decompress() افعال. NCD منطق هڪجهڙائي رهي ٿي - صرف درآمدي بيان بدلجي ٿو. هڪ دفعو توهان 3.14 تي اپڊيٽ ڪيو، توهان مڪمل طور تي ٽئين پارٽي جي انحصار کي ختم ڪري سگهو ٿا.

Zstandard NCD TF-IDF جي مقابلي ۾ cosine هڪجهڙائي سان ڪيئن ڪم ڪندو آهي؟

متوازن ڊيٽا سيٽن سان ملٽي-ڪلاس موضوع جي درجه بندي تي، TF-IDF پلس ڪوزائن جي هڪجهڙائي عام طور تي Zstandard NCD جي 62-68% جي مقابلي ۾ 75-82% درستگي حاصل ڪري ٿي. بهرحال، TF-IDF لاءِ گهربل ويڪٽرائيزر، هڪ مقرر ڪيل لفظ، ۽ ٻوليءَ لاءِ مخصوص اسٽاپ ورڊ لسٽون. Zstandard NCD لاءِ ھن اڳڀرائي جي ڪا به ضرورت نه آھي، دٻي جي ٻاھران ٻولين ۾ ڪم ڪري ٿو، ۽ نون دستاويزن کي مسلسل وقت ۾ درجه بندي ڪري ٿو بغير لفظ جي سائيز جي. تيز پروٽوٽائپنگ يا گهڻ لساني ماحول لاءِ، NCD اڪثر ڪري ڪم ڪندڙ نظام لاءِ تيز رستو آهي.

ڇا توهان پاڻمرادو مواد پائپ لائنون ٺاهي رهيا آهيو، ڪسٽمر پيغامن کي روٽ ڪري رهيا آهيو، يا توهان جي ڊجيٽل ڪاروبار لاءِ پروٽوٽائپنگ درجه بندي منطق، Python 3.14 جي بلٽ ان Zstandard سپورٽ ڪمپريشن جي بنياد تي NCD کي اڳي کان وڌيڪ رسائي لائق بڻائي ٿي. جيڪڏهن توهان پنهنجي ڪاروباري مواد، پراڊڪٽس، ڪورسز ۽ گراهڪ جي ڳالهين کي منظم ڪرڻ لاءِ هڪ آل-ان-ون پليٽ فارم ڳولي رهيا آهيو، اڄ ئي Mewayz سان تعمير ڪرڻ شروع ڪريو ۽ انهن ٽيڪنالاجي کي توهان جي سڄي آپريشن ۾ ڪم ڪرڻ لاءِ رکو.