Hacker News

Python 3.14 ZSTD modulu ilə mətn təsnifatı

Python 3.14 ZSTD modulu ilə mətn təsnifatı Mətnin bu hərtərəfli təhlili onun əsas komponentlərinin və daha geniş təsirlərinin ətraflı araşdırılmasını təklif edir. Əsas Diqqət Sahələri Müzakirə aşağıdakı mövzularda aparılır: Əsas mexanizmlər və pro...

13 min read Via maxhalford.github.io

Mewayz Team

Editorial Team

Hacker News
İndi mənə lazım olan bütün kontekst var. İcazə verin bloq yazısını yazım.

Python 3.14 ZSTD Modulu ilə Mətn Təsnifatı

Python 3.14 standart kitabxanaya compression.zstd modulunu təqdim edir və o, maşın öyrənmə modelləri olmadan mətn təsnifatına təəccüblü dərəcədə güclü yanaşma açır. Kompressorun iki mətni nə qədər sıxışdıra biləcəyini ölçməklə, onların oxşarlığını müəyyən edə bilərsiniz – bu texnika Normallaşdırılmış Sıxılma Məsafəsi (NCD) adlanır və indi Zstandard onu istehsal iş yükləri üçün kifayət qədər sürətli edir.

Sıxılmaya əsaslanan mətn təsnifatı əslində necə işləyir?

Sıxılmaya əsaslanan təsnifatın əsas ideyası informasiya nəzəriyyəsinə əsaslanır. Zstandard kimi sıxılma alqoritmi mətn bloku ilə qarşılaşdıqda, daxili nümunə lüğəti yaradır. Əgər iki mətn oxşar lüğət, sintaksis və strukturu paylaşırsa, onları bir-birinə sıxışdırmaq yalnız daha böyük mətni sıxışdırmaqdan bir qədər böyük nəticə verir. Əgər onlar əlaqəsizdirsə, birləşdirilən sıxılmış ölçü hər iki fərdi ölçünün cəminə yaxınlaşır.

Bu əlaqə Normallaşdırılmış Sıxılma Məsafəsi düsturu ilə qeyd olunur: NCD(x, y) = (C(xy) - min(C(x), C(y))) / max(C(x), C(y)), burada C(x) x mətninin sıxılmış ölçüsüdür və C(xy) iki mətnin sıxılmış ölçüsüdür. 0-a yaxın NCD dəyəri mətnlərin çox oxşar olduğunu bildirir, 1-ə yaxın dəyər isə demək olar ki, heç bir məlumat məzmununu paylaşmır.

Bu texnikanı diqqətəlayiq edən odur ki, o, heç bir təlim məlumatı, heç bir tokenizasiya, heç bir daxiletmə və GPU tələb etmir. Kompressor özü mətnin strukturunun öyrənilmiş modeli kimi çıxış edir. "Aşağı Resurslu Mətn Təsnifatı: Kompressorlarla Parametrsiz Təsnifat Metodu" (2023) kimi məqalələrdə dərc edilən araşdırma göstərdi ki, gzip əsaslı NCD müəyyən meyarlar üzrə BERT ilə rəqabət aparır və bu yanaşmaya yenidən marağa səbəb olub.

Niyə Python 3.14-ün Zstandard Modulu NCD üçün Oyun Dəyişdiricidir?

Python 3.14-dən əvvəl Zstandard istifadə etmək üçün üçüncü tərəf python-zstandard paketinin quraşdırılması tələb olunur. PEP 784 vasitəsilə təqdim edilən yeni compression.zstd modulu birbaşa CPython ilə göndərilir. Bu, sıfır asılılıq yükü və Meta-nın döyüşdə sınaqdan keçirilmiş libzstd tərəfindən dəstəklənən zəmanətli, sabit API deməkdir. Xüsusi olaraq təsnifat tapşırıqları üçün Zstandard gzip və ya bzip2 ilə müqayisədə bir sıra üstünlüklər təklif edir:

  • Sürət: Zstandard müqayisəli nisbətlərdə gzip-dən 3-5 dəfə daha sürətli sıxışdırır və minlərlə sənəd üzərində toplu təsnifatı dəqiqələr deyil, saniyələr ərzində həyata keçirə bilir
  • Sazlana bilən sıxılma səviyyələri: 1-dən 22-yə qədər səviyyələr sizə sürəti nisbətlə dəyişməyə imkan verir, bu da ötürmə qabiliyyəti tələblərinə qarşı NCD dəqiqliyini kalibrləməyə imkan verir
  • Lüğət dəstəyi: Əvvəlcədən hazırlanmış Zstandard lüğətləri kiçik mətnlərin sıxılmasını (4KB-dan az) əhəmiyyətli dərəcədə yaxşılaşdıra bilər ki, bu da NCD dəqiqliyinin ən vacib olduğu sənəd ölçüsü diapazonudur
  • Streaming API: Modul bütün korpusu yaddaşa yükləmədən mətnləri emal edən təsnifat boru kəmərlərinə imkan verən artımlı sıxılmanı dəstəkləyir
  • Standart kitabxana sabitliyi: Versiya münaqişəsi yoxdur, təchizat zənciri riski yoxdur — sıxılmadan idxal zstd hər Python 3.14+ quraşdırmasında işləyir

