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

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

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

به‌روزرسانی: 12 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» به 1787 توکنیزه می‌شود، بنابراین می‌توانیم با تنظیم logit_bias به‌صورت زیر، آن را از تولید خود حذف کنیم.

logit_bias={1787:-100}

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

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

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

برای مثال، شاید سایتی را اجرا می‌کنیم که دستورهای غذایی‌ای ارائه می‌دهد که می‌توانید با مایکروویو درست کنید، بنابراین می‌خواهیم مطمئن شویم که واژه «microwave» در دستور غذا ظاهر می‌شود. Microwave به شناسه 27000 توکنیزه می‌شود. می‌توانیم با تنظیم یک logit_bias مثبت، احتمال ظاهر شدن این توکن را افزایش دهیم، مانند این:

logit_bias={27000:5}

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

ما logit_bias را روی 5 تنظیم کردیم، چون دیدیم که تنظیم logit_bias روی 1 اغلب باعث نمی‌شد واژه «microwave» در تکمیل ظاهر شود، در حالی که مقادیر بالاتر logit_bias مانند 10 باعث می‌شد واژه « microwave» بیش از حد در تکمیل ظاهر شود.

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