தரவுச் சுரங்கம் - 31

தரவுச்சுரங்கம் – 31

புதுமையான செய்யறிவைப் பற்றி இதுவரை பார்த்தோம். அஃது எவ்வாறு தரவுச்சுரங்கத்தினைத் தோண்டும் நவீன கருவியாகச் செயல்படுத்தப்படுகின்றது என்றும் கண்டோம். 1950களில் செய்யறிவு கண்டுபிடிக்கப்பட்டாலும் 1990 வரை அது செய்யறிவின் குளிர்காலம் என்றே அழைக்கப்படுகின்றது. செய்யறிவு கண்டுபிடிக்கப்பட்டுவிட்டதே ஒழிய அது வளர்வதற்கான சூழ்நிலை அமையவில்லை. வன்பொருளும் இல்லை. மென்பொருளும் இல்லை. தரவுகளும் எண்ம வடிவில் இல்லை. அதற்குண்டான சூழ்நிலை 1990க்குப் பின் துளிர் விட ஆரம்பித்தது. பெருந்தரவு வந்ததும் இயந்திரங்களின் அகோரப்பசிக்கு விருந்தானது. செய்யறிவு இப்போது தான் வளர ஆரம்பித்துள்ளது. அது இன்னும் குழந்தைப் பருவத்தில் உள்ளது. அது இளமைப் பருவத்தை எப்போது எட்டும் என்பதைப் பொறுத்திருந்து பார்க்கலாம். நாம் தரவுச் சுரங்கத்தில் மீண்டும் நமது கவனத்தைத் திருப்பலாம்.

இந்தப் பகுதியில் தரவுச்சுரங்கத்தின் மிக முக்கிய அம்சங்களில் ஒன்றானதும் அதன் செயலாக்கத்தின் அடித்தளமாகவும் விளங்கும் தரவு மாதிரியாக்கம் குறித்துக் காணலாம். நாம் ஒரு வீட்டைக் கட்டுவதற்கு முன், பொறியாளர் எப்படி ஒரு வரைபடத்தை (Blueprint) உருவாக்குகிறாரோ, அதேபோல ஒரு மென்பொருளையோ அல்லது தரவுக் கிடங்கையோ உருவாக்கும் முன் நாம் தரவு மாதிரியை (Data Model) உருவாக்க வேண்டும்.

தரவு மாதிரியாக்கம் என்றால் என்ன?

தரவு மாதிரியாக்கம் என்பது தரவுகளுக்கு இடையிலான தொடர்புகள், அவற்றின் பண்புகள் மற்றும் கட்டுப்பாடுகளை விவரிக்கும் ஒரு செயல்முறை ஆகும். இது தரவை எவ்வாறு சேமிப்பது, எப்படி அணுகுவது மற்றும் பயன்படுத்துவது என்பதைத் தீர்மானிக்கிறது. தரவு மாதிரியாக்கம் ஒரு கட்டிடத்தின் அஸ்திவாரம் போன்றது; அஸ்திவாரம் வலுவாக இருந்தால்தான் கட்டிடம் (தரவுப் பயன்பாடு) நிலைத்து நிற்கும்.

ஏன் தரவு மாதிரியாக்கம் தேவை?

இந்த இடத்தில் ஒன்றை நினைவு கூர விரும்புகின்றேன். ஏற்கனவே நிகழ்நிலை பகுப்பாய்வுக்குத் தேவை மிக விரைவாக எழுதுவதல்ல. மிக விரைவாகப் பெருந்தரவை வாசிக்கக் கூடிய வசதியாகும். ஏனென்றால் இங்கே நாம் முழுமை பெற்ற நடவடிக்கைகளை மட்டுமே பகுப்பாய்வுக்கு உட்படுத்துகின்றோம். நாம் கேட்கும் எத்தகைய குறுக்குக் கேள்விக்கும் விடையளிக்குமாறு நமது தரவமைப்பை மாற்ற வேண்டியிருக்கின்றது.

  1. தெளிவான புரிதல்: இது வணிகத் தேவைகளைத் தொழில்நுட்ப அமைப்பாக மாற்ற உதவுகிறது.

  2. தரவு ஒருமைப்பாடு (Data Integrity): தரவு பிழையின்றி, சரியான விதிகள் மற்றும் கட்டுப்பாடுகளுடன் சேமிக்கப்படுவதை உறுதி செய்கிறது.

  3. வேகமான அணுகல்: தரவைச் சரியான முறையில் ஒழுங்கமைப்பதால், தேவையான தகவல்களை விரைவாகத் தேடி எடுக்க முடியும்.

  4. பராமரிப்பு எளிமை: எதிர்காலத்தில் மாற்றங்கள் தேவைப்பட்டால், தரவு மாதிரி இருந்தால் அதை எளிதாகச் செய்ய முடியும்.

