مفهوم اصلی
یکی از بخشهای مهم کار با LLM، درک و کنترل میزان Randomness (تصادفی بودن) در نحوه انتخاب Tokenهای بعدی است.
هر Token که LLM به متن اضافه میکند، نتیجه یک:
انتخاب تصادفی وزندهیشده بر اساس احتمال Tokenها
است.
با تنظیم پارامترهای Sampling میتوان رفتار LLM را کنترل کرد.
نحوه انتخاب Token در LLM
وقتی LLM یک Token جدید تولید میکند:
- تمام Tokenهای موجود در Vocabulary بررسی میشوند.
- برای هر Token یک احتمال محاسبه میشود.
- یک Token بر اساس این توزیع احتمال انتخاب میشود.
مثال
Prompt:
The sky is ...
توزیع احتمال ممکن است به شکل زیر باشد:
| Token | احتمال |
|---|---|
| blue | 50% |
| bright | 25% |
| سایر Tokenها | کمتر از 10% |
مفهوم Probability Distribution
شکل توزیع احتمال نشاندهنده میزان اطمینان مدل است.
توزیع با قله بلند
اگر یک Token احتمال بسیار بیشتری داشته باشد:
- مدل مطمئنتر است.
- انتخابهای کمی وجود دارند.
توزیع تخت
اگر احتمال Tokenها نزدیک به هم باشد:
- مدل عدم اطمینان بیشتری دارد.
- مسیرهای بیشتری برای ادامه متن وجود دارد.
روشهای کنترل Sampling
مهمترین روشها:
- Greedy Decoding
- Temperature
- Top-k Sampling
- Top-p Sampling
- Repetition Penalty
- Logit Biasing
1. Greedy Decoding
مفهوم اصلی
در Greedy Decoding:
مدل همیشه Token با بیشترین احتمال را انتخاب میکند.
یعنی:
Highest Probability Token → انتخاب
مزایای Greedy Decoding
خروجی Deterministic
اگر:
- Prompt یکسان باشد.
خروجی:
- همیشه یکسان خواهد بود.
معایب Greedy Decoding
1. خروجی قابل پیشبینی
متن ممکن است:
- عمومی
- خشک
- تکراری
شود.
2. گیر کردن در حلقه تکراری
LLM فقط Token محتملتر را انتخاب میکند.
اگر وارد یک الگوی تکراری شود:
ممکن است همان کلمات را بارها تولید کند.
کاربرد Greedy Decoding
مناسب برای:
- Code Completion
- Debug کردن سیستم
جایی که خروجی ثابت اهمیت دارد.
2. Temperature
مفهوم اصلی
Temperature یک پارامتر برای کنترل شکل توزیع احتمال است.
میتوان آن را مانند:
یک درجه تنظیم برای میزان خلاقیت یا تصادفی بودن مدل
در نظر گرفت.
Temperature پایین
مثلاً:
Temperature = 0
نتیجه:
- توزیع بسیار محدود میشود.
- فقط محتملترین Token انتخاب میشود.
در این حالت:
LLM تقریباً Greedy Decoding انجام میدهد.
Temperature متوسط
مثلاً:
Temperature = 1
رفتار پیشفرض مدل است.
Temperature بالا
مثلاً:
Temperature = 1.1 تا 1.3
نتیجه:
- Tokenهای کماحتمال شانس بیشتری پیدا میکنند.
- خروجی متنوعتر و خلاقانهتر میشود.
مشکل Temperature خیلی بالا
اگر مقدار خیلی زیاد شود:
- احتمال Tokenهای بیمعنی هم افزایش پیدا میکند.
- متن ممکن است غیرمنطقی شود.
نکته مهم
Temperature ترتیب احتمال Tokenها را تغییر نمیدهد.
فقط احتمال انتخاب آنها را تغییر میدهد.
3. Top-k Sampling
مفهوم اصلی
Top-k تعداد انتخابهای ممکن را محدود میکند.
مدل فقط اجازه دارد از:
k Token با بیشترین احتمال
انتخاب کند.
مثال
اگر:
Top-k = 5
باشد:
مدل فقط بین 5 Token اول انتخاب میکند.
مزیت
از انتخاب Tokenهای بسیار کماحتمال جلوگیری میکند.
4. Top-p Sampling
مفهوم اصلی
Top-p انتخاب را بر اساس مجموع احتمالها محدود میکند.
مثال
فرض کنیم:
Top-p = 85%
مدل از ابتدای توزیع شروع میکند و Tokenها را اضافه میکند تا مجموع احتمالها به 85٪ برسد.
فقط همان Tokenها اجازه انتخاب دارند.
تفاوت Top-k و Top-p
| روش | نحوه محدود کردن |
|---|---|
| Top-k | تعداد ثابت Tokenها |
| Top-p | مجموع احتمال Tokenها |
رفتار Top-p
Top-p پویا است.
اگر مدل مطمئن باشد:
- چند Token محدود انتخاب میشوند.
اگر مدل نامطمئن باشد:
- تعداد بیشتری Token وارد انتخاب میشوند.
مقایسه Top-k و Top-p
Top-k
همیشه:
مثلاً 5 Token
را انتخاب میکند.
حتی اگر توزیع احتمال خیلی متفاوت باشد.
Top-p
با توجه به شکل توزیع تغییر میکند.
بنابراین انعطاف بیشتری دارد.
5. Repetition Penalty
مفهوم اصلی
LLMها گاهی تمایل دارند:
- یک کلمه
- یا عبارت
را چندبار تکرار کنند.
برای کاهش این مشکل:
از Repetition Penalty استفاده میشود.
نحوه کار
احتمال Tokenهایی که قبلاً استفاده شدهاند کاهش پیدا میکند.
نتیجه:
- متن طبیعیتر
- تنوع بیشتر
6. Logit Biasing
مفهوم اصلی
Logit Bias اجازه میدهد احتمال بعضی Tokenهای خاص را تغییر دهیم.
مثال حذف کلمات نامناسب
اگر سیستم RAG نباید کلمات خاصی تولید کند:
میتوان احتمال آن Tokenها را کاهش داد.
مثال Classification
اگر LLM باید فقط یکی از چند دسته را انتخاب کند:
میتوان احتمال آن دستهها را افزایش داد.
مثلاً:
Category A
Category B
Category C
ترکیب پارامترهای Sampling
یک ترکیب عمومی مناسب:
Temperature = 0.8
Top-p = 0.9
Repetition Penalty = 1.2
نتیجه:
- انتخاب Tokenها کمی محافظهکارانهتر میشود.
- Tokenهای بسیار کماحتمال حذف میشوند.
- تکرار کمتر میشود.
تنظیم Sampling برای کاربردهای مختلف
پاسخهای دقیق و کدنویسی
پیشنهاد:
- Temperature پایین
- Top-p پایین
زیرا:
دقت مهمتر از خلاقیت است.
کاربردهای خلاقانه
مانند:
- نویسندگی
- تولید ایده
پیشنهاد:
- Temperature بالاتر
- Top-p بالاتر
نکته مهم در RAG
در سیستمهای RAG معمولاً هدف:
- پاسخ دقیق
- مبتنی بر اطلاعات Retrieved
است.
بنابراین معمولاً:
Sampling محافظهکارانهتر مناسبتر است.
جمعبندی
- هر Token تولیدشده توسط LLM نتیجه یک انتخاب احتمالی است.
- Greedy Decoding همیشه محتملترین Token را انتخاب میکند و خروجی ثابت میدهد.
- Temperature میزان تصادفی بودن انتخاب Tokenها را کنترل میکند.
- Temperature پایین برای پاسخهای دقیق و Temperature بالا برای خلاقیت مناسب است.
- Top-k انتخاب را به تعداد مشخصی از Tokenهای برتر محدود میکند.
- Top-p انتخاب را بر اساس مجموع احتمالها محدود میکند و حالت پویا دارد.
- Repetition Penalty از تکرار زیاد کلمات جلوگیری میکند.
- Logit Bias امکان تغییر احتمال Tokenهای خاص را فراهم میکند.
- بهترین تنظیمات Sampling باید با آزمایش و متناسب با هدف پروژه انتخاب شوند.