इस ट्यूटोरियल की मदद से, Python SDK या curl का इस्तेमाल करके, Gemini API ट्यूनिंग सेवा का इस्तेमाल शुरू किया जा सकता है. इन उदाहरणों में, Gemini API की टेक्स्ट जनरेशन सेवा के पीछे मौजूद टेक्स्ट मॉडल को ट्यून करने का तरीका बताया गया है.
शुरू करने से पहले
Gemini API को कॉल करने से पहले, पक्का करें कि आपने अपने पसंदीदा एसडीके टूल को इंस्टॉल कर लिया हो. साथ ही, Gemini API पासकोड को कॉन्फ़िगर कर लिया हो और वह इस्तेमाल के लिए तैयार हो.
सीमाएं
किसी मॉडल को ट्यून करने से पहले, आपको इन सीमाओं के बारे में पता होना चाहिए:
डेटासेट को फ़ाइन-ट्यून करना
Gemini 1.5 Flash के लिए डेटासेट को बेहतर बनाने की सुविधा में ये सीमाएं हैं:
- हर उदाहरण के लिए, इनपुट का ज़्यादा से ज़्यादा साइज़ 40,000 वर्ण हो सकता है.
- हर उदाहरण के लिए, आउटपुट का ज़्यादा से ज़्यादा साइज़ 5,000 वर्ण हो सकता है.
- सिर्फ़ इनपुट-आउटपुट पेयर के उदाहरण काम करते हैं. चैट-स्टाइल वाली कई बातचीत के साथ काम नहीं करता.
ट्यून किए गए मॉडल
ट्यून किए गए मॉडल की ये सीमाएं हैं:
- ट्यून किए गए Gemini 1.5 Flash मॉडल के लिए, इनपुट की सीमा 40,000 वर्ण है.
- ट्यून किए गए मॉडल के साथ JSON मोड काम नहीं करता.
- सिर्फ़ टेक्स्ट इनपुट का इस्तेमाल किया जा सकता है.
ट्यून किए गए मॉडल की सूची
tunedModels.list
तरीके का इस्तेमाल करके, ट्यून किए गए अपने मौजूदा मॉडल देखे जा सकते हैं.
from google import genai
from google.genai import types
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
के तरीके से मॉडल में अपना dataset पास करना होगा.
इस उदाहरण में, आपको क्रम में अगला नंबर जनरेट करने के लिए, मॉडल को ट्यून करना होगा. उदाहरण के लिए, अगर इनपुट 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.5-flash-001-tuning',
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 टूल में, कुछ सुविधाएं अभी लागू नहीं की गई हैं. जैसे, प्रोग्रेस रिपोर्टिंग, ब्यौरा अपडेट करना, और ट्यून किए गए मॉडल मिटाना.