OpenAI
ეს გვერდი მანქანური თარგმანის მეშვეობით ითარგმნა. სტატიის ინგლისური დედნის ნახვა.

logit bias-ის გამოყენება token-ის ალბათობის შესაცვლელად OpenAI API-ით

ისწავლეთ, როგორ გამოიყენოთ logit bias პარამეტრი მოდელის შედეგების შესაცვლელად

განახლებულია: 17 days ago

Logit_bias არასავალდებულო პარამეტრია, რომელიც ცვლის მითითებული token-ების მოდელის მიერ გენერირებულ შედეგში გამოჩენის ალბათობას.

ეს პარამეტრი იღებს JSON ობიექტს, რომელიც token-ებს უკავშირებს შესაბამის bias მნიშვნელობას -100-დან (რაც უმეტეს შემთხვევაში დაბლოკავს ამ token-ის გენერირებას) 100-მდე (token-ის ექსკლუზიური არჩევა, რაც მის გენერირებას უფრო სავარაუდოს ხდის). ზომიერი მნიშვნელობები, როგორიცაა -1 და 1, token-ის არჩევის ალბათობას უფრო მცირე ხარისხით შეცვლის.

რადგან პარამეტრი იღებს token-ებს და არა ტექსტს, ტექსტის token ID-ებად გარდასაქმნელად გამოიყენეთ tokenizer ინსტრუმენტი. მოდით, რამდენიმე მაგალითი განვიხილოთ.

მაგალითი 1: „time“-ის ამოღება

თუ Completions საბოლოო წერტილს მივმართავთ მოთხოვნით „Once upon a“, შევსება დიდი ალბათობით დაიწყება ასე: „ time“.

სიტყვა „time“ ტოკენებად დაყოფისას იღებს ID-ს 2435, ხოლო სიტყვა „ time“ (რომელსაც დასაწყისში ჰარი აქვს) ტოკენებად დაყოფისას იღებს ID-ს 640. შეგვიძლია ისინი logit_bias-ში -100 მნიშვნელობით გადავცეთ, რათა ავკრძალოთ მათი გამოჩენა შევსებაში, ასე:

completion = client.chat.completions.create( 
model="gpt-3.5-turbo",
messages=[{"role": "system", "content": "You finish user's sentences."},
"role": "user", "content": "Once upon a"} ]
logit_bias={2435:-100, 640:-100}
)

ახლა მოთხოვნა „Once upon a“ აგენერირებს გაგრძელებას „midnight dreary, while I pondered, weak and weary.“

გაითვალისწინეთ, რომ სიტყვა „time“ არსად გვხვდება, რადგან logit_bias-ის გამოყენებით ეს ტოკენი ფაქტობრივად ავკრძალეთ.

მაგალითი 2: მიმართულების მიცემა logit bias-ის მიზნობრივი მნიშვნელობებით

განვიხილოთ კიდევ ერთი მაგალითი რეცეპტების გენერატორის მოთხოვნის გამოყენებით.

ბევრ რეცეპტში ქვაბის გამოყენებაა რეკომენდებული, მაგრამ დავუშვათ, რომ ქვაბი არ გვაქვს. გვინდა, რომ სიტყვა pot ჩვენს გენერირებულ გაგრძელებაში არ გამოჩნდეს. 'Pot'-ის ტოკენიზაციის შედეგად მიიღება 1787, ამიტომ შეგვიძლია მისი გენერირება ქვემოთ ნაჩვენები logit_bias-ის დაყენებით ავირიდოთ თავიდან.

logit_bias={1787:-100}

ახლა ჩვენი შევსება შეიძლება მის ნაცვლად სიტყვას „saucepan“ მოიცავდეს. შესანიშნავია!

მაგალითი 3: სიტყვის გამოჩენის ალბათობის გაზრდა

დავუშვათ, გვინდა გავზარდოთ სიტყვის გამოჩენის ალბათობა.

მაგალითად, შეიძლება გვქონდეს საიტი, რომელიც მიკროტალღური ღუმელით მოსამზადებელ რეცეპტებს გვთავაზობს, ამიტომ გვინდა დავრწმუნდეთ, რომ რეცეპტში სიტყვა „microwave“ გამოჩნდება. Microwave-ის ტოკენიზაციის შედეგად მიიღება ID 27000. ამ ტოკენის გამოჩენის ალბათობა შეგვიძლია დადებითი logit_bias-ის დაყენებით გავზარდოთ, როგორც ქვემოთაა ნაჩვენები:

logit_bias={27000:5}

ახლა უფრო სავარაუდოა, რომ ჩვენს გენერირებულ გაგრძელებაში სიტყვა 'microwave' გამოჩნდეს.


logit_bias-ის მნიშვნელობა 5-ზე დავაყენეთ, რადგან შევამჩნიეთ, რომ logit_bias-ის 1-ზე დაყენებისას სიტყვა „microwave“ გენერირებულ გაგრძელებაში ხშირად არ ჩნდებოდა, ხოლო logit_bias-ის უფრო მაღალი მნიშვნელობების, მაგალითად 10-ის, გამოყენებისას სიტყვა „ microwave“ მეტისმეტად ხშირად ჩნდებოდა.

სასარგებლო იყო ეს სტატია?