Twio ஏன் pgvector-க்கு பதிலாக Vertex AI Search-ஐத் தேர்ந்தெடுத்தது
Twio-வில் எங்களது முதல் RAG அமைப்பை pgvector பயன்படுத்தி உருவாக்கினோம். அது ஒரு விரைவான தேர்வாக இருந்தது. எங்களது தரவுகள் PostgreSQL-இல் இருந்தன. அங்கு embeddings சேர்ப்பது எளிதாக இருந்தது.
நாங்கள் விரிவாக்கம் செய்யும்போது, எங்களது பிரச்சனை மாறியது. வெக்டர்களை (vectors) எப்படிச் சேமிப்பது என்று நாங்கள் கேட்கவில்லை. மாறாக, ஆயிரக்கணக்கான ஒழுங்கற்ற புரோக்கர் ஆவணங்கள், மின்னஞ்சல்கள் மற்றும் இணைப்புகளை (attachments) எப்படிப் புரிந்துகொள்வது என்று கேட்டோம்.
Twio கடன் புரோக்கர்களுக்குச் சேவை செய்கிறது. ஒரு தனிப்பட்ட கேஸில் (case) இவை அடங்கும்: • மின்னஞ்சல் தொடர்கள் (Email threads) • சம்பளச் சீட்டுகள் மற்றும் வங்கி அறிக்கைகள் • கடன் படிவங்கள் மற்றும் கடன் வழங்குநரின் விதிகள் • கையெழுத்துப் பிரதிகள்
AI பின்வரும் கேள்விகளுக்குப் பதிலளிக்க வேண்டும்: • எந்த மின்னஞ்சலில் விடுபட்டத் தேவை குறிப்பிடப்பட்டுள்ளது? • இந்த வங்கி அறிக்கை வருமானத்தை உறுதிப்படுத்துகிறதா? • இந்தக் கடன் வாங்குபவருக்கான அனைத்து ஆவணங்களையும் சுருக்கிக் கூறவும்.
மீட்டெடுப்பு (retrieval) பலவீனமாக இருந்தால், பதிலும் பலவீனமாக இருக்கும். தரவுப் பகுப்பாய்வு (parsing) தவறாக இருந்தால், மாடல் தவறான ஆதாரங்களைக் காணும். RAG என்பது எங்களது தயாரிப்பின் நினைவகம் (memory) ஆகும்.
எங்களது முதல் பதிப்பிற்கு pgvector நன்றாகச் செயல்பட்டது, ஏனெனில்: • புதிய உள்கட்டமைப்பு தேவையில்லை. • குறைந்த செலவு. • எளிதான SQL debugging செய்ய முடிந்தது. • விரைவாக வெளியிட முடிந்தது.
ஆனால் pgvector என்பது ஒரு RAG pipeline-ன் ஒரு பகுதி மட்டுமே. மற்றவற்றை நாங்கள் செய்ய வேண்டியிருந்தது: • இணைப்புகளைப் பதிவிறக்குதல். • OCR மூலம் PDF மற்றும் ஸ்கேன் செய்யப்பட்ட ஆவணங்களிலிருந்து உரையைப் பிரித்தெடுத்தல். • ஆவணங்களைச் சிறு துண்டுகளாகப் பிரித்து (chunking) embeddings உருவாக்குதல். • metadata மற்றும் retrieval queries-களை வடிவமைத்தல். • indexes மற்றும் ranking-ஐச் சரிசெய்தல். • database சுமையைக் கண்காணித்தல்.
தெளிவான PDF எளிதானது. ஸ்கேன் செய்யப்பட்ட வங்கி அறிக்கை கடினமானது. ஐந்து இணைப்புகள் மற்றும் அட்டவணைகளைக் கொண்ட மின்னஞ்சல் இன்னும் கடினமானது. pgvector-ஐப் பயன்படுத்தும்போது, அந்த pipeline-ல் உள்ள ஒவ்வொரு பலவீனத்தையும் நாங்கள் சரிசெய்ய வேண்டியிருந்தது.
செலவு எங்களது cloud கட்டணத்திலிருந்து எங்களது பொறியியல் நேரத்திற்கு (engineering time) மாறியது. பொறியியல் நேரம் என்பது எங்களது மிகவும் வரையறுக்கப்பட்ட வளமாகும்.
ஒப்பீடு: • ஸ்கேன் செய்யப்பட்ட ஆவணங்கள்: pgvector மூலம் நாங்கள் OCR-ஐ உருவாக்குகிறோம். Vertex பெரும்பாலான ஆவணச் செயலாக்கங்களைக் கையாள்கிறது. • ஆவணக் கேள்விகள்: pgvector மூலம் நாங்கள் queries மற்றும் ranking-ஐ வடிவமைக்கிறோம். Vertex நிர்வகிக்கப்பட்ட தேடலை (managed search) வழங்குகிறது. • இணைப்புகளின் அதிகரிப்பு: pgvector மூலம் Postgres சுமையைத் தாங்குகிறது. Vertex அந்தச் சுமையை எங்களது முதன்மை தரவுத்தளத்திற்கு வெளியே வைத்திருக்கிறது. • செலவு: pgvector-க்குச் சேவைச் செலவு குறைவு. Vertex-க்கு பொறியியல் மற்றும் பராமரிப்புச் செலவு குறைவு.
ஒரு database extension ஆக pgvector மலிவானது. ஆனால் ஒரு தயாரிப்பு முடிவாக (product decision) Vertex மலிவானது.
Vertex எங்களுக்கு நான்கு வழிகளில் உதவுகிறது: • நிர்வகிக்கக் குறைவான உள்கட்டமைப்பு. • பராமரிக்கக் குறைவான ஆவணச் செயலாக்க தர்க்கங்கள் (logic). • Postgres வணிகப் பரிவர்த்தனைகளில் கவனம் செலுத்துகிறது. • எங்களது ஆவணங்களின் அளவு அதிகரிக்கும் போது இது விரிவடைகிறது.
Vertex இலவசமானது அல்ல. ஆனால் எங்களது சொந்த OCR, indexing மற்றும் ranking-ஐ உருவாக்குவதற்கும் ஒரு செலவு உண்டு. அந்தச் செலவை நாங்கள் பொறியாளர்களின் வார கால உழைப்பால் (engineer weeks) ஈடுகட்டுகிறோம்.
பின்வரும் சூழல்களில் pgvector-ஐப் பயன்படுத்தவும்: • உங்கள் தரவின் அளவு மிதமானது என்றால். • உங்கள் ஆவணங்கள் ஏற்கனவே தெளிவான உரையாக இருந்தால். • உங்களுக்குத் துல்லியமான SQL filtering தேவைப்பட்டால். • விரைவான, குறைந்த செலவிலான முதல் பதிவை நீங்கள் விரும்பினால்.
எங்களது பாடம் எளிமையானது: நீங்கள் மிக விரைவாகக் கற்க உதவும் கருவியுடன் தொடங்குங்கள். நீங்கள் மிகச் சிறப்பாகச் செயல்பட உதவும் கருவிக்கு மாறுங்கள்.
ஆதாரம்: https://dev.to/twio_ai/why-twio-chose-vertex-ai-search-over-pgvector-for-production-rag-51jm
விருப்பமான கற்றல் சமூகம்: https://t.me/GyaanSetuAi