هوش مصنوعی چگونه کار میکند؟ روش عملکرد مدلهای زبانی بزرگ (LLM) به زبان ساده

- بردارهای کلمه (Word Vectors)
- تبدیل بردارهای کلمه به پیشبینی کلمات
- فرایند کار ترنسفورمر
- نحوه آموزش مدلهای زبانی
- عملکرد شگفتانگیز مدلهای زبانی بزرگ
پاییز سال 2022، هنگامیکه ChatGPT معرفی شد، دنیایی فراتر از صنعت فناوری را شگفتزده کرد. محققان یادگیری ماشین از چندین سال قبل درحال تست مدلهای زبانی بزرگ (LLM) بودند، ولی عموم مردم توجه زیادی به این موضوع نداشتند و نمیدانستند این مدلها چقدر قدرتمند شدهاند. این روزها تقریبا همهی مردم خبرهای هوش مصنوعی مولد، چتباتهای AI و مدلهای پشت آنها را شنیدهاند و دهها میلیون نفر که احتمالا شما هم یکی از آنها باشید، این ابزار را امتحان کردهاند؛ بااینحال، اغلب ما نمیدانیم مدلهای زبانی بزرگ چگونه کار میکنند.
به احتمال زیاد شنیدهاید که مدلهای هوش مصنوعی برای پیشبینی «کلمات بعدی» آموزش دیدهاند و برای این کار به حجم زیادی «متن» نیاز دارند. اما همهچیز در این نقطه متوقف میشود و جزئیات نحوه پیشبینی کلمه بعدی مثل یک راز عمیق ناگفته میماند. یکی از دلایل اصلی این موضوع روش غیرعادی توسعه این سیستمها است. نرم افزارهای معمولی توسط برنامهنویسانی توسعه داده میشوند که به کامپیوترها دستورالعملهای گامبهگام و صریحی ارائه میدهند. در مقابل چت جیپیتی، کوپایلت مایکروسافت یا جمنای گوگل روی یک شبکه عصبی ساخته شده و با استفاده از میلیاردها کلمه از زبان معمولی آموزش داده شدهاند.
در نتیجه، هیچکس روی زمین بهطور کامل عملکرد درونی مدلهای زبانی بزرگ را درک نمیکند. هرچند کارشناسان اطلاعات زیادی در این زمینه دارند، بازهم در تلاشند به جزئیات بیشتری دست پیدا کنند. این امر روندی کند و زمانبر است و تکمیل آن سالها یا شاید چندین دهه طول بکشد.
ما در این مطلب میخواهیم بدون توسل به اصطلاحات تخصصی فنی یا ریاضیات پیشرفته، عملکرد درونی این مدلها را به زبان ساده توضیح دهیم، به نحوی که مخاطبان عمومی با ایدهی اصلی کار مدلهای زبانی بزرگ آشنا شوند.
کار را با توضیح بردارهای کلمات، روش شگفتانگیز استدلالی و نمایش مدلهای زبانی شروع میکنیم، سپس کمی در «ترنسفورمر»، بلوکسازی اصلی برای سیستمهایی مانند چتجیپیتی عمیقتر میشویم. درنهایت، نحوهی آموزش دادن مدلها را شرح میدهیم و بررسی میکنیم که چرا عملکرد خوب آنها به چنین مقادیر فوقالعاده بزرگی از داده نیاز دارد.
بردارهای کلمه (Word Vectors)
برای اینکه بفهمیم مدلهای زبانی چطور کار میکنند، ابتدا باید ببینیم که چگونه کلمات را نشان میدهند. ما انسانها برای نوشتن هر کلمه، از دنبالهی حروف استفاده میکنیم؛ مانند C-A-T برای واژه Cat. اما مدلهای زبانی همین کار را با استفاده از یک فهرست طولانی از اعداد به نام «بردار کلمه» انجام میدهند. بردار کلمه Cat را میتوان به این صورت نشان داد:
چرا از چنین فهرست عجیبی استفاده میکنیم؟ بیایید به مختصات جغرافیایی چند شهر نگاه کنیم. هنگامیکه میگوییم واشنگتن دیسی در 38٫9 درجه شمالی و 77 درجه غربی واقع شده، میتوانیم آن را بهصورت بردار نشان دهیم:
- واشنگتن دیسی [38٫9, 77]
- نیویورک [40٫7, 74]
- لندن [0٫1, 51٫5]
- پاریس [2٫4- , 48٫9]
بدینترتیب میتوانیم روابط فضایی را توضیح دهیم. با توجه به اعداد مختصات جغرافیایی، شهر واشنگتن به نیویورک و شهر لندن به پاریس نزدیک است، اما پاریس و واشنگتن از هم دورند.
مدلهای زبانی رویکرد مشابهی دارند. هر بردار کلمه یک نقطه را در فضای خیالی کلمات نشان میدهد و کلماتی با معانی مشابهتر، نزدیک هم قرار میگیرند (بهلحاظ فنی LLMها روی قطعاتی از کلمات به نام توکنها عمل میکنند، اما فعلا این پیادهسازی را نادیده میگیریم). بهعنوانمثال، نزدیکترین کلمات به گربه در فضای برداری شامل سگ، بچه گربه و حیوان خانگی است. یکی از مزایای کلیدی بردارهای کلمات نسبت به رشته حروف، این است که اعداد عملیاتی را امکانپذیر میکنند که حروف نمیتوانند.
اما کلمات پیچیدهتر از آن هستند که در فضای دوبعدی نشان داده شوند. به همین دلیل مدلهای زبانی از فضاهای برداری با صدها یا حتی هزاران بُعد استفاده می کنند. ذهن انسان نمیتواند فضایی با این ابعاد را تصور کند، ولی کامپیوترها میتوانند این کار را به خوبی انجام بدهند و نتایج مفیدی هم درخصوص آنها ارائه میکنند.
محققان از دهها سال پیش روی بردارهای کلمات کار میکردند، ولی این مفهوم در سال 2013 با معرفی پروژه «word2vec» گوگل اهمیت بیشتری پیدا کرد. گوگل میلیونها فایل و سند را از صفحات اخبار جمعآوری و تجزیهوتحلیل کرده بود تا بفهمد کدام کلمات در جملات مشابه ظاهر میشوند. با گذشت زمان یک شبکهی عصبی برای پیشبینی کلماتی که در فضای برداری نزدیک به هم قرار میگیرند، تعلیم دیده بود.
بردار کلمات گوگل یک ویژگی جالب دیگر هم داشت؛ شما میتوانستید با محاسبات برداری درباره کلمات «استدلال» کنید. مثلاً محققان گوگل بردار «بزرگترین» را برداشتند، «بزرگ» را از آن کم و «کوچک» را اضافه کردند. نزدیکترین کلمه به بردار حاصل شده، واژهی «کوچکترین» بود.
پس بردارهای کلمات گوگل، میتوانستند قیاس و نسبت را درک کنند:
- نسبت سوئیسی به سوئیس معادل نسبت کامبوجی به کامبوج (ملیت)
- نسبت پاریس به فرانسه معادل برلین به آلمان (پایتخت)
- نسبت دو واژهی غیراخلاقی و اخلاقی، مشابه ممکن و غیرممکن (تضاد)
- نسبت مرد و زن مشابه شاه و ملکه (نقشهای جنسیتی)
ازآنجاییکه این بردارها بر مبنای روشی که انسانها از کلمات استفاده میکنند، ساخته میشوند، نهایتاً بسیاری از سوگیریهای موجود در زبان انسانی را نیز منعکس میکنند. برای مثال در برخی از مدلهای برداری کلمه، «پزشک منهای مرد بهاضافه زن» به واژهی «پرستار» میرسد. برای کاهش سوگیریهایی ازایندست، تحقیقات زیادی در دست اجرا است.
بااینحال، بردارهای کلمات نقش بسیار مهم و مفیدی در مدلهای زبانی دارند؛ زیرا اطلاعات ظریف اما مهمی را در مورد روابط بین کلمات رمزگذاری میکنند. اگر یک مدل زبانی چیزی در مورد یک گربه یاد بگیرد (مثلاً گاهیاوقات او را به کلینیک دامپزشکی میبرند)، احتمالاً همین موضوع در مورد یک بچهگربه یا سگ نیز صادق است. یا اگر رابطهی خاصی بین پاریس و فرانسه وجود داشته باشد (زبان مشترک) بهاحتمال زیاد این رابطه در مورد برلین و آلمان یا رم و ایتالیا هم صدق میکند.
معنی کلمات به زمینه بحث بستگی دارد
یک طرح ساده از بردار کلمات، واقعیت مهمی را در مورد زبانهای طبیعی نشان نمیدهد: اینکه کلمات غالباً معانی متعددی دارند. به دو جملهی زیر توجه کنید:
- جان یک مجله را برداشت.
- سوزان برای یک مجله کار میکند.
اینجا معنای واژهی «مجله» با هم مرتبطاند، ولی تفاوت ظریفی بین آنها وجود دارد. جان یک مجله فیزیکی را برمیدارد، درحالیکه سوزان برای سازمانی کار میکند که مجلات فیزیکی منتشر میکند. در مقابل، واژهای مانند گل میتواند معنای کاملاً متفاوتی داشته باشد: گل رز یا گل فوتبال.
مدلهای زبانی بزرگ مانند GPT-4 که ChatGPT مبتنیبر آن توسعه یافته، میتوانند یک کلمهی مشابه با بردارهای مختلف را بسته به زمینهای که آن کلمه در آن ظاهر میشود، نشان دهند. در این مدلها یک بردار برای گل (گیاه) و یک بردار متفاوت برای گل (فوتبال)، همچنین یک بردار برای مجله (فیزیکی) و یک بردار برای مجله (سازمان) وجود دارد. همانطور که انتظار میرود، LLMها برای واژههایی با معنای مرتبط از بردارهای مشابه بیشتری نسبت به واژههای چندمعنایی استفاده میکنند.
تا این مرحله هنوز چیزی در مورد نحوهی عملکرد مدلهای زبانی بزرگ نگفتهایم، اما این مقدمه برای درک هدف ما ضروری است.
نرمافزارهای سنتی برای کار روی دادههای غیرمبهم طراحی میشوند. اگر از کامپیوتر خود بخواهید 2+3 را محاسبه کند، هیچ ابهامی درمورد معنای 2 یا + یا 3 وجود ندارد. اما زبان طبیعی پر از ابهاماتی است که فراتر از واژگانِ با معنای مرتبط یا واژگان با معانی مختلف هستند. به مثالهای سادهی زیر توجه کنید:
- در جمله «مشتری از مکانیک خواست تا خودروی او را تعمیر کند»، واژه «او» به مشتری اشاره میکند یا مکانیک؟
- در جمله «استاد از دانشجو خواست تکالیف خودش را انجام دهد» واژه «خودش» به استاد برمیگردد یا دانشجو؟
ما باتوجه به زمینهی بحث میتوانیم چنین ابهاماتی را درک کنیم، اما هیچ قانون قطعی و سادهای برای این کار وجود ندارد. ما باید بدانیم که مکانیکها معمولاً خودروی مشتریان را تعمیر میکنند و دانشجویان تکالیف خودشان را انجام میدهند. بردارهای کلمات راه منعطفی برای مدلهای زبانی فراهم میکنند تا معنای واژهها را در هر متن خاص متوجه شوند. اما چگونه؟ در ادامه به این سؤال پاسخ میدهیم.
تبدیل بردارهای کلمه به پیشبینی کلمات
مدلهای زبانی GPT-3، GPT-4 یا سایر مدلهای زبانی که پشت چتباتهای هوش مصنوعی قرار دارند، در دهها لایه سازماندهی شدهاند. هر لایه دنبالهای از بردارها را به عنوان ورودی میگیرد (یک بردار برای هر کلمه در متن ورودی) و اطلاعاتی را برای کمک به روشنشدن معنای آن کلمه و پیشبینی بهتر کلمه بعدی اضافه میکند. بیایید با یک مثال ساده شروع کنیم:
هر لایه از یک LLM یک ترنسفورمر است: یک معماری شبکه عصبی که اولین بار در سال 2017 توسط گوگل در مقالهای برجسته معرفی شد.
ورودی مدل که در تصویر بالا مشاهده میکنید، یک جمله نسبی و ناتمام است: « John wants his bank to cash the-» این کلمات، که بهعنوان بردارهای سبک word2vec نشان داده میشوند، به اولین ترنسفورمر وارد میشوند.
ترنسفورمر اول متوجه میشود که wants و cash هر دو فعل هستند (هر دو کلمه میتوانند اسم نیز باشند). ما این مفهوم اضافهشده را با رنگ قرمز متمایز کردیم ولی در واقعیت، مدل زبانی واژهها را با تغییر بردارهای کلماتی و به روشی که تفسیر آن برای انسان دشوار است، ذخیره میکند. این بردارهای جدید که با نام «حالت پنهان» شناخته میشوند، به ترنسفورمر بعدی منتقل میشوند.
ترنسفورمر دوم دو نکتهی دیگر از تم جمله را اضافه میکند: نخست آنکه روشن میکند «bank» به یک موسسهی مالی اشاره دارد و دوم؛ «his» ضمیری است که به John اشاره دارد. حالا ترنسفورمر دوم مجموعهای از بردارهای حالت پنهان را تولید میکند که تمام چیزهایی را که مدل زبانی تا این لحظه یادگرفته، منعکس میکنند.
تصویر بالا یک LLM کاملاً فرضی را نشان میدهد. LLMهای واقعی مسلما لایههای بیشتری را شامل میشوند؛ برای مثال، ترنسفورمر قدرتمندترین نسخهی GPT-3 دارای 96 لایه است.
تحقیقات نشان میدهد که چند لایهی اول ترنسفورمر روی درک ترکیب یا سینتکس جمله و رفع ابهاماتی که پیشتر گفتیم، متمرکزند. لایههای بعدی روی درک عمیقتر و وسیعتری از کل متن کار میکنند. این لایهها از این جهت در تصویر نشان داده نشدهاند تا اندازهی نمودار بیش از حد بزرگ و سردرگمکننده نشود.
بهعنوانمثال، زمانیکه یک LLM داستان کوتاهی را میخواند، بهنظر میرسد اطلاعات مختلفی را در مورد شخصیتهای داستان دنبال می کند: جنسیت و سن، روابط با شخصیتهای دیگر، مکانهای گذشته و فعلی، خصوصیات فردی، اهداف و موارد دیگر.
محققان دقیقاً نمیدانند که LLMها چگونه این اطلاعات را ردیابی میکنند، اما قاعدتاً مدل باید این کار را با تغییر بردارهای حالت پنهان هنگام انتقال از یک لایه به لایه بعدی انجام دهد. در مدلهای زبانی مدرن، بردارها بسیار بزرگ میشوند. برای مثال بردارهای کلماتی در قدرتمندترین نسخه GPT-3 دارای 12,288 بُعد هستند؛ یعنی هر کلمه با لیستی از 12,288 عدد نشان داده میشود.
شما میتوانید تمامی این ابعاد اضافی را نوعی فضای پیشنویس در نظر بگیرید که مدل زبانی از آن برای نوشتن یادداشتهایی در مورد زمینه و تم هر کلمه استفاده میکند. هر لایهی بالاتر، میتواند یادداشتهای لایههای قبلی را بخواند و اصلاح کند. بدینترتیب مدل بهتدریج درک بهتر و دقیقتری از متن اصلی به دست میآورد.
فرض کنید برای تفسیر یک داستان هزار کلمهای، نموداری مشابه با نمودار تصویر بالا ولی در 96 لایه داریم. لایه 60 ممکن است حاوی برداری باشد که مشخصات دیگر جان را نشان میدهد؛ برای مثال: شخصیت اصلی، مرد، ازدواج کرده با شریل، پسرعموی دونالد، متولد مینهسوتا، ساکن فعلی شهر بویز، در تلاش برای پیدا کردن کیف پول گم شده خود. همه این حقایق (و احتمالاً خیلی موارد دیگر) به نوعی تحت لیستی از 12,288 عدد مربوط به کلمهی جان رمزگذاری میشوند. برخی از این اطلاعات هم ممکن است در بردارهای 12,288 بُعدی مرتبط با واژههای «شریل»، «دونالد»، «کیف پول»، «بویز» یا کلمات دیگر داستان رمزگذاری شوند.
هدف این است که لایهی 96 یا آخرین لایهی شبکه، یک حالت پنهان برای کلمهی نهایی تولید کند که باید تمام اطلاعات لازم برای پیشبینی کلمهی بعدی را شامل شود.
فرایند کار ترنسفورمر
حالا بیایید در مورد آنچه داخل هر ترنسفورمر اتفاق میافتد، صحبت کنیم. ترنسفورمر از یک فرایند دو مرحلهای برای بهروزرسانی حالت پنهان هرکلمهای که از مسیر ورودی دریافت میشود، استفاده میکند.
- در مرحله توجه (Attention) هر کلمه به اطراف خود نگاه میکند و اطلاعاتش را با کلماتی که زمینه و تم مرتبطی دارند، به اشتراک میگذارد.
- در مرحله پیشخور (Feed-Forward) هر کلمه در مورد اطلاعات جمعآوری شده در مراحل قبلی «فکر میکند» و سعی میکند کلمه بعدی را پیشبینی کند.
البته این شبکه است که مراحل فوق را انجام میدهد، نه تکتک کلمات. ما برای سادهسازی مسائل را به این شکل توضیح میدهیم تا تأکید کنیم که ترنسفورمرها کلمات را به جای کل جملات یا عبارات، بهعنوان واحد اصلی تجزیهوتحلیل میکنند.
این رویکرد LLMها را قادر می سازد تا از قدرت پردازش موازی عظیم پردازندههای گرافیکی مدرن، بهرهی کامل ببرند. بهعلاوه از این طریق LLMها میتوانند در سطح متنهایی با هزاران کلمه وسعت پیدا کنند و مقیاسپذیر شوند. این دو حوزه دقیقا همان چالشهایی هستند که بر سر راه مدلهای زبانی قدیمی وجود داشت.
شما میتوانید مکانیزم توجه را بهعنوان یک سرویس همتاگزینی کلمات درنظر بگیرید. هر کلمه یک چکلیست به نام بردار پرسوجو (Query Vector) ترتیب میدهد که درآن ویژگیهای کلمات موردنظر را توصیف میکند. همچنین یک چکلیست دیگر هم با نام بردار کلیدی (Key Vector) آماده میکند که درآن ویژگیهای خود را شرح میدهد.
شبکه، هر بردار کلیدی را با بردارهای پرسوجو مقایسه میکند تا کلماتی را که بهترین تطابق را دارند، بیابد. زمانیکه جزئیاتِ مطابقت کامل شد، شبکه اطلاعات را از کلمهای که بردار کلیدی را تولید کرده به کلمهای که بردار پرسوجو را تولید کرده است، انتقال میدهد.
در بخش قبل یک ترنسفورمر فرضی را نشان دادیم که متوجه شده بود در جملهی نسبی « John wants his bank to cash the-» واژهی «his» به جان اشاره دارد. با توضیحات بعدی میتوانیم کمی عمیقتر شویم:
بردار پرسوجوی واژهی his میگوید: «من به دنبال اسمی هستم که یک فرد مذکر را توصیف میکند.» بردار کلیدی «John» میگوید: «من هستم؛ اسمی که یک فرد مذکر را توصیف میکند.» شبکه تشخیص میدهد که این دو بردار مطابقت دارند و اطلاعات مربوط به بردار John را به بردار his منتقل میکند.
هر لایه چندین سر توجه دارد، به این معنی که فرآیند مبادلهی اطلاعات چندین بار به موازات در هر لایه اتفاق میافتد. هر سر توجه روی یک کار متفاوت تمرکز میکند:
- یک سر توجه ممکن است ضمایر را با اسم مطابقت دهد، مانند his با John.
- یک سر دیگر ممکن است در پی یافتن معنای اصلی کلمهای با معانی متعدد و متفاوت باشد.
- سر سوم ممکن است عبارات دو کلمهای مانند «بیل گیتس» را به هم پیوند دهد.
- به همین ترتیب سر چهارم، پنجم و الی آخر.
این سرها غالباً بهصورت متوالی عمل میکنند و نتایج عملیات یک لایه، به ورودی یک سر دیگر در لایه بعدی تبدیل میشود. البته هر یک از این وظایفی که گفتیم ممکن است به چندین سر توجه نیاز داشته باشند. قبلاً گفتیم که بزرگترین نسخه GPT-3 دارای 96 لایه با 96 سر توجه است، بنابراین هربار که این مدل کلمهای را پیشبینی میکند، 9,216 بار عملیات توجه را انجام میدهد.
مکانیزم توجه؛ یک مثال در دنیای واقعی
در سال 2022، محققان روی نتایج یکی از پیشبینیهای GPT-2 دقیق شدند. ماجرا از جایی شروع شد که این مدل زبانی جملهی «-When Mary and John went to the store, John gave a drink to» را با واژهی Mary کامل کرد. محققان متوجه شدند که سه نوع سر توجه در این پیشبینی نقش داشتند:
- گروه اول سرهایی بودند که اطلاعات را از بردار Mary به بردار نهایی کپی میکردند. بردار نهایی بردار آخرین واژهی سمت راست است که به کمک آن کلمهی بعدی پیشبینی میشود (اینجا واژهی to)
- گروه دوم سرهایی بودند که بردار دوم کلمهی John را بلاک میکردند و مانع از کپی شدن اطلاعات آن روی بردار نهایی میشدند.
- گروه سوم سرهایی بودند که بردارهای واژهی John را بهعنوان اطلاعات تکراری تشخیص میدادند و علامتگذاری میکردند، بدینترتیب به سرهای قبلی کمک میکردند که اطلاعات John را کپی نکند.
- در مجموع این سرها به GPT-2 میفهماندند که جملهی John gave a drink to John بیمعنی است و باید John gave a drink to Mary را انتخاب کند.
اما مدل زبانی چگونه فهمید که کلمهی پیشبینی شده باید نام یک انسان باشد نه کلمهای دیگر؟ میتوانیم به جملات مشابه زیادی فکر کنیم که در آنها «مری» گزینهی مناسبی نیست. مثلا در جملهی «وقتی مری و جان به رستوران رفتند، جان کلیدهایش را به – » واژهی منطقی بعدی، «پیشخدمت» خواهد بود. احتمالا دانشمندان علوم کامپیوتر، با تحقیقات کافی خواهند توانست مراحل دیگری را نیز در فرایند استدلال GPT-2 کشف و توضیح دهند.
مکانیزم پیشخور
پس از اینکه سرهای توجه اطلاعات را بین بردارهای کلمه منتقل کردند، شبکهی پیشخور (Feed-Forward) درمورد هر بردار کلمه «فکر میکند» و سعی میکند کلمهی بعدی را پیشبینی کند. در این مرحله، هیچ اطلاعاتی بین کلمات ردوبدل نمیشود و لایهی پیشخور هر کلمه را بهصورت مجزا تجزیهوتحلیل میکند. بااینحال، این لایه بهتمامی اطلاعاتی که قبلاً توسط یک سر توجه کپی شده، دسترسی دارد.
نورونها که در تصویر با دایرههای سبز و بنفش نمایش داده شدهاند، در واقع توابع ریاضی هستند که مجموع وزنی ورودی لایهها را محاسبه میکنند. این مجموع به یک تابع فعالسازی منتقل میشود که برای درک کامل آن، باید با شبکه عصبی آشنا شوید.
چیزی که لایه پیشخور یا فید فوروارد را قدرتمند میکند، تعداد زیاد اتصالات آن است. ما برای سادهسازی این شبکه را با سه نورون در لایه خروجی و شش نورون در لایه پنهان ترسیم کردهایم. مدل GPT-3 شامل 12,288 نورون در لایه خروجی (مطابق با تعداد بردارهای کلماتی) و 49,152 نورون در لایه پنهان است.
پس در لایهی پنهان، 49,152 نورون با 12,288 ورودی (و طبیعتا 12,288 پارامتر وزنی) وجود دارد. همچنین 12,288 نورون خروجی با 49,152 مقدار ورودی (و 49,152 پارامتر وزنی) برای هر نورون وجود دارد. بنابراین هر لایه پیشخور دارای 1٫2 میلیارد پارامتر وزنی خواهد بود:
گفتیم که در این مدل، ما 96 لایه پیشخور داریم؛ یعنی مجموعاً 96 ضربدر 1٫2 میلیارد معادل 116 میلیارد پارامتر که تقریباً دو سوم کل 175 میلیارد پارامتر GPT-3 را تشکیل میدهند. تحقیقات نشان میدهد که لایههای پیشخور با تطبیق الگو کار میکنند: هر نورون در لایه پنهان با الگوی خاصی در متن ورودی مطابقت دارد. لایههای اول روی تطبیق کلمات خاص متمرکزند و لایههای بعدی به تدریج انتزاعیتر میشوند و بهعنوانمثال با فواصل زمانی یا گروههای معنایی گستردهتر مطابقت پیدا میکنند.
همانطور که قبلا گفتیم پیشخور در هر زمان فقط یک کلمه را بررسی میکند. بنابراین وقتی عبارت یا توالی کلمات «نسخه بهروز زومیت، بایگانیشده» را با عنوانی مرتبط با «رسانه» طبقهبندی میکند، در واقع فقط به بردار کلمهی «بایگانیشده» دسترسی دارد نه واژههای دیگری نظیر نسخه، زومیت و بهروز. پس احتمالا لایه پیشخور میتواند بگوید که «بایگانیشده» بخشی از یک توالی مرتبط با رسانه است، زیرا سرهای توجه پیش از این اطلاعات متنی لازم را به بردار بایگانیشده منتقل کردهاند.
هنگامیکه یک نورون با یکی از الگوها مطابقت پیدا کرد، اطلاعاتی را به بردار کلمه اضافه میکند. گرچه تفسیر این اطلاعات همیشه آسان نیست، در بسیاری از موارد میتوانید آن را بهعنوان یک پیشبینی آزمایشی در مورد کلمه بعدی درنظر بگیرید.
شبکههای پیشخور با بردارهای ریاضیاتی استدلال میکنند
تحقیقات اخیر دانشگاه براون، مثال جالبی از نحوهی کمک لایههای پیشخور به پیشبینی کلمات بعدی ارائه میکند. در بخشهای قبل به تحقیق word2vec گوگل اشاره کردیم که برای استدلال قیاسی از محاسبات برداری استفاده میکرد. مثلاً با محاسبهی نسبت برلین به آلمان، پاریس را به فرانسه نسبت میداد. به نظر میرسد که لایههای فید فوروارد دقیقاً از همین روش برای پیشبینی کلمهی بعدی استفاده میکنند. محققان سؤالی را از یک مدل 24 لایهای GPT-2 پرسیدند و سپس عملکرد لایهها را مورد مطالعه قرار دادند.
در 15 لایهی اول، بهترین حدس مدل زبانی، واژهای تصادفی بود. بین لایههای 16 تا 19 مدل پیشبینی کرد که کلمهی بعدی لهستان است. پاسخی که درست نبود، اما دستکم ارتباط اندکی به موضوع داشت. سپس در لایهی بیستم بهترین حدس به «ورشو» تغییر کرد و در چهار لایهی آخر بدون تغییر باقی ماند. در واقع، لایهی بیستم برداری را اضافه کرد که کشورها را به پایتخت متناظرشان متصل میکند. در همین مدل، لایههای پیشخور با استفاده از محاسبات برداری، کلمات کوچک را به بزرگ و واژههای زمان حال را به زمان گذشته تبدیل میکردند.
لایههای توجه و پیشخور وظایف مختلفی دارند
تا اینجا ما دو نمونهی واقعی از پیشبینی کلمات توسط GPT-2 را بررسی کردهایم: تکمیل جملهی جان به مری نوشیدنی داد، به کمک سرهای توجه و نقش لایهی پیشخور در اینکه ورشو پایتخت لهستان است.
در مثال اول، واژهی مری از پرامپت یا دستور متنی ارائه شده توسط کاربر استخراج میشد، اما در مثال دوم واژهی ورشو در دستور متنی نیامده بود. مدل زبانی باید این واقعیت را «به یاد میآورد» که ورشو پایتخت لهستان است، یعنی از اطلاعاتی که از دادههای آموزشی به دست آورده بود.
زمانیکه محققان دانشگاه براون لایهی پیشخوری که ورشو را به لهستان متصل میکرد، غیرفعال کردند، دیگر مدل زبانی واژه ورشو را بهعنوان کلمهی بعدی پیشبینی نمیکرد. اما وقتی جملهی «ورشو پایتخت لهستان است» را به ابتدای پرامپت اضافه کردند، مدل دوباره پیشبینی درستی ارائه داد؛ احتمالاً به این دلیل که مدل زبانی از سرهای توجه برای کپیکردن «ورشو» استفاده میکرد.
پس ما با یک «تقسیم کار» مشخص مواجهایم: سرهای توجه اطلاعات را از کلمات قبلی پرامپت بازیابی میکنند، درحالیکه لایههای پیشخور به مدلهای زبانی امکان میدهند اطلاعاتی را که در دستور متنی نیست، «به یاد بیاورند».
ما میتوانیم لایههای پیشخور را بهعنوان پایگاه دادهای تصور کنیم که اطلاعات موجود در آن، از دادههای آموزشی قبلی مدل زبانی جمعآوری شده است. بهاحتمالزیاد لایههای ابتدایی پیشخور حقایق سادهی مرتبط با کلمات خاص را رمزگذاری میکنند، مثلا «جابز بعد از استیو میآید» و لایههای بالاتر روابط پیچیدهتری را مدیریت میکنند؛ مانند اضافهکرد