Əsas fikir: Sıxılmaya əsaslanan təsnifat çoxdilli mətni yerli olaraq idarə edən sürətli, asılılıqsız əsas xəttə ehtiyac duyduğunuz zaman yaxşı işləyir. Kompressorlar dilə xas tokenlər deyil, xam baytlarda işlədiyi üçün onlar Çin, ərəb və ya qarışıq dilli sənədləri ingilis dili kimi effektiv şəkildə təsnif edir – heç bir dil modeli tələb olunmur.

Praktik Tətbiq Nə Bənzəyir?

Python 3.14-də minimal NCD təsnifatı 30-dan az sətirə uyğundur. Siz hər bir istinad mətnini (kateqoriyaya görə bir) kodlayırsınız, sonra hər bir yeni sənəd üçün hər bir istinada qarşı NCD-ni hesablayın və kateqoriyanı ən aşağı məsafə ilə təyin edin. Əsas məntiq budur:

İlk olaraq modulu sıxılma importundan zstd ilə idxal edin. İki bayt sətirini qəbul edən, hər birini ayrı-ayrılıqda sıxışdıran, onların birləşməsini sıxışdıran və NCD xalını qaytaran funksiyanı təyin edin. Sonra nümunə mətnləri təmsil etmək üçün lüğət xəritəçəkmə kateqoriyası etiketləri yaradın. Hər bir daxil olan sənəd üçün kateqoriyalar üzrə təkrarlayın, NCD hesablayın və minimumu seçin.

💡 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 verilənlər bazasına (dörd sinif xəbər təsnifatına) qarşı sınaqlarda, sıxılma səviyyəsində 3-də Zstandard-dan istifadə edən bu yanaşma təxminən 62-65% dəqiqliyə nail olur – heç bir təlim addımı, modelin endirilməsi və bir CPU nüvəsində saniyədə təxminən 8000 sənədin təsnifat sürəti. Sıxılma səviyyəsinin 10-a yüksəldilməsi, ötürücülük qabiliyyətini saniyədə təxminən 2500 sənədə endirmək hesabına dəqiqliyi 68%-ə qədər artırır. Bu nömrələr dəqiq tənzimlənmiş transformatorlara uyğun gəlmir, lakin onlar prototipləşdirmə, məlumatların etiketlənməsi triajı və ya ML-dən asılılıqların quraşdırılmasının qeyri-mümkün olduğu mühitlər üçün güclü baza təmin edir.

QİX Ənənəvi ML Təsnifatı ilə Necə Müqayisə edir?

Dürüst cavab budur ki, NCD yüksək riskli istehsal sistemlərində transformator əsaslı təsnifatçıları əvəz etmir. BERT və ya GPT əsaslı təsnifatçılar kimi modellər standart ölçülərdə 94%+ dəqiqliyə nail olur. Bununla belə, Zstandard ilə NCD unikal yer tutur. Bu, hər sinifdə 50-dən az etiketli nümunənin olduğu soyuq başlanğıc ssenarilərində üstündür - hətta dəqiq tənzimlənmiş modellərin mübarizə apardığı bir vəziyyət. O, sıfır təlim vaxtı tələb edir, istənilən dili və ya kodlaşdırmanı dəyişdirmədən idarə edir və tamamilə sabit yaddaşa malik CPU-da işləyir.

Böyük həcmdə daxil olan məzmunu idarə edən bizneslər üçün – dəstək biletləri, sosial media qeydləri, məhsul rəyləri – Zstandard NCD təsnifatı daha bahalı modellər nəticələri dəqiqləşdirməzdən əvvəl sənədləri real vaxtda kateqoriyalara ayıran ilk keçid marşrutlaşdırıcısı kimi xidmət edə bilər. Bu iki mərhələli boru kəməri ümumi dəqiqliyi qoruyub saxlayaraq, nəticə çıxarma xərclərini əhəmiyyətli dərəcədə azaldır. Mewayz-in 138 000-dən çox sahibkar tərəfindən istifadə edilən 207 modullu biznes ƏS kimi istifadəçi tərəfindən yaradılan məzmunu miqyasda emal edən platformalar, mesajları yönləndirmək, məzmunu etiketləmək və ağır infrastruktur olmadan istifadəçi təcrübələrini fərdiləşdirmək üçün yüngül təsnifatdan faydalanır.

