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's Zstandard Module ஆனது 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 துல்லியம் மிகவும் முக்கியமான ஆவண அளவு வரம்பாகும்
  • ஸ்ட்ரீமிங் ஏபிஐ: தொகுதியானது அதிகரிக்கும் சுருக்கத்தை ஆதரிக்கிறது, முழு கார்போராவையும் நினைவகத்தில் ஏற்றாமல் உரைகளைச் செயலாக்கும் வகைப்பாடு பைப்லைன்களை செயல்படுத்துகிறது
  • நிலையான நூலக நிலைத்தன்மை: பதிப்பு முரண்பாடுகள் இல்லை, விநியோகச் சங்கிலி ஆபத்து இல்லை — சுருக்க இறக்குமதி 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 →

ஏஜி நியூஸ் தரவுத்தொகுப்புக்கு (நான்கு-வகுப்பு செய்தி வகைப்பாடு) எதிரான வரையறைகளில், சுருக்க நிலை 3 இல் Zstandard ஐப் பயன்படுத்தும் இந்த அணுகுமுறை தோராயமாக 62-65% துல்லியத்தை அடைகிறது - பயிற்சி படிகள் இல்லை, மாதிரி பதிவிறக்கம் இல்லை மற்றும் ஒரு CPU மையத்தில் வினாடிக்கு சுமார் 8,000 ஆவணங்களின் வகைப்பாடு வேகம். சுருக்க அளவை 10 ஆக உயர்த்துவது, வினாடிக்கு சுமார் 2,500 ஆவணங்களைக் குறைக்கும் செலவில் துல்லியத்தை 68% ஆக உயர்த்துகிறது. இந்த எண்கள் ஃபைன்-டியூன் செய்யப்பட்ட மின்மாற்றிகளுடன் பொருந்தவில்லை, ஆனால் அவை முன்மாதிரி, தரவு லேபிளிங் சோதனை அல்லது ML சார்புகளை நிறுவுவது நடைமுறைக்கு மாறான சூழல்களுக்கு வலுவான அடிப்படையை வழங்குகின்றன.

பாரம்பரிய ML வகைப்பாட்டுடன் NCD எவ்வாறு ஒப்பிடுகிறது?

உயர்-பங்கு உற்பத்தி அமைப்புகளில் மின்மாற்றி அடிப்படையிலான வகைப்படுத்திகளுக்கு NCD மாற்றாக இல்லை என்பதே நேர்மையான பதில். BERT அல்லது GPT அடிப்படையிலான வகைப்படுத்திகள் போன்ற மாதிரிகள் நிலையான வரையறைகளில் 94%+ துல்லியத்தை அடைகின்றன. இருப்பினும், Zstandard உடன் NCD ஒரு தனித்துவமான இடத்தைப் பிடித்துள்ளது. ஒரு வகுப்பிற்கு 50 க்கும் குறைவான லேபிளிடப்பட்ட எடுத்துக்காட்டுகள் இருக்கும் குளிர்-தொடக்கக் காட்சிகளில் இது சிறந்து விளங்குகிறது - நன்றாக வடிவமைக்கப்பட்ட மாதிரிகள் கூட போராடும் சூழ்நிலை. இதற்கு பூஜ்ஜிய பயிற்சி நேரம் தேவைப்படுகிறது, எந்த மொழி அல்லது குறியாக்கத்தையும் மாற்றமின்றி கையாளுகிறது, மேலும் நிலையான நினைவகத்துடன் CPU இல் முழுமையாக இயங்குகிறது.

பெரும் அளவிலான உள்வரும் உள்ளடக்கத்தை நிர்வகிக்கும் வணிகங்களுக்கு - ஆதரவு டிக்கெட்டுகள், சமூக ஊடகக் குறிப்புகள், தயாரிப்பு மதிப்புரைகள் - ஒரு Zstandard NCD வகைப்படுத்தி, அதிக விலையுள்ள மாதிரிகள் முடிவுகளைச் செம்மைப்படுத்துவதற்கு முன், உண்மையான நேரத்தில் ஆவணங்களை வகைப்படுத்தும் முதல்-பாஸ் திசைவியாகச் செயல்படும். இந்த இரண்டு-நிலை பைப்லைன் ஒட்டுமொத்த துல்லியத்தை பராமரிக்கும் போது அனுமான செலவுகளை கணிசமாக குறைக்கிறது. 138,000 க்கும் மேற்பட்ட தொழில்முனைவோரால் பயன்படுத்தப்படும் Mewayz இன் 207-தொகுதி வணிக OS போன்ற அளவில் பயனர் உருவாக்கிய உள்ளடக்கத்தைச் செயலாக்கும் தளங்கள், இலகுரக வகைப்பாட்டின் மூலம் செய்திகளை அனுப்புதல், உள்ளடக்கத்தைக் குறியிடுதல் மற்றும் அதிக உள்கட்டமைப்பு இல்லாமல் பயனர் அனுபவங்களைத் தனிப்பயனாக்கலாம்.