தரவு மாதிரியாக்கத்தின் மூன்று நிலைகள்:

தரவு மாதிரியாக்கம் பொதுவாக மூன்று கட்டங்களாகச் செய்யப்படுகிறது:

1. கருத்துரு தரவு மாதிரி (Conceptual Data Model):

o விளக்கம்: இது ஒரு மேலோட்டமான வரைபடம். வணிகத் தேவைகளை மட்டுமே கருத்தில் கொள்ளும். தொழில்நுட்ப விவரங்கள் இருக்காது.

o உள்ளடக்கம்: முக்கிய உருபொருட்கள் (Entities) மற்றும் அவற்றுக்கிடையேயான உறவுகள் (Relationships) மட்டும் இருக்கும்.

o பார்வையாளர்கள்: வணிக மேலாளர்கள், பங்குதாரர்கள்.

o எடுத்துக்காட்டு: "வாடிக்கையாளர்" மற்றும் "விற்பனை" என்ற இரண்டு பெட்டிகள், அவற்றுக்கிடையே "வாங்கினார்" என்ற ஒரு கோடு.

2. தருக்க ரீதியான தரவு மாதிரி (Logical Data Model):

o விளக்கம்: இது கருத்துரு மாதிரியின் விரிவான வடிவம். இதில் தரவின் பண்புகள் (Attributes) மற்றும் தரவு வகைகள் (Data Types) சேர்க்கப்படும். ஆனால், எந்தத் தரவுத்தள மென்பொருளைப் (Database Software) பயன்படுத்தப் போகிறோம் என்பது இன்னும் முடிவு செய்யப்படாது.

o உள்ளடக்கம்: அனைத்து உருபொருட்கள், பண்புகள், முதன்மைத் திறவுகோல் (Primary Key), அயல் திறவுகோல் (Foreign Key).

o பார்வையாளர்கள்: தரவு ஆய்வாளர்கள், வடிவமைப்பாளர்கள்.

3. இயற்பியல் தரவு மாதிரி (Physical Data Model):

o விளக்கம்: இதுவே இறுதி வடிவம். குறிப்பிட்ட தரவுத்தள மென்பொருளுக்கு (எ.கா: Oracle, SQL Server) ஏற்றவாறு வடிவமைக்கப்படும்.

o உள்ளடக்கம்: அட்டவணைகள் (Tables), நெடுவரிசைகள் (Columns), தரவு வகைகள் (Data Types - e.g., Varchar, Int), குறியீடுகள் (Indexes), பார்வைகள் (Views).

o பார்வையாளர்கள்: தரவுத்தள நிர்வாகிகள் (DBAs), மென்பொருள் உருவாக்குநர்கள்.

தரவு மாதிரியாக்கம் என்பது வெறும் தொழில்நுட்பம் மட்டுமல்ல; அது ஒரு கலை. வணிகத்தின் சிக்கலான தேவைகளை எளிமையான வரைபடங்களாக மாற்றி, கணினிக்குப் புரியவைக்கும் மொழி இது. ஒரு சிறந்த தரவு மாதிரிதான், ஒரு வெற்றிகரமான தரவுக் கிடங்கின் முதல் படியாகும்.

தரவுச் சுரங்கம் - 30

தரவுச்சுரங்கம் – 30

இயந்திரக்கற்றல் என்றால் என்ன? அது எவ்வாறு நிகழ்கின்றது என்பதை மேலோட்டமாகக் கண்டோம். இந்தப் பகுதியில் அதன் வகைகளைக் காண்போம்.

