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” จะสร้าง completion เป็น “midnight dreary, while I pondered, weak and weary.”
สังเกตว่าไม่พบคำว่า “time” ที่ใดเลย เพราะเราได้ห้าม Token นั้นอย่างมีประสิทธิภาพโดยใช้ logit_bias
ตัวอย่างที่ 2: กำหนดทิศทางด้วยค่า logit bias แบบเจาะจง
มาดูอีกตัวอย่างหนึ่ง โดยใช้คำสั่งสำหรับตัวสร้างสูตรอาหาร
สูตรอาหารหลายสูตรแนะนำให้ใช้หม้อ แต่สมมติว่าเราไม่มีหม้อ เราต้องการลบคำว่า pot ไม่ให้ถูกสร้างเป็นส่วนหนึ่งของ completion ของเรา “Pot” เมื่อ Tokenize แล้วจะได้ 1787 ดังนั้นเราจึงลบคำนี้ออกจากการสร้างของเราได้โดยตั้งค่า logit_bias ตามด้านล่าง
logit_bias={1787:-100}ตอนนี้ completion ของเราอาจมีคำว่า “saucepan” แทน เยี่ยม!
ตัวอย่างที่ 3: เพิ่มโอกาสที่คำหนึ่งจะปรากฏ
สมมติว่าเราต้องการเพิ่มความเป็นไปได้ที่คำหนึ่งจะปรากฏ
ตัวอย่างเช่น เราอาจกำลังดูแลเว็บไซต์ที่มีสูตรอาหารที่ทำด้วยไมโครเวฟได้ ดังนั้นเราจึงต้องการให้แน่ใจว่าคำว่า “microwave” ปรากฏในสูตรอาหาร Microwave เมื่อ Tokenize แล้วจะได้ ID 27000 เราสามารถเพิ่มความเป็นไปได้ที่ Token นี้จะปรากฏได้โดยตั้งค่า logit_bias เป็นค่าบวก ดังนี้:
logit_bias={27000:5}ตอนนี้ completion ของเรามีแนวโน้มที่จะมีคำว่า “microwave” มากขึ้น
เราตั้งค่า logit_bias เป็น 5 เนื่องจากเราพบว่าการตั้งค่า logit_bias เป็น 1 มักไม่ทำให้คำว่า “microwave” ปรากฏใน completion ขณะที่ค่า logit_bias ที่สูงกว่า เช่น 10 ทำให้คำว่า “ microwave” ปรากฏใน completion บ่อยเกินไป
