دربارهٔ این فصل
یادداشتِ همراه نوارتا حالا به این فکر کردهاید که چطور میشود مدل زبانی بزرگ را سر خط آورد تا دقیقاً همان چیزی را که میخواهید تحویل دهد و ازراجعت دادن به توضیحات اضافی و هزینههای اضافی جلوگیری کنید؟ وقتی پرامپت خود را به یک متن واحد تبدیل میکنید، نوبت به مهار کردن مدل میرسد تا مطمئن شوید همه چیز به نرمی پیش میرود و خروجی درست و تمیزی دریافت میکنید.
در کتاب «مهندسی پرامپت برای مدلهای زبانی بزرگ» نوشتهٔ جان بریمن و آلبرت زیگلر، فصل هفتم با عنوان مهار کردن مدل به ما نشان میدهد که چطور ساختار خروجی را کنترل کنیم و تصمیم بگیریم چه مدلی را به کار بگیریم.
بیایید با مشکل شروع پاسخها یعنی پیشدرآمدها شروع کنیم. مدلهای زبانی اغلب پیش از ارائهٔ پاسخ اصلی، توضیحات حاشیهای یا تعارفات زیادی تولید میکنند که هم وقت میگیرد و هم هزینهٔ محاسباتی دارد. برای مدیریت این موضوع، سه راه پیش رو دارید: استفاده از ساختار ثابت در پرامپت، تشویق مدل به تفکر قدمبهقدم برای مسائل پیچیده، یا پنهان کردن حاشیهها در انتهای پاسخ. به عنوان نمونه، اگر از تکنیک زنجیرهٔ فکر (chain-of-thought) استفاده میکنید، داشتن یک پیشدرآمد استدلالی طولانی عیب نیست بلکه کمک میکند مدل به پاسخ درستی برسد.
مشکل دوم تشخیص زمان توقف تولید متن است تا هزینههای اضافی تحمیل نشود. گزینههای شما شامل توقف سرور با استفاده از توالیهای توقف یا استفاده از حالت پخش جریانی دادهها برای لغو به موقع تولید توکنهای اضافی است. به عنوان مثال، در اسناد امدیاون، تعیین علامت خط جدید به همراه علامت هشتگ به عنوان توالی توقف کمک میکند مدل به محض پایان بخش مورد نظر متوقف شود بدون اینکه هزینهٔ اضافی برای توکنهای بیربط بپردازید.
چالش سوم ارزیابی کیفیت خروجی بدون خواندن تکتک کلمات است. نویسندگان نشان میدهند که چطور میتوان از مقادیر لگپراب logprobs برای سنجش میزان اطمینان مدل به پاسخهایش استفاده کرد. لگپراب عدد منفی است که احتمال وقوع هر توکن را نشان میدهد و اعداد نزدیکتر به صفر یعنی اطمینان بیشتر مدل. برای نمونه، اگر میانگین لگپراب پاسخ مدل پایینتر از حد آستانه باشد، برنامهتان میتواند به جای نمایش پاسخ، آن را دوباره تلاش کند یا از کاربر بخواهد زمینهٔ بیشتری فراهم کند.
مسئلهٔ چهارم انتخاب مدل مناسب از میان گزینههای گوناگون بازار است. انتخاب مدل نیازمند تعادل میان هوش، سرعت، هزینه، سادگی استفاده و نیازهای خاص است. گزینههای پیش رو شامل سرویسهای تجاری بسته و مدلهای متنباز است. راهکار پیشنهادی این است که اگر پروژه در مرحلهٔ آزمایشی است، میتوانید از ایپیآی API که رابط برنامهنویسی کاربردی است استفاده کنید و بعداً با کتابخانههای یکپارچهساز مدل خود را تغییر دهید. همچنین اگر مدلهای آماده نیازهای خاص شما را برآورده نمیکنند، میتوانید به سراغ تنظیم دقیق fine-tuning بروید تا با آموزش مدل روی دادههای خاص، فرمت و سبک دلخواه خود را به دست آورید.
پیشنهاد من به عنوان میزبان این است که در پروژههای واقعی، همیشه از مدلهای سبکتر و ارزانتر شروع کنید و تنها زمانی به سراغ مدلهای گرانقیمت و سنگین بروید که نتایج مدلهای کوچکتر پاسخگوی نیاز پیچیدهٔ شما نباشد.
امیدوارم این مرور کوتاه بر فصل هفتم کتاب به شما کمک کرده باشد تا کنترل بهتری بر خروجی مدلهای زبانی داشته باشید. تا برنامهای دیگر و گفتاری دیگر، پیروز و پاینده باشید.