ফাইন-টিউনিং বনাম RAG নিয়ে সবারই নিজস্ব মতামত আছে। যেকোনো AI ফোরাম স্ক্রল করলেই আপনি আর্কিটেকচার ডায়াগ্রাম এবং বেঞ্চমার্ক দাবি সম্বলিত উত্তপ্ত বিতর্ক দেখতে পাবেন। যারা এই মন্তব্যগুলো লিখছেন, তাদের বেশিরভাগই হয়তো কখনও নিজের ডেটা দিয়ে একটি মডেল ট্রেন করেননি বা প্রোডাকশনে একটি RAG পাইপলাইন কীভাবে নিঃশব্দে ব্যর্থ হয় তা দেখেননি।

আমি মাসের পর মাস পরীক্ষা চালিয়েছি। ঠিক বলতে গেলে, বারোটি পরীক্ষা। আমি LLM ফাইন-টিউন করেছি। এমবেডার্স (embedders) ফাইন-টিউন করেছি। আমি ছয়টি ভিন্ন RAG কনফিগারেশন তৈরি করেছি। ডোমেইন ছিল আর্থিক পূর্বাভাস (financial prediction), বিশেষ করে অগোছালো ঐতিহাসিক ডেটা থেকে অস্থির বাজারের ফলাফল পূর্বাভাস দেওয়ার চেষ্টা। আমি কঠোর পরিসংখ্যানগত মান বজায় রেখেছিলাম কারণ আমি আসল উত্তর চেয়েছিলাম, কোনো ব্লগ পোস্টের দাবি নয়।

বেশিরভাগ পরীক্ষা ব্যর্থ হয়েছিল। সেই ব্যর্থতাগুলো যেকোনো আকস্মিক সাফল্যের চেয়ে অনেক বেশি কার্যকর প্রমাণিত হয়েছে।

সিগন্যাল সম্পর্কে কঠিন সত্য

বিস্তারিত আলোচনায় যাওয়ার আগে, এখানে এমন একটি শিক্ষা রয়েছে যা সবকিছুকে একত্রে বেঁধে ফেলে। ফাইন-টিউনিং এবং RAG হলো একটি মডেল কী জানে বা কী দেখে তা পরিবর্তন করার হাতিয়ার। এগুলো শূন্য থেকে সিগন্যাল তৈরি করার কোনো জাদুকরী কাঠি নয়। যদি আপনার মূল ডেটাতে কোনো বাস্তব বা ব্যবহারযোগ্য প্যাটার্ন না থাকে, তবে এই কৌশলগুলো তা তৈরি করতে পারবে না। এগুলো কেবল এলোমেলো নয়েজের (random noise) চারপাশে একটি আরও বিশ্বাসযোগ্য গল্প তৈরি করতে আপনাকে সাহায্য করবে।

আর্থিক পূর্বাভাসের ক্ষেত্রে এই ফাঁদটি বিশেষভাবে বিপজ্জনক। বাজার স্বভাবগতভাবেই অস্থির (noisy)। যখন আপনি ঐতিহাসিক মূল্যের ডেটার সাথে একটি শক্তিশালী LLM যুক্ত করেন এবং রিট্রিভাল বা ফাইন-টিউনিং যোগ করেন, তখন আপনি স্বয়ংক্রিয়ভাবে কোনো বাড়তি সুবিধা (edge) পাবেন না। আপনি কেবল একটি মুদ্রা নিক্ষেপের (coin flip) ফলাফলকে যুক্তি দিয়ে ব্যাখ্যা করার আরও মার্জিত উপায় পাবেন। যদি সিগন্যাল না থাকে, তবে মডেলটি আপনাকে মিথ্যা বলতে খুব দক্ষ হয়ে উঠবে। আপনাকে প্রথমে সেটি যাচাই করতে হবে।

যখন বড় মডেল শেখার বদলে মুখস্থ করে ফেলে