வரம்புகள் மற்றும் சிறந்த நடைமுறைகள் என்ன?

சுருக்க அடிப்படையிலான வகைப்பாடு உங்களுக்குத் தெரிந்த வரம்புகளைக் கொண்டுள்ளது. சுருக்கமான உரைகள் (100 பைட்டுகளுக்கு கீழ்) நம்பமுடியாத NCD மதிப்பெண்களை உருவாக்குகின்றன, ஏனெனில் கம்ப்ரசரில் அர்த்தமுள்ள வடிவங்களை உருவாக்க போதுமான தரவு இல்லை. நுட்பம் குறிப்பு நூல்களின் தேர்வுக்கு உணர்திறன் கொண்டது - மோசமாக தேர்ந்தெடுக்கப்பட்ட பிரதிநிதிகள் துல்லியத்தை கடுமையாக குறைக்கிறார்கள். மேலும் NCD என்பது ஒரு நிகழ்தகவு மாதிரியை விட தூர அளவீடு என்பதால், அது இயல்பாகவே நம்பிக்கை மதிப்பெண்களை உருவாக்காது.

இந்த அணுகுமுறையிலிருந்து அதிகப் பலன்களைப் பெற: ஒரு வகைக்கு குறைந்தபட்சம் 500 பைட்டுகள் உள்ள குறிப்பு உரைகளைப் பயன்படுத்தவும், ஒரு வகுப்பிற்கு பல எடுத்துக்காட்டுகளை இணைத்து சோதனை செய்யவும் (2-3 பிரதிநிதித்துவ ஆவணங்கள் சிறந்த சுருக்க அகராதிகளை வழங்குகின்றன), சுருக்கத்திற்கு முன் உரை உறை மற்றும் இடைவெளியை இயல்பாக்கவும் மற்றும் Zstandard சுருக்க நிலைகள் 3, 6, மற்றும் உங்கள் ஸ்பாட் வேகத்தை கண்டறியவும். சிறிய உரை வகைப்பாட்டிற்கு, உங்கள் டொமைன் கார்பஸில் Zstandard அகராதியை முன்கூட்டியே பயிற்சி செய்யுங்கள் - இந்த ஒற்றைப் படியானது குறுகிய ஆவணங்களில் 8-12 சதவீத புள்ளிகள் வரை துல்லியத்தை மேம்படுத்தும்.

அடிக்கடி கேட்கப்படும் கேள்விகள்

உணர்வு பகுப்பாய்விற்கு சுருக்க அடிப்படையிலான வகைப்பாடு வேலை செய்யுமா?

அது முடியும், ஆனால் எச்சரிக்கையுடன். உணர்வுப் பகுப்பாய்விற்கு கட்டமைப்பு ரீதியாக ஒத்த உரைகளுக்குள் நுட்பமான டோனல் வேறுபாடுகளைக் கண்டறிய வேண்டும். வெவ்வேறு வகைகளில் உள்ள ஆவணங்கள் தனித்துவமான சொற்களஞ்சியங்களைப் பயன்படுத்தும் தலைப்பு வகைப்பாட்டிற்கு NCD சிறப்பாகச் செயல்படுகிறது. உணர்வைப் பொறுத்தவரை, துல்லியம் பொதுவாக 55-60% வரை இருக்கும் - சீரற்றதை விட சிறந்தது, ஆனால் உற்பத்திக்குத் தயாராக இல்லை. இலகுரக லாஜிஸ்டிக் பின்னடைவு மாதிரியுடன் NCD அம்சங்களை இணைப்பது முடிவுகளை கணிசமாக மேம்படுத்துகிறது.

Python பதிப்புகளில் compression.zstd தொகுதியை 3.14க்கு முன் பயன்படுத்தலாமா?

இல்லை. பைதான் 3.14 இல் compression.zstd தொகுதி புதியது. முந்தைய பதிப்புகளுக்கு, 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 உடன் உருவாக்கத் தொடங்குங்கள் மேலும் இந்த நுட்பங்களை உங்கள் முழு செயல்பாட்டிலும் பயன்படுத்துங்கள்.