Hacker News

పైథాన్ 3.14 యొక్క ZSTD మాడ్యూల్‌తో వచన వర్గీకరణ

పైథాన్ 3.14 యొక్క ZSTD మాడ్యూల్‌తో వచన వర్గీకరణ టెక్స్ట్ యొక్క ఈ సమగ్ర విశ్లేషణ దాని ప్రధాన భాగాలు మరియు విస్తృత చిక్కుల యొక్క వివరణాత్మక పరిశీలనను అందిస్తుంది. ఫోకస్ యొక్క ముఖ్య ప్రాంతాలు చర్చ కేంద్రీకృతమై ఉంది: కోర్ మెకానిజమ్స్ మరియు ప్రో...

1 min read Via maxhalford.github.io

Mewayz Team

Editorial Team

Hacker News
ఇప్పుడు నాకు అవసరమైన అన్ని సందర్భాలు ఉన్నాయి. బ్లాగ్ పోస్ట్ రాయనివ్వండి.

పైథాన్ 3.14 యొక్క ZSTD మాడ్యూల్‌తో టెక్స్ట్ వర్గీకరణ

Python 3.14 ప్రామాణిక లైబ్రరీకి compression.zstd మాడ్యూల్‌ను పరిచయం చేస్తుంది మరియు ఇది మెషిన్ లెర్నింగ్ మోడల్స్ లేకుండా టెక్స్ట్ వర్గీకరణకు ఆశ్చర్యకరంగా శక్తివంతమైన విధానాన్ని అన్‌లాక్ చేస్తుంది. ఒక కంప్రెసర్ రెండు టెక్స్ట్‌లను ఎంత బాగా స్క్వీజ్ చేయగలదో కొలవడం ద్వారా, మీరు వాటి సారూప్యతను గుర్తించవచ్చు — ఇది నార్మలైజ్డ్ కంప్రెషన్ డిస్టెన్స్ (NCD) అని పిలువబడే సాంకేతికత — మరియు ఇప్పుడు Zstandard దీన్ని ఉత్పత్తి పనిభారానికి తగినంత వేగంగా చేస్తుంది.

కంప్రెషన్-ఆధారిత వచన వర్గీకరణ వాస్తవానికి ఎలా పని చేస్తుంది?

కంప్రెషన్-ఆధారిత వర్గీకరణ వెనుక ఉన్న ప్రధాన ఆలోచన సమాచార సిద్ధాంతంలో పాతుకుపోయింది. Zstandard వంటి కంప్రెషన్ అల్గోరిథం టెక్స్ట్ యొక్క బ్లాక్‌ను ఎదుర్కొన్నప్పుడు, అది నమూనాల అంతర్గత నిఘంటువును రూపొందిస్తుంది. రెండు పాఠాలు ఒకే విధమైన పదజాలం, వాక్యనిర్మాణం మరియు నిర్మాణాన్ని పంచుకుంటే, వాటిని కలిపి కుదించడం పెద్ద వచనాన్ని మాత్రమే కుదించడం కంటే కొంచెం పెద్ద ఫలితాన్ని ఇస్తుంది. అవి సంబంధం లేనివి అయితే, సంయోగం చేయబడిన కంప్రెస్డ్ పరిమాణం రెండు వ్యక్తిగత పరిమాణాల మొత్తానికి చేరుకుంటుంది.

