Hacker News

Python 3.14 හි ZSTD මොඩියුලය සමඟ පෙළ වර්ගීකරණය

Python 3.14 හි ZSTD මොඩියුලය සමඟ පෙළ වර්ගීකරණය පෙළ පිළිබඳ මෙම සවිස්තරාත්මක විශ්ලේෂණය එහි මූලික සංරචක සහ පුළුල් ඇඟවුම් පිළිබඳ සවිස්තරාත්මක පරීක්ෂණයක් ඉදිරිපත් කරයි. අවධානය යොමු කිරීමේ ප්රධාන ක්ෂේත්ර සාකච්ඡාව කේන්ද්‍රගත වන්නේ: මූලික යාන්ත්‍රණ සහ ගැති...

1 min read Via maxhalford.github.io

Mewayz Team

Editorial Team

Hacker News
දැන් මට අවශ්‍ය සියලුම සන්දර්භය තිබේ. මට බ්ලොග් පෝස්ට් එක ලියන්න දෙන්න.

Python 3.14 හි ZSTD මොඩියුලය සමඟ පෙළ වර්ගීකරණය

Python 3.14 විසින් compression.zstd මොඩියුලය සම්මත පුස්තකාලයට හඳුන්වා දෙන අතර, එය යන්ත්‍ර ඉගෙනුම් ආකෘතිවලින් තොරව පෙළ වර්ගීකරණය සඳහා පුදුම සහගත ලෙස බලවත් ප්‍රවේශයක් අගුළු හරියි. සම්පීඩකයක් අකුරු දෙකක් එකට මිරිකන්නේ කෙසේද යන්න මැන බැලීමෙන්, ඔබට ඒවායේ සමානතාවය තීරණය කළ හැකිය - සාමාන්‍ය සම්පීඩන දුර (NCD) නම් තාක්ෂණය - සහ දැන් Zstandard එය නිෂ්පාදන කාර්ය භාරය සඳහා ප්‍රමාණවත් තරම් වේගවත් කරයි.

සම්පීඩනය මත පදනම් වූ පෙළ වර්ගීකරණය සැබවින්ම ක්‍රියාත්මක වන්නේ කෙසේද?

සම්පීඩනය මත පදනම් වූ වර්ගීකරණය පිටුපස ඇති මූලික අදහස තොරතුරු න්‍යාය තුළ මුල් බැස ඇත. Zstandard වැනි compression algorithm එකකට text block එකක් හමු වූ විට, එය රටා වල අභ්‍යන්තර ශබ්දකෝෂයක් ගොඩනඟයි. පෙළ දෙකක් සමාන වචන මාලාවක්, වාක්‍ය ඛණ්ඩයක් සහ ව්‍යුහයක් බෙදා ගන්නේ නම්, ඒවා එකට සම්පීඩනය කිරීමෙන් විශාල පෙළ පමණක් සම්පීඩනය කිරීමට වඩා තරමක් විශාල ප්‍රතිඵලයක් ලැබේ. ඒවා සම්බන්ධයක් නොමැති නම්, සංයුක්ත සම්පීඩිත ප්‍රමාණය තනි ප්‍රමාණ දෙකේම එකතුවට ළඟා වේ.

මෙම සම්බන්ධතාවය සාමාන්‍යකරණය කරන ලද සම්පීඩන දුර සූත්‍රය මගින් ග්‍රහණය කර ඇත: 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 පැකේජය ස්ථාපනය කිරීම අවශ්‍ය වේ. PEP 784 හරහා හඳුන්වා දුන් නව compression.zstd මොඩියුලය සෘජුවම CPython සමඟ නැව්ගත කරයි. මෙයින් අදහස් කරන්නේ ශුන්‍ය පරායත්ත පොදු කාර්ය සහ සහතික කළ, ස්ථාවර API එකක් Meta's battle-tested libzstd විසින් පිටුබලය දෙන බවයි. විශේෂයෙන් වර්ගීකරණ කාර්යයන් සඳහා, Zstandard gzip හෝ bzip2 වලට වඩා වාසි කිහිපයක් ලබා දෙයි:

  • වේගය: Zstandard සංසන්දනාත්මක අනුපාතවලදී gzip ට වඩා 3-5x වේගයෙන් සම්පීඩනය කරයි, ලේඛන දහස් ගණනක් පුරා කාණ්ඩ වර්ගීකරණය විනාඩියකට වඩා තත්පර කිහිපයකින් ශක්‍ය කරයි
  • සුසර කළ හැකි සම්පීඩන මට්ටම්: මට්ටම් 1 සිට 22 දක්වා ඔබට අනුපාතය සඳහා වේගය වෙළඳාම් කිරීමට ඉඩ සලසයි, ප්‍රතිදාන අවශ්‍යතාවලට එරෙහිව NCD නිරවද්‍යතාවය ක්‍රමාංකනය කිරීමට ඔබට ඉඩ සලසයි
  • ශබ්දකෝෂ සහාය: පූර්ව-පුහුණු Zstandard ශබ්දකෝෂවලට NCD නිරවද්‍යතාව වඩාත්ම වැදගත් වන ලේඛන ප්‍රමාණයේ පරාසය වන කුඩා පාඨ (4KB යටතේ) සංකෝචනය නාටකාකාර ලෙස වැඩිදියුණු කළ හැක
  • ස්ට්‍රීමිං ඒපීඅයි: මොඩියුලය වර්ධක සම්පීඩනයට සහය දක්වයි, සම්පූර්ණ සංගත මතකයට පැටවීමකින් තොරව පෙළ සකසන වර්ගීකරණ නල මාර්ග සබල කරයි
  • සම්මත පුස්තකාල ස්ථායිතාව: අනුවාද ගැටුම් නොමැත, සැපයුම් දාම අවදානමක් නොමැත — සම්පීඩන ආනයන zstd වෙතින් සෑම Python 3.14+ ස්ථාපනයකම ක්‍රියා කරයි

ප්‍රධාන තීක්ෂ්ණ බුද්ධිය: ඔබට බහුභාෂා පෙළ ස්වදේශිකව හසුරුවන ඉක්මන්, යැපීම්-රහිත මූලික රේඛාවක් අවශ්‍ය වූ විට සම්පීඩනය මත පදනම් වූ වර්ගීකරණය වඩාත් හොඳින් ක්‍රියා කරයි. කොම්ප්‍රෙෂර් ක්‍රියා කරන්නේ භාෂා-විශේෂිත ටෝකනවලට වඩා අමු බයිට් මත බැවින්, ඒවා ඉංග්‍රීසි මෙන් ඵලදායී ලෙස චීන, අරාබි හෝ මිශ්‍ර භාෂා ලේඛන වර්ග කරයි — භාෂා ආකෘතියක් අවශ්‍ය නොවේ.

ප්‍රායෝගික ක්‍රියාත්මක කිරීමක් පෙනෙන්නේ කෙසේද?

Python 3.14 හි අවම NCD වර්ගීකාරකයක් පේළි 30ට අඩුවෙන් ගැලපේ. ඔබ එක් එක් යොමු පෙළ (ප්‍රවර්ගයට එකක්) කේතනය කරයි, ඉන්පසු සෑම නව ලේඛනයක් සඳහාම, සෑම යොමුයකටම එරෙහිව NCD ගණනය කර අඩුම දුර ප්‍රවර්ගය පවරන්න. මෙන්න මූලික තර්කය:

පළමුව, compression import 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 News දත්ත කට්ටලයට එරෙහිව මිණුම් සලකුණු (පංති හතරේ ප්‍රවෘත්ති වර්ගීකරණය), සම්පීඩන මට්ටම 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 සොයා ගන්න. කුඩා-පෙළ වර්ගීකරණය සඳහා, ඔබගේ වසම් corpus මත Zstandard ශබ්ද කෝෂයක් පෙර පුහුණු කරන්න - මෙම තනි පියවර කෙටි ලේඛනවල 8-12 ප්‍රතිශතයකින් නිරවද්‍යතාවය වැඩි දියුණු කළ හැක.

නිතර අසන ප්‍රශ්න

සංකෝචනය පදනම් වූ වර්ගීකරණය හැඟීම් විශ්ලේෂණය සඳහා ක්‍රියා කරයිද?