இயந்திரக் கற்றலின் வகைகள்:

  1. மேற்பார்வையிடப்பட்ட கற்றல் (Supervised Learning):

o கருத்து: பதில்களுடன் கூடிய தரவுகளை (labeled data) இயந்திரத்திற்குக் கொடுத்துப் பயிற்றுவித்தல் (ஒரு ஆசிரியர் மாணவருக்குச் சொல்லிக் கொடுப்பது போல).

o நோக்கம்: கணித்தல் (Prediction).

o உட்பிரிவுகள்:

 வகைப்படுத்தல் (Classification): இது ஸ்பேமா, இல்லையா? (பதில்: ஆம் / இல்லை)

 தொடர்புப்போக்கு (Regression): அடுத்த மாத விற்பனை எவ்வளவு இருக்கும்? (பதில்: ஒரு எண்)

  1. மேற்பார்வையற்ற கற்றல் (Unsupervised Learning):

o கருத்து: பதில்கள் இல்லாத தரவுகளைக் கொடுத்து, அதில் மறைந்திருக்கும் வடிவங்களை (patterns) இயந்திரத்தையே கண்டறியச் செய்தல் (ஆசிரியர் இல்லாமல், சுயமாகக் கற்றுக்கொள்வது போல).

o நோக்கம்: கண்டுபிடித்தல் (Discovery).

o உட்பிரிவு:

 தொகுத்தல் (Clustering): "புதன்கிழமை வாடிக்கையாளர்" போல, வாடிக்கையாளர்களைத் தானாகவே பல குழுக்களாகப் பிரித்தல்.

  1. வலுவூட்டக் கற்றல் (Reinforcement Learning)

o கருத்து: இது "முயன்று தவறி கற்றல்" (Trial and Error) போன்றது. இங்கே கணினிக்கு (முகவர் - Agent) எந்தத் தரவும் முன்பே கொடுக்கப்படுவதில்லை. அதற்குப் பதிலாக, அது ஒரு சூழலில் (Environment) விடப்படுகிறது. அது செய்யும் ஒவ்வொரு செயலுக்கும் ஒரு வெகுமதி (Reward) அல்லது தண்டனை (Penalty) கிடைக்கும். அதிகபட்ச வெகுமதியைப் பெறுவது எப்படி என்று அதுவே அனுபவத்தின் மூலம் கற்றுக்கொள்ளும்.

o Reinforcement Learning

o பயன்பாடு: இன்று நாம் காணும் தானியங்கி மகிழுந்துகள் (Self-driving cars), செஸ் விளையாட்டில் உலக சாம்பியனையே தோற்கடித்த 'ஆல்ஃபா கோ' (AlphaGo) போன்ற மென்பொருட்கள், மற்றும் தொழிற்சாலைகளில் இயங்கும் ரோபோக்கள் போன்றவை இந்த முறையில்தான் செயல்படுகின்றன. விபத்து இல்லாமல் வண்டி ஓட்டினால் வெகுமதி, இடித்தால் தண்டனை - இதுவே அதன் பாடம்!

MachineLearning Types

ஆழக்கற்றல்:

படங்கள், ஒலி, மற்றும் மொழி போன்ற மிகவும் சிக்கலான தரவுகளைப் புரிந்து கொள்ள, மனித மூளையின் அமைப்பைப் (Neural Networks) பிரதியெடுத்து உருவாக்கப்பட்ட இயந்திரக் கற்றலின் ஒரு சிறப்புப் பிரிவே "ஆழக் கற்றல்". இதுவே இன்றைய செய்யறிவின் (AI) முதுகெலும்பாகும். 

DeepLearning

தரவுச் சுரங்கம் - 29

தரவுச்சுரங்கம் – 29

முந்தைய பகுதியில் இயந்திரக் கற்றலைப் பற்றிய அறிமுகத்தைக் கண்டோம். இப்போது சற்று விளக்கமாக அது எவ்வாறு வடிவமைக்கப்படுகின்றது, இயங்குகின்றது, மற்றும் முந்தைய கணினி நிரலாக்கத்துக்கும் இதற்கும் இருக்கும் வேறுபாடுகள் குறித்துக் காண்போம்.

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

