Fine-tuning বনাম RAG বনাম prompting: কোনটি ব্যবহার করবেন?

তিনটি উপায় LLM অ্যাপ উন্নত করে, এবং এরা ভিন্ন সমস্যা সমাধান করে। আপনার আসল ব্যর্থতা ঠিক করে এমন সবচেয়ে সস্তাটি বাছুন।

prompting, retrieval ও fine-tuning-এর তিন পথ

LLM ফিচার যথেষ্ট ভালো না হলে মানুষ প্রায়ই সরাসরি fine-tuning-এ লাফ দেয়। সাধারণত এটি ভুল প্রথম ধাপ। তিনটি প্রধান উপায় আছে, প্রতিটি আলাদা ধরনের সমস্যা সারায়।

১. Prompting

প্রতিটি request-এর সাথে পাঠানো নির্দেশ ও উদাহরণ বদলান।

  • সারায়: অস্পষ্ট কাজ, ভুল ফরম্যাট, ভুল সুর, নিয়ম না থাকা।
  • খরচ: প্রায় কিছুই না। সঙ্গে সঙ্গে বদলানো যায়।
  • সীমা: model যে তথ্য কখনো দেখেনি তা ব্যবহার করতে পারে না, আর খুব দীর্ঘ prompt প্রতি কলে বেশি খরচ করে।

সবসময় আগে এটি চেষ্টা করুন। পরিষ্কার prompt ও কয়েকটি ভালো উদাহরণ আশ্চর্যরকম বেশি সমস্যা মেটায়।

২. RAG (retrieval-augmented generation)

প্রশ্নের সময় প্রাসঙ্গিক নথি এনে prompt-এ বসান।

  • সারায়: অনুপস্থিত বা বদলানো জ্ঞান, ব্যক্তিগত data, citation-এর প্রয়োজন, বানানো তথ্য।
  • খরচ: আপনি search pipeline বানান ও রক্ষণাবেক্ষণ করেন। প্রতি কলে বেশি token লাগে।
  • সীমা: মান retrieval-এর ওপর নির্ভর করে, আর এটি model-এর আচরণ বা লেখার ধরন বদলায় না।

সমস্যা যখন "model এটা জানে না" তখন ব্যবহার করুন।

৩. Fine-tuning

আপনার নিজের উদাহরণে model-কে আরও প্রশিক্ষণ দিয়ে আচরণ বদলান।

  • সারায়: prompting ধরে রাখতে পারে না এমন সামঞ্জস্যপূর্ণ ধরন বা ফরম্যাট, সংকীর্ণ বিশেষ কাজ, বড় পরিসরে ছোট prompt, বা ছোট সস্তা model-কে একটি কাজে ভালো করা।
  • খরচ: দরকার ভালো dataset (প্রায়ই শত থেকে হাজার উচ্চমানের উদাহরণ), প্রশিক্ষণের সময় ও অর্থ, মূল্যায়ন এবং পরিস্থিতি বদলালে পুনঃপ্রশিক্ষণ।
  • সীমা: নতুন তথ্য নির্ভরযোগ্যভাবে শেখাতে দুর্বল, অন্য বিষয়ে model-কে খারাপ করতে পারে, হালনাগাদে ধীর। সব model বা provider এটি সমর্থন করে না।

LoRA ও অন্যান্য parameter-efficient পদ্ধতি পুরো model নয়, ছোট একটি অ্যাড-অন প্রশিক্ষণ দেয়, ফলে খরচ কমে।

সমস্যা যখন "ভালো prompt সত্ত্বেও model আমার দরকারমতো আচরণ করে না" তখন ব্যবহার করুন।

সহজ সিদ্ধান্ত নির্দেশিকা

আপনার সমস্যা আগে চেষ্টা
ভুল ফরম্যাট, সুর বা কাজ ভুল বোঝা ভালো prompt, উদাহরণ, structured output
আপনার নথি বা তাজা তথ্য দরকার RAG
Citation বা audit trail দরকার RAG
হাজার আউটপুটে কড়া নিজস্ব ধরন মানতে হবে Fine-tuning (prompting-এর পরে)
সংকীর্ণ, বেশি পরিমাণ কাজে ছোট সস্তা model চান Fine-tuning বা distillation
যুক্তি দুর্বল শক্তিশালী model, বা ধাপে ধাপে prompting
সঠিক হিসাব বা live data দরকার প্রশিক্ষণ নয়, টুল (function calling)

যুক্তিসঙ্গত ক্রম

১. আসল উদাহরণের test set ও স্কোর করার উপায় দিয়ে সাফল্য সংজ্ঞায়িত করুন। ২. Prompt উন্নত করুন এবং শক্তিশালী model চেষ্টা করুন। ৩. জ্ঞানই ফাঁক হলে RAG যোগ করুন। ৪. মাপা ফাঁক থেকে গেলে এবং ভালো data থাকলেই কেবল fine-tuning ভাবুন। ৫. দরকারে মেলান। Fine-tune করা model-ও RAG ব্যবহার করতে পারে।

১ নম্বর ধাপ ছাড়া কোনো বদল সাহায্য করেছে কি না বোঝা যায় না।

Fine-tuning-এ data-ই সবচেয়ে গুরুত্বপূর্ণ

  • উদাহরণ সঠিক, সামঞ্জস্যপূর্ণ ও আসল ইনপুটের প্রতিনিধিত্বকারী হতে হবে।
  • খারাপ বা পক্ষপাতদুষ্ট data খারাপ আচরণ শেখায়।
  • Model কখনো প্রশিক্ষণ দেয় না এমন আলাদা মূল্যায়ন সেট রাখুন।
  • ব্যবহারের অধিকার ও শক্ত নিয়ন্ত্রণ না থাকলে ব্যক্তিগত বা secret data সরান।
  • Data ব্যবহার ও সংরক্ষণ নিয়ে provider-এর শর্ত দেখুন।

খরচ ও রক্ষণাবেক্ষণ ভাবনা

  • Prompting ও RAG সঙ্গে সঙ্গে বদলায়। চাহিদা বা base model বদলালে fine-tuned model আবার প্রশিক্ষণ দিতে হয়।
  • Fine-tuning prompt ছোট করে বা ছোট model ব্যবহার করে প্রতি request-এর খরচ কমাতে পারে, তবে আগাম প্রচেষ্টা বাস্তব। নিজের পরিমাণ দিয়ে হিসাব করুন।
  • নতুন base model দ্রুত উন্নত হয়, তাই গত বছরের model-এর fine-tune ভালো prompt-সহ ভালো base model-এর কাছে হারতে পারে।

সাধারণ ভুল

  • জ্ঞান যোগ করতে fine-tuning করে ভুল তথ্যে অবাক হওয়া।
  • মূল্যায়ন বাদ দেওয়া, ফলে উন্নতি আন্দাজ।
  • কয়েকটি উদাহরণ ভালো কাজ করত এমন জায়গায় নিয়মের বিশাল prompt।
  • বড় context window ও মুষ্টিমেয় নথিতে চলত এমন জায়গায় RAG বানানো।

মূল কথা: নির্দেশের জন্য prompting, জ্ঞানের জন্য RAG, আচরণের জন্য fine-tuning। আগে মাপুন, সবচেয়ে সস্তা উপায় চেষ্টা করুন, এবং test আসল ফাঁক দেখালেই কেবল এগোন।


AI ও LLM সিরিজ, পর্ব ২ (মান, agent ও খরচ): 1 নম্বর (মোট 5)।

আরও পড়ুন