فاز 7 · درس 7

مدل‌سازی علّی زبان و معماری GPT: از ماسک علّی تا استراتژی‌های دیکودینگ

نوع
ساختنی
زمان
حدود 75 دقیقه
زبان‌ها
Python
پیش‌نیاز
فاز 7 · درس 02 (Self-Attention)، فاز 7 · درس 05 (Full Transformer)، فاز 7 · درس 06 (BERT)
یک صفحه مشبک نوری مربعی که نیمی از آن با تیغه‌ای فلزی مورب تیره شده و تنها نیمه پایینی مثلثی آن می‌درخشد
فهرست مطالب
  1. صورت مسئله
  2. مفاهیم کلیدی
  3. ماسک علّی
  4. این مثلث از کجا می‌آید؟
  5. آموزش موازی، استنتاج ترتیبی
  6. تابع زیان — جابه‌جایی با یک گام
  7. استراتژی‌های دیکود کردن
  8. رمز موفقیت فرمول GPT چه بود؟
  9. پیاده‌سازی از صفر
  10. گام 1: ماسک علّی
  11. گام 2: یک مدل شبیه به GPT با 2 لایه
  12. گام 3: پیش‌بینی سرتاسری توکن بعدی
  13. گام 4: نمونه‌برداری
  14. استفاده از ابزارهای واقعی
  15. خروجی این درس
  16. تمرین‌ها
  17. اصطلاحات کلیدی
  18. برای مطالعه‌ی بیشتر

اگر تا به حال برایتان سوال بوده که چطور یک مدل هوش مصنوعی می‌تواند متنی منسجم و کلمه‌به‌کلمه تولید کند، پاسخ در سازوکاری به نام مدل‌سازی علّی زبان (Causal Language Modeling) نهفته است. در حالی که مدل‌هایی مانند BERT با دیدن همزمان گذشته و آینده فقط برای تحلیل متن مناسبند، خانواده‌ی مدل‌های GPT با تکیه بر ایده‌ی پیش‌بینی توکن بعدی و یک ماسک ماتریسی ساده توانسته‌اند پایه‌ی تمام ابزارهای تولید متن مدرن را شکل دهند.

درک معماری دیکودرمحور (decoder-only) و شیوه‌ی کارکرد ماسک مثلثی به شما دیدی شفاف از پشت‌صحنه‌ی پردازش در LLMها می‌دهد. این مفاهیم نه‌تنها تفاوت میان آموزش کاملاً موازی و استنتاج ترتیبی توکن‌به‌توکن را روشن می‌کنند، بلکه استراتژی‌های کلیدی دیکودینگ مانند Temperature، Top-p و Min-p را معرفی می‌کنند؛ پارامترهایی که مستقیماً بر کیفیت و خلاقیت خروجی مدل‌ها در سناریوهای واقعی اثر دارند.

مدل BERT هر دو طرف را می‌بیند؛ GPT فقط گذشته را می‌بیند. این ماسک مثلثی، سرنوشت‌سازترین تک‌خط کد در هوش مصنوعی مدرن است.

صورت مسئله

یک مدل زبانی فقط به یک پرسش پاسخ می‌دهد: با داشتن t-1 توکن اول، توزیع احتمال روی توکن t چیست؟ مدل را روی همین سیگنال آموزش دهید — یعنی پیش‌بینی توکن بعدی (next-token prediction) — تا مدلی به دست آورید که می‌تواند متنی دلخواه را توکن‌به‌توکن تولید کند.

برای اینکه بتوانید مدل را به‌صورت سرتاسری (end-to-end) و موازی روی کل یک دنباله آموزش دهید، پیش‌بینی هر موقعیت باید فقط به موقعیت‌های قبلی وابسته باشد؛ وگرنه مدل با نگاه‌کردن به جواب، خیلی ساده تقلب می‌کند.

ماسک علّی (causal mask) همین کار را انجام می‌دهد: یک ماتریس بالامثلثی از مقادیر inf- که قبل از سافت‌مکس (softmax) به امتیازهای اتنشن (attention) اضافه می‌شود. بعد از سافت‌مکس، وزن آن موقعیت‌ها صفر می‌شود. در نتیجه هر موقعیت فقط می‌تواند به خودش و موقعیت‌های پیش از خودش اتنشن داشته باشد. از آنجا که این ماسک را یک‌بار روی کل دنباله اعمال می‌کنید، در یک گذر رو به جلو (forward pass) به N پیش‌بینی موازی برای توکن‌های بعدی می‌رسید.

