எனக்கு எதுவுமே புரியாத நிலையிலிருந்து ஒரு RAG App-ஐ உருவாக்கும் நிலை வரை
நேற்று எனது சொந்த NLP குறிப்புகளின் 31 பக்கங்களைப் படிப்பதிலேயே நேரத்தைச் செலவிட்டேன்.
எனக்கு எதுவுமே புரியவில்லை.
பிரச்சனை என்னிடம் தான் என்று நான் நினைத்தேன். ஆனால் அது இல்லை. பிரச்சனை எனது முறையில் இருந்தது. குறிப்புகளைப் படிப்பது என்பது கற்றல் அல்ல. என்னிடம் ஒரு நிபுணருக்கான குறிப்புகள் இருந்தன, ஒரு தொடக்கநிலை வீரருக்கானவை அல்ல.
நான் எனது அணுகுமுறையை மாற்றினேன். படிப்பதை நிறுத்தினேன். அதற்குப் பதிலாக, கேள்விகளைக் கேட்டேன். எளிய உதாரணங்களைப் பயன்படுத்தினேன். ஒரு கருத்தைப் புரிந்து கொள்ளும் வரை தொழில்நுட்பச் சொற்களைப் பயன்படுத்துவதைத் தவிர்த்தேன்.
அன்றைய தினத்தின் முடிவில், நான் ஒரு RAG app-ஐ உருவாக்கினேன். NLP-ன் நான்கு தூண்களை நான் எவ்வாறு கற்றேன் என்பது இதோ.
- Bag of Words கணினிகளுக்கு கணிதம் மட்டுமே புரியும். உரையை (text) செயலாக்க, நீங்கள் சொற்களை எண்களாக மாற்ற வேண்டும்.
மின்னஞ்சல்களை ஸ்பேம் (spam) அல்லது ஸ்பேம் அல்லாதவை எனப் பிரிக்க விரும்புகிறீர்கள் என்று கற்பனை செய்து கொள்ளுங்கள். உங்கள் மின்னஞ்சல்களில் உள்ள ஒவ்வொரு சொல்லையும் நீங்கள் பட்டியலிடுகிறீர்கள். ஒவ்வொரு சொல்லும் எத்தனை முறை வருகிறது என்பதைக் கணக்கிடுகிறீர்கள். இது ஒரு மின்னஞ்சலை எண்களின் வரிசையாக மாற்றுகிறது.
இதில் உள்ள குறை? இது சொற்களின் வரிசையைப் புறக்கணிக்கிறது. "Dog bites man" மற்றும் "man bites dog" ஆகிய இரண்டும் இந்த முறைக்கு ஒரே மாதிரியாகத் தோன்றும்.
- TF-IDF Bag of Words ஒவ்வொரு சொல்லையும் சமமாகவே கையாள்கிறது. ஆனால் "the" என்ற சொல் "viagra" அளவுக்கு முக்கியமானது அல்ல.
TF-IDF இரண்டு விதிகளைப் பயன்படுத்துகிறது:
- Term Frequency (TF): ஒரு மின்னஞ்சலில் ஒரு சொல் எவ்வளவு அடிக்கடி தோன்றுகிறது.
- Inverse Document Frequency (IDF): அனைத்து மின்னஞ்சல்களிலும் ஒரு சொல் எவ்வளவு அரிதாக உள்ளது.
இந்தக் கணிதம் "the" போன்ற தேவையற்ற சொற்களின் தாக்கத்தைக் குறைத்து, முக்கியமான மற்றும் அரிதான சொற்களை முன்னிலைப்படுத்துகிறது.
- Embeddings Bag of Words "money" மற்றும் "cash" ஆகிய இரண்டும் தொடர்பற்றவை என்று நினைக்கிறது. Embeddings இதைச் சரிசெய்கிறது.
ஒரு பிரம்மாண்டமான வரைபடத்தை நினைத்துப் பாருங்கள். அந்த வரைபடத்தில் ஒவ்வொரு சொல்லும் ஒரு புள்ளி. ஒரே மாதிரியான அர்த்தம் கொண்ட சொற்கள் அருகருகே இருக்கும். "Money" மற்றும் "cash" ஆகியவை அண்டை வீட்டார் போல அருகில் இருக்கும். "Banana" வெகு தொலைவில் இருக்கும்.
ஒரு சொல் எந்தச் சூழலில் பயன்படுத்தப்படுகிறது என்பதைப் பார்த்து கணினி இந்த இடங்களைக் கற்றுக்கொள்கிறது. "money" மற்றும் "cash" ஆகிய இரண்டும் "bank" மற்றும் "pay" ஆகியவற்றிற்கு அருகில் தோன்றினால், கணினி அவற்றை ஒன்றுக்கொன்று அருகில் வைக்கிறது.
- RAG (Retrieval-Augmented Generation) இவையனைத்தும் இங்கே ஒன்றிணைகின்றன.
உங்கள் கோப்புகளில் உள்ள ஒவ்வொரு குறிப்பும் வரைபடத்தில் ஒரு புள்ளி என்றால், மிக அருகிலுள்ள புள்ளிகளைக் கண்டறிவதன் மூலம் நீங்கள் பதில்களைக் கண்டறியலாம்.
RAG செயல்முறை:
- ஒரு கேள்வியை ஒரு புள்ளியாக மாற்றவும்.
- வரைபடத்தில் மிக அருகிலுள்ள குறிப்பு-புள்ளிகளைக் கண்டறியவும்.
- அந்த குறிப்புகளை ஒரு AI-யிடம் கொடுக்கவும்.
- அந்த குறிப்புகளை மட்டும் பயன்படுத்தி பதிலளிக்குமாறு AI-யிடம் கூறவும்.
இது AI யூகங்களைச் செய்வதையோ அல்லது பொய் சொல்வதையோ தடுக்கிறது. இது உங்கள் உண்மையான தரவுகளைப் பயன்படுத்த AI-ஐக் கட்டாயப்படுத்துகிறது.
இந்த வழிமுறைகளைப் பயன்படுத்தி எனது app, Synapse-ஐ உருவாக்கினேன். ஒரே நாளில் பூஜ்ஜியத்திலிருந்து ஒரு செயல்படும் அமைப்பை நோக்கி நான் முன்னேறினேன்.
பாடம்: வாசிப்பதை நிறுத்துங்கள். கேள்வி கேட்கத் தொடங்குங்கள். ஒரு கருத்தை எளிமையான ஒப்புமையைக் கொண்டு விளக்க முடியாவிட்டால், நீங்கள் அதை இன்னும் முழுமையாகப் புரிந்துகொள்ளவில்லை என்று அர்த்தம். உங்களுக்குப் புரிகிறது என்பதை நிரூபிக்க ஏதேனும் ஒன்றை உருவாக்குங்கள்.
ஆதாரம்: https://dev.to/sabimantock/from-i-understood-nothing-to-building-a-rag-app-4033
விருப்பத்தேர்வு கற்றல் சமூகம்: https://t.me/GyaanSetuAi