ஒவ்வொரு வாரமும், மற்றொரு AI கருவி செய்திகளில் இடம் பிடிக்கிறது. மாணவர்கள் உரையாடல் முகவர்கள் (conversational agents), தானியங்கி வாகனங்கள் மற்றும் உருவாக்கப்பட்ட கலை (generative art) ஆகியவற்றின் செயல்விளக்கங்களைக் கண்டு, உடனடியாக அதில் இணைந்துவிட விரும்புகிறார்கள். அந்த ஆசை புரிகிறது. ஒரு வேலை செய்யும் சாட்போட்டை (chatbot) உருவாக்க, இழுத்து விடுதல் (drag, drop) மற்றும் ப்ராம்ப்ட் (prompt) முறையைப் பயன்படுத்த முடியும் போது, ஏன் லூப்கள் (loops) மற்றும் மாறிகளை (variables) கற்க மாதக்கணக்கில் செலவிட வேண்டும்? ஆனால் நிரலாக்க அடிப்படைகளை (programming fundamentals) கடந்து வேகமாகச் செல்ல முயல்வது, நீங்கள் நினைப்பதை விட விரைவாக நீங்கள் மோத வேண்டிய ஒரு எல்லையை உருவாக்கும்.

குறுக்குவழி ஏன் இவ்வளவு கவர்ச்சிகரமாகத் தோன்றுகிறது

தற்போதைய AI சந்தைப்படுத்தல் அலை வேகத்திற்கு முக்கியத்துவம் அளிக்கிறது. குறைந்த குறியீடு கொண்ட தளங்கள் (low-code platforms) மற்றும் API wrappers மூலம் ஒரு மதிய நேரத்திற்குள் ஒரு உரையாடல் இடைமுகத்தை நீங்கள் உருவாக்கிவிட முடியும். அந்த விரைவான வெற்றி உண்மையான முன்னேற்றம் போலத் தோன்றுகிறது. இருப்பினும், அந்த இடைமுகங்கள் நீங்கள் எழுதாத மற்றும் உள்ளே என்ன நடக்கிறது என்பதை உங்களால் பார்க்க முடியாத உள்கட்டமைப்பின் (infrastructure) மேல் அமைகின்றன. API வரம்புகள் (rate-limits) உங்கள் பயனர்களைத் தடுக்கும்போது, அல்லது தயாரிப்பு நிலையில் (production) மாடல் தவறான தகவல்களை உருவாக்கும்போது (hallucinates), அல்லது ஒரு மொபைல் செயலியை விரைவாகச் செயல்பட வைக்க இன்ஃபரன்ஸ் தாமதத்தைக் (inference latency) குறைக்க வேண்டியிருக்கும் போது, மேலோட்டமான அறிவு உங்களைத் திணறடிக்கும். மற்றவர்கள் உருவாக்கிய கருவிகளைச் சார்ந்திருப்பவராக நீங்கள் மாறிவிடுவீர்கள், அவற்றைச் சரிசெய்யவோ அல்லது மாற்றியமைக்கவோ உங்களால் முடியாது.

நிரலாக்கம் உண்மையில் உங்களுக்கு எதைக் கொடுக்கிறது

நிரலாக்கம் (Programming) என்பது கணினிக்குத் துல்லியமான அறிவுறுத்தல்களை எழுதும் செயலாகும். இணையதளங்கள் ஒரே நேரத்தில் வரும் போக்குவரத்தை (concurrent traffic) எவ்வாறு கையாளுகின்றன, மொபைல் செயலிகள் சாதனங்களுக்கு இடையே தரவை எவ்வாறு ஒத்திசைக்கின்றன (sync data), தரவுத்தளங்கள் மில்லியன் கணக்கான பதிவுகளைச் சிதைவின்றி (without corruption) எவ்வாறு சேமிக்கின்றன மற்றும் வன்பொருள் செயலிழந்த பின்னரும் கிளவுட் மென்பொருள் எவ்வாறு தொடர்ந்து இயங்குகிறது என்பதெல்லாம் நிரலாக்கத்தால்தான் சாத்தியம். மிக முக்கியமாக, ஒவ்வொரு AI அமைப்பும் எவ்வாறு உருவாக்கப்படுகிறது, பயிற்சியளிக்கப்படுகிறது மற்றும் பயன்படுத்தப்படுகிறது என்பதற்கும் இதுவே அடிப்படை. இது இல்லாமல், நீங்கள் ஒரு பொறியாளர் அல்ல; நீங்கள் மற்றவர்களின் வேலையை அனுபவிக்கும் ஒரு நுகர்வோர் மட்டுமே.

