Top-k چیست؟ راهنمای جامع پارامتر تاپ-کی در هوش مصنوعی و API
Top-k یکی از مهمترین پارامترهای نمونهبرداری (Sampling) در مدلهای زبانی بزرگ است که با محدود کردن تعداد توکنهای قابل انتخاب، تعادل مناسبی بین دقت، تنوع و کیفیت پاسخ ایجاد میکند.
آنچه در این مقاله میخوانید
- Top-k چیست؟
- چرا Top-k معرفی شد؟
- Top-k چگونه کار میکند؟
- تفاوت Top-k با Temperature
- تفاوت Top-k با Top-p
- مزایا و معایب Top-k
- بهترین مقدار Top-k برای کاربردهای مختلف
- نمونههای واقعی
- نمونه کد API
- اشتباهات رایج
- بهترین روشهای استفاده
- پرسشهای متداول
- جمعبندی
Top-k چیست؟
اگر در مستندات مدلهای هوش مصنوعی مانند GPT، Llama، Mistral، Gemma، Qwen، DeepSeek یا بسیاری از مدلهای متنباز جستجو کرده باشید، احتمالاً در کنار پارامترهایی مانند Temperature و Top-p با گزینهای به نام Top-k نیز روبهرو شدهاید. هر سه پارامتر به فرایندی به نام نمونهبرداری (Sampling) مربوط میشوند؛ یعنی مرحلهای که مدل تصمیم میگیرد کدام توکن را بهعنوان بخش بعدی پاسخ انتخاب کند.
در نگاه اول ممکن است Top-k بسیار شبیه Top-p به نظر برسد، زیرا هر دو تعداد گزینههایی را که مدل میتواند از میان آنها انتخاب کند محدود میکنند. اما تفاوت مهمی میان این دو وجود دارد. Top-k همیشه تعداد ثابتی از محتملترین توکنها را نگه میدارد، در حالی که Top-p بر اساس مجموع احتمالها تصمیم میگیرد چه تعداد توکن وارد فرایند انتخاب شوند.
به همین دلیل، Top-k رفتاری سادهتر و قابل پیشبینیتر دارد، اما در برخی شرایط انعطافپذیری کمتری نسبت به Top-p ارائه میدهد.
برای درک بهتر این موضوع، ابتدا باید بدانیم مدلهای زبانی چگونه متن تولید میکنند.
هر بار که مدل میخواهد یک کلمه، علامت نگارشی یا بخشی از متن را تولید کند، هزاران توکن ممکن را بررسی میکند. برای هر توکن، یک احتمال محاسبه میشود که نشان میدهد آن گزینه تا چه اندازه برای ادامه جمله مناسب است. این احتمالها معمولاً به صورت یک توزیع آماری نمایش داده میشوند.
برای مثال فرض کنید مدل باید جملۀ زیر را کامل کند:
هوش مصنوعی میتواند ...
ممکن است احتمال توکنهای بعدی به شکل زیر باشد:
| توکن | احتمال |
|---|---|
| کمک | ۳۴٪ |
| تحول | ۲۳٪ |
| یادگیری | ۱۶٪ |
| تحلیل | ۹٪ |
| بهبود | ۷٪ |
| ایجاد | ۵٪ |
| طراحی | ۳٪ |
| جایگزین | ۲٪ |
| پیشبینی | ۱٪ |
اگر مدل اجازه داشته باشد از میان تمام گزینههای موجود انتخاب کند، احتمال انتخاب واژههای کمارتباط نیز وجود خواهد داشت؛ بهویژه زمانی که Temperature بالا باشد. از طرف دیگر، اگر همیشه فقط محتملترین گزینه انتخاب شود، خروجی مدل خشک، تکراری و قابل پیشبینی خواهد شد.
Top-k دقیقاً برای ایجاد تعادل میان این دو حالت طراحی شده است.
به جای آنکه مدل همۀ توکنهای ممکن را بررسی کند، ابتدا آنها را بر اساس احتمال مرتب میکند و سپس فقط k توکن اول را نگه میدارد. تمام گزینههای دیگر، حتی اگر احتمال نسبتاً مناسبی داشته باشند، از فرایند انتخاب حذف میشوند.
برای مثال اگر مقدار Top-k = 5 باشد، تنها پنج گزینۀ اول جدول بالا باقی میمانند:
| توکن | احتمال |
|---|---|
| کمک | ۳۴٪ |
| تحول | ۲۳٪ |
| یادگیری | ۱۶٪ |
| تحلیل | ۹٪ |
| بهبود | ۷٪ |
توکنهای «ایجاد»، «طراحی»، «جایگزین» و «پیشبینی» دیگر شانسی برای انتخاب شدن ندارند، حتی اگر در برخی موقعیتها بتوانند پاسخ مناسبی تولید کنند.
این ویژگی باعث میشود Top-k رفتاری کاملاً قابل پیشبینی داشته باشد. توسعهدهنده دقیقاً میداند که مدل در هر مرحله فقط از میان چند گزینۀ اول تصمیم خواهد گرفت و هیچ توکن دیگری وارد رقابت نمیشود.
به همین دلیل، Top-k در بسیاری از مدلهای متنباز و پروژههای پژوهشی بهعنوان یکی از سادهترین و مؤثرترین روشهای نمونهبرداری شناخته میشود. با این حال، در سالهای اخیر بسیاری از ارائهدهندگان API ترجیح دادهاند Top-p را بهعنوان گزینۀ پیشفرض پیشنهاد کنند، زیرا Top-p میتواند خود را با توزیع احتمالهای هر مرحله تطبیق دهد؛ در حالی که Top-k همیشه یک محدودیت ثابت اعمال میکند.
این موضوع به این معنا نیست که Top-k منسوخ شده است. برعکس، در بسیاری از کاربردهای تخصصی مانند تولید کد، پژوهشهای دانشگاهی یا تنظیم دقیق مدلهای متنباز، هنوز هم Top-k نقش مهمی در کنترل کیفیت خروجی دارد و بسیاری از پژوهشگران از ترکیب آن با Temperature یا Top-p استفاده میکنند.
چرا نام آن Top-k است؟
حرف k در علوم کامپیوتر معمولاً نشاندهندۀ «تعداد» است. بنابراین عبارت Top-k به معنای «انتخاب از میان k گزینۀ برتر» است.
برای نمونه:
- Top-k = ۱ یعنی فقط محتملترین توکن انتخاب میشود.
- Top-k = ۱۰ یعنی مدل فقط از میان ۱۰ توکن با بیشترین احتمال انتخاب میکند.
- Top-k = ۵۰ یعنی دایرۀ انتخاب به ۵۰ توکن نخست محدود میشود.
هرچه مقدار k بزرگتر باشد، مدل آزادی بیشتری برای انتخاب خواهد داشت و هرچه این مقدار کوچکتر باشد، خروجی مدل به سمت پاسخهای محافظهکارانهتر و قابل پیشبینیتر حرکت میکند.
پرسش و پاسخ
آیا Top-k باعث میشود مدل پاسخهای دقیقتری تولید کند؟
نه لزوماً. Top-k دانش مدل را افزایش نمیدهد و کیفیت ذاتی آن را تغییر نمیدهد. این پارامتر فقط مشخص میکند مدل از میان چند گزینۀ محتمل اجازه انتخاب داشته باشد. در برخی کاربردها این محدودیت باعث افزایش کیفیت خروجی میشود و در برخی دیگر ممکن است تنوع پاسخ را بیش از حد کاهش دهد.
چرا Top-k معرفی شد؟
برای اینکه بدانیم چرا پارامتری مانند Top-k به مدلهای هوش مصنوعی اضافه شده است، ابتدا باید با یکی از مهمترین چالشهای مدلهای زبانی آشنا شویم؛ انتخاب توکن بعدی.
شاید در نگاه اول این کار بسیار ساده به نظر برسد. مدل هزاران احتمال را محاسبه میکند و محتملترین گزینه را انتخاب میکند. اما اگر این اتفاق در تمام مراحل تولید متن تکرار شود، نتیجه معمولاً چندان مطلوب نخواهد بود.
در واقع، یکی از اولین مشکلاتی که پژوهشگران هنگام توسعۀ مدلهای زبانی با آن روبهرو شدند، این بود که مدلها در صورت انتخاب همیشگی محتملترین توکن، متنهایی بسیار قابل پیشبینی، تکراری و گاهی حتی خستهکننده تولید میکردند.
به همین دلیل، روشهای مختلفی برای انتخاب هوشمندانهتر توکن بعدی معرفی شد که امروزه با نام Decoding Strategies یا روشهای رمزگشایی خروجی شناخته میشوند.
Top-k یکی از مهمترین این روشهاست.
مدلهای زبانی چگونه تصمیم میگیرند؟
فرض کنید از یک مدل بخواهید جمله زیر را ادامه دهد:
آینده هوش مصنوعی ...
پس از تحلیل متن، مدل ممکن است احتمالهای زیر را تولید کند:
| توکن | احتمال |
|---|---|
| خواهد | ۳۱٪ |
| میتواند | ۲۵٪ |
| برای | ۱۱٪ |
| در | ۸٪ |
| بسیار | ۶٪ |
| احتمالاً | ۵٪ |
| شاید | ۴٪ |
| کاملاً | ۳٪ |
| روزی | ۲٪ |
| هرگز | ۱٪ |
اکنون مدل باید تنها یک گزینه را انتخاب کند.
اما سؤال اینجاست:
کدام گزینه؟
همین سؤال ساده، سالها یکی از موضوعات مهم پژوهش در حوزه مدلهای زبانی بوده است.
روش اول: Greedy Decoding
سادهترین روش ممکن، انتخاب همیشگی محتملترین توکن است.
در مثال بالا، مدل همیشه «خواهد» را انتخاب میکند، زیرا بیشترین احتمال را دارد.
این روش مزایای مهمی دارد:
- بسیار سریع است.
- پیادهسازی سادهای دارد.
- خروجی تقریباً همیشه قابل پیشبینی است.
اما مشکل بزرگ آن این است که مدل در هر مرحله فقط به بهترین گزینه همان لحظه نگاه میکند و هیچ انعطافی ندارد.
به همین دلیل، خروجیها معمولاً:
- تکراری میشوند.
- خلاقیت کمی دارند.
- ساختار جملهها به مرور یکنواخت میشود.
- در تولید داستان، شعر یا متن تبلیغاتی عملکرد ضعیفی دارند.
فرض کنید از مدل بخواهید ده بار این جمله را کامل کند:
آینده هوش مصنوعی ...
اگر از Greedy Decoding استفاده شود، احتمال زیادی وجود دارد که هر ده بار تقریباً یک جمله مشابه تولید شود.
این رفتار برای بسیاری از کاربردها مناسب نیست.
پرسش و پاسخ
آیا Greedy Decoding هنوز هم استفاده میشود؟
بله. در برخی کاربردهای تخصصی که تکرارپذیری و قطعیت اهمیت زیادی دارد، مانند برخی سامانههای طبقهبندی یا وظایف خاص پژوهشی، همچنان از این روش استفاده میشود.
روش دوم: انتخاب کاملاً تصادفی
حال تصور کنید مدل هیچ محدودیتی نداشته باشد و بتواند از میان تمام هزاران توکن موجود یکی را انتخاب کند.
در این حالت ممکن است مدل به جای «خواهد» یا «میتواند»، ناگهان واژهای مانند:
پنجره
یا
دوچرخه
را انتخاب کند.
چنین خروجیهایی از نظر آماری ممکن هستند، اما کیفیت متن را به شدت کاهش میدهند.
بنابراین انتخاب کاملاً تصادفی نیز راهحل مناسبی نیست.
نیاز به یک راهحل میانی
پژوهشگران به این نتیجه رسیدند که باید روشی وجود داشته باشد که:
- خروجیها فقط محدود به یک پاسخ ثابت نباشند.
- مدل بتواند گاهی گزینه دوم یا سوم را انتخاب کند.
- احتمال انتخاب گزینههای بسیار نامحتمل کاهش پیدا کند.
- متن همچنان طبیعی باقی بماند.
Top-k دقیقاً برای حل همین مسئله معرفی شد.
Top-k چگونه این مشکل را حل میکند؟
فرض کنید مدل هزاران توکن مختلف را برای ادامه جمله محاسبه کرده است.
به جای آنکه همه این گزینهها را وارد فرایند انتخاب کند، Top-k فقط تعداد مشخصی از بهترین گزینهها را نگه میدارد.
مثلاً اگر:
Top-k = 5
باشد، فقط پنج توکن با بیشترین احتمال باقی میمانند.
اگر
Top-k = 20
باشد، فقط بیست گزینه بررسی خواهند شد.
در نتیجه مدل دیگر هرگز از میان هزاران توکن بسیار کماحتمال انتخاب نمیکند.
یک مثال واقعی
فرض کنید مدل باید کلمه بعدی را انتخاب کند.
احتمالها به شکل زیر هستند:
| رتبه | توکن | احتمال |
|---|---|---|
| 1 | کمک | ۲۴٪ |
| 2 | تحول | ۲۰٪ |
| 3 | بهبود | ۱۶٪ |
| 4 | تغییر | ۱۴٪ |
| 5 | توسعه | ۱۰٪ |
| 6 | ساخت | ۶٪ |
| 7 | ایجاد | ۴٪ |
| 8 | طراحی | ۳٪ |
| 9 | گسترش | ۲٪ |
| 10 | مدیریت | ۱٪ |
اگر مقدار Top-k برابر با ۵ باشد، فقط پنج گزینۀ اول باقی میمانند.
بنابراین مدل تنها از میان این گزینهها انتخاب میکند:
- کمک
- تحول
- بهبود
- تغییر
- توسعه
سایر گزینهها حتی اگر از نظر معنایی قابل قبول باشند، دیگر در انتخاب نهایی حضور ندارند.
مزیت این روش چیست؟
محدود کردن فضای انتخاب باعث میشود مدل:
- کمتر دچار انحراف شود.
- پاسخهای منسجمتری تولید کند.
- احتمال تولید واژههای عجیب کاهش پیدا کند.
- کیفیت کلی متن حفظ شود.
به همین دلیل، بسیاری از مدلهای متنباز مانند Llama، Mistral و Qwen همچنان امکان تنظیم Top-k را در اختیار توسعهدهندگان قرار میدهند.
اما Top-k یک محدودیت مهم هم دارد
اینجا دقیقاً نقطهای است که Top-p از Top-k پیشی میگیرد.
فرض کنید در یک مرحله از تولید متن، مدل فقط سه گزینۀ واقعاً مناسب دارد.
اگر Top-k برابر با ۵۰ باشد، مدل همچنان مجبور است پنجاه گزینه را وارد فرآیند انتخاب کند؛ حتی اگر گزینههای سیام تا پنجاهم احتمال بسیار ناچیزی داشته باشند.
برعکس، ممکن است در مرحلۀ دیگری صد گزینۀ مناسب وجود داشته باشد، اما اگر Top-k برابر با ۱۰ تنظیم شده باشد، نود گزینۀ قابل قبول دیگر حذف میشوند.
این رفتار نشان میدهد که Top-k همیشه با یک عدد ثابت کار میکند و از توزیع واقعی احتمالها اطلاعی ندارد.
همین محدودیت باعث شد پژوهشگران بعدها روش Top-p (Nucleus Sampling) را معرفی کنند که به جای تعداد ثابت، بر اساس احتمال تجمعی تصمیم میگیرد چه تعداد توکن وارد فرآیند انتخاب شوند.
در بخش بعدی مقاله، همین موضوع را با مثالهای عددی و نمودارهای مفهومی بررسی میکنیم و بهطور کامل نشان میدهیم که Top-k، Top-p و Temperature در چه شرایطی عملکرد متفاوتی دارند و برای هر کاربرد کدام گزینه مناسبتر است.
پرسش و پاسخ
آیا Top-k در مدلهای امروزی منسوخ شده است؟
خیر. اگرچه بسیاری از APIهای تجاری بیشتر بر Temperature و Top-p تمرکز دارند، اما Top-k همچنان در بسیاری از مدلهای متنباز، پروژههای تحقیقاتی و چارچوبهای استنتاج (Inference Frameworks) استفاده میشود. در برخی سناریوها، بهویژه هنگام تنظیم دقیق رفتار مدل، Top-k همچنان یک ابزار ارزشمند و کاربردی است.
این قابلیت را با API درواره در پروژههای خود آزمایش کنید
در این مقاله با مفهوم Top-k و نقش آن در کنترل فرایند نمونهبرداری مدلهای زبانی آشنا شدید. اگر قصد دارید این پارامتر را در عمل آزمایش کنید، بهترین راه این است که رفتار مدلهای مختلف را با مقادیر متفاوت Top-k مقایسه کنید.
با درواره میتوانید تنها با یک API سازگار با OpenAI به صدها مدل هوش مصنوعی از ارائهدهندگان مختلف دسترسی داشته باشید و پارامترهای تولید متن را در مدلهای پشتیبانیشده متناسب با نیاز پروژه خود تنظیم کنید.
در درواره میتوانید:
- به صدها مدل هوش مصنوعی متنی، تصویری، صوتی و ویدئویی تنها با یک API دسترسی داشته باشید.
- مدلهای مختلف را با مقادیر متفاوت Top-k، Top-p، Temperature و Max Tokens مقایسه و ارزیابی کنید.
- از قابلیتهایی مانند Streaming، Structured Outputs، Function Calling و Tool Calling در مدلهای پشتیبانیشده استفاده کنید.
- بدون نیاز به مدیریت چندین حساب کاربری یا API، تمام مدلها را از طریق یک زیرساخت یکپارچه فراخوانی کنید.
- از مستندات فارسی، پرداخت ریالی و نمونه کد برای زبانهای برنامهنویسی مختلف بهرهمند شوید.
اگر در حال توسعه یک چتبات، دستیار هوش مصنوعی، سامانه تولید محتوا یا هر برنامۀ مبتنی بر هوش مصنوعی هستید، درواره میتواند اتصال به مدلهای مختلف و آزمایش پارامترهای آنها را سادهتر و سریعتر کند.
وبسایت درواره: https://darvareh.ir
مستندات API: https://api.darvareh.ir/docs
مقالات مرتبط
برای آشنایی بیشتر با پارامترهای مدلهای زبانی بزرگ و APIهای هوش مصنوعی، پیشنهاد میکنیم مقالات زیر را نیز مطالعه کنید:
- Temperature چیست؟ راهنمای جامع پارامتر Temperature در هوش مصنوعی و API
- Top-p چیست؟ راهنمای جامع پارامتر Top-p در هوش مصنوعی و API
- Token چیست؟ راهنمای جامع توکن در مدلهای زبانی بزرگ (LLM)
- Context Window چیست؟ راهنمای جامع پنجرۀ زمینه در هوش مصنوعی
- Inference چیست؟ راهنمای جامع فرایند استنتاج در مدلهای هوش مصنوعی
- Prompt Engineering چیست؟ راهنمای جامع مهندسی پرامپت
- Function Calling چیست؟ راهنمای جامع فراخوانی توابع در API هوش مصنوعی
- Tool Calling چیست؟ راهنمای جامع استفاده از ابزارها در مدلهای هوش مصنوعی
- Structured Outputs چیست؟ راهنمای جامع خروجی ساختاریافته در مدلهای هوش مصنوعی
- Streaming API چیست؟ راهنمای جامع پاسخ جریانی در API هوش مصنوعی
نکته: در مقالات آینده این مجموعه، به بررسی پارامترهای مهم دیگری مانند Max Tokens، Stop Sequences، Frequency Penalty و Presence Penalty نیز خواهیم پرداخت تا تصویری کامل از تنظیمات مدلهای زبانی بزرگ و APIهای هوش مصنوعی در اختیار شما قرار گیرد.