Gemini API এর সাথে ফাইন-টিউনিং

প্রম্পট ডিজাইনের কৌশল যেমন অল্প-শট প্রম্পটিং সবসময় আপনার প্রয়োজনীয় ফলাফল নাও দিতে পারে। ফাইন-টিউনিং হল এমন একটি প্রক্রিয়া যা নির্দিষ্ট কাজের ক্ষেত্রে আপনার মডেলের কর্মক্ষমতা উন্নত করতে পারে বা নির্দেশগুলি পর্যাপ্ত না হলে মডেলটিকে নির্দিষ্ট আউটপুট প্রয়োজনীয়তা মেনে চলতে সাহায্য করতে পারে এবং আপনার কাছে এমন উদাহরণের একটি সেট রয়েছে যা আপনি যে আউটপুটগুলি চান তা প্রদর্শন করে৷

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

কিভাবে ফাইন-টিউনিং কাজ করে

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

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

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

আপনার ডেটাসেট প্রস্তুত করুন

আপনি ফাইন-টিউনিং শুরু করার আগে, মডেলটি টিউন করার জন্য আপনার একটি ডেটাসেটের প্রয়োজন৷ সেরা পারফরম্যান্সের জন্য, ডেটাসেটের উদাহরণগুলি উচ্চ মানের, বৈচিত্র্যময় এবং বাস্তব ইনপুট এবং আউটপুটের প্রতিনিধি হওয়া উচিত।

বিন্যাস

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

উদাহরণস্বরূপ, যদি আপনার ডেটাসেটের উদাহরণগুলিতে একটি "question:" এবং একটি "context:" অন্তর্ভুক্ত থাকে, তাহলে উত্পাদন ট্র্যাফিককে একটি "question:" এবং একটি "context:" অন্তর্ভুক্ত করার জন্য ফর্ম্যাট করা উচিত যেভাবে এটি প্রদর্শিত হয় একই ক্রমে ডেটাসেটের উদাহরণ। আপনি যদি প্রসঙ্গটি বাদ দেন, তাহলে মডেলটি প্যাটার্নটি চিনতে পারবে না, এমনকি সঠিক প্রশ্নটি ডেটাসেটের উদাহরণে থাকলেও।

আরেকটি উদাহরণ হিসাবে, এখানে একটি অ্যাপ্লিকেশনের জন্য পাইথন প্রশিক্ষণের ডেটা রয়েছে যা একটি ক্রমানুসারে পরবর্তী সংখ্যা তৈরি করে:

training_data = [
  {"text_input": "1", "output": "2"},
  {"text_input": "3", "output": "4"},
  {"text_input": "-3", "output": "-2"},
  {"text_input": "twenty two", "output": "twenty three"},
  {"text_input": "two hundred", "output": "two hundred one"},
  {"text_input": "ninety nine", "output": "one hundred"},
  {"text_input": "8", "output": "9"},
  {"text_input": "-98", "output": "-97"},
  {"text_input": "1,000", "output": "1,001"},
  {"text_input": "10,100,000", "output": "10,100,001"},
  {"text_input": "thirteen", "output": "fourteen"},
  {"text_input": "eighty", "output": "eighty one"},
  {"text_input": "one", "output": "two"},
  {"text_input": "three", "output": "four"},
  {"text_input": "seven", "output": "eight"},
]

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

সীমাবদ্ধতা

দ্রষ্টব্য: জেমিনি 1.5 ফ্ল্যাশের জন্য ফাইন-টিউনিং ডেটাসেটগুলির নিম্নলিখিত সীমাবদ্ধতা রয়েছে:

  • উদাহরণ প্রতি সর্বোচ্চ ইনপুট আকার 40,000 অক্ষর।
  • উদাহরণ প্রতি সর্বোচ্চ আউটপুট আকার হল 5,000 অক্ষর।

প্রশিক্ষণ তথ্য আকার

আপনি 20টির মতো উদাহরণ সহ একটি মডেলকে সূক্ষ্ম-টিউন করতে পারেন। অতিরিক্ত ডেটা সাধারণত প্রতিক্রিয়াগুলির গুণমান উন্নত করে। আপনার আবেদনের উপর নির্ভর করে আপনার 100 থেকে 500টি উদাহরণ টার্গেট করা উচিত। নিম্নলিখিত সারণীটি বিভিন্ন সাধারণ কাজের জন্য একটি পাঠ্য মডেলকে সূক্ষ্ম-টিউন করার জন্য প্রস্তাবিত ডেটাসেট আকার দেখায়:

টাস্ক ডেটাসেটে উদাহরণের সংখ্যা
শ্রেণীবিভাগ 100+
সারসংক্ষেপ 100-500+
নথি অনুসন্ধান 100+

আপনার টিউনিং ডেটাসেট আপলোড করুন

ডেটা হয় API ব্যবহার করে বা Google AI স্টুডিওতে আপলোড করা ফাইলগুলির মাধ্যমে ইনলাইনে পাস করা হয়।

ক্লায়েন্ট লাইব্রেরি ব্যবহার করতে, createTunedModel কলে ডেটা ফাইল প্রদান করুন। ফাইল সাইজ সীমা 4 MB. শুরু করতে পাইথনের সাথে ফাইন-টিউনিং কুইকস্টার্ট দেখুন।

CURL ব্যবহার করে REST API কল করতে, training_data আর্গুমেন্টে JSON ফর্ম্যাটে প্রশিক্ষণের উদাহরণ প্রদান করুন। শুরু করতে curl সহ টিউনিং কুইকস্টার্ট দেখুন।