இனி ஒவ்வொரு நிறுவனமும் இயந்திரக் கற்றல் மூலம் எவ்வாறு தரவுச் சுரங்கத்தைத் தோண்ட முடியும் என்று காண்போம். இயந்திரக் கற்றலின் அடிச்சுவடு தரவுகளுக்கிடையே இருக்கும் தொடர்பைக் கண்டறிவதும், அந்தத் தொடர்புகள் இறுக்கமாகி எவ்வாறு நூலிழையாக ஆரம்பிக்கும் ஒரு தொடர்பு பின்னர் தேரை இழுக்கும் வடக்கயிறு போல் உறுதியாகின்றது என்னும் தொடர்புகளின் வடிவமைப்பைக் காண்பதும் ஆகும்.

எடுத்துக்காட்டாக, ஒரு கடைக்கு ஒரு வாடிக்கையாளர் புதன்கிழமைகளில் மட்டுமே வந்திருக்கக் கூடும். அது எதேச்சையாகவும் நிகழ்ந்திருக்கலாம். ஓரிரு முறை என்றால் அது எதேச்சை. ஆனால், பத்து தடவைகளுக்கும் மேல் ஒரு வாடிக்கையாளர் புதன்கிழமை மட்டுமே உங்கள் கடைக்கு வருகின்றார் என்றால், இந்தப் புதன்கிழமை வருவதற்கான நிகழ்தகவு மற்ற கிழமைகளில் வருவதைக் காட்டிலும் அதிகம் அன்றோ? இது போன்ற அத்தனை நிகழ்வுகளின் கண்ணுக்குத் தெரியாத நுட்பமான தொடர்புகளையும் கணினியால் கண்டு பிடிக்க முடியும். ஒரு வேளை உங்கள் கடைக்கு அருகில் இருக்கும் ஒரு திரைப்பட அரங்கில் புதன்கிழமைகளில் மட்டுமே ஆங்கிலப் படம் திரையிடப்படுவதால் அங்கே வருபவர்கள் உங்கள் வாடிக்கையாளராக இருக்கக் கூடும். இவ்வாறு ஒரு நிகழ்வுக்கான தொடர்பைக் கண்டுபிடிப்பதும், நினைவில் கொள்வதும் இயந்திரக் கற்றல் ஆகும். இதற்கு வழுநீக்கப்பட்ட தரவுகள் தேவை.

கற்க கசடற கற்பவை கற்றபின் நிற்க அதற்குத் தக. எனும் வள்ளுவப் பெருந்தகையின் குறளை நினைவு கூர்க.

சரி, மரபுவழியில் நாம் இதுகாறும் செய்து வந்த நிரலாக்கத்திற்கும், இப்போதைய இயந்திரக் கற்றலுக்கும் என்ன வேறுபாடு என்பதைக் காண்போம்.

மரபுவழி நிரலாக்கம் என்பது நாம் பல ஆண்டுகளாகப் பயன்படுத்தி வரும் முறையாகும். இதில், ஒரு நிரலர் (Programmer) ஒரு சிக்கலைத் தீர்ப்பதற்குத் தேவையான ஒவ்வொரு தர்க்கரீதியான படியையும் (logic), விதியையும் (rule) கணினிக்குக் கட்டளைகளாக எழுதுகிறார்.

கணினியும், கொடுக்கப்பட்ட தரவை (Input Data) எடுத்து, மனிதர் எழுதிய அந்த நிரலின் (Program / Rules) மீது அவர் குறிப்பிட்ட விதிகளின்படி செயல்பட்டு, ஒரு வெளியீட்டை (Output) வழங்குகிறது.

இயந்திரக் கற்றலிலோ நிரலர் விதிகளை வழங்குவதில்லை. நாம் வழங்கும் தரவிலிருந்தே இயந்திரம் விதிகளை உருவாக்குமாறு நிரலமைக்கப்பட்டுள்ளது! ஆக இயந்திரக் கற்றலுக்கும் மரபுவழி நிரலாக்கத்திற்கும் இடையேயான அடிப்படை வேறுபாடு விதிகளை யார் உருவாக்குகின்றார்கள் என்பதில் உள்ளது. விதிகளை நிரலர் உருவாக்கினால் மரபுவழி நிரலாக்கம். அதுவே கணினி உருவாக்கிக் கொண்டால் அது இயந்திரக் கற்றல். எனவே, இயந்திரக் கற்றல் என்பது நிரலாக்கத்தின் ஒரு புதிய பரிணாம வளர்ச்சியாகும். இதில் நாம் கணினிக்கு "என்ன செய்ய வேண்டும்" என்று சொல்வதை விடுத்து, "எப்படி கற்றுக்கொள்ள வேண்டும்" என்று சொல்கிறோம்.

