Skip to content

Latest commit

 

History

History
105 lines (69 loc) · 26.2 KB

File metadata and controls

105 lines (69 loc) · 26.2 KB

Open Source Models

আপনার LLM ফাইন-টিউনিং

বড় ভাষার মডেল ব্যবহার করে জেনারেটিভ AI অ্যাপ্লিকেশন তৈরি করার সময় নতুন চ্যালেঞ্জ আসে। একটি প্রধান সমস্যা হল নির্দিষ্ট ব্যবহারকারীর অনুরোধের জন্য মডেল দ্বারা প্রস্তুতকৃত বিষয়বস্তুতে প্রতিক্রিয়ার গুণগত মান নিশ্চিত করা (সঠিকতা এবং প্রাসঙ্গিকতা)। পূর্ববর্তী পাঠে, আমরা প্রম্পট ইঞ্জিনিয়ারিং এবং রিট্রিভাল-অগমেন্টেড জেনারেশন এর মতো কৌশল আলোচনা করেছিলাম যা বিদ্যমান মডেলের প্রম্পট ইনপুট পরিবর্তন করে সমস্যা সমাধানের চেষ্টা করে।

আজকের পাঠে, আমরা তৃতীয় একটি تکنিক আলোচনা করব, ফাইন-টিউনিং, যা অতিরিক্ত ডেটা দিয়ে মডেল নিজেই পুনঃপ্রশিক্ষণ করে সমস্যার সমাধান করার চেষ্টা করে। চলুন বিস্তারিত জানি।

শেখার উদ্দেশ্য

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

এই পাঠ শেষ করার পর আপনি নিম্নলিখিত প্রশ্নগুলোর উত্তর দিতে সক্ষম হবেন:

  • ভাষার মডেলগুলোর জন্য ফাইন-টিউনিং কী?
  • কখন এবং কেন ফাইন-টিউনিং কার্যকর?
  • কিভাবে আমি একটি প্রি-ট্রেইনড মডেল ফাইন-টিউন করতে পারি?
  • ফাইন-টিউনিংয়ের সীমাবদ্ধতাগুলো কী?

প্রস্তুত? চলুন শুরু করি।

চিত্রায়িত নির্দেশিকা

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

Illustrated Guide to Fine Tuning Language Models

ভাষার মডেলের জন্য ফাইন-টিউনিং কী?

সংজ্ঞা অনুসারে, বড় ভাষার মডেলগুলি ইন্টারনেটসহ বিভিন্ন উৎস থেকে সংগৃহীত বৃহৎ পরিমাণ টেক্সটের উপর পূর্ব-প্রশিক্ষণ প্রাপ্ত। পূর্ববর্তী পাঠ থেকে আমরা জানিয়েছিলাম, প্রম্পট ইঞ্জিনিয়ারিং এবং রিট্রিভাল-অগমেন্টেড জেনারেশন এর মতো প্রযুক্তি ব্যবহার করে ব্যবহারকারীর প্রশ্নের প্রম্পটে মডেলের প্রতিক্রিয়ার গুণগত মান উন্নত করা যায়।

একটি জনপ্রিয় প্রম্পট-ইঞ্জিনিয়ারিং পদ্ধতি হলো মডেলকে প্রতিক্রিয়ায় কী আশা করা হয় সে সম্পর্কে আরও নির্দেশনা দেওয়া, যা হয় নির্দেশনা (স্পষ্ট নির্দেশিকা) হিসেবে অথবা কিছু উদাহরণ (আশয়বাহী নির্দেশিকা) দিয়ে। এটিকে few-shot learning বলা হয় কিন্তু এতে দুটি সীমাবদ্ধতা রয়েছে:

  • মডেলের টোকেন সীমা কতগুলি উদাহরণ দিতে পারেন তা সীমাবদ্ধ করে, এবং কার্যকারিতা কমায়।
  • মডেলের টোকেন খরচ প্রতিটি প্রম্পটে উদাহরণ যোগ করা ব্যয়বহুল করে, এবং নমনীয়তা সীমিত করে।

ফাইন-টিউনিং হল একটি সাধারণ পদ্ধতি যেখানে আমরা একটি পূর্ব-প্রশিক্ষিত মডেল নিয়ে নতুন ডেটা দিয়ে পুনঃপ্রশিক্ষণ করি কোনো নির্দিষ্ট কাজের জন্য তার কার্যকারিতা উন্নত করার উদ্দেশ্যে। ভাষার মডেলের ক্ষেত্রে, আমরা নির্দিষ্ট কাজ কিংবা অ্যাপ্লিকেশন ডোমেনের জন্য নির্বাচিত উদাহরণ সমন্বিত পূর্ব-প্রশিক্ষিত মডেলটি ফাইন-টিউন করতে পারি যাতে একটি কাস্টম মডেল তৈরি হয় যা ঐ কাজ বা ডোমেনের জন্য আরও সঠিক এবং প্রাসঙ্গিক হতে পারে। ফাইন-টিউনিংয়ের একটি উপ-সুবিধা হলো এটি few-shot learning এর জন্য প্রয়োজনীয় উদাহরণের সংখ্যা কমিয়ে টোকেন ব্যবহার এবং খরচ কমাতে সাহায্য করে।

