Top-p sampling — أخذ العينات Top-p
أخذ العينات Top-p، المعروف أيضًا باسم أخذ العينات النووي (بالإنجليزية: Nucleus Sampling)، هو طريقة فك ترميز تصادفية تُستخدم في نماذج اللغة الكبيرة (LLM) لتوليد النصوص. اقتُرحت هذه الطريقة في عام 2019 من قبل آري هولتزمان وآخرين كبديل محسن لطريقة أخذ العينات Top-k الثابتة. تتمثل فكرتها في اختيار مجموعة من المرشحين ديناميكيًا عند كل خطوة توليد بناءً على عتبة احتمالية تراكمية .[1]
المفهوم
الفكرة الأساسية في Top-p هي اختيار أصغر مجموعة ممكنة من التوكنات الأكثر احتمالاً في كل خطوة، بحيث لا يقل مجموع احتمالاتها عن العتبة المحددة (وهو ما يسمى النواة، بالإنجليزية: nucleus). رياضيًا، بالنسبة للتوزيع الاحتمالي الشرطي على المفردات ، يمكن تعريف النواة على النحو التالي:
بصياغة مكافئة: يتم فرز التوكنات تنازليًا حسب الاحتمال ثم اختيار أقصر بادئة (prefix) يكون مجموع كتلتها الاحتمالية ≥ .[1]
بعد تحديد النواة، تُصفَّر احتمالات التوكنات خارج ، بينما يُعاد توزيع الاحتمالات داخل النواة (تطبيعها) ليصبح مجموعها 1. ثم يتم أخذ عينة للتوكن التالي من هذا التوزيع المقتطع.
التكيف الديناميكي
- في التوزيع "الحاد" (عندما يكون النموذج واثقًا)، تكون النواة صغيرة: بضعة توكنات فقط تكفي لتجاوز الكتلة الاحتمالية ، مما يزيد من ترابط النص.
- في التوزيع "المسطح" (عند وجود العديد من التكملات المحتملة)، تكون النواة كبيرة: تتوسع مجموعة الخيارات، مما يزيد من التنوع.[1]
مقارنة مع طرق فك الترميز الأخرى
Top-p vs. Top-k - مقارنة بين Top-p و Top-k
- Top-k تختار دائمًا من بين عدد ثابت من التوكنات الأكثر احتمالاً. في التوزيعات "الحادة"، قد يؤدي هذا إلى إضافة خيارات غير محتملة لمجرد إكمال العدد ، أما في التوزيعات "المسطحة"، فقد يؤدي إلى استبعاد تكملات معقولة لم تقع ضمن أفضل خيار.
- Top-p تعدل حجم مجموعة المرشحين بناءً على بيانات الخطوة الحالية، مما يجعل سلوكها أكثر مرونة واستقرارًا عبر أنواع مختلفة من التوزيعات.[1]
Top-p vs. Temperature - مقارنة بين Top-p ودرجة الحرارة
- درجة الحرارة (temperature) تعيد تشكيل التوزيع الاحتمالي بأكمله (بجعله أكثر حدة أو أكثر سلاسة)، لكنها لا تستبعد أي توكنات، حيث تحتفظ حتى الخيارات الأقل احتمالاً بفرصة ضئيلة للظهور.[2]
- Top-p تفرض قطعًا صارمًا لذيل التوزيع، حيث يتم استبعاد التوكنات ذات الاحتمالية المنخفضة تمامًا من عملية أخذ العينات، مما يساعد على منع ظهور تكملات غير مناسبة بشكل واضح.[1]
نصيحة عملية من مزودي الخدمات: عند ضبط الأسلوب أو العشوائية، عادةً ما يتم تعديل `temperature` أو `top_p`، وليس كليهما في نفس الوقت، وذلك لتجنب التأثير "المزدوج" على التوزيع وتبسيط عملية التشخيص.[3]
التطبيق العملي والتوصيات
تُستخدم طريقة Top-p على نطاق واسع في نماذج اللغة الكبيرة الحديثة بفضل جمعها بين المرونة والقدرة على التحكم.
- نطاق القيم النموذجي. عمليًا، غالبًا ما تُستخدم قيم (انظر الأدلة والأمثلة في Transformers؛ وفي العديد من حزم SDK، تظهر القيمة 0.95 كقيمة "افتراضية" أو موصى بها في الأمثلة).[2][4]
- القيم القريبة من 1.0 (مثل 0.98–0.99) تزيد من التنوع، حيث يدخل عدد أكبر من التوكنات إلى النواة.
- القيم الصغيرة (مثل 0.80–0.90) تزيد من حتمية المخرجات وتجعلها أكثر "تحفظًا".
- عند ، يختفي الاقتطاع: يتم الاختيار من كامل المفردات (مع مراعاة درجة الحرارة).[2]
- التوافق مع المكتبات وواجهات برمجة التطبيقات (API).
- في مكتبة Transformers، تم تنفيذ TopPLogitsWarper الذي يستخدم عتبة إضافية `min_tokens_to_keep` (عادةً ≥1) لمنع انحطاط النواة عند استخدام قيم صغيرة جدًا وفي التوزيعات "الحادة".[5]
- في بعض واجهات برمجة التطبيقات، يكون المعامل `top_p` متاحًا بينما قد لا يكون `top_k` موجودًا؛ يعتمد دعم المعاملات ودلالاتها على النموذج أو المزود المحدد (على سبيل المثال، قد تحد بعض نماذج الاستدلال (reasoning models) من إمكانية ضبط العشوائية). انظر المراجع الرسمية لـ OpenAI/Azure/Google.[6][3][4]
- النصوص الطويلة والتكرار. أظهرت سلسلة من التجارب أن أخذ العينات النووي (nucleus sampling) يقلل من الميل إلى الانحطاط (التكرار والعبارات المبتذلة) مقارنة بالخوارزميات الجشعة (greedy) والبحث بالشعاع (beam search) وطريقة Top-k الثابتة، خاصة في التسلسلات الطويلة.[1][7]
المراجع
- Holtzman, A. et al. (2020). The Curious Case of Neural Text Degeneration. arXiv:1904.09751.
- Fan, A. et al. (2018). Hierarchical Neural Story Generation. arXiv:1805.04833.
- Meister, C. et al. (2023). Locally Typical Sampling. arXiv:2202.00666.
- Su, Y.; Collier, N. (2022). Contrastive Search Is What You Need for Neural Text Generation. arXiv:2210.14140.
- O’Brien, S.; Lewis, M. (2023). Contrastive Decoding Improves Reasoning in Large Language Models. arXiv:2309.09117.
- Yu, S. et al. (2023). Conformal Nucleus Sampling. ACL Findings 2023.
- Tan, Q. et al. (2024). A Thorough Examination of Decoding Methods in the Era of Large Language Models. arXiv:2402.06925.
- Finlayson, M. et al. (2024). Basis‑Aware Truncation Sampling for Neural Text Generation. arXiv:2412.14352.
- Chen, S. J. et al. (2025). Decoding Game: On Minimax Optimality of Heuristic Text Generation Methods. arXiv:2410.03968.
- Sen, J. et al. (2025). Advancing Decoding Strategies: Enhancements in Locally Typical Sampling for LLMs. arXiv:2506.05387.
الهوامش
- ↑ 1.0 1.1 1.2 1.3 1.4 1.5 Holtzman, A., Buys, J., Du, L., Forbes, M., & Choi, Y. (2019). The Curious Case of Neural Text Degeneration. arXiv:1904.09751. [١]
- ↑ 2.0 2.1 2.2 Hugging Face Transformers. Generation strategies (top‑k, top‑p, temperature). [٢]
- ↑ 3.0 3.1 Microsoft Learn (Azure OpenAI). Text/Chat Completions — parameters. توصية "تغيير temperature أو top_p، ولكن ليس كليهما في نفس الوقت". [٣]
- ↑ 4.0 4.1 Google AI / Vertex AI. Generation parameters (topP/topK) for text/Gemini. أمثلة مع topP≈0.95. [٤] [٥]
- ↑ Transformers API. TopPLogitsWarper (parameters and behavior, including `min_tokens_to_keep`). [٦]
- ↑ OpenAI API Reference. top_p. [٧]
- ↑ Tan, Q. et al. (2024). A Thorough Examination of Decoding Methods in the Era of Large Language Models. arXiv:2402.06925. [٨]
انظر أيضًا
- درجة الحرارة
- نماذج اللغة الكبيرة