கீழே இவ்விரண்டிற்கும் இடையேயான மற்ற வேறுபாடுகள் பட்டியலிடப்பட்டுள்ளன.

அம்சம் மரபுவழி நிரலாக்கம் இயந்திரக் கற்றல்
முக்கிய உள்ளீடு விதிகள் / தர்க்கம் (மனிதரால்) தரவு / எடுத்துக்காட்டுகள் (மனிதரால்)
முக்கிய வெளியீடு பதில்கள் (Answers) விதிகள் / மாதிரி (Model)
தர்க்கம் (Logic) வெளிப்படையாக நிரல் எழுதப்பட்டது (Explicit) தரவிலிருந்து ஊகிக்கப்பட்டது (Implicit)
மாற்றங்கள் விதிகளை மனிதர் மாற்றும் வரை மாறாது. புதிய தரவு வரும்போது சுயமாகத் தகவமைக்கும்
பயன்பாடு வரையறுக்கப்பட்ட பணிகள் (எ.கா. வணிக நடவடிக்கை இடுதல்) சிக்கலான, கணிக்க முடியாத பணிகள் (e.g., முகத்தை அறிதல், மொழிபெயர்ப்பு)

திறந்த மூல நிரலிமொழியான பைத்தான் மொழியில் இலவசமாக கிடைக்கும் சில இயந்திரக் கற்றல் நிரலமைப்புகள் இவை: • Scikit-learn, TensorFlow, Keras, PyTorch, XGBoost, LightGBM, NLTK (Natural Language Toolkit), Gensim, Hugging Face Transformers, OpenCV (Open Source Computer Vision Library)

இதன் மூலம் நீங்களே உங்கள் கணினியில் சிறிய முறையில் இயந்திரக் கற்றலை உருவாக்கலாம்.

தரவுச் சுரங்கம் - 28

தரவுச்சுரங்கம் – 28

நிகழ்நிலையில் அன்றாடம் நடக்கின்ற நிகழ்வுகளின் விவரங்களைச் சேமித்து எவ்வளவு பெரிய நிறுவனமாக இருந்தாலும் எதிர்காலத்தில் எப்போது வேண்டுமானாலும் எப்படிக் கேட்டாலும் எடுத்துத் தரும் வகையில் ஒரு தரவுக் கிட்டங்கியினை இப்போது தயார் செய்து விட்டோம்! அதை எவ்வாறு செய்வது என்பதை இத்தனை பகுதிகளாகப் பார்த்துக் கொண்டு வந்தோம்.

இத்தனை தரவுகளையும் ஒன்றாக வைத்துப் பார்த்தால் ஒரு தனிமனிதனாலோ அல்லது குழுவோ மட்டும் ஆராய்ந்து முடிவெடுத்து தக்க நடவடிக்கைகள் எடுத்து பெருநிறுவனங்களை வழிநடத்திட முடியுமா என்பது கேள்விக்குறியே. எனவே அந்தக் கேள்விக்கான பதிலை இந்தப் பகுதியில் காண்போம்.

பெருந்தரவு எனும் பெருமலையை மனித சக்தியை வைத்து மட்டும் நகர்த்தி விட முடியாது. மலை விழுங்கி மகாதேவன்கள் தேவை. எவ்வளவு உணவை வைத்தாலும் விழுங்கிவிடும் பகாசுரன்கள் தேவை. அத்தகைய ஒன்று தான் செய்யறிவு. மனிதனால் செய்ய முடியாத போதெல்லாம் ஒரு இயந்திரத்தை உருவாக்குவது மனித இயல்பு. எனவே தன்னால் கற்றுக் கொண்டு ஆராய முடியாத போது ஒரு இயந்திரத்தைக் கற்றுக் கொள்ள வைத்து ஆராய வைக்க முடியுமா என்ற ஆராய்ச்சி 1950களில் ஆரம்பமானது.

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

