MODULE 04 / LESSON 25

Transformer Architecture و نحوه عملکرد LLM در RAG

مفهوم اصلی در سیستم RAG، بعد از اینکه Retriever اطلاعات مرتبط را پیدا می‌کند، این اطلاعات به شکل یک Augmented Prompt به LLM ارسال می‌شوند. اما یک سؤال مهم وجود دارد: LLM چگونه این اطلاعات را درک می‌کند و بر اساس آن پاسخ تولید…

نویسنده: محمد ابوطالبی۹۹۱ واژهماژول ۴: LLM & Prompting

مفهوم اصلی

در سیستم RAG، بعد از اینکه Retriever اطلاعات مرتبط را پیدا می‌کند، این اطلاعات به شکل یک Augmented Prompt به LLM ارسال می‌شوند.

اما یک سؤال مهم وجود دارد:

LLM چگونه این اطلاعات را درک می‌کند و بر اساس آن پاسخ تولید می‌کند؟

پاسخ این سؤال در معماری Transformer قرار دارد؛ معماری‌ای که پایه اصلی اکثر LLMهای امروزی است.


معرفی Transformer

معماری Transformer در سال 2017 در مقاله معروف:

Attention Is All You Need

معرفی شد.

هدف اولیه این معماری:

  • حل مسئله Machine Translation (ترجمه ماشینی)

بود.


اجزای اصلی Transformer

Transformer اولیه دو بخش اصلی داشت:

  1. Encoder
  2. Decoder

1. Encoder

وظیفه

Encoder متن ورودی را پردازش می‌کند و یک درک عمیق از معنی آن ایجاد می‌کند.

مثال:

ورودی:

  • یک پاراگراف آلمانی

Encoder:

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

2. Decoder

وظیفه

Decoder بر اساس اطلاعات Encoder:

  • متن جدید تولید می‌کند.

مثال:

ورودی:

متن آلمانی

خروجی:

ترجمه انگلیسی


Encoder و Decoder در LLMها

بیشتر LLMهای امروزی فقط بخش:

Decoder

را استفاده می‌کنند.

دلیل:

هدف اصلی آن‌ها:

  • تولید متن

است.


در مقابل:

Encoderها معمولاً در:

Embedding Model

استفاده می‌شوند.

زیرا هدف آن‌ها:

  • ساخت نمایش معنایی از متن

است.


مسیر یک Prompt داخل LLM

مرحله 1: Tokenization

اولین مرحله:

Prompt به Tokenها تقسیم می‌شود.

مثلاً:

یک جمله تبدیل می‌شود به مجموعه‌ای از بخش‌های کوچک‌تر.


مرحله 2: ایجاد Vector اولیه برای Tokenها

هر Token یک:

Dense Vector

دریافت می‌کند.

این Vector:

  • اولین حدس مدل درباره معنی Token است.

ویژگی این Vector:

Static است.

یعنی:

اگر یک Token یکسان چند بار وارد مدل شود:

همیشه همان Vector اولیه را دریافت می‌کند.


مرحله 3: Positional Vector

LLM باید بداند هر Token کجای جمله قرار دارد.

بنابراین:

به هر Token یک:

Positional Vector

اضافه می‌شود.

این Vector اطلاعات موقعیت Token را نگه می‌دارد.


مرحله 4: Attention Mechanism

بعد از آماده شدن Tokenها، وارد مهم‌ترین بخش Transformer می‌شوند:

Attention


مفهوم Attention

Attention یعنی:

هر Token تصمیم می‌گیرد به کدام Tokenهای دیگر بیشتر توجه کند.

هر Token:

  • معنی خود را بررسی می‌کند.
  • موقعیت Tokenهای دیگر را می‌بیند.
  • میزان اهمیت آن‌ها را مشخص می‌کند.

مثال

جمله:

The brown dog sat next to the red fox

کلمه:

dog

احتمالاً بیشتر به:

  • brown
  • sat

توجه می‌کند.

چون این کلمات ارتباط مستقیم با dog دارند.


مثلاً:

dog attention:

brown → 70%
sat → 20%
سایر کلمات → 10%

Attention Head

مکانیزمی که Attention را محاسبه می‌کند:

Attention Head

نام دارد.

LLMها معمولاً چندین Attention Head دارند.


دلیل وجود چند Attention Head

هر Head می‌تواند نوع متفاوتی از رابطه را یاد بگیرد.

مثلاً:

Head اول:

رابطه بین:

  • شیء
  • ویژگی آن

مثلاً:

fox → brown


Head دوم:

رابطه مکانی:

مثلاً:

fox → next / sat


اما این روابط از قبل توسط انسان تعریف نشده‌اند.

مدل خودش در زمان Training آن‌ها را یاد می‌گیرد.


تعداد Attention Headها

