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

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

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

განახლებულია: 8 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“ არსად ჩანს, რადგან ეს token ფაქტობრივად ავკრძალეთ logit_bias-ის გამოყენებით.

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

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

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

logit_bias={1787:-100}

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

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

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

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

logit_bias={27000:5}

ახლა ჩვენი შევსება უფრო დიდი ალბათობით მოიცავს სიტყვას „microwave“.

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

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