উন্নত টিউনিং সেটিংস

একটি টিউনিং কাজ তৈরি করার সময়, আপনি নিম্নলিখিত উন্নত সেটিংস নির্দিষ্ট করতে পারেন:

  • Epochs: সমগ্র প্রশিক্ষণ সেটের উপর একটি সম্পূর্ণ প্রশিক্ষণ পাস যাতে প্রতিটি উদাহরণ একবার প্রক্রিয়া করা হয়েছে।
  • ব্যাচের আকার: একটি প্রশিক্ষণের পুনরাবৃত্তিতে ব্যবহৃত উদাহরণের সেট। ব্যাচের আকার একটি ব্যাচে উদাহরণের সংখ্যা নির্ধারণ করে।
  • শেখার হার: একটি ফ্লোটিং-পয়েন্ট নম্বর যা অ্যালগরিদমকে বলে যে প্রতিটি পুনরাবৃত্তিতে মডেলের পরামিতিগুলিকে কতটা জোরালোভাবে সামঞ্জস্য করতে হবে। উদাহরণস্বরূপ, 0.3 এর শেখার হার 0.1 এর শেখার হারের চেয়ে তিনগুণ বেশি শক্তিশালীভাবে ওজন এবং পক্ষপাতগুলিকে সামঞ্জস্য করবে। উচ্চ এবং নিম্ন শিক্ষার হারগুলির নিজস্ব অনন্য ট্রেড-অফ রয়েছে এবং আপনার ব্যবহারের ক্ষেত্রের উপর ভিত্তি করে সামঞ্জস্য করা উচিত।
  • শেখার হার গুণক: হার গুণক মডেলের মূল শেখার হার পরিবর্তন করে। 1 এর মান মডেলের মূল শিক্ষার হার ব্যবহার করে। 1-এর বেশি মান শেখার হার বাড়ায় এবং 1 এবং 0-এর মধ্যে মান শেখার হার কমিয়ে দেয়।

নিম্নলিখিত সারণী একটি ফাউন্ডেশন মডেলকে সূক্ষ্ম-টিউন করার জন্য প্রস্তাবিত কনফিগারেশনগুলি দেখায়:

হাইপারপ্যারামিটার ডিফল্ট মান প্রস্তাবিত সমন্বয়
যুগ 5

যদি ক্ষতি 5 যুগের আগে মালভূমিতে শুরু হয়, তাহলে একটি ছোট মান ব্যবহার করুন।

যদি ক্ষতি একত্রিত হয় এবং মালভূমি বলে মনে হয় না, একটি উচ্চ মান ব্যবহার করুন।

ব্যাচের আকার 4
শেখার হার 0.001 ছোট ডেটাসেটের জন্য একটি ছোট মান ব্যবহার করুন।

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

লাইন চার্ট মডেলের জন্য ক্ষতি বক্ররেখা দেখাচ্ছে. প্রথম এবং দ্বিতীয় যুগের মধ্যে রেখাটি স্পাইক করে, তারপর তীব্রভাবে প্রায় 0-এ নেমে আসে এবং তিন যুগের পরে স্তরটি বেরিয়ে আসে।

টিউনিং কাজের স্থিতি পরীক্ষা করুন

আপনি Google AI স্টুডিওতে My Library ট্যাবের অধীনে বা Gemini API-এ টিউন করা মডেলের metadata বৈশিষ্ট্য ব্যবহার করে আপনার টিউনিং কাজের স্থিতি পরীক্ষা করতে পারেন।

সমস্যা সমাধান করুন

এই বিভাগে আপনার টিউন করা মডেল তৈরি করার সময় আপনি যে ত্রুটির সম্মুখীন হতে পারেন তার সমাধান করার টিপস অন্তর্ভুক্ত করে৷

প্রমাণীকরণ

API এবং ক্লায়েন্ট লাইব্রেরি ব্যবহার করে টিউন করার জন্য প্রমাণীকরণ প্রয়োজন। আপনি একটি API কী (প্রস্তাবিত) বা OAuth শংসাপত্র ব্যবহার করে প্রমাণীকরণ সেট আপ করতে পারেন৷ একটি API কী সেট আপ করার ডকুমেন্টেশনের জন্য, API কী সেট আপ দেখুন।

আপনি যদি 'PermissionDenied: 403 Request had insufficient authentication scopes' ত্রুটি দেখতে পান, তাহলে আপনাকে OAuth শংসাপত্র ব্যবহার করে ব্যবহারকারীর প্রমাণীকরণ সেট আপ করতে হতে পারে। পাইথনের জন্য OAuth শংসাপত্র কনফিগার করতে, আমাদের OAuth সেটআপ টিউটোরিয়াল দেখুন।

বাতিল মডেল

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

টিউন করা মডেলের সীমাবদ্ধতা

দ্রষ্টব্য: টিউন করা মডেলগুলির নিম্নলিখিত সীমাবদ্ধতা রয়েছে:

  • একটি টিউন করা জেমিনি 1.5 ফ্ল্যাশ মডেলের ইনপুট সীমা হল 40,000 অক্ষর৷
  • JSON মোড টিউন করা মডেলগুলির সাথে সমর্থিত নয়৷
  • শুধুমাত্র টেক্সট ইনপুট সমর্থিত.

এরপর কি

ফাইন-টিউনিং টিউটোরিয়াল দিয়ে শুরু করুন: