MODULE 01 / LESSON 05

آشنایی با LLMها (Introduction to LLMs)

مفهوم اصلی بعد از آشنایی با معماری کلی RAG، در این بخش بررسی می‌کنیم که مهم‌ترین جزء آن یعنی LLM (Large Language Model) چگونه کار می‌کند. درک نحوه عملکرد، نقاط قوت و محدودیت‌های LLM کمک می‌کند بفهمیم چرا سایر اجزای RAG برای بهبود…

نویسنده: محمد ابوطالبی۱۲۰۹ واژهماژول ۱: مبانی RAG

مفهوم اصلی

بعد از آشنایی با معماری کلی RAG، در این بخش بررسی می‌کنیم که مهم‌ترین جزء آن یعنی LLM (Large Language Model) چگونه کار می‌کند.

درک نحوه عملکرد، نقاط قوت و محدودیت‌های LLM کمک می‌کند بفهمیم چرا سایر اجزای RAG برای بهبود عملکرد آن طراحی شده‌اند.


LLM چیست و چگونه کار می‌کند؟

LLM به عنوان یک Autocomplete پیشرفته

گاهی به شوخی LLMها را Autocomplete پیشرفته می‌نامند، اما این تعریف تا حد زیادی درست است.

وظیفه اصلی یک LLM:

پیش‌بینی کلمه یا بخش بعدی متن بر اساس متن قبلی است.

مثال:

Prompt:

What a beautiful day, the sun is ...

LLM باید حدس بزند چه چیزی بعد از این جمله قرار می‌گیرد.

Completionهای ممکن:

  • The sun is shining
  • The sun is rising
  • The sun is out

همه این موارد می‌توانند از نظر زبانی درست باشند.


مفهوم Prompt و Completion

Prompt

متنی که به LLM داده می‌شود.

مثال:

What a beautiful day, the sun is...

Completion

متنی که LLM به Prompt اضافه می‌کند.

مثال:

What a beautiful day, the sun is shining.

احتمال و معنی در پاسخ‌های LLM

یک Completion ممکن است از نظر گرامری درست باشد، اما احتمال کمی داشته باشد.

مثال:

The sun is exploding

این جمله از نظر زبان انگلیسی اشتباه نیست، اما احتمال آن بسیار پایین است، زیرا:

  • خورشید معمولاً منفجر نمی‌شود.
  • با مفهوم "یک روز زیبا" هماهنگ نیست.

انسان‌ها به‌صورت شهودی می‌دانند چه کلماتی در چه شرایطی مناسب هستند.

LLM نیز به شکلی مشابه، این روابط را یاد گرفته است.


ساختار داخلی LLM

درون LLM یک:

Neural Network (شبکه عصبی)

وجود دارد.

این شبکه یک مدل ریاضی بسیار بزرگ و پیچیده از زبان است.

مدل اطلاعاتی درباره موارد زیر ذخیره می‌کند:

  • چه کلماتی معمولاً کنار هم استفاده می‌شوند.
  • ترتیب معمول قرار گرفتن کلمات.
  • معنی کلمات در Contextهای مختلف.

این نمایش ریاضی از زبان، پایه تولید متن جدید توسط مدل است.


نحوه تولید متن توسط LLM

LLM متن را یکباره تولید نمی‌کند.

فرآیند تولید:

  1. Prompt دریافت می‌شود.
  2. مدل یک Token بعدی را انتخاب می‌کند.
  3. Token انتخاب‌شده به متن اضافه می‌شود.
  4. دوباره همین فرآیند تکرار می‌شود.

مثال:

Prompt:

The sun is

مرحله اول:

The sun is shining

مرحله دوم:

The sun is shining in

مرحله سوم:

The sun is shining in the sky

تا زمانی که مدل تشخیص دهد پاسخ کامل شده است.


Token چیست؟

LLMها در واقع کلمه تولید نمی‌کنند، بلکه Token تولید می‌کنند.

Token بخش کوچک‌تری از متن است.

مثال:

