𝗪𝗵𝘆 𝗧𝘄𝗶𝗼 𝗖𝗵𝗼𝘀𝗲 𝗩𝗲𝗿𝘁𝗲𝘅 𝗔𝗜 𝗦𝗲𝗮𝗿𝗰𝗵 𝗼𝘃𝗲𝗿 𝗽𝗴𝘃𝗲𝗰𝘁𝗼𝗿
আমরা Twio-তে আমাদের প্রথম RAG সিস্টেমটি pgvector ব্যবহার করে তৈরি করেছিলাম। এটি ছিল একটি দ্রুত সিদ্ধান্ত। আমাদের ডেটা PostgreSQL-এ ছিল। সেখানে embeddings যোগ করা সহজ ছিল।
যখন আমরা স্কেল করতে শুরু করলাম, আমাদের সমস্যা বদলে গেল। আমরা আর vectors কীভাবে স্টোর করতে হয় তা নিয়ে ভাবিনি। আমরা ভাবলাম কীভাবে হাজার হাজার অগোছালো ব্রোকার ডকুমেন্ট, ইমেল এবং অ্যাটাচমেন্ট বুঝতে হয়।
Twio লোন ব্রোকারদের সেবা দেয়। একটি সিঙ্গেল কেসে থাকে: • ইমেল থ্রেড • পে-স্লিপ এবং ব্যাংক স্টেটমেন্ট • লোন ফর্ম এবং লেন্ডার রুলস • হাতে লেখা নোট
AI-কে এই ধরণের প্রশ্নের উত্তর দিতে হয়: • কোন ইমেলে অনুপস্থিত রিকোয়ারমেন্টের কথা উল্লেখ করা হয়েছিল? • এই ব্যাংক স্টেটমেন্টটি কি আয় সমর্থন করে? • এই ঋণগ্রহীতার সমস্ত ডকুমেন্টের সারসংক্ষেপ করুন।
যদি retrieval দুর্বল হয়, তবে উত্তরও দুর্বল হবে। যদি parsing ভুল হয়, তবে মডেল ভুল প্রমাণ দেখবে। RAG হলো আমাদের প্রোডাক্টের মেমরি।
আমাদের প্রথম ভার্সনের জন্য pgvector ভালো কাজ করেছিল কারণ: • এর জন্য কোনো নতুন ইনফ্রাস্ট্রাকচার প্রয়োজন ছিল না। • এর খরচ ছিল কম। • এটি সহজে SQL debugging করতে সাহায্য করত। • এটি দ্রুত রিলিজ করা সম্ভব ছিল।
কিন্তু pgvector একটি RAG পাইপলাইনের মাত্র একটি অংশ। বাকি কাজগুলো আমাদের ওপর ছেড়ে দিয়েছিল: • অ্যাটাচমেন্ট ডাউনলোড করা। • OCR-এর মাধ্যমে PDF এবং স্ক্যান থেকে টেক্সট এক্সট্র্যাক্ট করা। • ডকুমেন্ট চাঙ্কিং করা এবং embeddings তৈরি করা। • মেটাডেটা এবং retrieval কুয়েরি ডিজাইন করা। • ইনডেক্স এবং র্যাঙ্কিং টিউন করা। • ডাটাবেস লোড মনিটর করা।
একটি পরিষ্কার PDF সহজ। একটি স্ক্যান করা ব্যাংক স্টেটমেন্ট কঠিন। পাঁচটি অ্যাটাচমেন্ট এবং টেবিলসহ একটি ইমেল আরও কঠিন। pgvector-এর ক্ষেত্রে, আমাদের সেই পাইপলাইনের প্রতিটি দুর্বলতা নিজে ঠিক করতে হতো।
খরচ আমাদের ক্লাউড বিল থেকে সরে গিয়ে আমাদের ইঞ্জিনিয়ারিং টাইমে চলে এল। ইঞ্জিনিয়ারিং টাইম ছিল আমাদের সবচেয়ে সীমিত সম্পদ।
Comparison: • Scanned documents: pgvector দিয়ে আমাদের OCR তৈরি করতে হয়। Vertex বেশিরভাগ ডকুমেন্ট প্রসেসিং নিজেই সামলায়। • Document questions: pgvector দিয়ে আমাদের কুয়েরি এবং র্যাঙ্কিং ডিজাইন করতে হয়। Vertex ম্যানেজড সার্চ সুবিধা দেয়। • Attachment bursts: pgvector-এর সাথে Postgres-এর ওপর পুরো লোড পড়ে। Vertex এই লোড আমাদের মূল ডাটাবেসের বাইরে রাখে। • Cost: pgvector-এর সার্ভিস খরচ কম। Vertex-এর ইঞ্জিনিয়ারিং এবং মেইনটেন্যান্স খরচ কম।
একটি ডাটাবেস এক্সটেনশন হিসেবে pgvector সস্তা। কিন্তু একটি প্রোডাক্ট ডিসিশন হিসেবে Vertex বেশি সাশ্রয়ী।
Vertex আমাদের চারটি উপায়ে সাহায্য করে: • ম্যানেজ করার জন্য কম ইনফ্রাস্ট্রাকচার। • মেইনটেইন করার জন্য কম ডকুমেন্ট-প্রসেসিং লজিক। • Postgres বিজনেস ট্রানজ্যাকশনে মনোনিবেশ করতে পারে। • আমাদের ডকুমেন্টের পরিমাণ বাড়ার সাথে সাথে এটি স্কেল করতে পারে।
Vertex ফ্রি নয়। কিন্তু আমাদের নিজস্ব OCR, ইনডেক্সিং এবং র্যাঙ্কিং তৈরি করারও একটি খরচ আছে। আমরা সেই খরচটি ইঞ্জিনিয়ারদের কাজের সময় (engineer weeks) দিয়ে মেটাই।
pgvector ব্যবহার করুন যদি: • আপনার ডেটার পরিমাণ মাঝারি হয়। • আপনার ডকুমেন্টগুলো ইতিমধ্যে পরিষ্কার টেক্সট ফরম্যাটে থাকে। • আপনার কড়া SQL ফিল্টারিং প্রয়োজন হয়। • আপনি দ্রুত এবং কম খরচে একটি প্রথম ভার্সন তৈরি করতে চান।
আমাদের শিক্ষাটি সহজ: যে টুলটি আপনাকে দ্রুত শিখতে সাহায্য করে তা দিয়ে শুরু করুন। তারপর সেই টুলে চলে যান যা আপনাকে সবচেয়ে ভালোভাবে কাজ করতে সাহায্য করে।
Source: https://dev.to/twio_ai/why-twio-chose-vertex-ai-search-over-pgvector-for-production-rag-51jm
Optional learning community: https://t.me/GyaanSetuAi