LLM چیست؟
در چند سال اخیر، LLM به یکی از داغترین و تاثیرگذارترین مباحث در حوزه هوش مصنوعی تبدیل شده است. قطعا شما نیز با چتباتهایی مانند Gemini ،Claude ،ChatGPT یا موارد مشابه دیگر کار کردهاید؛ در واقع، شما مستقیم با یک LLM قدرتمند تعامل داشتهاید. اما LLM فراتر از چتبات است. این فناوری، اکنون ستون فقرات عصر جدیدی از تولید محتوا، برنامهنویسی، تحلیل داده و بسیاری از حوزههای دیگر است و دنیای ما را دگرگون کرده است. من، بر اساس مطالعات گسترده و ساعات تدریس فراوانی که در زمینه LLMها داشتهام، تصمیم گرفتم این دانش را به شکلی جامع و قابل درک با شما به اشتراک بگذارم. بیایید پرده از ابهامات برداریم و درک کنیم که این مدلهای زبانی بزرگ چگونه جهان را دگرگون میکنند. با هوسم همراه باشید…
LLM مخفف چیست؟
LLM مخفف عبارت Large Language Model است. LLM به فارسی با عبارت مدل زبانی بزرگ شناخته میشود. واضح هست که ما با یک مدل زبانی با اندازه بزرگ سروکار داریم! مدل زبانی یعنی چه؟ مدل زبانی یک مدل هوش مصنوعی است که میتواند متن (زبان انسان) را درک کرده و همچنین خودش متن تولید کند (حرف بزند). ChatGPT و Gemini نمونههایی از مدل زبانی هستند که به خوبی حرف ما را میفهمند و به زبان ما حرف میزنند.
جایگاه LLM در هوش مصنوعی
جایگاه مدل زبانی بزرگ یا LLM در شکل زیر به خوبی نشان داده شده است. زیرشاخهای از یادگیری عمیق است که البته با Generative AI یا هوش مصنوعی مولد در ارتباط است. هوش مصنوعی مولد هم زیرشاخهای از یادگیری عمیق است؛ در GenAI با کمک شبکه عصبی عمیق محتواهای جدیدی مانند متن، تصویر، صوت و غیره تولید میشود. حتما، تصاویر تولیدشده با هوش مصنوعی را بارها دیدهاید. دلیل همپوشانی GenAI و LLM این هست که LLM قابلیت تولید متن باکیفیت بالا را دارد.

نگاه دقیق به LLM
از عبارت Large Language Model ساده نگذریم! کلمات و عبارتهای مهمی میتوان از این عبارت بیرون کشید:
- Model
- Language Model
- Large Language Model
بخشی از این آموزش را میخواهم به تشریح همین سه آیتم اختصاص بدهم. مهم هست که این مفاهیم را دقیق درک کنید؛ بین سه مورد بالا، مورد اول به مدل یادگیری ماشین اشاره دارد. پس LLM یک مدل یادگیری ماشین هست. نیازی نیست که درباره یادگیری ماشین بدانید؛ اگر مشتاق هستید که از یادگیری ماشین بیشتر بدانید، آموزش یادگیری ماشین چیست را بخوانید.
اما مورد دوم، Language Model یا مدل زبانی، نیاز به توضیح دارد. قبلا، یک آموزش با موضوع مدل زبانی چیست نوشتهام. هرچند در ادامه، درباره Language Model کمی توضیح میدهم، اما پیشنهاد میکنم ابتدا آموزش مدل زبانی را بخوانید.
مدل زبانی یا Language Model چیست؟
بهصورت ساده و مختصر، مدل زبانی یا Language Model را میتوان اینگونه تعریف کرد:
یک مدل یادگیری ماشین که مانند انسان قادر به درک و تولید متن است.
درک تعریف بالا با مشاهده مثال زیر سادهتر میشود. در شکل زیر، یک متن کوتاه با عبارت “Language modeling is” به مدل زبانی آموزشدیده داده شده است. سپس، مدل زبانی این متن را ادامه میدهد که متن تولیدیاش در خروجی مدل قابل مشاهده هست.

