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 memodifikasi output model

Diperbarui: 5 days ago

Logit_bias adalah parameter opsional yang memodifikasi 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 kebanyakan kasus akan memblokir token tersebut agar tidak dihasilkan) hingga 100 (pemilihan token secara eksklusif sehingga lebih mungkin dihasilkan). Nilai sedang seperti -1 dan 1 akan mengubah probabilitas token dipilih dalam tingkat yang lebih kecil.

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

Contoh 1: Hapus 'time'

Jika kita memanggil endpoint Completions dengan prompt “Once upon a,” penyelesaiannya sangat mungkin akan dimulai dengan “ time.”

Kata “time” ditokenisasi menjadi ID 2435 dan kata “ time” (yang memiliki spasi di awal) ditokenisasi menjadi ID 640. Kita bisa meneruskan ini melalui logit_bias dengan -100 untuk melarang keduanya muncul dalam completion, seperti ini:

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” tidak ada sama sekali, karena kita secara efektif telah melarang token tersebut menggunakan logit_bias.

Contoh 2: Beri arahan dengan nilai logit bias yang ditargetkan

Mari kita lihat contoh lain, menggunakan prompt generator resep.

Banyak resep menyarankan menggunakan pot, tetapi misalkan kita tidak punya pot. Kita ingin menghapus kata pot agar tidak dihasilkan sebagai bagian dari completion. 'Pot' ditokenisasi menjadi 1787 sehingga kita bisa menghapusnya dari generasi dengan menyetel logit_bias seperti di bawah ini.

logit_bias={1787:-100}

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

Contoh 3: Tingkatkan peluang sebuah kata muncul

Misalkan kita ingin meningkatkan kemungkinan sebuah kata muncul.

Misalnya, mungkin kita menjalankan situs yang menawarkan resep yang bisa Anda buat dengan microwave, jadi kita ingin memastikan kata “microwave” muncul dalam resep. Microwave ditokenisasi menjadi ID 27000. Kita dapat meningkatkan kemungkinan token ini muncul dengan menyetel logit_bias bernilai positif, seperti ini:

logit_bias={27000:5}

Sekarang, completion kita lebih mungkin menyertakan kata 'microwave'.

Kami menyetel logit_bias ke 5, karena kami mendapati bahwa menyetel 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” muncul terlalu sering dalam completion.

Apakah artikel ini membantu?