மறுபுறம், செயற்கை நுண்ணறிவு (Artificial intelligence) என்பது மனிதத் தீர்ப்பு தேவைப்படும் பணிகளை இயந்திரங்கள் செய்ய வைப்பதில் கவனம் செலுத்தும் கணினி அறிவியலின் ஒரு கிளையாகும். இது குறியீடு (code), கணிதம் மற்றும் தரவை ஒருங்கிணைக்கிறது. அந்த "மந்திரம்" உண்மையில் மந்திரம் அல்ல. அது Python-ல் பொதிந்துள்ள புள்ளிவிவரங்கள் (statistics), சிறப்புச் சிப்களில் (specialized chips) இயங்கும் மேட்ரிக்ஸ் பெருக்கல் (matrix multiplication) மற்றும் கவனமாகத் தேர்ந்தெடுக்கப்பட்ட பயிற்சித் தரவுகள் (training sets) ஆகும். அதன் ஆரவாரங்களை நீக்கிப் பார்த்தால், அதன் அடியில் மென்பொருள் பொறியியல் (software engineering) இருப்பதை நீங்கள் காண்பீர்கள்.

இரண்டிற்கும் இடையிலான உண்மையான வேறுபாடு

நிரலாக்கம் உங்களுக்கு பூஜ்ஜியத்திலிருந்து ஒன்றை உருவாக்கும் திறனைத் தருகிறது. AI என்பது அந்த உருவாக்கத்தில் வடிவ அங்கீகாரம் (pattern recognition), கணிப்பு (prediction) அல்லது உருவாக்கம் (generation) ஆகியவற்றைச் சேர்க்க உங்களுக்குச் சிறப்பு நுட்பங்களை வழங்குகிறது. ஒன்று அடித்தளம்; மற்றொன்று அதன் மேல் கட்டப்பட்ட தளம். கான்கிரீட் ஊற்றுவதற்கு முன் நீங்கள் மேல் தளத்தை அமைக்க முடியாது.

உங்களுக்கு நிரலாக்கம் தெரிந்தால், ஒரு திறந்த மூல பெரிய மொழி மாதிரி (open-source large language model) அல்லது டிஃப்யூஷன் மாடலின் (diffusion model) பின்னால் உள்ள மூலக் குறியீட்டை (source code) உங்களால் படிக்க முடியும். ஒரு வலைப்பதிவு (blog post) என்ன சொல்கிறது என்பதை மட்டும் பார்க்காமல், அட்டென்ஷன் மெக்கானிசம்கள் (attention mechanisms) எவ்வாறு செயல்படுத்தப்படுகின்றன என்பதை உங்களால் துல்லியமாகப் பார்க்க முடியும். உங்கள் குறிப்பிட்ட தரவுத்தொகுப்பிற்காக (dataset) ஒரு லாஸ் ஃபங்ஷனை (loss function) மாற்றவோ அல்லது லேர்னிங் ரேட்டை (learning rate) சரிசெய்யவோ தேவைப்படும்போது, உங்களால் AI குறியீட்டைத் திருத்த முடியும். தவிர்க்க முடியாத பிழைகளை உங்களால் சரிசெய்ய முடியும். டென்சர்களுக்கு இடையிலான வடிவப் பொருந்தாமை (shape mismatch between tensors), ஒரு CUDA out-of-memory கிராஷ் அல்லது உங்கள் தரவு முன்செயலாக்க குழாயில் (data preprocessing pipeline) ஏற்படும் ஒரு மறைமுகப் பிழை ஆகியவற்றை ஒரு சாட்போட்டிடம் ப்ராம்ப்ட் செய்வதன் மூலம் தீர்க்க முடியாது. நீங்கள் மாறிகளைக் கண்டறியவும் (trace variables), கிரேடியன்ட்களை ஆய்வு செய்யவும் (inspect gradients) மற்றும் மெமரி ஒதுக்கீடு (memory allocation) பற்றிச் சிந்தித்தும் மட்டுமே தீர்வுகாண முடியும்.

