ফেজ ১: ডকুমেন্ট ইনজেশন
বেশিরভাগ RAG সিস্টেম শুরু হওয়ার আগেই ব্যর্থ হয়।
আপনি মনে করেন একটি RAG সিস্টেম তৈরি করা সহজ। একজন ব্যবহারকারী একটি PDF আপলোড করেন, আপনি এমবেডিং (embeddings) তৈরি করেন এবং আপনি উত্তর পেয়ে যান।
এটি একটি ভুল।
আপলোড বাটন এবং ভেক্টর ডেটাবেসের মাঝে ১৫টি গুরুত্বপূর্ণ ধাপ রয়েছে। আপনি যদি একটি ধাপও বাদ দেন, তবে আপনার সিস্টেম ভুল উত্তর দেবে অথবা আপনার টাকা অপচয় করবে।
ডকুমেন্ট ইনজেশনের জন্য প্রোডাকশন-গ্রেড রোডম্যাপ নিচে দেওয়া হলো:
• ফাইল হ্যাশিং (File Hashing): কখনোই ফাইলের নাম হ্যাশ করবেন না। ফাইলের আসল কন্টেন্ট হ্যাশ করুন। এটি নিশ্চিত করে যে কেউ ফাইলের নাম পরিবর্তন করলেও আপনার সিস্টেম যেন একই ফাইল দুবার প্রসেস না করে।
• স্মার্ট পার্সিং (Smart Parsing): কাজের ধরন অনুযায়ী সঠিক টুল ব্যবহার করুন।
- সাধারণ টেক্সট: pdf-parse (ফ্রি)
- মিশ্র কন্টেন্ট: Unstructured (ভারসাম্যপূর্ণ)
- জটিল টেবিল/লেআউট: LlamaParse (উচ্চ মানের)
- এন্টারপ্রাইজ ফর্ম: Azure Document Intelligence (স্ক্যানের জন্য সেরা)
• টেক্সট ক্লিনিং (Text Cleaning): অপ্রয়োজনীয় অংশ সরিয়ে ফেলুন। হেডার, ফুটার, ওয়াটারমার্ক এবং পেজ নম্বর নয়েজ (noise) তৈরি করে। আপনি যদি প্রতিটি পেজে "Confidential" এমবেড করেন, তবে আপনার AI মনে করবে প্রতিটি উত্তরই একটি গোপনীয় বিষয়।
• মেটাডেটা এক্সট্রাকশন (Metadata Extraction): বিভাগ, সেকশন বা ভার্সনের মতো কনটেক্সট যোগ করুন। এটি আপনার সিস্টেমকে সবকিছু সার্চ না করেই সঠিক ডকুমেন্ট খুঁজে পেতে সাহায্য করে।
• স্মার্ট চাঙ্কিং (Smart Chunking): এটি সবচেয়ে গুরুত্বপূর্ণ অংশ।
- সাইজ: ১০০০ থেকে ১৫০০ টোকেনের লক্ষ্য রাখুন।
- ওভারল্যাপ: কনটেক্সট বজায় রাখতে ২০০ টোকেন ওভারল্যাপ ব্যবহার করুন।
- বাউন্ডারি: কখনোই একটি বাক্য মাঝপথে ভেঙে ফেলবেন না।
• চাঙ্ক হ্যাশিং এবং ডিডুপ্লিকেশন (Chunk Hashing and Deduplication): প্রতিটি চাঙ্ক হ্যাশ করুন। যখন কোনো ফাইল পরিবর্তিত হয়, তখন নতুন হ্যাশগুলোর সাথে পুরনো হ্যাশগুলো তুলনা করুন।
• ইনক্রিমেন্টাল ইনজেশন (Incremental Ingestion): সবকিছু পুনরায় এমবেড করবেন না। যদি ১০০০ পৃষ্ঠার একটি ডকুমেন্টের মাত্র একটি পৃষ্ঠা পরিবর্তিত হয়, তবে শুধুমাত্র সেই নতুন চাঙ্কটি এমবেড করুন। এটি আপনার API খরচে বিশাল পরিমাণ টাকা বাঁচাবে।
একটি শখের প্রজেক্ট এবং একটি প্রোডাকশন সিস্টেমের মধ্যে পার্থক্য হলো এমবেডিং ধাপের আগে আপনি কতটা কাজ করেন।
একটি সাধারণ (naive) সিস্টেম প্রতিবার সবকিছু পুনরায় এমবেড করে। একটি স্মার্ট সিস্টেম শুধুমাত্র পরিবর্তিত অংশগুলো প্রসেস করে।
এলোমেলো কিছু তৈরি করা বন্ধ করুন। একটি মজবুত ভিত্তি তৈরি করুন।
Source: https://dev.to/surajrkhonde/phase-1-document-ingestion-the-hidden-complexity-before-embeddings-4d32
Optional learning community: https://t.me/GyaanSetuAi