برخی کلمات ممکن است یک Token کامل باشند:

London
door

اما کلمات پیچیده ممکن است به چند Token تقسیم شوند:

programmatically

ممکن است به چند بخش شکسته شود.

همچنین علائم نگارشی نیز می‌توانند Token باشند:

  • .
  • ,
  • ?

Vocabulary در LLM

بیشتر LLMها دارای واژگانی بین:

  • حدود ۱۰ هزار Token
  • تا بیش از ۱۰۰ هزار Token

هستند.

مزیت استفاده از Tokenهای کوچک‌تر:

  • مدل نیاز ندارد برای هر کلمه ممکن یک Token جدا داشته باشد.
  • می‌تواند کلمات جدید و ترکیبی را با کنار هم قرار دادن Tokenها بسازد.

فرآیند انتخاب Token بعدی

قبل از اضافه کردن هر Token جدید، LLM این مراحل را انجام می‌دهد:

مرحله ۱: درک Context فعلی

مدل وضعیت فعلی متن را بررسی می‌کند و ارتباط بین کلمات و معنی کلی متن را تحلیل می‌کند.


مرحله ۲: محاسبه احتمال Tokenها

LLM تمام Tokenهای موجود در Vocabulary خود را بررسی می‌کند.

برای هر Token احتمال ظاهر شدن در مرحله بعد را محاسبه می‌کند.

مثال:

برای جمله:

The sun is ...

احتمال‌ها ممکن است:

  • shining → احتمال بالا
  • rising → احتمال کمتر
  • exploding → احتمال بسیار کم

باشند.


مرحله ۳: انتخاب Token

مدل بر اساس توزیع احتمال، Token بعدی را انتخاب می‌کند.

مثلاً:

  • ۸۰ درصد مواقع: shining
  • گاهی: rising
  • حتی ممکن است: exploding

انتخاب‌های کم‌احتمال نیز ممکن است رخ دهند.


رفتار Autoregressive در LLM

LLMها رفتار Autoregressive دارند.

معنی:

خروجی‌های قبلی روی انتخاب‌های بعدی تأثیر می‌گذارند.

مثال:

اگر مدل انتخاب کند:

The sun is shining

احتمالاً ادامه می‌دهد:

in the sky

اما اگر ابتدا انتخاب کند:

The sun is warming

ممکن است ادامه دهد:

our faces

چون مسیر تولید متن تغییر کرده است.


چرا یک Prompt چند بار پاسخ‌های متفاوت می‌دهد؟

به دلیل دو ویژگی:

  1. انتخاب تصادفی بر اساس احتمال
  2. رفتار Autoregressive

بنابراین اجرای یک Prompt مشابه چند بار ممکن است Completionهای متفاوت ایجاد کند.


آموزش LLM چگونه انجام می‌شود؟

LLMها از مجموعه‌های عظیم متن آموزش می‌بینند.

فرآیند آموزش:

  1. مدل با یک متن ناقص مواجه می‌شود.
  2. تلاش می‌کند Token بعدی را پیش‌بینی کند.
  3. میزان درستی پیش‌بینی بررسی می‌شود.
  4. پارامترهای داخلی مدل تغییر داده می‌شوند.

با تکرار این فرآیند، مدل یاد می‌گیرد:

  • اطلاعات موجود در داده‌ها
  • سبک‌های مختلف نوشتاری
  • الگوهای زبانی

را تولید کند.


پارامترهای LLM

مدل‌های بزرگ دارای:

  • میلیاردها پارامتر
  • وزن‌های عددی داخلی

هستند.

قبل از آموزش:

  • خروجی مدل بی‌معنی است.

بعد از آموزش:

  • مدل توانایی تولید متن مرتبط پیدا می‌کند.

داده‌های آموزشی LLM

بسیاری از LLMهای امروزی روی:

  • تریلیون‌ها Token متن
  • بخش زیادی از اینترنت عمومی

آموزش دیده‌اند.

به همین دلیل می‌توانند:

  • موضوعات مختلف
  • سبک‌های مختلف نوشتاری