பெரும்பாலான வணிகங்களுக்கு ஒரு பொதுவான API-ன் மேல் இருக்கும் ஒரு சாதாரண wrapper தேவையில்லை. அவர்களுக்கு ஏற்கனவே உள்ள நோயாளி பதிவுகள், நிதிப் பதிவேடுகள் அல்லது உற்பத்தி சென்சார்களுடன் ஒருங்கிணைக்கக்கூடிய குறிப்பிட்ட துறை சார்ந்த கருவிகள் (domain-specific tools) தேவைப்படுகின்றன. கடுமையான தனியுரிமை கட்டுப்பாடுகளைப் பின்பற்றும் மற்றும் ஒரு நாளைக்கு மில்லியன் கணக்கான முறை கட்டண முனையங்களை (paid endpoint) அழைப்பதற்குப் போதிய பட்ஜெட் இல்லாத அமைப்புகள் அவர்களுக்குத் தேவைப்படுகின்றன. அதை உருவாக்க அசல் குறியீட்டை (original code) எழுத வேண்டியது அவசியம்.

Python உடன் தொடங்குங்கள்

நீங்கள் AI துறையில் பணியாற்ற விரும்பினால், Python உடன் தொடங்குங்கள். அதன் தொடரியல் (syntax) கிட்டத்தட்ட சாதாரண ஆங்கிலத்தைப் போலவே இருப்பதால், ஆரம்பநிலையினருக்கு இது எளிதாக இருக்கும். அந்த எளிமையை அதன் பலவீனம் என்று தவறாக நினைக்க வேண்டாம். நவீன இயந்திரக் கற்றலின் (machine learning) கனரக இயந்திரங்களை Python இயக்கி வருகிறது. TensorFlow, PyTorch, scikit-learn மற்றும் Hugging Face Transformers ஆகிய அனைத்தும் இதன் அடிப்படையிலேயே கட்டமைக்கப்பட்டுள்ளன. நீங்கள் Python கற்கும்போது, ஒரு விளையாட்டு மொழியைக் கற்கவில்லை; AI ஆராய்ச்சியாளர்கள் இந்தத் துறையை முன்னோக்கி நகர்த்தப் பயன்படுத்தும் அதே கருவியைக் கற்கிறீர்கள்.

ஒரு நடைமுறைத் திட்டம்

உங்கள் கற்றலை ஒரு விருந்து போலத் தேர்ந்தெடுப்பதாக இல்லாமல், ஒரு வரிசைமுறையாகக் கருதுங்கள். முன்னேற்றத்தை உருவாக்கும் சரியான வரிசைமுறை இதோ:

Python நிரலாக்கம். மாறிகள் (variables), லூப்கள் (loops), செயல்பாடுகள் (functions), வகுப்புகள் (classes) மற்றும் கோப்பு கையாளுதல் (file handling) ஆகியவற்றில் தேர்ச்சி பெறுங்கள். JSON லாக்ஸை பகுப்பாய்வு செய்யும் அல்லது அடிப்படை வலைப்பக்கங்களை ஸ்கிராப் (scrape) செய்யும் ஸ்கிரிப்ட்களை எழுதுங்கள். உங்களால் ஒரு பட்டியலை வரிசைப்படுத்தவோ அல்லது பிழைகளைச் சரியாகக் கையாளவோ (handle exceptions) முடியாவிட்டால், நீங்கள் கிரேடியன்ட் டிசென்ட் (gradient descent) கற்கத் தயாராக இல்லை என்று அர்த்தம்.

தரவு கட்டமைப்புகள் மற்றும் அல்காரிதம்கள் (Data structures and algorithms). Arrays, hash maps, trees மற்றும் graphs ஆகியவை வெறும் நேர்காணல் கேள்விகள் மட்டுமல்ல. அவை நீங்கள் தரவுகளுக்கு இடையிலான உறவுகளைச் சேமிக்கவும், அவற்றைச் சிறப்பாகத் தேடவும் பயன்படும் வழிகளாகும். ஒரு நவீன பரிந்துரை இயந்திரத்தின் (recommendation engine) அடிப்படை, ஒரு புத்திசாலித்தனமான கிராஃப் டிராவர்சல் பிரச்சனை (graph traversal problem) ஆகும்.

SQL மற்றும் தரவுத்தளங்கள். மாதிரிகளுக்குத் தூய்மையான தரவு தேவை. நீங்கள் PostgreSQL தரவுத்தளங்களிலிருந்து பயிற்சித் தொகுப்புகளைப் பெறுவீர்கள், அம்சங்களை (features) ஒருங்கிணைக்க அட்டவணைகளை இணைப்பீர்கள், மேலும் பிற்கால நுணுக்கமான மாற்றங்களுக்காக (fine-tuning) பயனர் தொடர்புகளைச் சேமிப்பீர்கள். இந்தத் படிநிலையைத் தவிர்ப்பது என்பது, தரவை நீங்கள் கட்டுப்படுத்தும் ஒரு கட்டமைக்கப்பட்ட சொத்தாகக் கருதாமல், வெறும் மாயத் தூசியாகக் கருதுவதற்குச் சமம்.

கணிதம்: புள்ளிவிவரம் மற்றும் நிகழ்தகவு. AI நிச்சயமற்ற தன்மைகளுக்கு இடையே கணிப்புகளைச் செய்கிறது. நீங்கள் பரவல்கள் (distributions), நிபந்தனை நிகழ்தகவு (conditional probability) மற்றும் கருதுகோள் சோதனை (hypothesis testing) ஆகியவற்றைப் புரிந்துகொள்ள வேண்டும். இது இல்லாமல், உங்கள் மாதிரி உண்மையாகக் கற்றுக்கொள்கிறதா அல்லது வெறும் இரைச்சலை (noise) மட்டும் மனப்பாடம் செய்கிறதா என்பதை உங்களால் மதிப்பிட முடியாது.

இயந்திரக் கற்றல் அடிப்படைகள் (Machine learning basics). மேற்பார்வையிடப்பட்ட (supervised) மற்றும் மேற்பார்வையிடப்படாத (unsupervised) கற்றலைப் பற்றிப் பயிலுங்கள். ஏற்கனவே உருவாக்கப்பட்ட நூலகங்களைத் (libraries) தொடங்குவதற்கு முன், NumPy-ஐ மட்டுமே பயன்படுத்தி ஒரு நேரியல் பின்னடைவு மாதிரியை (linear regression model) ஆரம்பத்திலிருந்து உருவாக்குங்கள். குறியீடு (code) மூலம் கணிதத்தை உணருங்கள்.

ஆழ்ந்த கற்றல் (Deep learning). நரம்பியல் வலைப்பின்னல்களுக்கு (neural networks) மாறுங்கள். PyTorch தானியங்கி வகைக்கெழுவை (automatic differentiation) கையாளுவதற்கு முன், backpropagation முறையை நீங்களாகவே கைமுறையாகப் புரிந்துகொள்ளுங்கள். உள்ளே என்ன நடக்கிறது என்பதைத் தெரிந்து கொள்ளுங்கள்.

உருவாக்கத் திறன் கொண்ட AI (Generative AI). transformers, attention mechanisms மற்றும் பெரிய மொழி மாதிரி (large language model) கட்டமைப்புகளைப் பற்றிப் பயிலுங்கள். இப்போது அந்தப் பிரம்மாண்டமான கருவிகள் உங்களுக்குப் புரியும், ஏனெனில் அவற்றின் செயல்பாடுகளை உங்களால் காண முடியும்.

AI திட்டங்கள். ஒரு முழுமையான (end-to-end) செயல்முறையை உருவாக்குங்கள். தரவைச் சேகரியுங்கள், அதைத் தூய்மைப்படுத்துங்கள், ஒரு மாதிரியைப் பயிற்றுவியுங்கள், அதை ஒரு REST API மூலம் வெளிப்படுத்துங்கள், மேலும் மற்றவர்கள் பயன்படுத்துவதற்காக அதைச் செயல்படுத்திடுங்கள் (deploy). இங்கேயே கோட்பாடு பொறியியலாக மாறுகிறது.

நிரலாக்கமும் AI-யும் கூட்டாளிகள்

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

மாதக்கணக்கில் நேரத்தை வீணடிக்கும் தவறுகள்

