ফাইন-টিউনিং টিউটোরিয়াল

এই টিউটোরিয়ালটি আপনাকে পাইথন SDK বা কার্ল ব্যবহার করে REST API ব্যবহার করে Gemini API টিউনিং পরিষেবা শুরু করতে সাহায্য করবে। উদাহরণগুলি দেখায় কিভাবে Gemini API টেক্সট জেনারেশন পরিষেবার পিছনে টেক্সট মডেল টিউন করা যায়।

ai.google.dev-এ দেখুন একটি Colab নোটবুক ব্যবহার করে দেখুন GitHub এ নোটবুক দেখুন

সীমাবদ্ধতা

একটি মডেল টিউন করার আগে, আপনার নিম্নলিখিত সীমাবদ্ধতা সম্পর্কে সচেতন হওয়া উচিত:

ফাইন-টিউনিং ডেটাসেট

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

  • উদাহরণ প্রতি সর্বোচ্চ ইনপুট আকার 40,000 অক্ষর।
  • উদাহরণ প্রতি সর্বোচ্চ আউটপুট আকার হল 5,000 অক্ষর।
  • শুধুমাত্র ইনপুট-আউটপুট জোড়া উদাহরণ সমর্থিত। চ্যাট-স্টাইল মাল্টি-টার্ন কথোপকথন সমর্থিত নয়।

টিউন করা মডেল

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

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

আপনি শুরু করার আগে: আপনার প্রকল্প এবং API কী সেট আপ করুন

Gemini API কল করার আগে, আপনাকে আপনার প্রকল্প সেট আপ করতে হবে এবং আপনার API কী কনফিগার করতে হবে।

টিউন করা মডেলের তালিকা করুন

আপনি tunedModels.list পদ্ধতির মাধ্যমে আপনার বিদ্যমান টিউন করা মডেলগুলি পরীক্ষা করতে পারেন।

import google.generativeai as genai

for model_info in genai.list_tuned_models():
    print(model_info.name)

একটি টিউন করা মডেল তৈরি করুন

একটি টিউন করা মডেল তৈরি করতে, আপনাকে tunedModels.create পদ্ধতিতে মডেলটিতে আপনার ডেটাসেট পাস করতে হবে।

এই উদাহরণের জন্য, আপনি ক্রমানুসারে পরবর্তী সংখ্যা তৈরি করতে একটি মডেল টিউন করবেন। উদাহরণস্বরূপ, যদি ইনপুট 1 হয়, তাহলে মডেলটি 2 আউটপুট করবে। ইনপুট one hundred হলে আউটপুট one hundred one হতে হবে।

import google.generativeai as genai

import time

base_model = "models/gemini-1.5-flash-001-tuning"
training_data = [
    {"text_input": "1", "output": "2"},
    # ... more examples ...
    # ...
    {"text_input": "seven", "output": "eight"},
]
operation = genai.create_tuned_model(
    # You can use a tuned model here too. Set `source_model="tunedModels/..."`
    display_name="increment",
    source_model=base_model,
    epoch_count=20,
    batch_size=4,
    learning_rate=0.001,
    training_data=training_data,
)

for status in operation.wait_bar():
    time.sleep(10)

result = operation.result()
print(result)
# # You can plot the loss curve with:
# snapshots = pd.DataFrame(result.tuning_task.snapshots)
# sns.lineplot(data=snapshots, x='epoch', y='mean_loss')

model = genai.GenerativeModel(model_name=result.name)
result = model.generate_content("III")
print(result.text)  # IV

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

যেহেতু একটি মডেল টিউন করতে উল্লেখযোগ্য সময় লাগতে পারে, তাই এই API টিউনিং সম্পূর্ণ হওয়ার জন্য অপেক্ষা করে না। পরিবর্তে, এটি একটি google.api_core.operation.Operation অবজেক্ট প্রদান করে যা আপনাকে টিউনিং কাজের স্থিতি পরীক্ষা করতে বা এটি সম্পূর্ণ হওয়ার জন্য অপেক্ষা করতে এবং ফলাফলটি পরীক্ষা করতে দেয়৷

আপনার টিউন করা মডেলটি অবিলম্বে টিউন করা মডেলের তালিকায় যোগ করা হয়েছে, কিন্তু মডেলটি টিউন করার সময় এর অবস্থা "তৈরি করা" তে সেট করা হয়েছে৷

টিউনিং অগ্রগতি পরীক্ষা করুন

আপনি wait_bar() পদ্ধতি ব্যবহার করে টিউনিং অপারেশনের অগ্রগতি পরীক্ষা করতে পারেন:

for status in operation.wait_bar():
    time.sleep(10)

আপনি অপারেশনের স্থিতি রিফ্রেশ করতে টিউনিং ধাপের মোট সংখ্যা এবং operation.update() পরীক্ষা করতে operation.metadata ব্যবহার করতে পারেন।

আপনি cancel() পদ্ধতি ব্যবহার করে যেকোনো সময় আপনার টিউনিং কাজ বাতিল করতে পারেন।

operation.cancel()

মডেল চেষ্টা করুন

আপনি tunedModels.generateContent পদ্ধতি ব্যবহার করতে পারেন এবং এর কার্যকারিতা পরীক্ষা করতে টিউন করা মডেলের নাম উল্লেখ করতে পারেন।

import google.generativeai as genai

model = genai.GenerativeModel(model_name="tunedModels/my-increment-model")
result = model.generate_content("III")
print(result.text)  # "IV"

বর্ণনা আপডেট করুন

আপনি genai.update_tuned_model পদ্ধতি ব্যবহার করে যেকোনো সময় আপনার টিউন করা মডেলের বিবরণ আপডেট করতে পারেন।

genai.update_tuned_model('tunedModels/my-increment-model', {"description":"This is my model."})

মডেল মুছুন

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

genai.delete_tuned_model("tunedModels/my-increment-model")