AI সিরিজের ইন্টারভিউ প্রশ্ন 11: RAG কীভাবে টিউন করবেন?
RAG-এর টিউনিং একক পর্যায়ের সমন্বয় নয়, বরং একটি সম্পূর্ণ পাইপলাইন অপ্টিমাইজেশন প্রক্রিয়া। নীচে আমি ডেটা ইনডেক্সিং সাইড, রিট্রিভাল সাইড, জেনারেশন সাইড এবং ইভালুয়েশন সাইড – এই চারটি মাত্রা থেকে পদ্ধতিগত টিউনিং কৌশল দিচ্ছি, সাথে ইন্টারভিউতে উল্লেখযোগ্য বাস্তব অভিজ্ঞতা সংযুক্ত করছি।
১. ডেটা ইনডেক্সিং সাইড টিউনিং ("জ্ঞানভান্ডার" গুণমান উন্নতকরণ)
এটি সবচেয়ে উপেক্ষিত কিন্তু দ্রুত কার্যকরী স্থান।
| টিউনিং পয়েন্ট | সমস্যা | নির্দিষ্ট পদ্ধতি | কার্যকারিতা সূচক |
|---|---|---|---|
| ডকুমেন্ট পার্সিং | PDF-এর টেবিল, ফ্লোচার্ট উপেক্ষিত, বা টেক্সট এলোমেলো, ক্রমবিন্যাস ভুল। | উন্নত পার্সিং লাইব্রেরি ব্যবহার (যেমন unstructured বা pypdf-এর লেআউট সংরক্ষণ মোড); টেবিলের জন্য pandas দিয়ে এক্সট্র্যাক্ট করে Markdown-এ রূপান্তর। |
রিকল +5~15% |
| টেক্সট চাঙ্ক সাইজ | চাঙ্ক খুব ছোট হলে প্রসঙ্গ হারায় (যেমন "তার এই বছর আয় বেড়েছে"-এ "তার" নির্দেশক হারানো); চাঙ্ক খুব বড় হলে রিট্রিভালে নয়েজ বাড়ে। | বিভিন্ন চাঙ্ক সাইজ (256/512/768 টোকেন) নিয়ে পরীক্ষা, ওভারল্যাপ 10~20% সেট করুন; দীর্ঘ ডকুমেন্টের জন্য নির্দিষ্ট শব্দার্থিক সীমানা (প্যারাগ্রাফ/শিরোনাম) অনুযায়ী কাটুন, নির্দিষ্ট দৈর্ঘ্যে নয়। | হিট রেট / বিশ্বস্ততা |
| মেটাডেটা সংযোজন | প্রাসঙ্গিক প্যারাগ্রাফ পাওয়া গেলেও উৎস বা সময় নির্ধারণ করা যায় না, অথবা ডোমেন ফিল্টার প্রয়োজন। | প্রতিটি চাঙ্কে মেটাডেটা যোগ করুন: source (ফাইলনাম/URL), timestamp, page_num, doc_type। রিট্রিভালে ফিল্টার ব্যবহার করুন (যেমন doc_type == 'legal')। |
ফিল্টার নির্ভুলতা |
| এম্বেডিং মডেল নির্বাচন | সার্বিক embedding নির্দিষ্ট ডোমেনে (চিকিৎসা, কোড, আইন) খারাপ কাজ করে। | ডোমেন-ফাইনটিউনড মডেল ব্যবহার করুন (BGE‑large‑zh, GTE‑Qwen2‑7B‑instruct); অথবা নিজস্ব embedding মডেল ফাইনটিউন করুন (triplet loss দিয়ে)। | রিট্রিভাল MRR@10 +10~20% |
২. রিট্রিভাল সাইড টিউনিং ("বই উল্টানো" আরও নির্ভুল করা)
রিট্রিভাল LLM-কে দেওয়া "রেফারেন্স উপাদান"-এর গুণমান নির্ধারণ করে।
| টিউনিং পয়েন্ট | সমস্যা | নির্দিষ্ট পদ্ধতি | কার্যকারিতা |
|---|---|---|---|
| হাইব্রিড রিট্রিভাল | ভেক্টর রিট্রিভাল নির্দিষ্ট টার্ম মেলাতে পারে না (যেমন পণ্য মডেল ABC-123), কীওয়ার্ড রিট্রিভাল সমার্থক শব্দ বুঝতে পারে না। |
একসঙ্গে ভেক্টর রিট্রিভাল (অর্থগত) এবং BM25 (কীওয়ার্ড) ব্যবহার করুন, ওয়েটিং (যেমন 0.7ভেক্টর + 0.3BM25) বা rerank ফিউশনের মাধ্যমে। | রিকল +10~25% |
| পুনরায় র্যাঙ্কিং (Rerank) | ভেক্টর রিট্রিভালের প্রথম কয়েকটি ফলাফল সবচেয়ে প্রাসঙ্গিক নাও হতে পারে; দশমটি সেরা হতে পারে। | ক্রস-এনকোডার মডেল (যেমন BGE‑reranker-v2, Cohere Rerank) দিয়ে ক্যান্ডিডেট সেটকে (প্রথম ২০টি) পুনরায় স্কোর করুন, top‑K নিন। |
হিট রেট উল্লেখযোগ্যভাবে উন্নত (বিশেষ করে top‑1) |
| কোয়েরি পুনর্লিখন | ব্যবহারকারীর প্রশ্ন অস্পষ্ট বা মাল্টি-টার্ন কথোপকথনে নির্দেশক অস্পষ্ট ("এর দাম কত?")। | LLM দিয়ে মূল প্রশ্নটিকে রিট্রিভাল-উপযুক্ত ফর্মে পুনর্লিখন করুন (যেমন "iPhone 15-এর দাম কত?"); অথবা কথোপকথন ইতিহাস ব্যবহার করে সম্পন্ন করুন। | রিকল +5~15% |
| HyDE | ব্যবহারকারীর প্রশ্ন খুব ছোট বা বিমূর্ত (যেমন "সালোকসংশ্লেষণ সম্পর্কে বলুন"), সরাসরি রিট্রিভাল খারাপ। | প্রথমে LLM-কে একটি অনুমানিক উত্তর তৈরি করতে দিন, তারপর সেই উত্তর দিয়ে ডকুমেন্ট রিট্রিভ করুন। | মুক্ত ডোমেনের জন্য উপযুক্ত, কিন্তু ফ্যাক্ট-ভিত্তিক নির্ভুল প্রশ্নের জন্য নয় |
| রিট্রিভাল সংখ্যা Top‑K সমন্বয় | K খুব ছোট হলে গুরুত্বপূর্ণ তথ্য বাদ পড়তে পারে; K খুব বড় হলে টোকেন খরচ ও নয়েজ বাড়ে। | K=3/5/10 নিয়ে পরীক্ষা করুন, রিকল ও উত্তর বিশ্বস্ততার ভারসাম্য পর্যবেক্ষণ করুন। | দক্ষতা বনাম কার্যকারিতা ট্রেড-অফ |
৩. জেনারেশন সাইড টিউনিং (LLM-কে রেফারেন্স ভালোভাবে ব্যবহার করানো)
রিট্রিভাল যতই ভালো হোক, প্রম্পট ভালো না হলে বা মডেল দুর্বল হলে কিছুই কাজ করে না।
| টিউনিং পয়েন্ট | সমস্যা | নির্দিষ্ট পদ্ধতি | কার্যকারিতা |
|---|---|---|---|
| প্রম্পট ইঞ্জিনিয়ারিং | LLM রিট্রিভ করা তথ্য উপেক্ষা করে, বা মিথ্যে তৈরি করে। | স্পষ্ট নির্দেশনা দিন: "শুধুমাত্র নীচে দেওয়া রেফারেন্স উপকরণের উপর ভিত্তি করে উত্তর দিন। যদি তথ্য অপর্যাপ্ত বা অপ্রাসঙ্গিক হয়, তাহলে 'পর্যাপ্ত তথ্য নেই' বলুন।" সাথে few‑shot examples দিন কিভাবে উৎস উল্লেখ করতে হয় তা দেখানোর জন্য। | বিশ্বস্ততা +20~40% |
| প্রসঙ্গ সংকোচন | রিট্রিভ করা তথ্য খুব দীর্ঘ (মডেলের কনটেক্স্ট উইন্ডো ছাড়িয়ে), বা অধিকাংশই নয়েজ। | LLMLingua বা সিলেক্টিভ কনটেক্সট কম্প্রেশন ব্যবহার করে, সবচেয়ে প্রাসঙ্গিক বাক্যগুলো রেখে বাকি অংশ সংকুচিত করে তারপর LLM-এ পাঠান। |
তথ্য হারানোর ঝুঁকি কমানো |
| LLM মডেল আপগ্রেড | ছোট মডেল (7B) জটিল যুক্তি করতে পারে না, বা দীর্ঘ প্রসঙ্গ মনে রাখতে পারে না। | শক্তিশালী মডেলে স্যুইচ করুন (GPT‑4o, Claude 3.5 Sonnet, Qwen2.5‑72B)। | যুক্তির নির্ভুলতা ব্যাপকভাবে উন্নত |
| স্ট্রিমিং ও উদ্ধৃতি | ব্যবহারকারী উত্তর যাচাই করতে পারে না। | জেনারেশনের সময় LLM-কে [citation:1] আউটপুট করতে দিন, যা রিট্রিভ ডকুমেন্টের নম্বর নির্দেশ করবে। ব্যাকএন্ডে মূল লিঙ্ক সংযুক্ত করুন। |
ব্যবহারকারীর বিশ্বাস + ডিবাগযোগ্যতা |
| উত্তর দিতে অস্বীকার ক্যালিব্রেশন | মডেল যখন উত্তর দেওয়া উচিত নয় তখন মিথ্যে বলে, বা যখন দেওয়া উচিত তখন জানে না বলে। | একটি সাদৃশ্য থ্রেশহোল্ড সেট করুন: রিট্রিভ করা top‑1 চাঙ্কের কোসাইন সাদৃশ্য যদি প্রশ্নের সাথে 0.7-এর কম হয়, তাহলে LLM-কে বলুন "তথ্য প্রাসঙ্গিক নয়"। | হ্যালুসিনেশন হার কমানো |
৪. ইভালুয়েশন ও ইটারেশন সাইড (কোথায় টিউন করতে হবে তা জানা)
পরিমাপ না থাকলে অপ্টিমাইজেশন সম্ভব নয়।
| টিউনিং পয়েন্ট | পদ্ধতি | সূচক |
|---|---|---|
| ইভালুয়েশন সেট তৈরি | 100~300টি বাস্তব ব্যবহারকারীর প্রশ্ন + স্ট্যান্ডার্ড উত্তর + সঠিক রিট্রিভ ডকুমেন্ট আইডি প্রস্তুত করুন। | বিভিন্ন কঠিনতা ও অভিপ্রায় কভার করুন। |
| অটোমেটেড ইভালুয়েশন | RAGAS (Faithfulness, Answer Relevance, Context Recall) বা TruLens ব্যবহার করুন। | তিনটি মূল সূচক: বিশ্বস্ততা, উত্তর প্রাসঙ্গিকতা, প্রসঙ্গ রিকল। |
| মানবীয় মূল্যায়ন | প্রতি সপ্তাহে ২০টি খারাপ কেস নমুনা পরীক্ষা করুন, ত্রুটির ধরন বিশ্লেষণ করুন (রিট্রিভাল ব্যর্থতা / জেনারেশন ত্রুটি / জ্ঞানভান্ডারে অভাব)। | উন্নতির অগ্রাধিকার তালিকা তৈরি করুন। |
| A/B পরীক্ষা | প্রোডাকশন পরিবেশে বিভিন্ন রিট্রিভাল কৌশল (যেমন BM25 বনাম হাইব্রিড রিট্রিভাল) বাকেট টেস্ট করুন। | অনলাইন সূচক: ব্যবহারকারী সন্তুষ্টি, উত্তরহীন হার। |
৫. ইন্টারভিউতে বলার মতো "বাস্তব অভিজ্ঞতা" (যোগ্যতা বৃদ্ধি)
"আমার দায়িত্বে থাকা RAG প্রকল্পে, শুরুতে বেসলাইন হিট রেট ছিল মাত্র 67%। আমি তিনটি কাজ করি:
1. চাঙ্কিং 1024 ফিক্সড থেকে ডায়নামিক সিমেন্টিক সেগমেন্টেশনে পরিবর্তন (শিরোনাম + প্যারাগ্রাফ অনুযায়ী), হিট রেট 74%-এ পৌঁছায়;
2. হাইব্রিড রিট্রিভাল (ভেক্টর + BM25) এবং একটি ছোট রির্যাঙ্ক মডেল যুক্ত করি, হিট রেট বেড়ে 83% হয়;
3. প্রম্পট অপ্টিমাইজ করি এবং বাধ্যতামূলকভাবে[প্রাসঙ্গিক তথ্য পাওয়া যায়নি]বলতে নির্দেশ দিই, হ্যালুসিনেশন হার 22% থেকে 5%-এর নীচে নামে।এছাড়াও, আমরা একটি ক্রমাগত ইভালুয়েশন পাইপলাইন স্থাপন করি, প্রতিটি পরিবর্তনের আগে 200টি প্রশ্নের RAGAS স্কোর চালাই যাতে কোনো অবনতি না হয় তা নিশ্চিত করি।"
শেষ সারসংক্ষেপ: একটি সম্পূর্ণ RAG টিউনিং রোডম্যাপ
ডেটা স্তর ─→ ডকুমেন্ট ক্লিনিং, চাঙ্ক অপ্টিমাইজেশন, মেটাডেটা বিবর্ধন, ডোমেন embedding
রিট্রিভাল স্তর ─→ হাইব্রিড রিট্রিভাল, rerank, কোয়েরি পুনর্লিখন, HyDE, Top-K টিউনিং
জেনারেশন স্তর ─→ প্রম্পট শক্তিশালীকরণ, নির্দেশনা প্রয়োজন, কম্প্রেশন, উদ্ধৃতি, প্রত্যাখ্যান থ্রেশহোল্ড
ইভালুয়েশন স্তর ─→ ইভালুয়েশন সেট, RAGAS, মানবীয় বিশ্লেষণ, A/B পরীক্ষা
评论
暂无已展示的评论。
发表评论(匿名)