ఈ సంబంధం సాధారణీకరించబడిన కుదింపు దూర సూత్రం ద్వారా సంగ్రహించబడింది: NCD(x, y) = (C(xy) - min(C(x), C(y)) / max(C(x), C(y)), ఇక్కడ C(x) అనేది టెక్స్ట్ యొక్క కంప్రెస్డ్ సైజు x, మరియు C(xy) పరిమాణంలో సంపీడన పరిమాణం రెండు 0కి సమీపంలో ఉన్న NCD విలువ అంటే టెక్స్ట్‌లు చాలా పోలి ఉంటాయి, అయితే 1కి సమీపంలో ఉన్న విలువ అంటే అవి దాదాపు ఏ సమాచార కంటెంట్‌ను షేర్ చేయవు.

ఈ సాంకేతికత విశేషమైనది ఏమిటంటే దీనికి శిక్షణ డేటా, టోకనైజేషన్, పొందుపరచడం మరియు GPU అవసరం లేదు. కంప్రెసర్ టెక్స్ట్ యొక్క నిర్మాణం యొక్క నేర్చుకున్న నమూనాగా పనిచేస్తుంది. "తక్కువ-వనరుల వచన వర్గీకరణ: కంప్రెసర్‌లతో పారామీటర్-రహిత వర్గీకరణ పద్ధతి" (2023) వంటి పత్రాలలో ప్రచురించబడిన పరిశోధన, కొన్ని బెంచ్‌మార్క్‌లపై Gzip-ఆధారిత NCD BERTకి పోటీగా ఉందని నిరూపించింది, ఈ విధానంలో కొత్త ఆసక్తిని రేకెత్తించింది.

Python 3.14 యొక్క Zstandard మాడ్యూల్ NCD కోసం ఎందుకు గేమ్-ఛేంజర్?

Python 3.14కి ముందు, Zstandardని ఉపయోగించి థర్డ్-పార్టీ python-zstandard ప్యాకేజీని ఇన్‌స్టాల్ చేయాలి. కొత్త compression.zstd మాడ్యూల్, PEP 784 ద్వారా పరిచయం చేయబడింది, నేరుగా CPythonతో రవాణా చేయబడుతుంది. దీనర్థం జీరో డిపెండెన్సీ ఓవర్‌హెడ్ మరియు మెటా యొక్క యుద్ధం-పరీక్షించిన libzstd మద్దతుతో హామీ ఇవ్వబడిన, స్థిరమైన API. వర్గీకరణ పనుల కోసం ప్రత్యేకంగా, Zstandard gzip లేదా bzip2 కంటే అనేక ప్రయోజనాలను అందిస్తుంది:

  • వేగం: Zstandard పోల్చదగిన నిష్పత్తుల వద్ద gzip కంటే 3-5x వేగంగా కంప్రెస్ చేస్తుంది, వేలాది డాక్యుమెంట్‌ల బ్యాచ్ వర్గీకరణ నిమిషాల్లో కాకుండా సెకన్లలో ఆచరణీయంగా చేస్తుంది
  • ట్యూన్ చేయదగిన కుదింపు స్థాయిలు: 1 నుండి 22 స్థాయిలు మీరు నిష్పత్తి కోసం స్పీడ్‌ను వర్తకం చేయడానికి అనుమతిస్తాయి, ఇది నిర్గమాంశ అవసరాలకు వ్యతిరేకంగా NCD ఖచ్చితత్వాన్ని క్రమాంకనం చేయడానికి మిమ్మల్ని అనుమతిస్తుంది
  • నిఘంటువు మద్దతు: ముందుగా శిక్షణ పొందిన Zstandard నిఘంటువులు చిన్న టెక్స్ట్‌ల (4KB లోపు) కుదింపును నాటకీయంగా మెరుగుపరుస్తాయి, ఇది NCD ఖచ్చితత్వం అత్యంత ముఖ్యమైన డాక్యుమెంట్ పరిమాణ పరిధి
  • స్ట్రీమింగ్ API: మాడ్యూల్ ఇంక్రిమెంటల్ కంప్రెషన్‌కు మద్దతు ఇస్తుంది, మొత్తం కార్పోరాను మెమరీలోకి లోడ్ చేయకుండా టెక్స్ట్‌లను ప్రాసెస్ చేసే వర్గీకరణ పైప్‌లైన్‌లను ఎనేబుల్ చేస్తుంది
  • ప్రామాణిక లైబ్రరీ స్థిరత్వం: సంస్కరణ వైరుధ్యాలు లేవు, సరఫరా గొలుసు ప్రమాదం లేదు — కంప్రెషన్ దిగుమతి zstd నుండి ప్రతి పైథాన్ 3.14+ ఇన్‌స్టాలేషన్‌లో పని చేస్తుంది

కీలక అంతర్దృష్టి: మీకు స్థానికంగా బహుభాషా వచనాన్ని నిర్వహించే శీఘ్ర, డిపెండెన్సీ-రహిత బేస్‌లైన్ అవసరమైనప్పుడు కుదింపు-ఆధారిత వర్గీకరణ ఉత్తమంగా పని చేస్తుంది. కంప్రెషర్‌లు భాష-నిర్దిష్ట టోకెన్‌ల కంటే ముడి బైట్‌లపై పనిచేస్తాయి కాబట్టి, అవి చైనీస్, అరబిక్ లేదా మిశ్రమ భాషా పత్రాలను ఆంగ్లం వలె ప్రభావవంతంగా వర్గీకరిస్తాయి — భాషా నమూనా అవసరం లేదు.

ప్రాక్టికల్ ఇంప్లిమెంటేషన్ ఎలా ఉంటుంది?

పైథాన్ 3.14లోని కనిష్ట NCD వర్గీకరణ 30 పంక్తులలోపు సరిపోతుంది. మీరు ప్రతి రిఫరెన్స్ టెక్స్ట్‌ను ఎన్‌కోడ్ చేస్తారు (ఒక వర్గానికి ఒకటి), ఆపై ప్రతి కొత్త డాక్యుమెంట్ కోసం, ప్రతి రిఫరెన్స్‌కు వ్యతిరేకంగా NCDని గణించండి మరియు అతి తక్కువ దూరంతో వర్గాన్ని కేటాయించండి. ఇక్కడ ప్రధాన తర్కం ఉంది:

మొదట, కంప్రెషన్ దిగుమతి zstdతో మాడ్యూల్‌ను దిగుమతి చేయండి. రెండు బైట్ స్ట్రింగ్‌లను అంగీకరించే, ప్రతి ఒక్కటి ఒక్కొక్కటిగా కుదించే, వాటి కలయికను కుదించే మరియు NCD స్కోర్‌ను అందించే ఫంక్షన్‌ను నిర్వచించండి. ఆపై ప్రతినిధి నమూనా వచనాలకు నిఘంటువు మ్యాపింగ్ కేటగిరీ లేబుల్‌లను రూపొందించండి. ప్రతి ఇన్‌కమింగ్ డాక్యుమెంట్ కోసం, కేటగిరీల మీద మళ్ళి, 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 న్యూస్ డేటాసెట్ (నాలుగు-తరగతి వార్తల వర్గీకరణ)కి వ్యతిరేకంగా బెంచ్‌మార్క్‌లలో, కంప్రెషన్ లెవెల్ 3లో Zstandardని ఉపయోగించే ఈ విధానం దాదాపు 62-65% ఖచ్చితత్వాన్ని సాధిస్తుంది — శిక్షణ దశ, మోడల్ డౌన్‌లోడ్ లేదు మరియు ఒకే CPU కోర్‌లో సెకనుకు దాదాపు 8,000 డాక్యుమెంట్‌ల వర్గీకరణ వేగం. కంప్రెషన్ స్థాయిని 10కి పెంచడం వలన సెకనుకు దాదాపు 2,500 డాక్యుమెంట్‌లకు తగ్గింపు ఖర్చుతో ఖచ్చితత్వం దాదాపు 68%కి చేరుకుంటుంది. ఈ సంఖ్యలు ఫైన్-ట్యూన్ చేయబడిన ట్రాన్స్‌ఫార్మర్‌లతో సరిపోలడం లేదు, కానీ అవి ప్రోటోటైపింగ్, డేటా లేబులింగ్ ట్రయాజ్ లేదా ML డిపెండెన్సీలను ఇన్‌స్టాల్ చేయడం అసాధ్యమైన పరిసరాల కోసం బలమైన ఆధారాన్ని అందిస్తాయి.

NCD సాంప్రదాయ ML వర్గీకరణతో ఎలా పోలుస్తుంది?

నిజాయితీ గల సమాధానం ఏమిటంటే, అధిక-స్టేక్స్ ఉత్పత్తి వ్యవస్థలలో ట్రాన్స్‌ఫార్మర్-ఆధారిత వర్గీకరణలకు NCD ప్రత్యామ్నాయం కాదు. BERT లేదా GPT-ఆధారిత వర్గీకరణలు వంటి మోడల్‌లు ప్రామాణిక బెంచ్‌మార్క్‌లపై 94%+ ఖచ్చితత్వాన్ని సాధిస్తాయి. అయినప్పటికీ, Zstandardతో ఉన్న NCD ఒక ప్రత్యేక స్థానాన్ని ఆక్రమించింది. మీరు ప్రతి తరగతికి 50 కంటే తక్కువ లేబుల్ ఉదాహరణలను కలిగి ఉన్న కోల్డ్-స్టార్ట్ దృష్టాంతాలలో ఇది అత్యుత్తమంగా ఉంటుంది - చక్కటి ట్యూన్ చేయబడిన మోడల్‌లు కూడా కష్టపడే పరిస్థితి. దీనికి సున్నా శిక్షణ సమయం అవసరం, మార్పు లేకుండా ఏదైనా భాష లేదా ఎన్‌కోడింగ్‌ని నిర్వహిస్తుంది మరియు స్థిరమైన మెమరీతో పూర్తిగా CPUలో నడుస్తుంది.

భారీ పరిమాణంలో ఇన్‌కమింగ్ కంటెంట్‌ను నిర్వహించే వ్యాపారాల కోసం — మద్దతు టిక్కెట్‌లు, సోషల్ మీడియా ప్రస్తావనలు, ఉత్పత్తి సమీక్షలు — Zstandard NCD వర్గీకరణ ఒక ఫస్ట్-పాస్ రూటర్‌గా ఉపయోగపడుతుంది, ఇది ఖరీదైన మోడల్‌లు ఫలితాలను మెరుగుపరిచే ముందు నిజ సమయంలో డాక్యుమెంట్‌లను వర్గీకరిస్తుంది. ఈ రెండు-దశల పైప్‌లైన్ మొత్తం ఖచ్చితత్వాన్ని కొనసాగిస్తూ అనుమితి ఖర్చులను గణనీయంగా తగ్గిస్తుంది. 138,000 కంటే ఎక్కువ మంది వ్యవస్థాపకులు ఉపయోగించే Mewayz యొక్క 207-మాడ్యూల్ వ్యాపార OS వంటి వినియోగదారు-సృష్టించిన కంటెంట్‌ని స్కేల్‌లో ప్రాసెస్ చేసే ప్లాట్‌ఫారమ్‌లు, సందేశాలను రూట్ చేయడానికి, కంటెంట్‌ను ట్యాగ్ చేయడానికి మరియు భారీ మౌలిక సదుపాయాలు లేకుండా వినియోగదారు అనుభవాలను వ్యక్తిగతీకరించడానికి తేలికపాటి వర్గీకరణ నుండి ప్రయోజనం పొందుతాయి.

పరిమితులు మరియు ఉత్తమ పద్ధతులు ఏమిటి?

కంప్రెషన్-ఆధారిత వర్గీకరణకు మీరు గుర్తించాల్సిన పరిమితులు ఉన్నాయి. సంక్షిప్త టెక్స్ట్‌లు (100 బైట్లలోపు) నమ్మదగని NCD స్కోర్‌లను ఉత్పత్తి చేస్తాయి ఎందుకంటే కంప్రెసర్ అర్థవంతమైన నమూనాలను రూపొందించడానికి తగినంత డేటాను కలిగి ఉండదు. సాంకేతికత సూచన గ్రంథాల ఎంపికకు కూడా సున్నితంగా ఉంటుంది - పేలవంగా ఎంపిక చేయబడిన ప్రతినిధులు ఖచ్చితత్వాన్ని తీవ్రంగా క్షీణింపజేస్తారు. మరియు NCD అనేది ప్రాబబిలిస్టిక్ మోడల్ కాకుండా డిస్టెన్స్ మెట్రిక్ అయినందున, ఇది సహజంగా కాన్ఫిడెన్స్ స్కోర్‌లను ఉత్పత్తి చేయదు.

ఈ విధానం నుండి అత్యధిక ప్రయోజనాలను పొందడానికి: ప్రతి వర్గానికి కనీసం 500 బైట్‌ల రిఫరెన్స్ టెక్స్ట్‌లను ఉపయోగించండి, ఒక్కో తరగతికి బహుళ ఉదాహరణలను కలపడం ద్వారా ప్రయోగాలు చేయండి (2-3 ప్రాతినిధ్య పత్రాలు కలిసి మెరుగైన కంప్రెషన్ నిఘంటువులను అందిస్తాయి), కుదింపుకు ముందు టెక్స్ట్ కేసింగ్ మరియు వైట్‌స్పేస్‌ను సాధారణీకరించండి మరియు Zstandard కంప్రెషన్ స్థాయిలు 3, 6, మరియు మీ స్పాట్ స్పీడ్-10 నుండి కనుగొనండి. చిన్న-వచన వర్గీకరణ కోసం, మీ డొమైన్ కార్పస్‌లో Zstandard నిఘంటువుకి ముందస్తు శిక్షణ ఇవ్వండి — ఈ ఒక్క దశ చిన్న పత్రాలపై 8-12 శాతం పాయింట్ల వరకు ఖచ్చితత్వాన్ని మెరుగుపరుస్తుంది.

తరచుగా అడిగే ప్రశ్నలు

సెంటిమెంట్ విశ్లేషణ కోసం కుదింపు-ఆధారిత వర్గీకరణ పని చేస్తుందా?

ఇది చేయవచ్చు, కానీ హెచ్చరికలతో. సెంటిమెంట్ విశ్లేషణకు నిర్మాణాత్మకంగా సారూప్య గ్రంధాలలో సూక్ష్మ స్వర భేదాలను గుర్తించడం అవసరం. విభిన్న వర్గాలలోని డాక్యుమెంట్‌లు విభిన్న పదజాలాన్ని ఉపయోగించే టాపిక్ వర్గీకరణ కోసం NCD మెరుగ్గా పనిచేస్తుంది. సెంటిమెంట్ కోసం, ఖచ్చితత్వం సాధారణంగా 55-60% వరకు ఉంటుంది - యాదృచ్ఛికం కంటే మెరుగైనది, కానీ దానికదే ఉత్పత్తికి సిద్ధంగా ఉండదు. తేలికపాటి లాజిస్టిక్ రిగ్రెషన్ మోడల్‌తో NCD ఫీచర్‌లను కలపడం వల్ల ఫలితాలు గణనీయంగా మెరుగుపడతాయి.

నేను 3.14కి ముందు పైథాన్ వెర్షన్‌లలో compression.zstd మాడ్యూల్‌ని ఉపయోగించవచ్చా?

సం. compression.zstd మాడ్యూల్ పైథాన్ 3.14లో కొత్తది. మునుపటి సంస్కరణల కోసం, PyPI నుండి python-zstandard ప్యాకేజీని ఇన్‌స్టాల్ చేయండి, ఇది సమానమైన compress() మరియు decompress() ఫంక్షన్‌లను అందిస్తుంది. NCD లాజిక్ ఒకేలా ఉంటుంది - దిగుమతి ప్రకటన మాత్రమే మారుతుంది. మీరు 3.14కి అప్‌గ్రేడ్ చేసిన తర్వాత, మీరు థర్డ్-పార్టీ డిపెండెన్సీని పూర్తిగా వదులుకోవచ్చు.

కొసైన్ సారూప్యతతో TF-IDFతో పోలిస్తే Zstandard NCD ఎలా పని చేస్తుంది?

సమతుల్య డేటాసెట్‌లతో బహుళ-తరగతి టాపిక్ వర్గీకరణపై, Zstandard NCD యొక్క 62-68%తో పోలిస్తే TF-IDF ప్లస్ కొసైన్ సారూప్యత సాధారణంగా 75-82% ఖచ్చితత్వాన్ని సాధిస్తుంది. అయినప్పటికీ, TF-IDFకి అమర్చిన వెక్టోరైజర్, నిర్వచించబడిన పదజాలం మరియు భాష-నిర్దిష్ట స్టాప్‌వర్డ్ జాబితాలు అవసరం. Zstandard NCDకి ఈ ప్రిప్రాసెసింగ్ ఏదీ అవసరం లేదు, పెట్టె వెలుపలి భాషల్లో పని చేస్తుంది మరియు పదజాలం పరిమాణంతో సంబంధం లేకుండా స్థిరమైన సమయంలో కొత్త పత్రాలను వర్గీకరిస్తుంది. వేగవంతమైన ప్రోటోటైపింగ్ లేదా బహుభాషా పరిసరాల కోసం, NCD అనేది వర్కింగ్ సిస్టమ్‌కి తరచుగా వేగవంతమైన మార్గం.

మీరు ఆటోమేటెడ్ కంటెంట్ పైప్‌లైన్‌లను నిర్మిస్తున్నా, కస్టమర్ సందేశాలను రూటింగ్ చేస్తున్నా లేదా మీ డిజిటల్ వ్యాపారం కోసం వర్గీకరణ తర్కాన్ని ప్రోటోటైపింగ్ చేస్తున్నా, Python 3.14 యొక్క అంతర్నిర్మిత Zstandard సపోర్ట్ కంప్రెషన్ ఆధారిత NCDని గతంలో కంటే మరింత అందుబాటులోకి తెచ్చేలా చేస్తుంది. మీరు మీ వ్యాపార కంటెంట్, ఉత్పత్తులు, కోర్సులు మరియు కస్టమర్ పరస్పర చర్యలను నిర్వహించడానికి ఆల్ ఇన్ వన్ ప్లాట్‌ఫారమ్ కోసం చూస్తున్నట్లయితే, ఈరోజే Mewayzతో నిర్మించడాన్ని ప్రారంభించండి మరియు మీ మొత్తం ఆపరేషన్‌లో పని చేయడానికి ఈ సాంకేతికతలను ఉంచండి.