OpenAI
این صفحه به‌صورت ماشینی ترجمه شده است. مقاله اصلی انگلیسی را مشاهده کنید.

استفاده از logit bias برای تغییر احتمال توکن با OpenAI API

یاد بگیرید چگونه از پارامتر logit bias برای تغییر خروجی‌های مدل استفاده کنید

به‌روزرسانی: 3 days ago

Logit_bias پارامتری اختیاری است که احتمال ظاهر شدن توکن‌های مشخص در خروجی تولیدشده توسط مدل را تغییر می‌دهد.

این پارامتر یک شیء JSON می‌پذیرد که توکن‌ها را به یک مقدار سوگیری مرتبط از -100 (که در بیشتر موارد مانع تولید آن توکن می‌شود) تا 100 (انتخاب انحصاری توکن که احتمال تولید آن را بیشتر می‌کند) نگاشت می‌کند. مقادیر متوسطی مانند -1 و 1 احتمال انتخاب شدن یک توکن را به میزان کمتری تغییر می‌دهند.

از آنجا که این پارامتر توکن‌ها را می‌گیرد، نه متن را، بهتر است برای تبدیل متن به شناسه‌های توکن از یک ابزار توکنیزه‌کننده استفاده کنید. بیایید چند مثال را مرور کنیم.

مثال ۱: حذف «time»

اگر نقطه پایان Completions را با اعلان «Once upon a» فراخوانی کنیم، احتمالاً تکمیل با « time» شروع می‌شود.

واژه «time» به شناسه 2435 توکنیزه می‌شود و واژه « time» (که در ابتدا یک فاصله دارد) به شناسه 640 توکنیزه می‌شود. می‌توانیم این‌ها را با مقدار -100 از طریق logit_bias ارسال کنیم تا از ظاهر شدنشان در تکمیل جلوگیری شود، مانند این:

completion = client.chat.completions.create( 
model="gpt-3.5-turbo",
messages=[{"role": "system", "content": "You finish user's sentences."},
"role": "user", "content": "Once upon a"} ]
logit_bias={2435:-100, 640:-100}
)

اکنون اعلان «Once upon a» تکمیل «midnight dreary, while I pondered, weak and weary.» را تولید می‌کند.

توجه کنید که واژهٔ «time» اصلاً در خروجی نیست، زیرا عملاً با استفاده از logit_bias آن توکن را ممنوع کرده‌ایم.

مثال ۲: هدایت خروجی با مقادیر هدفمند سوگیری لاجیت

بیایید مثال دیگری را با استفاده از یک اعلان تولیدکنندهٔ دستور پخت بررسی کنیم.

در بسیاری از دستورهای پخت استفاده از قابلمه پیشنهاد می‌شود، اما فرض کنید قابلمه نداریم. می‌خواهیم از تولید واژهٔ «pot» در تکمیل جلوگیری کنیم. واژهٔ «Pot» به توکنی با شناسهٔ ۱۷۸۷ تبدیل می‌شود؛ بنابراین می‌توانیم با تنظیم logit_bias به‌شکل زیر، آن را از خروجی تولیدشده حذف کنیم.

logit_bias={1787:-100}

اکنون، ممکن است تکمیل ما به‌جای آن واژه «saucepan» را شامل شود. عالی!

مثال ۳: افزایش احتمال ظاهرشدن یک واژه

فرض کنید می‌خواهیم احتمال ظاهرشدن یک واژه را افزایش دهیم.

برای مثال، شاید وب‌سایتی داریم که دستور پخت غذاهای قابل‌تهیه با مایکروویو را ارائه می‌کند؛ بنابراین می‌خواهیم مطمئن شویم واژهٔ «microwave» در دستور پخت ظاهر می‌شود. واژهٔ «Microwave» به توکنی با شناسهٔ ۲۷۰۰۰ تبدیل می‌شود. می‌توانیم با تعیین یک logit_bias مثبت، احتمال ظاهرشدن این توکن را به‌شکل زیر افزایش دهیم:

logit_bias={27000:5}

اکنون احتمال بیشتری دارد که واژهٔ «microwave» در تکمیل ما ظاهر شود.

مقدار logit_bias را روی ۵ تنظیم کردیم، چون متوجه شدیم با تنظیم logit_bias روی ۱، اغلب واژهٔ «microwave» در تکمیل ظاهر نمی‌شود؛ درحالی‌که با مقادیر بالاتر logit_bias، مانند ۱۰، واژهٔ « microwave» بیش‌ازحد در تکمیل ظاهر می‌شد.

آیا این مقاله مفید بود؟