انواع مدل زبانی
روشهای مختلفی برای ساخت مدل زبانی وجود دارد. مدل زبانی N-grams سادهترین مدل زبانی است که با بهرهگیری از احتمالات، کلمات بعدی یک دنباله را تولید میکند. ساخت مدل زبانی مبتنی بر شبکه های عصبی عمیق روشی رایج و قدرتمند محسوب میشود. مدل زبانی مبتنی بر شبکه عصبی محدود به یک نوع شبکه عصبی خاص نیست. بلکه، شبکه های عصبی مختلفی مانند شبکه بازگشتی، شبکه ترنسفورمر و حتی شبکه کانولوشنی میتوانند استفاده شوند. البته، در سالهای اخیر، ترنسفورمر نسبت به سایر شبکه های عصبی عملکرد بهتری در مدلسازی زبان داشته است. با همین شبکه ترنسفورمر، مدلهای زبانی در مقیاس بزرگ (بیلیون پارامتری) ساخته شده که ثمره آن را در چتباتها (مانند ChatGPT) میبینیم. وقتی میگوییم مدل زبانی بزرگ، اغلب منظورمان همین مدل زبانی مبتنی بر شبکه ترنسفورمر است.
LLM یا مدل زبانی بزرگ چیست؟
تا اینجا، با ماهیت مدل زبانی یا Language Model آشنا شدید. حالا وقت این رسیده که معنی کلمه بزرگ (Large) در مدل زبانی بزرگ (LLM) را درک کنید:
LLM یعنی یک مدل زبانی با حجم بسیار زیادی پارامتر که روی حجم بسیار زیادی داده متنی بر بستر سختافزار بسیار بزرگی آموزش دیده است.
در تعریف بالا، سه بار از عبارت بسیار حجیم/بزرگ استفاده کردم. این سه مورد را برای چه چیزهایی بهکار بردم؟ پارامتر، داده و سختافزار. برای اینکه تعریف برای شما بهتر جا بیفتد، یک مثال میزنم؛ مدل Llama-2-70b از شرکت متا، یک شبکه ترنسفورمر است که حدود 70 بیلیون (میلیارد) پارامتر دارد. این مدل روی حدود 10 ترابایت داده متنی آموزش داده شده است. برای آموزش این مدل بزرگ با این حجم داده از GPU کلاستر با 6000 GPU به مدت 12 روز استفاده شده است! هزینه آموزش چنین مدلی حدود 2 میلیون دلار هست! حجم مدل نهایی ذخیرهشده در هارد حدود 140 گیگابایت هست! فَکِّت افتاد یا نه؟! 😃 پس نتیجه میگیریم که آن کلمه Large فقط به سایز مدل اشاره ندارد. بلکه، به خیلی چیزها مانند حجم داده آموزش، میزان GPU-ها و حتی پوووول هم اشاره دارد!
تعریف پارامتر (Parameter) یکی از مولفههای بنیادی و داخلی شبکههای عصبی محسوب میشود. این پارامترها در واقع همان وزنها (Weights) و بایاسها (Biases) هستند که مدل در طول فرآیند آموزش (Training) یاد میگیرد و تنظیم میکند. اغلب، تعداد پارامترهای یک مدل بهعنوان یک معیار اصلی برای تخمین ظرفیت (Capacity) و قدرت یادگیری آن مدل به کار میرود. به زبان ساده، هرچه تعداد پارامترها بیشتر باشد، مدل از پتانسیل بالاتری برای ذخیرهسازی درک الگوهای زبانی ظریف و تولید خروجیهای غنیتر برخوردار است. با این حال، باید در نظر داشت که این قاعده پارامتر بیشتر ← مدل قویتر یک اصل قطعی و همیشگی نیست؛ زیرا عوامل متنوع دیگری مانند ساختار معماری (مانند ترنسفورمر)، کیفیت و حجم دادههای آموزشی و روشهای بهینهسازی (Optimization) نیز در تعیین عملکرد نهایی مدل نقش حیاتی دارند. بنابراین، ممکن است مدلی با پارامتر کمتر اما ساختار بهینهتر، از مدلی با پارامتر بیشتر پیشی بگیرد.

