লাভ:
- ব্যাখ্যা করে যে RAG মডেলের ওজন পরিবর্তন না করে প্রসঙ্গ ইনজেক্ট করে এবং একটি 'ওপেন বুক এক্সাম' যুক্তি দিয়ে কাজ করে
- খরচ, সময়োপযোগীতা এবং ব্যবহারের পরিস্থিতি অনুযায়ী ফাইন-টিউনিং এবং দীর্ঘ প্রসঙ্গ পদ্ধতির সাথে RAG তুলনা করা
- সূচীকরণ এবং ক্যোয়ারী পর্যায়গুলি নিয়ে গঠিত একটি সাধারণ RAG পাইপলাইনের ধাপগুলি তালিকাভুক্ত করা
একটি ভাষা মডেল (কৃত্রিম বুদ্ধিমত্তা যা পাঠ্য বোঝে এবং তৈরি করে; আমরা এখন থেকে সংক্ষেপে এটিকে মডেল বলব) যতই শক্তিশালী হোক না কেন, এটি আপনার কোম্পানি গতকাল স্বাক্ষরিত চুক্তি, আপনার অভ্যন্তরীণ উইকি (অভ্যন্তরীণ জ্ঞানের ভিত্তি) পৃষ্ঠা, বা আজ সকালে প্রকাশিত রিলিজ নোট জানে না। মডেলটি প্রশিক্ষণের তারিখ পর্যন্ত সাধারণ জ্ঞানের মধ্যে সীমাবদ্ধ; একে "শিক্ষা কাট-অফ ডেট" বলা হয়। RAG (পুনরুদ্ধার-অগমেন্টেড জেনারেশন) ঠিক এই ফাঁকটি পূরণ করে: এটি প্রশ্নের সাথে সম্পর্কিত কোম্পানির নথি খুঁজে পায়, এটি মডেলকে প্রসঙ্গ হিসাবে দেয় (অর্থাৎ, উত্তর তৈরি করার সময় এটি যে অতিরিক্ত পাঠ্য পড়বে) এবং এই প্রসঙ্গের উপর ভিত্তি করে উত্তর তৈরি করে।
এই ইউনিটে, আমরা স্পষ্টভাবে দেখতে পাব যে RAG কী, কখন এটি কোন বিকল্পের চেয়ে পছন্দ করা হয় এবং একটি সাধারণ RAG পাইপলাইনের ধাপগুলি। পরবর্তী সমস্ত ইউনিট এই মানচিত্রের অংশগুলিকে একে একে গভীর করবে।
RAG এর মৌলিক ধারণা: ওপেন বুক পরীক্ষা
আসুন RAG কে এক বাক্যে ব্যাখ্যা করি: "প্রথমে প্রাসঙ্গিক নথিটি খুঁজুন, তারপর মডেলটিকে সেই নথিটি পড়ুন এবং সেই অনুযায়ী উত্তর প্রিন্ট করুন।"
সবচেয়ে দরকারী সাদৃশ্য হল: RAG মডেলটিকে একটি "বন্ধ বই পরীক্ষা" থেকে একটি "ওপেন বুক পরীক্ষায়" নিয়ে যায়। বন্ধ বই পরীক্ষায় ছাত্র কেবল স্মৃতি থেকে উত্তর দেয়; আপনি যা মনে করেন না তা আপ করার একটি উচ্চ ঝুঁকি আছে। খোলা বই পরীক্ষায় শিক্ষার্থী তার সামনে রাখা উৎস দেখে উত্তর দেয়। RAG-তে, মডেলটি আর তার নিজের মেমরি থেকে উত্তর দেয় না, কিন্তু বর্তমান এবং নির্দিষ্ট পাঠ্য থেকে আপনি এটি দেন।
সমালোচনামূলক পয়েন্ট: RAG মডেলের ওজন পরিবর্তন করে না, অর্থাৎ, মডেলটি শিখেছে এমন কোটি কোটি সংখ্যাসূচক পরামিতি। আপনি মডেল পুনরায় প্রশিক্ষণ না. প্রতিটি প্রশ্নের জন্য, আপনি সেই প্রশ্নের সাথে প্রাসঙ্গিক পাঠ্যের খণ্ডগুলি প্রম্পটে ইনজেক্ট করুন (নির্দেশ পাঠ্যটি মডেলে পাঠানো হয়েছে)। সুতরাং যখন একটি নথি আপডেট করা হয় তখন আপনাকে মডেলটিকে পুনরায় প্রশিক্ষণ দিতে হবে না; আপনি কেবল অনুসন্ধান ডাটাবেসে প্রাসঙ্গিক রেকর্ড রিফ্রেশ করুন.
ইঙ্গিত: দুটি প্রশ্ন RAG এর গুণমান নির্ধারণ করে: (1) আপনি কি সঠিক নথি খুঁজে পেয়েছেন? (2) মডেলটি কি সঠিকভাবে পড়েছে? প্রথমটি "পুনরুদ্ধার গুণমান", দ্বিতীয়টি "প্রজন্ম গুণমান"। দুটি আলাদাভাবে পরিমাপ এবং উন্নত করা হয়।
RAG, ফাইন-টিউনিং বা দীর্ঘ প্রসঙ্গ?
একটি সাংগঠনিক সমস্যার সমাধান খুঁজতে গিয়ে তিনটি পথ প্রায়ই বিভ্রান্ত হয়। আসুন তাদের পার্থক্য স্পষ্ট করা যাক। ফাইন-টিউনিং আপনার ডেটার সাথে মডেলের ওজন আপডেট করছে এবং এটিকে একটি নতুন আচরণ/শৈলী শেখাচ্ছে। দীর্ঘ প্রসঙ্গ মানে কোনো নির্বাচন ছাড়াই সরাসরি প্রম্পটে সমস্ত নথি পূরণ করা।
এপ্রোচ
কি করে
কখন এটা উপযুক্ত?
খরচ/ঝুঁকি
RAG
প্রসঙ্গ হিসাবে প্রাসঙ্গিক নথিকে ইনজেক্ট করে
ঘন ঘন পরিবর্তন, ব্যাপক, নির্দিষ্ট তথ্য
কম; আপডেট করা সহজ, উৎস উল্লেখ করা যেতে পারে
ফাইন-টিউনিং
নতুন ডেটা সহ ওজন আপডেট করে
স্থির শৈলী/ফরম্যাট/ভাষা শিক্ষা
উচ্চ; প্রতিটি আপডেটের সাথে পুনরায় প্রশিক্ষণ প্রয়োজন
শুধুমাত্র দীর্ঘ প্রসঙ্গ
প্রম্পটে সমস্ত নথি পূরণ করে
ছোট, নিশ্চল নথি সেট
টোকেন খরচ এবং "মাঝের অংশ হারানোর" ঝুঁকি বৃদ্ধি পায়
একটি নিয়ম হিসাবে: ফাইন-টিউনিং মডেলকে কীভাবে কথা বলতে হয় তা শেখায়; আরএজি মডেলকে কী জানার কথা বলে। বেশিরভাগ এন্টারপ্রাইজ পরিস্থিতিতে, RAG প্রথমে চেষ্টা করা হয় কারণ এটি সস্তা, আপডেটযোগ্য এবং উত্তরের উৎস দেখাতে পারে। দীর্ঘ প্রসঙ্গ যুক্তিসঙ্গত যদি নথি সেটটি সত্যিই ছোট এবং স্থির হয় (যেমন একটি একক 20-পৃষ্ঠা ম্যানুয়াল); কিন্তু হাজার হাজার পৃষ্ঠার সাথে, এটি ব্যয়বহুল এবং মডেলটি দীর্ঘ পাঠ্যের মাঝখানে তথ্য মিস করতে পারে।
একটি সাধারণ RAG পাইপলাইন
RAG দুটি প্রধান পর্যায় নিয়ে গঠিত: ইন্ডেক্সিং (প্রস্তুতি, একবার বা পর্যায়ক্রমে করা) এবং প্রশ্ন করা (প্রতিটি ব্যবহারকারীর প্রশ্নের উপর চলে)।
ধাপে ধাপে ইন্ডেক্সিং (অফলাইন, ব্যবহারকারীর অপেক্ষা না করে):
- সংগ্রহ করুন: উত্স (পিডিএফ, উইকি, টিকিট সিস্টেম, ডাটাবেস, ইমেল) থেকে নথিগুলি টানুন।
- চঙ্কিং: লম্বা টেক্সটকে ছোট ছোট ম্যানেজযোগ্য টুকরো করে ফেলুন।
- এম্বেড: প্রতিটি অংশকে এম্বেডিং-এ রূপান্তর করুন (সংখ্যা ভেক্টর যা পাঠ্যের অর্থ বহন করে)।
- সংরক্ষণ করুন: ভেক্টর ডাটাবেসে পাঠ্য এবং মেটাডেটা (উৎস, তারিখ, অনুমোদনের তথ্য) সহ ভেক্টরগুলি লিখুন।
ধাপে ধাপে প্রশ্ন (অনলাইনে, ব্যবহারকারী অপেক্ষা করার সময়):
- ব্যবহারকারীর প্রশ্ন এম্বেডিং এ রূপান্তর করুন।
- ভেক্টর ডাটাবেস থেকে সবচেয়ে অনুরূপ অংশ পুনরুদ্ধার করুন।
- একটি প্রম্পট টেমপ্লেটে এই টুকরা + প্রশ্ন রাখুন।
- মডেল থেকে প্রাসঙ্গিক উত্তর এবং এর উত্স পান।
# অনুসন্ধান পর্বের ধারণাগত রূপরেখা (ভাষার উপর নির্ভরশীল নয়) প্রশ্ন = "কত দিনের বার্ষিক ছুটি?"question_vektor = embed(question)parts = vektor_db.search(question_vektor, top_k=4) # সবচেয়ে অনুরূপ অংশ প্রম্পট = f"""প্রসঙ্গ ব্যবহার করে প্রশ্নটির উত্তর দিন, যদি এই প্রসঙ্গে উত্তরটি না থাকে তাহলে নিচের কোন তথ্য নেই।" ফিটিং মডেল: claude-opus-4-8
এই প্রবাহটি প্রতিটি পর্যায়ের একটি মানচিত্র, যা আমরা পরবর্তী ইউনিটে একে একে আনপ্যাক করব।
দুর্বল প্রম্পট / শক্তিশালী প্রম্পট
এমনকি একই RAG প্রসঙ্গে, প্রম্পটের গুণমান উত্তর পরিবর্তন করে।
দুর্বল প্রম্পট (মডেল ফিটিং এর জন্য উন্মুক্ত, সম্পদের প্রয়োজন নেই):
এই তথ্য ব্যবহার করুন এবং বার্ষিক ছুটি বলুন: {parts}। প্রশ্ন: {question}
শক্তিশালী প্রম্পট (গ্রাউন্ডিং + "আমি জানি না" অনুমতি + সম্পদ অনুরোধ):
শুধুমাত্র নীচের CONTEXT এর উপর ভিত্তি করে উত্তর দিন৷ প্রসঙ্গে কোন স্পষ্ট উত্তর না থাকলে, "আমি ডকুমেন্টেশনে এই সম্পর্কে তথ্য খুঁজে পাইনি" লিখুন; অনুমান করবেন না। আপনার উত্তরের শেষে আপনি যে অংশের উপর নির্ভর করছেন তার [উৎস: ফাইল_নাম] ট্যাগ যোগ করুন। প্রসঙ্গ: {টুকরা} প্রশ্ন: {প্রশ্ন}
তিনটি মিনি কেস
কেস 1 - এইচআর সহকারী (মানব সম্পদ)। একটি কোম্পানির একটি 340-পৃষ্ঠার HR হ্যান্ডবুক রয়েছে এবং কর্মীরা প্রতিদিন গড়ে 90টি প্রশ্ন জিজ্ঞাসা করে। ফাইন-টিউনিংয়ের চেষ্টা করা হয়েছিল, কিন্তু যেহেতু ম্যানুয়ালটি মাসিক আপডেট করা হয়েছিল, তাই প্রতিবার পুনরায় প্রশিক্ষণের প্রয়োজন ছিল; খরচ প্রতি মাসে হাজার হাজার ডলার পৌঁছেছে. RAG-তে স্যুইচ করার পরে, আপডেটটি "নথির পুনঃসূচীকরণ" ধাপে (মিনিট) হ্রাস করা হয়েছিল এবং ম্যানুয়াল পরিমাপে সঠিক উত্তরের হার 71% থেকে 93% পর্যন্ত বৃদ্ধি পেয়েছে।
কেস 2 - গ্রাহক সহায়তা। সহায়তা দলের কাছে 12,000টি সমাধান করা টিকিট এবং 800টি সহায়তা নিবন্ধ রয়েছে৷ একজন প্রতিনিধির ম্যানুয়ালি উত্তর খুঁজতে গড়ে 4 মিনিট সময় লাগে। যখন RAG সহকারী 5টি সবচেয়ে প্রাসঙ্গিক রেকর্ড নিয়ে আসে এবং একটি খসড়া প্রতিক্রিয়া তৈরি করে, সময় কমিয়ে 40 সেকেন্ড করা হয়; কিন্তু দলটি "ভুল নিবন্ধ এনে অনিশ্চিত হওয়ার" ঝুঁকি উপলব্ধি করেছে এবং উত্সটি বাধ্যতামূলক করেছে।
মামলা 3 — আইন। একটি চুক্তিকারী দল জিজ্ঞাসা করেছিল "কোন চুক্তিতে গোপনীয়তা ধারাটি 5 বছর ধরে চলে?" সে প্রশ্ন করে। দীর্ঘ প্রেক্ষাপটের বিচারে, 60টি চুক্তি একটি একক প্রম্পটে পূরণ করা হয়েছিল; মডেল মাঝখানে দুটি চুক্তি এড়িয়ে গেছে. যখন শুধুমাত্র প্রাসঙ্গিক আইটেমগুলি RAG-এর সাথে চালু করা হয়েছিল, তখন টোকেন খরচ 80% কমে যায় এবং অনুপস্থিত স্কিপিং পুনরায় সেট করা হয়।
কেন RAG প্রয়োজন?
- বর্তমানতা: আপনি প্রশিক্ষণের কাট-অফ তারিখের পরে তথ্য অ্যাক্সেস করেন।
- বিশেষ তথ্য: আপনার অভ্যন্তরীণ নথিগুলি কোনও মডেলের প্রশিক্ষণে অন্তর্ভুক্ত নয়; শুধুমাত্র আপনি দিতে পারেন.
- যাচাইযোগ্যতা: আপনি উত্তরের উৎস (উদ্ধৃতি) উল্লেখ করতে পারেন — অডিট এবং বিশ্বাসের জন্য অপরিহার্য।
- হ্যালুসিনেশন নিয়ন্ত্রণ: এটি একটি মডেল তৈরি করার পরিবর্তে এটির সামনে রাখা পাঠ্যের উপর নির্ভর করে।
- খরচ: সূক্ষ্ম-টিউনিংয়ের চেয়ে এটি কার্যকর করা অনেক সস্তা এবং দ্রুত।
সতর্কতা: RAG জাদু নয়। আপনি যদি ভুল অংশ নিয়ে আসেন, মডেলটি "আত্মবিশ্বাসী" দেখে ভুল উত্তরে পৌঁছায়। "পুনরুদ্ধার গুণমান = RAG গুণমান" বাক্যাংশটি মনে রাখবেন।
সাধারণ ভুল
- ফাইন-টিউনিংয়ের জন্য RAG ভুল করা: RAG ওজন পরিবর্তন করে না; এটা শুধু প্রসঙ্গ যোগ করে. এই দুটিকে বিভ্রান্ত করার ফলে ভুল স্থাপত্য বেছে নেওয়া হবে।
- "আমি জানি না" মঞ্জুরি দিচ্ছে না: যদি প্রম্পটটি মডেলটিকে ফাঁকা পূরণ করতে দেয় তবে এটি তৈরি হবে।
- উত্স উদ্ধৃত না: একটি উত্স ছাড়া একটি উত্তর চেক করা যাবে না; ব্যবহারকারী ভুলটি লক্ষ্য করতে পারে না।
- একটি প্রম্পটে সবকিছু ক্র্যাম করা: দীর্ঘ প্রসঙ্গ সস্তা মনে হয় কিন্তু ব্যয়বহুল এবং মধ্যবর্তী তথ্য মিস করে।
- পুনরুদ্ধার পরিমাপ না করে প্রজন্মের মধ্যে আটকে যাওয়া: উত্তরটি খারাপ হলে, প্রথমে জিজ্ঞাসা করুন "সঠিক অংশটি কি এসেছে?" জিজ্ঞাসা করা উচিত
সংক্ষেপে
- RAG হল একটি পদ্ধতি যা প্রসঙ্গ হিসাবে মডেলের মধ্যে প্রশ্নের সাথে প্রাসঙ্গিক নথিগুলিকে ইনজেক্ট করে; ওজন পরিবর্তন করে না ("ওপেন বুক পরীক্ষা")।
- ফাইন-টিউনিং স্টাইল/ফরম্যাট শেখায়, আরএজি বর্তমান এবং নির্দিষ্ট তথ্য দেয়; দীর্ঘ প্রসঙ্গ ছোট নির্দিষ্ট সেটের জন্য ভাল কাজ করে। বেশিরভাগ পরিস্থিতিতে, RAG প্রথমে চেষ্টা করা হয়।
- পাইপলাইনের দুটি পর্যায় রয়েছে: অফলাইন ইন্ডেক্সিং (খণ্ড + এমবেডিং + সংরক্ষণ) এবং অনলাইন অনুসন্ধান (পুনরুদ্ধার + প্রম্পট + জেনারেট)।
- RAG সময়োপযোগীতা, নির্দিষ্ট তথ্য, যাচাইযোগ্যতা, হ্যালুসিনেশন নিয়ন্ত্রণ এবং কম খরচে প্রদান করে।
- সিস্টেমের গুণমান সরাসরি পুনরুদ্ধারের মানের উপর নির্ভর করে: ভুল টুকরা মানে ভুল উত্তর।
আবেদন টাস্ক
আপনার নিজের দল থেকে তথ্যের একটি প্রকৃত উৎস চয়ন করুন (যেমন একটি পদ্ধতির নথি বা FAQ পৃষ্ঠা)। (1) এই উৎস সম্পর্কে 5টি বাস্তব প্রশ্ন লিখুন। (2) নোট করুন নথির কোন অংশে প্রতিটি প্রশ্নের সঠিক উত্তর রয়েছে — এটি আপনার "সুবর্ণ উত্তর" তালিকায় পরিণত হবে। (3) উপরের "শক্তিশালী প্রম্পট" টেমপ্লেটটি ব্যবহার করে, প্রাসঙ্গিক বিভাগটিকে প্রসঙ্গ হিসাবে ম্যানুয়ালি পেস্ট করুন এবং একটি মডেল জিজ্ঞাসা করুন৷ (4) মডেল দ্বারা প্রদত্ত উত্তরটি সোনালী উত্তরের সাথে তুলনা করুন এবং সত্য/মিথ্যা হিসাবে চিহ্নিত করুন। এটি মূল্যায়নের প্রথম ম্যানুয়াল সংস্করণ যা আপনি ভবিষ্যতের ইউনিটগুলিতে স্বয়ংক্রিয়ভাবে করবেন।
চেকলিস্ট
- [ ] আমি একটি বাক্যে ব্যাখ্যা করতে পারি যে RAG ওজন পরিবর্তন করে না, এটি কেবল প্রসঙ্গ যোগ করে।
- [ ] আমি আরএজি, ফাইন-টিউনিং এবং লং কনটেক্সটের মধ্যে পার্থক্য করতে পারি এবং কখন উপযুক্ত।
- [ ] আমি ক্রমানুসারে ইন্ডেক্সিং (সংগ্রহ-শ্রেড-এম্বেড-সেভ) এবং কোয়েরি (এমবেড-ফেচ-প্রম্পট-জেনারেট) পর্যায়গুলি গণনা করতে পারি।
- [ ] আমি জানি কেন আমি প্রম্পটে "যদি এটি প্রসঙ্গে না হয়, বলুন আমি জানি না" এবং "উৎস উদ্ধৃত করুন" নির্দেশাবলী যোগ করেছি।
- [ ] আমি আমার নিজের ক্ষেত্রে "পুনরুদ্ধার গুণমান = RAG গুণমান" নীতিটিকে মানিয়ে নিতে পারি।