Logit_bias to opcjonalny parametr, który modyfikuje prawdopodobieństwo pojawienia się określonych tokenów w danych wyjściowych generowanych przez model.
Ten parametr przyjmuje obiekt JSON, który mapuje tokeny na powiązaną wartość bias od -100 (co w większości przypadków zablokuje wygenerowanie tego tokenu) do 100 (wyłączny wybór tokenu, co zwiększa prawdopodobieństwo jego wygenerowania). Umiarkowane wartości, takie jak -1 i 1, zmienią prawdopodobieństwo wybrania tokenu w mniejszym stopniu.
Ponieważ parametr przyjmuje tokeny, a nie tekst, warto użyć narzędzia tokenizującego, 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,”, bardzo prawdopodobne jest, że uzupełnienie zacznie się od „ time.”
Słowo „time” tokenizuje się do identyfikatora 2435, a słowo „ time” (ze spacją na początku) tokenizuje się do identyfikatora 640. Możemy przekazać je przez logit_bias z wartością -100, aby zabronić ich pojawienia 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łowa „time” nigdzie nie ma, ponieważ skutecznie zablokowaliśmy ten token za pomocą logit_bias.
Przykład 2: Nadawanie kierunku za pomocą ukierunkowanych wartości logit bias
Przejdźmy przez kolejny przykład, używając polecenia generatora przepisów.
Wiele przepisów sugeruje użycie garnków, ale załóżmy, że nie mamy garnka. Będziemy chcieli usunąć słowo pot z generowania jako część naszego uzupełnienia. „Pot” tokenizuje się do 1787, więc możemy usunąć je z generowania, ustawiając logit_bias jak poniżej.
logit_bias={1787:-100}Teraz nasze uzupełnienie może zawierać zamiast tego słowo „saucepan”. Idealnie!
Przykład 3: Zwiększ szanse pojawienia się słowa
Załóżmy, że chcemy zwiększyć prawdopodobieństwo pojawienia się słowa.
Na przykład możemy prowadzić stronę z przepisami, które da się przygotować w kuchence mikrofalowej, więc chcemy mieć pewność, że w przepisie pojawi się słowo „microwave”. Microwave tokenizuje się do identyfikatora 27000. Możemy zwiększyć prawdopodobieństwo pojawienia się tego tokenu, ustawiając dodatni logit_bias, w ten sposób:
logit_bias={27000:5}Teraz nasze uzupełnienie z większym prawdopodobieństwem będzie zawierać słowo „microwave”.
Ustawiliśmy logit_bias na 5, ponieważ zauważyliśmy, że ustawienie logit_bias na 1 często nie powodowało pojawienia się słowa „microwave” w uzupełnieniu, podczas gdy wyższe wartości logit_bias, takie jak 10, powodowały zbyt częste pojawianie się słowa „ microwave” w uzupełnieniu.