مدل زبانی بزرگ چگونه کار میکند؟
در این بخش، میخواهم بهصورت کلی به شما نشان دهم که مدل زبانی چگونه کار میکند؟ در واقع، منظورم این هست که چگونه مدل زبانی متن تولید میکند. فرض بر این هست که مدل زبانی ما یک مدل از جنس شبکه عصبی (مثلا شبکه ترنسفورمر) است. تصور کنید این مدل قبلا آموزش دیده و حالا قرار هست برای ما متن تولید کند. در انیمیشن زیر، نحوه تولید متن مدل GPT-2 از شرکت OpenAI را بهصورت کلی نشان دادهام.
همانطور که در انیمیشن زیر مشاهده میکنید، قلب تپنده این مدلها مکانیزمی است که به آن پیشبینی توکن بعدی (Next Token Prediction) میگویند. مدل با دیدن کلمات ورودی (مثلا، “Language modeling is”)، محتملترین کلمه بعدی (در اینجا “an”) را تولید میکند. اما نکته کلیدی در ویژگی دوم این معماری نهفته است که به آن خودبازگشتی (Autoregressive) گفته میشود. خاصیت اتورگرسیو به این معناست که خروجی تولیدی حال حاضر، بلافاصله به ورودی لحظه بعد اضافه میشود. یعنی کلمه تازه تولید شده به انتهای متن میچسبد و دوباره به خورد مدل داده میشود تا مبنای پیشبینی کلمه بعدی قرار گیرد. این چرخه تولید و بازخورد، توکن به توکن ادامه مییابد تا متن نهایی کامل شود.

توجه ممکن هست کلمه Token در عبارت Next Token Prediction برای شما مبهم باشد؛ در حوزه پردازش زبان طبیعی (NLP)، توکن (Token) به کوچکترین واحدی از متن گفته میشود که مدل آن را پردازش میکند. یک توکن میتواند یک کلمه کامل (مانند language)، یک نشانه نگارشی (مانند ‘،’)، یا حتی بخشی از یک کلمه (مانند ing در modeling) باشد. مدلهای زبان برای پردازش موثر، متن را به همین توکنها تبدیل میکنند و سپس پیشبینیهای خود را بر اساس این واحدها انجام میدهند. پس خوراک (ورودی و خروجی) مدلهای زبانی همین توکن است. فعلا نیازی نیست بیشتر از این بدانید.
پس در این بخش، شما بهصورت کلی با سازوکار مدلهای زبانی برای تولید متن آشنا شدید. همچنین، سه اصطلاح مهم زیر را یاد گرفتید:
- توکن (Token)
- پیشبینی توکن بعدی (Next Token Prediction)
- خودبازگشتی (Autoregressive)
معماری LLM
معمولا معماری LLM مبتنی بر شبکه عصبی ترنسفورمر است. ما در وبلاگ یک آموزش جامع درباره شبکه ترنسفورمر داریم که پیشنهاد میکنم آن را مطالعه کنید. شکل معروف زیر شبکه ترنسفورمر را نشان میدهد که اولین بار برای حوزه ترجمه ماشینی یا Machine Translation ارائه شد.

شبکه ترنسفورمر شامل دو بخش Encoder Stack و Decoder Stack هست که بهترتیب هرکدام شامل مجموعهای از لایههای متوالی Encoder و Decoder هستند.

ساختار داخلی لایه Encoder و Decoder در شبکه ترنسفورمر به شکل زیر است:

برای ساخت مدل زبانی معمولا تنها از بخش Encoder Stack یا Decoder Stack استفاده میشود. البته، ماژول Encoder-Decoder Attention در Decoder حذف میشود. در شکل زیر، دو نمونه اولیه و معروف از مدل زبانی مبتنی بر انکدر و دیکدر را نشان دادهام.
- شبکه BERT از گوگل که مجموعهای از لایههای متوالی از Encoder هست.
- شبکه GPT-2 از OpenAI که مجموعهای از لایههای متوالی از Decoder است.

البته، خالی از لطف نیست که به شبکه Transformer XL هم اشاره کنیم. شبکهای که ترکیبی از شبکه ترنسفورمر و شبکه بازگشتی است. در شکل بالا، مشاهده میکنید که مجموعهای متوالی از لایههای Recurrent Decoder یک مدل زبانی را ساختهاند. همچنین، اخیرا شبکه xLSTM پیشنهاد شده که یک LLM تماما مبتنی بر شبکه LSTM است. در مجله هوش مصنوعی درباره شبکه xLSTM مختصری توضیح دادهایم.
استفاده از Decoder در LLM رایجتر است. همچنین، میدانید که این مدل GPT از شرکت OpenAI جریانساز شد و نهایتا منجر به ظهور ChatGPT شد. پس، درادامه بیشتر روی GPT تمرکز میکنیم.
مدل زبانی GPT
GPT مخفف عبارت Generative Pre-trained Transformer است. تاکنون نسخههای مختلفی از GPT ارائه شده که اطلاعات نسخههای اولی مانند GPT-1 و GPT-2 در دسترس هست. اما نسخههای GPT-3 و GPT-4 دیگر Open Source نیستند و تجاری شدهاند.
معمولا، مدلهای یادگیری عمیق در قالب یک خانواده با اندازههای مختلف ارائه میشوند. به عنوان نمونه، شبکه GPT-2 در چهار اندازه مختلف ارائه شده است. در شکل زیر مشاهده میکنید که کوچکترین شبکه GPT-2 Small نام دارد که 117 میلیون پارامتر دارد. بزرگترین شبکه هم GPT-2 Extra Large با 1.5 بیلیون پارامتر هست! 😯 تعجب نکنید، امروزه شبکههای بسیار بزرگتر از این داریم. اصلا دیگر شبکه 1.5 بیلیون پارامتری LLM نیست، بلکه SLM است! یعنی مدل زبانی کوچک یا Small Language Model! 😁 مثلا، شبکه Llama-2-70b، حدود 70 بیلیون پارامتر دارد که دهها برابر بزرگتر از GPT-2 است.

