OpenAI
Halaman ini diterjemahkan oleh mesin. Lihat artikel asli dalam bahasa Inggris.

Menggunakan logit bias untuk mengubah probabilitas token dengan OpenAI API

Pelajari cara menggunakan parameter logit bias untuk mengubah output model

Diperbarui: 12 days ago

Logit_bias adalah parameter opsional yang mengubah kemungkinan token tertentu muncul dalam output yang dihasilkan model.

Parameter ini menerima objek JSON yang memetakan token ke nilai bias terkait dari -100 (yang dalam sebagian besar kasus akan memblokir token tersebut agar tidak dihasilkan) hingga 100 (pemilihan eksklusif token yang membuatnya lebih mungkin dihasilkan). Nilai sedang seperti -1 dan 1 akan mengubah probabilitas sebuah token dipilih dalam tingkat yang lebih kecil.

Karena parameter ini menerima token, bukan teks, Anda sebaiknya menggunakan alat tokenizer untuk mengonversi teks menjadi ID token. Mari kita bahas beberapa contoh.

Contoh 1: Menghapus “time”

Jika kita memanggil endpoint Completions dengan prompt “Once upon a,” completion kemungkinan besar akan dimulai dengan “ time.”

Kata “time” dipecah menjadi token dengan ID 2435 dan kata “ time” (yang memiliki spasi di awal) dipecah menjadi token dengan ID 640. Kita dapat meneruskan keduanya melalui logit_bias dengan -100 untuk melarangnya muncul dalam completion, seperti berikut:

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}
)

Sekarang, prompt “Once upon a” menghasilkan completion “midnight dreary, while I pondered, weak and weary.”

Perhatikan bahwa kata “time” sama sekali tidak ditemukan, karena kita secara efektif telah melarang token tersebut menggunakan logit_bias.

Contoh 2: Memberi arahan dengan nilai logit bias yang ditargetkan

Mari kita bahas contoh lain, menggunakan prompt generator resep.

Banyak resep menyarankan penggunaan pot, tetapi misalkan kita tidak memiliki pot. Kita ingin menghapus kata pot agar tidak dihasilkan sebagai bagian dari completion kita. “Pot” dipecah menjadi token 1787 sehingga kita dapat menghapusnya dari generation dengan mengatur logit_bias kita seperti di bawah ini.

logit_bias={1787:-100}

Sekarang, completion kita mungkin menyertakan kata “saucepan” sebagai gantinya. Sempurna!

Contoh 3: Meningkatkan peluang sebuah kata muncul

Misalkan kita ingin meningkatkan kemungkinan sebuah kata muncul.

Misalnya, mungkin kita menjalankan situs yang menawarkan resep yang bisa dibuat dengan microwave, jadi kita ingin memastikan kata “microwave” muncul dalam resep. Microwave dipecah menjadi token dengan ID 27000. Kita dapat meningkatkan kemungkinan token ini muncul dengan menetapkan logit_bias positif, seperti berikut:

logit_bias={27000:5}

Sekarang, completion kita lebih mungkin menyertakan kata “microwave”.

Kita mengatur logit_bias ke 5, karena kami mendapati bahwa mengatur logit_bias ke 1 sering kali tidak membuat kata “microwave” muncul dalam completion, sementara nilai logit_bias yang lebih tinggi seperti 10 membuat kata “ microwave” terlalu sering muncul dalam completion.

Apakah artikel ini membantu?