مدل‌های کوچک:

  • حدود 8 تا 16 Head

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

  • بیش از 100 Head

دارند.


نتیجه Attention

Attention باعث می‌شود:

هر Token ارتباط خود با تمام Tokenهای دیگر را بررسی کند.

نتیجه:

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

مرحله Feedforward

بعد از Attention:

اطلاعات وارد:

Feedforward Network

می‌شود.

این بخش:

بزرگ‌ترین قسمت LLM است و بیشترین تعداد Parameterها را دارد.


وظیفه Feedforward

با استفاده از:

  • Vector اولیه Token
  • Position
  • Attention

یک Vector جدید برای هر Token ایجاد می‌کند.


این Vector جدید:

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

زیرا Context سایر کلمات را هم در نظر گرفته است.


تکرار لایه‌های Transformer

LLM معمولاً این فرآیند را چندین بار تکرار می‌کند:

Attention
    ↓
Feedforward
    ↓
Vectorهای بهتر

یک مدل معمولی ممکن است:

  • 8 تا 64 بار

این فرآیند را تکرار کند.

هر مرحله:

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


تولید Token جدید

بعد از پردازش کامل:

LLM آماده تولید متن می‌شود.

مدل بررسی می‌کند:

بر اساس Training Data، چه Tokenهایی احتمال دارند بعدی باشند؟


Probability Distribution

LLM برای تمام Tokenهای Vocabulary احتمال ایجاد می‌کند.

مثلاً:

Vocabulary:

100,000 Token

برای هر Token:

یک احتمال محاسبه می‌شود.


تعداد کمی Token:

احتمال بالا دارند.

بقیه:

تقریباً صفر هستند.


انتخاب Token

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

انتخاب:

بر اساس احتمال Tokenها انجام می‌شود.

بنابراین:

  • Tokenهای محتمل بیشتر انتخاب می‌شوند.
  • اما Tokenهای کم‌احتمال هم ممکن است انتخاب شوند.

تولید کامل پاسخ

بعد از انتخاب Token:

Token به انتهای Prompt اضافه می‌شود.

برای Token بعدی:

کل فرآیند دوباره اجرا می‌شود.


یعنی:

Prompt
 ↓
Generate Token 1
 ↓
Generate Token 2
 ↓
Generate Token 3
 ↓
...

تا زمانی که:

  • محدودیت Token تمام شود.
  • مدل Token پایان متن تولید کند.

ارتباط Transformer با RAG

شناخت Transformer چند نکته مهم برای طراحی RAG مشخص می‌کند.


1. چرا RAG کار می‌کند؟

LLM می‌تواند:

  • معنی اطلاعات اضافه‌شده در Prompt را بفهمد.
  • ارتباط آن را با سؤال کاربر درک کند.

دلیل:

  • Attention Mechanism
  • اطلاعات یادگرفته‌شده در Feedforward Layers

است.


2. LLM هنوز تصادفی است

حتی اگر اطلاعات مفید به Prompt اضافه شود:

LLM ممکن است:

  • به شکل کامل از آن استفاده نکند.

زیرا فرآیند انتخاب Token دارای Randomness است.


بنابراین در RAG لازم است:

  • رفتار مدل کنترل شود.
  • بررسی شود پاسخ واقعاً بر اساس Retrieval تولید شده است.

3. هزینه محاسباتی LLM

اجرای Transformer بسیار پرهزینه است.

دلیل:

برای تولید هر Token:

مدل باید ارتباط آن با Tokenهای دیگر را بررسی کند.


هرچه:

  • Prompt طولانی‌تر باشد.
  • Completion طولانی‌تر باشد.

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


نکته مهم در RAG

بخش زیادی از هزینه سیستم RAG مربوط به اجرای همین مدل‌های Transformer قدرتمند است.

به همین دلیل:

  • مدیریت Context
  • Chunking مناسب
  • Retrieval دقیق

اهمیت زیادی دارند.


جمع‌بندی

  • Transformer معماری اصلی اکثر LLMهای امروزی است.
  • Transformer اولیه شامل Encoder و Decoder بود، اما بیشتر LLMها فقط Decoder دارند.
  • Prompt ابتدا Tokenize شده و هر Token Vector و Position دریافت می‌کند.
  • Attention ارتباط بین Tokenها را تحلیل می‌کند.
  • Attention Headهای مختلف روابط متفاوتی را یاد می‌گیرند.
  • Feedforward Network Vectorهای Tokenها را با توجه به Context بهبود می‌دهد.
  • LLM با محاسبه احتمال Tokenها، متن را مرحله‌به‌مرحله تولید می‌کند.
  • RAG به دلیل توانایی LLM در درک Context داخل Prompt کار می‌کند.
  • با این حال LLMها همچنان تصادفی و پرهزینه هستند، بنابراین طراحی صحیح RAG ضروری است.