حالا بیایید، کمی وارد جزئیات این مدلها شویم. در شکل زیر، تعداد لایهها و سایز ویژگی مدلهای خانواده GPT-2 نشان داده شده است. با بزرگ شدن مدل، تعداد لایه و ابعاد ویژگی بزرگتر میشود. بنابراین، تفاوت مدلها در ساختار نیست، بلکه در هایپرپارامترهایی مانند تعداد لایه، تعداد Head، ابعاد ویژگی و غیره هست.

خلاصه، جالب است که مدل Extra Large دارای 48 لایه دیکدر با ابعاد ویژگی 1600 هست. خانواده GPT-2 در سال 2019 ارائه شد. حالا بیایید به خانواده Llama-2 محصول 2023 از متا نگاهی بیندازیم؛ خانواده Llama-2 شامل سه عضو است:
- مدل Llama-2-7B با 32 لایه و ابعاد ویژگی 4096
- مدل Llama-2-13B با 40 لایه و ابعاد ویژگی 5120
- مدل Llama-2-70B با 80 لایه و ابعاد ویژگی 8192
صحبت زیاد هست و این پست ادامه دارد. در ادامه میخواهم درمورد آموزش، فاین تیون کردن مدلهای LLM صحبت کنم. خوشحال میشوم نظرتان برای من کامنت کنید. رفرنسهایم برای مطالعه و نگارش این متن را بعد از تکمیل کار در این پست ذکر خواهم کرد.
مطالب زیر را حتما مطالعه کنید
LLM Research یا LLM Engineering؟ راهنمای یادگیری مدلهای زبانی بزرگ
یادگیری انتقالی
شبکه VGG
مهندسی پرامپت
مدل nanoGPT
شگفتانگیزترین ایده هوش مصنوعی از نظر Andrej Karpathy
11 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
چقدر باحال بود، چقدر خوب توضیح داده شده بود و چقدر عالی
دمتون گرم و خسته نباشید
ممنون، خوشحالیم که آموزش مفید بوده. 🌺🙏
دقیقا
منم ممنونم
کاملا مفهوم و قابل درک توضیح داده شده
منتظر ادامه مطلب هستم
امیدوارم زودتر آماده بشه
موفق باشید
بله، به زودی بازنویسی و تکمیل میشه.
ممنون از شما بابت کامنت 🌹
لطفا آموزشی در مورد LLM و finetune کردن آن تهیه کنید
خیلی واجبه این روزها یاد بگیریم
سلام
درحال تهیه این آموزش هستیم.
ممنون 🙏
درود بر شما
آیا امکانش هست که آموزشی رو تهیه کنید که در اون از GPT برای متون اختصاصی خودمون استفاده کنیم.
یعنی بتونیم مجموعه اطلاعات خودمون رو بهش بدیم و بعدا ازش راجع به این اطلاعات سوال بپرسیم؟
سپاسگزارم
سلام
ما فعلا تهیه چنین آموزشی رو در برنامه نداریم. اما، در یوتوب آموزشهای متعددی وجود داره. کار پیچیدهای نیست، احتمالا از طریق سرچ و صحبت با چتجیپیتی میتونید آموزش لازم رو پیدا کنید و به هدفتون برسید.
موفق باشید 😊✌
ما همچنان منتظریم لطفا …
ممنونم، مثل همیشه عالی.
منتظر ادامه پست های بعدی هستیم.
ممنون 😊🙏🌹