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

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.

Czy ten artykuł był pomocny?