Hacker News

Python 3.14 ZSTD moduli bilan matn tasnifi

Python 3.14 ZSTD moduli bilan matn tasnifi Matnning ushbu keng qamrovli tahlili uning asosiy tarkibiy qismlarini va kengroq oqibatlarini batafsil ko'rib chiqishni taklif qiladi. Diqqatning asosiy yo'nalishlari Muhokama quyidagilarga qaratilgan: Asosiy mexanizmlar va pro...

8 min read Via maxhalford.github.io

Mewayz Team

Editorial Team

Hacker News
Endi menda barcha kerakli kontekst bor. Blog postini yozishga ruxsat bering.

Python 3.14 ZSTD moduli bilan matn tasnifi

Python 3.14 standart kutubxonaga compression.zstd modulini taqdim etadi va u mashinani o'rganish modellarisiz matn tasnifiga hayratlanarli darajada kuchli yondashuvni ochadi. Kompressor ikkita matnni bir-biriga qanchalik yaxshi siqib chiqishini o‘lchash orqali siz ularning o‘xshashligini aniqlashingiz mumkin – bu usul Normallashtirilgan siqilish masofasi (NCD) – endi Zstandard uni ishlab chiqarishdagi ish yuklari uchun yetarlicha tezlashtiradi.

Siqishga asoslangan matn tasnifi aslida qanday ishlaydi?

Siqishga asoslangan tasniflashning asosiy g'oyasi axborot nazariyasiga asoslangan. Zstandard kabi siqish algoritmi matn blokiga duch kelganda, naqshlarning ichki lug'atini tuzadi. Agar ikkita matn o'xshash lug'at, sintaksis va tuzilishga ega bo'lsa, ularni bir-biriga siqish faqat katta matnni siqishdan biroz kattaroq natija beradi. Agar ular oʻzaro bogʻliq boʻlmasa, birlashtirilgan siqilgan oʻlcham ikkala alohida oʻlchamning yigʻindisiga yaqinlashadi.

Ushbu munosabat Normallashtirilgan siqilish masofasi formulasi bilan aniqlanadi: NCD(x, y) = (C(xy) - min(C(x), C(y))) / max(C(x), C(y)), bu erda C(x) - x matnining siqilgan o'lchami va C(xy) - ikkita birlashtirilgan matnning siqilgan o'lchami. NCD qiymati 0 ga yaqin bo‘lsa, matnlar juda o‘xshash, 1 ga yaqin qiymat esa ular deyarli hech qanday ma’lumotga ega emasligini bildiradi.

Ushbu texnikaning diqqatga sazovor tomoni shundaki, u trening maʼlumotlari, tokenizatsiya, oʻrnatish va GPU-ni talab qilmaydi. Kompressorning o'zi matn tuzilishining o'rganilgan modeli sifatida ishlaydi. “Kam resursli matn tasnifi: kompressorlar bilan parametrsiz tasniflash usuli” (2023) kabi maqolalarda chop etilgan tadqiqotlar shuni ko‘rsatdiki, gzip-ga asoslangan NCD ma’lum mezonlarda BERT bilan raqobatlashadi va bu yondashuvga yana qiziqish uyg‘otadi.

Nega Python 3.14 ning Zstandard moduli NCD uchun o'yinni o'zgartiruvchi vositadir?

Python 3.14 dan oldin Zstandard dan foydalanish uchinchi tomon python-zstandard paketini oʻrnatishni talab qildi. PEP 784 orqali taqdim etilgan yangi compression.zstd moduli to'g'ridan-to'g'ri CPython bilan jo'natiladi. Bu nol bog'liqlik va Meta-ning jangovar sinovdan o'tgan libzstd tomonidan qo'llab-quvvatlangan kafolatlangan, barqaror APIni anglatadi. Tasniflash vazifalari uchun Zstandard gzip yoki bzip2ga nisbatan bir qancha afzalliklarni taqdim etadi:

  • Tezlik: Zstandard taqqoslanadigan nisbatlarda gzip-ga qaraganda 3-5 baravar tezroq siqadi, bu minglab hujjatlarni bir necha daqiqada emas, balki bir necha soniya ichida paketli tasniflash imkonini beradi
  • Sozlanishi mumkin bo'lgan siqish darajalari: 1 dan 22 gacha darajalar tezlikni nisbat bo'yicha almashtirish imkonini beradi, bu sizga NCD aniqligini o'tkazish qobiliyati talablariga muvofiq sozlash imkonini beradi
  • Lug'atni qo'llab-quvvatlash: Oldindan o'rgatilgan Zstandard lug'atlari kichik matnlarni (4KB dan kam) siqishni sezilarli darajada yaxshilaydi, bu aynan hujjat o'lchami diapazoni bo'lib, bu erda NCD aniqligi muhim ahamiyatga ega
  • Oqimli API: Modul bosqichma-bosqich siqishni qo‘llab-quvvatlaydi, bu esa butun korpusni xotiraga yuklamasdan matnlarni qayta ishlaydigan tasniflash quvurlarini yoqish imkonini beradi
  • Standart kutubxona barqarorligi: Versiya ziddiyati yo‘q, ta’minot zanjiri xavfi yo‘q — siqish importidan zstd har bir Python 3.14+ o‘rnatilishida ishlaydi