কখন এবং কেন মডেল ফাইন-টিউন করা উচিত?

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

মূখ্য বিষয়টি অবশ্যই মনে রাখতে হবে যে ফাইন-টিউনিং একটি উন্নত পদ্ধতি যা কাঙ্ক্ষিত ফলাফল পেতে নির্দিষ্ট দক্ষতা চায়। ভুল হলে এটি প্রত্যাশিত উন্নতি নাও দিতে পারে, বরং আপনার লক্ষ্যমাত্রার ডোমেনের জন্য মডেলের কার্যকারিতা অবনতি করতে পারে।

অতএব, ভাষার মডেল ফাইন-টিউন "কিভাবে" করবেন শেখার আগে, আপনাকে জানতে হবে কেন এই পথ বেছে নিতে হবে এবং কখন ফাইন-টিউনিং শুরু করবেন। নিজেকে এই প্রশ্নগুলো করুন:

  • ব্যবহার ক্ষেত্র: আপনার ফাইন-টিউনিং করা ব্যবহারের ক্ষেত্র কী? বর্তমান পূর্ব-প্রশিক্ষিত মডেলের কোন দিক উন্নত করতে চান?
  • বিকল্প: আপনি কি দৃষ্টি আকর্ষণজনক ফলাফলের জন্য অন্যান্য কৌশল চেষ্টা করেছেন? সেগুলো দিয়ে তুলনা করার জন্য ব্যাসলাইন তৈরি করুন।
    • প্রম্পট ইঞ্জিনিয়ারিং: প্রাসঙ্গিক প্রম্পট প্রতিক্রিয়ার উদাহরণ দিয়ে few-shot prompting চেষ্টা করুন। প্রতিক্রিয়ার গুণগত মান মূল্যায়ন করুন।
    • রিট্রিভাল অগমেন্টেড জেনারেশন: আপনার ডেটা অনুসন্ধান করে পাওয়া অনুসন্ধান ফলাফলের মাধ্যমে প্রম্পট বাড়ান। প্রতিক্রিয়ার গুণগত মান মূল্যায়ন করুন।
  • খরচ: আপনি কি ফাইন-টিউনিংয়ের খরচ নির্ধারণ করেছেন?
    • টিউনযোগ্যতা - ফাইন-টিউনিংয়ের জন্য পূর্ব-প্রশিক্ষিত মডেল কি উপলব্ধ?
    • প্রচেষ্টা - প্রশিক্ষণ ডেটা প্রস্তুতকরণ, মডেল মূল্যায়ন ও পরিমার্জনের জন্য
    • কম্পিউট - ফাইন-টিউনিং কাজ চালানো এবং ফাইন-টিউন করা মডেল প্রয়োগের জন্য
    • ডেটা - ফাইন-টিউনিং প্রভাবের জন্য পর্যাপ্ত মানের উদাহরণ পাওয়া
  • লাভ: আপনি কি ফাইন-টিউনিংয়ের সুবিধাসমূহ নিশ্চিত করেছেন?
    • গুণগত মান - ফাইন-টিউন করা মডেল কি ব্যাসলাইনকে ছাড়িয়ে গেছে?
    • খরচ - প্রম্পট সরল করায় টোকেন ব্যবহার কমায় কি?
    • সম্প্রসারণযোগ্যতা - আপনি কি নতুন ডোমেনের জন্য বেস মডেল পুনঃব্যবহার করতে পারবেন?

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

আপনি কি সিদ্ধান্ত গ্রহণ প্রক্রিয়া সম্পর্কে আরও তথ্য জানতে চান? দেখুন To fine-tune or not to fine-tune

কিভাবে একটি প্রি-ট্রেইনড মডেল ফাইন-টিউন করা যায়?

একটি প্রি-ট্রেইনড মডেল ফাইন-টিউন করতে আপনার দরকার:

  • ফাইন-টিউন করার জন্য একটি প্রি-ট্রেইনড মডেল
  • ফাইন-টিউনিংয়ের জন্য ব্যবহৃত একটি ডেটাসেট
  • ফাইন-টিউনিং কাজ চালানোর জন্য প্রশিক্ষণ পরিবেশ
  • ফাইন-টিউন করা মডেল প্রয়োগের জন্য একটি হোস্টিং পরিবেশ

ফাইন-টিউনিং ইন অ্যাকশন

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