আমার প্রথম বড় ভুল ছিল এটা ধরে নেওয়া যে স্কেল (scale) সবকিছু ঠিক করে দেবে। আমি ঠিক ৭৭৭টি ট্রেনিং উদাহরণের ওপর একটি ১৪ বিলিয়ন প্যারামিটারের মডেলের বিপরীতে একটি ৭ বিলিয়ন প্যারামিটারের মডেল পরীক্ষা করেছি। বড় মডেলটি উল্লেখযোগ্যভাবে ভালো eval_loss অর্জন করেছিল। এর পারপ্লেক্সিটি (perplexity) কমে গিয়েছিল। কাগজে-কলমে এটি শিখছিল।

তারপর আমি উইন রেট (win rate) বা মডেলটি প্রকৃতপক্ষে কত দ্রুত সঠিক পূর্বাভাস দিচ্ছে তা দেখলাম। ১৪B মডেলটি ৭B মডেলের তুলনায় উল্লেখযোগ্যভাবে খারাপ পারফর্ম করেছিল। এটি ট্রেনিংয়ের নয়েজ মুখস্থ করে ফেলেছিল। ৩,০০০-এর কম উদাহরণের ক্ষেত্রে, বড় মডেলটির ডেটার মধ্যে থাকা বিভ্রান্তিকর সম্পর্ক (spurious correlations) এবং এলোমেলো পরিবর্তনগুলোর ওপর ওভারফিট করার মতো যথেষ্ট ক্ষমতা ছিল। এটি মূলত নয়েজের একটি লুকআপ টেবিল (lookup table) তৈরি করেছিল।

৭B মডেলটি তার ছোট ক্ষমতার সীমাবদ্ধতার কারণে বৃহত্তর প্যাটার্ন শিখতে বাধ্য হয়েছিল। এটি প্রতিটি ক্ষুদ্রাতিক্ষুদ্র বৈশিষ্ট্য মুখস্থ করার সামর্থ্য রাখত না। আপনি যদি ছোট ডেটাসেট নিয়ে কাজ করেন, তবে ছোট মডেল দিয়ে শুরু করুন। স্কেল বিনামূল্যে পাওয়া যায় না। ডেটা যখন কম থাকে, তখন এটি আপনার ক্ষতি করতে পারে।

লস কার্ভের ওপর ভরসা করবেন না

আমি লস কার্ভের দিকে তাকিয়ে থাকা বন্ধ করতে শিখেছি। একটি মডেল তার টোকেন-লেভেল ক্রস-এনট্রপি (cross-entropy) উন্নত করতে পারে, অথচ আপনি যে আসল ব্যবসায়িক সিদ্ধান্তের জন্য এটি ব্যবহার করছেন তাতে আরও খারাপ হতে পারে। এটি ঘটে কারণ ল্যাঙ্গুয়েজ মডেলিং লস পরবর্তী টোকেনটি নির্ভুলভাবে অনুমান করার জন্য পুরস্কৃত করে। অনেক ক্ষেত্রে, বিশেষ করে ফিন্যান্সে, সঠিক সিদ্ধান্ত এবং সবচেয়ে সম্ভাব্য পরবর্তী টোকেন এক জিনিস নয়।

আমি এমন মডেল দেখেছি যা ট্রেনিংয়ের গদ্য বা টেক্সট খুব সুন্দরভাবে পুনরুৎপাদন করতে পারত কিন্তু প্রতিবার ভুল দিকনির্দেশনা বেছে নিত। লস কমেছিল। সেই সাথে ব্যাংকরোলও (bankroll) কমে গিয়েছিল। আপনার বাস্তব জগতের কাজের ওপর ভিত্তি করে মূল্যায়ন মেট্রিক (evaluation metric) নির্বাচন করুন। আপনি যদি ডকুমেন্ট র‍্যাঙ্কিং করেন, তবে র‍্যাঙ্কিংয়ের মান পরিমাপ করুন। আপনি যদি ফলাফল পূর্বাভাস দেন, তবে সিদ্ধান্তের নির্ভুলতা পরিমাপ করুন। eval_loss-কে আপনার মডেল বেছে নেওয়ার সিদ্ধান্ত নিতে দেবেন না।

