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

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

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

সীমাবদ্ধতা

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

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

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

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

টিউন করা মডেল

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

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

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

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

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

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

একটি টিউন করা মডেল তৈরি করতে, আপনাকে genai.create_tuned_model পদ্ধতিতে মডেলটিতে আপনার ডেটাসেট পাস করতে হবে। আপনি কলে ইনপুট এবং আউটপুট মান সরাসরি সংজ্ঞায়িত করে বা পদ্ধতিতে পাস করার জন্য একটি ডেটাফ্রেমে একটি ফাইল থেকে আমদানি করে এটি করতে পারেন।

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

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()

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

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

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."})

মডেল মুছুন

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

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