প্রদানকারী টিউটোরিয়াল বিবরণ
OpenAI কিভাবে চ্যাট মডেল ফাইন-টিউন করবেন একটি নির্দিষ্ট ডোমেন ("রেসিপি সহকারী")এর জন্য gpt-35-turbo ফাইন-টিউন করতে শেখুন, প্রশিক্ষণ ডেটা প্রস্তুত করা, ফাইন-টিউনিং কাজ চালানো, এবং পরবর্তী ইনফারেন্সের জন্য ফাইন-টিউন করা মডেল ব্যবহার।
Azure OpenAI GPT 3.5 Turbo ফাইন-টিউনিং টিউটোরিয়াল Azure এ gpt-35-turbo-0613 মডেল ফাইন-টিউন করা শিখুন প্রশিক্ষণ ডেটা তৈরি ও আপলোড করা, ফাইন-টিউনিং কাজ চালানো, মডেল স্থাপন ও ব্যবহার করা।
Hugging Face Hugging Face দিয়ে LLM ফাইন-টিউনিং এই ব্লগ পোস্টটি আপনারকে open LLM (যেমন: CodeLlama 7B) ফাইন-টিউন করতে সাহায্য করবে, transformers লাইব্রেরি এবং Transformer Reinforcement Learning (TRL) ব্যবহার করে, এবং Hugging Face এর ওপেন datasets সহ।
🤗 AutoTrain AutoTrain দিয়ে LLM ফাইন-টিউনিং AutoTrain (অথবা AutoTrain Advanced) হচ্ছে Hugging Face-এর একটি পাইথন লাইব্রেরি যা LLM ফাইন-টিউনিং সহ বিভিন্ন কাজের জন্য ফাইন-টিউনিং সাপোর্ট করে। এটি একটি কোড-রহিত সমাধান এবং ফাইন-টিউনিং আপনার নিজের ক্লাউড, Hugging Face Spaces অথবা লোকালি করা যায়। এটি ওয়েব-ভিত্তিক GUI, CLI এবং yaml কনফিগ ফাইল ব্যবহার করে প্রশিক্ষণ সমর্থন করে।
🦥 Unsloth Unsloth দিয়ে LLM ফাইন-টিউনিং Unsloth একটি ওপেন-সোর্স ফ্রেমওয়ার্ক যা LLM ফাইন-টিউনিং এবং রিইনফোর্সমেন্ট লার্নিং (RL) সাপোর্ট করে। Unsloth লোকাল প্রশিক্ষণ, মূল্যায়ন, এবং স্থাপনা সহজ করে তোলে প্রস্তুত নোটবুকস সহ। এটি টেক্সট-টু-স্পিচ (TTS), BERT এবং মাল্টিমোডাল মডেলও সাপোর্ট করে। শুরু করতে তাদের ধাপে ধাপে Fine-tuning LLMs Guide পড়ুন।

অ্যাসাইনমেন্ট

উপরের টিউটোরিয়ালগুলোর কোনো একটি নির্বাচন করুন এবং অনুসরণ করুন। এই টিউটোরিয়ালের একটি সংস্করণ আমরা এই রিপো তে জুপিটার নোটবুকে রেফারেন্স হিসাবে রাখতে পারি। দয়া করে সর্বশেষ সংস্করণের জন্য সরাসরি মূল উৎস ব্যবহার করুন

চমৎকার কাজ! আপনার শেখা চালিয়ে যান।

এই পাঠ শেষ করার পর, আমাদের Generative AI Learning collection দেখুন যাতে আপনি আপনার জেনারেটিভ AI জ্ঞান আরও উন্নত করতে পারেন!

অভিনন্দন!! আপনি এই কোর্সের v2 সিরিজের শেষ পাঠ সম্পন্ন করেছেন! শেখা এবং নির্মাণ থামাবেন না। **এই নির্দিষ্ট বিষয়ের জন্য অতিরিক্ত পরামর্শের তালিকার জন্য RESOURCES পৃষ্ঠা দেখুন।

আমাদের v1 সিরিজের পাঠগুলোও নতুন অ্যাসাইনমেন্ট এবং ধারণাসমৃদ্ধ করা হয়েছে। তাই একটি মিনিট নিয়ে আপনার জ্ঞান রিফ্রেশ করুন - এবং অনুগ্রহ করে আপনার প্রশ্ন এবং প্রতিক্রিয়া শেয়ার করুন যাতে আমরা সম্প্রদায়ের জন্য এই পাঠগুলো উন্নত করতে পারি।


অস্বীকারোক্তি:
এই নথিটি AI অনুবাদ সেবা Co-op Translator ব্যবহার করে অনূদিত হয়েছে। আমরা যথাসাধ্য সঠিকতার চেষ্টা করি, তবে দয়া করে জানুন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল নথিটি তার নিজস্ব ভাষায় কর্তৃপক্ষসম্মত উৎস হিসেবে বিবেচিত হওয়া উচিত। গুরুত্বপূর্ণ তথ্যের জন্য পেশাদার মানুষের অনুবাদ প্রস্তাবিত। এই অনুবাদের ব্যবহার থেকে উদ্ভূত কোনও ভুলবোঝাবুঝি বা ভুলব্যাখ্যার জন্য আমরা দায়ী নই।