इस ट्यूटोरियल की मदद से, Gemini API ट्यूनिंग सेवा का इस्तेमाल शुरू किया जा सकता है. इसके लिए, curl का इस्तेमाल करके, Python SDK या REST API में से किसी एक का इस्तेमाल करें. इन उदाहरणों में, Gemini API की टेक्स्ट जनरेशन सेवा के पीछे मौजूद टेक्स्ट मॉडल को ट्यून करने का तरीका बताया गया है.
![]() |
![]() |
![]() |
सीमाएं
किसी मॉडल को ट्यून करने से पहले, आपको इन सीमाओं के बारे में पता होना चाहिए:
डेटासेट को फ़ाइन-ट्यून करना
Gemini 1.5 Flash के लिए डेटासेट को बेहतर बनाने की सुविधा में ये सीमाएं हैं:
- हर उदाहरण के लिए, इनपुट का ज़्यादा से ज़्यादा साइज़ 40,000 वर्ण हो सकता है.
- हर उदाहरण के लिए, आउटपुट का ज़्यादा से ज़्यादा साइज़ 5,000 वर्ण हो सकता है.
- सिर्फ़ इनपुट-आउटपुट पेयर के उदाहरण काम करते हैं. चैट-स्टाइल वाली एक से ज़्यादा बार की जाने वाली बातचीत की सुविधा काम नहीं करती.
ट्यून किए गए मॉडल
ट्यून किए गए मॉडल की ये सीमाएं हैं:
- ट्यून किए गए Gemini 1.5 Flash मॉडल के लिए, इनपुट की सीमा 40,000 वर्ण है.
- ट्यून किए गए मॉडल के साथ JSON मोड काम नहीं करता.
- सिर्फ़ टेक्स्ट इनपुट का इस्तेमाल किया जा सकता है.
शुरू करने से पहले: अपना प्रोजेक्ट और एपीआई पासकोड सेट अप करना
Gemini API को कॉल करने से पहले, आपको अपना प्रोजेक्ट सेट अप करना होगा और अपनी एपीआई पासकोड को कॉन्फ़िगर करना होगा.
ट्यून किए गए मॉडल की सूची
tunedModels.list
तरीके का इस्तेमाल करके, ट्यून किए गए अपने मौजूदा मॉडल देखे जा सकते हैं.
from google import genai
client = genai.Client() # Get the key from the GOOGLE_API_KEY env variable
for model_info in client.models.list():
print(model_info.name)
ट्यून किया गया मॉडल बनाना
ट्यून किया गया मॉडल बनाने के लिए, आपको tunedModels.create
के तरीके से मॉडल में अपना डेटासेट पास करना होगा.
इस उदाहरण में, आपको क्रम में अगला नंबर जनरेट करने के लिए, मॉडल को ट्यून करना होगा. उदाहरण के लिए, अगर इनपुट 1
है, तो मॉडल को 2
आउटपुट देना चाहिए. अगर इनपुट one hundred
है, तो आउटपुट one hundred one
होना चाहिए.
# create tuning model
training_dataset = [
["1", "2"],
["3", "4"],
["-3", "-2"],
["twenty two", "twenty three"],
["two hundred", "two hundred one"],
["ninety nine", "one hundred"],
["8", "9"],
["-98", "-97"],
["1,000", "1,001"],
["10,100,000", "10,100,001"],
["thirteen", "fourteen"],
["eighty", "eighty one"],
["one", "two"],
["three", "four"],
["seven", "eight"],
]
training_dataset=types.TuningDataset(
examples=[
types.TuningExample(
text_input=i,
output=o,
)
for i,o in training_dataset
],
)
tuning_job = client.tunings.tune(
base_model='models/gemini-1.0-pro-001',
training_dataset=training_dataset,
config=types.CreateTuningJobConfig(
epoch_count= 5,
batch_size=4,
learning_rate=0.001,
tuned_model_display_name="test tuned model"
)
)
# generate content with the tuned model
response = client.models.generate_content(
model=tuning_job.tuned_model.model,
contents='III',
)
print(response.text)
एपिसोड की संख्या, बैच का साइज़, और लर्निंग रेट की सबसे सही वैल्यू, आपके डेटासेट और इस्तेमाल के उदाहरण की अन्य सीमाओं पर निर्भर करती हैं. इन वैल्यू के बारे में ज़्यादा जानने के लिए, बेहतर ट्यूनिंग सेटिंग और हाइपरपैरामीटर देखें.
मॉडल आज़माना
tunedModels.generateContent
के तरीके का इस्तेमाल करके, ट्यून किए गए मॉडल की परफ़ॉर्मेंस की जांच की जा सकती है. इसके लिए, मॉडल का नाम बताना ज़रूरी है.
response = client.models.generate_content(
model=tuning_job.tuned_model.model,
contents='III'
)
लागू नहीं किया गया
नए SDK टूल में, कुछ सुविधाएं अभी लागू नहीं की गई हैं. जैसे, प्रोग्रेस रिपोर्टिंग, ब्यौरा अपडेट करना, और ट्यून किए गए मॉडल मिटाना.