Hướng dẫn tinh chỉnh

Hướng dẫn này sẽ giúp bạn bắt đầu điều chỉnh Gemini API dịch vụ bằng SDK Python hoặc REST API sử dụng curl. Các ví dụ cho thấy cách điều chỉnh mô hình văn bản dịch vụ tạo văn bản Gemini API.

Xem trên ai.google.dev Dùng thử sổ tay Colab Xem sổ tay trên GitHub

Thiết lập tính năng xác thực

Gemini API cho phép bạn điều chỉnh các mô hình bằng dữ liệu của riêng mình. Vì đó là dữ liệu của bạn và các mô hình được điều chỉnh của bạn cần kiểm soát quyền truy cập nghiêm ngặt hơn so với các khoá API có thể cung cấp.

Trước khi chạy hướng dẫn này, bạn cần thiết lập OAuth cho dự án.

Liệt kê các mô hình được điều chỉnh

Bạn có thể kiểm tra các mô hình được điều chỉnh hiện có bằng genai.list_tuned_models .

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

Tạo mô hình được điều chỉnh

Để tạo một mô hình được điều chỉnh, bạn cần truyền tập dữ liệu vào mô hình trong genai.create_tuned_model. Bạn có thể thực hiện điều này bằng cách xác định trực tiếp các giá trị đầu vào và đầu ra trong lệnh gọi hoặc nhập từ một tệp vào một khung dữ liệu để truyền vào phương thức đó.

Trong ví dụ này, bạn sẽ điều chỉnh một mô hình để tạo số tiếp theo trong trình tự. Ví dụ: nếu đầu vào là 1 thì mô hình sẽ xuất ra 2. Nếu đầu vào là one hundred, thì đầu ra phải là 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

Các giá trị tối ưu cho số lượng thời gian bắt đầu của hệ thống, kích thước lô và tốc độ học là phụ thuộc trên tập dữ liệu và các hạn chế khác trong trường hợp sử dụng của bạn. Để tìm hiểu thêm về các giá trị này, xem Cài đặt chỉnh nâng caoSiêu tham số.

Do việc điều chỉnh một mô hình có thể mất đáng kể thời gian, nên API này không đợi để hoàn tất việc dò kênh. Thay vào đó, phương thức này sẽ trả về một google.api_core.operation.Operation cho phép bạn kiểm tra trạng thái của công việc điều chỉnh hoặc chờ công việc này hoàn tất và kiểm tra kết quả.

Mô hình đã được điều chỉnh của bạn sẽ được thêm ngay vào danh sách các mô hình đã được điều chỉnh, nhưng trạng thái được đặt thành "đang tạo" trong khi mô hình được điều chỉnh.

Kiểm tra tiến trình chỉnh

Bạn có thể kiểm tra tiến trình của thao tác điều chỉnh bằng cách sử dụng wait_bar() phương thức:

for status in operation.wait_bar():
    time.sleep(10)

Bạn cũng có thể dùng operation.metadata để kiểm tra tổng số bước điều chỉnh và operation.update() để làm mới trạng thái của hoạt động.

Bạn có thể huỷ công việc điều chỉnh bất cứ lúc nào bằng cách sử dụng phương thức cancel().

operation.cancel()

Thử mô hình

Bạn có thể sử dụng phương thức genai.generate_text và chỉ định tên của trình điều chỉnh để thử nghiệm hiệu suất của nó.

model = genai.GenerativeModel(model_name="tunedModels/my-increment-model")
result = model.generate_content("III")
print(result.text)  # "IV"

Cập nhật nội dung mô tả

Bạn có thể cập nhật mô tả của mô hình được điều chỉnh bất kỳ lúc nào bằng cách sử dụng genai.update_tuned_model.

genai.update_tuned_model('tunedModels/my-increment-model', {"description":"This is my model."})

Xoá mô hình

Bạn có thể dọn dẹp danh sách mô hình đã được điều chỉnh bằng cách xoá các mô hình bạn không cần nữa. Sử dụng phương thức genai.delete_tuned_model để xoá một mô hình. Nếu bạn đã huỷ bất kỳ điều chỉnh công việc, bạn có thể muốn xoá những công việc đó vì hiệu suất của chúng có thể khó đoán.

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