دربارهٔ این فصل
یادداشتِ همراه نوارتا حالا به این فکر کردهاید که مدلهای زبانی بزرگ چطور زیر کاپوت کار میکنند و چطور میتوان با ساختن یک دستور دقیق، پاسخ درستی از آنها بیرون کشید؟ برای نوشتن دستورهای هوشمندانه، اول باید بفهمیم این مدلها چطور اطلاعات را پردازش میکنند و اساساً چطور فکر میکنند.
در کتاب «مهندسی پرامپت برای مدلهای زبانی بزرگ» نوشتهٔ جان بریمن و آلبرت زیگلر، فصل دوم به ما کمک میکند تا ساختار درونی این مدلها را لایه به لایه بشناسیم و یاد بگیریم که شناخت این مکانیسمها چه تأثیری روی کار ما دارد.
اولین مسئلهای که نویسندگان مطرح میکنند این است که مدل زبانی اساساً یک ماشین تقلید است که با دریافت پرامپت (Prompt) که یعنی متنی که به مدل زبانی داده میشود تا خروجی تولید کند، ادامهٔ متن را حدس میزند. مشکل اینجاست که مدلها نمیتوانند مثل انسانها بین کار جستجو در وب یا بازنویسی جابجا شوند و همیشه جواب میدهند، حتی اگر اطلاعات نادرست تولید کنند. به این پدیده توهمزایی (Hallucination) میگویند که یعنی تولید اطلاعات نادرست با لحن مطمئن و بدون اینکه مدل خودش بداند در حال حدس زدن است. راه حل این است که به جای نهی کردن مدل از دروغگفتن، از آن بخواهیم مستندات و استدلالهای قابل بررسی ارائه دهد.
دومین مسئله مربوط به نحوهٔ دیدن متن است. مدلها متن را به بخشهای کوچکی به نام توکن (Token) که یعنی واحد کوچک متن که مدل پردازش میکند تجزیه میکنند و این کار توکنسازی (Tokenization) با تبدیل متن به توکنها انجام میشود. مشکل اینجاست برخلاف انسانها که با نگاه کردن به کلمات به صورت فازی فکر میکنند، مدلها توکنساز قطعی دارند و نمیتوانند خیلی راحت حروف یک کلمه را بشمرند یا معکوس کنند. راهحل این است که کارهای مربوط به سطح حروف یا شمارش دقیق را به پیشپردازش یا پسپردازش بسپاریم و بار سنگین را روی دوش مدل نگذاریم.
سومین ویژگی این است که مدلها متن را به صورت خودرگرسیو و یک توکن در هر مرحله تولید میکنند و هیچوقت امکان متوقف شدن، برگشتن و اصلاح کردن کلمات قبلی را ندارند. این روش تولید خطی گاهی مدلها را در تلهٔ الگوهای تکراری میاندازد که بینهایت تکرار میشوند. برای جلوگیری از این مشکل، طراحان برنامهها باید مکانیزمهای فیلتر کردن خروجی را پیادهسازی کنند یا از روشهای تصادفیسازی استفاده کنند.
چهارمین مسئله انتخاب گزینهها از میان احتمالات مختلف است که با روش نمونهبرداری انجام میشود. تنظیم پارامتر دما (Temperature) به عنوان پارامتری که تصادفیبودن خروجی را کنترل میکند، مشخص میکند که آیا مدل همیشه امنترین و محتملترین کلمه را انتخاب کند یا به گزینههای خلاقانهتر و تصادفیتر هم فرصت بدهد. تضاد اینجاست که دمای صفر دقت و تکرارپذیری را بالا میبرد، در حالی که دمای بالا خلاقیت را زیاد میکند اما به مرور زمان نرخ خطای مدل را افزایش میدهد.
در نهایت، در بخش معماری ترانسفورماتور میبینیم که مدل از هزاران مینیمغز تشکیل شده که با مکانیزم توجه و از طریق جریان یکطرفه از چپ به راست و پایین به بالا با هم گفتگو میکنند. این ساختار یکطرفه یعنی ترتیب کلمات در پرامپت حیاتی است؛ زیرا اگر مهمترین سوال را در انتهای یک متن طولانی بپرسید، مدل ممکن است توجه کافی به آن نکند.
پیشنهاد من این است که وقتی میخواهید یک پرامپت پیچیده بنویسید، از خودتان بپرسید آیا یک انسان متخصص میتواند این کار را یکباره و بدون یادداشتبرداری یا برگشتن به عقب انجام دهد یا خیر. اگر پاسخ منفی است، باید پرامپت خود را به مراحل کوچکتر تقسیم کنید.
امیدوارم این مرور کوتاه به شما کمک کند تا در پروژههای هوش مصنوعی خود تعامل دقیقتر و هوشمندانهتری با مدلها داشته باشید.