Logit_bias to opcjonalny parametr, który modyfikuje prawdopodobieństwo pojawienia się określonych tokenów w danych wyjściowych wygenerowanych przez model.
Ten parametr przyjmuje obiekt JSON, który mapuje tokeny na powiązaną wartość odchylenia od -100 (co w większości przypadków zablokuje wygenerowanie tego tokena) do 100 (wyłączny wybór tokena, dzięki czemu jego wygenerowanie staje się bardziej prawdopodobne). Umiarkowane wartości, takie jak -1 i 1, zmienią prawdopodobieństwo wybrania tokena w mniejszym stopniu.
Ponieważ parametr przyjmuje tokeny, a nie tekst, warto użyć narzędzia do tokenizacji, aby przekonwertować tekst na identyfikatory tokenów. Przejdźmy przez kilka przykładów.
Przykład 1: Usuń „time”
Jeśli wywołamy punkt końcowy Completions z poleceniem „Once upon a”, uzupełnienie najprawdopodobniej zacznie się od „ time”.
Słowo „time” tokenizuje się do ID 2435, a słowo „ time” (ze spacją na początku) tokenizuje się do ID 640. Możemy przekazać je przez logit_bias z wartością -100, aby zablokować ich pojawianie się w uzupełnieniu, w ten sposób:
completion = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "system", "content": "Kończysz zdania użytkownika."},
"role": "user", "content": "Once upon a"} ]
logit_bias={2435:-100, 640:-100}
)Teraz polecenie „Once upon a” generuje uzupełnienie „midnight dreary, while I pondered, weak and weary”.
Zauważ, że słowo „time” nigdzie się nie pojawia, ponieważ za pomocą parametru logit_bias skutecznie zablokowaliśmy ten token.
Przykład 2: Sterowanie wynikiem za pomocą dobranych wartości odchylenia logitów
Przeanalizujmy kolejny przykład, tym razem z poleceniem dla generatora przepisów.
W wielu przepisach zaleca się użycie garnka, ale załóżmy, że go nie mamy. Chcemy więc zapobiec generowaniu słowa pot w naszym uzupełnieniu. Słowo „Pot” jest tokenizowane jako 1787, więc możemy wykluczyć je z generowanego tekstu, ustawiając parametr logit_bias w sposób pokazany poniżej.
logit_bias={1787:-100}Teraz nasze uzupełnienie może zamiast tego zawierać słowo „saucepan”. Doskonale!
Przykład 3: Zwiększanie prawdopodobieństwa wystąpienia słowa
Załóżmy, że chcemy zwiększyć prawdopodobieństwo wystąpienia danego słowa.
Załóżmy na przykład, że prowadzimy witrynę z przepisami na dania, które można przygotować w kuchence mikrofalowej, i chcemy mieć pewność, że w przepisie pojawi się słowo „microwave”. Słowo „Microwave” jest tokenizowane jako identyfikator 27000. Możemy zwiększyć prawdopodobieństwo wystąpienia tego tokenu, ustawiając dodatnią wartość parametru logit_bias w następujący sposób:
logit_bias={27000:5}Teraz w naszym uzupełnieniu z większym prawdopodobieństwem pojawi się słowo „microwave”.
Ustawiliśmy parametr logit_bias na 5, ponieważ przy wartości 1 słowo „microwave” często nie pojawiało się w uzupełnieniu, natomiast przy wyższych wartościach logit_bias, takich jak 10, słowo „ microwave” pojawiało się zbyt często.
