Dostrajanie przy użyciu interfejsu Gemini API

Strategie projektowania promptów (np. few shot prompting, czyli korzystanie z kilku przykładów) nie zawsze wystarczają do uzyskania pożądanych wyników. Dostrajanie to proces, który może poprawić wydajność w konkretnych zadaniach lub pomaga modelowi zachować zgodność z określonymi danymi wyjściowymi. wymagania, gdy instrukcje nie są wystarczające i masz zestaw przykładów które pozwolą Ci uzyskać oczekiwane wyniki.

Ta strona zawiera ogólne omówienie dopracowywania modelu tekstowego na podstawie Gemini API. Gdy wszystko będzie gotowe do dostrajania, wypróbuj samouczek dostrajania. Jeśli chcesz bardziej ogólnego wprowadzenia do dostosowywania modeli LLM do konkretnych przypadków użycia, spalone LLM: dostrajanie, oczyszczanie i inżynieria promptów w Szybkie szkolenie z systemów uczących się.

Jak działa dostrojenie

Celem dostrajania jest zwiększenie wydajności modelu konkretnego zadania. W ramach dostrajania dostarcza się modelowi zbiór danych treningowych, które zawierają wiele przykładów zadania. W przypadku zadań niszowych możesz uzyskać znaczną poprawę wydajności modelu, dostrajając go na niewielkiej liczbie przykładów. Ten rodzaj dostrajania modelu jest czasami nazywany dostrajaniem nadzorowanym, aby odróżnić go 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 uruchamiasz zadanie dostrajania, model uczy się dodatkowych parametrów, które pomagają mu zakodować informacje niezbędne do wykonania danego zadania lub poznać zachowanie użytkownika. Tych parametrów można później używać podczas wnioskowania. Dane wyjściowe funkcji zadanie dostrajania to nowy model, który jest właściwie kombinacją nowo utworzonych nauczone parametry i model oryginalny.

Przygotuj zbiór danych

Zanim zaczniesz dostrajanie, musisz mieć zbiór danych, na podstawie którego będziesz dostrajać model. Dla: a najlepszą wydajność, przykłady w zbiorze danych powinny być wysokiej jakości, zróżnicowanych i reprezentatywnych dla prawdziwych danych wejściowych i wyjściowych.

Format

Przykłady w Twoim zbiorze danych powinny być zgodne z oczekiwanym ruchem w środowisku produkcyjnym. 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 na przykład przykłady w zbiorze danych zawierają atrybuty "question:" i "context:", ruch produkcyjny powinien też być sformatowany tak, aby zawierał parametr "question:" i "context:" w tej samej kolejności, w jakiej występują w zbiorze danych przykłady. Jeśli wykluczysz kontekst, model nie będzie wiedział, o co pytasz, nawet jeśli dokładnie takie samo pytanie znajdowało się jako przykład 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: dane do dokładnego dostosowania w przypadku Gemini 1.5 Flash mają te ograniczenia:

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

Rozmiar danych treningowych

Model możesz dostroić na podstawie zaledwie 20 przykładów. Dane dodatkowe zasadniczo poprawia jakość odpowiedzi. W zależności od aplikacji należy ustawić od 100 do 500 przykładów. W tabeli poniżej znajdziesz zalecane rozmiary zbiorów danych do dopracowywania modelu tekstowego na potrzeby różnych typowych zadań:

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

Przesyłanie zbioru danych do dostrajania

Dane są przekazywane bezpośrednio przez interfejs API lub przez pliki przesłane do Google. AI Studio,

Aby korzystać z biblioteki klienta, podaj plik danych w wywołaniu createTunedModel. Maksymalny rozmiar pliku to 4 MB. Aby rozpocząć, zapoznaj się z krótkim przewodnikiem po dopracowywaniu modelu za pomocą Pythona.

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 do dostosowania możesz określić te ustawienia zaawansowane:

  • Epoki: pełne przeprowadzenie treningu na całym zbiorze treningowym, tak aby każdy przykład został przetworzony raz.
  • Wielkość wsadu: zbiór przykładów używanych w 1 powtarzaniu trenowania. Rozmiar wsadki określa liczbę przykładów we wsadzie.
  • Tempo uczenia się: liczba zmiennoprzecinkowa, która informuje algorytm, jak aby dostosować parametry modelu przy 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 wykorzystuje pierwotne tempo uczenia się dla funkcji model atrybucji. 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 korekty
Epoka 5

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

Jeśli straty się zbliżają, a nie osiągają plateau, użyj wyższej wartości.

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

Krzywa utraty pokazuje, jak bardzo prognoza modelu odbiega od idealnych prognoz w przypadku przykładów treningowych po każdej epoce. Najlepiej zakończyć trening w najniższym punkcie krzywej, tuż przed jej wyrównaniem. Na przykład wykres poniżej pokazuje, że krzywa strat osiąga plateau w okresie 4–6, co oznacza, że możesz ustawić parametr Epoch na 4 i nadal uzyskać taką samą skuteczność.

Wykres liniowy przedstawiający krzywą straty modelu. Linia osiąga szczyt między pierwszą a drugą epoką, a potem gwałtownie spada do prawie 0 i wyrównuje się po 3 epokach.

Sprawdzanie stanu zadania dostrajania

Stan zadania dostrojenia możesz sprawdzić w Google AI Studio na karcie Moja biblioteka lub za pomocą właściwości metadata dostrojonego modelu w interfejsie 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. Dostępne opcje skonfiguruj uwierzytelnianie za pomocą klucza interfejsu API (zalecane) lub protokołu OAuth dane logowania. Dokumentację dotyczącą konfigurowania klucza interfejsu API znajdziesz w artykule Konfigurowanie klucza 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 w Pythonie, zapoznaj się z samouczkiem konfiguracji OAuth.

Anulowane modele

Zadanie dostrajania możesz anulować 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 anulowano, ponieważ: chcesz przerwać trenowanie we wcześniejszej epoce, utwórz nowe dostrajanie i ustaw niższą wartość epoki.

Ograniczenia modeli dostrojonych

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.
  • Obsługiwane są tylko teksty.

Co dalej?

Zacznij od samouczków dotyczących dostrajania: