مدلهای زبانی بزرگ یا Large Language Models که معمولاً با نام LLM شناخته میشوند، یکی از مهمترین فناوریهای حوزه هوش مصنوعی در سالهای اخیر هستند.
ابزارهایی که میتوانند متن تولید کنند، کد بنویسند، سؤال پاسخ دهند، محتوا خلاصه کنند یا درباره یک مسئله فنی توضیح بدهند، معمولاً بر پایه همین مدلها ساخته شدهاند.
اما سؤال اصلی اینجاست:
یک مدل زبانی چطور میتواند متن انسان را بفهمد و پاسخ تولید کند؟
برای پاسخ به این سؤال باید چند مفهوم مهم مثل Token، Transformer، Attention، Training و Inference را بشناسیم.
LLM چیست؟
LLM مخفف عبارت Large Language Model به معنی «مدل زبانی بزرگ» است.
یک LLM نوعی مدل یادگیری ماشین است که روی حجم بسیار زیادی از دادههای متنی آموزش داده میشود تا بتواند الگوهای موجود در زبان را یاد بگیرد.
به زبان ساده، هدف اصلی مدل این است که با توجه به متن قبلی، حدس بزند بخش بعدی متن چه چیزی خواهد بود.
مثلاً اگر جمله زیر را به مدل بدهیم:
برنامهنویسی با زبان Python بسیار ...
مدل ممکن است کلماتی مثل:
- محبوب
- قدرتمند
- ساده
- کاربردی
را بهعنوان ادامه احتمالی در نظر بگیرد.
اما کاری که در مدلهای مدرن انجام میشود بسیار پیچیدهتر از یک حدس ساده است.
چرا به آن «مدل زبانی بزرگ» میگویند؟
کلمه Large در LLM اتفاقی انتخاب نشده است.
مدلهای زبانی مدرن معمولاً دارای تعداد بسیار زیادی پارامتر هستند.
پارامترها اعدادی هستند که مدل در زمان آموزش آنها را تنظیم میکند تا بتواند روابط موجود در داده را بهتر تشخیص دهد.
مدلهای بزرگ ممکن است میلیاردها پارامتر داشته باشند.
البته تعداد پارامتر بیشتر همیشه به معنی مدل بهتر نیست.
کیفیت داده آموزشی، معماری مدل، نحوه آموزش و روش استفاده از مدل هم تأثیر زیادی روی نتیجه دارند.
Token چیست؟
مدل زبانی مستقیماً متن را همان شکلی که انسان میبیند پردازش نمیکند.
ابتدا متن به بخشهای کوچکتری به نام Token تقسیم میشود.
مثلاً عبارت:
Artificial Intelligence
ممکن است به چند Token مختلف تبدیل شود.
Token لزوماً برابر با یک کلمه کامل نیست.
گاهی یک کلمه به چند Token تقسیم میشود و گاهی یک Token میتواند شامل بخشی از یک کلمه باشد.
فرآیند تبدیل متن به Token را Tokenization میگویند.
چرا Tokenها مهم هستند؟
تقریباً تمام عملیات یک LLM بر اساس Token انجام میشود.
برای مثال:
- ورودی مدل بر اساس Token اندازهگیری میشود
- خروجی مدل از Token تشکیل میشود
- محدودیت Context بر اساس Token تعریف میشود
- هزینه بسیاری از APIهای هوش مصنوعی نیز بر اساس تعداد Token محاسبه میشود
بنابراین وقتی گفته میشود یک مدل مثلاً دارای Context Window بزرگی است، منظور تعداد Tokenهایی است که میتواند در یک درخواست پردازش کند.
مدل چطور Tokenها را میفهمد؟
بعد از Tokenization، هر Token باید به شکلی تبدیل شود که مدل بتواند با آن کار کند.
کامپیوتر با مفهوم «معنی کلمه» کاری ندارد. در نهایت همهچیز باید به عدد تبدیل شود.
برای همین هر Token به یک نمایش عددی تبدیل میشود.
این نمایش عددی معمولاً یک Vector است.
برای مثال به شکل بسیار ساده:
Python -> [0.12, -0.44, 0.81, 0.27]
البته Vectorهای واقعی بسیار بزرگتر هستند.
این نمایش عددی به مدل کمک میکند روابط بین کلمات و مفاهیم مختلف را یاد بگیرد.
Embedding چیست؟
نمایش عددی Tokenها یا مفاهیم در یک فضای چندبعدی را معمولاً Embedding مینامند.
Embedding کمک میکند مفاهیم نزدیک به هم، نمایشهای عددی نزدیکتری داشته باشند.
برای مثال مفاهیمی مثل:
- Python
- JavaScript
- Programming
- Software
ممکن است در فضای برداری به یکدیگر نزدیکتر باشند تا کلماتی کاملاً نامرتبط.
Embedding یکی از مفاهیم بسیار مهم در سیستمهای هوش مصنوعی است و در موضوعاتی مثل:
- Semantic Search
- Recommendation Systems
- RAG
- Vector Database
کاربرد زیادی دارد.
Transformer چیست؟
بخش مهمی از مدلهای زبانی مدرن بر اساس معماری Transformer ساخته شدهاند.
Transformer معماریای برای پردازش دادههای ترتیبی، مخصوصاً متن است.
قبل از Transformer، معماریهایی مثل RNN و LSTM برای پردازش زبان استفاده میشدند.
اما Transformer توانست پردازش متن را بسیار مؤثرتر و مقیاسپذیرتر کند.
یکی از مهمترین ویژگیهای Transformer استفاده از مکانیزمی به نام Attention است.
Attention چیست؟
فرض کنید جمله زیر را داریم:
علی لپتاپ را روی میز گذاشت چون آن سنگین بود.
مدل باید بفهمد کلمه «آن» به چه چیزی اشاره میکند.
Attention به مدل کمک میکند هنگام پردازش هر بخش از جمله، به بخشهای دیگر متن وزن متفاوتی بدهد.
در واقع مدل بررسی میکند:
کدام Tokenها برای فهم Token فعلی اهمیت بیشتری دارند؟
به همین دلیل مدل میتواند روابط بین بخشهای مختلف یک جمله یا حتی متن طولانیتر را بهتر تشخیص دهد.
Self-Attention چیست؟
در معماری Transformer معمولاً از مکانیزمی به نام Self-Attention استفاده میشود.
Self-Attention یعنی هر Token میتواند رابطه خود را با Tokenهای دیگر همان ورودی بررسی کند.
برای مثال در جمله:
Python یک زبان برنامهنویسی محبوب است.
مدل میتواند هنگام پردازش کلمه «Python»، ارتباط آن را با عبارت «زبان برنامهنویسی» تشخیص دهد.
این قابلیت یکی از دلایلی است که مدلهای Transformer در درک Context عملکرد خوبی دارند.
مدل زبانی چگونه آموزش داده میشود؟
یکی از روشهای اصلی آموزش LLMها این است که بخشهایی از متن به مدل داده شود و مدل تلاش کند Token بعدی را پیشبینی کند.
برای مثال:
The sky is
مدل باید احتمال Tokenهای مختلف را محاسبه کند.
مثلاً:
blue 0.72
clear 0.12
bright 0.08
green 0.001
اگر پاسخ مدل اشتباه باشد، وزنهای داخلی مدل کمی تغییر میکنند.
این فرآیند بارها و بارها روی حجم عظیمی از داده تکرار میشود.
در نهایت مدل الگوهای پیچیده زبان را یاد میگیرد.
آیا مدل متن را مثل انسان «میفهمد»؟
پاسخ کوتاه این است که نمیتوان فهم یک مدل زبانی را دقیقاً معادل درک انسانی دانست.
مدلها بر اساس روابط آماری و الگوهایی که در دادههای آموزشی یاد گرفتهاند کار میکنند.
آنها حافظه، تجربه و درک انسانی را به همان شکل ندارند.
با این حال، وقتی حجم داده و اندازه مدل افزایش پیدا میکند، مدل میتواند الگوهای بسیار پیچیدهای از زبان، استدلال، کدنویسی و دانش عمومی را بازنمایی کند.
نتیجه چیزی است که از بیرون گاهی بسیار شبیه فهم انسانی به نظر میرسد.
Inference چیست؟
بعد از آموزش مدل، زمانی که ما یک درخواست برای آن ارسال میکنیم، وارد مرحله Inference میشویم.
فرض کنید Prompt زیر را ارسال کنیم:
REST API چیست؟
مدل ابتدا Prompt را Tokenize میکند.
سپس Tokenها از لایههای مختلف مدل عبور میکنند.
در نهایت مدل برای Token بعدی مجموعهای از Probability تولید میکند.
مثلاً:
REST 0.35
یک 0.28
API 0.15
در 0.04
یکی از Tokenها انتخاب میشود.
سپس همین فرآیند دوباره تکرار میشود.
به این شکل خروجی Token به Token تولید میشود.
Temperature چیست؟
یکی از پارامترهای مهم هنگام تولید متن Temperature است.
Temperature میزان تصادفی بودن انتخاب Token بعدی را کنترل میکند.
Temperature پایین معمولاً باعث میشود مدل پاسخهای قابلپیشبینیتر و پایدارتر تولید کند.
برای مثال:
temperature = 0.2
برای کارهایی مثل تولید کد یا پاسخهای دقیق میتواند مناسب باشد.
در مقابل:
temperature = 1.0
میتواند خروجی متنوعتر و خلاقانهتری تولید کند.
اما افزایش بیش از حد آن ممکن است باعث تولید پاسخهای عجیب یا کمدقت شود.
Context Window چیست؟
مدلهای زبانی نمیتوانند بینهایت متن را همزمان پردازش کنند.
هر مدل دارای محدودیتی به نام Context Window است.
Context Window مشخص میکند چه مقدار Token میتواند در یک درخواست وارد مدل شود.
این مقدار معمولاً شامل:
- Prompt
- History
- System Instructions
- اسناد
- Output قبلی
میشود.
اگر حجم ورودی از Context Window بیشتر شود، بخشی از اطلاعات باید حذف، خلاصه یا به روش دیگری مدیریت شود.
Prompt چه نقشی دارد؟
Prompt همان ورودیای است که به مدل میدهیم.
مثلاً:
یک تابع Python برای مرتبسازی لیست بنویس.
هرچه Prompt دقیقتر باشد، معمولاً خروجی مدل هم بهتر خواهد بود.
برای مثال Prompt زیر اطلاعات بیشتری ارائه میدهد:
با Python یک تابع بنویس که لیستی از کاربران را بر اساس created_at مرتب کند.
شرایط:
- ورودی ممکن است خالی باشد
- از کتابخانه خارجی استفاده نکن
- برای تابع type hint بنویس
- یک unit test هم اضافه کن
مدل در این حالت Context بیشتری برای تولید پاسخ مناسب دارد.
چرا LLMها Hallucination دارند؟
یکی از مشکلات مهم مدلهای زبانی Hallucination است.
Hallucination زمانی اتفاق میافتد که مدل اطلاعاتی تولید کند که ظاهراً منطقی هستند اما واقعیت ندارند.
برای مثال ممکن است:
- یک کتابخانه غیرواقعی معرفی کند
- یک API خیالی بسازد
- اطلاعات تاریخی اشتباه ارائه دهد
- یک متد منسوخشده را پیشنهاد کند
- اطلاعات ناقص را با اطمینان بیان کند
این اتفاق به این دلیل رخ میدهد که مدل در اصل در حال پیشبینی محتملترین ادامه متن است.
هدف مستقیم مدل الزاماً بررسی صحت واقعیت نیست.
آیا LLM دیتابیس است؟
خیر.
این یکی از برداشتهای اشتباه رایج درباره مدلهای زبانی است.
LLM را نباید مثل یک دیتابیس در نظر گرفت.
در دیتابیس میتوانیم یک رکورد مشخص را ذخیره کنیم و بعد دقیقاً همان رکورد را دریافت کنیم.
اما مدل زبانی دانش خود را به شکل وزنها و پارامترهای شبکه عصبی ذخیره میکند.
به همین دلیل استفاده از LLM برای نگهداری اطلاعات دقیق و قابل تغییر معمولاً مناسب نیست.
برای این نوع کاربردها میتوان LLM را با سیستمهایی مثل:
- Database
- Search Engine
- Vector Database
- RAG
ترکیب کرد.
LLM چگونه کد تولید میکند؟
اگر مدل روی حجم زیادی از سورسکد آموزش دیده باشد، میتواند الگوهای موجود در زبانهای برنامهنویسی را نیز یاد بگیرد.
برای مثال مدل میتواند با مشاهده درخواست:
یک API ساده با FastAPI ایجاد کن.
ساختار احتمالی کد را تولید کند.
ممکن است خروجی چیزی شبیه این باشد:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def home():
return {"message": "Hello World"}
با این حال، کد تولیدشده همچنان باید توسط توسعهدهنده بررسی و تست شود.
مدل میتواند Syntax مناسبی تولید کند ولی این موضوع تضمین نمیکند که طراحی سیستم، امنیت یا Business Logic درست باشد.
LLM چه تفاوتی با Search Engine دارد؟
موتور جستوجو معمولاً اسناد موجود را پیدا و رتبهبندی میکند.
اما مدل زبانی پاسخ را تولید میکند.
Search Engine:
Query -> Search -> Documents
LLM:
Prompt -> Model -> Generated Response
البته امروزه بسیاری از سیستمها این دو روش را با هم ترکیب میکنند.
مثلاً یک سیستم ابتدا اطلاعات مرتبط را جستوجو میکند و سپس آن اطلاعات را در اختیار LLM قرار میدهد تا پاسخ تولید شود.
این روش پایه بسیاری از سیستمهای RAG است.
LLM چه کاربردهایی دارد؟
مدلهای زبانی در بسیاری از حوزهها قابل استفاده هستند.
تولید محتوا
میتوانند متن اولیه، توضیحات محصول، مستندات یا خلاصه تولید کنند.
برنامهنویسی
برای تولید کد، Refactoring، Debugging و Code Review استفاده میشوند.
جستوجوی هوشمند
میتوانند بهجای جستوجوی دقیق کلمات، مفهوم سؤال را درک کنند.
پشتیبانی مشتری
میتوان از آنها برای ساخت Chatbot و سیستمهای پاسخگویی استفاده کرد.
تحلیل اسناد
مدل میتواند گزارشها، قراردادها یا مستندات طولانی را خلاصه و تحلیل کند.
استخراج اطلاعات
میتوان دادههای ساختیافته را از متنهای بدون ساختار استخراج کرد.
محدودیتهای LLM چیست؟
مدلهای زبانی با وجود تواناییهای زیاد محدودیتهای مهمی نیز دارند.
احتمال تولید اطلاعات نادرست
مدل ممکن است پاسخ اشتباه ولی ظاهراً منطقی تولید کند.
محدودیت Context
حجم اطلاعاتی که مدل میتواند در یک درخواست ببیند محدود است.
دانش قدیمی یا ناقص
بسته به مدل و نحوه دسترسی آن به اطلاعات جدید، ممکن است دانش آن بهروز نباشد.
هزینه پردازش
استفاده از مدلهای بزرگ، مخصوصاً در مقیاس بالا، میتواند هزینهبر باشد.
Latency
تولید پاسخ توسط مدل معمولاً کندتر از Query ساده به یک دیتابیس یا Cache است.
امنیت
ارسال اطلاعات محرمانه یا داده کاربران به یک سرویس AI باید با سیاستهای امنیتی مناسب انجام شود.
آیا برای هر پروژهای باید از LLM استفاده کنیم؟
قطعاً نه.
اگر مسئله را بتوان با یک Query ساده، Regular Expression یا چند خط کد قطعی حل کرد، اضافه کردن LLM ممکن است فقط سیستم را گرانتر و پیچیدهتر کند.
مثلاً برای بررسی اینکه سن کاربر بیشتر از ۱۸ سال است:
def is_adult(age: int) -> bool:
return age >= 18
نیازی نیست یک مدل چند میلیارد پارامتری را صدا بزنیم تا درباره فلسفه بزرگسالی نظر بدهد.
LLM زمانی ارزشمند است که مسئله با زبان طبیعی، اطلاعات بدون ساختار، تحلیل معنایی یا تولید محتوا سروکار داشته باشد.
معماری ساده یک سیستم مبتنی بر LLM
یک اپلیکیشن ساده AI میتواند چنین ساختاری داشته باشد:
در پروژههای واقعی ممکن است اجزای بیشتری اضافه شوند:
این ساختار نشان میدهد که خود LLM فقط یک بخش از سیستم است.
آینده مدلهای زبانی
LLMها بهتدریج در حال تبدیل شدن به یکی از اجزای اصلی بسیاری از نرمافزارها هستند.
اما احتمالاً آینده فقط مربوط به Chatbotها نخواهد بود.
مدلها بیشتر با سیستمهای دیگر ترکیب خواهند شد:
- APIها
- دیتابیسها
- ابزارهای توسعه
- موتورهای جستوجو
- سیستمهای مانیتورینگ
- ابزارهای سازمانی
در نتیجه نقش توسعهدهنده فقط «ارسال Prompt» نخواهد بود.
طراحی معماری، کنترل کیفیت، مدیریت Context، امنیت، هزینه و Reliability بخش مهمی از توسعه سیستمهای مبتنی بر AI خواهند بود.
جمعبندی
LLM یا مدل زبانی بزرگ، نوعی مدل هوش مصنوعی است که با استفاده از حجم زیادی از داده متنی آموزش میبیند تا بتواند Token بعدی را پیشبینی کند.
همین ایده نسبتاً ساده، زمانی که با معماری Transformer، Attention، داده زیاد و منابع محاسباتی بزرگ ترکیب میشود، میتواند سیستمهایی ایجاد کند که قادر به تولید متن، نوشتن کد، تحلیل اطلاعات و پاسخگویی به سؤالهای پیچیده باشند.
برای درک بهتر LLM چند مفهوم کلیدی را باید به خاطر داشته باشیم:
- Tokenization متن را به بخشهای کوچکتر تبدیل میکند.
- Embedding Tokenها را به نمایش عددی تبدیل میکند.
- Transformer معماری اصلی بسیاری از مدلهای زبانی مدرن است.
- Attention به مدل کمک میکند روابط بین بخشهای مختلف متن را تشخیص دهد.
- Inference مرحلهای است که مدل بر اساس ورودی، پاسخ تولید میکند.
- Context Window میزان اطلاعاتی را تعیین میکند که مدل در یک درخواست میتواند ببیند.
- Hallucination یکی از محدودیتهای مهم LLMهاست.
در مقالات بعدی این مجموعه، وارد بخشهای عملیتر میشویم و درباره Prompt Engineering، Embedding، Vector Database، RAG و AI Agent صحبت خواهیم کرد.
