---
title: "Top-p sampling (TH)"
source: "https://systems-analysis.info/int/Top-p_sampling_(TH)"
wiki: "systems-analysis.info/int"
article: "Top-p_sampling_(TH)"
language: "th"
categories:
  - "Category:Core LLM concepts"
  - "Category:Large language models"
  - "Category:LLM core concepts"
  - "Category:Machine learning"
  - "Category:Thai"
revision_id: 8224
wiki_created_at: 2026-09-07T01:14:10Z
wiki_modified_at: 2026-09-07T01:14:10Z
downloaded_at: 2026-09-07T23:24:09Z
---

# Top-p sampling (TH)

**การสุ่มตัวอย่างแบบ Top‑p** หรือที่รู้จักในชื่อ **การสุ่มตัวอย่างแบบนิวเคลียส** (Nucleus Sampling) คือวิธีการถอดรหัสแบบสุ่มสำหรับโมเดลภาษาแบบ autoregressive ซึ่งถูกนำไปใช้อย่างแพร่หลายรวมถึงใน LLM ขนาดใหญ่ วิธีนี้ถูกเสนอในปี 2019 โดย Ari Holtzman และคณะ (preprint arXiv — เมษายน 2019; ตีพิมพ์ใน ICLR 2020) ในฐานะทางเลือกที่ปรับปรุงแล้วสำหรับการสุ่มตัวอย่างแบบ Top‑k แบบคงที่ แนวคิดของวิธีนี้คือการเลือกกลุ่มผู้สมัครแบบไดนามิกในแต่ละขั้นตอนของการสร้างข้อความตามเกณฑ์ความน่าจะเป็นสะสม $p$<sup>[\[1\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-holtzman2019-1)</sup>

## พื้นหลังทางประวัติศาสตร์: ปัญหาการเสื่อมถอยของข้อความจาก Neural Network

ก่อนการปรากฏตัวของ Top‑p กลยุทธ์การถอดรหัสที่ครองตลาดคือ **การค้นหาแบบโลภ** (*greedy search*) และ **การค้นหาแบบลำแสง** (*beam search*) ซึ่งอิงบนกระบวนทัศน์การเพิ่มความน่าจะเป็นสูงสุด — การเลือกลำดับ token ที่มีความน่าจะเป็นรวมสูงที่สุด การค้นหาแบบโลภจะเลือก token ที่มีความน่าจะเป็นสูงสุดในแต่ละขั้นตอนแบบโลคัล ในขณะที่การค้นหาแบบลำแสงจะติดตามสมมติฐานการสร้างข้อความหลายรายการพร้อมกัน<sup>[\[1\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-holtzman2019-1)</sup>

แม้ว่าวิธีเหล่านี้จะมีประสิทธิภาพในงานแบบปิด (การแปลภาษา การดึงข้อมูล) แต่เมื่อเปลี่ยนไปใช้กับงานการสร้างข้อความแบบเปิด (การเขียนเรื่องราว ระบบสนทนา) มักนำไปสู่ **การเสื่อมถอยของข้อความจาก Neural Network** ซึ่งเป็นภาวะที่ผลลัพธ์เสื่อมถอย ข้อความกลายเป็นแม่แบบ สูญเสียความเชื่อมโยง หรือวนซ้ำ ปรากฏการณ์นี้ถูกอธิบายอย่างละเอียดโดย Holtzman และคณะในงานวิจัย *The Curious Case of Neural Text Degeneration*<sup>[\[1\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-holtzman2019-1)</sup>

Meister และคณะเชื่อมโยงปัญหาการเสื่อมถอยกับข้อเท็จจริงที่ว่าข้อความของมนุษย์มีแนวโน้มที่จะรักษาเนื้อหาเชิงข้อมูลใกล้เคียงกับ entropy เงื่อนไขที่คาดหวัง แทนที่จะเพิ่มความน่าจะเป็นโลคัลของ token ถัดไปให้สูงสุดเท่านั้น<sup>[\[2\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-meister2023-2)</sup>

ทางเลือกหนึ่งคือ **การสุ่มตัวอย่างแบบสุ่มล้วน** (*sampling without truncation*) ซึ่ง token ถูกเลือกแบบสุ่มตามความน่าจะเป็น อย่างไรก็ตาม วิธีนี้ก่อให้เกิดปัญหาตรงกันข้าม: ฟังก์ชัน Softmax ไม่เคยกำหนดความน่าจะเป็นเป็นศูนย์อย่างเคร่งครัดให้กับ token ใด ดังนั้นในคำศัพท์หลายหมื่นคำจึงมีโซนของ token ที่เป็นสัญญาณรบกวนอยู่เสมอ การสุ่มตัวอย่างแบบล้วนเพิ่มความเสี่ยงของการตกเข้าไปในส่วนหางที่ไม่น่าเชื่อถือของการแจกแจง ซึ่งอาจทำให้ความเชื่อมโยงของข้อความที่สร้างขึ้นเสื่อมลง<sup>[\[1\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-holtzman2019-1)[\[3\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-arxiv-hall-3)</sup> ความจำเป็นในการผสมผสานความหลากหลายของการเลือกแบบสุ่มกับความน่าเชื่อถือของข้อจำกัดแบบกำหนดได้นำไปสู่การพัฒนาวิธีการตัดการแจกแจง โดยมีการสุ่มตัวอย่างแบบนิวเคลียส (Top‑p) เป็นวิธีชั้นนำ<sup>[\[1\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-holtzman2019-1)[\[4\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-finlayson2024-4)</sup>

## คำอธิบายแบบง่าย

**การสุ่มตัวอย่างแบบ Top-p** คือวิธีจำกัดการเลือก token ถัดไปเฉพาะตัวเลือกที่ **น่าจะเป็นมากที่สุด** โดยไม่กำหนดจำนวนไว้ล่วงหน้า

ในการสร้างข้อความ โมเดลภาษาในแต่ละขั้นตอนจะประเมินความเป็นไปได้หลายอย่างและกำหนดความน่าจะเป็นให้กับแต่ละตัวเลือก บาง token มีความน่าจะเป็นสูง บางตัวมีความน่าจะเป็นปานกลาง และส่วนใหญ่ของคำศัพท์ก่อตัวเป็น "ส่วนหาง" ของการแจกแจง: ตัวเลือกที่มีความน่าจะเป็นต่ำมากซึ่งถูกต้องตามรูปแบบ แต่มักจะสุ่มเสี่ยง ไม่เหมาะสม หรือทำให้ความเชื่อมโยงของข้อความเสื่อมลง

การสุ่มตัวอย่างแบบ Top-p ตัดส่วนหางที่มีความน่าจะเป็นต่ำนี้ออก **ไม่ใช่โดยจำนวน token ที่กำหนด** แต่โดย **ความน่าจะเป็นรวม** ก่อนอื่นผู้สมัครทั้งหมดจะถูกเรียงลำดับจากมากที่สุดไปน้อยที่สุด จากนั้นจะเลือกกลุ่มขั้นต่ำของ token ด้านบนที่มีความน่าจะเป็นรวมถึงเกณฑ์ที่กำหนด $p$ เช่น 0.9 หรือ 0.95 หลังจากนั้น token ถัดไปจะถูกเลือกแบบสุ่มจากกลุ่มนี้เท่านั้น โดยตัวเลือกอื่นทั้งหมดจะถูกยกเว้น

ตัวอย่างเช่น หากโมเดลกำลังต่อประโยค "วันนี้บนถนนมีฝน..." ในบรรดาตัวเลือกที่น่าจะเป็นมากที่สุดอาจมี "ตก" (0.45), "ไหลบ่า" (0.25), "หิมะ" (0.15) และ "ลม" (0.10) ที่เกณฑ์ $p = 0.90$ อัลกอริทึมจะรวม token ตามลำดับความน่าจะเป็นที่ลดลง: 0.45 + 0.25 = 0.70 (น้อยกว่า 0.90) เพิ่ม "หิมะ": 0.70 + 0.15 = 0.85 (ยังน้อยกว่า 0.90) เพิ่ม "ลม": 0.85 + 0.10 = 0.95 (เกินเกณฑ์) นิวเคลียสถูกสร้างจาก token สี่ตัว ตัวเลือกที่หายากกว่าทั้งหมดจะถูกทิ้ง และความน่าจะเป็นของตัวที่เหลือจะถูก normalize: ดังนั้นความน่าจะเป็นของ token "ตก" หลัง normalize จะเป็น $0.45/0.95 \approx 47.4\%$ และตัวสร้างจะเลือก token ถัดไปจากการแจกแจงที่อัปเดตนี้

ความแตกต่างหลักจาก Top‑k คือ Top‑k จะใช้ **จำนวนคงที่** ของคำที่ดีที่สุดเสมอ (เช่น 50) ในขณะที่ Top‑p ไม่กำหนดจำนวนตัวเลือกไว้ล่วงหน้า: บางครั้งอาจเป็น 3 คำ บางครั้ง 20 คำ — ขึ้นอยู่กับว่าความน่าจะเป็นกระจายอยู่อย่างไรในขั้นตอนนั้น ด้วยเหตุนี้วิธีนี้จึงปรับตัวตามบริบทและช่วยตัดส่วนหางของ token ที่มีความน่าจะเป็นต่ำ ทำให้ข้อความเป็นธรรมชาติมากขึ้น

**อีกตัวอย่างหนึ่ง** ตัวอย่างเช่น โมเดลกำลังต่อประโยค "เขาดื่มของร้อน...เป็นอาหารเช้า" ในบรรดาตัวเลือกที่น่าจะเป็นมากที่สุดอาจมี: "ชา" (0.50), "กาแฟ" (0.30), "ช็อกโกแลต" (0.08), "น้ำซุป" (0.04), "นมเปรี้ยว" (0.03) หากกำหนดเกณฑ์ $p = 0.80$ อัลกอริทึมจะเริ่มรวมความน่าจะเป็นจากบนลงล่าง: 0.50 สำหรับ "ชา" จากนั้น 0.50 + 0.30 = 0.80 ถึงเกณฑ์แล้ว ดังนั้นนิวเคลียสประกอบด้วย token สองตัวเท่านั้น: "ชา" และ "กาแฟ" ตัวเลือกอื่นทั้งหมดจะถูกทิ้ง หลัง normalize ความน่าจะเป็นของ "ชา" ภายในนิวเคลียสกลายเป็น $0.50/0.80 = 62.5\%$ และความน่าจะเป็นของ "กาแฟ" กลายเป็น $0.30/0.80 = 37.5\%$ token ถัดไปจะถูกเลือกระหว่างสองตัวเลือกนี้เท่านั้น

**กล่าวอีกนัยหนึ่ง** โมเดลจะลบตัวต่อที่มีความน่าจะเป็นต่ำและไม่เหมาะสมออกก่อน แล้วจึงเลือกจากตัวที่เหลือ วิธีนี้ช่วยให้โมเดลเขียนได้ชัดเจน เป็นธรรมชาติ และไม่มี "สัญญาณรบกวน" โดยไม่จำเป็น

## แนวคิด

แนวคิดหลักของ Top‑p คือในแต่ละขั้นตอนจะเลือก **กลุ่มที่เล็กที่สุด** ของ token ที่น่าจะเป็นมากที่สุด โดยที่ความน่าจะเป็นรวมไม่น้อยกว่าเกณฑ์ที่กำหนด $p$ (*นิวเคลียส* หรือ *nucleus*)

ในเชิงรูปแบบ สมมติให้ $x_{(1)},x_{(2)},\ldots$ คือ token ในคำศัพท์ $V$ เรียงลำดับตามความน่าจะเป็นเงื่อนไขที่ลดลง $P(x \mid x_{1:i - 1})$ จากนั้นนิวเคลียส $V^{(p)}$ จะถูกกำหนดเป็น prefix ที่สั้นที่สุดของลำดับที่เรียงแล้วนี้ ซึ่ง mass สะสมถึงเกณฑ์:

$m = \min\left\{ n:\sum\limits_{j = 1}^{n}P\left( x_{(j)} \mid x_{1:i - 1} \right) \geq p \right\},\qquad V^{(p)} = \left\{ x_{(1)},\,\ldots,\, x_{(m)} \right\}.$

กล่าวอีกนัยหนึ่ง นี่คือ **กลุ่มที่เล็กที่สุดในเชิงการรวมของ token ที่น่าจะเป็นมากที่สุด** ที่มีความน่าจะเป็นรวมไม่น้อยกว่า $p$<sup>[\[1\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-holtzman2019-1)</sup>

หลังจากกำหนดนิวเคลียสแล้ว ความน่าจะเป็นของ token นอก $V^{(p)}$ จะถูกตั้งเป็นศูนย์ และภายในนิวเคลียสจะถูก normalize (หารด้วย mass สะสมจริง $p^{\prime} = \sum\limits_{x \in V^{(p)}}P(x \mid x_{1:i - 1})$ เพื่อให้ผลรวมเท่ากับ 1) จากนั้น token ถัดไปจะถูกสุ่มจากการแจกแจงที่ตัดและ normalize แล้วนี้

### การปรับตัวแบบไดนามิก

- เมื่อการแจกแจง "แหลมคม" (โมเดลมั่นใจ) นิวเคลียสจะมีขนาดเล็ก: token เพียงไม่กี่ตัวก็ให้ mass ≥ $p$ แล้ว ซึ่งเพิ่มความเชื่อมโยง ในกรณีขีดสุด หากความน่าจะเป็นของ token ที่น่าจะเป็นมากที่สุดเกิน $p$ อยู่แล้ว (เช่น $P(x_{(1)}) = 0.96$ เมื่อ $p = 0.95$) นิวเคลียสจะแคบลงเหลือ token เดียวและ Top‑p จะกลายเป็นการถอดรหัสแบบโลภ (greedy search) โดยพฤตินัย
- เมื่อการแจกแจง "แบน" (มีตัวต่อที่สมเหตุสมผลมาก) นิวเคลียสจะมีขนาดใหญ่: การเลือกจะขยายกว้างขึ้น ความหลากหลายเพิ่มขึ้น<sup>[\[1\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-holtzman2019-1)</sup>

## การเปรียบเทียบกับวิธีการถอดรหัสอื่น

### Top‑p เทียบกับ Top‑k

- **Top‑k** จะเลือกจาก token ที่น่าจะเป็นมากที่สุดจำนวนคงที่ $k$ เสมอ ในการแจกแจง "แหลมคม" สิ่งนี้อาจเพิ่มตัวเลือกที่มีความน่าจะเป็นต่ำโดยไม่จำเป็น "เพื่อให้ครบจำนวน" ในขณะที่ในการแจกแจง "แบน" กลับตัดตัวต่อที่สมเหตุสมผลซึ่งไม่อยู่ใน top‑$k$ ออกไป
- **Top‑p** ปรับขนาดกลุ่มผู้สมัครตามข้อมูลของขั้นตอนนั้น ทำให้พฤติกรรมมีความยืดหยุ่นและเสถียรมากขึ้นในการแจกแจงประเภทต่างๆ<sup>[\[1\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-holtzman2019-1)</sup>
- ในทางปฏิบัติ Top‑k และ Top‑p สามารถใช้ **พร้อมกัน** ได้ ในกรณีนี้จะเลือก top‑$k$ token ก่อน จากนั้นภายในกลุ่มที่จำกัดนี้จะค้นหานิวเคลียสที่มีเกณฑ์ $p$ ลำดับที่แน่นอนและเหตุผลขึ้นอยู่กับการนำไปใช้ แต่การผสมผสานดังกล่าวได้รับการบันทึกว่าเป็นเทคนิคทั่วไป<sup>[\[5\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-hf-gen-5)</sup>

**พูดให้ง่ายขึ้น** Top-k ตัดสินใจล่วงหน้าว่าจะเก็บตัวเลือกกี่ตัว ส่วน Top-p ดูตามสถานการณ์และเก็บตัวเลือกเท่าที่จำเป็นในบริบทนั้น ดังนั้น Top-p จึงมักยืดหยุ่นกว่า ในขณะที่ Top-k ง่ายกว่าและคาดเดาได้มากกว่า

### Top‑p เทียบกับอุณหภูมิ

- **อุณหภูมิ** (*temperature*) จะเปลี่ยนรูปร่างทั้งหมดของการแจกแจง (ทำให้แหลมคมหรือเรียบขึ้น) แต่ **ไม่ตัด** token ออก: แม้แต่ตัวเลือกที่มีความน่าจะเป็นต่ำก็ยังมีโอกาสที่ไม่เป็นศูนย์<sup>[\[5\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-hf-gen-5)</sup>
- **Top‑p** นำเสนอ **การตัดส่วนหางอย่างเข้มงวด** ของการแจกแจง — token ที่มีความน่าจะเป็นต่ำจะถูกยกเว้นจากการสุ่มตัวอย่างโดยสมบูรณ์ ซึ่งช่วยป้องกันตัวต่อที่ไม่เหมาะสมอย่างชัดเจน<sup>[\[1\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-holtzman2019-1)</sup>
- **ลำดับการใช้งาน** ในไปป์ไลน์มาตรฐาน (เช่น Hugging Face Transformers) อุณหภูมิจะถูกใช้กับ logit ก่อน (เปลี่ยนรูปร่างของการแจกแจง) จากนั้นอาจใช้ Top‑k และต่อมา Top‑p (การตัดส่วนหาง) นี่อธิบายว่าทำไม "ผลกระทบสองทาง" จึงควบคุมได้ยาก: การเปลี่ยนอุณหภูมิจะเปลี่ยน mass สะสมที่ Top‑p ทำงานด้วยในภายหลัง<sup>[\[5\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-hf-gen-5)</sup>

**พูดให้ง่ายขึ้น** อุณหภูมิจะเปลี่ยนว่าโมเดล **เลือกคำได้อิสระแค่ไหน** ส่วน Top-p จะตัดสินว่า **ตัวเลือกใดที่สามารถเลือกได้เลย** ดังนั้นอุณหภูมิจึงส่งผลต่อระดับความสุ่ม ส่วน Top-p ส่งผลต่อว่าโมเดลจะไปถึงตัวต่อที่มีความน่าจะเป็นต่ำกว่าได้แค่ไหน

### ลำดับการดำเนินการในการนำ Hugging Face Transformers ไปใช้

ลำดับการใช้ sampling processor ขึ้นอยู่กับไลบรารีที่เฉพาะเจาะจง ใน Hugging Face Transformers (ตั้งแต่ v4.x) สำหรับชุดพารามิเตอร์สามตัวที่กล่าวถึง logit processor จะถูกเพิ่มตามลำดับเริ่มต้นดังต่อไปนี้:<sup>[\[5\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-hf-gen-5)[\[6\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-hf-code-6)</sup>

1.  **การปรับขนาด logit ด้วยอุณหภูมิ** logit ของแต่ละ token จะถูกหารด้วยค่าอุณหภูมิก่อนการยกกำลังด้วยฟังก์ชัน Softmax อุณหภูมิจะปรับเปลี่ยนรูปร่างของการแจกแจง เพื่อเตรียมไว้สำหรับการกรองในภายหลัง
2.  **ตัวกรอง Top‑k** (หากกำหนดค่าไว้): ตัดคำศัพท์ให้เหลือจำนวนผู้สมัครคงที่
3.  **ตัวกรอง Top‑p**: การตัดแบบสะสมจะถูกใช้กับกลุ่ม token ที่ลดขนาดลงแล้ว
4.  **การ normalize** ความน่าจะเป็นที่เหลือและการสุ่มตัวอย่างแบบสุ่ม

ในทางปฏิบัติ การผสมผสานอุณหภูมิปานกลาง (0.7) กับนิวเคลียส Top‑p กว้าง (0.95) และขีดจำกัด Top‑k (50) เป็นที่นิยม: อุณหภูมิให้ความหลากหลายพื้นฐาน Top‑k ทำหน้าที่เป็นตัวป้องกันแบบหยาบ และ Top‑p ดำเนินการปรับแต่งตามบริบท<sup>[\[5\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-hf-gen-5)</sup>

**พูดให้ง่ายขึ้น** โมเดลจะทำให้การเลือกเป็น "อิสระ" มากหรือน้อยด้วยอุณหภูมิก่อน จากนั้นหากจำเป็นจะจำกัดจำนวนผู้สมัครผ่าน Top-k แล้วลบตัวเลือกที่อ่อนแอเกินไปผ่าน Top-p ลำดับนี้ช่วยกำหนดลักษณะทั่วไปของการเลือกก่อน แล้วจึงตัดสิ่งที่ไม่จำเป็นออก

### คำแนะนำ: ปรับพารามิเตอร์ทีละตัว

ผู้ให้บริการโมเดลแนะนำให้เมื่อปรับสไตล์การสร้างข้อความ ให้เปลี่ยน **อย่างใดอย่างหนึ่ง** ระหว่าง *temperature* **หรือ** *top_p* แต่ไม่ใช่ทั้งคู่พร้อมกัน คำแนะนำนี้ปรากฏในเอกสารอย่างเป็นทางการของ OpenAI, Azure OpenAI และ Anthropic<sup>[\[7\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-openai-top-p-7)[\[8\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-azure-rec-8)[\[9\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-anthropic-params-9)</sup>

เหตุผลในทางปฏิบัติ: ทั้งสองพารามิเตอร์ส่งผลต่อรูปร่างของการแจกแจงความน่าจะเป็น (อุณหภูมิเปลี่ยนความชันของเส้นโค้ง ส่วน Top‑p กำหนดจุดตัด) ดังนั้นการเปลี่ยนทั้งสองพร้อมกันจึงทำให้การวินิจฉัยยากขึ้น — ไม่สามารถระบุได้ว่าพารามิเตอร์ใดนำไปสู่ผลลัพธ์ที่ดีขึ้นหรือแย่ลง นอกจากนี้เมื่อค่าทั้งสองพารามิเตอร์ต่ำมาก (เช่น *Temperature ≈ 0* และ *Top‑p ≈ 0.01*) นิวเคลียสในทางปฏิบัติจะแคบลงเหลือ token เดียว ทำให้การสุ่มตัวอย่างกลายเป็นการค้นหาแบบโลภโดยพฤตินัย<sup>[\[7\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-openai-top-p-7)</sup>

โมเดล reasoning บางรุ่นจำกัดการปรับพารามิเตอร์เหล่านี้เพิ่มเติมที่ระดับ API ทำให้คำถามเกี่ยวกับการเปลี่ยนร่วมกันนั้นไม่เกี่ยวข้องสำหรับโมเดลดังกล่าว (ดูส่วน "ความเข้ากันได้กับไลบรารีและ API")<sup>[\[7\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-openai-top-p-7)</sup>

หลักทั่วไปทางวิศวกรรมที่แพร่หลาย: สำหรับงานที่ต้องการความสามารถในการทำซ้ำสูง — ใช้อุณหภูมิต่ำ (จนถึงศูนย์) สำหรับงานสร้างสรรค์ — ปล่อยอุณหภูมิที่ระดับพื้นฐาน (1.0) และควบคุมความหลากหลายด้วยพารามิเตอร์ Top‑p หรือกำหนด Top‑p เป็น 1.0 และเปลี่ยนอุณหภูมิ คำแนะนำเฉพาะอาจแตกต่างกันในแต่ละผู้ให้บริการ<sup>[\[7\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-openai-top-p-7)[\[9\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-anthropic-params-9)</sup>

## ผลกระทบต่อความถูกต้องเชิงข้อเท็จจริงและภาพหลอน

การเลือกกลยุทธ์การถอดรหัสสามารถส่งผลกระทบไม่เพียงต่อสไตล์ของข้อความที่สร้างขึ้น แต่ยังต่อความถี่และประเภทของข้อผิดพลาดเชิงข้อเท็จจริงด้วย ปรากฏการณ์ **ภาพหลอน** — การสร้างข้อมูลเท็จหรือขัดแย้งกับบริบทอย่างมั่นใจ — เป็นหนึ่งในปัญหาหลักของ AI เชิงสร้างสรรค์ การวิจัยเชิงประจักษ์แสดงให้เห็นว่าผลกระทบของกลยุทธ์การสุ่มตัวอย่างต่อภาพหลอนขึ้นอยู่กับงาน โมเดล และการตั้งค่าพารามิเตอร์เฉพาะ<sup>[\[3\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-arxiv-hall-3)[\[10\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-tan2024-10)</sup>

### กลไกการเกิดข้อผิดพลาดในการสุ่มตัวอย่างแบบสุ่ม

เมื่อค่า Top‑p สูง (เช่น 0.95) โมเดลจะสร้างนิวเคลียสที่ครอบคลุม 95% ของ mass ความน่าจะเป็น ในสถานะ entropy สูง (เช่น เมื่อพยายามตอบข้อเท็จจริงที่ไม่ค่อยรู้จัก) นิวเคลียสนี้อาจรวม token ที่มีความน่าจะเป็นต่ำหลายร้อยตัว การสุ่มตัวอย่างแบบสุ่มในสภาวะดังกล่าวอาจดึง token ที่ถูกต้องทางไวยากรณ์แต่ไม่เกี่ยวข้องทางความหมายกับความจริงเชิงข้อเท็จจริง เมื่ออยู่ในบริบทแล้ว token ดังกล่าวอาจส่งผลต่อขั้นตอนการสร้างข้อความที่ตามมา เนื่องจากโมเดลสร้างข้อความต่อโดยคำนึงถึง token ก่อนหน้าทั้งหมด รวมถึงตัวที่ผิดพลาดด้วย<sup>[\[3\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-arxiv-hall-3)[\[1\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-holtzman2019-1)</sup>

### การแบ่งแยกระหว่างงานแบบเปิดและแบบปิด

การทดลองขนาดใหญ่เผยให้เห็นการพึ่งพาคุณภาพการสร้างข้อความกับประเภทของงาน ในงานเขียนเรียงความหรือระบบสนทนา วิธีการสุ่ม (Top‑p, Temperature) ยังคงเป็นผู้นำ ในขณะที่ในโดเมนที่กำหนดได้อย่างเคร่งครัด วิธีเหล่านี้อาจด้อยกว่าแนวทางแบบกำหนดได้อย่างมาก<sup>[\[10\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-tan2024-10)</sup>

ใน benchmark การสังเคราะห์โค้ดโปรแกรม (HumanEval, MBPP) และการแก้ปัญหาคณิตศาสตร์ (GSM8K) วิธีการแบบกำหนดได้ (Beam Search, Greedy Decoding) แสดงผลลัพธ์ที่ดีกว่าเมื่อเทียบกับแนวทางที่ใช้ Top‑p dataset GSM8K ซึ่งประกอบด้วยปัญหาคณิตศาสตร์ 8,500 ข้อที่ต้องใช้การคำนวณ 2 ถึง 8 ขั้นตอน แสดงให้เห็นถึงช่องโหว่ของการเลือกแบบสุ่มในงานดังกล่าว: การแทรกความสุ่มผ่านการแจกแจงที่ตัดแล้วของ Top‑p อาจทำลายห่วงโซ่การอนุมานของโมเดล (Chain‑of‑Thought) ในขั้นตอนกลางใดๆ Tan และคณะเน้นย้ำว่าประสิทธิภาพของวิธีการถอดรหัสขึ้นอยู่กับงานเฉพาะมาก (*task‑dependent*)<sup>[\[10\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-tan2024-10)</sup>

### วิธีการต่อต้านภาพหลอนในระดับการถอดรหัส

เพื่อต่อสู้กับผลกระทบของภาพหลอนที่เกิดจากการสุ่มตัวอย่างแบบสุ่ม ได้มีการพัฒนาวิธีการเสริมการถอดรหัสขั้นสูง:

- **การถอดรหัสแบบตัดกัน** (*Contrastive Decoding*, DoLa) — เพิ่มประสิทธิภาพช่องว่างในความน่าจะเป็นลอการิทึมระหว่างโมเดลหลักและโมเดลช่วยเหลือขนาดเล็กกว่า โดยทำหน้าที่เป็นตัวกรองความน่าเชื่อถือ<sup>[\[10\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-tan2024-10)</sup>
- **SH2** (*Self‑Highlighted Hesitation*) — ทำให้ decoder "ลังเล" โดยเจตนาเมื่อทำงานกับ token ที่มีความมั่นใจต่ำ<sup>[\[11\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-illusion-insight-11)</sup>
- **การฉายภาพแบบกำกับ** (SEA) — ระงับสัญญาณภาพหลอนที่ระดับการแทน vector<sup>[\[11\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-illusion-insight-11)</sup>

ในขณะเดียวกัน โมเดลสมัยใหม่ที่มีการปรับแนวทาง (*alignment*) ที่ดีมีความเข้าใจเชิงข้อเท็จจริงที่ลึกกว่า ซึ่งลด entropy ของการแจกแจงภายในและทำให้ไม่ค่อยเสี่ยงต่อการเสื่อมของข้อเท็จจริง แม้จะมีค่า Top‑p สูง<sup>[\[10\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-tan2024-10)[\[12\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-frontiers-hall-12)</sup>

## การใช้งานจริงและคำแนะนำ

Top‑p ถูกใช้อย่างแพร่หลายใน LLM สมัยใหม่เนื่องจากผสมผสานความยืดหยุ่นและการควบคุมได้

- **ช่วงค่าทั่วไป** ในทางปฏิบัติมักใช้ $p \approx 0.90\text{–}0.95$ ค่าเริ่มต้นแตกต่างกันในแต่ละผู้ให้บริการ: ที่ OpenAI \`top_p\` = **1.0** (การตัดถูกปิดใช้งานโดยพฤตินัย) ที่ Anthropic — **0.99** ที่โมเดล Google Gemini หลายรุ่น — **0.95**<sup>[\[13\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-anthropic-release-13)</sup> ในไลบรารี Hugging Face Transformers ค่าเริ่มต้นของ framework ก็เท่ากับ **1.0** เช่นกัน แม้ว่าโมเดลแต่ละรุ่นอาจกำหนดค่าใหม่ใน \`generation_config.json\`<sup>[\[14\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-hf-genconfig-14)</sup> ดังนั้น 0.9–0.95 คือ **ช่วงที่แนะนำในทางปฏิบัติทั่วไป** แต่ไม่ใช่มาตรฐานสากลตามค่าเริ่มต้น<sup>[\[5\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-hf-gen-5)[\[15\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-vertex-params-15)</sup>
  - ค่าที่ใกล้เคียง 1.0 (เช่น 0.98–0.99) เพิ่มความหลากหลาย: token จำนวนมากขึ้นเข้าสู่นิวเคลียส
  - ค่าต่ำ (เช่น 0.80–0.90) เพิ่มความเป็นกำหนดได้และความ "ยับยั้งชั่งใจ" ของผลลัพธ์
  - เมื่อ $p = 1$ การตัดด้วย Top‑p จะหายไป: การเลือกจะดำเนินการทั่วทั้งคำศัพท์ (โดยคำนึงถึงอุณหภูมิและตัวกรองการถอดรหัสอื่นๆ หากเปิดใช้งาน)<sup>[\[5\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-hf-gen-5)</sup>

<!-- -->

- **ความเข้ากันได้กับไลบรารีและ API**
  - ใน Hugging Face Transformers มีการนำ *TopPLogitsWarper* ไปใช้ โดยใช้เกณฑ์ \`min_tokens_to_keep\` เพิ่มเติม (ค่าเริ่มต้น 1) นี่คือรายละเอียดการป้องกันในการนำไปใช้: ที่ค่ามาตรฐาน $p \in (0,\, 1\rbrack$ นิวเคลียสว่างไม่เกิดขึ้นตามคำจำกัดความอยู่แล้ว แต่พารามิเตอร์นี้รับประกันการทำงานที่ถูกต้องในกรณีขอบ<sup>[\[16\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-hf-warp-16)</sup>
  - ใน API บางตัว พารามิเตอร์ \`top_p\` ใช้ได้ ในขณะที่ \`top_k\` อาจไม่มี การสนับสนุนพารามิเตอร์และความหมายของพารามิเตอร์ **ขึ้นอยู่กับโมเดลและโหมดการทำงานเฉพาะ** โมเดล reasoning โดยทั่วไปจำกัดการปรับ stochastic ที่ระดับ API ตัวอย่างเช่น ในเอกสารปัจจุบันของ OpenAI พารามิเตอร์ \`temperature\` และ \`top_p\` รองรับอย่างชัดแจ้งเฉพาะใน GPT‑5.2 ที่ \`reasoning.effort = none\` เท่านั้น คำขอไปยัง GPT‑5.2 หรือ GPT‑5.1 ที่มีค่า \`reasoning\` อื่น รวมถึงโมเดล GPT‑5 รุ่นก่อนหน้า (\`gpt‑5\`, \`gpt‑5‑mini\`, \`gpt‑5‑nano\`) เมื่อส่ง field เหล่านี้จะเกิดข้อผิดพลาด โมเดล reasoning รุ่นก่อนหน้า (o1, o3) ก็จำกัดหรือกำหนดค่าคงที่ให้กับพารามิเตอร์เหล่านี้เช่นกัน<sup>[\[7\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-openai-top-p-7)[\[17\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-openai-reasoning-17)[\[18\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-openai-gpt52-18)</sup> ที่ Anthropic ใน Claude API เมื่อเปิดใช้งานการคิดเชิงขยาย (extended thinking) การเปลี่ยน \`temperature\` และ \`top_k\` เป็นสิ่งต้องห้าม แต่ \`top_p\` อนุญาตในช่วง 0.95–1.0 บนแพลตฟอร์มบุคคลที่สาม (เช่น Amazon Bedrock) ข้อจำกัดอาจแตกต่างกัน<sup>[\[19\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-anthropic-thinking-19)</sup> **ข้อจำกัดของผู้ให้บริการมักเปลี่ยนแปลงจากเวอร์ชันสู่เวอร์ชัน** แนะนำให้ตรวจสอบเอกสารปัจจุบัน<sup>[\[8\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-azure-rec-8)[\[20\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-azure-reasoning-20)</sup>

<!-- -->

- **ข้อความยาวและความสามารถในการทำซ้ำ** ในชุดการทดลองแสดงให้เห็นว่า nucleus sampling ลดความเสี่ยงต่อการเสื่อม (การซ้ำซาก วลีซ้ำ) เมื่อเทียบกับ greedy/beam และ Top‑k แบบคงที่ โดยเฉพาะในลำดับยาว<sup>[\[1\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-holtzman2019-1)[\[10\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-tan2024-10)</sup>

## ทางเลือกสมัยใหม่

หลังจากการตีพิมพ์ nucleus sampling ในปี 2019 ได้มีการเสนอวิธีการสุ่มตัวอย่างแบบสุ่มทางเลือกหลายวิธีที่พัฒนาหรือเสริมแนวคิด Top‑p:

### Min‑p Sampling - การสุ่มตัวอย่างแบบ Min‑p

**การสุ่มตัวอย่างแบบ Min‑p** (Nguyen et al., 2024) จะเก็บ token ที่มีความน่าจะเป็นไม่น้อยกว่า $p_{\min} \times P(x_{(1)})$ นั่นคือกำหนดเกณฑ์สัมพัทธ์กับ token ที่น่าจะเป็นมากที่สุด ได้รับการยอมรับสำหรับการนำเสนอด้วยวาจาที่ ICLR 2025 และนำไปใช้ในหลาย framework ยอดนิยม รวมถึง Hugging Face Transformers<sup>[\[21\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-hf-minp-21)</sup> และ vLLM<sup>[\[22\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-vllm-minp-22)[\[23\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-minp-23)</sup>

ความแตกต่างสำคัญจาก Top‑p อยู่ที่ประเภทของเกณฑ์: Top‑p ใช้เกณฑ์ **สัมบูรณ์** ตามผลรวมสะสมของความน่าจะเป็น ในขณะที่ Min‑p กำหนดเกณฑ์ **สัมพัทธ์** ที่ปรับขนาดตามความน่าจะเป็นของ token ที่น่าจะเป็นมากที่สุด<sup>[\[23\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-minp-23)</sup>

ในเชิงคณิตศาสตร์ อัลกอริทึมทำงานดังนี้: ในแต่ละขั้นตอนจะกำหนดความน่าจะเป็นสูงสุด $P_{\max} = P(x_{(1)} \mid x_{1:i - 1})$ จากนั้นคำนวณเกณฑ์ที่ปรับขนาด $P_{\text{threshold}} = p_{\min} \times P_{\max}$ ในกลุ่มสุดท้ายจะมีเฉพาะ token ที่มีความน่าจะเป็นเฉพาะตัวเกินเกณฑ์นี้เท่านั้น<sup>[\[24\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-minp-arxiv-24)</sup>

สิ่งนี้ให้ความสามารถในการปรับตัว: หากโมเดลมั่นใจในคำถัดไป ($P_{\max} = 0.9$) ที่ค่าพื้นฐาน $p_{\min} = 0.1$ เกณฑ์จะเป็น 0.09 ตัดส่วน token ที่เป็นสัญญาณรบกวนอย่างเข้มงวด หากโมเดลไม่มั่นใจ ($P_{\max} = 0.1$) เกณฑ์จะลดลงเป็น 0.01 เปิดรับความหลากหลายของผู้สมัครอย่างกว้างขวางในนิวเคลียส<sup>[\[23\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-minp-23)</sup>

จุดอ่อนที่รู้จักของ Top‑p ปรากฏขึ้นเมื่อสุ่มตัวอย่างด้วยอุณหภูมิสูง ($T > 1.0$): เมื่อการแจกแจงถูกทำให้เรียบโดยเทียม Top‑p จำเป็นต้องรวม token ที่มีความน่าจะเป็นต่ำจำนวนมากในนิวเคลียสเพื่อให้ได้ผลรวมสะสมตามเป้า ซึ่งอาจนำไปสู่การเสื่อมของความเชื่อมโยง<sup>[\[23\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-minp-23)</sup> Min‑p รับมือกับสภาวะดังกล่าวได้ดีกว่า ในการทดลองของผู้เขียนใน benchmark ความรู้ทางวิทยาศาสตร์และตรรกะ (GPQA) โดยใช้โมเดล Mistral Large ที่อุณหภูมิสุดขีด $T = 3.0$ อัลกอริทึม Min‑p แสดงความแม่นยำ 13.84% ในขณะที่ Top‑p มาตรฐาน 0.9 ให้ผล 0.89% — ในระดับสัญญาณรบกวนแบบสุ่ม<sup>[\[24\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-minp-arxiv-24)</sup>

ในขณะเดียวกัน ในแวดวงวิชาการมีการถกเถียงกัน: งานวิจัยวิจารณ์บางชิ้น (เช่น arXiv:2506.13681) ตั้งคำถามเกี่ยวกับความเป็นสากลของข้อดีของ Min‑p ในทุก metric ของ NLP โดยชี้ให้เห็นถึงความจำเป็นในการศึกษาเพิ่มเติม<sup>[\[25\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-minp-critique-25)</sup>

**พูดให้ง่ายขึ้น** Min-p จะเปรียบเทียบตัวเลือกทั้งหมดไม่กับผลรวมความน่าจะเป็นทั้งหมด แต่กับตัวเลือกที่แข็งแกร่งที่สุดในขั้นตอนปัจจุบัน ดังนั้นหากโมเดลมั่นใจ มันจะตัดตัวต่อที่อ่อนแอออกอย่างเข้มงวดกว่า และหากไม่มั่นใจ ก็จะเก็บตัวเลือกที่ยอมรับได้มากขึ้น ด้วยเหตุนี้ Min-p จึงอาจรักษาสมดุลระหว่างความเชื่อมโยงและความหลากหลายได้ดีกว่า โดยเฉพาะในที่ที่ Top-p เริ่มปล่อยคำที่อ่อนแอผ่านมากเกินไป

### Locally Typical Sampling - การสุ่มตัวอย่างแบบทั่วไปเฉพาะที่

**การสุ่มตัวอย่างแบบทั่วไปเฉพาะที่** (Meister et al., 2023) เลือก token ที่มีภาระข้อมูล ($- \log P$) ใกล้เคียงกับ entropy เงื่อนไข โดยอาศัยแนวคิดความทั่วไปทางทฤษฎีข้อมูล<sup>[\[2\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-meister2023-2)</sup>

ต่างจาก Top‑p ที่พยายามลดขนาดนิวเคลียสให้เล็กที่สุดโดยเลือก token ที่มีความน่าจะเป็นสูงสุด Locally Typical Sampling แก้ปัญหาการเพิ่มประสิทธิภาพตาม metric ระยะทางข้อมูล อัลกอริทึมคำนวณเนื้อหาข้อมูลของแต่ละ token ($- \log P(x)$) และวัดระยะสัมบูรณ์ถึง entropy เงื่อนไข $H$ ของโมเดล Token จะถูกจัดอันดับไม่ใช่ตามความน่าจะเป็นดิบ แต่ตามระดับ "ความทั่วไปเชิงข้อมูล" — ความใกล้ชิดกับเนื้อหาข้อมูลที่คาดหวังของบริบท Token จะถูกเพิ่มในนิวเคลียส (ตามลำดับระยะทางที่เพิ่มขึ้นถึง entropy) จนถึงเกณฑ์ความน่าจะเป็นสะสม<sup>[\[2\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-meister2023-2)[\[26\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-typical-mit-26)</sup>

ผลลัพธ์ของแนวทางนี้: ในสถานะ entropy สูง อัลกอริทึมจะกำจัดออกอย่างมีจุดมุ่งหมายไม่เพียงแต่ส่วนหางที่เป็นสัญญาณรบกวนที่มีความน่าจะเป็นต่ำ แต่ยังรวมถึงคำที่มีความน่าจะเป็นสูงเกินไปซึ่งมีข้อมูลน้อยเกินไปและทำให้ข้อความซ้ำซาก วิธีนี้ลดความเสี่ยงของการวนซ้ำแบบเสื่อมถอยและทำให้ metric การซ้ำของข้อความใกล้เคียงกับค่าที่มีลักษณะเฉพาะสำหรับข้อความที่เขียนโดยมนุษย์<sup>[\[26\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-typical-mit-26)</sup>

### Tail Free Sampling (TFS) - การสุ่มตัวอย่างแบบหางปลอดภัย

**Tail Free Sampling** (TFS) คือแนวทางที่ไม่ค่อยเป็นทางการแต่น่าสนใจในทางปฏิบัติสำหรับการระบุส่วนหางที่เป็นสัญญาณรบกวน โดยอาศัยการวิเคราะห์เชิงอนุพันธ์ของพื้นที่ความน่าจะเป็น หาก Top‑p และ Min‑p ดำเนินการกับความน่าจะเป็นอันดับแรก (ผลรวมสะสมและเศษส่วนพื้นฐาน) TFS จะวิเคราะห์ **อนุพันธ์อันดับหนึ่งและสอง** ของเส้นโค้งความน่าจะเป็นที่เรียงแล้ว วิธีนี้ถูกอธิบายในบล็อกของ Trenton Bricken และนำไปใช้ในบาง inference engine แม้ว่าจะไม่ได้รับการตีพิมพ์ในรูปแบบบทความที่ผ่านการตรวจสอบโดยเพื่อน<sup>[\[27\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-tfs-bricken-27)</sup>

สมมติฐานหลักของ TFS: แม้แต่การรวม token ที่เป็นสัญญาณรบกวนเพียงตัวเดียวในตัวอย่างก็นำภัยคุกคามแบบเอ็กซ์โพเนนเชียลต่อการสร้างข้อความแบบ autoregressive ทั้งหมด โดยการคำนวณอนุพันธ์อันดับสองจากค่าความน่าจะเป็น อัลกอริทึมจะระบุ "ที่ราบ" — ส่วนของเส้นโค้งที่การลดลงของความน่าจะเป็นช้าลงและเปลี่ยนเป็นส่วนหางที่ยาวและราบเรียบ จุดการเบี่ยงเบนนี้กลายเป็นขอบเขตการตัดแบบไดนามิก: token ก่อนหน้ามันถือว่าปลอดภัยทางความหมาย และส่วนหางทั้งหมดจะถูกลบออก<sup>[\[27\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-tfs-bricken-27)</sup>

แม้จะมีความสง่างามทางคณิตศาสตร์ TFS ต้องการต้นทุนการคำนวณที่เข้มข้นกว่าสำหรับการคำนวณอนุพันธ์แบบเรียลไทม์ ทำให้ในผลิตภัณฑ์เชิงพาณิชย์ขนาดใหญ่มันด้อยกว่าอัลกอริทึมที่เบากว่า<sup>[\[27\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-tfs-bricken-27)</sup>

### *p*‑less Sampling - การสุ่มตัวอย่างแบบ p‑less

**$p$‑less sampling** คือวิธีที่ช่วยให้วิศวกรไม่ต้องปรับ hyperparameter การตัดโดยสมบูรณ์<sup>[\[28\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-pless-openreview-28)</sup> ปัญหาพื้นฐานของทุกวิธีก่อนหน้า — ตั้งแต่ Top‑k และ Top‑p ไปจนถึง Min‑p — คือการพึ่งพา hyperparameter แบบคงที่ ซึ่งค่าต้องการการปรับแต่งจากผู้เชี่ยวชาญและอาจเหมาะสมสำหรับงานหนึ่ง (การเขียนเชิงสร้างสรรค์) แต่ไม่ดีสำหรับงานอื่น (การเขียนโปรแกรม)<sup>[\[29\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-pless-arxiv-29)</sup>

อัลกอริทึม $p$‑less ซึ่งหยั่งรากในทฤษฎีข้อมูล จะสร้างเกณฑ์การตัดเฉพาะในแต่ละขั้นตอนการถอดรหัสแบบไดนามิก โดยวิเคราะห์โทโพโลยีภายในของการแจกแจงความน่าจะเป็นทั้งหมดแบบเรียลไทม์ ผู้เขียนรายงานความเสถียรของวิธีต่อความผันผวนของอุณหภูมิ (*temperature robustness*): เมื่ออุณหภูมิเพิ่มขึ้น วิธีการดั้งเดิมอาจเสื่อมอย่างมาก ในขณะที่ $p$‑less รักษาความเสถียรของคุณภาพ นอกจากนี้เนื่องจากการละทิ้งตรรกะการสแกนสะสมและการ normalize นิวเคลียสขนาดใหญ่ ตามข้อมูลของผู้เขียน วิธีนี้ให้ประสิทธิภาพการคำนวณที่สูงกว่าในขั้นตอน inference และสร้างคำตอบที่กะทัดรัดกว่าโดยไม่สูญเสียความแม่นยำใน dataset คณิตศาสตร์ ตรรกะ และการเขียนเชิงสร้างสรรค์<sup>[\[29\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-pless-arxiv-29)[\[28\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-pless-openreview-28)</sup>

### η‑Sampling - การสุ่มตัวอย่างแบบ η

**การสุ่มตัวอย่างแบบ η** (Hewitt et al., 2022) ใช้เกณฑ์ความน่าจะเป็นที่ขึ้นอยู่กับ entropy ปรับตัวกับบริบท entropy ต่ำที่ Top‑p อาจตัดมากเกินไป<sup>[\[30\]](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_note-eta-30)</sup>

## เอกสารอ้างอิง

- Holtzman, A., Buys, J., Du, L., Forbes, M., & Choi, Y. (2019; ตีพิมพ์ใน ICLR 2020). *The Curious Case of Neural Text Degeneration*. arXiv:1904.09751.
- Fan, A., Lewis, M., & Dauphin, Y. (2018). *Hierarchical Neural Story Generation*. arXiv:1805.04833.
- Meister, C., Pimentel, T., Wiher, G., & Cotterell, R. (2023). *Locally Typical Sampling*. arXiv:2202.00666.
- Ravfogel, S., Goldberg, Y., & Goldberger, J. (2023). *Conformal Nucleus Sampling*. ACL Findings 2023.
- Tan, Q. et al. (2024). *A Thorough Examination of Decoding Methods in the Era of LLMs*. arXiv:2402.06925.
- Finlayson, M. et al. (2024). *Closing the Curious Case of Neural Text Degeneration*. arXiv:2310.01693.
- Chen, S. J. et al. (2025). *Decoding Game: On Minimax Optimality of Heuristic Text Generation Strategies*. arXiv:2410.03968.
- Nguyen, M. et al. (2024). *Turning Up the Heat: Min-p Sampling for Creative and Coherent LLM Outputs*. arXiv:2407.01082.
- Sen, J. et al. (2025). *Advancing Decoding Strategies: Enhancements in Locally Typical Sampling for LLMs*. arXiv:2506.05387.
- Bricken, T. *Tail Free Sampling*. <a href="https://www.trentonbricken.com/Tail-Free-Sampling/" class="external autonumber" rel="nofollow">[32]</a>.
- *p‑less Sampling: A Robust Hyperparameter-Free Approach for LLM Decoding*. arXiv:2509.23234.

## หมายเหตุ

1.  <span id="cite_note-holtzman2019-1">↑ <sup>[1.00](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-holtzman2019_1-0)</sup> <sup>[1.01](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-holtzman2019_1-1)</sup> <sup>[1.02](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-holtzman2019_1-2)</sup> <sup>[1.03](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-holtzman2019_1-3)</sup> <sup>[1.04](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-holtzman2019_1-4)</sup> <sup>[1.05](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-holtzman2019_1-5)</sup> <sup>[1.06](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-holtzman2019_1-6)</sup> <sup>[1.07](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-holtzman2019_1-7)</sup> <sup>[1.08](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-holtzman2019_1-8)</sup> <sup>[1.09](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-holtzman2019_1-9)</sup> <sup>[1.10](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-holtzman2019_1-10)</sup> Holtzman, A., Buys, J., Du, L., Forbes, M., & Choi, Y. (2019). *The Curious Case of Neural Text Degeneration*. arXiv:1904.09751. <a href="https://arxiv.org/abs/1904.09751" class="external autonumber" rel="nofollow">[1]</a></span>
2.  <span id="cite_note-meister2023-2">↑ <sup>[2.0](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-meister2023_2-0)</sup> <sup>[2.1](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-meister2023_2-1)</sup> <sup>[2.2](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-meister2023_2-2)</sup> Meister, C., Pimentel, T., Wiher, G., & Cotterell, R. (2023). *Locally Typical Sampling*. *TACL*, Vol. 11. arXiv:2202.00666. <a href="https://aclanthology.org/2023.tacl-1.7.pdf" class="external autonumber" rel="nofollow">[2]</a></span>
3.  <span id="cite_note-arxiv-hall-3">↑ <sup>[3.0](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-arxiv-hall_3-0)</sup> <sup>[3.1](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-arxiv-hall_3-1)</sup> <sup>[3.2](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-arxiv-hall_3-2)</sup> *Large Language Models Hallucination: A Comprehensive Survey*. arXiv:2510.06265. <a href="https://arxiv.org/abs/2510.06265" class="external autonumber" rel="nofollow">[3]</a></span>
4.  <span id="cite_note-finlayson2024-4">[↑](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-finlayson2024_4-0) Finlayson, M. et al. (2024). *Closing the Curious Case of Neural Text Degeneration*. arXiv:2310.01693. <a href="https://arxiv.org/abs/2310.01693" class="external autonumber" rel="nofollow">[4]</a></span>
5.  <span id="cite_note-hf-gen-5">↑ <sup>[5.0](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-hf-gen_5-0)</sup> <sup>[5.1](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-hf-gen_5-1)</sup> <sup>[5.2](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-hf-gen_5-2)</sup> <sup>[5.3](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-hf-gen_5-3)</sup> <sup>[5.4](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-hf-gen_5-4)</sup> <sup>[5.5](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-hf-gen_5-5)</sup> <sup>[5.6](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-hf-gen_5-6)</sup> Hugging Face Transformers. *Generation strategies (top‑k, top‑p, temperature)*. <a href="https://huggingface.co/docs/transformers/main/en/generation_strategies" class="external autonumber" rel="nofollow">[5]</a></span>
6.  <span id="cite_note-hf-code-6">[↑](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-hf-code_6-0) Hugging Face Transformers. *generation/utils.py* (исходный код). <a href="https://github.com/huggingface/transformers/blob/main/src/transformers/generation/utils.py" class="external autonumber" rel="nofollow">[6]</a></span>
7.  <span id="cite_note-openai-top-p-7">↑ <sup>[7.0](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-openai-top-p_7-0)</sup> <sup>[7.1](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-openai-top-p_7-1)</sup> <sup>[7.2](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-openai-top-p_7-2)</sup> <sup>[7.3](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-openai-top-p_7-3)</sup> <sup>[7.4](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-openai-top-p_7-4)</sup> OpenAI API Reference. *top_p* — рекомендация «We generally recommend altering this or temperature but not both». <a href="https://developers.openai.com/api/reference/resources/chat/subresources/completions/methods/create" class="external autonumber" rel="nofollow">[7]</a></span>
8.  <span id="cite_note-azure-rec-8">↑ <sup>[8.0](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-azure-rec_8-0)</sup> <sup>[8.1](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-azure-rec_8-1)</sup> Microsoft Learn (Azure OpenAI). *Text/Chat Completions — parameters*. <a href="https://learn.microsoft.com/en-us/azure/ai-services/openai/reference" class="external autonumber" rel="nofollow">[8]</a></span>
9.  <span id="cite_note-anthropic-params-9">↑ <sup>[9.0](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-anthropic-params_9-0)</sup> <sup>[9.1](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-anthropic-params_9-1)</sup> Anthropic API Reference. *Messages API — top_p*. <a href="https://docs.anthropic.com/en/api/messages" class="external autonumber" rel="nofollow">[9]</a></span>
10. <span id="cite_note-tan2024-10">↑ <sup>[10.0](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-tan2024_10-0)</sup> <sup>[10.1](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-tan2024_10-1)</sup> <sup>[10.2](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-tan2024_10-2)</sup> <sup>[10.3](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-tan2024_10-3)</sup> <sup>[10.4](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-tan2024_10-4)</sup> <sup>[10.5](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-tan2024_10-5)</sup> Tan, Q. et al. (2024). *A Thorough Examination of Decoding Methods in the Era of LLMs*. arXiv:2402.06925. <a href="https://aclanthology.org/2024.emnlp-main.489.pdf" class="external autonumber" rel="nofollow">[10]</a></span>
11. <span id="cite_note-illusion-insight-11">↑ <sup>[11.0](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-illusion-insight_11-0)</sup> <sup>[11.1](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-illusion-insight_11-1)</sup> *From Illusion to Insight: A Taxonomic Survey of Hallucination Mitigation Techniques in LLMs*. MDPI. <a href="https://www.mdpi.com/2673-2688/6/10/260" class="external autonumber" rel="nofollow">[11]</a></span>
12. <span id="cite_note-frontiers-hall-12">[↑](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-frontiers-hall_12-0) *Survey and analysis of hallucinations in large language models: attribution to prompting strategies or model behavior*. Frontiers in AI. <a href="https://www.frontiersin.org/journals/artificial-intelligence/articles/10.3389/frai.2025.1622292/full" class="external autonumber" rel="nofollow">[12]</a></span>
13. <span id="cite_note-anthropic-release-13">[↑](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-anthropic-release_13-0) Anthropic. *API release notes*. <a href="https://docs.anthropic.com/en/release-notes/api" class="external autonumber" rel="nofollow">[13]</a></span>
14. <span id="cite_note-hf-genconfig-14">[↑](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-hf-genconfig_14-0) Hugging Face. *GenerationConfig (top_p default)*. <a href="https://huggingface.co/docs/transformers/main_classes/text_generation" class="external autonumber" rel="nofollow">[14]</a></span>
15. <span id="cite_note-vertex-params-15">[↑](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-vertex-params_15-0) Google AI / Vertex AI. *Content generation parameters (topP/topK)*. <a href="https://ai.google.dev/gemini-api/docs/prompting-strategies" class="external autonumber" rel="nofollow">[15]</a> <a href="https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/content-generation-parameters" class="external autonumber" rel="nofollow">[16]</a></span>
16. <span id="cite_note-hf-warp-16">[↑](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-hf-warp_16-0) Transformers API. *TopPLogitsWarper* (параметры и поведение, включая \`min_tokens_to_keep\`). <a href="https://huggingface.co/docs/transformers/main/en/main_classes/text_generation#transformers.TopPLogitsWarper" class="external autonumber" rel="nofollow">[17]</a></span>
17. <span id="cite_note-openai-reasoning-17">[↑](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-openai-reasoning_17-0) OpenAI API. *Using reasoning models — parameter support*. <a href="https://developers.openai.com/docs/guides/reasoning" class="external autonumber" rel="nofollow">[18]</a></span>
18. <span id="cite_note-openai-gpt52-18">[↑](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-openai-gpt52_18-0) OpenAI API. *Using GPT-5.2*. <a href="https://developers.openai.com/api/docs/guides/latest-model/" class="external autonumber" rel="nofollow">[19]</a></span>
19. <span id="cite_note-anthropic-thinking-19">[↑](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-anthropic-thinking_19-0) Anthropic. *Building with extended thinking*. <a href="https://docs.anthropic.com/en/docs/build-with-claude/extended-thinking" class="external autonumber" rel="nofollow">[20]</a></span>
20. <span id="cite_note-azure-reasoning-20">[↑](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-azure-reasoning_20-0) Microsoft Learn (Azure AI Foundry). *Reasoning models — supported parameters*. <a href="https://learn.microsoft.com/en-us/azure/ai-foundry/openai/how-to/reasoning" class="external autonumber" rel="nofollow">[21]</a></span>
21. <span id="cite_note-hf-minp-21">[↑](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-hf-minp_21-0) Hugging Face Transformers. *MinPLogitsWarper*. <a href="https://huggingface.co/docs/transformers/main/en/main_classes/text_generation#transformers.MinPLogitsWarper" class="external autonumber" rel="nofollow">[22]</a></span>
22. <span id="cite_note-vllm-minp-22">[↑](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-vllm-minp_22-0) vLLM. *Sampling Parameters — min_p*. <a href="https://docs.vllm.ai/en/latest/serving/sampling_params.html" class="external autonumber" rel="nofollow">[23]</a></span>
23. <span id="cite_note-minp-23">↑ <sup>[23.0](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-minp_23-0)</sup> <sup>[23.1](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-minp_23-1)</sup> <sup>[23.2](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-minp_23-2)</sup> <sup>[23.3](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-minp_23-3)</sup> Nguyen, M. et al. (2024). *Turning Up the Heat: Min-p Sampling for Creative and Coherent LLM Outputs*. arXiv:2407.01082. <a href="https://arxiv.org/abs/2407.01082" class="external autonumber" rel="nofollow">[24]</a></span>
24. <span id="cite_note-minp-arxiv-24">↑ <sup>[24.0](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-minp-arxiv_24-0)</sup> <sup>[24.1](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-minp-arxiv_24-1)</sup> Nguyen, M. et al. *Turning Up the Heat: Min-p Sampling for Creative and Coherent LLM Outputs*. <a href="https://arxiv.org/pdf/2407.01082" class="external autonumber" rel="nofollow">[25]</a></span>
25. <span id="cite_note-minp-critique-25">[↑](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-minp-critique_25-0) *Turning Down the Heat: A Critical Analysis of Min-p Sampling in Language Models*. arXiv:2506.13681. <a href="https://arxiv.org/abs/2506.13681" class="external autonumber" rel="nofollow">[26]</a></span>
26. <span id="cite_note-typical-mit-26">↑ <sup>[26.0](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-typical-mit_26-0)</sup> <sup>[26.1](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-typical-mit_26-1)</sup> *Locally Typical Sampling*. Transactions of the ACL, MIT Press. <a href="https://direct.mit.edu/tacl/article/doi/10.1162/tacl_a_00536/114593/Locally-Typical-Sampling" class="external autonumber" rel="nofollow">[27]</a></span>
27. <span id="cite_note-tfs-bricken-27">↑ <sup>[27.0](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-tfs-bricken_27-0)</sup> <sup>[27.1](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-tfs-bricken_27-1)</sup> <sup>[27.2](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-tfs-bricken_27-2)</sup> Bricken, T. *Tail Free Sampling*. <a href="https://www.trentonbricken.com/Tail-Free-Sampling/" class="external autonumber" rel="nofollow">[28]</a></span>
28. <span id="cite_note-pless-openreview-28">↑ <sup>[28.0](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-pless-openreview_28-0)</sup> <sup>[28.1](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-pless-openreview_28-1)</sup> *p‑less Sampling: A Robust Hyperparameter-Free Approach for LLM Decoding*. OpenReview. <a href="https://openreview.net/forum?id=ItFuNJQGH4" class="external autonumber" rel="nofollow">[29]</a></span>
29. <span id="cite_note-pless-arxiv-29">↑ <sup>[29.0](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-pless-arxiv_29-0)</sup> <sup>[29.1](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-pless-arxiv_29-1)</sup> *p‑less Sampling: A Robust Hyperparameter-Free Approach for LLM Decoding*. arXiv:2509.23234. <a href="https://arxiv.org/abs/2509.23234" class="external autonumber" rel="nofollow">[30]</a></span>
30. <span id="cite_note-eta-30">[↑](https://systems-analysis.info/int/Top-p_sampling_(TH)#cite_ref-eta_30-0) Hewitt, J., Manning, C. D., & Liang, P. (2022). *Truncation Sampling as Language Model Desmoothing*. Findings of EMNLP 2022. arXiv:2210.15191. <a href="https://arxiv.org/abs/2210.15191" class="external autonumber" rel="nofollow">[31]</a></span>

## ดูเพิ่มเติม

- อุณหภูมิ
- โมเดลภาษาขนาดใหญ่