را تولید کنند.


محدودیت مهم LLM: Hallucination

مفهوم Hallucination

LLM فقط توالی‌هایی از کلمات را تولید می‌کند که بر اساس آموزش آن‌ها احتمال بیشتری دارند.

اما همیشه این احتمال با حقیقت برابر نیست.

مثال:

اگر از مدل درباره:

  • اطلاعات خصوصی شرکت
  • اخبار امروز

سؤال شود، احتمالاً این اطلاعات در داده آموزشی آن وجود نداشته‌اند.

در نتیجه ممکن است مدلی پاسخی بدهد که:

  • درست به نظر برسد.
  • اما واقعاً اشتباه باشد.

چرا Hallucination رخ می‌دهد؟

LLM برای تولید:

  • متن محتمل

طراحی شده است، نه الزاماً:

  • متن کاملاً واقعی.

از دید LLM، "حقیقت" یعنی:

یک دنباله از کلمات که بر اساس داده‌های آموزشی احتمال بالایی دارد.


نقش RAG در حل محدودیت LLM

RAG از توانایی LLM در درک Context استفاده می‌کند.

اگر سیستم RAG اطلاعات مرتبط را به Prompt اضافه کند:

  • LLM می‌تواند آن اطلاعات را بفهمد.
  • حتی اگر آن اطلاعات در داده آموزشی مدل نبوده باشند.

به این کار:

Grounding the LLM

گفته می‌شود.

یعنی پاسخ مدل به اطلاعات واقعی‌تر متصل می‌شود.


محدودیت اضافه کردن اطلاعات زیاد به Prompt

ممکن است تصور شود هرچه اطلاعات بیشتری به Prompt اضافه کنیم بهتر است، اما محدودیت‌هایی وجود دارد.


1. افزایش هزینه محاسباتی

Promptهای طولانی‌تر:

  • پردازش بیشتری نیاز دارند.
  • زمان و هزینه اجرای مدل را افزایش می‌دهند.

زیرا قبل از تولید هر Token جدید، مدل باید Tokenهای قبلی را بررسی کند.


2. محدودیت Context Window

هر LLM یک محدودیت دارد به نام:

Context Window

یعنی:

بیشترین مقدار متنی که مدل می‌تواند در یک زمان پردازش کند.

مدل‌های قدیمی:

  • چند هزار Token

مدل‌های جدید:

  • میلیون‌ها Token

اگر Retriever اطلاعات زیادی اضافه کند:

  • ابتدا هزینه افزایش پیدا می‌کند.
  • سپس ممکن است Context Window پر شود.

استفاده از TogetherAI در دوره

در این دوره از:

TogetherAI

استفاده خواهد شد.

TogetherAI مدل‌های Open Source مختلفی را ارائه می‌دهد.

مزیت استفاده از مدل‌های Open Source:

  • امکان بررسی عملکرد داخلی LLM
  • درک بهتر مفاهیم مطرح‌شده در دوره

جمع‌بندی

  • LLM در اصل Token بعدی متن را پیش‌بینی می‌کند.
  • Prompt ورودی مدل و Completion خروجی تولیدشده است.
  • LLMها با استفاده از Neural Network و میلیاردها پارامتر آموزش می‌بینند.
  • مدل‌ها متن را Token به Token تولید می‌کنند.
  • انتخاب Token بعدی بر اساس توزیع احتمال انجام می‌شود.
  • رفتار LLMها Autoregressive است؛ یعنی خروجی‌های قبلی روی ادامه متن اثر می‌گذارند.
  • LLMها ممکن است دچار Hallucination شوند، زیرا هدف آن‌ها تولید متن محتمل است نه تضمین حقیقت.
  • RAG با اضافه کردن اطلاعات مرتبط به Prompt، پاسخ‌های LLM را Ground می‌کند.
  • اضافه کردن اطلاعات زیاد محدودیت‌هایی مانند هزینه محاسباتی و Context Window ایجاد می‌کند.