ফাইন-টিউনিং কেবল অপরিচিত শব্দভাণ্ডারের ক্ষেত্রে কার্যকর

আমি দুটি ভিন্ন ধরনের টেক্সটের ওপর এমবেডার ফাইন-টিউনিং পরীক্ষা চালিয়েছি। প্রথমটিতে ছিল সাধারণ আর্থিক সংবাদ এবং পাবলিক ফাইলিংস। ফাইন-টিউন করা এমবেডার এবং রেডিমেড (off-the-shelf) সংস্করণটি একইভাবে কাজ করেছে। বেস মডেলটি ইতিমধ্যে এই ভাষা জানত। আমি পরিচিত বিষয়ের ওপর টিউন করছিলাম।

দ্বিতীয় ডেটাসেটটি ছিল ব্যক্তিগত পরিভাষা (jargon), অভ্যন্তরীণ কোডনেম এবং ডোমেইন-নির্দিষ্ট সংক্ষিপ্ত শব্দের সমাহার যা ইন্টারনেটে কখনও দেখা যায়নি। এখানে, ফাইন-টিউনিং রিট্রিভাল নির্ভুলতা ৭৯ শতাংশ উন্নত করেছে। বেস মডেলটি সহজভাবে জানত না এই শব্দগুলোর অর্থ কী। ফাইন-টিউনিং এটিকে স্থানীয় শব্দভাণ্ডার শিখিয়েছিল।

এটি আমার কাছে পুরো বিষয়টি নতুনভাবে উপস্থাপন করল। ফাইন-টিউনিং মানে মডেলকে কোনো সাধারণ অর্থে আরও বুদ্ধিমান করে তোলা নয়। এটি হলো তাকে একটি নতুন শব্দভাণ্ডার, একটি নতুন ফরম্যাট বা একটি নির্দিষ্ট স্টাইল শেখানো। যদি আপনার ডেটা ইন্টারনেটের মতো দেখায়, তবে ফাইন-টিউনিং বাদ দিন। যদি আপনার ডেটা এমন ভাষা ব্যবহার করে যা বেস মডেল আগে কখনও দেখেনি, তবে ফাইন-টিউনিং অপরিহার্য হয়ে ওঠে।

RAG আপনাকে নিশ্চয়তা দেয়, সত্য নয়

I tested eight separate RAG configurations for prediction tasks. Across the board, adding retrieval changed roughly 30 percent of the model's decisions. That sounds impactful. It was not. Those changes were pure noise. The overall accuracy did not improve. What did change was the model's confidence. RAG made the system sound more certain, cite more sources, and produce longer justifications. All while being just as wrong.

This overconfidence is a product risk. A user sees citations and assumes the model has done its homework. In reality, it was doing sophisticated-looking guesswork.

The most painful lesson came from backtesting one RAG variant. It showed an 11 percent annual profit. On the surface, that looks like a winning strategy. But its AUC, the area under the ROC curve and a measure of classification skill, was 0.486. That is worse than a coin flip, which sits at 0.500. The profit was a fluke of the specific market period, not a repeatable edge. Using P&L alone as a metric is dangerous. Markets hand out lucky streaks all the time. You need statistical skill metrics to separate flukes from competence.

Know What Each Tool Actually Does

So where does this leave us? Use fine-tuning when the model needs to learn new words, specific formats, or a distinctive style. Use RAG when the model needs access to facts, code repositories, or institutional memory that lives outside its weights. Do not use either tool to discover signal in data that has none. If the underlying pattern is not there, retrieval and fine-tuning will only help you dress up the noise in a sharper suit.

The Real Bottleneck

The infrastructure for fine-tuning and RAG has never been easier to set up. You can spin up a pipeline in an afternoon. The technique is no longer the bottleneck. Evaluation is. Most teams skip the hard statistical work and celebrate vanity metrics instead. They ship systems that sound smart but fail silently.

Run honest tests before you spend money. Question your metrics. Check for overfitting. Make sure the model is actually better,