Top-k sampling (TH)
การสุ่มตัวอย่าง Top-k คือวิธีการ decoding แบบ stochastic ที่ใช้ในโมเดลภาษาแบบ autoregressive รวมถึงโมเดลภาษาขนาดใหญ่ (LLM) สำหรับการสร้างข้อความ เป้าหมายหลักคือการจำกัดการเลือก token ถัดไปให้อยู่ในกลุ่มผู้สมัครที่มีความน่าจะเป็นสูงสุดจำนวนคงที่ () เพื่อหลีกเลี่ยงการสร้างคำที่มีความน่าจะเป็นต่ำและมักไม่เหมาะสม วิธีนี้เป็นหนึ่งในการปรับปรุงแรกๆ จากการสุ่มตัวอย่างแบบง่าย และเป็นที่นิยมอย่างยาวนานในฐานะวิธีปรับปรุง coherence ของข้อความที่สร้างขึ้น
คำอธิบายอย่างง่าย
การสุ่มตัวอย่าง Top-k สามารถเข้าใจได้ว่าเป็นการเลือกคำถัดไปไม่จากตัวเลือกทั้งหมดที่เป็นไปได้ แต่จากรายการจำกัดที่มีความน่าจะเป็นสูงสุดเท่านั้น
ตัวอย่างเช่น โมเดลกำลังเติมประโยค «วันนี้ข้างนอกมี…». ในพจนานุกรมของโมเดลมีตัวต่อนับพัน: «ฝน», «ลม», «หิมะ», «พายุ» — และที่ไกลออกไปคือ «ควอนตัม» หรืออักขระสุ่ม หากไม่มีข้อจำกัด การสร้างข้อความจะเกิดการเสื่อมคุณภาพ (text degeneration) หลายรูปแบบ วิธีการแบบ maximization (greedy decoding, beam search) จะสร้างข้อความที่น่าเบื่อและซ้ำซาก ในขณะที่การสุ่มตัวอย่างแบบบริสุทธิ์โดยไม่ตัดทอนอาจทำให้ข้อความไม่ปะติดปะต่อ เนื่องจากการเลือก token ที่มีความน่าจะเป็นต่ำจาก «หางการแจกแจงที่ไม่น่าเชื่อถือ» Top-k มุ่งแก้ปัญหาที่สองเป็นหลัก — โดยการตัดหางออก จะลดความเสี่ยงของการต่อข้อความที่ไม่มีความหมาย แม้ว่าตัวมันเองจะไม่ขจัดปัญหาความซ้ำซากก็ตาม Top-k บอกว่า: «นำเฉพาะ คำที่มีความน่าจะเป็นสูงสุด ลืมส่วนที่เหลือ คำนวณความน่าจะเป็นใหม่ในกลุ่มนั้น แล้วเลือกหนึ่งคำแบบสุ่ม»
พูดง่ายๆ คือ:
- โมเดลสร้างรายการตัวต่อที่มีความน่าจะเป็นสูงสุด;
- นำเฉพาะ ตัวเลือกแรก;
- เลือกหนึ่งตัวเลือกจากรายการนั้นแบบสุ่ม
ยิ่ง น้อย ผลลัพธ์ยิ่งระมัดระวังและคาดเดาได้มากขึ้น ยิ่ง มาก การสร้างข้อความยิ่งอิสระและหลากหลายมากขึ้น
การเปรียบเทียบ:
- เมนูร้านอาหาร: แทนที่จะเลือกแบบสุ่มจากรายการ 5,000 รายการ (เสี่ยงได้ของที่กินไม่ได้) หรือสั่งแต่เมนูยอดนิยมเสมอ (น่าเบื่อ) บริกรจะนำเสนอเฉพาะ 40 รายการที่แนะนำสูงสุด — เลือกจากรายการที่สมเหตุสมผล อย่างไรก็ตาม บางครั้งในส่วนที่ถูกตัดออกอาจมีเมนูพิเศษที่คุณชอบพอดี — นั่นคือราคาของความสามารถในการคาดเดา
- รายชื่อผู้เข้ารอบสุดท้าย: จากผู้สมัครงาน 1,000 คน คัดเหลือเพียง 40 ประวัติที่ดีที่สุด แล้วจึงสัมภาษณ์
แนวคิดและคณิตศาสตร์
ในแต่ละขั้นตอนของการสร้างข้อความ โมเดลภาษามาตรฐานจะให้การแจกแจงความน่าจะเป็น ทั่วทั้งพจนานุกรม การสุ่มตัวอย่าง Top-k ดัดแปลงกระบวนการนี้ดังนี้:
- การคัดเลือกผู้สมัคร: จากพจนานุกรมทั้งหมด จะเลือกชุดย่อย ที่ประกอบด้วย token ที่มีความน่าจะเป็นสูงสุด
- การตัดออก: Logit (การทำนายดิบของโมเดลก่อนการใช้ Softmax) ของ token ทั้งหมดที่ไม่ได้อยู่ใน จะถูกกำหนดค่าเป็น ซึ่งหลังจาก normalization จะให้ความน่าจะเป็นเท่ากับ 0 อย่างเคร่งครัด
- การกระจายใหม่ (normalization): ความน่าจะเป็นของ token ที่เหลืออยู่จะถูก scale ให้ผลรวมใหม่เท่ากับ 1
- การสุ่มตัวอย่าง: token ถัดไปจะถูกเลือกแบบสุ่มจากการแจกแจงที่ถูกตัดทอนใหม่นี้
ดังนั้น Top-k จึงกำหนดเกณฑ์แบบเข้มงวดตามจำนวนผู้สมัคร: คำที่มีอันดับความน่าจะเป็นต่ำกว่า จะไม่ถูกเลือกเลย
ผลกระทบของพารามิเตอร์
- ขนาดเล็ก (เช่น – ): ทำให้การสร้างข้อความมีความอนุรักษ์นิยมและคาดเดาได้มากขึ้น โมเดลเลือกจากชุดคำที่มีความน่าจะเป็นสูงสุดที่จำกัดมาก ซึ่งเพิ่ม coherence แต่อาจทำให้ข้อความซ้ำซากและน่าเบื่อ
- ขนาดใหญ่ (เช่น – ): เพิ่มความหลากหลายและความคิดสร้างสรรค์ของข้อความ เนื่องจากมีตัวเลือกมากขึ้นในการสุ่มตัวอย่าง อย่างไรก็ตาม สิ่งนี้ยังเพิ่มความเสี่ยงของการรวม token ที่มีความเกี่ยวข้องน้อยหรือไม่เหมาะสม
- กรณีขอบเขต:
- : เทียบเท่ากับการ decoding แบบ greedy (greedy decoding) โมเดลจะเลือก token ที่มีความน่าจะเป็นสูงสุดเสมอ
- = ขนาดพจนานุกรม: เทียบเท่ากับการสุ่มตัวอย่างมาตรฐานจากการแจกแจงทั้งหมด โดยไม่มีการตัดทอน
ความสำคัญทางประวัติศาสตร์
การสุ่มตัวอย่าง Top-k ในฐานะวิธีการ decoding เป็นหนึ่งในการประยุกต์ใช้ที่ประสบความสำเร็จในช่วงแรกในงานของ Angela Fan และเพื่อนร่วมงาน (2018) ชื่อ «Hierarchical Neural Story Generation» ซึ่งผู้เขียนใช้ top-k random sampling (ด้วย ) ในระบบการสร้างเรื่องราวแบบลำดับชั้น และแสดงให้เห็นว่ากลยุทธ์ดังกล่าวมีประสิทธิภาพมากกว่า beam search และการสุ่มตัวอย่างแบบสมบูรณ์อย่างมีนัยสำคัญ ซึ่งเสี่ยงต่อการนำคำที่มีความน่าจะเป็นต่ำเข้ามา
อย่างไรก็ตาม งานสำคัญที่วิเคราะห์ปัญหาการเสื่อมคุณภาพของข้อความอย่างเป็นระบบ และแสดงให้เห็นว่าวิธีการ truncation รวมถึง top-k ปรับปรุงคุณภาพการสร้างข้อความได้อย่างมีนัยสำคัญ คือบทความของ Holtzman et al. (2019) ชื่อ «The Curious Case of Neural Text Degeneration» โดยผู้เขียนเสนอtop-p (nucleus sampling)เป็นทางเลือกที่ปรับตัวได้มากกว่า top-k โดยแสดงให้เห็นตาม HUSE metric ของตนว่า nucleus sampling ให้ผลลัพธ์ที่ดีกว่าในบรรดากลยุทธ์ที่เปรียบเทียบ
ตัวอย่างเช่น ในการสาธิตและคำแนะนำช่วงแรกสำหรับ GPT-2 มีการใช้ค่า `top_k=40` อย่างแพร่หลาย (ซึ่งกล่าวถึงในโค้ดของ OpenAI ว่าเป็น «generally a good value») ซึ่งช่วยสร้างข้อความที่ยาวและมี coherence
การเปรียบเทียบกับวิธีการ decoding อื่นๆ
Top-k vs. Top-p
Top-k ได้รับการเสริมในหลายด้าน และในงานบางประเภทถูกแทนที่ด้วยวิธีการที่พัฒนาขึ้นกว่า ได้แก่ การสุ่มตัวอย่าง Top-p (nucleus)
- จุดอ่อนหลักของ Top-k คือการขาดความสามารถในการปรับตัว ค่าคงที่ ไม่ได้คำนึงถึงรูปร่างของการแจกแจงความน่าจะเป็น:
- เมื่อการแจกแจงแหลมคม (โมเดลมั่นใจใน token เพียงไม่กี่ตัว) Top-k อาจขยายการสุ่มตัวอย่างอย่างไม่เป็นธรรมชาติ โดยรวม token ที่มีความน่าจะเป็นต่ำเข้าไปด้วย
- เมื่อการแจกแจงแบน (โมเดลไม่แน่ใจและ token จำนวนมากมีความน่าจะเป็นใกล้เคียงกัน) Top-k อาจตัดทอนตัวเลือกที่เหมาะสมจำนวนมากออกก่อนเวลาอันควร
- นอกจากนี้ Top-k ยังตัด «หาง» ของการแจกแจงอย่างเด็ดขาด (tail truncation) ทำให้ token ที่เหมาะสมกับบริบทแต่หายากอาจสูญหายไป — วิธีนี้สละความคิดสร้างสรรค์ที่อาจเกิดขึ้นเพื่อแลกกับ coherence
- Top-p ในทางตรงกันข้าม ปรับขนาดการสุ่มตัวอย่างแบบไดนามิก โดยคัดเลือก token ตามความน่าจะเป็นสะสม ทำให้มีความยืดหยุ่นและเชื่อถือได้มากกว่า
- ในทางปฏิบัติ ทั้งสองวิธีมักใช้ร่วมกันเป็น filter ต่อเนื่อง: วิธีหนึ่งจำกัดจำนวนผู้สมัครอย่างหยาบ อีกวิธีหนึ่งแคบการสุ่มตัวอย่างแบบไดนามิกตามความมั่นใจของโมเดล ลำดับการนำไปใช้ขึ้นอยู่กับการ implement ของ framework เฉพาะ
Top-k vs. อุณหภูมิ (Temperature)
- อุณหภูมิ (Temperature) เปลี่ยนรูปร่างของการแจกแจงความน่าจะเป็นทั้งหมด แต่ไม่ได้ตัด token ออก โดยส่งผลต่อความน่าจะเป็นสัมพัทธ์ของผู้สมัครทั้งหมด
- Top-k กำหนดการตัดอย่างเด็ดขาด โดยตัด token ที่อยู่นอกกลุ่ม top- ออกทั้งหมด
ในทางปฏิบัติ Top-k อาจใช้ร่วมกับอุณหภูมิและ Top-p ลำดับการนำ filter ไปใช้ขึ้นอยู่กับ framework: ตัวอย่างเช่น ใน Hugging Face Transformers ขั้นตอนคือ อุณหภูมิ → Top-k → Top-p กล่าวคือ อุณหภูมิจะ scale logit () ก่อน จากนั้น Top-k จะตัด «หาง» ยาวของ token ที่ไม่มีคุณภาพออก และหลังจากนั้น Top-p จะแคบการสุ่มตัวอย่างแบบไดนามิกตามความมั่นใจของโมเดล โดยแต่ละขั้นตอนอาจถูกข้ามขึ้นอยู่กับการตั้งค่า: หาก ขั้นตอน Top-k จะไม่ถูกนำไปใช้; หาก ขั้นตอน Top-p จะไม่ถูกนำไปใช้
การประยุกต์ใช้ในทางปฏิบัติ
แม้ว่า Top-p จะเป็นวิธีการที่ปรับตัวได้มากกว่าและมักใช้เป็นค่าเริ่มต้นสำหรับการสร้างข้อความแบบเปิด แต่ไม่มีวิธีการ decoding ที่ดีที่สุดในทุกกรณี — การเลือกที่เหมาะสมขึ้นอยู่กับงาน โมเดล และลำดับความสำคัญ (คุณภาพ ความเร็ว ความเสถียร) Top-k ยังคงเป็นพารามิเตอร์ที่ได้รับการสนับสนุนอย่างกว้างขวางในทุก framework หลัก (Hugging Face Transformers, vLLM และอื่นๆ) และถูกใช้งานอย่างแข็งขันทั้งแบบเดี่ยวและร่วมกับวิธีการอื่น
- ค่าทั่วไป: ในทางปฏิบัติมักใช้ค่า ในระดับหลายสิบ token (เช่น 10, 40, 50) แต่ค่าที่เหมาะสมที่สุดขึ้นอยู่กับโมเดลและงาน
- คำแนะนำ: สำหรับการสร้างข้อความแบบเปิด มักนิยม Top-p หากใช้ Top-k ควรใช้ร่วมกับอุณหภูมิที่พอเหมาะและเลือกค่า ให้เหมาะสมกับงานเฉพาะอย่างรอบคอบ Top-k ยังสะดวกในฐานะ «ตัวป้องกัน» เพิ่มเติมเมื่ออุณหภูมิสูง
- หมายเหตุ: ใน framework Top-k อาจใช้ร่วมกับ Repetition Penalty (การลงโทษสำหรับการซ้ำ) และพารามิเตอร์
no_repeat_ngram_sizeเพื่อป้องกันไม่ให้โมเดลวนซ้ำบนคำเดิมจากรายการ top-
เอกสารอ้างอิง
งานพื้นฐาน
- Fan, A. et al. (2018). Hierarchical Neural Story Generation. ACL Anthology. arXiv:1805.04833.
- Holtzman, A. et al. (2019). The Curious Case of Neural Text Degeneration. arXiv:1904.09751 (ICLR 2020).
- Finlayson, M. et al. (2024). Closing the Curious Case of Neural Text Degeneration. OpenReview:dONpC9GL1o (ICLR 2024).
อ่านเพิ่มเติม
- Meister, C. et al. (2022). Locally Typical Sampling. arXiv:2202.00666 (TACL 2023).
- Su, Y.; Lan, T.; Wang, Y.; Yogatama, D.; Kong, L.; Collier, N. (2022). A Contrastive Framework for Neural Text Generation. arXiv:2202.06417 (NeurIPS 2022).
- O'Brien, S.; Lewis, M. (2023). Contrastive Decoding Improves Reasoning in Large Language Models. arXiv:2309.09117.
- Shi, C. et al. (2024). A Thorough Examination of Decoding Methods in the Era of Large Language Models. ACL Anthology. arXiv:2402.06925.
- Ravfogel, S.; Goldberg, Y.; Goldberger, J. (2023). Conformal Nucleus Sampling. arXiv:2305.02633.
- Chen, S. J. et al. (2024). Decoding Game: On Minimax Optimality of Heuristic Text Generation Strategies. arXiv:2410.03968 (ICLR 2025).
- Sen, J. et al. (2025). Advancing Decoding Strategies: Enhancements in Locally Typical Sampling for LLMs. arXiv:2506.05387.
ดูเพิ่มเติม
- โมเดลภาษาขนาดใหญ่