Modele Gemma z dostrajaniem instrukcji (IT) są trenowane za pomocą specjalnego formatera, który dołącza dodatkowe informacje do wszystkich przykładów dostrajania instrukcji, zarówno podczas treningu, jak i podczas wnioskowania. Formatowanie służy do 2 celów:
- Wskazywanie ról w rozmowie, takich jak system, użytkownik czy asystent.
- oddzielanie od siebie poszczególnych wypowiedzi w rozmowie, zwłaszcza w rozmowie wieloetapowej;
Poniżej przedstawiamy tokeny kontrolne używane przez Gemma i ich przypadki użycia. Pamiętaj, że tokeny kontrolne są zarezerwowane w tokenizerze i są specyficzne dla niego.
- Token wskazujący kolejność użytkownika:
user
- Token wskazujący kolejność modelu:
model
- Token wskazujący początek okna dialogowego:
<start_of_turn>
- Token wskazujący koniec tury dialogu:
<end_of_turn>
Oto przykład dialogu:
<start_of_turn>user
knock knock<end_of_turn>
<start_of_turn>model
who is there<end_of_turn>
<start_of_turn>user
Gemma<end_of_turn>
<start_of_turn>model
Gemma who?<end_of_turn>
Token "<end_of_turn>\n"
to separator zdań, a prefiks prompta to "<start_of_turn>model\n"
. Oznacza to, że jeśli chcesz zadać modelowi pytanie, np. „Co to jest reguła Cramera?”, podaj mu dane w taki sposób:
"<start_of_turn>user
What is Cramer's Rule?<end_of_turn>
<start_of_turn>model"
Jeśli chcesz dostosować wstępnie wytrenowane modele Gemma do własnych danych, możesz użyć dowolnego schematu dla tokenów kontrolnych, o ile jest on spójny w przypadku przypadków użycia treningu i wykorzystywania wnioskowania.
Instrukcje systemowe
Modele Gemma dostosowane do instrukcji są przeznaczone do pracy tylko w 2 rolach:
user
i model
. Z tego powodu rola system
ani kolejność systemowa nie są obsługiwane.
Zamiast używać osobnej roli systemowej, podaj instrukcje na poziomie systemu bezpośrednio w pierwszym promptzie użytkownika. Umiejętność modela do wykonywania instrukcji pozwala Gemmie na skuteczne interpretowanie instrukcji. Na przykład:
<start_of_turn>user
Only reply like a pirate.
What is the answer to life the universe and everything?<end_of_turn>
<start_of_turn>model
Arrr, 'tis 42,<end_of_turn>