এই টিউটোরিয়ালটি আপনাকে পাইথন 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 কী কনফিগার করতে হবে।
আপনার API কী পান এবং সুরক্ষিত করুন
Gemini API কল করার জন্য আপনার একটি API কী প্রয়োজন। আপনার যদি ইতিমধ্যে একটি না থাকে তবে Google AI স্টুডিওতে একটি কী তৈরি করুন৷
এটি দৃঢ়ভাবে সুপারিশ করা হয় যে আপনি আপনার সংস্করণ নিয়ন্ত্রণ সিস্টেমে একটি API কী চেক করবেন না ৷
এই টিউটোরিয়ালটি অনুমান করে যে আপনি একটি পরিবেশ পরিবর্তনশীল হিসাবে আপনার API কী অ্যাক্সেস করছেন।
টিউন করা মডেলের তালিকা করুন
আপনি tunedModels.list
পদ্ধতির মাধ্যমে আপনার বিদ্যমান টিউন করা মডেলগুলি পরীক্ষা করতে পারেন।
# Sending a page_size is optional
curl -X GET https://generativelanguage.googleapis.com/v1beta/tunedModels?page_size=5 \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${access_token}" \
-H "x-goog-user-project: ${project_id}" > tuned_models.json
jq .tunedModels[].name < tuned_models.json
# Send the nextPageToken to get the next page.
page_token=$(jq .nextPageToken < tuned_models.json | tr -d '"')
if [[ "$page_token" != "null"" ]]; then
curl -X GET https://generativelanguage.googleapis.com/v1beta/tunedModels?page_size=5\&page_token=${page_token}?key=$GOOGLE_API_KEY \
-H "Content-Type: application/json" > tuned_models2.json
jq .tunedModels[].name < tuned_models.json
fi
একটি টিউন করা মডেল তৈরি করুন
একটি টিউন করা মডেল তৈরি করতে, আপনাকে tunedModels.create
পদ্ধতিতে মডেলটিতে আপনার ডেটাসেট পাস করতে হবে।
এই উদাহরণের জন্য, আপনি ক্রমানুসারে পরবর্তী সংখ্যা তৈরি করতে একটি মডেল টিউন করবেন। উদাহরণস্বরূপ, যদি ইনপুট 1
হয়, তাহলে মডেলটি 2
আউটপুট করবে। ইনপুট one hundred
হলে আউটপুট one hundred one
হতে হবে।
curl -X POST "https://generativelanguage.googleapis.com/v1beta/tunedModels?key=$GOOGLE_API_KEY" \
-H 'Content-Type: application/json' \
-d '
{
"display_name": "number generator model",
"base_model": "models/gemini-1.5-flash-001-tuning",
"tuning_task": {
"hyperparameters": {
"batch_size": 2,
"learning_rate": 0.001,
"epoch_count":5,
},
"training_data": {
"examples": {
"examples": [
{
"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",
}
]
}
}
}
}' | tee tunemodel.json
# Check the operation for status updates during training.
# Note: you can only check the operation on v1/
operation=$(cat tunemodel.json | jq ".name" | tr -d '"')
tuning_done=false
while [[ "$tuning_done" != "true" ]];
do
sleep 5
curl -X GET "https://generativelanguage.googleapis.com/v1/${operation}?key=$GOOGLE_API_KEY" \
-H 'Content-Type: application/json' \
2> /dev/null > tuning_operation.json
complete=$(jq .metadata.completedPercent < tuning_operation.json)
tput cuu1
tput el
echo "Tuning...${complete}%"
tuning_done=$(jq .done < tuning_operation.json)
done
# Or get the TunedModel and check it's state. The model is ready to use if the state is active.
modelname=$(cat tunemodel.json | jq ".metadata.tunedModel" | tr -d '"')
curl -X GET https://generativelanguage.googleapis.com/v1beta/${modelname}?key=$GOOGLE_API_KEY \
-H 'Content-Type: application/json' > tuned_model.json
cat tuned_model.json | jq ".state"
যুগের গণনা, ব্যাচের আকার এবং শেখার হারের জন্য সর্বোত্তম মানগুলি আপনার ডেটাসেট এবং আপনার ব্যবহারের ক্ষেত্রে অন্যান্য সীমাবদ্ধতার উপর নির্ভরশীল। এই মানগুলি সম্পর্কে আরও জানতে, উন্নত টিউনিং সেটিংস এবং হাইপারপ্যারামিটারগুলি দেখুন।
আপনার টিউন করা মডেলটি অবিলম্বে টিউন করা মডেলের তালিকায় যোগ করা হয়েছে, কিন্তু মডেলটি টিউন করার সময় এর অবস্থা "তৈরি করা" তে সেট করা হয়েছে৷
মডেল চেষ্টা করুন
আপনি tunedModels.generateContent
পদ্ধতি ব্যবহার করতে পারেন এবং এর কার্যকারিতা পরীক্ষা করতে টিউন করা মডেলের নাম উল্লেখ করতে পারেন।
curl -X POST https://generativelanguage.googleapis.com/v1beta/$modelname:generateContent?key=$GOOGLE_API_KEY \
-H 'Content-Type: application/json' \
-d '{
"contents": [{
"parts": [{
"text": "LXIII"
}]
}]
}' 2> /dev/null
মডেল মুছুন
আপনার আর প্রয়োজন নেই এমন মডেলগুলি মুছে দিয়ে আপনি আপনার টিউন করা মডেল তালিকা পরিষ্কার করতে পারেন৷ একটি মডেল মুছে ফেলার জন্য tunedModels.delete
পদ্ধতি ব্যবহার করুন। আপনি যদি কোনো টিউনিং কাজ বাতিল করেন, আপনি সেগুলি মুছে দিতে চাইতে পারেন কারণ তাদের কর্মক্ষমতা অপ্রত্যাশিত হতে পারে।
curl -X DELETE https://generativelanguage.googleapis.com/v1beta/${modelname}?key=$GOOGLE_API_KEY \
-H 'Content-Type: application/json'