Asosiy tushuncha: Siqilishga asoslangan tasniflash sizga koʻp tilli matnni mahalliy sharoitda qayta ishlovchi tezkor, bogʻliqliksiz asosiy chiziq kerak boʻlganda yaxshi ishlaydi. Kompressorlar tilga xos tokenlarda emas, balki xom baytlarda ishlagani uchun ular xitoy, arab yoki aralash tildagi hujjatlarni xuddi ingliz tili kabi samarali tasniflaydi – til modeli talab qilinmaydi.

Amaliy amalga oshirish nimaga o'xshaydi?

Python 3.14 da minimal NCD klassifikatori 30 ta qatorga mos keladi. Siz har bir ma'lumotnoma matnini kodlaysiz (har bir toifaga bitta), so'ngra har bir yangi hujjat uchun NCDni har bir havola bo'yicha hisoblab chiqing va toifani eng past masofa bilan belgilang. Mana asosiy mantiq:

Birinchidan, modulni siqish importidan zstd bilan import qiling. Ikki bayt satrni qabul qiladigan, har birini alohida-alohida siqib chiqaradigan, ularning birikmasini siqib chiqaradigan va NCD ballini qaytaruvchi funksiyani aniqlang. Keyin namunaviy matnlarni ifodalovchi lug'at toifalarini xaritalash yorliqlarini yarating. Har bir kiruvchi hujjat uchun toifalarni takrorlang, NCDni hisoblang va minimalni tanlang.

💡 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 ma'lumotlar to'plamiga (to'rt toifali yangiliklar tasnifi) nisbatan sinovlarda Zstandard'dan 3-sinf siqilish darajasida foydalanilgan bu yondashuv taxminan 62-65% aniqlikka erishadi - hech qanday o'qitish bosqichi, yuklab olish modellari va tasniflash tezligi bir protsessor yadrosida soniyasiga taxminan 8000 hujjat. Siqish darajasini 10 ga oshirish aniqlikni taxminan 68% ga oshiradi, bu esa o'tkazish qobiliyatini soniyasiga taxminan 2500 hujjatga qisqartiradi. Bu raqamlar nozik sozlangan transformatorlarga mos kelmaydi, biroq ular prototiplash, maʼlumotlarni yorliqlash triaji yoki MLga bogʻliqlikni oʻrnatish amaliy boʻlmagan muhitlar uchun kuchli bazani taʼminlaydi.

NCD an'anaviy ML tasnifi bilan qanday taqqoslanadi?

Toʻgʻri javob shuki, NCD yuqori ulushli ishlab chiqarish tizimlarida transformatorga asoslangan tasniflagichlarni almashtirmaydi. BERT yoki GPT-ga asoslangan klassifikatorlar kabi modellar standart mezonlarda 94%+ aniqlikka erishadi. Biroq, Zstandard bilan NCD noyob joyni egallaydi. Har bir sinfda 50 dan kam yorliqli misollar mavjud bo'lgan sovuq boshlash stsenariylarida u yaxshi ishlaydi - bu hatto nozik sozlangan modellar ham kurashadigan vaziyat. U oʻqitish vaqtini talab qilmaydi, istalgan til yoki kodlashni oʻzgartirishlarsiz boshqaradi va doimiy xotiraga ega boʻlgan protsessorda toʻliq ishlaydi.

Kiruvchi kontentning katta hajmini boshqaradigan korxonalar uchun - qo'llab-quvvatlash chiptalari, ijtimoiy tarmoqlarda eslatmalar, mahsulot sharhlari - Zstandard NCD klassifikatori qimmatroq modellar natijalarni yaxshilashdan oldin hujjatlarni real vaqt rejimida toifalarga ajratadigan birinchi o'tish router bo'lib xizmat qilishi mumkin. Ushbu ikki bosqichli quvur liniyasi umumiy aniqlikni saqlab, xulosa chiqarish xarajatlarini sezilarli darajada kamaytiradi. 138 000 dan ortiq tadbirkor foydalanadigan Mewayz’ning 207 modulli biznes OS kabi foydalanuvchi tomonidan yaratilgan kontentni miqyosda qayta ishlovchi platformalar xabarlarni yo‘naltirish, kontentni teglar va og‘ir infratuzilmasiz foydalanuvchi tajribasini shaxsiylashtirish uchun engil tasnifdan foydalanadi.

Cheklovlar va eng yaxshi amaliyotlar qanday?

Siqishga asoslangan tasnifda siz hisobga olishingiz kerak bo'lgan ma'lum cheklovlar mavjud. Qisqa matnlar (100 baytdan kam) ishonchsiz NCD skorlarini ishlab chiqaradi, chunki kompressorda mazmunli naqshlarni yaratish uchun etarli ma'lumotlar yo'q. Texnika mos yozuvlar matnlarini tanlashga ham sezgir - noto'g'ri tanlangan vakillar aniqlikni keskin pasaytiradi. NCD ehtimollik modeli emas, balki masofaviy ko'rsatkich bo'lgani uchun u tabiiy ravishda ishonch ballarini keltirmaydi.

Ushbu yondashuvdan maksimal darajada foydalanish uchun: har bir toifaga kamida 500 bayt hajmdagi maʼlumotnoma matnlaridan foydalaning, har bir sinf uchun bir nechta misollarni birlashtirish bilan tajriba oʻtkazing (birlashtirilgan 2-3 ta vakil hujjat siqish lugʻatlarini yaxshilaydi), siqilishdan oldin matn registrini va boʻsh joyni normallashtiring va Zstandart siqish tezligi 3, 6 va 10-darajalari boʻyicha sinovdan oʻtkazing. Kichik matnli tasniflash uchun domen korpusida Zstandard lug‘atini oldindan tayyorlang — bu bir qadam qisqa hujjatlarda aniqlikni 8-12 foiz punktga oshirishi mumkin.

Ko'p beriladigan savollar

Siqishga asoslangan tasnif hissiyotlarni tahlil qilish uchun ishlaydimi?

Bu mumkin, lekin ogohlantirishlar bilan. Tuyg'ularni tahlil qilish strukturaviy jihatdan o'xshash matnlardagi nozik ohang farqlarini aniqlashni talab qiladi. NCD turli toifadagi hujjatlar turli lug'atlardan foydalanadigan mavzularni tasniflash uchun yaxshiroq ishlaydi. Hissiyot uchun aniqlik odatda 55-60% atrofida bo'ladi - bu tasodifiydan yaxshiroq, lekin o'z-o'zidan ishlab chiqarishga tayyor emas. NCD xususiyatlarini engil logistik regressiya modeli bilan birlashtirish natijalarni sezilarli darajada yaxshilaydi.

Compression.zstd modulidan Python versiyalarida 3.14 dan oldingi versiyalarda foydalanishim mumkinmi?

Yo'q. compression.zstd moduli Python 3.14 da yangi. Oldingi versiyalar uchun PyPI dan python-zstandard paketini oʻrnating, bu esa ekvivalent compress() va decompress() funksiyalarini taʼminlaydi. NCD mantig'i bir xil bo'lib qoladi - faqat import bayonoti o'zgaradi. 3.14 versiyasiga yangilaganingizdan so'ng, siz uchinchi tomon qaramligidan butunlay voz kechishingiz mumkin.

Zstandard NCD kosinus o'xshashligi bilan TF-IDF bilan solishtirganda qanday ishlaydi?

Muvozanatli maʼlumotlar toʻplamlari bilan koʻp sinfli mavzular tasnifida TF-IDF va kosinus oʻxshashligi odatda Zstandard NCD 62-68% bilan solishtirganda 75-82% aniqlikka erishadi. Biroq, TF-IDF o'rnatilgan vektorizator, belgilangan lug'at va tilga xos to'xtatuvchi so'zlar ro'yxatini talab qiladi. Zstandard NCD bu oldindan ishlov berishning hech birini talab qilmaydi, barcha tillarda ishlaydi va lug'at hajmidan qat'i nazar, doimiy vaqtda yangi hujjatlarni tasniflaydi. Tez prototiplash yoki ko'p tilli muhitlar uchun NCD ko'pincha ishlaydigan tizimga tezroq yo'ldir.

Raqamli biznesingiz uchun avtomatlashtirilgan kontent quvurlarini qurasizmi, mijozlar xabarlarini yoʻnaltirasizmi yoki klassifikatsion mantiq prototipini yaratasizmi, Python 3.14 oʻrnatilgan Zstandard qoʻllab-quvvatlashi siqilishga asoslangan NCDni har qachongidan ham qulayroq qiladi. Agar siz biznes mazmuni, mahsulotlaringiz, kurslaringiz va mijozlar bilan muloqotingizni boshqarish uchun yaxlit platformani izlayotgan bo‘lsangiz, Mewayz bilan bugunoq qurishni boshlang va ushbu usullarni butun faoliyatingiz bo‘ylab ishlashga qo‘llang.

da tasniflaydi.

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Start managing your business smarter today

Join 30,000+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime