آموزش تنظیم دقیق

این آموزش به شما کمک می کند تا با استفاده از Python SDK یا REST API با استفاده از curl شروع به کار با سرویس تنظیم API Gemini کنید. مثال‌ها نحوه تنظیم مدل متنی در پشت سرویس تولید متن Gemini API را نشان می‌دهند.

مشاهده در ai.google.dev یک نوت بوک کولب را امتحان کنید مشاهده نوت بوک در GitHub

محدودیت ها

قبل از تنظیم یک مدل، باید از محدودیت های زیر آگاه باشید:

تنظیم دقیق مجموعه داده ها

مجموعه داده های تنظیم دقیق برای Gemini 1.5 Flash دارای محدودیت های زیر است:

  • حداکثر اندازه ورودی در هر نمونه 40000 کاراکتر است.
  • حداکثر اندازه خروجی در هر نمونه 5000 کاراکتر است.
  • فقط نمونه های جفت ورودی-خروجی پشتیبانی می شوند. مکالمات چند نوبتی به سبک چت پشتیبانی نمی شود.

مدل های تیون شده

مدل های تنظیم شده دارای محدودیت های زیر هستند:

  • محدودیت ورودی یک مدل فلش جمینی 1.5 تنظیم شده 40000 کاراکتر است.
  • حالت JSON با مدل های تنظیم شده پشتیبانی نمی شود.
  • فقط ورودی متن پشتیبانی می شود.

قبل از شروع: پروژه و کلید API خود را تنظیم کنید

قبل از فراخوانی Gemini API، باید پروژه خود را راه اندازی کرده و کلید 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)

مقادیر بهینه برای تعداد دوره، اندازه دسته و نرخ یادگیری به مجموعه داده شما و سایر محدودیت‌های مورد استفاده شما بستگی دارد. برای کسب اطلاعات بیشتر در مورد این مقادیر، تنظیمات تنظیم پیشرفته و Hyperparameters را ببینید.

مدل را امتحان کنید

می توانید از روش tunedModels.generateContent استفاده کنید و نام مدل تنظیم شده را برای تست عملکرد آن مشخص کنید.

response = client.models.generate_content(
    model=tuning_job.tuned_model.model,
    contents='III'
)

اجرا نشده است

برخی از ویژگی‌ها (گزارش پیشرفت، به‌روزرسانی توضیحات، و حذف مدل‌های تنظیم‌شده) هنوز در SDK جدید پیاده‌سازی نشده‌اند.