එය හැක, නමුත් අවවාදයන් ඇතුව. චිත්තවේගීය විශ්ලේෂණයට ව්‍යුහාත්මකව සමාන පෙළ තුළ සියුම් ස්වර වෙනස්කම් හඳුනාගැනීම අවශ්‍ය වේ. විවිධ කාණ්ඩවල ලේඛන එකිනෙකට වෙනස් වචන මාලාවක් භාවිතා කරන මාතෘකා වර්ගීකරණය සඳහා NCD වඩා හොඳින් ක්‍රියා කරයි. මනෝභාවය සඳහා, නිරවද්‍යතාවය සාමාන්‍යයෙන් 55-60% පමණ වේ - අහඹු ලෙස වඩා හොඳ, නමුත් තනිවම නිෂ්පාදනයට සූදානම් නොවේ. සැහැල්ලු ලොජිස්ටික් ප්‍රතිගාමී ආකෘතියක් සමඟ NCD විශේෂාංග ඒකාබද්ධ කිරීම ප්‍රතිඵල සැලකිය යුතු ලෙස වැඩි දියුණු කරයි.

මට 3.14 ට පෙර Python අනුවාද වල compression.zstd මොඩියුලය භාවිතා කළ හැකිද?

නැහැ. compression.zstd මොඩියුලය Python 3.14 හි අලුත් ය. පෙර අනුවාද සඳහා, PyPI වෙතින් python-zstandard පැකේජය ස්ථාපනය කරන්න, එය සමාන compress() සහ decompress() ශ්‍රිතයන් සපයයි. NCD තර්කය එක හා සමානව පවතී - ආනයන ප්‍රකාශය පමණක් වෙනස් වේ. ඔබ 3.14 වෙත උත්ශ්‍රේණි කළ පසු, ඔබට තෙවන පාර්ශ්ව යැපීම සම්පූර්ණයෙන්ම අත්හැරිය හැක.

කොසයින සමානකම් ඇති TF-IDF හා සසඳන විට Zstandard NCD ක්‍රියා කරන්නේ කෙසේද?

සමතුලිත දත්ත කට්ටල සහිත බහු-පන්ති මාතෘකා වර්ගීකරණය මත, TF-IDF සහ cosine සමානතාව Zstandard NCD හි 62-68% හා සසඳන විට සාමාන්‍යයෙන් 75-82% නිරවද්‍යතාවයක් ලබා ගනී. කෙසේ වෙතත්, TF-IDF සඳහා සවිකර ඇති දෛශිකයක්, නිර්වචනය කළ වචන මාලාවක් සහ භාෂාවට විශේෂිත නැවතුම් පද ලැයිස්තුවක් අවශ්‍ය වේ. Zstandard NCD හට මෙම පෙර සැකසුම් කිසිවක් අවශ්‍ය නොවේ, කොටුවෙන් පිටත භාෂා හරහා ක්‍රියා කරයි, සහ වචන මාලාවේ ප්‍රමාණය නොතකා නිරන්තර කාලය තුළ නව ලේඛන වර්ගීකරණය කරයි. වේගවත් මූලාකෘතිකරණය හෝ බහුභාෂා පරිසරයන් සඳහා, NCD බොහෝ විට වැඩ කරන පද්ධතියකට වේගවත් මාර්ගයකි.

ඔබ ඔබේ ඩිජිටල් ව්‍යාපාරය සඳහා ස්වයංක්‍රීය අන්තර්ගත නල මාර්ග ගොඩනඟන්නේද, පාරිභෝගික පණිවිඩ මාර්ගගත කිරීම හෝ මූලාකෘති වර්ගීකරණ තර්කනය කරන්නේද, Python 3.14 හි ඇති Zstandard සහාය මගින් සම්පීඩනය මත පදනම් වූ NCD වෙත වෙන කවරදාටත් වඩා ප්‍රවේශ විය හැකිය. ඔබ ඔබේ ව්‍යාපාරික අන්තර්ගතය, නිෂ්පාදන, පාඨමාලා, සහ පාරිභෝගික අන්තර්ක්‍රියා කළමනාකරණය කිරීම සඳහා සර්ව-සම වේදිකාවක් සොයන්නේ නම්, අදම Mewayz සමඟ ගොඩනැගීම අරඹන්න සහ ඔබේ සම්පූර්ණ ක්‍රියාකාරිත්වය හරහා ක්‍රියා කිරීමට මෙම ශිල්පීය ක්‍රම යොදන්න.