கீழே படத்தினைக் கண்ணுறுங்கள்.  ![enter image description here](https://rathinagiri.in/content/images/20251217100007-Tharavu28.jpg)

இயந்திரக் கற்றலின் ஒரு முக்கியமான பாகம் ஆழக் கற்றல். இவையனைத்தின் ஒட்டு மொத்தச் சிகரமே ஆக்கச் செய்யறிவு என்று இன்று நாம் அன்றாடம் பயன்படுத்தும் செய்யறிவு ஆகும். நாம் ஏற்கனவே குறிப்பிட்டது போல் தரவுச் சுரங்கத்தில் இயந்திரக் கற்றலும், ஆழக் கற்றலும், ஒட்டு மொத்த செய்யறிவும் எவ்வாறு உதவுகின்றது என்பதைக் குறித்து இனி காண்போம்.

இயந்திரக் கற்றல்: (Machine Learning) என்ன? இயந்திரம் கற்குமா? இயந்திரம் கற்குமென்றால் அதற்குச் சொல்லித் தரப் போவது யார்? எப்படிச் சொல்லித் தர முடியும்? அதற்கென்று அறிவு உள்ளதா? இயற்கையில் மனிதன் பெற்றிருக்கும் அறிவை செயற்கையாக உருவாக்க முடியுமா? என்றெல்லாம் நமக்குள் கேள்விகள் எழுவது சகஜமானது. மனிதனின் மூளையை ஆராய்ந்த ஆராய்ச்சியாளர்கள் எவ்வாறு நரம்பு மண்டலங்களால் பின்னிப் பிணைந்திருக்கும் ஒரு இயற்பியல் உறுப்பு கற்றுக் கொள்கின்றது அதை நினைவில் கொள்கின்றது என்று ஆராய்ந்து நாமும் அதே போல் நரம்பு மண்டலத்தை உருவாக்கி பல படிவ, பரிமாணங்களாகச் சேமித்து, அவற்றை ஏதோ தனித்தனியே நாம் இதுவரை சேமித்து வைத்த தகவல்கள் போல் நிரல்/நிரை தரவுகளாக அல்லாமல், ஒவ்வொரு தகவலுக்கும் மற்றொரு தகவலுடன் கொண்டிருக்கும் உறவினையும் சேர்த்து சேமித்து வைத்து மனித மூளை எவ்வாறு செயல்படுகின்றதோ அதே போல் கணினியையும் செயல்பட வைத்து கற்க வைத்தலே இயந்திரக் கற்றலின் சூக்குமமாகும்.

இயந்திரக் கற்றல் என்பது செய்யறிவின் (Artificial Intelligence) ஒரு துணைப் பிரிவாகும். இது, கணினிகளுக்கு வெளிப்படையாக ஒவ்வொரு அடியையும் நிரல் (program) எழுதிக் கட்டளையிடாமல், அவற்றுக்குத் தரவுகளை (data) வழங்கி, அந்தத் தரவுகளிலிருந்து அவற்றுக்கு அவையே சுயமாகக் கற்றுக்கொள்ளும் திறனைக் கொடுக்கும் ஒரு முறையாகும். அதாவது மீனைக் கொடுப்பதற்குப் பதிலாக மீனைப் பிடிக்கக் கற்றுக் கொடுப்பது.

ஒரு மனிதக் குழந்தை அனுபவங்கள் மூலம் (எடுத்துக்காட்டுகளைப் பார்ப்பதன் மூலம்) கற்றுக்கொள்வதைப் போலவே, இயந்திரக் கற்றல் மாதிரிகளும் (Models) தரவுகளில் உள்ள வடிவங்களையும் (patterns) தொடர்புகளையும் கண்டறிந்து "கற்றுக்கொள்கின்றன".

கணினிக்கு நாம் பல ஆண்டுகளாகச் சேகரித்து வைத்திருக்கும் தரவுகளையும், அந்தக் காலகட்டங்களில் நாம் இது வரை எடுத்த முடிவுகளையும் மட்டும் பகிர்ந்து கொண்டு, அதை எதனால் செய்தோம் என்று சொல்லாமல் விட்டு அதைக் கணினியே கற்றுக் கொள்ளுமாறு விடுவது இயந்திரக் கற்றல். இதன் மூலம், மனிதன் எவ்வாறு அவ்வப்போது கிடைக்கும் தகவல்களைக் கொண்டு இதுவரை கற்று நினைவில் உள்ள தகவல்களையும் கொண்டு முடிவெடுக்கின்றானோ அதே போல் இயந்திரமும் செய்ய வைக்கப்படுகின்றது.

நீங்கள் நினைப்பது சரி தான். நாம் முடிவெடுக்கப் பயன்படுத்திய அளவீடுகளையோ, நாம் பிரச்னைகளை அணுகிய கோணங்களையோ கணினிகள் காணாமல் விட்டுவிட்டால் என்னாவது? முதல் கோணல் முற்றிலும் கோணல் ஆகிவிடாதா? என்னும் அடிப்படையான கேள்விகளுக்கான பதில்களையும் இன்னும் இயந்திரக் கற்றலுக்கும் இதுவரை நாம் பயன்படுத்தி வந்த கணினி நிரலாக்கத்துக்கும் இருக்கும் அடிப்படை வேறுபாடுகளையும் அடுத்தடுத்த பகுதிகளில் காண்போம்.

தரவுச் சுரங்கம் - 27

தரவுச்சுரங்கம் – 27

ETL (Extract, Transform, Load) செயல்முறையில் அடுத்ததாக ‘L’ - ஏற்றுதல் (Load) என்பது தரவை அப்படியே ஏதோ வண்டியில் ஏற்றிக் கொட்டுவது போன்ற ஒரு எளிய படிநிலை கிடையாது. குறிப்பாக, இன்றைய நவீன தரவுக் கிடங்கு (Data Warehouse) அமைப்புகளில் இது மிக முக்கியப் பங்காற்றுகிறது.

OLTP (Online Transaction Processing) எனப்படும் வரிசை-வழி தரவுத்தளங்களிலிருந்து (Row-based Databases), OLAP (Online Analytical Processing) எனப்படும் நிரல்-வழி தரவுத்தளங்களுக்கு (Columnar Databases) தரவை மாற்றும் போது, இந்த ‘Load’ படிநிலை ஒரு வெறும் தரவேற்றம் என்பதைத் தாண்டி, ஒரு இறுதிநிலை உருமாற்றமாகவே (Final Transformation) செயல்படுகிறது.

அதைப் பற்றி விரிவாகக் காண்போம். இந்தப் பகுதியில் காணவிருக்கும் சில முக்கியத் தொழில்நுட்பங்களை ஏற்கனவே முந்தைய பகுதிகளிலும் விளக்கியிருக்கின்றோம். இருந்தாலும் இந்தப் படிநிலையில் பொருத்தமாக இருப்பதால் இங்கும் காண்போம்.

‘Load’ படிநிலையில் தரவு கிடங்கிற்குள் தரவு ஏற்றப்படும்போது பின்வரும் முக்கியப் பணிகள் நடைபெறுகின்றன: 1. கட்டமைப்பு மாற்றம் (Schema Transformation): OLTP அமைப்புகளில் தரவு பொதுவாக சீரமைவு வடிவத்தில் (Normalized Form) இருக்கும். ஆனால், OLAP அமைப்புகளில் பகுப்பாய்வுக்கு (Analysis) ஏதுவாக நட்சத்திர வடிவமைப்பு (Star Schema) அல்லது பனித்துகள் வடிவமைப்பு (Snowflake Schema) போன்ற அமைப்புகளுக்கு மாற்றப்படுகிறது. இந்த சிக்கலான மாற்றங்கள் ‘Load’ படிநிலையின் போதே உறுதி செய்யப்படுகின்றன.

  1. வரிசை-வழியிலிருந்து நிரல்-வழிக்கு மாற்றுதல் (Row-to-Columnar Conversion): இதுதான் குறிப்பிடத் தக்க மிக முக்கியமான புள்ளி. தரவு வரிசை வரிசையாகப் படிக்கப்பட்டு, நிரல் நிரலாக (column by column) பிரித்து, பிரத்யேகமான முறையில் சேமிக்கப்படுகிறது. இந்த மாற்றம் ‘Load’ செய்யப்படும்போதே நடக்கிறது.

  2. குறியீடுகள் மற்றும் சுருக்கங்கள் உருவாக்குதல் (Indexing & Compression): தரவை ஏற்றிய பிறகு, அதன் மீது மிக வேகமாகக் கேள்விகளை (queries) இயக்க வேண்டும். அதற்காக, Clustered Column store Indexes போன்ற பிரத்யேகக் குறியீடுகள் உருவாக்கப்படுகின்றன. மேலும், தரவு நிரல்-வழியில் சேமிக்கப்படுவதால் மிக அதிக அளவில் சுருக்கப்படுகிறது (compression). இந்தச் செயல்கள் அனைத்தும் ஏற்றுதலின் ஒரு பகுதியாகும்.

  3. பிரிவினை செய்தல் (Partitioning): மிகப் பெரிய அட்டவணைகளை (Fact tables) ஆண்டு, மாதம் அல்லது காலாண்டு வாரியாகப் பிரித்து (partition) சேமிப்பது வழக்கம். இது தரவு மேலாண்மையையும், கேள்வி வேகத்தையும் அதிகப்படுத்தும். இந்தப் பிரிவினைப் பணியும் தரவை ஏற்றும்போதுதான் செய்யப்படுகிறது.

• முன்-கணக்கீடுகள் (Pre-Aggregations): சில சமயங்களில், அடிக்கடி பயன்படுத்தப்படும் கூட்டுத்தொகை (SUM), சராசரி (AVERAGE) போன்ற மதிப்புகளை முன்கூட்டியே கணக்கிட்டு, தனி அட்டவணைகளில் (Aggregate Tables) சேமிக்கப்படும். இது BI கருவிகளில் அறிக்கைகள் மிக வேகமாகத் தயாரிப்பதற்கு உதவும். இந்த முன்-கணக்கீட்டு அட்டவணைகளும் ‘Load’ படிநிலையில்தான் உருவாக்கப்படுகின்றன.

எனவே, ‘Load’ என்பது ஒரு எளிய நகலெடுப்பு அல்ல; அது தரவைப் பகுப்பாய்வுக்குத் தயார்படுத்தும் ஒரு இறுதி மற்றும் அதிமுக்கியமான செயல்பாடு.

நிரல்வழியில் சேமிப்பதன் சில நன்மைகள்:

அதிக சுருக்கம் (High Compression): ஒரு நிரலில் ஒரே மாதிரியான தரவுகளே (e.g., எண்கள் மட்டும், அல்லது குறிப்பிட்ட சில வார்த்தைகள் மட்டும்) ஒன்றாக இருக்கும். ‘மண்டலம்’ எனும் தொகுதியில்: [தெற்கு, மேற்கு, வடக்கு, தெற்கு, ...]. இதில் ‘தெற்கு’ என்ற வார்த்தை பலமுறை வரலாம். இதைச் சுருக்கும்போது, 'தெற்கு' - 2 முறை, 'மேற்கு' - 1 முறை என மிக எளிதாக, குறைந்த இடத்தில் சேமிக்க முடியும். இதுவே Run-Length Encoding போன்ற சுருக்கும் நுட்பங்களின் அடிப்படை. ஒரே மாதிரியான தரவுகள் ஒன்றாக இருப்பதால், சுருக்கும் திறன் (compression ratio) 10 மடங்கு வரை கூட அதிகமாக இருக்கும். இதனால் சேமிப்புச் செலவு பெருமளவு குறைகிறது.

சுருக்கமாக, நிரல்-வழி சேமிப்பு தேவையற்ற தரவுகளைப் படிப்பதைத் தவிர்ப்பதாலும் (வேகம்), ஒரே மாதிரி தரவுகளை ஒன்றாகச் சேமித்து எளிதாகச் சுருக்குவதாலும் (சேமிப்பு) OLAP அமைப்புகளுக்கு ஒரு வரப்பிரசாதமாக விளங்குகிறது.