درس ۱ از ۱۲، بخش ۱: مدل زبانی از درون
از هوش مصنوعی تا مدل زبانی بزرگ
در این درس
وقتی از «ساخت اپلیکیشن با مدلهای زبانی» حرف میزنیم، دو رویکرد داریم. یکی رویکرد پژوهشی است: مدل را خودمان بسازیم، آموزش بدهیم یا fine-tune کنیم. دیگری رویکرد کاربردی است: مدلی را که یک ارائهدهنده در اینترنت سرو میکند، یا مدلی را که روی کامپیوتر خودمان بالا آوردهایم، بهعنوان «مغز» یک برنامه استفاده کنیم. مثلاً دستیاری که از روی اسناد سازمان جواب میدهد، به پایگاه داده وصل میشود یا ایمیل مشتریها را دستهبندی میکند.
این دوره دربارهی رویکرد دوم است. اما برای اینکه از این ابزار درست استفاده کنیم، باید بدانیم از کجا آمده و داخلش چه میگذرد. این درس واژهها را مرتب میکند.
هوش مصنوعی و یادگیری ماشین#
در سال ۱۹۵۰ آلن تورینگ پرسید آیا ماشین میتواند فکر کند و آزمونی پیشنهاد داد: اگر داوری با یک کامپیوتر و یک انسان گفتگو کند و نتواند تشخیص دهد کدام انسان است، آن کامپیوتر به سطح قابلقبولی از هوشمندی رسیده است. چند سال بعد، در کارگاه دارتموث در ۱۹۵۶، جان مککارتی نام این حوزه را هوش مصنوعی (Artificial Intelligence) گذاشت: ساخت کامپیوترهایی که رفتار هوشمندانه و انسانگونه دارند.
از آن زمان تا امروز برنامههای هوشمند به دو شکل ساخته شدهاند:
- قاعدهمحور: برنامهنویس قاعدهها را مینویسد. مثلاً برای تشخیص ایمیل تبلیغاتی میگوید «اگر کلمههایی مثل فرصت استثنایی یا تماس فوری بود، اسپم است.»
- دادهمحور: هزاران ایمیل برچسبخورده (اسپم یا عادی) جمع میکنیم و الگوریتمی میسازیم که خودش از روی داده یاد بگیرد چه چیزی اسپم است.
دستهی دوم را یادگیری ماشین (Machine Learning) مینامند؛ اصطلاحی که آرتور ساموئل در اواخر دههی ۱۹۵۰ رایج کرد. یادگیری ماشین روشهای زیادی دارد: آماری، بهینهسازی ریاضی و روشهایی که از طبیعت الهام گرفتهاند.
شبکهی عصبی و یادگیری عمیق#
یکی از این روشها از مغز الهام گرفت. مغز پستانداران از تعداد زیادی سلول عصبی (نورون) ساخته شده که کنار هم کار میکنند. دانشمندان یک نورون مصنوعی ساختند و بعد چند نورون را کنار هم گذاشتند تا شبکهی عصبی (Neural Network) شکل بگیرد.
دقت کنید که این روش الهامگرفته از مغز (brain-inspired) است، نه منطبق بر مغز (brain-plausible). قرار نیست دقیقاً مثل مغز کار کند؛ فقط ایدهاش را از آنجا گرفته است.
شبکهی عصبی ایدهی تازهای نیست و دهها سال قدمت دارد. اما تا حدود ۲۰۱۲ دو مانع جدی داشت:
- سختافزار ضعیف. هوشمندی با تعداد نورونها رابطهی مستقیم دارد. مغز انسان میلیاردها نورون را همزمان فعال میکند، اما کامپیوترهای قدیمی نمیتوانستند شبکهی بزرگی را در زمان معقول اجرا کنند.
- دادهی کم. مغزی بزرگ را در اتاقی تصور کنید که نه کتاب دارد، نه فیلم و نه آدمی برای حرف زدن. با همهی ظرفیتش هوشمند نمیشود. شبکهی عصبی هم باید دادهی زیاد ببیند.
حدود سال ۲۰۱۲ هر دو مانع برداشته شد. با فراگیر شدن اینترنت، حجم عظیمی از متن و تصویر و صدا جمع شده بود. کارتهای گرافیک هم، که به لطف بازیهای کامپیوتری محاسبات موازی را خیلی سریع انجام میدادند، به اندازهی کافی قوی شده بودند. در همان سال الکس کریژفسکی، دانشجوی جفری هینتون، یک شبکهی عصبی بزرگ (AlexNet) را روی کارت گرافیک آموزش داد و در رقابت تشخیص تصویر ImageNet با فاصلهی زیادی اول شد.
به شبکههایی که لایههای زیادی دارند، یعنی ورودی را مرحلهبهمرحله و سلسلهمراتبی پردازش میکنند، شبکهی عصبی عمیق میگویند و به این حوزه یادگیری عمیق (Deep Learning). تقریباً همهی هوش مصنوعی مولدی که امروز میبینید، از ChatGPT و Gemini تا Midjourney، کاربردهای یادگیری عمیقاند.
مدل زبانی چیست؟#
مدل زبانی (Language Model) یک مدل احتمالاتی است. چند کلمه میگیرد، آنها را به عدد تبدیل میکند، محاسباتی انجام میدهد و برای هر کلمهای که میشناسد احتمال آمدنش در ادامه را حساب میکند. مثلاً بعد از «I love you» احتمال «so much» یا «too» بالاست و احتمال «dinosaur» تقریباً صفر.
مدلهای زبانی قدیمی هستند. پیشنهاد کلمهی بعدی در کیبورد گوشیهای قدیمی هم یک مدل زبانی بود، از آنهایی که بیشتر آدمها خاموششان میکردند. اتفاق تازه این بود که:
- مدل زبانی را با شبکهی عصبی عمیق ساختند، و
- آن را روی حجمی در مقیاس اینترنت آموزش دادند: ویکیپدیا، کتاب، مقالهی علمی، فرومهایی مثل Reddit و Quora و میلیونها صفحهی وب.
به این ترکیب مدل زبانی بزرگ یا LLM (Large Language Model) میگویند.
مرحلهی ۱: پیشآموزش و مدل پایه#
آموزش LLM با پر کردن جای خالی شروع میشود. یک جمله از ویکیپدیا برمیداریم، مثلاً «علی دایی در سال … بهترین گلزن جهان شد». یک بار «علی» را میدهیم و مدل باید «دایی» را حدس بزند، یک بار «علی دایی» را میدهیم و باید «در» را حدس بزند، و همینطور تا آخر.
چون جای خالی را خودمان با برنامه ساختهایم، جواب درست را هم میدانیم و نیازی به برچسبزنی انسانی نیست. به این شیوهی آموزش خودنظارتی (self-supervised) میگویند.
این تمرین ساده دو چیز به مدل یاد میدهد:
- ساختار زبان: فعل و فاعل کجا میآیند و کدام کلمه بعد از کدام محتملتر است.
- دانش: اگر مدل بارها دیده باشد فلان دارو با فلان دارو تداخل دارد، یاد میگیرد که «محتملترین» ادامهی جمله همان دانش درست است.
خروجی این مرحله مدل پایه (Base LLM) است. با یک حلقه میشود از آن متن گرفت: کلمهی پیشبینیشده را به آخر جمله اضافه میکنیم و دوباره میپرسیم کلمهی بعدی چیست. «روزی روزگاری یک تکشاخ …» ← «که» ← «در» ← «جنگل» …
اما کار کردن با مدل پایه سخت است. اگر بپرسید «What is the capital of France?» ممکن است جواب بدهد «What is the largest city in France?». چرا؟ چون در کتابهای جغرافی که خوانده، بعد از یک سؤال معمولاً سؤال دیگری آمده است. مدل دانش را دارد، اما ما نمیتوانیم بهراحتی آن را بیرون بکشیم.
مرحلهی ۲: تنظیم دقیق با نظارت (SFT)#
برای حل این مشکل، مدل پایه را fine-tune میکنند. یعنی شبکهای که یک کار را بلد است، روی کاری شبیه به آن دوباره آموزش میبیند. اینجا هم کار همان پر کردن جای خالی است، اما با دادهای که شکلش فرق دارد:
<start_question> What is the capital of France? <end_question>
<start_answer> The capital of France is Paris. <end_answer>
<start_question> و بقیهی برچسبها توکنهای ویژهاند؛ علامتهایی که جزو کلمات زبان نیستند و فقط به مدل میگویند کجا سؤال تمام شد و کجا باید جواب بدهد.
شرکتهایی مثل OpenAI تعداد زیادی نیروی انسانی استخدام کردند که طبق یک دستورالعمل مشخص، برای هزاران پرامپت پاسخ مطلوب بنویسند. مدل با این جفتهای «دستور ← پاسخ خوب» آموزش میبیند و یاد میگیرد سؤال را جواب بدهد و دستور را اجرا کند: «این متن را خلاصه کن»، «به این ایمیل جواب بده»، «بگو این نظر مثبت است یا منفی».
چون این بار انسان جواب درست را تعیین کرده، به این مرحله Supervised Fine-Tuning یا SFT میگویند و خروجیاش یک مدل دستورپذیر (Instruct LLM) است.
مرحلهی ۳: همراستاسازی با بازخورد انسانی#
مدل دستورپذیر هنوز خطرناک است. هر چیزی در اینترنت خوانده، از جمله بیادبی، تعصب و دستور ساخت چیزهای خطرناک. به چنین مدلی سانسورنشده (uncensored) میگویند و گذاشتنش جلوی مشتری ریسک بزرگی است. به این مشکل عدم همراستایی (misalignment) میگویند و برای رفعش مدل باید سه ویژگی داشته باشد که به HHH معروفاند:
| ویژگی | یعنی چه؟ |
|---|---|
| Helpful (مفید) | جواب واقعی بدهد. به «قرمهسبزی چطور درست کنم؟» نگوید «برو کلاس آشپزی». |
| Honest (صادق) | چیزی را که نمیداند از خودش نسازد. اگر جملهای از کسی وجود ندارد، جمله جعل نکند. |
| Harmless (بیخطر) | نژادپرستانه یا جنسیتزده رفتار نکند و راه آسیب زدن یاد ندهد. |
صداقت مشکل ظریفی است. فرض کنید مدل در متنها زیاد دیده که «با تاجگذاری فلان پادشاه، سلسلهی … آغاز شد» یا «به پایان رسید». اگر جزئیات تاریخی را به خاطر نداشته باشد، هر دو ادامه به نظرش محتمل است، در حالی که فقط یکی درست است.
OpenAI برای این مرحله از RLHF (یادگیری تقویتی با بازخورد انسانی) استفاده کرد:
- برای هر سؤال، چند پاسخ متفاوت از مدل میگیرند. با تنظیم دما این کار ممکن است و در درس ۳ میبینیم چطور.
- داورهای انسانی پاسخها را از بهترین تا بدترین رتبهبندی میکنند. معمولاً چند داور به یک سؤال رأی میدهند تا سلیقهی یک نفر غالب نشود.
- با این رتبهبندیها یک مدل پاداش (reward model) آموزش میبینند که از بین دو پاسخ بگوید کدام به نظر انسان بهتر است.
- حالا مدل پاداش جای انسان داوری میکند و با الگوریتم یادگیری تقویتی به مدل اصلی بازخورد میدهد.
یادگیری تقویتی (Reinforcement Learning) شبیهترین روش یادگیری ماشین به یادگیری انسان است. بچهای که دستش به چیز داغ میخورد دیگر به آن دست نمیزند، و اگر کار بامزهای کند و همه بخندند، آن را تکرار میکند.
RLHF تنها روش نیست. روشهایی مثل DPO و GRPO هم برای همراستاسازی استفاده میشوند. مثلاً DeepSeek از روشهای دیگری استفاده کرده است.
هزینهی همراستاسازی#
همراستاسازی همهی مشکلات را حل نمیکند:
- سوگیری داورها: داورها هر قدر هم دستورالعمل داشته باشند، سلیقه دارند. نظر یک مسیحی، یک مسلمان و یک یهودی دربارهی یک سؤال دینی یکی نیست. پس مدل بدون سوگیری نداریم و یک مدل آمریکایی با یک مدل چینی فرق دارد.
- چاپلوسی (sycophancy): چون مدل یاد گرفته رضایت کاربر پاداش دارد، گاهی بیدلیل تأیید و تعریف میکند و هر ایدهای را «عالی» میداند. این ویژگی میتواند از نظر روانی هم مشکلساز باشد.
اندازهی مدل و پنجرهی کانتکست#
مدلها در اندازههای خیلی مختلفی ساخته میشوند، از حدود صد میلیون تا چند تریلیون پارامتر. پارامترها حکم اندازهی مغز را دارند. هر چه مدل بزرگتر باشد، معمولاً کارهای بیشتری بلد است، اما سختافزار گرانتری میخواهد و کندتر جواب میدهد.
متنی که به مدل میدهید پرامپت (prompt) نام دارد و متنی که مدل تولید میکند completion. هر مدل سقفی دارد برای اینکه چند توکن را با هم ببیند (پرامپت بهاضافهی پاسخ). به این سقف پنجرهی کانتکست (context window) میگویند. توکن را در درس ۲ دقیقتر میبینیم.
با LLM چه میسازیم؟#
- دستیار خاصمنظوره: چتباتی که فقط دربارهی منوی یک رستوران یا محصولات یک شرکت جواب میدهد
- کارهای متنی: خلاصهسازی، ترجمهی تخصصی، دستهبندی نظرات، استخراج اسم شرکتها و افراد از نامهها
- تولید کد: نوشتن کد، و در حالت ایجنتی اجرا و اشکالزدایی همان کد
- RAG: جستجو در اسناد سازمان و جواب دادن از روی آنها
- ایجنت: وصل کردن مدل به APIها و پایگاه داده. مدل خودش تصمیم میگیرد کدام سرویس را صدا بزند و پاسخ خام (مثلاً JSON) را به زبان انسانی برمیگرداند. این همان چیزی است که امروز بیشترین توجه را گرفته است.
در ادامهی این دوره و دورههای بعد همهی اینها را میسازیم. اول باید ببینیم داخل یک LLM چه میگذرد.
خلاصه#
- هوش مصنوعی ⊃ یادگیری ماشین ⊃ یادگیری عمیق ⊃ LLM. جهش ۲۰۱۲ حاصل دادهی زیاد و کارت گرافیک قوی بود.
- مدل زبانی یک مدل احتمالاتی است که میگوید کلمهی بعدی چه باشد.
- LLM در سه مرحله ساخته میشود: پیشآموزش (مدل پایه)، SFT (مدل دستورپذیر) و همراستاسازی (مدل گفتگو).
- همراستاسازی مدل را مفید، صادق و بیخطر میکند، اما سوگیری و چاپلوسی را هم با خودش میآورد.