Dostrajanie przy użyciu interfejsu Gemini API

Strategie projektowania promptów, takie jak prompty „few-shot”, nie zawsze zapewniają w odpowiednich wynikach wyszukiwania. Dostrajanie modelu to proces, który może poprawić wydajność modelu w przypadku określonych zadań lub pomóc mu spełnić określone wymagania dotyczące danych wyjściowych, gdy same instrukcje nie są wystarczające, a masz zestaw przykładów, które pokazują pożądane dane wyjściowe.

Ta strona zawiera ogólny przegląd dopracowywania modelu tekstowego usługi tekstowej Gemini API. Gdy wszystko będzie gotowe, możesz rozpocząć dostrajanie. W tym celu skorzystaj z samouczka na temat dostrajania. Jeśli chcesz zapoznać się z ogólnymi informacjami o dostosowywaniu LLM do konkretnych zastosowań, zapoznaj się z artykułem LLMs: Fine-tuning, distillation, and prompt engineering (Duże modele językowe: dostrajanie, skracanie i tworzenie promptów) w Szybkim szkoleniu z systemów uczących się.

Jak działa dostrojenie

Dostrojenie ma na celu zwiększenie wydajności modelu w przypadku konkretnego zadania. W ramach dostrajania dostarcza się modelowi zbiór danych treningowych, które zawierają wiele przykładów zadania. W przypadku niszowych zadań możesz: znacząco poprawiła wydajność modelu przez dostrojenie modelu na skromny większą liczbę przykładów. Ten rodzaj dostrajania modelu jest czasami określany jako dostrajania nadzorowanego, aby odróżnić je od innych rodzajów dostrajania.

Dane szkoleniowe powinny być uporządkowane w postaci przykładów z promptami i oczekiwanymi odpowiedziami. Możesz też dostosować modele, korzystając z przykładowych danych bezpośrednio w Google AI Studio. Celem jest nauczenie modelu naśladowania oczekiwanego zachowania. lub zadaniu, podając wiele przykładów ilustrujących takie zachowanie lub zadanie.

Gdy uruchomisz zadanie dostrajania, model nauczy się dodatkowych parametrów, które pomogą mu zakodować niezbędne informacje do wykonania pożądanego zadania lub wyuczyć się pożądanego zachowania. Parametry te można następnie wykorzystać podczas wnioskowania. Wynikiem zadania dostrojenia jest nowy model, który jest połączeniem nowo wyuczonych parametrów i pierwotnego modelu.

Przygotuj zbiór danych

Zanim zaczniesz dostrajać, potrzebujesz zbioru danych, za pomocą którego dostrój model. Aby uzyskać największą skuteczność, przykłady w zbiorze danych powinny być wysokiej jakości, zróżnicowane i reprezentatywne dla rzeczywistych danych wejściowych i wyjściowych.

Format

Przykłady zawarte w zbiorze danych powinny być zgodne z oczekiwaną wersją produkcyjną ruchu. Jeśli zbiór danych zawiera określone formatowanie, słowa kluczowe, instrukcje lub informacje, dane produkcyjne powinny być sformatowane w taki sam sposób i zawierać te same instrukcje.

Jeśli więc przykłady w zbiorze danych obejmują "question:" (pytanie) i "context:" (kontekst), ruch produkcyjny również powinien być sformatowany tak, aby obejmować "question:""context:" w takim samym porządku jak w przypadku przykładów w zbiorze danych. Jeśli wykluczysz kontekst, model nie rozpozna wzorca, nawet jeśli dokładne pytanie znajduje się w przykładzie w zbiorze danych.

Oto przykład danych treningowych Pythona dla aplikacji, która generuje następną liczbę w sekwencji:

training_data = [
  {"text_input": "1", "output": "2"},
  {"text_input": "3", "output": "4"},
  {"text_input": "-3", "output": "-2"},
  {"text_input": "twenty two", "output": "twenty three"},
  {"text_input": "two hundred", "output": "two hundred one"},
  {"text_input": "ninety nine", "output": "one hundred"},
  {"text_input": "8", "output": "9"},
  {"text_input": "-98", "output": "-97"},
  {"text_input": "1,000", "output": "1,001"},
  {"text_input": "10,100,000", "output": "10,100,001"},
  {"text_input": "thirteen", "output": "fourteen"},
  {"text_input": "eighty", "output": "eighty one"},
  {"text_input": "one", "output": "two"},
  {"text_input": "three", "output": "four"},
  {"text_input": "seven", "output": "eight"},
]

Pomocne może też być dodanie promptu lub wprowadzenia do każdego przykładowego zbioru danych. poprawi wydajność dostrojonego modelu. Pamiętaj, że jeśli w Twoim zbiorze danych znajduje się prompt lub wstęp, powinny one być również uwzględnione w promptach dostosowanego modelu w momencie wnioskowania.

Ograniczenia

Uwaga: podczas dostrajania zbiorów danych pod kątem Gemini 1.5 Flash: Ograniczenia:

  • Maksymalny rozmiar danych wejściowych na przykład to 40 000 znaków.
  • Maksymalny rozmiar wyjściowy na przykład wynosi 5000 znaków.

Rozmiar danych treningowych

Model możesz dostroić na podstawie zaledwie 20 przykładów. Dane dodatkowe zasadniczo poprawia jakość odpowiedzi. Powinien to być 100, i 500 przykładów w zależności od zastosowania. Tabela poniżej pokazuje zalecane rozmiary zbiorów danych do dostrajania modelu tekstowego do różnych typowych zadań:

Zadanie Liczba przykładów w zbiorze danych
Klasyfikacja 100+
Podsumowywanie 100-500+
Wyszukiwanie dokumentów 100+

Prześlij zbiór danych dostrajania

Dane są przekazywane w ramach interfejsu API lub za pomocą plików przesłanych w Google AI Studio.

Aby użyć biblioteki klienta, podaj plik danych w wyzwaniu createTunedModel. Maksymalny rozmiar pliku to 4 MB. Zobacz Krótkie wprowadzenie do dostrajania w języku Python aby rozpocząć.

Aby wywołać interfejs API REST za pomocą cURL, podaj przykłady treningowe w formacie JSON w argumencie training_data. Zobacz dostrajanie krótkiego wprowadzenia za pomocą cURL aby rozpocząć.

Zaawansowane ustawienia dostrajania

Podczas tworzenia zadania dostrajania możesz określić te ustawienia zaawansowane:

  • Epoki: pełne zaliczenie całego zestawu treningowego, dzięki któremu każdy został przetworzony raz.
  • Wielkość wsadu: zbiór przykładów używanych w 1 powtarzaniu trenowania. rozmiar wsadu określa liczbę przykładów we wsadzie.
  • Tempo uczenia się: liczba zmiennoprzecinkowa, która informuje algorytm, jak mocno dostosowywać parametry modelu na każdej iteracji. Na przykład współczynnik 0,3 będzie dostosowywał wagi i uśrednienia 3 razy skuteczniej niż współczynnik 0,1. Wysokie i niskie wskaźniki uczenia się zawierają unikalne kompromisy i należy je dostosować odpowiednio do przypadku użycia.
  • Mnożnik tempa uczenia się: mnożnik szybkości oryginalne tempo uczenia się. Wartość 1 oznacza użycie pierwotnego tempa uczenia się modelu. Wartości większe niż 1 zwiększają tempo uczenia się i wartości od 1 a 0 obniża tempo uczenia się.

W tabeli poniżej znajdziesz zalecane konfiguracje do dostrajania model podstawowy:

Hiperparametr Wartość domyślna Zalecane dostosowania
Epoch 5

Jeśli strata zacznie się stabilizować przed 5 epokami, użyj mniejszej wartości.

Jeśli wartość staje się zbieżna i nie wygląda na płaskowyż, użyj większej wartości.

Wielkość wsadu 4
Tempo uczenia się 0,001 W przypadku mniejszych zbiorów danych używaj mniejszej wartości.

Krzywa strat pokazuje, jak bardzo prognoza modelu odbiega od idealnej wartości w przykładach treningowych po każdej epoce. w miarę możliwości w najniższym punkcie krzywej tuż przed płaskowyżem. Przykład: Poniższy wykres przedstawia płaskowyż krzywej straty w okresie 4–6 epoki, co oznacza, że możesz ustawić parametr Epoch na 4, ale nadal uzyskiwać taką samą skuteczność.

Wykres liniowy przedstawiający krzywą strat modelu. Linia gwałtownie się zwiększa
pierwszej i drugiej epoki, po czym ostro spada do prawie 0 i wynosi poziom
po trzech epokach.

Sprawdzanie stanu zadania dostrajania

Stan zadania dostrajania możesz sprawdzić w Google AI Studio w Moja biblioteka lub za pomocą właściwości metadata dostrojonego modelu w Gemini API.

Rozwiązywanie problemów

Ta sekcja zawiera wskazówki dotyczące rozwiązywania błędów, które mogą wystąpić podczas podczas tworzenia modelu dostrojonego.

Uwierzytelnianie

Dostosowanie za pomocą interfejsu API i biblioteki klienta wymaga uwierzytelnienia. Możesz skonfigurować uwierzytelnianie, używając klucza interfejsu API (zalecane) lub danych logowania OAuth. Dokumentację konfigurowania klucza interfejsu API znajdziesz tu Skonfiguruj klucz interfejsu API.

Jeśli widzisz błąd 'PermissionDenied: 403 Request had insufficient authentication scopes', konieczne może być skonfigurowanie uwierzytelniania użytkownika za pomocą danych logowania OAuth. Aby skonfigurować dane logowania OAuth dla Pythona, otwórz samouczek konfiguracji OAuth.

Anulowane modele

Możesz anulować zadanie dopasowywania w dowolnym momencie przed jego zakończeniem. Pamiętaj jednak: wydajność wnioskowania w anulowanym modelu jest nieprzewidywalna, zwłaszcza jeśli zadanie dostrajania jest anulowane na wczesnym etapie trenowania. Jeśli anulujesz zadanie, ponieważ chcesz przerwać trenowanie na wcześniejszej epoce, utwórz nowe zadanie do dostosowania i ustaw epokę na niższą wartość.

Ograniczenia dostrojonych modeli

Uwaga: modele dostosowane mają te ograniczenia:

  • Limit danych wejściowych w dostosowanym modelu Gemini 1.5 Flash wynosi 40 tys. znaków.
  • Tryb JSON nie jest obsługiwany w przypadku dostrojonych modeli.
  • Możesz wpisywać tylko tekst.

Co dalej?

Zapoznaj się z samouczkami dotyczącymi dokładnego dostrajania: