OpenAI
Ta strona została przetłumaczona maszynowo. Wyświetl oryginalny artykuł w języku angielskim.

Używanie logit bias do zmiany prawdopodobieństwa tokenów w API OpenAI

Dowiedz się, jak używać parametru logit bias do modyfikowania wyników modelu

Zaktualizowano: 12 days ago

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”.

Zwróć uwagę, że słowa „time” nigdzie nie ma, ponieważ skutecznie zablokowaliśmy ten token za pomocą logit_bias.

Przykład 2: Nadaj kierunek 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ęści 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 zamiast tego zawierać słowo „saucepan”. Doskonale!

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 być może prowadzimy stronę oferującą przepisy, które można przygotować w mikrofalówce, więc chcemy mieć pewność, że w przepisie pojawi się słowo „microwave”. Microwave tokenizuje się do ID 27000. Możemy zwiększyć prawdopodobieństwo pojawienia się tego tokena, ustawiając dodatnią wartość 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ż stwierdziliśmy, że ustawienie logit_bias na 1 często nie powodowało pojawienia się słowa „microwave” w uzupełnieniu, natomiast wyższe wartości logit_bias, takie jak 10, sprawiały, że słowo „ microwave” pojawiało się w uzupełnieniu zbyt często.

Czy ten artykuł był pomocny?