مدل‌های GPT-1 (2018)، GPT-2 (2019)، GPT-3 (2020)، GPT-4 (2023)، GPT-5 (2025)، Claude، Llama، Qwen، Mistral، DeepSeek و Kimi همگی ترنسفورمرهای (transformer) علّیِ فقط دیکودر (decoder-only) با یک حلقه‌ی اصلیِ یکسان هستند. چیزی که آن‌ها را از هم متمایز می‌کند کیفیت داده‌ها، مقیاس و بهبودهای جزئی معماری، و پس‌آموزش (شامل SFT، RLHF، DPO و ادامه‌دهندگان آن‌ها) است.

مفاهیم کلیدی

ماسک علّی یک ماتریس اتنشن مثلثی می‌سازد

ماسک علّی

برای دنباله‌ای با طول NN، یک ماتریس N×NN \times N بسازید:

Mij={0if j≤i−∞if j>iM_{ij} = \begin{cases} 0 & \text{if } j \le i \\ -\infty & \text{if } j > i \end{cases}

ماتریس M را قبل از سافت‌مکس به امتیازهای خام اتنشن اضافه کنید. چون exp⁡(−∞)=0\exp(-\infty) = 0، موقعیت‌های ماسک‌شده وزنی معادل صفر می‌گیرند. حالا هر سطر از ماتریس اتنشن، یک توزیع احتمال فقط روی موقعیت‌های پیشین است.

هزینه‌ی پیاده‌سازی: فقط یک فراخوانی torch.tril(). زمان محاسبه: در حد نانوثانیه. تأثیرش روی این حوزه: دگرگونی همه‌چیز.

این مثلث از کجا می‌آید؟

معمولاً ماسک را طوری نشان می‌دهند که انگار وصله‌ای پیوندخورده به اتنشن است. اگر روند استخراج فرمول را برعکس طی کنید، دیگر رازآلود به نظر نمی‌رسد: اتنشن در واقع سومین مرحله‌ی پالایشِ یک «میانگین پیشوندی» (prefix average) است و این مثلث، همان حدود حلقه‌ی آن میانگین‌گیری است که در قالب یک ماتریس نوشته شده است.

مرحله‌ی 1 — میانگین پیشوندی. ساده‌ترین خلاصه‌ی علّی از یک دنباله: موقعیت ii میانگین موقعیت‌های 0…i0 \ldots i می‌شود. در قالب حلقه، می‌شود: out[i] = X[:i+1].mean(0). همین محاسبه را می‌توان با یک ضرب ماتریسی انجام داد. یک ماتریس پایین‌مثلثی از عدد یک بردارید، هر سطر را بر تعداد عناصرش تقسیم کنید و ضرب را انجام دهید:

import numpy as np

A = np.tril(np.ones((n, n)))
A = A / A.sum(axis=1, keepdims=True)
out = A @ X

سطر ii از AA برابر با [1/(i+1),…,1/(i+1),0,…,0][1/(i+1), \ldots, 1/(i+1), 0, \ldots, 0] است. صفرهای بالای قطر اصلی، همان علّیت هستند. قرار نبود چیزی از آینده ماسک شود؛ آینده اصلاً در این جمع حضور نداشت.

مرحله‌ی 2 — وزن‌های یادگرفتنی. یک میانگین ساده و یکنواخت با همه‌ی توکن‌های گذشته طوری رفتار می‌کند که انگار اهمیت یکسانی دارند. اعداد یک را با یک ماتریس امتیاز یادگرفتنی به نام S جایگزین کنید. حالا دیگر مجموع سطرها بر حسب ساختار برابر با یک نمی‌شود؛ پس به‌جای تقسیم بر تعداد، هر سطر را با سافت‌مکس نرمال کنید. خروجی سافت‌مکس هیچ‌وقت دقیقاً صفر نمی‌شود و این رابطه‌ی علّی را نقض می‌کند — مگر اینکه امتیازهای آینده با inf- وارد شوند، چون exp(-inf) = 0:

def softmax(x, axis):
    e = np.exp(x - np.max(x, axis=axis, keepdims=True))
    return e / e.sum(axis=axis, keepdims=True)

S = S + np.triu(np.full((n, n), -np.inf), k=1)
A = softmax(S, axis=1)
out = A @ X

همان مثلث، همان ماتریس تصادفی سطری (row-stochastic)، و همان یک ضرب ماتریسی. ماسک inf- سازوکار تازه‌ای نیست؛ همان درایه‌های صفر مرحله‌ی 1 است که به دامنه‌ی ورودی سافت‌مکس منتقل شده است.

مرحله‌ی 3 — وزن‌های وابسته به محتوا. در مرحله‌ی 2، ماتریس S بعد از آموزش ثابت می‌ماند: موقعیت 7 همیشه به موقعیت 3 وزن یکسانی می‌دهد، صرف‌نظر از اینکه توکن‌ها چه باشند. حالا بگذارید امتیازها به خود توکن‌ها وابسته باشند: S = Q @ K.T / sqrt(d_k). هیچ‌چیز دیگری تغییر نمی‌کند: ماسک، سافت‌مکس و ضرب ماتریسی دقیقاً همانند.

سه مرحله، با یک ویژگیِ پایدار: ضرب یک ماتریس پایین‌مثلثی تصادفی سطری در دنباله. میانگین یکنواخت، وزن‌های ایستای یادگرفتنی، و وزن‌های وابسته به محتوا. این ماسک هرگز به اتنشن افزوده نشد؛ بلکه از همان میانگین‌گیری اولیه به یادگار ماند.

منشأ این مثلث از کجاستسه مرحله بهبود یک ماتریس
WHERE THE TRIANGLE COMES FROMAll three panels are a lower-triangular row-stochastic matrix multiplied against the sequence. The prefix average fixes every weight at 1/(i+1). Learned scores make the weights uneven but static. Attention makes them depend on the tokens themselves, which is why the third panel keeps shifting. The mask never changed; it is the loop bounds of the original average.AVERAGE1/(i+1)LEARNEDsoftmax(S + M)ATTENTIONsoftmax(QKᵀ/√d + M)یادگیری SS = QKᵀمثلث ثابت است · وزن‌ها تغییر می‌کنند
هر سه قاب، یک ماتریس پایین‌مثلثی تصادفی سطری هستند که در دنباله ضرب می‌شوند. میانگین پیشوندی مقدار هر وزن را روی 1/(i+1) ثابت نگه می‌دارد. امتیازهای یادگرفته‌شده وزن‌ها را نامتقارن اما ایستا می‌کنند. اتنشن باعث می‌شود وزن‌ها به خود توکن‌ها وابسته شوند، به همین دلیل قاب سوم مدام تغییر می‌کند. ماسک هیچ‌گاه تغییر نکرد؛ این ماسک همان حدود حلقه در میانگین‌گیری اولیه است.

آموزش موازی، استنتاج ترتیبی

آموزش: کل دنباله‌ی (N, d_model) را یک‌بار از گذر رو به جلو عبور دهید، N تابع زیان (loss) آنتروپی متقاطع (یکی برای هر موقعیت) حساب کنید، آن‌ها را جمع بزنید و پس‌انتشار (backprop) را انجام دهید. این کار در راستای دنباله کاملاً موازی انجام می‌شود. علت مقیاس‌پذیری آموزش GPT همین است: 1M توکن را در قالب یک بچ و در یک گذر از GPU پردازش می‌کنید.

استنتاج: تولید متن، توکن‌به‌توکن انجام می‌شود. [t1, t2, t3] را بدهید، t4 را بگیرید. [t1, t2, t3, t4] را بدهید، t5 را بگیرید. [t1, t2, t3, t4, t5] را بدهید، t6 را بگیرید. کش KV (درس 12) وضعیت‌های پنهان (hidden states) توکن‌های t1…tn را ذخیره می‌کند تا مجبور نباشید آن‌ها را در هر گام دوباره حساب کنید. با این حال، عمق پردازش ترتیبی در زمان استنتاج دقیقاً برابر با طول خروجی است. این همان مالیات خودبازگشتی (autoregressive tax) است؛ به همین دلیل مرحله‌ی دیکود کردن، گلوگاه تاخیر (latency) در تمام LLMها محسوب می‌شود.

تابع زیان — جابه‌جایی با یک گام

با داشتن توکن‌های [t1, t2, t3, t4]:

  • ورودی: [t1, t2, t3]
  • هدف‌ها (Targets): [t2, t3, t4]

برای هر موقعیت i، مقدار ([log P(target_i | inputs[:i+1- را حساب کنید. مجموع آن‌ها آنتروپی متقاطع کل دنباله است.

تمام مدل‌های زبانی ترنسفورمری که نامشان را شنیده‌اید با همین تابع زیان آموزش می‌بینند. پیش‌آموزش، فاین‌تیونینگ و SFT همگی از همین زیان استفاده می‌کنند و فقط داده‌هایشان فرق دارد.

استراتژی‌های دیکود کردن

بعد از اتمام آموزش، شیوه‌ی نمونه‌برداری (sampling) بسیار مهم‌تر از آن چیزی است که به نظر می‌رسد.

روش عملکرد زمان استفاده
حریصانه (Greedy) انتخاب Argmax در هر گام کارهای قطعی، تکمیل کد
دما (Temperature) تقسیم لاجیت‌ها بر T و سپس نمونه‌برداری کارهای خلاقانه؛ T بالاتر یعنی تنوع بیشتر
Top-k نمونه‌برداری فقط از بین k توکن برتر حذف دنباله‌های کم‌احتمال
Top-p (هسته‌ای) نمونه‌برداری از کوچک‌ترین مجموعه‌ای با احتمال تجمعی p ≤ حالت پیش‌فرض از سال 2020 به بعد؛ سازگار با شکل توزیع
Min-p نگه‌داشتن توکن‌هایی با شرط p > min_p * max_p از سال 2024 به بعد؛ عملکرد بهتر از top-p در رد کردن دنباله‌های انتهایی
دیکودینگ حدسی (Speculative decoding) مدل پیش‌نویس N توکن پیشنهاد می‌دهد و مدل بزرگ آن‌ها را تایید می‌کند کاهش 2 تا 3 برابری تاخیر با حفظ همان کیفیت

در سال 2026، ترکیب min-p با دمای 0.7 یک گزینه‌ی پیش‌فرض و منطقی برای مدل‌های با وزن باز (open-weights) است. استفاده از دیکودینگ حدسی هم پیش‌نیاز بدیهی هر زیرساخت استنتاج در محیط پروداکشن به شمار می‌رود.

رمز موفقیت فرمول GPT چه بود؟

  1. فقط دیکودر (Decoder-only): بدون سربار انکودر. فقط یک گذر اتنشن به اضافه‌ی FFN در هر لایه.
  2. مقیاس‌پذیری: از 124M به 1.5B، سپس 175B و بعد به چند تریلیون پارامتر رسید. قوانین مقیاس‌پذیری چینچیلا (Chinchilla، درس 13) تعیین می‌کنند توان محاسباتی را چطور خرج کنید.
  3. یادگیری در پرامپت (In-context learning): این توانایی حوالی مقیاس 6B تا 13B پدیدار شد؛ مدل بدون نیاز به فاین‌تیونینگ می‌تواند از چند مثال درون پرامپت یاد بگیرد.
  4. روش RLHF: پس‌آموزش روی ترجیحات انسانی، متن‌های خام و آموزش‌دیده را به دستیارهای گفتگو تبدیل کرد.
  5. به‌کارگیری Pre-norm ،RoPE و SwiGLU: آموزش پایدار در مقیاس‌های بزرگ.

معماری اصلی از زمان GPT-2 تغییر چندانی نکرده است. تمام اتفاقات جذاب در حوزه‌ی داده، مقیاس و پس‌آموزش رخ داده‌اند.

ماسک علّی (Causal Mask)بکشید N
CAUSAL MASKA causal mask sets every future score to negative infinity before the softmax, so each token attends only to itself and the tokens before it. The grey upper triangle is the forbidden future. This single constraint is what lets a transformer generate left to right without peeking ahead.
یک ماسک علّی تمام امتیازهای مربوط به آینده را قبل از سافت‌مکس روی منفی بی‌نهایت تنظیم می‌کند، بنابراین هر توکن فقط به خودش و توکن‌های قبل از خود توجه می‌کند. مثلث خاکستری بالایی، آینده‌ی ممنوعه است. همین قیدِ منفرد است که به ترنسفورمر امکان می‌دهد بدون نگاه به آینده، متن را از چپ به راست تولید کند.

پیاده‌سازی از صفر

گام 1: ماسک علّی

فایل code/main.py را ببینید. کل ماجرا در یک خط خلاصه می‌شود:

def causal_mask(n):
    return [[0.0 if j <= i else float("-inf") for j in range(n)] for i in range(n)]

کافی است قبل از سافت‌مکس، آن را به امتیازهای اتنشن اضافه کنید. کل سازوکار همین است.

گام 2: یک مدل شبیه به GPT با 2 لایه

دو بلوک دیکودر (اتنشن خودکار ماسک‌شده به اضافه‌ی FFN، بدون کراس‌اتنشن) را روی هم قرار دهید. یک امبدینگ (embedding) توکن، یک کدگذاری مکانی (positional encoding)، و یک لایه‌ی unembedding اضافه کنید (که با ماتریس امبدینگ توکن گره خورده است — ترفندی استاندارد از زمان GPT-2).

گام 3: پیش‌بینی سرتاسری توکن بعدی

روی یک مجموعه‌واژگان آزمایشی با 20 توکن، لاجیت‌ها (logits) را در تمام موقعیت‌ها تولید کنید. تابع زیان آنتروپی متقاطع را در برابر هدفی که یک گام جابه‌جا شده حساب کنید. نیازی به محاسبه‌ی گرادیان نیست؛ این صرفاً یک بررسی اولیه‌ی گذر رو به جلو است.

گام 4: نمونه‌برداری

روش‌های حریصانه، دما، top-k ،top-p و min-p را پیاده‌سازی کنید. هر کدام را روی یک پرامپت ثابت اجرا کرده و خروجی‌ها را با هم مقایسه کنید. یک تابع نمونه‌برداری بیشتر از 10 خط نیست.

استفاده از ابزارهای واقعی

سبک رایج PyTorch در سال 2026:

from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-3.2-3B-Instruct")
tok = AutoTokenizer.from_pretrained("meta-llama/Llama-3.2-3B-Instruct")

prompt = "Attention is all you need because"
inputs = tok(prompt, return_tensors="pt")
out = model.generate(
    **inputs,
    max_new_tokens=64,
    temperature=0.7,
    top_p=0.9,
    do_sample=True,
)
print(tok.decode(out[0]))

در لایه‌های زیرین، متد generate() گذر رو به جلو را اجرا می‌کند، لاجیت‌های موقعیت آخر را برمی‌دارد، توکن بعدی را نمونه‌برداری می‌کند، آن را به دنباله می‌افزاید و این فرایند را تکرار می‌کند. تمام پشته‌های استنتاج عملیاتی LLM (مثل vLLM، TensorRT-LLM، llama.cpp، Ollama و MLX) همین حلقه را با بهینه‌سازی‌های سنگین پیاده می‌کنند — از جمله پیش‌پر کردن دسته‌ای (batched prefill)، دسته‌بندی پیوسته (continuous batching)، صفحه‌بندی کش KV و دیکودینگ حدسی.

تفاوت GPT و BERT در یک خط: GPT مقدار P(xt∣x<t)P(x_t \mid x_{<t}) را پیش‌بینی می‌کند؛ BERT مقدار P(xmasked∣xunmasked)P(x_{\text{masked}} \mid x_{\text{unmasked}}) را پیش‌بینی می‌کند. همین تابع زیان تعیین می‌کند که مدل توانایی تولید متن را دارد یا خیر.

خروجی این درس

فایل outputs/skill-sampling-tuner.md را بررسی کنید. این مهارت پارامترهای مناسب نمونه‌برداری را برای کارهای جدید تولید متن انتخاب می‌کند و زمان‌هایی را که نیاز به دیکود کردن قطعی است پرچم‌گذاری می‌کند.

تمرین‌ها

  1. ساده. اسکریپت code/main.py را اجرا کنید و مطمئن شوید ماتریس اتنشن علّی بعد از سافت‌مکس حتماً پایین‌مثلثی است. برای نمونه بررسی کنید: سطر 3 باید فقط در ستون‌های 0 تا 3 وزن داشته باشد.
  2. متوسط. جستجوی پرتو (beam search) را با عرض 4 پیاده‌سازی کنید. پرپلکسیتی (perplexity) جستجوی پرتو با عرض 4 را با روش حریصانه روی 10 پرامپت کوتاه مقایسه کنید. آیا جستجوی پرتو همیشه برنده است؟ (راهنمایی: معمولاً در ترجمه برنده است، اما در چت‌های آزاد این‌طور نیست.)
  3. سخت. دیکودینگ حدسی را پیاده‌سازی کنید: از یک مدل کوچک 2 لایه به عنوان مدل پیش‌نویس و از مدلی 6 لایه به عنوان مدل تاییدکننده استفاده کنید. میزان شتاب زمانی واقعی (wall-clock speedup) را روی 100 خروجی با طول 64 اندازه بگیرید. تایید کنید که خروجی‌ها دقیقاً با روش حریصانه‌ی مدل تاییدکننده یکسان هستند.

اصطلاحات کلیدی

اصطلاح آنچه گفته می‌شود معنای واقعی آن
ماسک علّی (Causal mask) «همان مثلث» ماتریس بالامثلثی از inf- که به امتیازهای اتنشن اضافه می‌شود تا موقعیت i فقط موقعیت‌های i ≥ را ببیند.
پیش‌بینی توکن بعدی (Next-token prediction) «تابع زیان» آنتروپی متقاطع میان توزیع مدل و توکن واقعیِ بعدی در تک‌تک موقعیت‌ها.
خودبازگشتی (Autoregressive) «تولید یکی‌یکی» فرستادن دوباره‌ی خروجی به عنوان ورودی؛ پردازش موازی فقط در آموزش وجود دارد، نه هنگام تولید متن.
لاجیت‌ها (Logits) «امتیازهای قبل از سافت‌مکس» خروجی خام سر (head) مدل زبانی قبل از سافت‌مکس؛ نمونه‌برداری روی همین مقادیر انجام می‌شود.
دما (Temperature) «پیچ تنظیم خلاقیت» تقسیم لاجیت‌ها بر TT؛ مقدار T→0T \to 0 حالت حریصانه است و T→∞T \to \infty توزیع یکنواخت می‌سازد.
Top-p «نمونه‌برداری هسته‌ای» محدود کردن توزیع به کوچک‌ترین مجموعه‌ای که جمع آن به ≥p\ge p برسد؛ سپس نمونه‌برداری از میان باقی‌مانده‌ها.
Min-p «بهتر از top-p» نگه‌داشتن توکن‌هایی با شرط p ≥ min_p × max_p؛ آستانه‌ی برش را با میزان تیزی توزیع تطبیق می‌دهد.
دیکودینگ حدسی (Speculative decoding) «پیش‌نویس + تایید» مدل سبک چند توکن پیشنهاد می‌دهد؛ مدل بزرگ آن‌ها را به‌طور موازی ارزیابی و تایید می‌کند.
وادارسازی معلم (Teacher forcing) «ترفند آموزشی» در زمان آموزش، توکن واقعی قبلی به عنوان ورودی داده می‌شود، نه پیش‌بینیِ خود مدل؛ استانداردی ثابت در تمام مدل‌های seq2seq.

برای مطالعه‌ی بیشتر

سؤالات متداول

ماسک علّی (Causal Mask) در مدل‌های GPT دقیقاً چه کاری انجام می‌دهد؟

ماسک علّی یک ماتریس بالامثلثی از مقادیر inf- است که پیش از سافت‌مکس به امتیازهای اتنشن افزوده می‌شود تا وزن موقعیت‌های آینده صفر شود و هر موقعیت فقط بتواند به خود و توکن‌های پیش از خود توجه کند.

چرا آموزش GPT کاملاً موازی است اما استنتاج آن به‌صورت ترتیبی انجام می‌شود؟

در آموزش، کل دنباله یک‌بار وارد مدل می‌شود و با کمک ماسک، توکن بعدی در تمام جایگاه‌ها همزمان پیش‌بینی و تصحیح می‌شود؛ اما در استنتاج، توکن تولیدشده‌ی فعلی باید به عنوان ورودی گام بعد داده شود که نیازمند تولید توکن‌به‌توکن است.

استراتژی نمونه‌برداری Min-p چه برتری‌ای نسبت به Top-p دارد؟

روش Min-p توکن‌ها را بر اساس ضریبی از احتمال بیشترین توکن فیلتر می‌کند؛ در نتیجه آستانه‌ی برش با میزان قطعیت یا پهنای توزیع در هر گام سازگار می‌شود و دنباله‌های نامطلوب و کم‌احتمال را بهتر از Top-p حذف می‌کند.

ما رو توی گوگل بیشتر ببین

با افزودن نکست ادمین به «منابع ترجیحی» گوگل، درس‌ها و مطالب ما را در بخش اخبار برتر جستجو بیشتر می‌بینید.