அடிப்படைகளைத் தவிர்ப்பது 'நகலெடுத்து ஒட்டுதல்' (copy-paste) போன்ற மேம்பாட்டிற்கு வழிவகுக்கும். நீங்கள் ஒரு ஆன்லைன் மன்றத்திலிருந்து ஒரு ஸ்கிரிப்டை எடுத்து, கோப்புப் பாதையை (file path) மாற்றி, அது வேலை செய்யும் என்று நம்புகிறீர்கள். அது முறியும் போது, ஏன் முறியடிக்கிறது என்பதற்கான புரிதல் உங்களிடம் இருக்காது. AI கருவிகளை மட்டுமே நம்பியிருப்பது உங்களை ஒரு உருவாக்குநராக (builder) மாற்றாமல், ஒரு இயக்குபவராக (operator) மாற்றிவிடும். உங்களால் சுருக்கங்கள் அல்லது படங்களைக் கேட்க முடியும், ஆனால் மற்றொரு நிறுவனம் முழுமையாகக் கட்டுப்படுத்தும் ஒரு தயாரிப்பை உங்களால் சந்தைக்குக் கொண்டுவர முடியாது. கணிதத்தைப் புறக்கணிப்பது உங்களைச் சிறை வைக்கும். நீங்கள் அதிர்ஷ்டமான முடிவைத் தேடி, hyperparameters-களைத் தன்னிச்சையாக மாற்றிக்கொண்டே இருப்பீர்கள், மேலும் உங்கள் வகைப்படுத்தி (classifier) ஏன் விளிம்புநிலைச் சூழல்களில் (edge cases) தோல்வியடைகிறது என்பதைப் புரிந்துகொள்ள மாட்டீர்கள். அனைத்தையும் ஒரே நேரத்தில் கற்க முயற்சிப்பது உங்கள் கவனத்தைச் சிதறடிக்கும். தொடக்கத்தில் ஆழமான அறிவு பரந்த அறிவை விடச் சிறந்தது. ஒரு கருத்தைத் தேர்ந்தெடுத்து, அது உங்களுக்குப் புரியும் வரை அதிலேயே கவனம் செலுத்துங்கள்.

சரியான வரிசையில் திட்டங்களை உருவாக்குங்கள்

சிறிய, உறுதியான பயன்பாடுகளுடன் தொடங்குங்கள். ஒரு வரைபட இடைமுகத்துடன் (graphical interface) கூடிய கால்குலேட்டரை உருவாக்குங்கள். உள்ளூர் கோப்பிற்குத் தரவைச் சேமிக்கும் ஒரு to-do செயலியை உருவாக்குங்கள். ஆயிரக்கணக்கான புகைப்படங்களை அவற்றின் உருவாக்கப்பட்ட தேதிகளின் அடிப்படையில் மறுபெயரிடும் ஒரு ஸ்கிரிப்டை எழுதுங்கள். இந்தப் பயிற்சிகள் நிலைமையை (state) எவ்வாறு நிர்வகிப்பது, பயனர் உள்ளீட்டைக் கையாளுவது மற்றும் தர்க்கத்தை (logic) பிழைதிருத்தம் (debug) செய்வது ஆகியவற்றைக் கற்றுக்கொடுக்கும்.

அதன் பின்னரே நீங்கள் AI சார்ந்த வேலைகளை முயற்சி செய்ய வேண்டும். Convolutional Neural Network பயன்படுத்தி பூனைகள் மற்றும் நாய்களின் புகைப்படங்களைப் பிரிக்க ஒரு பட வகைப்படுத்தியைப் (image classifier) பயிற்றுவியுங்கள். உரையாடல் சீராக இருக்க, ஒரு memory buffer உடன் நேரடி API அழைப்புகளைப் பயன்படுத்தும் ஒரு எளிய சாட்போட்டை (chatbot) உருவாக்குங்கள். குறியீட்டை எவ்வாறு கட்டமைப்பது, பிழைகளைக் கையாளுவது மற்றும் ஆவணங்களைப் (documentation) படிப்பது ஆகியவற்றை நீங்கள் ஏற்கனவே அறிந்திருப்பதால், இந்த மாற்றம் இயல்பாகத் தோன்றும்.

உண்மையான பாடம்

முதலில் தர்க்கத்தில் (logic) தேர்ச்சி பெறுங்கள். கணினிகளுக்கு மனிதர்களைப் போலச் சிந்திக்கக் கற்பிப்பதற்கு முன், அவை எவ்வாறு சிந்திக்கின்றன என்பதைக் கற்றுக்கொள்ளுங்கள். நிரலாக்கத்தில் ஒரு வலுவான அடித்தளம், AI-யை ஒரு 'கருப்புப் பெட்டியிலிருந்து' (black box) நீங்கள் வடிவமைக்கக்கூடிய, விமர்சிக்கக்கூடிய மற்றும் மேம்படுத்தக்கூடிய ஒரு கருவியாக மாற்றுகிறது. அங்கேயே நிலையான வாழ்க்கைப் பாதைகள் கட்டமைக்கப்படுகின்றன. முழுமையான தொழில்நுட்பத் தொகுப்பை (full stack) புரிந்துகொண்ட உருவாக்குநர்கள், வெறும் prompt கொடுக்கத் தெரிந்த இயக்குபவர்களை விட எப்போதும் நிலைத்து நிற்பார்கள்.

மூலம்: Programming vs AI: Which Skill Should You Learn First?

சமூகத்தில் இணையுங்கள்: GyaanSetu AI on Telegram