พื้นฐาน
Temperature และ Top-p ควบคุมอะไร
Temperature และ Top-p กำหนดว่าโมเดลเลือกโทเค็นถัดไปอย่างไร ไม่ใช่สิ่งที่โมเดลรู้ แต่ละการตั้งค่าเปลี่ยนอะไรจริงๆ ทำไมค่าต่ำกว่าจึงไม่ได้ดีกว่าเสมอไป และทำไม temperature ศูนย์ยังไม่ทำซ้ำได้แม่นยำสมบูรณ์
บทความทั้งหมด · ตรวจสอบล่าสุด:
มันปรับรูปแบบการเลือก ไม่ใช่ความรู้ของโมเดล
เมื่อถึงเวลาที่ temperature หรือ top-p มีผล โมเดลได้คำนวณความน่าจะเป็นของโทเค็นถัดไปที่เป็นไปได้ทุกตัวไว้แล้วตามบริบทปัจจุบัน การตั้งค่าทั้งสองไม่ได้เปลี่ยนที่มาของความน่าจะเป็นเหล่านั้น ซึ่งก็คือพารามิเตอร์ที่เรียนรู้มาของโมเดลและบริบทที่ได้รับ มันเปลี่ยนแค่วิธีเลือกโทเค็นจากการกระจายความน่าจะเป็นที่โมเดลสร้างไว้แล้ว
Temperature ปรับความคมชัดหรือความแบนของการกระจายนั้น
Temperature ที่ต่ำลงทำให้โทเค็นที่มีความน่าจะเป็นสูงสุดมีโอกาสถูกเลือกมากขึ้นไปอีก ผลลัพธ์จึงเอียงไปทางความต่อเนื่องที่น่าจะเป็นมากที่สุดเพียงหนึ่งเดียว และซ้ำมากขึ้นในแต่ละรอบที่แยกกัน Temperature ที่สูงขึ้นทำให้การกระจายแบนลง ให้โอกาสที่สมจริงมากขึ้นแก่โทเค็นที่มีความน่าจะเป็นต่ำกว่าในการถูกเลือก ซึ่งทำให้ถ้อยคำหลากหลายขึ้น และเปิดพื้นที่มากขึ้นให้โทเค็นที่ไม่น่าจะเป็นไปได้ บางครั้งแปลกๆ หลุดเข้ามา
Temperature ไม่ได้เพิ่มข้อมูลที่โมเดลไม่มี มันไม่สามารถเปลี่ยนการเดาที่ผิดให้กลายเป็นถูกได้ มันแค่เปลี่ยนว่าโมเดลยึดมั่นกับการเดาที่ตัวเองชอบอยู่แล้วมากแค่ไหน
Top-p จำกัดว่าโทเค็นใดจะถูกพิจารณาตั้งแต่แรก
Top-p หรือที่เรียกว่า nucleus sampling ทำงานต่างจาก temperature แทนที่จะปรับรูปความน่าจะเป็นทุกตัว มันจะจำกัดขอบเขตก่อนให้เหลือชุดโทเค็นอันดับต้นที่เล็กที่สุดซึ่งความน่าจะเป็นรวมกันถึงเกณฑ์ที่กำหนด แล้วจึงสุ่มจากชุดนั้นเท่านั้น Top-p ต่ำจะเก็บไว้เฉพาะโทเค็นหยิบมือหนึ่งที่โมเดลมั่นใจที่สุด ส่วน top-p สูงจะเปิดให้ทางเลือกที่สมเหตุสมผลหลากหลายมากขึ้น โดยทั่วไป temperature และ top-p จะถูกใช้ร่วมกัน ทีละขั้นตอน แทนที่จะใช้แทนกัน
Temperature ศูนย์ใกล้เคียงกับการกำหนดตายตัว แต่ไม่ใช่การกำหนดตายตัวอย่างสมบูรณ์
Temperature ที่เป็นศูนย์ หรือการตั้งค่าที่เทียบเท่ากับ "เลือกโทเค็นที่น่าจะเป็นมากที่สุดเสมอ" จะตัดขั้นตอนการสุ่มออกไป และโดยหลักการควรทำให้ผลลัพธ์ทำซ้ำได้สำหรับอินพุตที่เหมือนกัน แต่ในทางปฏิบัติ เลขคณิตจุดทศนิยมบน GPU ไม่ได้เป็นอิสระจากลำดับการคำนวณอย่างเคร่งครัด และโครงสร้างพื้นฐานของผู้ให้บริการอาจรวมกลุ่มหรือจัดลำดับการคำนวณใหม่ระหว่างคำขอ ผลก็คือพรอมต์เดียวกันที่ส่งสองครั้งด้วยการตั้งค่าที่กำหนดตายตัวที่สุดก็อาจได้ผลลัพธ์ต่างกันเป็นครั้งคราว โดยเฉพาะเมื่อโทเค็นผู้เข้าชิงสองตัวมีความน่าจะเป็นใกล้เคียงกันมาก
การตั้งค่าที่ต่ำกว่าไม่ได้ดีกว่าโดยอัตโนมัติ
การลดความสุ่มทำให้ผลลัพธ์ทำซ้ำได้มากขึ้น ไม่ใช่ถูกต้องมากขึ้น ความต่อเนื่องที่ผิดอย่างมั่นใจก็ยังผิดอย่างมั่นใจแม้ที่ temperature ต่ำ และการตั้งค่าที่ต่ำมากยังอาจทำให้เกิดถ้อยคำที่ซ้ำซากหรือแข็งทื่ออย่างเห็นได้ชัดในผลลัพธ์ที่ยาวขึ้น เพราะโมเดลเลือกโทเค็นที่ปลอดภัยและมีความน่าจะเป็นสูงตัวเดิมซ้ำแล้วซ้ำเล่า
การตั้งค่าที่ถูกต้องขึ้นอยู่กับว่าผลลัพธ์เอาไปใช้ทำอะไร
งานที่โดยพื้นฐานแล้วมีคำตอบที่ถูกต้องเพียงหนึ่งเดียว เช่น การดึงค่า การทำตามรูปแบบที่เข้มงวด การเขียนโค้ดที่ต้องคอมไพล์ผ่าน มักได้ประโยชน์จากความสุ่มที่น้อยลง เพราะความสม่ำเสมอสำคัญกว่าความหลากหลาย งานที่คำตอบหลายแบบล้วนดีได้ เช่น การระดมความคิด การร่างถ้อยคำทางเลือก การเขียนแบบเปิดกว้าง ได้ประโยชน์จากความสุ่มที่มากขึ้น เพราะความหลากหลายคือจุดประสงค์ตรงนั้นเอง ไม่มีการตั้งค่าใดทดแทนการให้บริบทที่ดีกว่าแก่โมเดล และไม่มีการตั้งค่าใดทดแทนการตรวจสอบคำตอบที่สำคัญจริงๆ
คำถามที่พบบ่อย
- Temperature ศูนย์ทำให้ผลลัพธ์กำหนดตายตัวหรือไม่
- เกือบใช่ แต่ไม่รับประกัน มันตัดความสุ่มโดยเจตนาของการสุ่มตัวอย่างออกไป แต่การคำนวณจุดทศนิยมและการรวมกลุ่มฝั่งผู้ให้บริการก็ยังอาจให้โทเค็นที่ต่างกันเป็นครั้งคราวเมื่อเสมอกันพอดีหรือการตัดสินใจที่สูสีมาก ดังนั้นคำขอที่เหมือนกันมักจะให้ผล—ไม่เสมอไป—ที่เหมือนกัน
- Temperature กับ top-p ต่างกันอย่างไร
- Temperature ปรับรูปความน่าจะเป็นของโทเค็นถัดไปที่เป็นไปได้ทุกตัว ส่วน top-p จะจำกัดขอบเขตก่อนให้เหลือชุดผู้เข้าชิงอันดับต้นที่เล็กที่สุดซึ่งความน่าจะเป็นเกินเกณฑ์ แล้วจึงสุ่มจากชุดนั้นเท่านั้น ทั้งสองทำงานกับการกระจายความน่าจะเป็นเดียวกันแต่ด้วยวิธีต่างกัน และมักถูกใช้ร่วมกัน
- Temperature ที่สูงขึ้นทำให้โมเดลสร้างสรรค์หรือรู้มากขึ้นหรือไม่
- มันเปลี่ยนความหลากหลายของถ้อยคำ ไม่ใช่ความรู้หรือการให้เหตุผล Temperature ที่สูงขึ้นอาจสร้างถ้อยคำที่หลากหลายขึ้น แต่ก็ยังดึงมาจากพารามิเตอร์ที่เรียนรู้มาชุดเดิม และอาจทำให้ความต่อเนื่องที่มีความน่าจะเป็นต่ำกว่าและคุณภาพด้อยกว่าปรากฏขึ้นได้ง่ายพอกัน
- ควรใช้การตั้งค่าต่ำที่สุดเสมอสำหรับงานที่เกี่ยวกับข้อเท็จจริงหรือไม่
- การตั้งค่าที่ต่ำลงทำให้ผลลัพธ์สม่ำเสมอมากขึ้น ซึ่งช่วยได้เมื่อความสม่ำเสมอคือเป้าหมายเอง แต่ไม่ได้แก้ไขคำตอบที่ผิดโดยพื้นฐาน ผลลัพธ์ที่ temperature ต่ำอาจผิดอย่างมั่นใจและซ้ำๆ ได้ การตรวจสอบข้อกล่าวอ้างเชิงข้อเท็จจริงยังคงต้องใช้แหล่งข้อมูลหรือการตรวจสอบที่เป็นอิสระ
ลองใช้ดีกว่าอ่านเฉยๆ
ClawAI มีการตั้งค่า temperature ต่อบทสนทนา ซึ่งใช้กับผู้ให้บริการที่รับคำขอนั้น แต่ไม่มี top-p เป็นการตั้งค่า ดังนั้น nucleus sampling จึงยังคงเป็นค่าเริ่มต้นของผู้ให้บริการแต่ละราย