Logit_bias เป็นพารามิเตอร์เสริมที่ปรับความเป็นไปได้ที่ Token ที่ระบุจะปรากฏในผลลัพธ์ที่สร้างโดยโมเดล
พารามิเตอร์นี้รับออบเจ็กต์ JSON ที่แมป Token กับค่า bias ที่เกี่ยวข้องตั้งแต่ -100 (ซึ่งในกรณีส่วนใหญ่จะบล็อกไม่ให้สร้าง Token นั้น) ไปจนถึง 100 (การเลือก Token แบบเฉพาะเจาะจง ซึ่งทำให้มีแนวโน้มที่จะถูกสร้างมากขึ้น) ค่าระดับปานกลาง เช่น -1 และ 1 จะเปลี่ยนความน่าจะเป็นที่ Token จะถูกเลือกในระดับที่น้อยกว่า
เนื่องจากพารามิเตอร์รับ Token ไม่ใช่ข้อความ คุณจึงควรใช้เครื่องมือ tokenizerเพื่อแปลงข้อความเป็น ID ของ Token มาดูตัวอย่างกันสักสองสามตัวอย่าง
ตัวอย่างที่ 1: ลบ “time”
หากเราเรียก endpoint Completions ด้วยคำสั่ง “Once upon a,” completion มีแนวโน้มสูงมากที่จะเริ่มด้วย “ time.”
คำว่า “time” เมื่อ Tokenize แล้วจะได้ ID 2435 และคำว่า “ time” (ซึ่งมีเว้นวรรคที่จุดเริ่มต้น) เมื่อ Tokenize แล้วจะได้ ID 640 เราสามารถส่งค่าเหล่านี้ผ่าน logit_bias พร้อมค่า -100 เพื่อห้ามไม่ให้ปรากฏใน completion ได้ดังนี้:
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 สั่งห้าม Token นี้ไปแล้วในทางปฏิบัติ
ตัวอย่างที่ 2: ชี้นำด้วยค่า logit bias แบบเจาะจง
มาดูอีกตัวอย่างหนึ่งโดยใช้พรอมต์สำหรับสร้างสูตรอาหาร
สูตรอาหารจำนวนมากแนะนำให้ใช้หม้อ แต่สมมติว่าเราไม่มีหม้อ เราจึงต้องป้องกันไม่ให้คำว่า “pot” ถูกสร้างเป็นส่วนหนึ่งของข้อความเติมต่อ “Pot” แบ่งเป็น Token ที่มี ID 1787 เราจึงป้องกันไม่ให้คำนี้ถูกสร้างขึ้นได้ด้วยการตั้งค่า logit_bias ดังนี้
logit_bias={1787:-100}ตอนนี้ completion ของเราอาจมีคำว่า “saucepan” แทน เยี่ยม!
ตัวอย่างที่ 3: เพิ่มโอกาสให้คำหนึ่งปรากฏขึ้น
สมมติว่าเราต้องการเพิ่มโอกาสให้คำหนึ่งปรากฏขึ้น
ตัวอย่างเช่น เราอาจดูแลเว็บไซต์ที่นำเสนอสูตรอาหารซึ่งทำได้ด้วยไมโครเวฟ จึงต้องการให้แน่ใจว่าคำว่า “microwave” จะปรากฏในสูตรอาหาร Microwave แบ่งเป็น Token ที่มี ID 27000 เราเพิ่มโอกาสให้ Token นี้ปรากฏได้ด้วยการตั้งค่า logit_bias เป็นค่าบวก ดังนี้:
logit_bias={27000:5}ตอนนี้ ข้อความเติมต่อของเรามีแนวโน้มที่จะมีคำว่า “microwave” มากขึ้น
เราตั้งค่า logit_bias เป็น 5 เพราะพบว่าการตั้งค่า logit_bias เป็น 1 มักไม่ทำให้คำว่า “microwave” ปรากฏในข้อความเติมต่อ ขณะที่ค่า logit_bias ที่สูงกว่า เช่น 10 ทำให้คำว่า “ microwave” ปรากฏในข้อความเติมต่อบ่อยเกินไป
