Hướng dẫn tinh chỉnh

Hướng dẫn này sẽ giúp bạn bắt đầu sử dụng dịch vụ điều chỉnh API Gemini bằng SDK Python hoặc API REST thông qua 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

Các điểm hạn chế

Trước khi điều chỉnh mô hình, bạn nên lưu ý những hạn chế sau:

Tinh chỉnh tập dữ liệu

Việc tinh chỉnh tập dữ liệu cho Gemini 1.5 Flash có các hạn chế sau:

  • Kích thước đầu vào tối đa cho mỗi ví dụ là 40.000 ký tự.
  • Kích thước đầu ra tối đa cho mỗi ví dụ là 5.000 ký tự.
  • Chỉ hỗ trợ các ví dụ về cặp đầu vào-đầu ra. Không hỗ trợ các cuộc trò chuyện nhiều lượt trò chuyện theo kiểu trò chuyện.

Mô hình được điều chỉnh

Mô hình được điều chỉnh có những hạn chế sau:

  • Giới hạn đầu vào của mô hình Flash Gemini 1.5 được điều chỉnh là 40.000 ký tự.
  • Chế độ JSON không được hỗ trợ với các mô hình đã điều chỉnh.
  • Chỉ hỗ trợ nhập văn bản.

Trước khi bắt đầu: Thiết lập dự án và khoá API

Trước khi gọi Gemini API, bạn cần thiết lập dự án và định cấu hình khoá API của bạ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 đã điều chỉnh hiện có bằng phương thức tunedModels.list.

import google.generativeai as genai

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 của mình vào mô hình trong phương thức tunedModels.create.

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 dữ liệu đầu vào là 1, thì mô hình sẽ xuất ra 2. Nếu giá trị đầu vào là one hundred, thì kết quả sẽ là one hundred one.

import google.generativeai as genai

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

Giá trị tối ưu cho số lượng epoch, kích thước lô và tốc độ học phụ thuộc vào tập dữ liệu và các quy tắc ràng buộc khác của trường hợp sử dụng. Để 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ố.

Vì việc điều chỉnh mô hình có thể mất nhiều thời gian, nên API này không đợi quá trình điều chỉnh hoàn tất. 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 đã điều chỉnh của bạn sẽ được thêm ngay vào danh sách mô hình đã điều chỉnh, nhưng trạng thái của mô hình này sẽ được đặt thành "đang tạo" trong khi mô hình được điều chỉnh.

Kiểm tra tiến trình điều chỉnh

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

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 tunedModels.generateContent và chỉ định tên của mô hình được điều chỉnh để kiểm thử hiệu suất của mô hình đó.

import google.generativeai as genai

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 nội dung mô tả của mô hình đã điều chỉnh bất cứ lúc nào bằng cách sử dụng phương thức 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 đã điều chỉnh bằng cách xoá những mô hình bạn không cần nữa. Sử dụng phương thức tunedModels.delete để xoá một mô hình. Nếu bạn đã huỷ bất kỳ công việc điều chỉnh nào, bạn có thể muốn xoá những công việc đó dưới dạng thì hiệu suất của chúng có thể khó dự đoán.

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