Məhdudiyyətlər və ən yaxşı təcrübələr hansılardır?

Sıxılmaya əsaslanan təsnifatda nəzərə almalı olduğunuz məlum məhdudiyyətlər var. Qısa mətnlər (100 baytdan az) etibarsız NCD xalları yaradır, çünki kompressorda mənalı nümunələr yaratmaq üçün kifayət qədər məlumat yoxdur. Texnika istinad mətnlərinin seçiminə də həssasdır - zəif seçilmiş nümayəndələr dəqiqliyi kəskin şəkildə azaldır. Və NCD ehtimal modelindən daha çox məsafə ölçüsü olduğundan, təbii olaraq güvən balları yaratmır.

Bu yanaşmadan maksimum yararlanmaq üçün: hər kateqoriya üçün ən azı 500 baytlıq istinad mətnlərindən istifadə edin, hər sinif üzrə çoxsaylı nümunələri birləşdirərək sınaqdan keçirin (birləşdirilmiş 2-3 nümayəndə sənədi daha yaxşı sıxılma lüğətləri verir), sıxılmadan əvvəl mətn qutusunu və boşluqları normallaşdırın və Zstandart sıxılma səviyyələri 3, 6 və 10-u müqayisə edin. Kiçik mətnli təsnifat üçün domen korpusunuzda Zstandard lüğətini əvvəlcədən hazırlayın — bu tək addım qısa sənədlərdə dəqiqliyi 8-12 faiz artıra bilər.

Tez-tez verilən suallar

Sıxılmaya əsaslanan təsnifat əhval-ruhiyyənin təhlili üçün işləyirmi?

Ola bilər, lakin xəbərdarlıqlarla. Sentiment təhlili strukturca oxşar mətnlərdə incə ton fərqlərinin aşkar edilməsini tələb edir. NCD müxtəlif kateqoriyalardakı sənədlərin fərqli lüğətlərdən istifadə etdiyi mövzu təsnifatı üçün daha yaxşı işləyir. Hisslərə görə, dəqiqlik adətən 55-60% civarında düşür – təsadüfidən daha yaxşıdır, lakin təkbaşına istehsala hazır deyil. NCD xüsusiyyətlərini yüngül logistik reqressiya modeli ilə birləşdirmək nəticələri xeyli yaxşılaşdırır.

3.14-dən əvvəl Python versiyalarında compression.zstd modulundan istifadə edə bilərəmmi?

Xeyr. compression.zstd modulu Python 3.14-də yenidir. Əvvəlki versiyalar üçün, ekvivalent compress()decompress() funksiyalarını təmin edən PyPI-dən python-zstandard paketini quraşdırın. NCD məntiqi eyni qalır - yalnız idxal bəyanatı dəyişir. 3.14-ə təkmilləşdirdikdən sonra üçüncü tərəf asılılığından tamamilə imtina edə bilərsiniz.

Zstandard NCD kosinus oxşarlığı olan TF-IDF ilə müqayisədə necə işləyir?

Balanslaşdırılmış verilənlər bazası ilə çox sinifli mövzu təsnifatında TF-IDF plus kosinus oxşarlığı adətən Zstandard NCD-nin 62-68% ilə müqayisədə 75-82% dəqiqliyə nail olur. Bununla belə, TF-IDF quraşdırılmış vektorlaşdırıcı, müəyyən edilmiş lüğət və dil üçün xüsusi stopword siyahıları tələb edir. Zstandard NCD bu ilkin emalın heç birini tələb etmir, qutudan kənar dillərdə işləyir və lüğətin ölçüsündən asılı olmayaraq yeni sənədləri daimi vaxtda təsnif edir. Sürətli prototipləşdirmə və ya çoxdilli mühitlər üçün NCD çox vaxt işləyən sistemə aparan daha sürətli yoldur.

Rəqəmsal biznesiniz üçün avtomatlaşdırılmış məzmun kəmərləri tikirsinizsə, müştəri mesajlarını yönləndirirsiniz və ya təsnifat məntiqinin prototipini tərtib edirsinizsə, Python 3.14-ün daxili Zstandard dəstəyi sıxılma əsaslı NCD-ni həmişəkindən daha əlçatan edir. Biznes məzmununuzu, məhsullarınızı, kurslarınızı və müştərilərlə qarşılıqlı əlaqənizi idarə etmək üçün hamısı bir yerdə platforma axtarırsınızsa, bu gün Mewayz ilə tikintiyə başlayın və bu üsulları bütün əməliyyatlarınızda işləyin.

-də təsnif edir.

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